From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: org-olpath-completing-read is not friendly with partial-completion-mode Date: Fri, 16 Oct 2009 18:27:15 +0200 Message-ID: References: <9649271a0910152352sc186a71qdd94c8e4b1829f8@mail.gmail.com> Mime-Version: 1.0 (Apple Message framework v936) Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Myq0V-0002b4-2C for emacs-orgmode@gnu.org; Fri, 16 Oct 2009 12:50:23 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Myq0P-0002Uc-V4 for emacs-orgmode@gnu.org; Fri, 16 Oct 2009 12:50:22 -0400 Received: from [199.232.76.173] (port=44554 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Myq0P-0002Tw-B7 for emacs-orgmode@gnu.org; Fri, 16 Oct 2009 12:50:17 -0400 Received: from ey-out-1920.google.com ([74.125.78.144]:16324) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Myq0O-0005r8-FZ for emacs-orgmode@gnu.org; Fri, 16 Oct 2009 12:50:17 -0400 Received: by ey-out-1920.google.com with SMTP id 3so2405034eyh.34 for ; Fri, 16 Oct 2009 09:50:15 -0700 (PDT) In-Reply-To: <9649271a0910152352sc186a71qdd94c8e4b1829f8@mail.gmail.com> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Levin Du Cc: Org-mode Mode Hi Levin, I am already turning off partial completion mode for a number of relevant completion prompts, even have defined a macro org-without- partial-completion for this purpose. In what particular circumstance are you hit by this problem? - Carsten On Oct 16, 2009, at 8:52 AM, Levin Du wrote: > Try this: > > (partial-completion-mode t) > (funcall 'org-olpath-completing-read "? " > '("todo1.org/tasks/" > "todo1.org/tasks/normal/" > "todo1.org/tasks/urgent/" > "note.org/") > nil t nil nil) > > todo > > It stays on todo1.org/ (Sole completion) > > > > my raw patch: > diff --git a/vendor/org/org.el b/vendor/org/org.el > index d3d886f..f3a02cf 100644 > --- a/vendor/org/org.el > +++ b/vendor/org/org.el > @@ -7780,23 +7780,29 @@ from." > > (defun org-icompleting-read (&rest args) > "Completing-read using `ido-mode' or `iswitchb' speedups if > available" > - (if (and org-completion-use-ido > - (fboundp 'ido-completing-read) > - (boundp 'ido-mode) ido-mode > - (listp (second args))) > - (let ((ido-enter-matching-directory nil)) > - (apply 'ido-completing-read (concat (car args)) > - (if (consp (car (nth 1 args))) > - (mapcar (lambda (x) (car x)) (nth 1 args)) > - (nth 1 args)) > - (cddr args))) > - (if (and org-completion-use-iswitchb > - (boundp 'iswitchb-mode) iswitchb-mode > - (listp (second args))) > - (apply 'org-iswitchb-completing-read (concat (car args)) > - (mapcar (lambda (x) (car x)) (nth 1 args)) > - (cddr args)) > - (apply 'completing-read args)))) > + (let ((saved-pc-mode partial-completion-mode)) > + (when saved-pc-mode > + (partial-completion-mode 0)) > + (unwind-protect > + (if (and org-completion-use-ido > + (fboundp 'ido-completing-read) > + (boundp 'ido-mode) ido-mode > + (listp (second args))) > + (let ((ido-enter-matching-directory nil)) > + (apply 'ido-completing-read (concat (car args)) > + (if (consp (car (nth 1 args))) > + (mapcar (lambda (x) (car x)) (nth 1 args)) > + (nth 1 args)) > + (cddr args))) > + (if (and org-completion-use-iswitchb > + (boundp 'iswitchb-mode) iswitchb-mode > + (listp (second args))) > + (apply 'org-iswitchb-completing-read (concat (car > args)) > + (mapcar (lambda (x) (car x)) (nth 1 args)) > + (cddr args)) > + (apply 'completing-read args))) > + (when saved-pc-mode > + (partial-completion-mode 1))))) > > (defun org-extract-attributes (s) > "Extract the attributes cookie from a string and set as text > property." > @@ -8890,7 +8896,6 @@ See also `org-refile-use-outline-path' and > `org-completion-use-ido'" > (unless org-refile-target-table > (error "No refile targets")) > (let* ((cbuf (current-buffer)) > - (partial-completion-mode nil) > (cfn (buffer-file-name (buffer-base-buffer cbuf))) > (cfunc (if (and org-refile-use-outline-path > org-outline-path-complete-in-steps) > > > Hope it helps. > > Regards, > Levin > > > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode - Carsten