diff options
| author | Miles Bader | 2007-12-06 09:51:45 +0000 |
|---|---|---|
| committer | Miles Bader | 2007-12-06 09:51:45 +0000 |
| commit | 0bd508417142ff377f34aec8dcec9438d9175c2c (patch) | |
| tree | 4d60fe09e5cebf7d79766b11e9cda8cc1c9dbb9b /lisp/progmodes | |
| parent | 98fe991da804a42f53f6a5e84cd5eab18a82e181 (diff) | |
| parent | 9fb1ba8090da3528de56158a79bd3527d31c7f2f (diff) | |
| download | emacs-0bd508417142ff377f34aec8dcec9438d9175c2c.tar.gz emacs-0bd508417142ff377f34aec8dcec9438d9175c2c.zip | |
Merge from emacs--devo--0
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-294
Diffstat (limited to 'lisp/progmodes')
| -rw-r--r-- | lisp/progmodes/antlr-mode.el | 21 | ||||
| -rw-r--r-- | lisp/progmodes/cc-engine.el | 26 | ||||
| -rw-r--r-- | lisp/progmodes/cc-subword.el | 2 | ||||
| -rw-r--r-- | lisp/progmodes/compile.el | 51 | ||||
| -rw-r--r-- | lisp/progmodes/cperl-mode.el | 10 | ||||
| -rw-r--r-- | lisp/progmodes/dcl-mode.el | 1 | ||||
| -rw-r--r-- | lisp/progmodes/flymake.el | 7 | ||||
| -rw-r--r-- | lisp/progmodes/fortran.el | 2 | ||||
| -rw-r--r-- | lisp/progmodes/gdb-ui.el | 138 | ||||
| -rw-r--r-- | lisp/progmodes/grep.el | 61 | ||||
| -rw-r--r-- | lisp/progmodes/gud.el | 20 | ||||
| -rw-r--r-- | lisp/progmodes/idlw-complete-structtag.el | 3 | ||||
| -rw-r--r-- | lisp/progmodes/idlw-help.el | 40 | ||||
| -rw-r--r-- | lisp/progmodes/idlwave.el | 10 | ||||
| -rw-r--r-- | lisp/progmodes/octave-mod.el | 2 | ||||
| -rw-r--r-- | lisp/progmodes/perl-mode.el | 4 | ||||
| -rw-r--r-- | lisp/progmodes/prolog.el | 5 | ||||
| -rw-r--r-- | lisp/progmodes/ps-mode.el | 3 | ||||
| -rw-r--r-- | lisp/progmodes/python.el | 6 | ||||
| -rw-r--r-- | lisp/progmodes/sh-script.el | 2 |
20 files changed, 292 insertions, 122 deletions
diff --git a/lisp/progmodes/antlr-mode.el b/lisp/progmodes/antlr-mode.el index 01f1c86618c..9f6e70dcce5 100644 --- a/lisp/progmodes/antlr-mode.el +++ b/lisp/progmodes/antlr-mode.el | |||
| @@ -840,7 +840,8 @@ Do not change." | |||
| 840 | (defface antlr-keyword | 840 | (defface antlr-keyword |
| 841 | (cond-emacs-xemacs | 841 | (cond-emacs-xemacs |
| 842 | '((((class color) (background light)) | 842 | '((((class color) (background light)) |
| 843 | (:foreground "black" :EMACS :weight bold :XEMACS :bold t)))) | 843 | (:foreground "black" :EMACS :weight bold :XEMACS :bold t)) |
| 844 | (t :inherit font-lock-keyword-face))) | ||
| 844 | "ANTLR keywords." | 845 | "ANTLR keywords." |
| 845 | :group 'antlr) | 846 | :group 'antlr) |
| 846 | ;; backward-compatibility alias | 847 | ;; backward-compatibility alias |
| @@ -850,7 +851,8 @@ Do not change." | |||
| 850 | (defface antlr-syntax | 851 | (defface antlr-syntax |
| 851 | (cond-emacs-xemacs | 852 | (cond-emacs-xemacs |
| 852 | '((((class color) (background light)) | 853 | '((((class color) (background light)) |
| 853 | (:foreground "black" :EMACS :weight bold :XEMACS :bold t)))) | 854 | (:foreground "black" :EMACS :weight bold :XEMACS :bold t)) |
| 855 | (t :inherit font-lock-constant-face))) | ||
| 854 | "ANTLR syntax symbols like :, |, (, ), ...." | 856 | "ANTLR syntax symbols like :, |, (, ), ...." |
| 855 | :group 'antlr) | 857 | :group 'antlr) |
| 856 | ;; backward-compatibility alias | 858 | ;; backward-compatibility alias |
| @@ -860,7 +862,8 @@ Do not change." | |||
| 860 | (defface antlr-ruledef | 862 | (defface antlr-ruledef |
| 861 | (cond-emacs-xemacs | 863 | (cond-emacs-xemacs |
| 862 | '((((class color) (background light)) | 864 | '((((class color) (background light)) |
| 863 | (:foreground "blue" :EMACS :weight bold :XEMACS :bold t)))) | 865 | (:foreground "blue" :EMACS :weight bold :XEMACS :bold t)) |
| 866 | (t :inherit font-lock-function-name-face))) | ||
| 864 | "ANTLR rule references (definition)." | 867 | "ANTLR rule references (definition)." |
| 865 | :group 'antlr) | 868 | :group 'antlr) |
| 866 | ;; backward-compatibility alias | 869 | ;; backward-compatibility alias |
| @@ -870,7 +873,8 @@ Do not change." | |||
| 870 | (defface antlr-tokendef | 873 | (defface antlr-tokendef |
| 871 | (cond-emacs-xemacs | 874 | (cond-emacs-xemacs |
| 872 | '((((class color) (background light)) | 875 | '((((class color) (background light)) |
| 873 | (:foreground "blue" :EMACS :weight bold :XEMACS :bold t)))) | 876 | (:foreground "blue" :EMACS :weight bold :XEMACS :bold t)) |
| 877 | (t :inherit font-lock-function-name-face))) | ||
| 874 | "ANTLR token references (definition)." | 878 | "ANTLR token references (definition)." |
| 875 | :group 'antlr) | 879 | :group 'antlr) |
| 876 | ;; backward-compatibility alias | 880 | ;; backward-compatibility alias |
| @@ -878,7 +882,8 @@ Do not change." | |||
| 878 | 882 | ||
| 879 | (defvar antlr-ruleref-face 'antlr-ruleref) | 883 | (defvar antlr-ruleref-face 'antlr-ruleref) |
| 880 | (defface antlr-ruleref | 884 | (defface antlr-ruleref |
| 881 | '((((class color) (background light)) (:foreground "blue4"))) | 885 | '((((class color) (background light)) (:foreground "blue4")) |
| 886 | (t :inherit font-lock-type-face)) | ||
| 882 | "ANTLR rule references (usage)." | 887 | "ANTLR rule references (usage)." |
| 883 | :group 'antlr) | 888 | :group 'antlr) |
| 884 | ;; backward-compatibility alias | 889 | ;; backward-compatibility alias |
| @@ -886,7 +891,8 @@ Do not change." | |||
| 886 | 891 | ||
| 887 | (defvar antlr-tokenref-face 'antlr-tokenref) | 892 | (defvar antlr-tokenref-face 'antlr-tokenref) |
| 888 | (defface antlr-tokenref | 893 | (defface antlr-tokenref |
| 889 | '((((class color) (background light)) (:foreground "orange4"))) | 894 | '((((class color) (background light)) (:foreground "orange4")) |
| 895 | (t :inherit font-lock-type-face)) | ||
| 890 | "ANTLR token references (usage)." | 896 | "ANTLR token references (usage)." |
| 891 | :group 'antlr) | 897 | :group 'antlr) |
| 892 | ;; backward-compatibility alias | 898 | ;; backward-compatibility alias |
| @@ -896,7 +902,8 @@ Do not change." | |||
| 896 | (defface antlr-literal | 902 | (defface antlr-literal |
| 897 | (cond-emacs-xemacs | 903 | (cond-emacs-xemacs |
| 898 | '((((class color) (background light)) | 904 | '((((class color) (background light)) |
| 899 | (:foreground "brown4" :EMACS :weight bold :XEMACS :bold t)))) | 905 | (:foreground "brown4" :EMACS :weight bold :XEMACS :bold t)) |
| 906 | (t :inherit font-lock-string-face))) | ||
| 900 | "ANTLR special literal tokens. | 907 | "ANTLR special literal tokens. |
| 901 | It is used to highlight strings matched by the first regexp group of | 908 | It is used to highlight strings matched by the first regexp group of |
| 902 | `antlr-font-lock-literal-regexp'." | 909 | `antlr-font-lock-literal-regexp'." |
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index a019f598918..7666da75f9b 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el | |||
| @@ -604,7 +604,7 @@ comment at the start of cc-engine.el for more info." | |||
| 604 | ;; (e.g. if). | 604 | ;; (e.g. if). |
| 605 | ;; | 605 | ;; |
| 606 | ;; | 606 | ;; |
| 607 | ;; The following diagram briefly outlines the PDA. | 607 | ;; The following diagram briefly outlines the PDA. |
| 608 | ;; | 608 | ;; |
| 609 | ;; Common state: | 609 | ;; Common state: |
| 610 | ;; "else": Push state, goto state `else'. | 610 | ;; "else": Push state, goto state `else'. |
| @@ -1079,7 +1079,7 @@ single `?' is found, then `c-maybe-labelp' is cleared. | |||
| 1079 | 1079 | ||
| 1080 | For AWK, a statement which is terminated by an EOL (not a \; or a }) is | 1080 | For AWK, a statement which is terminated by an EOL (not a \; or a }) is |
| 1081 | regarded as having a \"virtual semicolon\" immediately after the last token on | 1081 | regarded as having a \"virtual semicolon\" immediately after the last token on |
| 1082 | the line. If this virtual semicolon is _at_ from, the function recognises it. | 1082 | the line. If this virtual semicolon is _at_ from, the function recognizes it. |
| 1083 | 1083 | ||
| 1084 | Note that this function might do hidden buffer changes. See the | 1084 | Note that this function might do hidden buffer changes. See the |
| 1085 | comment at the start of cc-engine.el for more info." | 1085 | comment at the start of cc-engine.el for more info." |
| @@ -1916,7 +1916,7 @@ comment at the start of cc-engine.el for more info." | |||
| 1916 | (defun c-partial-ws-p (beg end) | 1916 | (defun c-partial-ws-p (beg end) |
| 1917 | ;; Is the region (beg end) WS, and is there WS (or BOB/EOB) next to the | 1917 | ;; Is the region (beg end) WS, and is there WS (or BOB/EOB) next to the |
| 1918 | ;; region? This is a "heuristic" function. ..... | 1918 | ;; region? This is a "heuristic" function. ..... |
| 1919 | ;; | 1919 | ;; |
| 1920 | ;; The motivation for the second bit is to check whether removing this | 1920 | ;; The motivation for the second bit is to check whether removing this |
| 1921 | ;; region would coalesce two symbols. | 1921 | ;; region would coalesce two symbols. |
| 1922 | ;; | 1922 | ;; |
| @@ -3291,7 +3291,7 @@ comment at the start of cc-engine.el for more info." | |||
| 3291 | ;; The workaround for this is for the AWK Mode initialisation to switch the | 3291 | ;; The workaround for this is for the AWK Mode initialisation to switch the |
| 3292 | ;; defalias for c-in-literal to c-slow-in-literal. This will slow down other | 3292 | ;; defalias for c-in-literal to c-slow-in-literal. This will slow down other |
| 3293 | ;; cc-modes in Xemacs whenever an awk-buffer has been initialised. | 3293 | ;; cc-modes in Xemacs whenever an awk-buffer has been initialised. |
| 3294 | ;; | 3294 | ;; |
| 3295 | ;; (Alan Mackenzie, 2003/4/30). | 3295 | ;; (Alan Mackenzie, 2003/4/30). |
| 3296 | 3296 | ||
| 3297 | (defun c-fast-in-literal (&optional lim detect-cpp) | 3297 | (defun c-fast-in-literal (&optional lim detect-cpp) |
| @@ -3406,7 +3406,7 @@ comment at the start of cc-engine.el for more info." | |||
| 3406 | (if (and (consp range) (progn | 3406 | (if (and (consp range) (progn |
| 3407 | (goto-char (car range)) | 3407 | (goto-char (car range)) |
| 3408 | (looking-at c-line-comment-starter))) | 3408 | (looking-at c-line-comment-starter))) |
| 3409 | (let ((col (current-column)) | 3409 | (let ((col (current-column)) |
| 3410 | (beg (point)) | 3410 | (beg (point)) |
| 3411 | (bopl (c-point 'bopl)) | 3411 | (bopl (c-point 'bopl)) |
| 3412 | (end (cdr range))) | 3412 | (end (cdr range))) |
| @@ -4045,7 +4045,7 @@ comment at the start of cc-engine.el for more info." | |||
| 4045 | ;; example, this happens to "foo" when "foo \n bar();" becomes | 4045 | ;; example, this happens to "foo" when "foo \n bar();" becomes |
| 4046 | ;; "foo(); \n bar();". Such stale types, if not removed, foul up | 4046 | ;; "foo(); \n bar();". Such stale types, if not removed, foul up |
| 4047 | ;; the fontification. | 4047 | ;; the fontification. |
| 4048 | ;; | 4048 | ;; |
| 4049 | ;; Have we, perhaps, added non-ws characters to the front/back of a found | 4049 | ;; Have we, perhaps, added non-ws characters to the front/back of a found |
| 4050 | ;; type? | 4050 | ;; type? |
| 4051 | (when (> end beg) | 4051 | (when (> end beg) |
| @@ -4064,7 +4064,7 @@ comment at the start of cc-engine.el for more info." | |||
| 4064 | (c-beginning-of-current-token))) | 4064 | (c-beginning-of-current-token))) |
| 4065 | (c-unfind-type (buffer-substring-no-properties | 4065 | (c-unfind-type (buffer-substring-no-properties |
| 4066 | (point) beg)))))) | 4066 | (point) beg)))))) |
| 4067 | 4067 | ||
| 4068 | (if c-maybe-stale-found-type ; e.g. (c-decl-id-start "foo" 97 107 " (* ooka) " "o") | 4068 | (if c-maybe-stale-found-type ; e.g. (c-decl-id-start "foo" 97 107 " (* ooka) " "o") |
| 4069 | (cond | 4069 | (cond |
| 4070 | ;; Changing the amount of (already existing) whitespace - don't do anything. | 4070 | ;; Changing the amount of (already existing) whitespace - don't do anything. |
| @@ -5929,7 +5929,7 @@ comment at the start of cc-engine.el for more info." | |||
| 5929 | macro-start ; if we're in one. | 5929 | macro-start ; if we're in one. |
| 5930 | label-type) | 5930 | label-type) |
| 5931 | (cond | 5931 | (cond |
| 5932 | ;; "case" or "default" (Doesn't apply to AWK). | 5932 | ;; "case" or "default" (Doesn't apply to AWK). |
| 5933 | ((looking-at c-label-kwds-regexp) | 5933 | ((looking-at c-label-kwds-regexp) |
| 5934 | (let ((kwd-end (match-end 1))) | 5934 | (let ((kwd-end (match-end 1))) |
| 5935 | ;; Record only the keyword itself for fontification, since in | 5935 | ;; Record only the keyword itself for fontification, since in |
| @@ -6048,7 +6048,7 @@ comment at the start of cc-engine.el for more info." | |||
| 6048 | (c-forward-label nil pte start)))))))))) | 6048 | (c-forward-label nil pte start)))))))))) |
| 6049 | 6049 | ||
| 6050 | ;; Point is still at the beginning of the possible label construct. | 6050 | ;; Point is still at the beginning of the possible label construct. |
| 6051 | ;; | 6051 | ;; |
| 6052 | ;; Check that the next nonsymbol token is ":", or that we're in one | 6052 | ;; Check that the next nonsymbol token is ":", or that we're in one |
| 6053 | ;; of QT's "slots" declarations. Allow '(' for the sake of macro | 6053 | ;; of QT's "slots" declarations. Allow '(' for the sake of macro |
| 6054 | ;; arguments. FIXME: Should build this regexp from the language | 6054 | ;; arguments. FIXME: Should build this regexp from the language |
| @@ -6074,7 +6074,7 @@ comment at the start of cc-engine.el for more info." | |||
| 6074 | (and (c-major-mode-is 'c++-mode) | 6074 | (and (c-major-mode-is 'c++-mode) |
| 6075 | (string-match | 6075 | (string-match |
| 6076 | "\\(p\\(r\\(ivate\\|otected\\)\\|ublic\\)\\|more\\)\\>" | 6076 | "\\(p\\(r\\(ivate\\|otected\\)\\|ublic\\)\\|more\\)\\>" |
| 6077 | (buffer-substring start (point))))) | 6077 | (buffer-substring start (point))))) |
| 6078 | (c-forward-syntactic-ws limit) | 6078 | (c-forward-syntactic-ws limit) |
| 6079 | (cond | 6079 | (cond |
| 6080 | ((looking-at ":\\([^:]\\|\\'\\)") ; A single colon. | 6080 | ((looking-at ":\\([^:]\\|\\'\\)") ; A single colon. |
| @@ -7238,7 +7238,7 @@ comment at the start of cc-engine.el for more info." | |||
| 7238 | ;; needed with further syntax elements of the types `substatement', | 7238 | ;; needed with further syntax elements of the types `substatement', |
| 7239 | ;; `inexpr-statement', `arglist-cont-nonempty', `statement-block-intro', and | 7239 | ;; `inexpr-statement', `arglist-cont-nonempty', `statement-block-intro', and |
| 7240 | ;; `defun-block-intro'. | 7240 | ;; `defun-block-intro'. |
| 7241 | ;; | 7241 | ;; |
| 7242 | ;; Do the generic processing to anchor the given syntax symbol on | 7242 | ;; Do the generic processing to anchor the given syntax symbol on |
| 7243 | ;; the preceding statement: Skip over any labels and containing | 7243 | ;; the preceding statement: Skip over any labels and containing |
| 7244 | ;; statements on the same line, and then search backward until we | 7244 | ;; statements on the same line, and then search backward until we |
| @@ -7424,7 +7424,7 @@ comment at the start of cc-engine.el for more info." | |||
| 7424 | c-other-decl-block-key-in-symbols-alist)) | 7424 | c-other-decl-block-key-in-symbols-alist)) |
| 7425 | (max (c-point 'boi paren-pos) (point)))) | 7425 | (max (c-point 'boi paren-pos) (point)))) |
| 7426 | (t (c-add-syntax 'defun-block-intro nil)))) | 7426 | (t (c-add-syntax 'defun-block-intro nil)))) |
| 7427 | 7427 | ||
| 7428 | (c-add-syntax 'statement-block-intro nil))) | 7428 | (c-add-syntax 'statement-block-intro nil))) |
| 7429 | 7429 | ||
| 7430 | (if (= paren-pos boi) | 7430 | (if (= paren-pos boi) |
| @@ -8264,7 +8264,7 @@ comment at the start of cc-engine.el for more info." | |||
| 8264 | 'statement-cont) | 8264 | 'statement-cont) |
| 8265 | nil nil containing-sexp paren-state)) | 8265 | nil nil containing-sexp paren-state)) |
| 8266 | )) | 8266 | )) |
| 8267 | 8267 | ||
| 8268 | ;; CASE 5F: Close of a non-class declaration level block. | 8268 | ;; CASE 5F: Close of a non-class declaration level block. |
| 8269 | ((and (eq char-after-ip ?}) | 8269 | ((and (eq char-after-ip ?}) |
| 8270 | (c-keyword-member containing-decl-kwd | 8270 | (c-keyword-member containing-decl-kwd |
diff --git a/lisp/progmodes/cc-subword.el b/lisp/progmodes/cc-subword.el index 68ecd3a0515..d3e613fa254 100644 --- a/lisp/progmodes/cc-subword.el +++ b/lisp/progmodes/cc-subword.el | |||
| @@ -123,6 +123,8 @@ telling us which (X)Emacs version you're using." | |||
| 123 | map) | 123 | map) |
| 124 | "Keymap used in command `c-subword-mode' minor mode.") | 124 | "Keymap used in command `c-subword-mode' minor mode.") |
| 125 | 125 | ||
| 126 | ;; Produces compiler warning about make-variable-buffer-local not | ||
| 127 | ;; being called at toplevel (due to fboundp test). | ||
| 126 | (define-minor-mode c-subword-mode | 128 | (define-minor-mode c-subword-mode |
| 127 | "Mode enabling subword movement and editing keys. | 129 | "Mode enabling subword movement and editing keys. |
| 128 | In spite of GNU Coding Standards, it is popular to name a symbol by | 130 | In spite of GNU Coding Standards, it is popular to name a symbol by |
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 3de5b7eeb7e..b4148c59b49 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el | |||
| @@ -339,6 +339,57 @@ File = \\(.+\\), Line = \\([0-9]+\\)\\(?:, Column = \\([0-9]+\\)\\)?" | |||
| 339 | nil 2 nil 2 nil | 339 | nil 2 nil 2 nil |
| 340 | (0 'default t) | 340 | (0 'default t) |
| 341 | (1 compilation-error-face prepend) (2 compilation-line-face prepend)) | 341 | (1 compilation-error-face prepend) (2 compilation-line-face prepend)) |
| 342 | |||
| 343 | (compilation-perl--Pod::Checker | ||
| 344 | ;; podchecker error messages, per Pod::Checker. | ||
| 345 | ;; The style is from the Pod::Checker::poderror() function, eg. | ||
| 346 | ;; *** ERROR: Spurious text after =cut at line 193 in file foo.pm | ||
| 347 | ;; | ||
| 348 | ;; Plus end_pod() can give "at line EOF" instead of a | ||
| 349 | ;; number, so for that match "on line N" which is the | ||
| 350 | ;; originating spot, eg. | ||
| 351 | ;; *** ERROR: =over on line 37 without closing =back at line EOF in file bar.pm | ||
| 352 | ;; | ||
| 353 | ;; Plus command() can give both "on line N" and "at line N"; | ||
| 354 | ;; the latter is desired and is matched because the .* is | ||
| 355 | ;; greedy. | ||
| 356 | ;; *** ERROR: =over on line 1 without closing =back (at head1) at line 3 in file x.pod | ||
| 357 | ;; | ||
| 358 | "^\\*\\*\\* \\(?:ERROR\\|\\(WARNING\\)\\).* \\(?:at\\|on\\) line \ | ||
| 359 | \\([0-9]+\\) \\(?:.* \\)?in file \\([^ \t\n]+\\)" | ||
| 360 | 3 2 nil (1)) | ||
| 361 | (compilation-perl--Test | ||
| 362 | ;; perl Test module error messages. | ||
| 363 | ;; Style per the ok() function "$context", eg. | ||
| 364 | ;; # Failed test 1 in foo.t at line 6 | ||
| 365 | ;; | ||
| 366 | "^# Failed test [0-9]+ in \\([^ \t\r\n]+\\) at line \\([0-9]+\\)" | ||
| 367 | 1 2) | ||
| 368 | (compilation-perl--Test::Harness | ||
| 369 | ;; perl Test::Harness output, eg. | ||
| 370 | ;; NOK 1# Test 1 got: "1234" (t/foo.t at line 46) | ||
| 371 | ;; | ||
| 372 | ;; Test::Harness is slightly designed for tty output, since | ||
| 373 | ;; it prints CRs to overwrite progress messages, but if you | ||
| 374 | ;; run it in with M-x compile this pattern can at least step | ||
| 375 | ;; through the failures. | ||
| 376 | ;; | ||
| 377 | "^.*NOK.* \\([^ \t\r\n]+\\) at line \\([0-9]+\\)" | ||
| 378 | 1 2) | ||
| 379 | (compilation-weblint | ||
| 380 | ;; The style comes from HTML::Lint::Error::as_string(), eg. | ||
| 381 | ;; index.html (13:1) Unknown element <fdjsk> | ||
| 382 | ;; | ||
| 383 | ;; The pattern only matches filenames without spaces, since that | ||
| 384 | ;; should be usual and should help reduce the chance of a false | ||
| 385 | ;; match of a message from some unrelated program. | ||
| 386 | ;; | ||
| 387 | ;; This message style is quite close to the "ibm" entry which is | ||
| 388 | ;; for IBM C, though that ibm bit doesn't put a space after the | ||
| 389 | ;; filename. | ||
| 390 | ;; | ||
| 391 | "^\\([^ \t\r\n(]+\\) (\\([0-9]+\\):\\([0-9]+\\)) " | ||
| 392 | 1 2 3) | ||
| 342 | ) | 393 | ) |
| 343 | "Alist of values for `compilation-error-regexp-alist'.") | 394 | "Alist of values for `compilation-error-regexp-alist'.") |
| 344 | 395 | ||
diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el index 13f1e0c24b8..4a397a9d012 100644 --- a/lisp/progmodes/cperl-mode.el +++ b/lisp/progmodes/cperl-mode.el | |||
| @@ -1510,6 +1510,8 @@ the last)." | |||
| 1510 | 2 3)) | 1510 | 2 3)) |
| 1511 | "Alist that specifies how to match errors in perl output.") | 1511 | "Alist that specifies how to match errors in perl output.") |
| 1512 | 1512 | ||
| 1513 | (defvar compilation-error-regexp-alist) | ||
| 1514 | |||
| 1513 | ;;;###autoload | 1515 | ;;;###autoload |
| 1514 | (defun cperl-mode () | 1516 | (defun cperl-mode () |
| 1515 | "Major mode for editing Perl code. | 1517 | "Major mode for editing Perl code. |
| @@ -1790,9 +1792,11 @@ or as help on variables `cperl-tips', `cperl-problems', | |||
| 1790 | (set 'vc-sccs-header cperl-vc-sccs-header) | 1792 | (set 'vc-sccs-header cperl-vc-sccs-header) |
| 1791 | ;; This one is obsolete... | 1793 | ;; This one is obsolete... |
| 1792 | (make-local-variable 'vc-header-alist) | 1794 | (make-local-variable 'vc-header-alist) |
| 1793 | (set 'vc-header-alist (or cperl-vc-header-alist ; Avoid warning | 1795 | (with-no-warnings |
| 1794 | `((SCCS ,(car cperl-vc-sccs-header)) | 1796 | (set 'vc-header-alist (or cperl-vc-header-alist ; Avoid warning |
| 1795 | (RCS ,(car cperl-vc-rcs-header))))) | 1797 | `((SCCS ,(car cperl-vc-sccs-header)) |
| 1798 | (RCS ,(car cperl-vc-rcs-header))))) | ||
| 1799 | ) | ||
| 1796 | (cond ((boundp 'compilation-error-regexp-alist-alist);; xemacs 20.x | 1800 | (cond ((boundp 'compilation-error-regexp-alist-alist);; xemacs 20.x |
| 1797 | (make-local-variable 'compilation-error-regexp-alist-alist) | 1801 | (make-local-variable 'compilation-error-regexp-alist-alist) |
| 1798 | (set 'compilation-error-regexp-alist-alist | 1802 | (set 'compilation-error-regexp-alist-alist |
diff --git a/lisp/progmodes/dcl-mode.el b/lisp/progmodes/dcl-mode.el index 6a3e9e82d6e..4546880cca5 100644 --- a/lisp/progmodes/dcl-mode.el +++ b/lisp/progmodes/dcl-mode.el | |||
| @@ -2201,6 +2201,7 @@ otherwise return nil." | |||
| 2201 | () | 2201 | () |
| 2202 | (equal start (match-end 0)))))) | 2202 | (equal start (match-end 0)))))) |
| 2203 | 2203 | ||
| 2204 | (declare-function imenu-default-create-index-function "imenu" ()) | ||
| 2204 | 2205 | ||
| 2205 | ;;;------------------------------------------------------------------------- | 2206 | ;;;------------------------------------------------------------------------- |
| 2206 | (defun dcl-imenu-create-index-function () | 2207 | (defun dcl-imenu-create-index-function () |
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index 5538bd8984a..1e144282de5 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el | |||
| @@ -1268,10 +1268,9 @@ For the format of LINE-ERR-INFO, see `flymake-ler-make-ler'." | |||
| 1268 | (defun flymake-goto-file-and-line (file line) | 1268 | (defun flymake-goto-file-and-line (file line) |
| 1269 | "Try to get buffer for FILE and goto line LINE in it." | 1269 | "Try to get buffer for FILE and goto line LINE in it." |
| 1270 | (if (not (file-exists-p file)) | 1270 | (if (not (file-exists-p file)) |
| 1271 | (flymake-log 1 "file %s does not exists" file) | 1271 | (flymake-log 1 "File %s does not exist" file) |
| 1272 | (progn | 1272 | (find-file file) |
| 1273 | (find-file file) | 1273 | (goto-line line))) |
| 1274 | (goto-line line)))) | ||
| 1275 | 1274 | ||
| 1276 | ;; flymake minor mode declarations | 1275 | ;; flymake minor mode declarations |
| 1277 | (defvar flymake-mode-line nil) | 1276 | (defvar flymake-mode-line nil) |
diff --git a/lisp/progmodes/fortran.el b/lisp/progmodes/fortran.el index 43cb61cba6b..1954319269d 100644 --- a/lisp/progmodes/fortran.el +++ b/lisp/progmodes/fortran.el | |||
| @@ -908,6 +908,8 @@ affects all Fortran buffers, and also the default." | |||
| 908 | "Fortran mode adds this to `hack-local-variables-hook'." | 908 | "Fortran mode adds this to `hack-local-variables-hook'." |
| 909 | (fortran-line-length fortran-line-length)) | 909 | (fortran-line-length fortran-line-length)) |
| 910 | 910 | ||
| 911 | (declare-function gud-find-c-expr "gud.el" nil) | ||
| 912 | |||
| 911 | (defun fortran-gud-find-expr () | 913 | (defun fortran-gud-find-expr () |
| 912 | ;; Consider \n as punctuation (end of expression). | 914 | ;; Consider \n as punctuation (end of expression). |
| 913 | (with-syntax-table fortran-gud-syntax-table | 915 | (with-syntax-table fortran-gud-syntax-table |
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index 0d1a4b05d65..32db8850b66 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el | |||
| @@ -43,12 +43,22 @@ | |||
| 43 | ;; section in the GDB info manual. | 43 | ;; section in the GDB info manual. |
| 44 | 44 | ||
| 45 | ;; GDB developers plan to make the annotation interface obsolete. A new | 45 | ;; GDB developers plan to make the annotation interface obsolete. A new |
| 46 | ;; interface called GDB/MI (machine interface) has been designed to replace | 46 | ;; interface called GDB/MI (machine interface) has been designed to replace it. |
| 47 | ;; it. Some GDB/MI commands are used in this file through the CLI command | 47 | ;; Some GDB/MI commands are used in this file through the CLI command |
| 48 | ;; 'interpreter mi <mi-command>'. A file called gdb-mi.el is included with | 48 | ;; 'interpreter mi <mi-command>'. To help with the process of fully migrating |
| 49 | ;; GDB (6.2 onwards) that uses GDB/MI as the primary interface to GDB. It is | 49 | ;; Emacs from annotations to GDB/MI, there is an experimental package called |
| 50 | ;; still under development and is part of a process to migrate Emacs from | 50 | ;; gdb-mi in the Emacs Lisp Package Archive ("http://tromey.com/elpa/"). It |
| 51 | ;; annotations to GDB/MI. | 51 | ;; comprises of modified gud.el and a file called gdb-mi.el which replaces |
| 52 | ;; gdb-ui.el. When installed, this overrides the current files and invoking | ||
| 53 | ;; M-x gdb will use GDB/MI directly (starts with "gdb -i=mi"). When deleted | ||
| 54 | ;; ('d' followed by 'x' in Package Menu mode), the files are deleted and old | ||
| 55 | ;; functionality restored. This provides a convenient way to review the | ||
| 56 | ;; current status/contribute to its improvement. For someone who just wants to | ||
| 57 | ;; use GDB, however, the current mode in Emacs 22 is a much better option. | ||
| 58 | ;; There is also a file, also called gdb-mi.el, a version of which is included | ||
| 59 | ;; the GDB distribution. This will probably only work with versions | ||
| 60 | ;; distributed with GDB 6.5 or later. Unlike the version in ELPA it works on | ||
| 61 | ;; top of gdb-ui.el and you can only start it with M-x gdbmi. | ||
| 52 | 62 | ||
| 53 | ;; This mode SHOULD WORK WITH GDB 5.0 or later but you will NEED AT LEAST | 63 | ;; This mode SHOULD WORK WITH GDB 5.0 or later but you will NEED AT LEAST |
| 54 | ;; GDB 6.0 to use watch expressions. It works best with GDB 6.4 or later | 64 | ;; GDB 6.0 to use watch expressions. It works best with GDB 6.4 or later |
| @@ -69,25 +79,13 @@ | |||
| 69 | 79 | ||
| 70 | ;;; Known Bugs: | 80 | ;;; Known Bugs: |
| 71 | 81 | ||
| 72 | ;; 1) Strings that are watched don't update in the speedbar when their | 82 | ;; 1) Cannot handle multiple debug sessions. |
| 73 | ;; contents change unless the first character changes. | 83 | ;; 2) If you wish to call procedures from your program in GDB |
| 74 | ;; 2) Cannot handle multiple debug sessions. | ||
| 75 | ;; 3) M-x gdb doesn't work with "run" command in .gdbinit, use M-x gdba instead. | ||
| 76 | ;; 4) M-x gdb doesn't work if the corefile is specified in the command in the | ||
| 77 | ;; minibuffer, use M-x gdba instead (or specify the core in the GUD buffer). | ||
| 78 | ;; 5) If you wish to call procedures from your program in GDB | ||
| 79 | ;; e.g "call myproc ()", "p mysquare (5)" then use level 2 annotations | 84 | ;; e.g "call myproc ()", "p mysquare (5)" then use level 2 annotations |
| 80 | ;; "gdb --annotate=2 myprog" to keep source buffer/selected frame fixed. | 85 | ;; "gdb --annotate=2 myprog" to keep source buffer/selected frame fixed. |
| 81 | ;; 6) After detaching from a process, clicking on the "GO" icon on toolbar | 86 | ;; 3) After detaching from a process, clicking on the "GO" icon on toolbar |
| 82 | ;; (gud-go) sends "continue" to GDB (should be "run"). | 87 | ;; (gud-go) sends "continue" to GDB (should be "run"). |
| 83 | 88 | ||
| 84 | ;;; Problems with watch expressions, GDB/MI: | ||
| 85 | |||
| 86 | ;; 1) They go out of scope when the inferior is re-run. | ||
| 87 | ;; 2) -stack-list-locals has a type field but also prints type in values field. | ||
| 88 | ;; 3) VARNUM increments even when variable object is not created | ||
| 89 | ;; (maybe trivial). | ||
| 90 | |||
| 91 | ;;; TODO: | 89 | ;;; TODO: |
| 92 | 90 | ||
| 93 | ;; 1) Use MI command -data-read-memory for memory window. | 91 | ;; 1) Use MI command -data-read-memory for memory window. |
| @@ -138,6 +136,7 @@ Emacs can't find.") | |||
| 138 | (defvar gdb-frame-begin nil | 136 | (defvar gdb-frame-begin nil |
| 139 | "Non-nil when GDB generates frame-begin annotation.") | 137 | "Non-nil when GDB generates frame-begin annotation.") |
| 140 | (defvar gdb-printing t) | 138 | (defvar gdb-printing t) |
| 139 | (defvar gdb-parent-bptno-enabled nil) | ||
| 141 | 140 | ||
| 142 | (defvar gdb-buffer-type nil | 141 | (defvar gdb-buffer-type nil |
| 143 | "One of the symbols bound in `gdb-buffer-rules'.") | 142 | "One of the symbols bound in `gdb-buffer-rules'.") |
| @@ -222,7 +221,6 @@ handlers.") | |||
| 222 | The directory containing FILE becomes the initial working | 221 | The directory containing FILE becomes the initial working |
| 223 | directory and source-file directory for your debugger. | 222 | directory and source-file directory for your debugger. |
| 224 | 223 | ||
| 225 | |||
| 226 | If `gdb-many-windows' is nil (the default value) then gdb just | 224 | If `gdb-many-windows' is nil (the default value) then gdb just |
| 227 | pops up the GUD buffer unless `gdb-show-main' is t. In this case | 225 | pops up the GUD buffer unless `gdb-show-main' is t. In this case |
| 228 | it starts with two windows: one displaying the GUD buffer and the | 226 | it starts with two windows: one displaying the GUD buffer and the |
| @@ -1860,7 +1858,7 @@ static char *magick[] = { | |||
| 1860 | :group 'gud) | 1858 | :group 'gud) |
| 1861 | 1859 | ||
| 1862 | (defconst gdb-breakpoint-regexp | 1860 | (defconst gdb-breakpoint-regexp |
| 1863 | "\\([0-9]+\\).*?\\(?:point\\|catch\\s-+\\S-+\\)\\s-+\\S-+\\s-+\\(.\\)\\s-+") | 1861 | "\\(?:\\([0-9]+\\).*?\\(?:point\\|catch\\s-+\\S-+\\)\\s-+\\S-+\\|\\([0-9]+\\.[0-9]+\\)\\)\\s-+\\(.\\)\\s-+") |
| 1864 | 1862 | ||
| 1865 | ;; Put breakpoint icons in relevant margins (even those set in the GUD buffer). | 1863 | ;; Put breakpoint icons in relevant margins (even those set in the GUD buffer). |
| 1866 | (defun gdb-info-breakpoints-custom () | 1864 | (defun gdb-info-breakpoints-custom () |
| @@ -1879,10 +1877,12 @@ static char *magick[] = { | |||
| 1879 | (forward-line 1) | 1877 | (forward-line 1) |
| 1880 | (if (looking-at gdb-breakpoint-regexp) | 1878 | (if (looking-at gdb-breakpoint-regexp) |
| 1881 | (progn | 1879 | (progn |
| 1882 | (setq bptno (match-string 1)) | 1880 | (setq bptno (or (match-string 1) (match-string 2))) |
| 1883 | (setq flag (char-after (match-beginning 2))) | 1881 | (setq flag (char-after (match-beginning 3))) |
| 1882 | (if (match-string 1) | ||
| 1883 | (setq gdb-parent-bptno-enabled (eq flag ?y))) | ||
| 1884 | (add-text-properties | 1884 | (add-text-properties |
| 1885 | (match-beginning 2) (match-end 2) | 1885 | (match-beginning 3) (match-end 3) |
| 1886 | (if (eq flag ?y) | 1886 | (if (eq flag ?y) |
| 1887 | '(face font-lock-warning-face) | 1887 | '(face font-lock-warning-face) |
| 1888 | '(face font-lock-type-face))) | 1888 | '(face font-lock-type-face))) |
| @@ -1938,6 +1938,9 @@ static char *magick[] = { | |||
| 1938 | (end-of-line)))))) | 1938 | (end-of-line)))))) |
| 1939 | (if (gdb-get-buffer 'gdb-assembler-buffer) (gdb-assembler-custom))) | 1939 | (if (gdb-get-buffer 'gdb-assembler-buffer) (gdb-assembler-custom))) |
| 1940 | 1940 | ||
| 1941 | (declare-function gud-remove "gdb-ui" t t) ; gud-def | ||
| 1942 | (declare-function gud-break "gdb-ui" t t) ; gud-def | ||
| 1943 | |||
| 1941 | (defun gdb-mouse-set-clear-breakpoint (event) | 1944 | (defun gdb-mouse-set-clear-breakpoint (event) |
| 1942 | "Set/clear breakpoint in left fringe/margin with mouse click." | 1945 | "Set/clear breakpoint in left fringe/margin with mouse click." |
| 1943 | (interactive "e") | 1946 | (interactive "e") |
| @@ -1963,17 +1966,18 @@ static char *magick[] = { | |||
| 1963 | (save-excursion | 1966 | (save-excursion |
| 1964 | (goto-char (posn-point posn)) | 1967 | (goto-char (posn-point posn)) |
| 1965 | (if (posn-object posn) | 1968 | (if (posn-object posn) |
| 1966 | (gdb-enqueue-input | 1969 | (let* ((bptno (get-text-property |
| 1967 | (list | 1970 | 0 'gdb-bptno (car (posn-string posn))))) |
| 1968 | (let ((bptno (get-text-property | 1971 | (string-match "\\([0-9+]\\)*" bptno) |
| 1969 | 0 'gdb-bptno (car (posn-string posn))))) | 1972 | (gdb-enqueue-input |
| 1973 | (list | ||
| 1970 | (concat gdb-server-prefix | 1974 | (concat gdb-server-prefix |
| 1971 | (if (get-text-property | 1975 | (if (get-text-property |
| 1972 | 0 'gdb-enabled (car (posn-string posn))) | 1976 | 0 'gdb-enabled (car (posn-string posn))) |
| 1973 | "disable " | 1977 | "disable " |
| 1974 | "enable ") | 1978 | "enable ") |
| 1975 | bptno "\n")) | 1979 | (match-string 1 bptno) "\n") |
| 1976 | 'ignore)))))))) | 1980 | 'ignore))))))))) |
| 1977 | 1981 | ||
| 1978 | (defun gdb-mouse-toggle-breakpoint-fringe (event) | 1982 | (defun gdb-mouse-toggle-breakpoint-fringe (event) |
| 1979 | "Enable/disable breakpoint in left fringe with mouse click." | 1983 | "Enable/disable breakpoint in left fringe with mouse click." |
| @@ -1991,14 +1995,16 @@ static char *magick[] = { | |||
| 1991 | (when (overlay-get overlay 'put-break) | 1995 | (when (overlay-get overlay 'put-break) |
| 1992 | (setq obj (overlay-get overlay 'before-string)))) | 1996 | (setq obj (overlay-get overlay 'before-string)))) |
| 1993 | (when (stringp obj) | 1997 | (when (stringp obj) |
| 1994 | (gdb-enqueue-input | 1998 | (let* ((bptno (get-text-property 0 'gdb-bptno obj))) |
| 1995 | (list | 1999 | (string-match "\\([0-9+]\\)*" bptno) |
| 1996 | (concat gdb-server-prefix | 2000 | (gdb-enqueue-input |
| 1997 | (if (get-text-property 0 'gdb-enabled obj) | 2001 | (list |
| 1998 | "disable " | 2002 | (concat gdb-server-prefix |
| 1999 | "enable ") | 2003 | (if (get-text-property 0 'gdb-enabled obj) |
| 2000 | (get-text-property 0 'gdb-bptno obj) "\n") | 2004 | "disable " |
| 2001 | 'ignore)))))))) | 2005 | "enable ") |
| 2006 | (match-string 1 bptno) "\n") | ||
| 2007 | 'ignore))))))))) | ||
| 2002 | 2008 | ||
| 2003 | (defun gdb-breakpoints-buffer-name () | 2009 | (defun gdb-breakpoints-buffer-name () |
| 2004 | (with-current-buffer gud-comint-buffer | 2010 | (with-current-buffer gud-comint-buffer |
| @@ -2064,21 +2070,25 @@ static char *magick[] = { | |||
| 2064 | (gdb-enqueue-input | 2070 | (gdb-enqueue-input |
| 2065 | (list | 2071 | (list |
| 2066 | (concat gdb-server-prefix | 2072 | (concat gdb-server-prefix |
| 2067 | (if (eq ?y (char-after (match-beginning 2))) | 2073 | (if (eq ?y (char-after (match-beginning 3))) |
| 2068 | "disable " | 2074 | "disable " |
| 2069 | "enable ") | 2075 | "enable ") |
| 2070 | (match-string 1) "\n") 'ignore)) | 2076 | (or (match-string 1) (match-string 2)) "\n") 'ignore)) |
| 2071 | (error "Not recognized as break/watchpoint line")))) | 2077 | (error "Not recognized as break/watchpoint line")))) |
| 2072 | 2078 | ||
| 2073 | (defun gdb-delete-breakpoint () | 2079 | (defun gdb-delete-breakpoint () |
| 2074 | "Delete the breakpoint at current line." | 2080 | "Delete the breakpoint at current line." |
| 2075 | (interactive) | 2081 | (interactive) |
| 2076 | (beginning-of-line 1) | 2082 | (save-excursion |
| 2077 | (if (looking-at gdb-breakpoint-regexp) | 2083 | (beginning-of-line 1) |
| 2078 | (gdb-enqueue-input | 2084 | (if (looking-at gdb-breakpoint-regexp) |
| 2079 | (list | 2085 | (if (match-string 1) |
| 2080 | (concat gdb-server-prefix "delete " (match-string 1) "\n") 'ignore)) | 2086 | (gdb-enqueue-input |
| 2081 | (error "Not recognized as break/watchpoint line"))) | 2087 | (list |
| 2088 | (concat gdb-server-prefix "delete " (match-string 1) "\n") | ||
| 2089 | 'ignore)) | ||
| 2090 | (message-box "This breakpoint cannot be deleted on its own.")) | ||
| 2091 | (error "Not recognized as break/watchpoint line")))) | ||
| 2082 | 2092 | ||
| 2083 | (defun gdb-goto-breakpoint (&optional event) | 2093 | (defun gdb-goto-breakpoint (&optional event) |
| 2084 | "Display the breakpoint location specified at current line." | 2094 | "Display the breakpoint location specified at current line." |
| @@ -2086,7 +2096,7 @@ static char *magick[] = { | |||
| 2086 | (if event (posn-set-point (event-end event))) | 2096 | (if event (posn-set-point (event-end event))) |
| 2087 | (save-excursion | 2097 | (save-excursion |
| 2088 | (beginning-of-line 1) | 2098 | (beginning-of-line 1) |
| 2089 | (if (looking-at "\\([0-9]+\\) .+ in .+ at\\s-+\\(\\S-+\\):\\([0-9]+\\)") | 2099 | (if (looking-at "\\([0-9]+\\.?[0-9]*\\) .+ in .+ at\\s-+\\(\\S-+\\):\\([0-9]+\\)") |
| 2090 | (let ((bptno (match-string 1)) | 2100 | (let ((bptno (match-string 1)) |
| 2091 | (file (match-string 2)) | 2101 | (file (match-string 2)) |
| 2092 | (line (match-string 3))) | 2102 | (line (match-string 3))) |
| @@ -3156,6 +3166,8 @@ BUFFER nil or omitted means use the current buffer." | |||
| 3156 | (delete-overlay overlay)))) | 3166 | (delete-overlay overlay)))) |
| 3157 | 3167 | ||
| 3158 | (defun gdb-put-breakpoint-icon (enabled bptno) | 3168 | (defun gdb-put-breakpoint-icon (enabled bptno) |
| 3169 | (if (string-match "[0-9+]+\\." bptno) | ||
| 3170 | (setq enabled gdb-parent-bptno-enabled)) | ||
| 3159 | (let ((start (- (line-beginning-position) 1)) | 3171 | (let ((start (- (line-beginning-position) 1)) |
| 3160 | (end (+ (line-end-position) 1)) | 3172 | (end (+ (line-end-position) 1)) |
| 3161 | (putstring (if enabled "B" "b")) | 3173 | (putstring (if enabled "B" "b")) |
| @@ -3215,8 +3227,8 @@ BUFFER nil or omitted means use the current buffer." | |||
| 3215 | (setq left-margin-width 2) | 3227 | (setq left-margin-width 2) |
| 3216 | (let ((window (get-buffer-window (current-buffer) 0))) | 3228 | (let ((window (get-buffer-window (current-buffer) 0))) |
| 3217 | (if window | 3229 | (if window |
| 3218 | (set-window-margins | 3230 | (set-window-margins |
| 3219 | window left-margin-width right-margin-width))))) | 3231 | window left-margin-width right-margin-width))))) |
| 3220 | (gdb-put-string | 3232 | (gdb-put-string |
| 3221 | (propertize putstring | 3233 | (propertize putstring |
| 3222 | 'face (if enabled 'breakpoint-enabled 'breakpoint-disabled)) | 3234 | 'face (if enabled 'breakpoint-enabled 'breakpoint-disabled)) |
| @@ -3286,18 +3298,16 @@ BUFFER nil or omitted means use the current buffer." | |||
| 3286 | (goto-char (point-min)) | 3298 | (goto-char (point-min)) |
| 3287 | (while (< (point) (- (point-max) 1)) | 3299 | (while (< (point) (- (point-max) 1)) |
| 3288 | (forward-line 1) | 3300 | (forward-line 1) |
| 3289 | (if (looking-at "[^\t].*?breakpoint") | 3301 | (when (looking-at |
| 3290 | (progn | 3302 | "\\([0-9]+\\.?[0-9]*\\).*?\\s-+\\(.\\)\\s-+0x0*\\(\\S-+\\)") |
| 3291 | (looking-at | 3303 | (setq bptno (match-string 1)) |
| 3292 | "\\([0-9]+\\)\\s-+\\S-+\\s-+\\S-+\\s-+\\(.\\)\\s-+0x0*\\(\\S-+\\)") | 3304 | (setq flag (char-after (match-beginning 2))) |
| 3293 | (setq bptno (match-string 1)) | 3305 | (setq address (match-string 3)) |
| 3294 | (setq flag (char-after (match-beginning 2))) | 3306 | (with-current-buffer buffer |
| 3295 | (setq address (match-string 3)) | 3307 | (save-excursion |
| 3296 | (with-current-buffer buffer | 3308 | (goto-char (point-min)) |
| 3297 | (save-excursion | 3309 | (if (search-forward address nil t) |
| 3298 | (goto-char (point-min)) | 3310 | (gdb-put-breakpoint-icon (eq flag ?y) bptno))))))) |
| 3299 | (if (search-forward address nil t) | ||
| 3300 | (gdb-put-breakpoint-icon (eq flag ?y) bptno)))))))) | ||
| 3301 | (if (not (equal gdb-pc-address "main")) | 3311 | (if (not (equal gdb-pc-address "main")) |
| 3302 | (with-current-buffer buffer | 3312 | (with-current-buffer buffer |
| 3303 | (set-window-point (get-buffer-window buffer 0) pos))))) | 3313 | (set-window-point (get-buffer-window buffer 0) pos))))) |
| @@ -3458,7 +3468,7 @@ is set in them." | |||
| 3458 | (gdb-force-mode-line-update | 3468 | (gdb-force-mode-line-update |
| 3459 | (propertize "ready" 'face font-lock-variable-name-face))) | 3469 | (propertize "ready" 'face font-lock-variable-name-face))) |
| 3460 | 3470 | ||
| 3461 | ; Uses "-var-list-children --all-values". Needs GDB 6.1 onwards. | 3471 | ; Uses "-var-list-children --all-values". Needs GDB 6.4 onwards. |
| 3462 | (defun gdb-var-list-children-1 (varnum) | 3472 | (defun gdb-var-list-children-1 (varnum) |
| 3463 | (gdb-enqueue-input | 3473 | (gdb-enqueue-input |
| 3464 | (list | 3474 | (list |
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el index 091735ee09d..f811fce6e7f 100644 --- a/lisp/progmodes/grep.el +++ b/lisp/progmodes/grep.el | |||
| @@ -333,6 +333,12 @@ This variable's value takes effect when `grep-compute-defaults' is called.") | |||
| 333 | This variable's value takes effect when `grep-compute-defaults' is called.") | 333 | This variable's value takes effect when `grep-compute-defaults' is called.") |
| 334 | 334 | ||
| 335 | ;;;###autoload | 335 | ;;;###autoload |
| 336 | (defvar xargs-program "xargs" | ||
| 337 | "The default xargs program for `grep-find-command'. | ||
| 338 | See `grep-find-use-xargs'. | ||
| 339 | This variable's value takes effect when `grep-compute-defaults' is called.") | ||
| 340 | |||
| 341 | ;;;###autoload | ||
| 336 | (defvar grep-find-use-xargs nil | 342 | (defvar grep-find-use-xargs nil |
| 337 | "Non-nil means that `grep-find' uses the `xargs' utility by default. | 343 | "Non-nil means that `grep-find' uses the `xargs' utility by default. |
| 338 | If `exec', use `find -exec'. | 344 | If `exec', use `find -exec'. |
| @@ -365,11 +371,16 @@ Set up `compilation-exit-message-function' and run `grep-setup-hook'." | |||
| 365 | (unless (or (not grep-highlight-matches) (eq grep-highlight-matches t)) | 371 | (unless (or (not grep-highlight-matches) (eq grep-highlight-matches t)) |
| 366 | (grep-compute-defaults)) | 372 | (grep-compute-defaults)) |
| 367 | (when (eq grep-highlight-matches t) | 373 | (when (eq grep-highlight-matches t) |
| 368 | ;; Modify `process-environment' locally bound in `compilation-start' | 374 | ;; `setenv' modifies `process-environment' let-bound in `compilation-start' |
| 369 | (setenv "GREP_OPTIONS" (concat (getenv "GREP_OPTIONS") " --color=always")) | 375 | ;; Any TERM except "dumb" allows GNU grep to use `--color=auto' |
| 370 | ;; for GNU grep 2.5.1 | 376 | (setenv "TERM" "emacs-grep") |
| 377 | ;; `--color=auto' emits escape sequences on a tty rather than on a pipe, | ||
| 378 | ;; thus allowing to use multiple grep filters on the command line | ||
| 379 | ;; and to output escape sequences only on the final grep output | ||
| 380 | (setenv "GREP_OPTIONS" (concat (getenv "GREP_OPTIONS") " --color=auto")) | ||
| 381 | ;; GREP_COLOR is used in GNU grep 2.5.1, but deprecated in later versions | ||
| 371 | (setenv "GREP_COLOR" "01;31") | 382 | (setenv "GREP_COLOR" "01;31") |
| 372 | ;; for GNU grep 2.5.1-cvs | 383 | ;; GREP_COLORS is used in GNU grep 2.5.2 and later versions |
| 373 | (setenv "GREP_COLORS" "mt=01;31:fn=:ln=:bn=:se=:ml=:cx=:ne")) | 384 | (setenv "GREP_COLORS" "mt=01;31:fn=:ln=:bn=:se=:ml=:cx=:ne")) |
| 374 | (set (make-local-variable 'compilation-exit-message-function) | 385 | (set (make-local-variable 'compilation-exit-message-function) |
| 375 | (lambda (status code msg) | 386 | (lambda (status code msg) |
| @@ -475,15 +486,15 @@ Set up `compilation-exit-message-function' and run `grep-setup-hook'." | |||
| 475 | (cond | 486 | (cond |
| 476 | ((and | 487 | ((and |
| 477 | (grep-probe find-program `(nil nil nil ,null-device "-print0")) | 488 | (grep-probe find-program `(nil nil nil ,null-device "-print0")) |
| 478 | (grep-probe "xargs" `(nil nil nil "-0" "-e" "echo"))) | 489 | (grep-probe xargs-program `(nil nil nil "-0" "-e" "echo"))) |
| 479 | 'gnu) | 490 | 'gnu) |
| 480 | (t | 491 | (t |
| 481 | 'exec)))) | 492 | 'exec)))) |
| 482 | (unless grep-find-command | 493 | (unless grep-find-command |
| 483 | (setq grep-find-command | 494 | (setq grep-find-command |
| 484 | (cond ((eq grep-find-use-xargs 'gnu) | 495 | (cond ((eq grep-find-use-xargs 'gnu) |
| 485 | (format "%s . -type f -print0 | xargs -0 -e %s" | 496 | (format "%s . -type f -print0 | %s -0 -e %s" |
| 486 | find-program grep-command)) | 497 | find-program xargs-program grep-command)) |
| 487 | ((eq grep-find-use-xargs 'exec) | 498 | ((eq grep-find-use-xargs 'exec) |
| 488 | (let ((cmd0 (format "%s . -type f -exec %s" | 499 | (let ((cmd0 (format "%s . -type f -exec %s" |
| 489 | find-program grep-command))) | 500 | find-program grep-command))) |
| @@ -493,22 +504,22 @@ Set up `compilation-exit-message-function' and run `grep-setup-hook'." | |||
| 493 | (shell-quote-argument ";")) | 504 | (shell-quote-argument ";")) |
| 494 | (1+ (length cmd0))))) | 505 | (1+ (length cmd0))))) |
| 495 | (t | 506 | (t |
| 496 | (format "%s . -type f -print | xargs %s" | 507 | (format "%s . -type f -print | %s %s" |
| 497 | find-program grep-command))))) | 508 | find-program xargs-program grep-command))))) |
| 498 | (unless grep-find-template | 509 | (unless grep-find-template |
| 499 | (setq grep-find-template | 510 | (setq grep-find-template |
| 500 | (let ((gcmd (format "%s <C> %s <R>" | 511 | (let ((gcmd (format "%s <C> %s <R>" |
| 501 | grep-program grep-options))) | 512 | grep-program grep-options))) |
| 502 | (cond ((eq grep-find-use-xargs 'gnu) | 513 | (cond ((eq grep-find-use-xargs 'gnu) |
| 503 | (format "%s . <X> -type f <F> -print0 | xargs -0 -e %s" | 514 | (format "%s . <X> -type f <F> -print0 | %s -0 -e %s" |
| 504 | find-program gcmd)) | 515 | find-program xargs-program gcmd)) |
| 505 | ((eq grep-find-use-xargs 'exec) | 516 | ((eq grep-find-use-xargs 'exec) |
| 506 | (format "%s . <X> -type f <F> -exec %s {} %s %s" | 517 | (format "%s . <X> -type f <F> -exec %s {} %s %s" |
| 507 | find-program gcmd null-device | 518 | find-program gcmd null-device |
| 508 | (shell-quote-argument ";"))) | 519 | (shell-quote-argument ";"))) |
| 509 | (t | 520 | (t |
| 510 | (format "%s . <X> -type f <F> -print | xargs %s" | 521 | (format "%s . <X> -type f <F> -print | %s %s" |
| 511 | find-program gcmd)))))))) | 522 | find-program xargs-program gcmd)))))))) |
| 512 | (unless (or (not grep-highlight-matches) (eq grep-highlight-matches t)) | 523 | (unless (or (not grep-highlight-matches) (eq grep-highlight-matches t)) |
| 513 | (setq grep-highlight-matches | 524 | (setq grep-highlight-matches |
| 514 | (with-temp-buffer | 525 | (with-temp-buffer |
| @@ -543,7 +554,7 @@ Set up `compilation-exit-message-function' and run `grep-setup-hook'." | |||
| 543 | "")) | 554 | "")) |
| 544 | 555 | ||
| 545 | (defun grep-default-command () | 556 | (defun grep-default-command () |
| 546 | "Compute the default grep command for C-u M-x grep to offer." | 557 | "Compute the default grep command for \\[universal-argument] \\[grep] to offer." |
| 547 | (let ((tag-default (shell-quote-argument (grep-tag-default))) | 558 | (let ((tag-default (shell-quote-argument (grep-tag-default))) |
| 548 | ;; This a regexp to match single shell arguments. | 559 | ;; This a regexp to match single shell arguments. |
| 549 | ;; Could someone please add comments explaining it? | 560 | ;; Could someone please add comments explaining it? |
| @@ -596,19 +607,19 @@ Set up `compilation-exit-message-function' and run `grep-setup-hook'." | |||
| 596 | "Run grep, with user-specified args, and collect output in a buffer. | 607 | "Run grep, with user-specified args, and collect output in a buffer. |
| 597 | While grep runs asynchronously, you can use \\[next-error] (M-x next-error), | 608 | While grep runs asynchronously, you can use \\[next-error] (M-x next-error), |
| 598 | or \\<grep-mode-map>\\[compile-goto-error] in the grep \ | 609 | or \\<grep-mode-map>\\[compile-goto-error] in the grep \ |
| 599 | output buffer, to go to the lines | 610 | output buffer, to go to the lines where grep |
| 600 | where grep found matches. | 611 | found matches. |
| 601 | 612 | ||
| 602 | For doing a recursive `grep', see the `rgrep' command. For running | 613 | For doing a recursive `grep', see the `rgrep' command. For running |
| 603 | `grep' in a specific directory, see `lgrep'. | 614 | `grep' in a specific directory, see `lgrep'. |
| 604 | 615 | ||
| 605 | This command uses a special history list for its COMMAND-ARGS, so you can | 616 | This command uses a special history list for its COMMAND-ARGS, so you |
| 606 | easily repeat a grep command. | 617 | can easily repeat a grep command. |
| 607 | 618 | ||
| 608 | A prefix argument says to default the argument based upon the current | 619 | A prefix argument says to default the argument based upon the current |
| 609 | tag the cursor is over, substituting it into the last grep command | 620 | tag the cursor is over, substituting it into the last grep command |
| 610 | in the grep command history (or into `grep-command' | 621 | in the grep command history (or into `grep-command' if that history |
| 611 | if that history list is empty)." | 622 | list is empty)." |
| 612 | (interactive | 623 | (interactive |
| 613 | (progn | 624 | (progn |
| 614 | (grep-compute-defaults) | 625 | (grep-compute-defaults) |
| @@ -736,8 +747,9 @@ before it is executed. | |||
| 736 | With two \\[universal-argument] prefixes, directly edit and run `grep-command'. | 747 | With two \\[universal-argument] prefixes, directly edit and run `grep-command'. |
| 737 | 748 | ||
| 738 | Collect output in a buffer. While grep runs asynchronously, you | 749 | Collect output in a buffer. While grep runs asynchronously, you |
| 739 | can use \\[next-error] (M-x next-error), or \\<grep-mode-map>\\[compile-goto-error] | 750 | can use \\[next-error] (M-x next-error), or \\<grep-mode-map>\\[compile-goto-error] \ |
| 740 | in the grep output buffer, to go to the lines where grep found matches. | 751 | in the grep output buffer, |
| 752 | to go to the lines where grep found matches. | ||
| 741 | 753 | ||
| 742 | This command shares argument histories with \\[rgrep] and \\[grep]." | 754 | This command shares argument histories with \\[rgrep] and \\[grep]." |
| 743 | (interactive | 755 | (interactive |
| @@ -797,8 +809,9 @@ before it is executed. | |||
| 797 | With two \\[universal-argument] prefixes, directly edit and run `grep-find-command'. | 809 | With two \\[universal-argument] prefixes, directly edit and run `grep-find-command'. |
| 798 | 810 | ||
| 799 | Collect output in a buffer. While find runs asynchronously, you | 811 | Collect output in a buffer. While find runs asynchronously, you |
| 800 | can use \\[next-error] (M-x next-error), or \\<grep-mode-map>\\[compile-goto-error] | 812 | can use \\[next-error] (M-x next-error), or \\<grep-mode-map>\\[compile-goto-error] \ |
| 801 | in the grep output buffer, to go to the lines where grep found matches. | 813 | in the grep output buffer, |
| 814 | to go to the lines where grep found matches. | ||
| 802 | 815 | ||
| 803 | This command shares argument histories with \\[lgrep] and \\[grep-find]." | 816 | This command shares argument histories with \\[lgrep] and \\[grep-find]." |
| 804 | (interactive | 817 | (interactive |
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index ce231f4c662..3c6736ac79b 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el | |||
| @@ -318,6 +318,8 @@ Uses `gud-<MINOR-MODE>-directories' to find the source files." | |||
| 318 | (setq directories (cdr directories))) | 318 | (setq directories (cdr directories))) |
| 319 | result))) | 319 | result))) |
| 320 | 320 | ||
| 321 | (declare-function gdb-create-define-alist "gdb-ui" ()) | ||
| 322 | |||
| 321 | (defun gud-find-file (file) | 323 | (defun gud-find-file (file) |
| 322 | ;; Don't get confused by double slashes in the name that comes from GDB. | 324 | ;; Don't get confused by double slashes in the name that comes from GDB. |
| 323 | (while (string-match "//+" file) | 325 | (while (string-match "//+" file) |
| @@ -709,6 +711,9 @@ The option \"--fullname\" must be included in this value." | |||
| 709 | (defvar gud-filter-pending-text nil | 711 | (defvar gud-filter-pending-text nil |
| 710 | "Non-nil means this is text that has been saved for later in `gud-filter'.") | 712 | "Non-nil means this is text that has been saved for later in `gud-filter'.") |
| 711 | 713 | ||
| 714 | ;; If in gdba mode, gdb-ui is loaded. | ||
| 715 | (declare-function gdb-restore-windows "gdb-ui" ()) | ||
| 716 | |||
| 712 | ;; The old gdb command (text command mode). The new one is in gdb-ui.el. | 717 | ;; The old gdb command (text command mode). The new one is in gdb-ui.el. |
| 713 | ;;;###autoload | 718 | ;;;###autoload |
| 714 | (defun gud-gdb (command-line) | 719 | (defun gud-gdb (command-line) |
| @@ -2597,6 +2602,8 @@ It is saved for when this flag is not set.") | |||
| 2597 | (defvar gud-overlay-arrow-position nil) | 2602 | (defvar gud-overlay-arrow-position nil) |
| 2598 | (add-to-list 'overlay-arrow-variable-list 'gud-overlay-arrow-position) | 2603 | (add-to-list 'overlay-arrow-variable-list 'gud-overlay-arrow-position) |
| 2599 | 2604 | ||
| 2605 | (declare-function gdb-reset "gdb-ui" ()) | ||
| 2606 | |||
| 2600 | (defun gud-sentinel (proc msg) | 2607 | (defun gud-sentinel (proc msg) |
| 2601 | (cond ((null (buffer-name (process-buffer proc))) | 2608 | (cond ((null (buffer-name (process-buffer proc))) |
| 2602 | ;; buffer killed | 2609 | ;; buffer killed |
| @@ -2666,6 +2673,11 @@ Obeying it means displaying in another window the specified file and line." | |||
| 2666 | (setq gud-last-last-frame gud-last-frame | 2673 | (setq gud-last-last-frame gud-last-frame |
| 2667 | gud-last-frame nil))) | 2674 | gud-last-frame nil))) |
| 2668 | 2675 | ||
| 2676 | (declare-function global-hl-line-highlight "hl-line" ()) | ||
| 2677 | (declare-function hl-line-highlight "hl-line" ()) | ||
| 2678 | (declare-function gdb-display-source-buffer "gdb-ui" (buffer)) | ||
| 2679 | (declare-function gdb-display-buffer "gdb-ui" (buf dedicated &optional size)) | ||
| 2680 | |||
| 2669 | ;; Make sure the file named TRUE-FILE is in a buffer that appears on the screen | 2681 | ;; Make sure the file named TRUE-FILE is in a buffer that appears on the screen |
| 2670 | ;; and that its line LINE is visible. | 2682 | ;; and that its line LINE is visible. |
| 2671 | ;; Put the overlay-arrow on the line LINE in that buffer. | 2683 | ;; Put the overlay-arrow on the line LINE in that buffer. |
| @@ -2998,6 +3010,12 @@ Link exprs of the form: | |||
| 2998 | (t nil))) | 3010 | (t nil))) |
| 2999 | (t nil)))) | 3011 | (t nil)))) |
| 3000 | 3012 | ||
| 3013 | |||
| 3014 | (declare-function c-langelem-sym "cc-defs" (langelem)) | ||
| 3015 | (declare-function c-langelem-pos "cc-defs" (langelem)) | ||
| 3016 | (declare-function syntax-symbol "gud" (x)) | ||
| 3017 | (declare-function syntax-point "gud" (x)) | ||
| 3018 | |||
| 3001 | (defun gud-find-class (f line) | 3019 | (defun gud-find-class (f line) |
| 3002 | "Find fully qualified class in file F at line LINE. | 3020 | "Find fully qualified class in file F at line LINE. |
| 3003 | This function uses the `gud-jdb-classpath' (and optional | 3021 | This function uses the `gud-jdb-classpath' (and optional |
| @@ -3383,6 +3401,8 @@ With arg, dereference expr if ARG is positive, otherwise do not derereference." | |||
| 3383 | ((xdb pdb) (concat "p " expr)) | 3401 | ((xdb pdb) (concat "p " expr)) |
| 3384 | (sdb (concat expr "/")))) | 3402 | (sdb (concat expr "/")))) |
| 3385 | 3403 | ||
| 3404 | (declare-function gdb-enqueue-input "gdb-ui" (item)) | ||
| 3405 | |||
| 3386 | (defun gud-tooltip-tips (event) | 3406 | (defun gud-tooltip-tips (event) |
| 3387 | "Show tip for identifier or selection under the mouse. | 3407 | "Show tip for identifier or selection under the mouse. |
| 3388 | The mouse must either point at an identifier or inside a selected | 3408 | The mouse must either point at an identifier or inside a selected |
diff --git a/lisp/progmodes/idlw-complete-structtag.el b/lisp/progmodes/idlw-complete-structtag.el index d005c6de63e..cfd9834abca 100644 --- a/lisp/progmodes/idlw-complete-structtag.el +++ b/lisp/progmodes/idlw-complete-structtag.el | |||
| @@ -91,6 +91,8 @@ | |||
| 91 | 91 | ||
| 92 | (require 'idlwave) | 92 | (require 'idlwave) |
| 93 | 93 | ||
| 94 | (declare-function idlwave-shell-buffer "idlw-shell") | ||
| 95 | |||
| 94 | ;; Some variables to identify the previously used structure | 96 | ;; Some variables to identify the previously used structure |
| 95 | (defvar idlwave-current-tags-var nil) | 97 | (defvar idlwave-current-tags-var nil) |
| 96 | (defvar idlwave-current-tags-buffer nil) | 98 | (defvar idlwave-current-tags-buffer nil) |
| @@ -101,6 +103,7 @@ | |||
| 101 | (defvar idlwave-sint-structtags nil) | 103 | (defvar idlwave-sint-structtags nil) |
| 102 | 104 | ||
| 103 | ;; Create the sintern type for structure talks | 105 | ;; Create the sintern type for structure talks |
| 106 | (declare-function idlwave-sintern-structtag "idlw-complete-structtag" t t) | ||
| 104 | (idlwave-new-sintern-type 'structtag) | 107 | (idlwave-new-sintern-type 'structtag) |
| 105 | 108 | ||
| 106 | ;; Hook the plugin into idlwave | 109 | ;; Hook the plugin into idlwave |
diff --git a/lisp/progmodes/idlw-help.el b/lisp/progmodes/idlw-help.el index 2269e179357..69f24686e82 100644 --- a/lisp/progmodes/idlw-help.el +++ b/lisp/progmodes/idlw-help.el | |||
| @@ -42,13 +42,10 @@ | |||
| 42 | 42 | ||
| 43 | 43 | ||
| 44 | ;;; Code: | 44 | ;;; Code: |
| 45 | (defvar idlwave-help-browse-url-available nil | 45 | (defvar idlwave-help-browse-url-available t |
| 46 | "Whether browse-url is available") | 46 | "Whether browse-url is available") |
| 47 | 47 | ||
| 48 | (setq idlwave-help-browse-url-available | 48 | (require 'browse-url) |
| 49 | (condition-case nil | ||
| 50 | (require 'browse-url) | ||
| 51 | (error nil))) | ||
| 52 | 49 | ||
| 53 | (defgroup idlwave-online-help nil | 50 | (defgroup idlwave-online-help nil |
| 54 | "Online Help options for IDLWAVE mode." | 51 | "Online Help options for IDLWAVE mode." |
| @@ -258,6 +255,39 @@ support." | |||
| 258 | (defvar idlwave-help-def-pos) | 255 | (defvar idlwave-help-def-pos) |
| 259 | (defvar idlwave-help-args) | 256 | (defvar idlwave-help-args) |
| 260 | (defvar idlwave-help-in-header) | 257 | (defvar idlwave-help-in-header) |
| 258 | (declare-function idlwave-prepare-structure-tag-completion "idlw-complete-structtag") | ||
| 259 | (declare-function idlwave-all-method-classes "idlwave") | ||
| 260 | (declare-function idlwave-all-method-keyword-classes "idlwave") | ||
| 261 | (declare-function idlwave-beginning-of-statement "idlwave") | ||
| 262 | (declare-function idlwave-best-rinfo-assoc "idlwave") | ||
| 263 | (declare-function idlwave-class-found-in "idlwave") | ||
| 264 | (declare-function idlwave-class-or-superclass-with-tag "idlwave") | ||
| 265 | (declare-function idlwave-completing-read "idlwave") | ||
| 266 | (declare-function idlwave-current-routine "idlwave") | ||
| 267 | (declare-function idlwave-downcase-safe "idlwave") | ||
| 268 | (declare-function idlwave-entry-find-keyword "idlwave") | ||
| 269 | (declare-function idlwave-expand-keyword "idlwave") | ||
| 270 | (declare-function idlwave-find-class-definition "idlwave") | ||
| 271 | (declare-function idlwave-find-inherited-class "idlwave") | ||
| 272 | (declare-function idlwave-find-struct-tag "idlwave") | ||
| 273 | (declare-function idlwave-get-buffer-visiting "idlwave") | ||
| 274 | (declare-function idlwave-in-quote "idlwave") | ||
| 275 | (declare-function idlwave-make-full-name "idlwave") | ||
| 276 | (declare-function idlwave-members-only "idlwave") | ||
| 277 | (declare-function idlwave-popup-select "idlwave") | ||
| 278 | (declare-function idlwave-routine-source-file "idlwave") | ||
| 279 | (declare-function idlwave-routines "idlwave") | ||
| 280 | (declare-function idlwave-sintern-class "idlwave") | ||
| 281 | (declare-function idlwave-sintern-keyword "idlwave") | ||
| 282 | (declare-function idlwave-sintern-method "idlwave") | ||
| 283 | (declare-function idlwave-sintern-routine-or-method "idlwave") | ||
| 284 | (declare-function idlwave-sintern-sysvar "idlwave" t t);idlwave-new-sintern-type | ||
| 285 | (declare-function idlwave-sintern-sysvartag "idlwave" t t) | ||
| 286 | (declare-function idlwave-substitute-link-target "idlwave") | ||
| 287 | (declare-function idlwave-sys-dir "idlwave") | ||
| 288 | (declare-function idlwave-this-word "idlwave") | ||
| 289 | (declare-function idlwave-what-module-find-class "idlwave") | ||
| 290 | (declare-function idlwave-where "idlwave") | ||
| 261 | 291 | ||
| 262 | (defun idlwave-help-mode () | 292 | (defun idlwave-help-mode () |
| 263 | "Major mode for displaying IDL Help. | 293 | "Major mode for displaying IDL Help. |
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el index abe5cfe6489..9648494adc4 100644 --- a/lisp/progmodes/idlwave.el +++ b/lisp/progmodes/idlwave.el | |||
| @@ -182,6 +182,13 @@ | |||
| 182 | (defmacro defcustom (var value doc &rest args) | 182 | (defmacro defcustom (var value doc &rest args) |
| 183 | `(defvar ,var ,value ,doc)))) | 183 | `(defvar ,var ,value ,doc)))) |
| 184 | 184 | ||
| 185 | (declare-function idlwave-shell-get-path-info "idlw-shell") | ||
| 186 | (declare-function idlwave-shell-temp-file "idlw-shell") | ||
| 187 | (declare-function idlwave-shell-is-running "idlw-shell") | ||
| 188 | (declare-function widget-value "wid-edit" (widget)) | ||
| 189 | (declare-function comint-dynamic-complete-filename "comint" ()) | ||
| 190 | (declare-function Info-goto-node "info" (nodename &optional fork)) | ||
| 191 | |||
| 185 | (defgroup idlwave nil | 192 | (defgroup idlwave nil |
| 186 | "Major mode for editing IDL .pro files." | 193 | "Major mode for editing IDL .pro files." |
| 187 | :tag "IDLWAVE" | 194 | :tag "IDLWAVE" |
| @@ -7599,6 +7606,7 @@ property indicating the link is added." | |||
| 7599 | (defvar idlwave-current-class-tags nil) | 7606 | (defvar idlwave-current-class-tags nil) |
| 7600 | (defvar idlwave-current-native-class-tags nil) | 7607 | (defvar idlwave-current-native-class-tags nil) |
| 7601 | (defvar idlwave-sint-class-tags nil) | 7608 | (defvar idlwave-sint-class-tags nil) |
| 7609 | (declare-function idlwave-sintern-class-tag "idlwave" t t) | ||
| 7602 | (idlwave-new-sintern-type 'class-tag) | 7610 | (idlwave-new-sintern-type 'class-tag) |
| 7603 | (add-to-list 'idlwave-complete-special 'idlwave-complete-class-structure-tag) | 7611 | (add-to-list 'idlwave-complete-special 'idlwave-complete-class-structure-tag) |
| 7604 | (add-hook 'idlwave-update-rinfo-hook 'idlwave-class-tag-reset) | 7612 | (add-hook 'idlwave-update-rinfo-hook 'idlwave-class-tag-reset) |
| @@ -7657,6 +7665,8 @@ property indicating the link is added." | |||
| 7657 | 7665 | ||
| 7658 | (defvar idlwave-sint-sysvars nil) | 7666 | (defvar idlwave-sint-sysvars nil) |
| 7659 | (defvar idlwave-sint-sysvartags nil) | 7667 | (defvar idlwave-sint-sysvartags nil) |
| 7668 | (declare-function idlwave-sintern-sysvar "idlwave" t t) | ||
| 7669 | (declare-function idlwave-sintern-sysvartag "idlwave" t t) | ||
| 7660 | (idlwave-new-sintern-type 'sysvar) | 7670 | (idlwave-new-sintern-type 'sysvar) |
| 7661 | (idlwave-new-sintern-type 'sysvartag) | 7671 | (idlwave-new-sintern-type 'sysvartag) |
| 7662 | (add-to-list 'idlwave-complete-special 'idlwave-complete-sysvar-or-tag) | 7672 | (add-to-list 'idlwave-complete-special 'idlwave-complete-sysvar-or-tag) |
diff --git a/lisp/progmodes/octave-mod.el b/lisp/progmodes/octave-mod.el index a0d33f56ee4..e8246ddb816 100644 --- a/lisp/progmodes/octave-mod.el +++ b/lisp/progmodes/octave-mod.el | |||
| @@ -52,6 +52,8 @@ | |||
| 52 | (defvar inferior-octave-output-string nil) | 52 | (defvar inferior-octave-output-string nil) |
| 53 | (defvar inferior-octave-receive-in-progress nil) | 53 | (defvar inferior-octave-receive-in-progress nil) |
| 54 | 54 | ||
| 55 | (declare-function inferior-octave-send-list-and-digest "octave-inf" (list)) | ||
| 56 | |||
| 55 | (defconst octave-maintainer-address | 57 | (defconst octave-maintainer-address |
| 56 | "Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>, bug-gnu-emacs@gnu.org" | 58 | "Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>, bug-gnu-emacs@gnu.org" |
| 57 | "Current maintainer of the Emacs Octave package.") | 59 | "Current maintainer of the Emacs Octave package.") |
diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el index bb71491da2d..af456f98284 100644 --- a/lisp/progmodes/perl-mode.el +++ b/lisp/progmodes/perl-mode.el | |||
| @@ -266,7 +266,9 @@ The expansion is entirely correct because it uses the C preprocessor." | |||
| 266 | ;; format statements | 266 | ;; format statements |
| 267 | ("^[ \t]*format.*=[ \t]*\\(\n\\)" (1 '(7))) | 267 | ("^[ \t]*format.*=[ \t]*\\(\n\\)" (1 '(7))) |
| 268 | ;; Funny things in sub arg specifications like `sub myfunc ($$)' | 268 | ;; Funny things in sub arg specifications like `sub myfunc ($$)' |
| 269 | ("\\<sub\\s-+\\S-+\\s-*(\\([^)]+\\))" 1 '(1)) | 269 | ;; Be careful not to match "sub { (...) ... }". |
| 270 | ("\\<sub[[:space:]]+[^{}[:punct:][:space:]]+[[:space:]]*(\\([^)]+\\))" | ||
| 271 | 1 '(1)) | ||
| 270 | ;; Regexp and funny quotes. | 272 | ;; Regexp and funny quotes. |
| 271 | ("\\(?:[?:.,;=!~({[]\\|\\(^\\)\\)[ \t\n]*\\(/\\)" | 273 | ("\\(?:[?:.,;=!~({[]\\|\\(^\\)\\)[ \t\n]*\\(/\\)" |
| 272 | (2 (if (and (match-end 1) | 274 | (2 (if (and (match-end 1) |
diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el index 3583f546754..dd3503f16b0 100644 --- a/lisp/progmodes/prolog.el +++ b/lisp/progmodes/prolog.el | |||
| @@ -240,6 +240,11 @@ rigidly along with this one (not yet)." | |||
| 240 | (defvar inferior-prolog-mode-syntax-table prolog-mode-syntax-table) | 240 | (defvar inferior-prolog-mode-syntax-table prolog-mode-syntax-table) |
| 241 | (defvar inferior-prolog-mode-abbrev-table prolog-mode-abbrev-table) | 241 | (defvar inferior-prolog-mode-abbrev-table prolog-mode-abbrev-table) |
| 242 | 242 | ||
| 243 | (declare-function comint-mode "comint") | ||
| 244 | (declare-function comint-send-string "comint" (process string)) | ||
| 245 | (declare-function comint-send-region "comint" (process start end)) | ||
| 246 | (declare-function comint-send-eof "comint" ()) | ||
| 247 | |||
| 243 | (define-derived-mode inferior-prolog-mode comint-mode "Inferior Prolog" | 248 | (define-derived-mode inferior-prolog-mode comint-mode "Inferior Prolog" |
| 244 | "Major mode for interacting with an inferior Prolog process. | 249 | "Major mode for interacting with an inferior Prolog process. |
| 245 | 250 | ||
diff --git a/lisp/progmodes/ps-mode.el b/lisp/progmodes/ps-mode.el index c131575f57c..6327a68302b 100644 --- a/lisp/progmodes/ps-mode.el +++ b/lisp/progmodes/ps-mode.el | |||
| @@ -480,6 +480,9 @@ If nil, the following are tried in turn, until success: | |||
| 480 | (setq i (1+ i))))) | 480 | (setq i (1+ i))))) |
| 481 | 481 | ||
| 482 | 482 | ||
| 483 | |||
| 484 | (declare-function doc-view-minor-mode "doc-view") | ||
| 485 | |||
| 483 | ;; PostScript mode. | 486 | ;; PostScript mode. |
| 484 | 487 | ||
| 485 | ;;;###autoload | 488 | ;;;###autoload |
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index f54b7c9f928..66779acb103 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el | |||
| @@ -65,7 +65,6 @@ | |||
| 65 | ;;; Code: | 65 | ;;; Code: |
| 66 | 66 | ||
| 67 | (eval-when-compile | 67 | (eval-when-compile |
| 68 | (require 'cl) | ||
| 69 | (require 'compile) | 68 | (require 'compile) |
| 70 | (require 'comint) | 69 | (require 'comint) |
| 71 | (require 'hippie-exp)) | 70 | (require 'hippie-exp)) |
| @@ -1224,6 +1223,9 @@ local value.") | |||
| 1224 | ;; (modify-syntax-entry ?\" "." st) | 1223 | ;; (modify-syntax-entry ?\" "." st) |
| 1225 | st)) | 1224 | st)) |
| 1226 | 1225 | ||
| 1226 | ;; Autoloaded. | ||
| 1227 | (declare-function compilation-shell-minor-mode "compile" (&optional arg)) | ||
| 1228 | |||
| 1227 | ;; Fixme: This should inherit some stuff from `python-mode', but I'm | 1229 | ;; Fixme: This should inherit some stuff from `python-mode', but I'm |
| 1228 | ;; not sure how much: at least some keybindings, like C-c C-f; | 1230 | ;; not sure how much: at least some keybindings, like C-c C-f; |
| 1229 | ;; syntax?; font-locking, e.g. for triple-quoted strings? | 1231 | ;; syntax?; font-locking, e.g. for triple-quoted strings? |
| @@ -1656,6 +1658,8 @@ instance. Assumes an inferior Python is running." | |||
| 1656 | 1658 | ||
| 1657 | ;;;; Info-look functionality. | 1659 | ;;;; Info-look functionality. |
| 1658 | 1660 | ||
| 1661 | (declare-function info-lookup-maybe-add-help "info-look" (&rest arg)) | ||
| 1662 | |||
| 1659 | (defun python-after-info-look () | 1663 | (defun python-after-info-look () |
| 1660 | "Set up info-look for Python. | 1664 | "Set up info-look for Python. |
| 1661 | Used with `eval-after-load'." | 1665 | Used with `eval-after-load'." |
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index e9d9247d7cb..cd08fea2910 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el | |||
| @@ -1524,6 +1524,8 @@ with your script for an edit-interpret-debug cycle." | |||
| 1524 | skeleton-filter-function 'sh-feature | 1524 | skeleton-filter-function 'sh-feature |
| 1525 | skeleton-newline-indent-rigidly t | 1525 | skeleton-newline-indent-rigidly t |
| 1526 | sh-indent-supported-here nil) | 1526 | sh-indent-supported-here nil) |
| 1527 | (set (make-local-variable 'defun-prompt-regexp) | ||
| 1528 | (concat "^\\(function[ \t]\\|[[:alnum:]]+[ \t]+()[ \t]+\\)")) | ||
| 1527 | (set (make-local-variable 'parse-sexp-ignore-comments) t) | 1529 | (set (make-local-variable 'parse-sexp-ignore-comments) t) |
| 1528 | ;; Parse or insert magic number for exec, and set all variables depending | 1530 | ;; Parse or insert magic number for exec, and set all variables depending |
| 1529 | ;; on the shell thus determined. | 1531 | ;; on the shell thus determined. |