branch: externals/idlwave
commit 0e1b07fc812eddb1a179c667fd978dbb5c0bd444
Author: JD Smith <jdtsm...@gmail.com>
Commit: JD Smith <jdtsm...@gmail.com>

    Query function paths correctly
---
 idlw-shell.el | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/idlw-shell.el b/idlw-shell.el
index 5ff7d7af99..9e7d3f2c7d 100644
--- a/idlw-shell.el
+++ b/idlw-shell.el
@@ -4031,30 +4031,31 @@ Elements of the alist have the form:
 
   (module name . (source-file-truename idlwave-internal-filename)).")
 
-(defun idlwave-shell-module-source-query (module)
-  "Determine the source file for a given module."
+(defun idlwave-shell-module-source-query (module &optional type)
+  "Determine the source file for a given module.
+Query as a function if TYPE set to something beside 'pro."
   (if module
       (idlwave-shell-send-command 
-       (format "print,(routine_info('%s',/SOURCE)).PATH" module)
+       (format "print,(routine_info('%s',/SOURCE%s)).PATH" module
+              (if (eq type 'pro) "" ",/FUNCTIONS"))
        `(idlwave-shell-module-source-filter ,module)
-       'hide)))
+       'hide 'wait)))
 
 (defun idlwave-shell-module-source-filter (module)
   "Get module source, and update idlwave-shell-sources-alist."
   (let ((old (assoc (upcase module) idlwave-shell-sources-alist))
        filename)
-    (if (string-match "\.PATH *[\n\r]\\([^\r\n]+\\)[\n\r]"
+    (when (string-match "\.PATH *[\n\r]\\([^%][^\r\n]+\\)[\n\r]"
                      idlwave-shell-command-output)
        (setq filename (substring idlwave-shell-command-output 
                                  (match-beginning 1) (match-end 1)))
-      (error "No file matching module found."))
     (if old
        (setcdr old (list (idlwave-shell-file-name filename) filename))
       (setq idlwave-shell-sources-alist
            (append idlwave-shell-sources-alist 
                    (list (cons (upcase module)
                                (list (idlwave-shell-file-name filename) 
-                                     filename))))))))
+                                       filename)))))))))
   
 (defun idlwave-shell-sources-query ()
   "Determine source files for all IDL compiled procedures.

Reply via email to