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

    'break-in': Set a breakpoint in any module
    Not just shell sources
---
 idlw-shell.el | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)

diff --git a/idlw-shell.el b/idlw-shell.el
index d293808d8d..77f1ab90d4 100644
--- a/idlw-shell.el
+++ b/idlw-shell.el
@@ -2747,22 +2747,29 @@ The command looks for an identifier near point and sets 
a breakpoint
 for the first line of the corresponding module.  If MODULE is `t', set
 in the current routine."
   (interactive)
-  (let ((module (idlwave-fix-module-if-obj_new (idlwave-what-module))))
+  (let* ((module (idlwave-fix-module-if-obj_new (idlwave-what-module)))
+        (type (nth 1 module))
+        (name (car module))
+        (class (nth 2 module)))
     (if module
        (progn 
-         (setq module (idlwave-make-full-name (nth 2 module) (car module)))
-         (idlwave-shell-module-source-query module)
-         (idlwave-shell-set-bp-in-module module))
+         (setq module (idlwave-make-full-name class name))
+         (idlwave-shell-module-source-query module type)
+         (idlwave-shell-set-bp-in-module name type class))
       (error "No identifier at point"))))
 
 
-(defun idlwave-shell-set-bp-in-module (module)
+(defun idlwave-shell-set-bp-in-module (name type class)
   "Set breakpoint in module.  Assumes that `idlwave-shell-sources-alist'
 contains an entry for that module."
-  (let ((source-file (car-safe 
-                     (cdr-safe
-                      (assoc (upcase module)
-                             idlwave-shell-sources-alist))))
+  (let* ((module (idlwave-make-full-name class name))
+        (source-file 
+        (car-safe (cdr-safe
+                   (or
+                     (assoc (upcase module)
+                           idlwave-shell-sources-alist)
+                    (nth 3 (idlwave-best-rinfo-assoc name type class 
+                                                     (idlwave-routines)))))))
        buf)
     (if (or (not source-file)
            (not (file-regular-p source-file))

Reply via email to