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

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

gud.el changes for non-ASCII


From: Dave Love
Subject: gud.el changes for non-ASCII
Date: 31 Mar 2003 19:33:14 +0100
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

I haven't tested all these, and some of them may be for places where
non-ASCII currently can't occur, but that shouldn't cause problems.

2003-03-14  Dave Love  <address@hidden>

        * gud.el (gud-gdb-get-stackframe, gud-perldb-marker-filter)
        (gud-pdb-marker-regexp, gud-jdb-marker-filter)
        (gud-bashdb-marker-filter, gud-find-class): Use char classes to
        allow non-ASCII.

*** gud.el.~1.175.~     Fri Feb 21 19:26:42 2003
--- gud.el      Fri Mar 14 12:28:30 2003
***************
*** 597,606 ****
        (dolist (e fetched-stack-frame-list)
        (let ((name nil) (num nil))
          (if (not (or
!                   (string-match "^#\\([0-9]+\\) +[0-9a-fx]+ in 
\\([:0-9a-zA-Z_]+\\) (" e)
!                   (string-match "^#\\([0-9]+\\) +\\([:0-9a-zA-Z_]+\\) (" e)))
              (if (not (string-match
!                       "at \\([-0-9a-zA-Z_.]+\\):\\([0-9]+\\)$" e))
                  nil
                (setcar newlst
                        (list (nth 0 (car newlst))
--- 597,606 ----
        (dolist (e fetched-stack-frame-list)
        (let ((name nil) (num nil))
          (if (not (or
!                   (string-match "^#\\([0-9]+\\) +[[:xdigit:]]+ in 
\\([:[:alnum:]_]+\\) (" e)
!                   (string-match "^#\\([0-9]+\\) +\\([:[:alnum:]_]+\\) (" e)))
              (if (not (string-match
!                       "at \\([-[:alnum:]_.]+\\):\\([0-9]+\\)$" e))
                  nil
                (setcar newlst
                        (list (nth 0 (car newlst))
***************
*** 612,618 ****
            (setq newlst
                  (cons
                   (if (string-match
!                       "at \\([-0-9a-zA-Z_.]+\\):\\([0-9]+\\)$" e)
                       (list name num (match-string 1 e)
                             (match-string 2 e))
                     (list name num))
--- 612,618 ----
            (setq newlst
                  (cons
                   (if (string-match
!                       "at \\([-[:alnum:]_.]+\\):\\([0-9]+\\)$" e)
                       (list name num (match-string 1 e)
                             (match-string 2 e))
                     (list name num))
***************
*** 1186,1192 ****
    (let ((output ""))
  
      ;; Process all the complete markers in this chunk.
!     (while (string-match 
"\032\032\\(\\([a-zA-Z]:\\)?[^:\n]*\\):\\([0-9]*\\):.*\n"
                         gud-marker-acc)
        (setq
  
--- 1186,1192 ----
    (let ((output ""))
  
      ;; Process all the complete markers in this chunk.
!     (while (string-match 
"\032\032\\(\\([[:alpha:]]:\\)?[^:\n]*\\):\\([0-9]*\\):.*\n"
                         gud-marker-acc)
        (setq
  
***************
*** 1264,1270 ****
  ;; Last group is for return value, e.g. "> test.py(2)foo()->None"
  ;; Either file or function name may be omitted: "> <string>(0)?()"
  (defvar gud-pdb-marker-regexp
!   "^> 
\\([-a-zA-Z0-9_/.:\\]*\\|<string>\\)(\\([0-9]+\\))\\([a-zA-Z0-9_]*\\|\\?\\)()\\(->[^\n]*\\)?\n")
  (defvar gud-pdb-marker-regexp-file-group 1)
  (defvar gud-pdb-marker-regexp-line-group 2)
  (defvar gud-pdb-marker-regexp-fnname-group 3)
--- 1264,1270 ----
  ;; Last group is for return value, e.g. "> test.py(2)foo()->None"
  ;; Either file or function name may be omitted: "> <string>(0)?()"
  (defvar gud-pdb-marker-regexp
!   "^> 
\\([-[:alnum:]_/.:\\]*\\|<string>\\)(\\([0-9]+\\))\\([[:alnum:]_]*\\|\\?\\)()\\(->[^\n]*\\)?\n")
  (defvar gud-pdb-marker-regexp-file-group 1)
  (defvar gud-pdb-marker-regexp-line-group 2)
  (defvar gud-pdb-marker-regexp-fnname-group 3)
***************
*** 1419,1426 ****
  ;;
  ;; Not sure what happens with inner classes ... haven't tried them.
  ;;
- ;; Does not grok UNICODE id's.  Only ASCII id's are supported.
- ;;
  ;; You must not put whitespace between "-classpath" and the path to
  ;; search for java classes even though it is required when invoking jdb
  ;; from the command line.  See gud-jdb-massage-args for details.
--- 1419,1424 ----
***************
*** 1898,1914 ****
         ;; matches <line-number>.  We don't care about using
         ;; <method> so we don't "group" it.
         ;;
-        ;; FIXME: Java ID's are UNICODE strings, this matches ASCII
-        ;; ID's only.
-          ;;
           ;; The "," in the last square-bracket is necessary because of
           ;; Sun's total disrespect for backwards compatibility in
           ;; reported line numbers from jdb - starting in 1.4.0 they
           ;; introduced a comma at the thousands position (how
           ;; ingenious!)
  
!        "\\(\[[0-9]+\] \\)*\\([a-zA-Z0-9.$_]+\\)\\.[a-zA-Z0-9$_<>(),]+ \
! \\(([a-zA-Z0-9.$_]+:\\|line=\\)\\([0-9,]+\\)"
         gud-marker-acc)
  
        ;; A good marker is one that:
--- 1896,1909 ----
         ;; matches <line-number>.  We don't care about using
         ;; <method> so we don't "group" it.
         ;;
           ;; The "," in the last square-bracket is necessary because of
           ;; Sun's total disrespect for backwards compatibility in
           ;; reported line numbers from jdb - starting in 1.4.0 they
           ;; introduced a comma at the thousands position (how
           ;; ingenious!)
  
!        "\\(\[[0-9]+\] \\)*\\([[:alnum:].$_]+\\)\\.[[:alnum:]$_<>(),]+ \
! \\(([[:alnum:].$_]+:\\|line=\\)\\([0-9,]+\\)"
         gud-marker-acc)
  
        ;; A good marker is one that:
***************
*** 2073,2079 ****
      ;;   (/etc/init.d/ntp.init:16):
      ;; but we also allow DOS drive letters
      ;;   (d:/etc/init.d/ntp.init:16):
!     (while (string-match 
"\\(^\\|\n\\)(\\(\\([a-zA-Z]:\\)?[^:\n]*\\):\\([0-9]*\\)):.*\n"
                         gud-marker-acc)
        (setq
  
--- 2068,2074 ----
      ;;   (/etc/init.d/ntp.init:16):
      ;; but we also allow DOS drive letters
      ;;   (d:/etc/init.d/ntp.init:16):
!     (while (string-match 
"\\(^\\|\n\\)(\\(\\([[:alpha:]]:\\)?[^:\n]*\\):\\([0-9]*\\)):.*\n"
                         gud-marker-acc)
        (setq
  
***************
*** 2841,2847 ****
                            ;; Now we're at the beginning of a class
                            ;; definition.  Find class name
                            (looking-at
!                            "[A-Za-z0-9 \t\n]*?class[ \t\n]+\\([^ \t\n]+\\)")
                            (setq nclass
                                  (append (list (match-string-no-properties 1))
                                          nclass)))
--- 2836,2842 ----
                            ;; Now we're at the beginning of a class
                            ;; definition.  Find class name
                            (looking-at
!                            "[[:alnum:] \t\n]*?class[ \t\n]+\\([^ \t\n]+\\)")
                            (setq nclass
                                  (append (list (match-string-no-properties 1))
                                          nclass)))




reply via email to

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