]> git.eshelyaron.com Git - emacs.git/commitdiff
(gud-perldb-massage-args): Massage correctly in the
authorGerd Moellmann <gerd@gnu.org>
Mon, 1 Nov 1999 21:10:27 +0000 (21:10 +0000)
committerGerd Moellmann <gerd@gnu.org>
Mon, 1 Nov 1999 21:10:27 +0000 (21:10 +0000)
presence of perl switches other than "-e".

lisp/gud.el

index edf4d028f0592ca35267c39c77465ed3436c68a9..036515176aea32df57b8ae8488a4502c1f3519f1 100644 (file)
@@ -1185,13 +1185,26 @@ directories if your program contains sources from more than one directory."
 (defvar gud-perldb-history nil)
 
 (defun gud-perldb-massage-args (file args)
-  (cond ((equal (car args) "-e")
-        (cons "-d"
-              (cons (car args)
-                    (cons (nth 1 args)
-                          (cons "--" (cons "-emacs" (cdr (cdr args))))))))
-       (t
-        (cons "-d" (cons (car args) (cons "-emacs" (cdr args)))))))
+  (let (new-args)
+
+    (while (and args
+               (string-match "^-[^-]" (car args)))
+      (setq new-args (cons (car args) new-args))
+      (setq args (cdr args)))
+
+    (if args
+       (progn
+         (setq new-args (cons (car args) new-args))
+         (setq args (cdr args)))
+      (setq new-args (cons "--" new-args)))
+
+    (setq new-args (cons "-emacs" new-args))
+
+    (while args
+      (setq new-args (cons (car args) new-args))
+      (setq args (cdr args)))
+
+    (cons "-d" (nreverse new-args))))
 
 ;; There's no guarantee that Emacs will hand the filter the entire
 ;; marker at once; it could be broken up across several strings.  We