emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

PC-completion and trailing dashes.


From: Michaël Cadilhac
Subject: PC-completion and trailing dashes.
Date: Fri, 14 Apr 2006 18:30:49 +0200

  Here's the problem:

  emacs -Q
  M-x partial-completion-mode RET
  M-x set- RET then click a choice, you'll have the error message
  `Symbol function definition is void: set-yourchoice-'

  M-x set-s- RET then select one and your choice will be suffixed with
  `-s-'.

  The smallest change I can propose is the following:

Index: ChangeLog
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/ChangeLog,v
retrieving revision 1.9401
diff -b -c -w -r1.9401 ChangeLog
*** ChangeLog   14 Apr 2006 11:30:20 -0000      1.9401
--- ChangeLog   14 Apr 2006 16:22:47 -0000
***************
*** 1,3 ****
--- 1,11 ----
+ 2006-04-14  Michaël Cadilhac  <address@hidden>  (tiny change)
+ 
+       * complete.el (PC-goto-eob-and-ret-nil): Function to go to the
+       end of buffer and that returns `nil'.
+       (partial-completion-mode): Use it as a function of
+       `choose-completion-string-functions' to be sure that the whole
+       buffer will be erased before choice insertion.
+ 
  2006-04-14  Stefan Monnier  <address@hidden>
  
        * progmodes/cc-langs.el (c-mode-menu):
Index: complete.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/complete.el,v
retrieving revision 1.45
diff -b -c -w -r1.45 complete.el
*** complete.el 6 Aug 2005 22:13:42 -0000       1.45
--- complete.el 14 Apr 2006 16:22:47 -0000
***************
*** 1,7 ****
  ;;; complete.el --- partial completion mechanism plus other goodies
  
  ;; Copyright (C) 1990, 1991, 1992, 1993, 1999, 2000, 2002, 2003, 2004,
! ;;   2005 Free Software Foundation, Inc.
  
  ;; Author: Dave Gillespie <address@hidden>
  ;; Keywords: abbrev convenience
--- 1,7 ----
  ;;; complete.el --- partial completion mechanism plus other goodies
  
  ;; Copyright (C) 1990, 1991, 1992, 1993, 1999, 2000, 2002, 2003, 2004,
! ;;   2005, 2006 Free Software Foundation, Inc.
  
  ;; Author: Dave Gillespie <address@hidden>
  ;; Keywords: abbrev convenience
***************
*** 221,226 ****
--- 221,230 ----
               (symbol-function 'read-file-name-internal))
         (fset 'read-file-name-internal
               'PC-read-include-file-name-internal)))
+   ;; Fix for completion-list selections.
+   (if partial-completion-mode
+       (add-hook 'choose-completion-string-functions 'PC-goto-eob-and-ret-nil)
+     (remove-hook 'choose-completion-string-functions 
'PC-goto-eob-and-ret-nil))
    (when (and partial-completion-mode (null PC-env-vars-alist))
      (setq PC-env-vars-alist
          (mapcar (lambda (string)
***************
*** 941,946 ****
--- 945,958 ----
      (funcall PC-old-read-file-name-internal string dir action)))

  
+ ;; Hack to be sure that on validation in the completion list, everything
+ ;; will be erased before the choice is inserted.
+ (defun PC-goto-eob-and-ret-nil (&rest args)
+   (goto-char (point-max))
+   nil)
+ 
+
+ 
  (provide 'complete)
  
  ;; arch-tag: fc7e2768-ff44-4e22-b579-4d825b968458
  The  aim  is  that `choose-completion-string'  will  `delete-region'
  everything from (+ base-size (point-min)) to (point-max).

  The added  function could  also directly erase  the region,  I don't
  know what's the best here. I don't even know if this way is ok ;-)

  Thanks in advance, however.

-- 
 |      Michaël `Micha' Cadilhac   |   Un certain Blaise Pascal             |
 |         Epita/LRDE Promo 2007   |     etc... etc...                      |
 | http://www.lrde.org/~cadilh_m   |   -- Prévert (Les paris stupides)      |
 `--  -   JID: address@hidden --'                                   -  --'

Attachment: pgpkdV2J4XBdi.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]