emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/lisp/emacs-lisp/find-func.el


From: Stefan Monnier
Subject: [Emacs-diffs] Changes to emacs/lisp/emacs-lisp/find-func.el
Date: Mon, 09 Sep 2002 17:50:37 -0400

Index: emacs/lisp/emacs-lisp/find-func.el
diff -c emacs/lisp/emacs-lisp/find-func.el:1.39 
emacs/lisp/emacs-lisp/find-func.el:1.40
*** emacs/lisp/emacs-lisp/find-func.el:1.39     Sat Sep  7 02:45:43 2002
--- emacs/lisp/emacs-lisp/find-func.el  Mon Sep  9 17:50:36 2002
***************
*** 112,117 ****
--- 112,145 ----
  
  ;;; Functions:
  
+ (defun find-library-suffixes ()
+   (let ((suffixes nil))
+     (dolist (suffix load-suffixes (nreverse suffixes))
+       (unless (string-match "elc" suffix) (push suffix suffixes)))))
+ 
+ (defun find-library-name (library)
+   "Return the full name of the elisp source of LIBRARY."
+   ;; If the library is byte-compiled, try to find a source library by
+   ;; the same name.
+   (if (string-match "\\.el\\(c\\(\\..*\\)\\)\\'" library)
+       (setq library (replace-match "" t t library 1)))
+   (or (locate-file library
+                  (or find-function-source-path load-path)
+                  (find-library-suffixes))
+       (error "Can't find library %s" file)))
+ 
+ ;;;###autoload
+ (defun find-library (library)
+   "Find the elisp source of LIBRARY."
+   (interactive
+    (list
+     (completing-read "Library name: "
+                    'locate-file-completion
+                    (cons (or find-function-source-path load-path)
+                          (find-library-suffixes)))))
+   (let ((buf (find-file-noselect (find-library-name library))))
+     (condition-case nil (switch-to-buffer buf) (error (pop-to-buffer buf)))))
+ 
  ;;;###autoload
  (defun find-function-search-for-symbol (symbol variable-p library)
    "Search for SYMBOL.
***************
*** 126,148 ****
    (save-match-data
      (if (string-match "\\.el\\(c\\)\\'" library)
        (setq library (substring library 0 (match-beginning 1))))
!     (let* ((path find-function-source-path)
!          (compression (or (rassq 'jka-compr-handler file-name-handler-alist)
!                           (member 'crypt-find-file-hook find-file-hook)))
!          (filename (progn
!                      ;; use `file-name-sans-extension' here? (if it gets 
fixed)
!                      (if (string-match "\\(\\.el\\)\\'" library)
!                          (setq library (substring library 0
!                                                   (match-beginning 1))))
!                      (or (locate-library (concat library ".el") t path)
!                          (locate-library library t path)
!                          (if compression
!                              (or (locate-library (concat library ".el.gz")
!                                                  t path)
!                                  (locate-library (concat library ".gz")
!                                                  t path)))))))
!       (if (not filename)
!         (error "The library `%s' is not in the path" library))
        (with-current-buffer (find-file-noselect filename)
        (let ((regexp (format (if variable-p
                                  find-variable-regexp
--- 154,160 ----
    (save-match-data
      (if (string-match "\\.el\\(c\\)\\'" library)
        (setq library (substring library 0 (match-beginning 1))))
!     (let* ((filename (find-library-name library)))
        (with-current-buffer (find-file-noselect filename)
        (let ((regexp (format (if variable-p
                                  find-variable-regexp




reply via email to

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