emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r104034: * lisp/pcomplete.el (pcomple


From: Stefan Monnier
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r104034: * lisp/pcomplete.el (pcomplete-completions-at-point):
Date: Wed, 27 Apr 2011 21:18:12 -0300
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 104034
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Wed 2011-04-27 21:18:12 -0300
message:
  * lisp/pcomplete.el (pcomplete-completions-at-point):
  Obey pcomplete-ignore-case.  Don't call pcomplete-norm-func unless
  pcomplete-seen is non-nil.
  (pcomplete-comint-setup): Also recognize the new comint/shell
  completion functions.
  (pcomplete-do-complete): Don't call pcomplete-norm-func unless
  pcomplete-seen is non-nil.
modified:
  lisp/ChangeLog
  lisp/pcomplete.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2011-04-27 19:51:19 +0000
+++ b/lisp/ChangeLog    2011-04-28 00:18:12 +0000
@@ -1,3 +1,13 @@
+2011-04-28  Stefan Monnier  <address@hidden>
+
+       * pcomplete.el (pcomplete-completions-at-point):
+       Obey pcomplete-ignore-case.  Don't call pcomplete-norm-func unless
+       pcomplete-seen is non-nil.
+       (pcomplete-comint-setup): Also recognize the new comint/shell
+       completion functions.
+       (pcomplete-do-complete): Don't call pcomplete-norm-func unless
+       pcomplete-seen is non-nil.
+
 2011-04-27  Niels Giesen  <address@hidden>
 
        * calendar/icalendar.el (diary-lib): Add require statement.

=== modified file 'lisp/pcomplete.el'
--- a/lisp/pcomplete.el 2011-04-19 13:44:55 +0000
+++ b/lisp/pcomplete.el 2011-04-28 00:18:12 +0000
@@ -522,23 +522,24 @@
                                        (directory-file-name f)))
                             pcomplete-seen))
               (lambda (f)
-                (not (member
-                      (funcall pcomplete-norm-func
-                               (directory-file-name f))
-                      pcomplete-seen))))))
-
-      (list
-       beg (point)
-       ;; Add a space at the end of completion.  Use a terminator-regexp
-       ;; that never matches since the terminator cannot appear
-       ;; within the completion field anyway.
-       (if (zerop (length pcomplete-termination-string))
-           table
-         (apply-partially 'completion-table-with-terminator
-                          (cons pcomplete-termination-string
-                                "\\`a\\`")
-                          table))
-       :predicate pred))))
+                (not (when pcomplete-seen
+                       (member
+                        (funcall pcomplete-norm-func
+                                 (directory-file-name f))
+                        pcomplete-seen)))))))
+      (unless (zerop (length pcomplete-termination-string))
+        ;; Add a space at the end of completion.  Use a terminator-regexp
+        ;; that never matches since the terminator cannot appear
+        ;; within the completion field anyway.
+        (setq table
+              (apply-partially #'completion-table-with-terminator
+                               (cons pcomplete-termination-string
+                                     "\\`a\\`")
+                               table)))
+      (when pcomplete-ignore-case
+        (setq table
+              (apply-partially #'completion-table-case-fold table)))
+      (list beg (point) table :predicate pred))))
 
  ;; I don't think such commands are usable before first setting up buffer-local
  ;; variables to parse args, so there's no point autoloading it.
@@ -781,7 +782,9 @@
   (set (make-local-variable completef-sym)
        (copy-sequence (symbol-value completef-sym)))
   (let* ((funs (symbol-value completef-sym))
-        (elem (or (memq 'shell-dynamic-complete-filename funs)
+        (elem (or (memq 'comint-filename-completion funs)
+                   (memq 'shell-filename-completion funs)
+                   (memq 'shell-dynamic-complete-filename funs)
                   (memq 'comint-dynamic-complete-filename funs))))
     (if elem
        (setcar elem 'pcomplete)
@@ -1248,11 +1251,12 @@
       (setq completions
             (apply-partially 'completion-table-with-predicate
                              completions
-                             (lambda (f)
-                               (not (member
-                                     (funcall pcomplete-norm-func
-                                              (directory-file-name f))
-                                     pcomplete-seen)))
+                             (when pcomplete-seen
+                               (lambda (f)
+                                 (not (member
+                                       (funcall pcomplete-norm-func
+                                                (directory-file-name f))
+                                       pcomplete-seen))))
                              'strict)))
     ;; OK, we've got a list of completions.
     (if pcomplete-show-list


reply via email to

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