bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#5955: completions in M-x find-library include .elc files


From: Stefan Monnier
Subject: bug#5955: completions in M-x find-library include .elc files
Date: Mon, 26 Jul 2010 01:58:49 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

>>>>> "Stefan" == Stefan Monnier <monnier@IRO.UMontreal.CA> writes:

>>>> Typing TAB or ? in M-x find-library shows .el and .elc files when it
>>>> probably should just be the name of the library without the extension.
>>> I added the `push' because in load-library I often want to
>>> select a particular file (i.e. either the .el or the .elc file).
>> Doesn't M-x load-library and specifying no extension load the .elc?

> Usually, yes.

BTW, please try the patch below, to see if you like the
resulting behavior.


        Stefan


=== modified file 'lisp/files.el'
--- lisp/files.el       2010-06-13 19:52:42 +0000
+++ lisp/files.el       2010-07-25 23:57:51 +0000
@@ -777,9 +777,12 @@
                (if x (1- (length x)) (length suffix))))))
    (t
     (let ((names nil)
+          (stripsuffix t)
          (suffix (concat (regexp-opt suffixes t) "\\'"))
          (string-dir (file-name-directory string))
           (string-file (file-name-nondirectory string)))
+      (while
+          (progn
       (dolist (dir dirs)
        (unless dir
          (setq dir default-directory))
@@ -787,10 +790,15 @@
        (when (file-directory-p dir)
          (dolist (file (file-name-all-completions
                         string-file dir))
+                  (if (not (string-match suffix file))
            (push file names)
-           (when (string-match suffix file)
+                    (unless stripsuffix (push file names))
              (setq file (substring file 0 (match-beginning 0)))
               (push file names)))))
+            ;; Remove duplicates of the first element.
+            (setq names (cons (car names) (delete (car names) (cdr names))))
+            (prog1 (and stripsuffix (= 1 (length names)))
+              (setq stripsuffix nil))))
       (completion-table-with-context
        string-dir names string-file pred action)))))
 






reply via email to

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