From unknown Thu Aug 14 18:32:45 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#14175 <14175@debbugs.gnu.org> To: bug#14175 <14175@debbugs.gnu.org> Subject: Status: 24.3.50; Bad completion behavior with read-file-name-completion-ignore-case t Reply-To: bug#14175 <14175@debbugs.gnu.org> Date: Fri, 15 Aug 2025 01:32:45 +0000 retitle 14175 24.3.50; Bad completion behavior with read-file-name-completi= on-ignore-case t reassign 14175 emacs submitter 14175 michael_heerdegen@web.de severity 14175 normal tag 14175 moreinfo thanks From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 10 16:31:07 2013 Received: (at submit) by debbugs.gnu.org; 10 Apr 2013 20:31:07 +0000 Received: from localhost ([127.0.0.1]:44118 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UQ1fe-0007t0-Ms for submit@debbugs.gnu.org; Wed, 10 Apr 2013 16:31:07 -0400 Received: from eggs.gnu.org ([208.118.235.92]:48415) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UQ1fZ-0007sc-Tf for submit@debbugs.gnu.org; Wed, 10 Apr 2013 16:31:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UQ1bv-0008Bn-Po for submit@debbugs.gnu.org; Wed, 10 Apr 2013 16:27:16 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-102.4 required=5.0 tests=BAYES_20,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RP_MATCHES_RCVD, USER_IN_WHITELIST autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:53114) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UQ1bv-0008BW-N7 for submit@debbugs.gnu.org; Wed, 10 Apr 2013 16:27:15 -0400 Received: from eggs.gnu.org ([208.118.235.92]:59773) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UQ1bu-0004N8-On for bug-gnu-emacs@gnu.org; Wed, 10 Apr 2013 16:27:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UQ1bt-0008B3-TV for bug-gnu-emacs@gnu.org; Wed, 10 Apr 2013 16:27:14 -0400 Received: from mout.web.de ([212.227.17.11]:55657) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UQ1ao-0007sb-5O for bug-gnu-emacs@gnu.org; Wed, 10 Apr 2013 16:26:06 -0400 Received: from drachen.dragon ([92.74.136.91]) by smtp.web.de (mrweb001) with ESMTPSA (Nemesis) id 0MYvmV-1U4HaJ21Qp-00Vfyj for ; Wed, 10 Apr 2013 22:26:04 +0200 From: Michael Heerdegen To: bug-gnu-emacs@gnu.org Subject: 24.3.50; Bad completion behavior with read-file-name-completion-ignore-case t Date: Wed, 10 Apr 2013 22:26:03 +0200 Message-ID: <877gkab09w.fsf@web.de> MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V02:K0:i5sylSEl6lzOdiWB9eiEgm/iOEkIIMctAE8Ph/qrJwf EqiPzsB9Ts0ptExfcyaw7mXquWQ1feXQt7tnj62KLWT9QW6kjr 7Fjnl+wygX1Hffyi/m2GjyCtUqBL60e9mtMADatX0zSyGxq5TN OFZWeL6jZrC5xC0mf45Y+JCa0V+kfiCesbUPVAGpmTaGvUraDE NLtF63NiDhNZA94Luj7tUm6VZKnuBgkGTmk8DcAOc4= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 208.118.235.17 X-Spam-Score: -4.2 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: michael_heerdegen@web.de List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.9 (------) Hi, you can reproduce this with emacs -Q. I use this setting: (setq read-file-name-completion-ignore-case t completion-auto-help t) In my "~/", I have, among other files, lrwxrwxrwx 1 micha micha 9 Feb 3 20:00 download -> Downloads drwxr-xr-x 11 micha micha 4,0K Apr 9 15:40 Downloads I hit C-x d ~/Down TAB Emacs completes the minibuffer to ~/Download Since this is no valid completion, it should pop up *Completions*, but it doesn't (first issue). I hit TAB a second time. I get this in *Completions*: Click on a completion to select it. In this buffer, type RET to select the completion near point. Possible completions are: Download/ Downloads/ It doesn't offer "download". If I click on "Download/", I get the message `mouse-choose-completion' is an obsolete command (as of 23.2); use `choose-completion' instead. (second issue) Then it completes the minibuffer content to "~/Download/". But this doesn't exist (third and major issue). I get an error when hitting RET (of course). Thanks, Michael. From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 10 19:12:04 2013 Received: (at 14175) by debbugs.gnu.org; 10 Apr 2013 23:12:04 +0000 Received: from localhost ([127.0.0.1]:44273 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UQ4BQ-000870-9p for submit@debbugs.gnu.org; Wed, 10 Apr 2013 19:12:04 -0400 Received: from mout.web.de ([212.227.17.11]:50687) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UQ4BO-00086Z-BA for 14175@debbugs.gnu.org; Wed, 10 Apr 2013 19:12:03 -0400 Received: from drachen.dragon ([92.74.136.91]) by smtp.web.de (mrweb103) with ESMTPSA (Nemesis) id 0LyDlZ-1UbdWt0cp3-015FPf; Thu, 11 Apr 2013 01:08:14 +0200 From: Michael Heerdegen To: 14175@debbugs.gnu.org Subject: Re: bug#14175: 24.3.50; Bad completion behavior with read-file-name-completion-ignore-case t References: <877gkab09w.fsf@web.de> Date: Thu, 11 Apr 2013 01:08:13 +0200 In-Reply-To: <877gkab09w.fsf@web.de> (Michael Heerdegen's message of "Wed, 10 Apr 2013 22:26:03 +0200") Message-ID: <87zjx69e76.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V02:K0:GlsatU1HroflUKx9TXCeTFMwVp6PyLn+wmH7FFkQKlR v10EnDL3w2T58LrGOmMwcgVDJaifL6T/jEJNoojdtIgNssEyz1 sWEDhvLaFTmaOSCHGh7RoFLrO8Gbuo/l0SvG6N+cL593wNJ4ES ttfYfjFJ/Q3Hr6BW2amo8sT14sqjQ/qUL4OzZ+rUnRjMzh/yK2 cTWOAEVmb8q7MBNe6bcQpBLiIGyADD63nOZZza79BE= X-Spam-Score: -2.4 (--) X-Debbugs-Envelope-To: 14175 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -4.3 (----) Hello, 1. I tried to debug a bit. When you hit TAB the second time, this call in `completion--nth-completion' changes the result from ("download/" "Downloads/") to ("Download/" "Downloads/"): (if requote (funcall requote result n) result) 2. I still think that the first TAB already should bring up *Completions* - although this also doesn't happen when I start with "~/down", so this is probably a separate issue (and maybe arguable). Regards, Michael. From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 12 10:57:55 2013 Received: (at 14175) by debbugs.gnu.org; 12 Apr 2013 14:57:55 +0000 Received: from localhost ([127.0.0.1]:47489 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UQfQH-0001p8-09 for submit@debbugs.gnu.org; Fri, 12 Apr 2013 10:57:54 -0400 Received: from mout.web.de ([212.227.15.3]:56910) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UQfQB-0001oQ-2Q for 14175@debbugs.gnu.org; Fri, 12 Apr 2013 10:57:51 -0400 Received: from drachen.dragon ([92.74.136.91]) by smtp.web.de (mrweb101) with ESMTPSA (Nemesis) id 0LzsKN-1UeuRb0MAl-014S0l; Fri, 12 Apr 2013 16:53:50 +0200 From: Michael Heerdegen To: 14175@debbugs.gnu.org Subject: Re: bug#14175: 24.3.50; Bad completion behavior with read-file-name-completion-ignore-case t References: <877gkab09w.fsf@web.de> <87zjx69e76.fsf@web.de> Date: Fri, 12 Apr 2013 16:53:47 +0200 In-Reply-To: <87zjx69e76.fsf@web.de> (Michael Heerdegen's message of "Thu, 11 Apr 2013 01:08:13 +0200") Message-ID: <87k3o7kdfo.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable X-Provags-ID: V02:K0:teE9cVKf47xvSyUkklPJNiqUhyrVDOxxaKZsm83Kh+u pXEeWR2MTrSPMhbu7TzRSpn0gSzESeFaegkEYSaAoIDjnTrHEb y0DbBWKsFhSBOHNJBOU57A5XNoJeA+wCGL8Grx7j5DSdBvQiby gB7xwcyCKqovdzDsLkL/9rt8rQvCMgnhh0hirYQxhU6G+PDv4s QT+Bzzs0dBAphtTOEIxS8K1IviE2VDwmwlr54nfHJk= X-Spam-Score: -4.3 (----) X-Debbugs-Envelope-To: 14175 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -4.3 (----) Michael Heerdegen writes: > Hello, > > 1. I tried to debug a bit. > > When you hit TAB the second time, this call in > `completion--nth-completion' changes the result from ("download/" > "Downloads/") to ("Download/" "Downloads/"): > > (if requote > (funcall requote result n) > result) Some more information: this call at the very last lines of `completion-table-with-quoting': (when last (setcdr last nil) (completion--twq-all string ustring unquoted-result base unquote requote)) returns the changed case of the first candidate (from "~/download" to "~/Download"), i.e., introduces the error. Here is a backtrace of that point of time: ,---------------------------------------------------------------------- | completion--twq-all("~/Download" "~/Download" (#("download/" 0 8 (face = (completions-common-part)) 8 9 (face (completions-first-difference))) #("Do= wnloads/" 0 8 (face (completions-common-part)) 8 9 (face (completions-first= -difference)))) 2 substitute-in-file-name completion--sifn-requote) | (progn (setcdr last nil) (completion--twq-all string ustring unquoted-r= esult base unquote requote)) | (if last (progn (setcdr last nil) (completion--twq-all string ustring u= nquoted-result base unquote requote))) | (let* ((last (last unquoted-result)) (base (or (cdr last) 0))) (if last= (progn (setcdr last nil) (completion--twq-all string ustring unquoted-resu= lt base unquote requote)))) | (let nil (debug) (let* ((last (last unquoted-result)) (base (or (cdr la= st) 0))) (if last (progn (setcdr last nil) (completion--twq-all string ustr= ing unquoted-result base unquote requote))))) | (cond ((eq op (quote 1)) (let nil (if (not (stringp (car-safe unquoted-= result))) unquoted-result (completion--twq-try string ustring (car unquoted= -result) (cdr unquoted-result) unquote requote)))) ((eq op (quote 2)) (let = nil (debug) (let* ((last (last unquoted-result)) (base (or (cdr last) 0))) = (if last (progn (setcdr last nil) (completion--twq-all string ustring unquo= ted-result base unquote requote)))))) (t nil)) | (closure ((uprefix . "~/Download") (ustring . #1=3D"~/Download") (actio= n . completion--unquote) (pred . 10) (string . #1#) (requote . completion--= sifn-requote) (unquote . substitute-in-file-name) (table . completion-file-= name-table) t) (unquoted-result op) (cond ((eq op (quote 1)) (let nil (if (= not (stringp (car-safe unquoted-result))) unquoted-result (completion--twq-= try string ustring (car unquoted-result) (cdr unquoted-result) unquote requ= ote)))) ((eq op (quote 2)) (let nil (debug) (let* ((last (last unquoted-res= ult)) (base (or ... 0))) (if last (progn (setcdr last nil) (completion--twq= -all string ustring unquoted-result base unquote requote)))))) (t nil)))((#= ("download/" 0 8 (face (completions-common-part)) 8 9 (face (completions-fi= rst-difference))) #("Downloads/" 0 8 (face (completions-common-part)) 8 9 (= face (completions-first-difference)))) 2) | funcall((closure ((uprefix . "~/Download") (ustring . #1=3D"~/Download"= ) (action . completion--unquote) (pred . 10) (string . #1#) (requote . comp= letion--sifn-requote) (unquote . substitute-in-file-name) (table . completi= on-file-name-table) t) (unquoted-result op) (cond ((eq op (quote 1)) (let n= il (if (not (stringp (car-safe unquoted-result))) unquoted-result (completi= on--twq-try string ustring (car unquoted-result) (cdr unquoted-result) unqu= ote requote)))) ((eq op (quote 2)) (let nil (debug) (let* ((last (last unqu= oted-result)) (base (or ... 0))) (if last (progn (setcdr last nil) (complet= ion--twq-all string ustring unquoted-result base unquote requote)))))) (t n= il))) (#("download/" 0 8 (face (completions-common-part)) 8 9 (face (comple= tions-first-difference))) #("Downloads/" 0 8 (face (completions-common-part= )) 8 9 (face (completions-first-difference)))) 2) | (if requote (funcall requote result n) result) | (let ((requote (if (completion-metadata-get metadata (quote completion-= -unquote-requote)) (progn (let ((new ...)) (setq string (car ...)) (setq ta= ble (car ...)) (setq point (car ...)) (car (prog1 new ...)))))) (result (pr= ogn (completion--some (function (lambda (style) (funcall ... string table p= red point))) (completion--styles metadata))))) (if requote (funcall requote= result n) result)) | completion--nth-completion(2 "~/Download" read-file-name-internal file-= exists-p 10 (metadata (category . file) (completion--unquote-requote . t))) | completion-all-completions("~/Download" read-file-name-internal file-ex= ists-p 10 (metadata (category . file) (completion--unquote-requote . t))) | (let* ((start (field-beginning)) (end (field-end)) (string (field-strin= g)) (md (completion--field-metadata start)) (completions (completion-all-co= mpletions string minibuffer-completion-table minibuffer-completion-predicat= e (- (point) (field-beginning)) md))) (message nil) (if (or (null completio= ns) (and (not (consp (cdr completions))) (equal (car completions) string)))= (progn (minibuffer-hide-completions) (ding) (minibuffer-message (if comple= tions "Sole completion" "No completions"))) (let* ((last (last completions)= ) (base-size (cdr last)) (prefix (if (zerop base-size) nil (substring strin= g 0 base-size))) (all-md (completion--metadata (buffer-substring-no-propert= ies start (point)) base-size md minibuffer-completion-table minibuffer-comp= letion-predicate)) (afun (or (completion-metadata-get all-md (quote annotat= ion-function)) (plist-get completion-extra-properties :annotation-function)= completion-annotate-function)) (display-buffer-mark-dedicated (quote soft)= )) (let* ((#1=3D#:old-dir default-directory) (#4=3D#:buf (save-current-buff= er (set-buffer ...) (prog1 ... ... ... ... ... ... ...))) (standard-output = #4#)) (prog1 (progn (if last (progn ...)) (setq completions (let ... ...)) = (if afun (progn ...)) (save-current-buffer (set-buffer standard-output) (se= t ... ...) (set ... ...)) (display-completion-list completions)) (internal-= temp-output-buffer-show #4#))))) nil) | minibuffer-completion-help() | (if (if (eq completion-auto-help (quote lazy)) (let nil (eq this-comman= d last-command)) (let nil completion-auto-help)) (minibuffer-completion-hel= p) (completion--message "Next char not unique")) | (cond ((and (consp (cdr comps)) (not (condition-case nil (progn (consp = (nthcdr threshold comps))) (error nil)))) (setq completed t exact t) (compl= etion--cache-all-sorted-completions comps) (minibuffer-force-complete)) (co= mpleted (minibuffer-hide-completions) (if exact (completion--done completio= n (if (< comp-pos (length completion)) (quote exact) (quote unknown))))) ((= not exact) (if (if (eq completion-auto-help (quote lazy)) (let nil (eq this= -command last-command)) (let nil completion-auto-help)) (minibuffer-complet= ion-help) (completion--message "Next char not unique"))) (t (if (and (eq th= is-command last-command) completion-auto-help) (minibuffer-completion-help)= ) (completion--done completion (quote exact) (if expect-exact nil "Complete= , but not unique")))) | (let* ((exact (test-completion completion minibuffer-completion-table m= inibuffer-completion-predicate)) (threshold (completion--cycle-threshold md= )) (comps (if (and threshold (or (not completed) (< (car ...) comp-pos))) (= progn (completion-all-sorted-completions))))) (completion--flush-all-sorted= -completions) (cond ((and (consp (cdr comps)) (not (condition-case nil (pro= gn (consp ...)) (error nil)))) (setq completed t exact t) (completion--cach= e-all-sorted-completions comps) (minibuffer-force-complete)) (completed (mi= nibuffer-hide-completions) (if exact (completion--done completion (if (< co= mp-pos (length completion)) (quote exact) (quote unknown))))) ((not exact) = (if (if (eq completion-auto-help (quote lazy)) (let nil (eq this-command la= st-command)) (let nil completion-auto-help)) (minibuffer-completion-help) (= completion--message "Next char not unique"))) (t (if (and (eq this-command = last-command) completion-auto-help) (minibuffer-completion-help)) (completi= on--done completion (quote exact) (if expect-exact nil "Complete, but not u= nique")))) (minibuffer--bitset completed t exact)) | (if (not (or unchanged completed)) (completion--do-completion try-compl= etion-function expect-exact) (let* ((exact (test-completion completion mini= buffer-completion-table minibuffer-completion-predicate)) (threshold (compl= etion--cycle-threshold md)) (comps (if (and threshold (or (not completed) (= < ... comp-pos))) (progn (completion-all-sorted-completions))))) (completio= n--flush-all-sorted-completions) (cond ((and (consp (cdr comps)) (not (cond= ition-case nil (progn ...) (error nil)))) (setq completed t exact t) (compl= etion--cache-all-sorted-completions comps) (minibuffer-force-complete)) (co= mpleted (minibuffer-hide-completions) (if exact (completion--done completio= n (if (< comp-pos ...) (quote exact) (quote unknown))))) ((not exact) (if (= if (eq completion-auto-help (quote lazy)) (let nil (eq this-command last-co= mmand)) (let nil completion-auto-help)) (minibuffer-completion-help) (compl= etion--message "Next char not unique"))) (t (if (and (eq this-command last-= command) completion-auto-help) (minibuffer-completion-help)) (completion--d= one completion (quote exact) (if expect-exact nil "Complete, but not unique= ")))) (minibuffer--bitset completed t exact))) | (let* ((comp-pos (cdr comp)) (completion (car comp)) (completed (not (e= q t (compare-strings completion nil nil string nil nil t)))) (unchanged (eq= t (compare-strings completion nil nil string nil nil nil)))) (if unchanged= (goto-char end) (completion--replace beg end completion)) (forward-char (-= comp-pos (length completion))) (if (not (or unchanged completed)) (complet= ion--do-completion try-completion-function expect-exact) (let* ((exact (tes= t-completion completion minibuffer-completion-table minibuffer-completion-p= redicate)) (threshold (completion--cycle-threshold md)) (comps (if (and thr= eshold (or ... ...)) (progn (completion-all-sorted-completions))))) (comple= tion--flush-all-sorted-completions) (cond ((and (consp (cdr comps)) (not (c= ondition-case nil ... ...))) (setq completed t exact t) (completion--cache-= all-sorted-completions comps) (minibuffer-force-complete)) (completed (mini= buffer-hide-completions) (if exact (completion--done completion (if ... ...= ...)))) ((not exact) (if (if (eq completion-auto-help ...) (let nil ...) (= let nil completion-auto-help)) (minibuffer-completion-help) (completion--me= ssage "Next char not unique"))) (t (if (and (eq this-command last-command) = completion-auto-help) (minibuffer-completion-help)) (completion--done compl= etion (quote exact) (if expect-exact nil "Complete, but not unique")))) (mi= nibuffer--bitset completed t exact)))) | (cond ((null comp) (minibuffer-hide-completions) (if completion-fail-di= screetly nil (ding) (completion--message "No match")) (minibuffer--bitset n= il nil nil)) ((eq t comp) (minibuffer-hide-completions) (goto-char end) (co= mpletion--done string (quote finished) (if expect-exact nil "Sole completio= n")) (minibuffer--bitset nil nil t)) (t (let* ((comp-pos (cdr comp)) (compl= etion (car comp)) (completed (not (eq t (compare-strings completion nil nil= string nil nil t)))) (unchanged (eq t (compare-strings completion nil nil = string nil nil nil)))) (if unchanged (goto-char end) (completion--replace b= eg end completion)) (forward-char (- comp-pos (length completion))) (if (no= t (or unchanged completed)) (completion--do-completion try-completion-funct= ion expect-exact) (let* ((exact (test-completion completion minibuffer-comp= letion-table minibuffer-completion-predicate)) (threshold (completion--cycl= e-threshold md)) (comps (if ... ...))) (completion--flush-all-sorted-comple= tions) (cond ((and ... ...) (setq completed t exact t) (completion--cache-a= ll-sorted-completions comps) (minibuffer-force-complete)) (completed (minib= uffer-hide-completions) (if exact ...)) ((not exact) (if ... ... ...)) (t (= if ... ...) (completion--done completion ... ...))) (minibuffer--bitset com= pleted t exact)))))) | (let* ((beg (field-beginning)) (end (field-end)) (string (buffer-substr= ing beg end)) (md (completion--field-metadata beg)) (comp (funcall (or try-= completion-function (quote completion-try-completion)) string minibuffer-co= mpletion-table minibuffer-completion-predicate (- (point) beg) md))) (cond = ((null comp) (minibuffer-hide-completions) (if completion-fail-discreetly n= il (ding) (completion--message "No match")) (minibuffer--bitset nil nil nil= )) ((eq t comp) (minibuffer-hide-completions) (goto-char end) (completion--= done string (quote finished) (if expect-exact nil "Sole completion")) (mini= buffer--bitset nil nil t)) (t (let* ((comp-pos (cdr comp)) (completion (car= comp)) (completed (not (eq t ...))) (unchanged (eq t (compare-strings comp= letion nil nil string nil nil nil)))) (if unchanged (goto-char end) (comple= tion--replace beg end completion)) (forward-char (- comp-pos (length comple= tion))) (if (not (or unchanged completed)) (completion--do-completion try-c= ompletion-function expect-exact) (let* ((exact ...) (threshold ...) (comps = ...)) (completion--flush-all-sorted-completions) (cond (... ... ... ...) (c= ompleted ... ...) (... ...) (t ... ...)) (minibuffer--bitset completed t ex= act))))))) | completion--do-completion() | (let* ((#1=3D#:val (completion--do-completion))) (if (eq #1# (quote 0))= (let nil nil) (let nil t))) | (cond ((window-live-p minibuffer-scroll-window) (let ((window minibuffe= r-scroll-window)) (save-current-buffer (set-buffer (window-buffer window)) = (if (pos-visible-in-window-p (point-max) window) (set-window-start window (= point-min) nil) (scroll-other-window)) nil))) ((and completion-cycling comp= letion-all-sorted-completions) (minibuffer-force-complete) t) (t (let* ((#1= =3D#:val (completion--do-completion))) (if (eq #1# (quote 0)) (let nil nil)= (let nil t))))) | minibuffer-complete() | call-interactively(minibuffer-complete nil nil) | command-execute(minibuffer-complete) | read-from-minibuffer("Dired (directory): " "~/today/" (keymap (keymap (= 32)) keymap (7 . minibuffer-keyboard-quit) (menu-bar keymap (minibuf #1=3D"= Minibuf" keymap (tab menu-item "Complete" minibuffer-complete :help "Comple= te as far as possible") (space menu-item "Complete Word" minibuffer-complet= e-word :help "Complete at most one word") (63 menu-item "List Completions" = minibuffer-completion-help :help "Display all possible completions") #1#)) = (27 keymap (21) (23) (118 . switch-to-completions)) (prior . switch-to-comp= letions) (63 . minibuffer-completion-help) (32 . minibuffer-complete-word) = (9 . minibuffer-complete) keymap (f9 . my-enlarge-mb) (menu-bar keymap (min= ibuf #1# keymap (previous menu-item "Previous History Item" previous-histor= y-element :help "Put previous minibuffer history element in the minibuffer"= ) (next menu-item "Next History Item" next-history-element :help "Put next = minibuffer history element in the minibuffer") (isearch-backward menu-item = "Isearch History Backward" isearch-backward :help "Incrementally search min= ibuffer history backward") (isearch-forward menu-item "Isearch History Forw= ard" isearch-forward :help "Incrementally search minibuffer history forward= ") (return menu-item "Enter" exit-minibuffer :key-sequence "" :help "Termin= ate input and exit minibuffer") (quit menu-item "Quit" abort-recursive-edit= :help "Abort input and exit minibuffer") #1#)) (10 . exit-minibuffer) (13 = . exit-minibuffer) (7 . abort-recursive-edit) (C-tab . file-cache-minibuffe= r-complete) (9 . self-insert-command) (XF86Back . previous-history-element)= (up . previous-history-element) (prior . previous-history-element) (XF86Fo= rward . next-history-element) (down . next-history-element) (next . next-hi= story-element) (27 keymap (114 . previous-matching-history-element) (115 . = next-matching-history-element) (112 . previous-history-element) (110 . next= -history-element))) nil file-name-history "~/today/" nil) | (let* ((minibuffer-completion-table collection) (minibuffer-completion-= predicate predicate) (minibuffer-completion-confirm (if (eq require-match t= ) nil require-match)) (base-keymap (if require-match minibuffer-local-must-= match-map minibuffer-local-completion-map)) (keymap (if (memq minibuffer-co= mpleting-file-name (quote (nil lambda))) base-keymap (make-composed-keymap = minibuffer-local-filename-completion-map base-keymap))) (result (read-from-= minibuffer prompt initial-input keymap nil hist def inherit-input-method)))= (if (and (equal result "") def) (progn (setq result (if (consp def) (car d= ef) def)))) result) | completing-read-default("Dired (directory): " read-file-name-internal f= ile-exists-p nil "~/today/" file-name-history "~/today/" nil) | completing-read("Dired (directory): " read-file-name-internal file-exis= ts-p nil "~/today/" file-name-history "~/today/") | (progn (add-hook (quote minibuffer-setup-hook) #:setup-hook) (completin= g-read prompt (quote read-file-name-internal) pred mustmatch insdef (quote = file-name-history) default-filename)) | (unwind-protect (progn (add-hook #1=3D(quote minibuffer-setup-hook) #2= =3D#:setup-hook) (completing-read prompt (quote read-file-name-internal) pr= ed mustmatch insdef (quote file-name-history) default-filename)) (remove-ho= ok #1# #2#)) | (let (#1=3D#:setup-hook) (setq #1# (function (lambda nil (remove-hook #= 2=3D(quote minibuffer-setup-hook) #1#) (funcall (function (lambda nil (setq= default-directory dir) (if ... ...) (set ... ...) (set-syntax-table minibu= ffer-local-filename-syntax))))))) (unwind-protect (progn (add-hook #2# #1#)= (completing-read prompt (quote read-file-name-internal) pred mustmatch ins= def (quote file-name-history) default-filename)) (remove-hook #2# #1#))) | (let ((dir (file-name-as-directory (expand-file-name dir)))) (let (#1= =3D#:setup-hook) (setq #1# (function (lambda nil (remove-hook #2=3D(quote m= inibuffer-setup-hook) #1#) (funcall (function (lambda nil ... ... ... ...))= )))) (unwind-protect (progn (add-hook #2# #1#) (completing-read prompt (quo= te read-file-name-internal) pred mustmatch insdef (quote file-name-history)= default-filename)) (remove-hook #2# #1#)))) | (if (or (not (next-read-file-uses-dialog-p)) (file-remote-p dir)) (let = ((dir (file-name-as-directory (expand-file-name dir)))) (let (#1=3D#:setup-= hook) (setq #1# (function (lambda nil (remove-hook #2=3D(quote minibuffer-s= etup-hook) #1#) (funcall (function ...))))) (unwind-protect (progn (add-hoo= k #2# #1#) (completing-read prompt (quote read-file-name-internal) pred mus= tmatch insdef (quote file-name-history) default-filename)) (remove-hook #2#= #1#)))) (let ((file (file-name-nondirectory dir)) (dialog-mustmatch (not (= memq mustmatch (quote (nil confirm confirm-after-completion)))))) (if (and = (not default-filename) (not (zerop (length file)))) (progn (setq default-fi= lename file) (setq dir (file-name-directory dir)))) (if default-filename (p= rogn (setq default-filename (expand-file-name (if (consp default-filename) = (car default-filename) default-filename) dir)))) (setq add-to-history t) (x= -file-dialog prompt dir default-filename dialog-mustmatch (eq predicate (qu= ote file-directory-p))))) | (let* ((val (if (or (not (next-read-file-uses-dialog-p)) (file-remote-p= dir)) (let ((dir (file-name-as-directory ...))) (let (#1=3D#:setup-hook) (= setq #1# (function ...)) (unwind-protect (progn ... ...) (remove-hook #2=3D= ... #1#)))) (let ((file (file-name-nondirectory dir)) (dialog-mustmatch (no= t ...))) (if (and (not default-filename) (not ...)) (progn (setq default-fi= lename file) (setq dir ...))) (if default-filename (progn (setq default-fil= ename ...))) (setq add-to-history t) (x-file-dialog prompt dir default-file= name dialog-mustmatch (eq predicate (quote file-directory-p)))))) (replace-= in-history (eq (car-safe file-name-history) val))) (if (consp default-filen= ame) (progn (setq default-filename (car default-filename)))) (if (eq val de= fault-filename) (progn (if (not replace-in-history) (setq add-to-history t)= ) (setq val ""))) (if val nil (error "No file name specified")) (if (and de= fault-filename (string-equal val (if (consp insdef) (car insdef) insdef))) = (setq val default-filename)) (setq val (substitute-in-file-name val)) (if r= eplace-in-history (let ((val1 (minibuffer--double-dollars val))) (if histor= y-delete-duplicates (setcdr file-name-history (delete val1 (cdr file-name-h= istory)))) (if (string=3D val1 (cadr file-name-history)) (car (prog1 file-n= ame-history (setq file-name-history (cdr file-name-history)))) (setcar file= -name-history val1))) (if add-to-history (let ((val1 (minibuffer--double-do= llars val))) (if (and (consp file-name-history) (equal (car file-name-histo= ry) val1)) nil (setq file-name-history (cons val1 (if history-delete-duplic= ates ... file-name-history))))))) val) | (let ((completion-ignore-case read-file-name-completion-ignore-case) (m= inibuffer-completing-file-name t) (pred (or predicate (quote file-exists-p)= )) (add-to-history nil)) (let* ((val (if (or (not (next-read-file-uses-dial= og-p)) (file-remote-p dir)) (let ((dir ...)) (let (#1=3D#:setup-hook) (setq= #1# ...) (unwind-protect ... ...))) (let ((file ...) (dialog-mustmatch ...= )) (if (and ... ...) (progn ... ...)) (if default-filename (progn ...)) (se= tq add-to-history t) (x-file-dialog prompt dir default-filename dialog-must= match (eq predicate ...))))) (replace-in-history (eq (car-safe file-name-hi= story) val))) (if (consp default-filename) (progn (setq default-filename (c= ar default-filename)))) (if (eq val default-filename) (progn (if (not repla= ce-in-history) (setq add-to-history t)) (setq val ""))) (if val nil (error = "No file name specified")) (if (and default-filename (string-equal val (if = (consp insdef) (car insdef) insdef))) (setq val default-filename)) (setq va= l (substitute-in-file-name val)) (if replace-in-history (let ((val1 (minibu= ffer--double-dollars val))) (if history-delete-duplicates (setcdr file-name= -history (delete val1 (cdr file-name-history)))) (if (string=3D val1 (cadr = file-name-history)) (car (prog1 file-name-history (setq file-name-history .= ..))) (setcar file-name-history val1))) (if add-to-history (let ((val1 (min= ibuffer--double-dollars val))) (if (and (consp file-name-history) (equal ..= . val1)) nil (setq file-name-history (cons val1 ...)))))) val)) | (let ((insdef (cond ((and insert-default-directory (stringp dir)) (if i= nitial (cons (minibuffer--double-dollars ...) (length ...)) (minibuffer--do= uble-dollars dir))) (initial (cons (minibuffer--double-dollars initial) 0))= ))) (let ((completion-ignore-case read-file-name-completion-ignore-case) (m= inibuffer-completing-file-name t) (pred (or predicate (quote file-exists-p)= )) (add-to-history nil)) (let* ((val (if (or (not ...) (file-remote-p dir))= (let (...) (let ... ... ...)) (let (... ...) (if ... ...) (if default-file= name ...) (setq add-to-history t) (x-file-dialog prompt dir default-filenam= e dialog-mustmatch ...)))) (replace-in-history (eq (car-safe file-name-hist= ory) val))) (if (consp default-filename) (progn (setq default-filename (car= default-filename)))) (if (eq val default-filename) (progn (if (not replace= -in-history) (setq add-to-history t)) (setq val ""))) (if val nil (error "N= o file name specified")) (if (and default-filename (string-equal val (if (c= onsp insdef) (car insdef) insdef))) (setq val default-filename)) (setq val = (substitute-in-file-name val)) (if replace-in-history (let ((val1 (minibuff= er--double-dollars val))) (if history-delete-duplicates (setcdr file-name-h= istory (delete val1 ...))) (if (string=3D val1 (cadr file-name-history)) (c= ar (prog1 file-name-history ...)) (setcar file-name-history val1))) (if add= -to-history (let ((val1 ...)) (if (and ... ...) nil (setq file-name-history= ...))))) val))) | read-file-name-default("Dired (directory): " nil "/home/micha/today/" n= il nil nil) | funcall(read-file-name-default "Dired (directory): " nil "/home/micha/t= oday/" nil nil nil) | read-file-name("Dired (directory): " nil "/home/micha/today/" nil) | dired-read-dir-and-switches("") | call-interactively(dired nil nil) | command-execute(dired) `---------------------------------------------------------------------- I can reproduce this behavior manually: (completion--twq-all #1=3D"~/Download" #1# '(#("download/" 0 8 (face (completions-common-part)) 8 9 (face (comple= tions-first-difference))) #("Downloads/" 0 8 (face (completions-common-part)) 8 9 (face (compl= etions-first-difference)))) 2 'substitute-in-file-name 'completion--sifn-requote) =3D=3D> (#("Download/" 0 8 (face completions-common-part) 8 9 (face (completions-first-difference))) #("Downloads/" 0 8 (face completions-common-part) 8 9 (face (completions-first-difference))) . 2) I can't dig further 'cause I don't know what `completion--twq-all' is or should do. HTH, Michael. =20 From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 12 13:44:13 2013 Received: (at 14175) by debbugs.gnu.org; 12 Apr 2013 17:44:13 +0000 Received: from localhost ([127.0.0.1]:47663 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UQi1E-0008SV-9k for submit@debbugs.gnu.org; Fri, 12 Apr 2013 13:44:12 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.182]:58441) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UQi1C-0008S7-FJ for 14175@debbugs.gnu.org; Fri, 12 Apr 2013 13:44:10 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av8EABK/CFFFxIEd/2dsb2JhbABEuzWDWRdzgh4BAQQBViMFCws0EhQYDSSIHgbBLZEKA6R6gV6DEw X-IPAS-Result: Av8EABK/CFFFxIEd/2dsb2JhbABEuzWDWRdzgh4BAQQBViMFCws0EhQYDSSIHgbBLZEKA6R6gV6DEw X-IronPort-AV: E=Sophos;i="4.84,565,1355115600"; d="scan'208";a="7278990" Received: from 69-196-129-29.dsl.teksavvy.com (HELO pastel.home) ([69.196.129.29]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 12 Apr 2013 13:40:11 -0400 Received: by pastel.home (Postfix, from userid 20848) id EE2B367B10; Fri, 12 Apr 2013 13:40:13 -0400 (EDT) From: Stefan Monnier To: Michael Heerdegen Subject: Re: bug#14175: 24.3.50; Bad completion behavior with read-file-name-completion-ignore-case t Message-ID: References: <877gkab09w.fsf@web.de> <87zjx69e76.fsf@web.de> Date: Fri, 12 Apr 2013 13:40:13 -0400 In-Reply-To: <87zjx69e76.fsf@web.de> (Michael Heerdegen's message of "Thu, 11 Apr 2013 01:08:13 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 14175 Cc: 14175@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) > When you hit TAB the second time, this call in > `completion--nth-completion' changes the result from ("download/" > "Downloads/") to ("Download/" "Downloads/"): > (if requote > (funcall requote result n) > result) Hmmm........ Indeed we have a problem. Usually "completion-ignore-case" as you expect means "feel free to change my input's case to match the completions". But the "quote/requote" thingy generally tries to preserve the user's input (e.g. so as to keep $HOME rather than replace it with /home/monnier), which is why here it also preserves the user's case. Not sure yet how best to fix this bug. Stefan From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 22 21:04:05 2021 Received: (at 14175) by debbugs.gnu.org; 23 Aug 2021 01:04:05 +0000 Received: from localhost ([127.0.0.1]:40040 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHyNd-0003uQ-0c for submit@debbugs.gnu.org; Sun, 22 Aug 2021 21:04:05 -0400 Received: from quimby.gnus.org ([95.216.78.240]:38632) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHyNX-0003u3-Dk for 14175@debbugs.gnu.org; Sun, 22 Aug 2021 21:03:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=j6N37t2FuzOZit+aekPPsNA3PnRqgAP/GT16hxWTBi4=; b=ONyVG1Gcs4a30tdsAPJg4N03we gDWBTLyUoSxb2pEPFZ7T1fSfRr8Ikh1ULZlRJbF2Z2RubVETZhGLIFNe+mVm5nlrPsidg2KigeuDF Ev+HM51l51LqbWxNJIsLeWwbPDJgrGyTShKC/1evMd+aQRREl/fXZ7EQkCe5wFTw0edo=; Received: from [84.212.220.105] (helo=elva) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mHyNM-0005HF-OI; Mon, 23 Aug 2021 03:03:48 +0200 From: Lars Ingebrigtsen To: Michael Heerdegen Subject: Re: bug#14175: 24.3.50; Bad completion behavior with read-file-name-completion-ignore-case t References: <877gkab09w.fsf@web.de> Date: Mon, 23 Aug 2021 03:03:44 +0200 In-Reply-To: <877gkab09w.fsf@web.de> (Michael Heerdegen's message of "Wed, 10 Apr 2013 22:26:03 +0200") Message-ID: <87lf4tug3z.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Michael Heerdegen writes: > (setq read-file-name-completion-ignore-case t > completion-auto-help t) > > In my "~/", I have, among other files, > > lrwxrwxrwx 1 micha micha 9 Feb 3 20:00 download -> Downloads > drwxr-xr-x 11 mi [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 14175 Cc: 14175@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Michael Heerdegen writes: > (setq read-file-name-completion-ignore-case t > completion-auto-help t) > > In my "~/", I have, among other files, > > lrwxrwxrwx 1 micha micha 9 Feb 3 20:00 download -> Downloads > drwxr-xr-x 11 micha micha 4,0K Apr 9 15:40 Downloads > > I hit C-x d ~/Down TAB > > Emacs completes the minibuffer to > > ~/Download > > Since this is no valid completion, it should pop up *Completions*, but > it doesn't (first issue). I hit TAB a second time. I get this in *Completions*: > > Click on a completion to select it. > In this buffer, type RET to select the completion near point. > > Possible completions are: > Download/ > Downloads/ > > It doesn't offer "download". If I click on "Download/", I get the > message > > `mouse-choose-completion' is an obsolete command (as of 23.2); use > `choose-completion' instead. > > (second issue) > > Then it completes the minibuffer content to "~/Download/". But this > doesn't exist (third and major issue). I get an error when hitting RET > (of course). I can't reproduce either of these issues in Emacs 28. Are you still seeing this in recent Emacs versions? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 22 21:04:09 2021 Received: (at control) by debbugs.gnu.org; 23 Aug 2021 01:04:09 +0000 Received: from localhost ([127.0.0.1]:40042 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHyNh-0003us-At for submit@debbugs.gnu.org; Sun, 22 Aug 2021 21:04:09 -0400 Received: from quimby.gnus.org ([95.216.78.240]:38646) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHyNb-0003uB-RW for control@debbugs.gnu.org; Sun, 22 Aug 2021 21:04:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=ufu2z+Rt1HeiGNCtVOao9uY2kmvkvotdydYrPgSIKwg=; b=MmqqAYMYv9o6OOe6caqBLuesNB DWb3GMu29mGdnXxDe42PLsdrmMAnmj1riCZm9wlMVLuLXAhp4hsRBFtZ9trFoAo8CUjTZ46xl6GWY dmuQt4j8zDTdBpVkZYQmZIzjnp3y8ULI9rSBst2Y99seMHGEFLtZEsH2jEUcm1+aOmdA=; Received: from [84.212.220.105] (helo=elva) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mHyNT-0005HN-Vv for control@debbugs.gnu.org; Mon, 23 Aug 2021 03:03:54 +0200 Date: Mon, 23 Aug 2021 03:03:51 +0200 Message-Id: <87k0kdug3s.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #14175 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: tags 14175 + moreinfo quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) tags 14175 + moreinfo quit From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 24 11:21:00 2021 Received: (at 14175) by debbugs.gnu.org; 24 Aug 2021 15:21:00 +0000 Received: from localhost ([127.0.0.1]:45003 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mIYEV-00042y-T6 for submit@debbugs.gnu.org; Tue, 24 Aug 2021 11:21:00 -0400 Received: from mout.web.de ([212.227.17.11]:46877) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mIYEU-00042m-GX for 14175@debbugs.gnu.org; Tue, 24 Aug 2021 11:20:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1629818452; bh=UiXWmR8822TGPzWjPfIXb9KZZo01PPX4gKO7PVNfL7I=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=oJFKm5C1z/2FVfecwydqPZ/hdz+vRYXIToLKvqWn8JyPEGGZ+d/RSqtySQcyUidE7 j6VhsQi97zHXMlpcWB2YrLVnsJQ2OZUN2k6uaIOaLOI/Fc6FQF+I0j7zDX/m+t/SjZ JFp4cCKQDoEG2+cHaSIWnCPzfcFAjvwGchyUAcyo= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from drachen.dragon ([88.66.201.45]) by smtp.web.de (mrweb102 [213.165.67.124]) with ESMTPSA (Nemesis) id 0Lu4q2-1n0EV80qs2-011WC5; Tue, 24 Aug 2021 17:20:52 +0200 From: Michael Heerdegen To: Lars Ingebrigtsen Subject: Re: bug#14175: 24.3.50; Bad completion behavior with read-file-name-completion-ignore-case t References: <877gkab09w.fsf@web.de> <87lf4tug3z.fsf@gnus.org> Date: Tue, 24 Aug 2021 17:20:51 +0200 In-Reply-To: <87lf4tug3z.fsf@gnus.org> (Lars Ingebrigtsen's message of "Mon, 23 Aug 2021 03:03:44 +0200") Message-ID: <87zgt6j2cs.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:8uJKQIxqGFWOAmurippDoxRBONh/hPngMJ8Mom8Vi3hd87VTFzT VVC8NBvkNjS0gn4LFCql7Z3Mv6UKC+ArlCpcd/RWU5UiQ/Twvhddu8F23zgbWV+HjzBG7N5 N5E4EwCYGDkuPmlyGOstXV+5VNjIDp3glRqgVc84p+ZY7oGIMQ4HEDRsjAxKUws6UmafXqw aYdJnuF1/9NgzvSY9Nd7A== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:awFAbwyeD50=:6rme7/Df1VX30NHGBk/26n YUDlnheFMQBd7EL6sWuPa7AeAvGPzb4xKfPkmF9PGawArbAHyS/ifvh/MVN9VhJgvIZ8PzQsD WReqdtR2umILPYoBBHWB/2pAHiuuWHeEiemKeuYdvZgY0EMUAMiavCfa2gM50A9lL/xCgIfH9 KbxXeQGT0+xiGPgFevNeAChcRZSd40hLcN3pD8bzX/q7YPMWdBkuKq3CkkKoxLR7pQvQ/VBzh bJQ24+PW20YYG+hdKqjkdadf7mmK90PUZnv3dLgPH4bVoT6GfZ7AotHWsMLns9QylWSF3N2Z1 pDw+Yl2mXKKTbd44XBdaShKOwZEPhO+S/igrKfxrKUOus5ld614cPIXN3hrPRAkVrbDyn9o8T rvS2O7N7B/z12PXgLr03DicZGpab3cZe2NqpHM16pLMp+nXhArakTL4rTpceui+B973W5+s1r y2Dcjv4D8w2WVS/sQaQgSZScoOWzXcvNcT5ZvvKNE35yOCGNzlescQ/Nrq0ez7Tzl6gdZFvM1 Ch8TSOL/tusawAP46OZPd0gFcsmq6QLnmPe60hneIUEx0nq4BiGMeVdhRXasj1e/GGAK5ncgW nhHBnqRXfr4Kls1VwwQ1kl62teupU23IkpLVAEeo+gddLWO4hsv9V5UHme6Uytz0FQQ8XBn6M LTqDFbv3zCZzZ+KdkWJ7yXvAgaR1LCmN3Pyc1wHstevvSm/jx7N9b8wl7GrOVsKQw+/1RhlgE BLLcvccpeFdTjuVZIAV63fmsoO0mo8+Fg++Ad3Qq4/S3bTrWyfXElONHFwhk6Of8JRSEbpbmA vHjLLGXggX/xBAPs1tjf9/61WliPz//NyjJdtu+HTDQidFXHWu1bDzi0+kPyfNZas5hFsna1A rhruN3juQqBG/jVDNzyINnVfGRvS4JpN0p8iwUJXXmFCMImVrN6JkjsFUrdVI2WeOep5WnQ3v oTK1qZHFpatEVFWI95S10Mbn80fgHU48DmEOs6ZbClM1TqWeTzLhsIJIc+z2MsYJwR9srfvJW tZPHbBYdeD8I5FTcJpcZo1F8C8qaOBVuRkdHN4ToqnLth74N0/7UDoFG/PWwwf3Nso/dq5tx8 RKWuWfwhBfvfcV57EuAmMIDDFB6b+Xl9eanX0e8h//03A9Lz7sIWJBV4A== X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 14175 Cc: 14175@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Lars Ingebrigtsen writes: > I can't reproduce either of these issues in Emacs 28. Are you still > seeing this in recent Emacs versions? The first part is still the same (anything that followed seems to be fixed), but after reading again the docstring of `completion-auto-help', I think not to pop up *Completions* seem to be intended since that completion attempt does not count as unsuccessful: > Michael Heerdegen writes: > > > (setq read-file-name-completion-ignore-case t > > completion-auto-help t) > > > > In my "~/", I have, among other files, > > > > lrwxrwxrwx 1 micha micha 9 Feb 3 20:00 download -> Downloads > > drwxr-xr-x 11 micha micha 4,0K Apr 9 15:40 Downloads > > > > I hit C-x d ~/Down TAB > > > > Emacs completes the minibuffer to > > > > ~/Download > > > > Since this is no valid completion, it should pop up *Completions*, but > > it doesn't (first issue). So I think we are done here and you can close this report. Thanks, Michael. From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 24 11:25:50 2021 Received: (at 14175) by debbugs.gnu.org; 24 Aug 2021 15:25:50 +0000 Received: from localhost ([127.0.0.1]:45008 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mIYJC-0004Ay-G4 for submit@debbugs.gnu.org; Tue, 24 Aug 2021 11:25:50 -0400 Received: from quimby.gnus.org ([95.216.78.240]:55184) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mIYJA-0004Ae-UM for 14175@debbugs.gnu.org; Tue, 24 Aug 2021 11:25:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=AW5b1chLa4165dakue0VUF5yu0oVz28jQ6Wocrhh90Q=; b=SCsKW/tzc1i9JuR5BWs3OUe7ov NCsjZqZNvAntxevT/iI8QibfmAneTqwbZsS2ZIM/qXbXkvggN5G/pvS3K1SWWaIwHIFIhbZLHQx4g bMpzO7/4veYcyrv8K+K6xAx++cv9tfokSLyNag0nh7YBf11vXDKzxG9DVcXH2W8NNg1k=; Received: from [84.212.220.105] (helo=elva) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mIYJ0-0000au-Dv; Tue, 24 Aug 2021 17:25:42 +0200 From: Lars Ingebrigtsen To: Michael Heerdegen Subject: Re: bug#14175: 24.3.50; Bad completion behavior with read-file-name-completion-ignore-case t References: <877gkab09w.fsf@web.de> <87lf4tug3z.fsf@gnus.org> <87zgt6j2cs.fsf@web.de> Date: Tue, 24 Aug 2021 17:25:36 +0200 In-Reply-To: <87zgt6j2cs.fsf@web.de> (Michael Heerdegen's message of "Tue, 24 Aug 2021 17:20:51 +0200") Message-ID: <87pmu2ooen.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Michael Heerdegen writes: > So I think we are done here and you can close this report. Thanks for testing; closing this report, then. Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 14175 Cc: 14175@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Michael Heerdegen writes: > So I think we are done here and you can close this report. Thanks for testing; closing this report, then. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 24 11:25:59 2021 Received: (at control) by debbugs.gnu.org; 24 Aug 2021 15:25:59 +0000 Received: from localhost ([127.0.0.1]:45011 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mIYJL-0004BL-NL for submit@debbugs.gnu.org; Tue, 24 Aug 2021 11:25:59 -0400 Received: from quimby.gnus.org ([95.216.78.240]:55198) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mIYJJ-0004B7-Cj for control@debbugs.gnu.org; Tue, 24 Aug 2021 11:25:58 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=aQZm4n4/O3cCzyrVPEj7DMtXzUizU17VrfuB8Ye/2E8=; b=NtTN247gt5nRBy35uWNuaD4fW1 Gq5mXPS7EJnHCkRT2rxaF4qBRHXwrrYAPYNtotQR9ygAGfpOu/UbtmuSWD7A3szghc+1+oWVvJS95 7vB0lBApvkm3EMDWevl8vogigY0AzdM1itbgVXjAP5oAyKVfp48+NnGnxcCm6Ue0qTVM=; Received: from [84.212.220.105] (helo=elva) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mIYJB-0000b6-C4 for control@debbugs.gnu.org; Tue, 24 Aug 2021 17:25:51 +0200 Date: Tue, 24 Aug 2021 17:25:48 +0200 Message-Id: <87o89mooeb.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #14175 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: close 14175 quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) close 14175 quit From unknown Thu Aug 14 18:32:45 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Wed, 22 Sep 2021 11:24:06 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator