From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stephen Berman Newsgroups: gmane.emacs.bugs Subject: bug#14806: 24.3.50; Enabling read-file-name-completion-ignore-case breaks url-handler-mode Date: Sat, 06 Jul 2013 21:57:13 +0200 Message-ID: <871u7bzckm.fsf@rosalinde.fritz.box> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: ger.gmane.org 1373140694 19304 80.91.229.3 (6 Jul 2013 19:58:14 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 6 Jul 2013 19:58:14 +0000 (UTC) To: 14806@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Jul 06 21:58:16 2013 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UvYcW-0000yv-IN for geb-bug-gnu-emacs@m.gmane.org; Sat, 06 Jul 2013 21:58:12 +0200 Original-Received: from localhost ([::1]:47161 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UvYcW-00025r-6s for geb-bug-gnu-emacs@m.gmane.org; Sat, 06 Jul 2013 15:58:12 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:58914) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UvYcQ-00025i-9N for bug-gnu-emacs@gnu.org; Sat, 06 Jul 2013 15:58:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UvYcN-0004rR-36 for bug-gnu-emacs@gnu.org; Sat, 06 Jul 2013 15:58:06 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:41045) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UvYcM-0004rN-WB for bug-gnu-emacs@gnu.org; Sat, 06 Jul 2013 15:58:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1UvYcM-0003qM-2T for bug-gnu-emacs@gnu.org; Sat, 06 Jul 2013 15:58:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Stephen Berman Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 06 Jul 2013 19:58:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 14806 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.137314066014712 (code B ref -1); Sat, 06 Jul 2013 19:58:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 6 Jul 2013 19:57:40 +0000 Original-Received: from localhost ([127.0.0.1]:35360 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1UvYby-0003pD-Og for submit@debbugs.gnu.org; Sat, 06 Jul 2013 15:57:40 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:57077) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1UvYbv-0003om-OV for submit@debbugs.gnu.org; Sat, 06 Jul 2013 15:57:36 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UvYbn-0004n1-3O for submit@debbugs.gnu.org; Sat, 06 Jul 2013 15:57:30 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:46483) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UvYbn-0004mw-0o for submit@debbugs.gnu.org; Sat, 06 Jul 2013 15:57:27 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:58775) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UvYbj-00023d-AT for bug-gnu-emacs@gnu.org; Sat, 06 Jul 2013 15:57:26 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UvYbd-0004lW-I4 for bug-gnu-emacs@gnu.org; Sat, 06 Jul 2013 15:57:23 -0400 Original-Received: from mout.gmx.net ([212.227.15.19]:57097) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UvYbd-0004lC-5i for bug-gnu-emacs@gnu.org; Sat, 06 Jul 2013 15:57:17 -0400 Original-Received: from rosalinde.fritz.box ([89.245.71.48]) by mail.gmx.com (mrgmx002) with ESMTPSA (Nemesis) id 0M9ra4-1V28Be1Pqq-00B6Ol for ; Sat, 06 Jul 2013 21:57:15 +0200 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) X-Provags-ID: V03:K0:oaTMEzhPQu0nX++wBmRnVjoqAvCONN4+AjkMeSi7ZNHRyIBf8pA mn8RXpRk+te3LWEzJyzSu5mSck50H1oJekwKrB1JaH06QceJAIHeS8F+jRwa/ySAjAyJ1zD esj4XCitfuurtSPI5Yf3W/LR7b0qDqudCDZVl61xJMRRd/UykO400FwQXKJ+RKT4yU5AHVe f+vs8Oup6286pv+6AUc2w== 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: Error: Malformed IPv6 address (bad octet value). X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:76018 Archived-At: --=-=-= Content-Type: text/plain 0. emacs -Q 1. M-: (setq read-file-name-completion-ignore-case t) (or customize it, or use set-variable) 2. M-x url-handler-mode 3. C-x C-f http://www.gnu.org RET => error "Unimplemented" Here's the backtrace: --=-=-= Content-Type: text/plain Content-Disposition: attachment Content-Transfer-Encoding: quoted-printable Content-Description: backtrace Debugger entered--Lisp error: (error "Unimplemented") signal(error ("Unimplemented")) completion--some(#[257 "\303\302=02\300\301$\207" ["http://www.gnu.org" f= ile-exists-p nil complete-with-action] 6 "\n\n(fn TABLE)"] (completion--emb= edded-envvar-table completion--file-name-table)) read-file-name-internal("http://www.gnu.org" file-exists-p nil) try-completion("http://www.gnu.org" read-file-name-internal file-exists-p) minibuffer--complete-and-exit(#[0 "\301\302\303D\304\302\305\301EDC\217\2= 11\306>\203=17=00\307 \202/=00\211\310=3D\203.=00\204&=00\307 \202/=00\311= \312!\210\313\202/=00\313\207" [minibuffer-completion-confirm err funcall #= [0 "\300\301\302\"\207" [completion--do-completion nil expect-exact] 3 "\n\= n(fn)"] error #[257 "\300\207" [1] 2 "\n\n(fn IGNORED)"] (1 3) exit-minibuf= fer 7 minibuffer-message "Confirm" nil] 6 "\n\n(fn)"]) minibuffer-complete-and-exit() call-interactively(minibuffer-complete-and-exit nil nil) command-execute(minibuffer-complete-and-exit) read-from-minibuffer("Find file: " "/data/steve/bzr/emacs/quickfixes/lisp= /" (keymap (keymap (32)) keymap (10 . minibuffer-complete-and-exit) (13 . m= inibuffer-complete-and-exit) keymap (menu-bar keymap (minibuf "Minibuf" key= map (tab menu-item "Complete" minibuffer-complete :help "Complete as far as= possible") (space menu-item "Complete Word" minibuffer-complete-word :help= "Complete at most one word") (63 menu-item "List Completions" minibuffer-c= ompletion-help :help "Display all possible completions") "Minibuf")) (27 ke= ymap (118 . switch-to-completions)) (prior . switch-to-completions) (63 . m= inibuffer-completion-help) (32 . minibuffer-complete-word) (9 . minibuffer-= complete) keymap (menu-bar keymap (minibuf "Minibuf" keymap (previous menu-= item "Previous History Item" previous-history-element :help "Put previous m= inibuffer history element in the minibuffer") (next menu-item "Next History= Item" next-history-element :help "Put next minibuffer history element in t= he minibuffer") (isearch-backward menu-item "Isearch History Backward" isea= rch-backward :help "Incrementally search minibuffer history backward") (ise= arch-forward menu-item "Isearch History Forward" isearch-forward :help "Inc= rementally search minibuffer history forward") (return menu-item "Enter" ex= it-minibuffer :key-sequence "=0D" :help "Terminate input and exit minibuffe= r") (quit menu-item "Quit" abort-recursive-edit :help "Abort input and exit= minibuffer") "Minibuf")) (10 . exit-minibuffer) (13 . exit-minibuffer) (7 = . abort-recursive-edit) (C-tab . file-cache-minibuffer-complete) (9 . self-= insert-command) (XF86Back . previous-history-element) (up . previous-histor= y-element) (prior . previous-history-element) (XF86Forward . next-history-e= lement) (down . next-history-element) (next . next-history-element) (27 key= map (114 . previous-matching-history-element) (115 . next-matching-history-= element) (112 . previous-history-element) (110 . next-history-element))) ni= l file-name-history "/data/steve/bzr/emacs/quickfixes/lisp/" nil) completing-read-default("Find file: " read-file-name-internal file-exists= -p confirm-after-completion "/data/steve/bzr/emacs/quickfixes/lisp/" file-n= ame-history "/data/steve/bzr/emacs/quickfixes/lisp/" nil) completing-read("Find file: " read-file-name-internal file-exists-p confi= rm-after-completion "/data/steve/bzr/emacs/quickfixes/lisp/" file-name-hist= ory "/data/steve/bzr/emacs/quickfixes/lisp/") (progn (add-hook (quote minibuffer-setup-hook) setup-hook) (completing-re= ad prompt (quote read-file-name-internal) pred mustmatch insdef (quote file= -name-history) default-filename)) (unwind-protect (progn (add-hook (quote minibuffer-setup-hook) setup-hook= ) (completing-read prompt (quote read-file-name-internal) pred mustmatch in= sdef (quote file-name-history) default-filename)) (remove-hook (quote minib= uffer-setup-hook) setup-hook)) (let (setup-hook) (setq setup-hook (function (lambda nil (remove-hook (qu= ote minibuffer-setup-hook) setup-hook) (funcall (function (lambda nil (setq= default-directory dir) (if ... ...) (set ... ...) (set-syntax-table minibu= ffer-local-filename-syntax))))))) (unwind-protect (progn (add-hook (quote m= inibuffer-setup-hook) setup-hook) (completing-read prompt (quote read-file-= name-internal) pred mustmatch insdef (quote file-name-history) default-file= name)) (remove-hook (quote minibuffer-setup-hook) setup-hook))) (let ((dir (file-name-as-directory (expand-file-name dir)))) (let (setup-= hook) (setq setup-hook (function (lambda nil (remove-hook (quote minibuffer= -setup-hook) setup-hook) (funcall (function (lambda nil ... ... ... ...))))= )) (unwind-protect (progn (add-hook (quote minibuffer-setup-hook) setup-hoo= k) (completing-read prompt (quote read-file-name-internal) pred mustmatch i= nsdef (quote file-name-history) default-filename)) (remove-hook (quote mini= buffer-setup-hook) setup-hook)))) (if (or (not (next-read-file-uses-dialog-p)) (file-remote-p dir)) (let ((= dir (file-name-as-directory (expand-file-name dir)))) (let (setup-hook) (se= tq setup-hook (function (lambda nil (remove-hook (quote minibuffer-setup-ho= ok) setup-hook) (funcall (function ...))))) (unwind-protect (progn (add-hoo= k (quote minibuffer-setup-hook) setup-hook) (completing-read prompt (quote = read-file-name-internal) pred mustmatch insdef (quote file-name-history) de= fault-filename)) (remove-hook (quote minibuffer-setup-hook) setup-hook)))) = (let ((file (file-name-nondirectory dir)) (dialog-mustmatch (not (memq must= match (quote (nil confirm confirm-after-completion)))))) (if (and (not defa= ult-filename) (not (zerop (length file)))) (progn (setq default-filename fi= le) (setq dir (file-name-directory dir)))) (if default-filename (progn (set= q default-filename (expand-file-name (if (consp default-filename) (car defa= ult-filename) default-filename) dir)))) (setq add-to-history t) (x-file-dia= log prompt dir default-filename dialog-mustmatch (eq predicate (quote file-= directory-p))))) (let* ((val (if (or (not (next-read-file-uses-dialog-p)) (file-remote-p d= ir)) (let ((dir (file-name-as-directory ...))) (let (setup-hook) (setq setu= p-hook (function ...)) (unwind-protect (progn ... ...) (remove-hook ... set= up-hook)))) (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) (min= ibuffer-completing-file-name t) (pred (or predicate (quote file-exists-p)))= (add-to-history nil)) (let* ((val (if (or (not (next-read-file-uses-dialog= -p)) (file-remote-p dir)) (let ((dir ...)) (let (setup-hook) (setq setup-ho= ok ...) (unwind-protect ... ...))) (let ((file ...) (dialog-mustmatch ...))= (if (and ... ...) (progn ... ...)) (if default-filename (progn ...)) (setq= add-to-history t) (x-file-dialog prompt dir default-filename dialog-mustma= tch (eq predicate ...))))) (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 (cdr file-name-history)))) (if (string=3D val1 (cadr fi= le-name-history)) (car (prog1 file-name-history (setq file-name-history ...= ))) (setcar file-name-history val1))) (if add-to-history (let ((val1 (minib= uffer--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 ini= tial (cons (minibuffer--double-dollars ...) (length ...)) (minibuffer--doub= le-dollars dir))) (initial (cons (minibuffer--double-dollars initial) 0))))= ) (let ((completion-ignore-case read-file-name-completion-ignore-case) (min= ibuffer-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-filena= me ...) (setq add-to-history t) (x-file-dialog prompt dir default-filename = dialog-mustmatch ...)))) (replace-in-history (eq (car-safe file-name-histor= y) val))) (if (consp default-filename) (progn (setq default-filename (car d= efault-filename)))) (if (eq val default-filename) (progn (if (not replace-i= n-history) (setq add-to-history t)) (setq val ""))) (if val nil (error "No = file name specified")) (if (and default-filename (string-equal val (if (con= sp insdef) (car insdef) insdef))) (setq val default-filename)) (setq val (s= ubstitute-in-file-name val)) (if replace-in-history (let ((val1 (minibuffer= --double-dollars val))) (if history-delete-duplicates (setcdr file-name-his= tory (delete val1 ...))) (if (string=3D val1 (cadr file-name-history)) (car= (prog1 file-name-history ...)) (setcar file-name-history val1))) (if add-t= o-history (let ((val1 ...)) (if (and ... ...) nil (setq file-name-history .= ..))))) val))) read-file-name-default("Find file: " nil "/data/steve/bzr/emacs/quickfixe= s/lisp/" confirm-after-completion nil nil) read-file-name("Find file: " nil "/data/steve/bzr/emacs/quickfixes/lisp/"= confirm-after-completion) find-file-read-args("Find file: " confirm-after-completion) byte-code("\300\301\302 \"\207" [find-file-read-args "Find file: " confir= m-nonexistent-file-or-buffer] 3) call-interactively(find-file nil nil) command-execute(find-file) --=-=-= Content-Type: text/plain If you leave read-file-name-completion-ignore-case nil (the default) and do the rest of recipe, it downloads the content of the URL, as expected. I suspect this bug is related to bug#11339. In GNU Emacs 24.3.50.6 (x86_64-suse-linux-gnu, GTK+ Version 3.4.4) of 2013-07-05 on rosalinde Bzr revision: 113286 sdl.web@gmail.com-20130705023739-rabvfwfbinmi56v3 Windowing system distributor `The X.Org Foundation', version 11.0.11203000 System Description: openSUSE 12.2 (x86_64) Configured using: `configure --without-toolkit-scroll-bars CFLAGS=-g3 -O0' Important settings: value of $LANG: en_US.UTF-8 value of $XMODIFIERS: @im=local locale-coding-system: utf-8-unix default enable-multibyte-characters: t --=-=-=--