diff options
| author | Karoly Lorentey | 2005-06-15 12:57:51 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2005-06-15 12:57:51 +0000 |
| commit | ef85512e51f043d73788f00a2aed13cccde0682c (patch) | |
| tree | fc1fa1378533250f260ef8eaa9a84ae882d9df84 /lisp/emacs-lisp | |
| parent | 8736257554f49445f7b4402ac7a9436b38ce6452 (diff) | |
| parent | ef88a9999004e6c26148c8d280d6a41f623d7249 (diff) | |
| download | emacs-ef85512e51f043d73788f00a2aed13cccde0682c.tar.gz emacs-ef85512e51f043d73788f00a2aed13cccde0682c.zip | |
Merged from miles@gnu.org--gnu-2005 (patch 80-82, 350-422)
Patches applied:
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-350
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-351
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-352
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-353
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-354
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-355
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-356
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-357
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-358
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-359
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-360
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-361
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-362
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-363
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-364
Remove "-face" suffix from widget faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-365
Remove "-face" suffix from custom faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-366
Remove "-face" suffix from change-log faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-367
Remove "-face" suffix from compilation faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-368
Remove "-face" suffix from diff-mode faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-369
lisp/longlines.el (longlines-visible-face): Face removed
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-370
Remove "-face" suffix from woman faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-371
Remove "-face" suffix from whitespace-highlight face
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Remove "-face" suffix from ruler-mode faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-373
Remove "-face" suffix from show-paren faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-374
Remove "-face" suffix from log-view faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-375
Remove "-face" suffix from smerge faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-376
Remove "-face" suffix from show-tabs faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-377
Remove "-face" suffix from highlight-changes faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-378
Remove "-face" suffix from and downcase info faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-379
Remove "-face" suffix from pcvs faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-380
Update uses of renamed pcvs faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-381
Tweak ChangeLog
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-382
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-383
Remove "-face" suffix from strokes-char face
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-384
Remove "-face" suffix from compare-windows face
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-385
Remove "-face" suffix from calendar faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-386
Remove "-face" suffix from diary-button face
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-387
Remove "-face" suffix from testcover faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-388
Remove "-face" suffix from viper faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Remove "-face" suffix from org faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-390
Remove "-face" suffix from sgml-namespace face
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-391
Remove "-face" suffix from table-cell face
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-392
Remove "-face" suffix from tex-mode faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-393
Remove "-face" suffix from texinfo-heading face
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-394
Remove "-face" suffix from flyspell faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-395
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-396
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-397
Remove "-face" suffix from gomoku faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-398
Remove "-face" suffix from mpuz faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-399
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-400
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-401
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-402
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-403
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-404
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-405
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-406
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-407
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-408
Remove "-face" suffix from Buffer-menu-buffer face
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-409
Remove "-face" suffix from antlr-mode faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-410
Remove "-face" suffix from ebrowse faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-411
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-412
Remove "-face" suffix from flymake faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-413
Remove "-face" suffix from idlwave faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-414
Remove "-face" suffix from sh-script faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-415
Remove "-face" suffix from vhdl-mode faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-416
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-417
Remove "-face" suffix from which-func face
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-418
Remove "-face" suffix from cperl-mode faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-419
Remove "-face" suffix from ld-script faces
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-420
Fix cperl-mode font-lock problem
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-421
Tweak which-func face
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-422
Update from CVS
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-80
Merge from emacs--cvs-trunk--0
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-81
Update from CVS
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-82
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-350
Diffstat (limited to 'lisp/emacs-lisp')
| -rw-r--r-- | lisp/emacs-lisp/bindat.el | 7 | ||||
| -rw-r--r-- | lisp/emacs-lisp/byte-run.el | 46 | ||||
| -rw-r--r-- | lisp/emacs-lisp/debug.el | 82 | ||||
| -rw-r--r-- | lisp/emacs-lisp/derived.el | 10 | ||||
| -rw-r--r-- | lisp/emacs-lisp/easy-mmode.el | 81 | ||||
| -rw-r--r-- | lisp/emacs-lisp/edebug.el | 43 | ||||
| -rw-r--r-- | lisp/emacs-lisp/ewoc.el | 36 | ||||
| -rw-r--r-- | lisp/emacs-lisp/lisp-mode.el | 3 | ||||
| -rw-r--r-- | lisp/emacs-lisp/testcover.el | 18 |
9 files changed, 205 insertions, 121 deletions
diff --git a/lisp/emacs-lisp/bindat.el b/lisp/emacs-lisp/bindat.el index d8b4b4f6c19..7ed01e4bdea 100644 --- a/lisp/emacs-lisp/bindat.el +++ b/lisp/emacs-lisp/bindat.el | |||
| @@ -85,7 +85,7 @@ | |||
| 85 | ;; (items u8) | 85 | ;; (items u8) |
| 86 | ;; (fill 3) | 86 | ;; (fill 3) |
| 87 | ;; (item repeat (items) | 87 | ;; (item repeat (items) |
| 88 | ;; ((struct data-spec))))) | 88 | ;; (struct data-spec)))) |
| 89 | ;; | 89 | ;; |
| 90 | ;; | 90 | ;; |
| 91 | ;; A binary data representation may look like | 91 | ;; A binary data representation may look like |
| @@ -131,7 +131,7 @@ | |||
| 131 | ;; | ( [FIELD] align LEN ) -- skip to next multiple of LEN bytes | 131 | ;; | ( [FIELD] align LEN ) -- skip to next multiple of LEN bytes |
| 132 | ;; | ( [FIELD] struct SPEC_NAME ) | 132 | ;; | ( [FIELD] struct SPEC_NAME ) |
| 133 | ;; | ( [FIELD] union TAG_VAL (TAG SPEC)... [(t SPEC)] ) | 133 | ;; | ( [FIELD] union TAG_VAL (TAG SPEC)... [(t SPEC)] ) |
| 134 | ;; | ( [FIELD] repeat COUNT SPEC ) | 134 | ;; | ( [FIELD] repeat COUNT ITEM... ) |
| 135 | 135 | ||
| 136 | ;; -- In (eval EXPR), the value of the last field is available in | 136 | ;; -- In (eval EXPR), the value of the last field is available in |
| 137 | ;; the dynamically bound variable `last'. | 137 | ;; the dynamically bound variable `last'. |
| @@ -151,7 +151,8 @@ | |||
| 151 | ;; -- Note: 32 bit values may be limited by emacs' INTEGER | 151 | ;; -- Note: 32 bit values may be limited by emacs' INTEGER |
| 152 | ;; implementation limits. | 152 | ;; implementation limits. |
| 153 | ;; | 153 | ;; |
| 154 | ;; -- Example: bits 2 will map bytes 0x1c 0x28 to list (2 3 7 11 13) | 154 | ;; -- Example: `bits 2' will unpack 0x28 0x1c to (2 3 4 11 13) |
| 155 | ;; and 0x1c 0x28 to (3 5 10 11 12). | ||
| 155 | 156 | ||
| 156 | ;; FIELD ::= ( eval EXPR ) -- use result as NAME | 157 | ;; FIELD ::= ( eval EXPR ) -- use result as NAME |
| 157 | ;; | NAME | 158 | ;; | NAME |
diff --git a/lisp/emacs-lisp/byte-run.el b/lisp/emacs-lisp/byte-run.el index 7fc01901cfe..d3def79c8fb 100644 --- a/lisp/emacs-lisp/byte-run.el +++ b/lisp/emacs-lisp/byte-run.el | |||
| @@ -100,23 +100,23 @@ The return value of this function is not used." | |||
| 100 | (eval-and-compile | 100 | (eval-and-compile |
| 101 | (put ',name 'byte-optimizer 'byte-compile-inline-expand)))) | 101 | (put ',name 'byte-optimizer 'byte-compile-inline-expand)))) |
| 102 | 102 | ||
| 103 | (defun make-obsolete (function new &optional when) | 103 | (defun make-obsolete (obsolete-name current-name &optional when) |
| 104 | "Make the byte-compiler warn that FUNCTION is obsolete. | 104 | "Make the byte-compiler warn that OBSOLETE-NAME is obsolete. |
| 105 | The warning will say that NEW should be used instead. | 105 | The warning will say that CURRENT-NAME should be used instead. |
| 106 | If NEW is a string, that is the `use instead' message. | 106 | If CURRENT-NAME is a string, that is the `use instead' message. |
| 107 | If provided, WHEN should be a string indicating when the function | 107 | If provided, WHEN should be a string indicating when the function |
| 108 | was first made obsolete, for example a date or a release number." | 108 | was first made obsolete, for example a date or a release number." |
| 109 | (interactive "aMake function obsolete: \nxObsoletion replacement: ") | 109 | (interactive "aMake function obsolete: \nxObsoletion replacement: ") |
| 110 | (let ((handler (get function 'byte-compile))) | 110 | (let ((handler (get obsolete-name 'byte-compile))) |
| 111 | (if (eq 'byte-compile-obsolete handler) | 111 | (if (eq 'byte-compile-obsolete handler) |
| 112 | (setq handler (nth 1 (get function 'byte-obsolete-info))) | 112 | (setq handler (nth 1 (get obsolete-name 'byte-obsolete-info))) |
| 113 | (put function 'byte-compile 'byte-compile-obsolete)) | 113 | (put obsolete-name 'byte-compile 'byte-compile-obsolete)) |
| 114 | (put function 'byte-obsolete-info (list new handler when))) | 114 | (put obsolete-name 'byte-obsolete-info (list current-name handler when))) |
| 115 | function) | 115 | obsolete-name) |
| 116 | 116 | ||
| 117 | (defmacro define-obsolete-function-alias (function new | 117 | (defmacro define-obsolete-function-alias (obsolete-name current-name |
| 118 | &optional when docstring) | 118 | &optional when docstring) |
| 119 | "Set FUNCTION's function definition to NEW and mark it obsolete. | 119 | "Set OBSOLETE-NAME's function definition to CURRENT-NAME and mark it obsolete. |
| 120 | 120 | ||
| 121 | \(define-obsolete-function-alias 'old-fun 'new-fun \"22.1\" \"old-fun's doc.\") | 121 | \(define-obsolete-function-alias 'old-fun 'new-fun \"22.1\" \"old-fun's doc.\") |
| 122 | 122 | ||
| @@ -127,13 +127,13 @@ is equivalent to the following two lines of code: | |||
| 127 | 127 | ||
| 128 | See the docstrings of `defalias' and `make-obsolete' for more details." | 128 | See the docstrings of `defalias' and `make-obsolete' for more details." |
| 129 | `(progn | 129 | `(progn |
| 130 | (defalias ,function ,new ,docstring) | 130 | (defalias ,obsolete-name ,current-name ,docstring) |
| 131 | (make-obsolete ,function ,new ,when))) | 131 | (make-obsolete ,obsolete-name ,current-name ,when))) |
| 132 | 132 | ||
| 133 | (defun make-obsolete-variable (variable new &optional when) | 133 | (defun make-obsolete-variable (obsolete-name current-name &optional when) |
| 134 | "Make the byte-compiler warn that VARIABLE is obsolete. | 134 | "Make the byte-compiler warn that OBSOLETE-NAME is obsolete. |
| 135 | The warning will say that NEW should be used instead. | 135 | The warning will say that CURRENT-NAME should be used instead. |
| 136 | If NEW is a string, that is the `use instead' message. | 136 | If CURRENT-NAME is a string, that is the `use instead' message. |
| 137 | If provided, WHEN should be a string indicating when the variable | 137 | If provided, WHEN should be a string indicating when the variable |
| 138 | was first made obsolete, for example a date or a release number." | 138 | was first made obsolete, for example a date or a release number." |
| 139 | (interactive | 139 | (interactive |
| @@ -142,12 +142,12 @@ was first made obsolete, for example a date or a release number." | |||
| 142 | (if (equal str "") (error "")) | 142 | (if (equal str "") (error "")) |
| 143 | (intern str)) | 143 | (intern str)) |
| 144 | (car (read-from-string (read-string "Obsoletion replacement: "))))) | 144 | (car (read-from-string (read-string "Obsoletion replacement: "))))) |
| 145 | (put variable 'byte-obsolete-variable (cons new when)) | 145 | (put obsolete-name 'byte-obsolete-variable (cons current-name when)) |
| 146 | variable) | 146 | obsolete-name) |
| 147 | 147 | ||
| 148 | (defmacro define-obsolete-variable-alias (variable new | 148 | (defmacro define-obsolete-variable-alias (obsolete-name current-name |
| 149 | &optional when docstring) | 149 | &optional when docstring) |
| 150 | "Make VARIABLE a variable alias for NEW and mark it obsolete. | 150 | "Make OBSOLETE-NAME a variable alias for CURRENT-NAME and mark it obsolete. |
| 151 | 151 | ||
| 152 | \(define-obsolete-variable-alias 'old-var 'new-var \"22.1\" \"old-var's doc.\") | 152 | \(define-obsolete-variable-alias 'old-var 'new-var \"22.1\" \"old-var's doc.\") |
| 153 | 153 | ||
| @@ -159,8 +159,8 @@ is equivalent to the following two lines of code: | |||
| 159 | See the docstrings of `defvaralias' and `make-obsolete-variable' or | 159 | See the docstrings of `defvaralias' and `make-obsolete-variable' or |
| 160 | Info node `(elisp)Variable Aliases' for more details." | 160 | Info node `(elisp)Variable Aliases' for more details." |
| 161 | `(progn | 161 | `(progn |
| 162 | (defvaralias ,variable ,new ,docstring) | 162 | (defvaralias ,obsolete-name ,current-name ,docstring) |
| 163 | (make-obsolete-variable ,variable ,new ,when))) | 163 | (make-obsolete-variable ,obsolete-name ,current-name ,when))) |
| 164 | 164 | ||
| 165 | (defmacro dont-compile (&rest body) | 165 | (defmacro dont-compile (&rest body) |
| 166 | "Like `progn', but the body always runs interpreted (not compiled). | 166 | "Like `progn', but the body always runs interpreted (not compiled). |
diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el index 2149cba8720..0ee67355bf4 100644 --- a/lisp/emacs-lisp/debug.el +++ b/lisp/emacs-lisp/debug.el | |||
| @@ -88,6 +88,8 @@ This is to optimize `debugger-make-xrefs'.") | |||
| 88 | (defvar debugger-outer-standard-output) | 88 | (defvar debugger-outer-standard-output) |
| 89 | (defvar debugger-outer-inhibit-redisplay) | 89 | (defvar debugger-outer-inhibit-redisplay) |
| 90 | (defvar debugger-outer-cursor-in-echo-area) | 90 | (defvar debugger-outer-cursor-in-echo-area) |
| 91 | (defvar debugger-will-be-back nil | ||
| 92 | "Non-nil if we expect to get back in the debugger soon.") | ||
| 91 | 93 | ||
| 92 | (defvar inhibit-debug-on-entry nil | 94 | (defvar inhibit-debug-on-entry nil |
| 93 | "Non-nil means that debug-on-entry is disabled.") | 95 | "Non-nil means that debug-on-entry is disabled.") |
| @@ -97,6 +99,8 @@ This is to optimize `debugger-make-xrefs'.") | |||
| 97 | This variable is used by `debugger-jump', `debugger-step-through', | 99 | This variable is used by `debugger-jump', `debugger-step-through', |
| 98 | and `debugger-reenable' to temporarily disable debug-on-entry.") | 100 | and `debugger-reenable' to temporarily disable debug-on-entry.") |
| 99 | 101 | ||
| 102 | (defvar inhibit-trace) ;Not yet implemented. | ||
| 103 | |||
| 100 | ;;;###autoload | 104 | ;;;###autoload |
| 101 | (setq debugger 'debug) | 105 | (setq debugger 'debug) |
| 102 | ;;;###autoload | 106 | ;;;###autoload |
| @@ -121,6 +125,7 @@ first will be printed into the backtrace buffer." | |||
| 121 | (get-buffer-create "*Backtrace*"))) | 125 | (get-buffer-create "*Backtrace*"))) |
| 122 | (debugger-old-buffer (current-buffer)) | 126 | (debugger-old-buffer (current-buffer)) |
| 123 | (debugger-step-after-exit nil) | 127 | (debugger-step-after-exit nil) |
| 128 | (debugger-will-be-back nil) | ||
| 124 | ;; Don't keep reading from an executing kbd macro! | 129 | ;; Don't keep reading from an executing kbd macro! |
| 125 | (executing-kbd-macro nil) | 130 | (executing-kbd-macro nil) |
| 126 | ;; Save the outer values of these vars for the `e' command | 131 | ;; Save the outer values of these vars for the `e' command |
| @@ -178,7 +183,7 @@ first will be printed into the backtrace buffer." | |||
| 178 | ;; Place an extra debug-on-exit for macro's. | 183 | ;; Place an extra debug-on-exit for macro's. |
| 179 | (when (eq 'lambda (car-safe (cadr (backtrace-frame 4)))) | 184 | (when (eq 'lambda (car-safe (cadr (backtrace-frame 4)))) |
| 180 | (backtrace-debug 5 t))) | 185 | (backtrace-debug 5 t))) |
| 181 | (pop-to-buffer debugger-buffer) | 186 | (pop-to-buffer debugger-buffer) |
| 182 | (debugger-mode) | 187 | (debugger-mode) |
| 183 | (debugger-setup-buffer debugger-args) | 188 | (debugger-setup-buffer debugger-args) |
| 184 | (when noninteractive | 189 | (when noninteractive |
| @@ -210,12 +215,23 @@ first will be printed into the backtrace buffer." | |||
| 210 | ;; Still visible despite the save-window-excursion? Maybe it | 215 | ;; Still visible despite the save-window-excursion? Maybe it |
| 211 | ;; it's in a pop-up frame. It would be annoying to delete and | 216 | ;; it's in a pop-up frame. It would be annoying to delete and |
| 212 | ;; recreate it every time the debugger stops, so instead we'll | 217 | ;; recreate it every time the debugger stops, so instead we'll |
| 213 | ;; erase it and hide it but keep it alive. | 218 | ;; erase it (and maybe hide it) but keep it alive. |
| 214 | (with-current-buffer debugger-buffer | 219 | (with-current-buffer debugger-buffer |
| 215 | (erase-buffer) | 220 | (erase-buffer) |
| 216 | (fundamental-mode) | 221 | (fundamental-mode) |
| 217 | (with-selected-window (get-buffer-window debugger-buffer 0) | 222 | (with-selected-window (get-buffer-window debugger-buffer 0) |
| 218 | (bury-buffer))) | 223 | (when (and (window-dedicated-p (selected-window)) |
| 224 | (not debugger-will-be-back)) | ||
| 225 | ;; If the window is not dedicated, burying the buffer | ||
| 226 | ;; will mean that the frame created for it is left | ||
| 227 | ;; around showing some random buffer, and next time we | ||
| 228 | ;; pop to the debugger buffer we'll create yet | ||
| 229 | ;; another frame. | ||
| 230 | ;; If debugger-will-be-back is non-nil, the frame | ||
| 231 | ;; would need to be de-iconified anyway immediately | ||
| 232 | ;; after when we re-enter the debugger, so iconifying it | ||
| 233 | ;; here would cause flashing. | ||
| 234 | (bury-buffer)))) | ||
| 219 | (kill-buffer debugger-buffer)) | 235 | (kill-buffer debugger-buffer)) |
| 220 | (set-match-data debugger-outer-match-data))) | 236 | (set-match-data debugger-outer-match-data))) |
| 221 | ;; Put into effect the modified values of these variables | 237 | ;; Put into effect the modified values of these variables |
| @@ -307,7 +323,7 @@ That buffer should be current already." | |||
| 307 | (save-excursion | 323 | (save-excursion |
| 308 | (set-buffer (or buffer (current-buffer))) | 324 | (set-buffer (or buffer (current-buffer))) |
| 309 | (setq buffer (current-buffer)) | 325 | (setq buffer (current-buffer)) |
| 310 | (let ((buffer-read-only nil) | 326 | (let ((inhibit-read-only t) |
| 311 | (old-end (point-min)) (new-end (point-min))) | 327 | (old-end (point-min)) (new-end (point-min))) |
| 312 | ;; If we saved an old backtrace, find the common part | 328 | ;; If we saved an old backtrace, find the common part |
| 313 | ;; between the new and the old. | 329 | ;; between the new and the old. |
| @@ -377,6 +393,7 @@ Enter another debugger on next entry to eval, apply or funcall." | |||
| 377 | (interactive) | 393 | (interactive) |
| 378 | (setq debugger-step-after-exit t) | 394 | (setq debugger-step-after-exit t) |
| 379 | (setq debugger-jumping-flag t) | 395 | (setq debugger-jumping-flag t) |
| 396 | (setq debugger-will-be-back t) | ||
| 380 | (add-hook 'post-command-hook 'debugger-reenable) | 397 | (add-hook 'post-command-hook 'debugger-reenable) |
| 381 | (message "Proceeding, will debug on next eval or call.") | 398 | (message "Proceeding, will debug on next eval or call.") |
| 382 | (exit-recursive-edit)) | 399 | (exit-recursive-edit)) |
| @@ -387,6 +404,12 @@ Enter another debugger on next entry to eval, apply or funcall." | |||
| 387 | (unless debugger-may-continue | 404 | (unless debugger-may-continue |
| 388 | (error "Cannot continue")) | 405 | (error "Cannot continue")) |
| 389 | (message "Continuing.") | 406 | (message "Continuing.") |
| 407 | (save-excursion | ||
| 408 | ;; Check to see if we've flagged some frame for debug-on-exit, in which | ||
| 409 | ;; case we'll probably come back to the debugger soon. | ||
| 410 | (goto-char (point-min)) | ||
| 411 | (if (re-search-forward "^\\* " nil t) | ||
| 412 | (setq debugger-will-be-back t))) | ||
| 390 | (exit-recursive-edit)) | 413 | (exit-recursive-edit)) |
| 391 | 414 | ||
| 392 | (defun debugger-return-value (val) | 415 | (defun debugger-return-value (val) |
| @@ -397,6 +420,12 @@ will be used, such as in a debug on exit from a frame." | |||
| 397 | (setq debugger-value val) | 420 | (setq debugger-value val) |
| 398 | (princ "Returning " t) | 421 | (princ "Returning " t) |
| 399 | (prin1 debugger-value) | 422 | (prin1 debugger-value) |
| 423 | (save-excursion | ||
| 424 | ;; Check to see if we've flagged some frame for debug-on-exit, in which | ||
| 425 | ;; case we'll probably come back to the debugger soon. | ||
| 426 | (goto-char (point-min)) | ||
| 427 | (if (re-search-forward "^\\* " nil t) | ||
| 428 | (setq debugger-will-be-back t))) | ||
| 400 | (exit-recursive-edit)) | 429 | (exit-recursive-edit)) |
| 401 | 430 | ||
| 402 | (defun debugger-jump () | 431 | (defun debugger-jump () |
| @@ -406,6 +435,7 @@ will be used, such as in a debug on exit from a frame." | |||
| 406 | (setq debugger-jumping-flag t) | 435 | (setq debugger-jumping-flag t) |
| 407 | (add-hook 'post-command-hook 'debugger-reenable) | 436 | (add-hook 'post-command-hook 'debugger-reenable) |
| 408 | (message "Continuing through this frame") | 437 | (message "Continuing through this frame") |
| 438 | (setq debugger-will-be-back t) | ||
| 409 | (exit-recursive-edit)) | 439 | (exit-recursive-edit)) |
| 410 | 440 | ||
| 411 | (defun debugger-reenable () | 441 | (defun debugger-reenable () |
| @@ -454,7 +484,7 @@ Applies to the frame whose line point is on in the backtrace." | |||
| 454 | (beginning-of-line) | 484 | (beginning-of-line) |
| 455 | (backtrace-debug (debugger-frame-number) t) | 485 | (backtrace-debug (debugger-frame-number) t) |
| 456 | (if (= (following-char) ? ) | 486 | (if (= (following-char) ? ) |
| 457 | (let ((buffer-read-only nil)) | 487 | (let ((inhibit-read-only t)) |
| 458 | (delete-char 1) | 488 | (delete-char 1) |
| 459 | (insert ?*))) | 489 | (insert ?*))) |
| 460 | (beginning-of-line)) | 490 | (beginning-of-line)) |
| @@ -470,7 +500,7 @@ Applies to the frame whose line point is on in the backtrace." | |||
| 470 | (beginning-of-line) | 500 | (beginning-of-line) |
| 471 | (backtrace-debug (debugger-frame-number) nil) | 501 | (backtrace-debug (debugger-frame-number) nil) |
| 472 | (if (= (following-char) ?*) | 502 | (if (= (following-char) ?*) |
| 473 | (let ((buffer-read-only nil)) | 503 | (let ((inhibit-read-only t)) |
| 474 | (delete-char 1) | 504 | (delete-char 1) |
| 475 | (insert ? ))) | 505 | (insert ? ))) |
| 476 | (beginning-of-line)) | 506 | (beginning-of-line)) |
| @@ -584,7 +614,7 @@ Applies to the frame whose line point is on in the backtrace." | |||
| 584 | (terpri)) | 614 | (terpri)) |
| 585 | 615 | ||
| 586 | (with-current-buffer (get-buffer debugger-record-buffer) | 616 | (with-current-buffer (get-buffer debugger-record-buffer) |
| 587 | (message "%s" | 617 | (message "%s" |
| 588 | (buffer-substring (line-beginning-position 0) | 618 | (buffer-substring (line-beginning-position 0) |
| 589 | (line-end-position 0))))) | 619 | (line-end-position 0))))) |
| 590 | 620 | ||
| @@ -626,22 +656,29 @@ functions to break on entry." | |||
| 626 | ;;;###autoload | 656 | ;;;###autoload |
| 627 | (defun debug-on-entry (function) | 657 | (defun debug-on-entry (function) |
| 628 | "Request FUNCTION to invoke debugger each time it is called. | 658 | "Request FUNCTION to invoke debugger each time it is called. |
| 629 | If you tell the debugger to continue, FUNCTION's execution proceeds. | 659 | |
| 630 | This works by modifying the definition of FUNCTION, | 660 | When called interactively, prompt for FUNCTION in the minibuffer. |
| 631 | which must be written in Lisp, not predefined. | 661 | |
| 662 | This works by modifying the definition of FUNCTION. If you tell the | ||
| 663 | debugger to continue, FUNCTION's execution proceeds. If FUNCTION is a | ||
| 664 | normal function or a macro written in Lisp, you can also step through | ||
| 665 | its execution. FUNCTION can also be a primitive that is not a special | ||
| 666 | form, in which case stepping is not possible. Break-on-entry for | ||
| 667 | primitive functions only works when that function is called from Lisp. | ||
| 668 | |||
| 632 | Use \\[cancel-debug-on-entry] to cancel the effect of this command. | 669 | Use \\[cancel-debug-on-entry] to cancel the effect of this command. |
| 633 | Redefining FUNCTION also cancels it." | 670 | Redefining FUNCTION also cancels it." |
| 634 | (interactive "aDebug on entry (to function): ") | 671 | (interactive "aDebug on entry (to function): ") |
| 635 | (when (and (subrp (symbol-function function)) | 672 | (when (and (subrp (symbol-function function)) |
| 636 | (eq (cdr (subr-arity (symbol-function function))) 'unevalled)) | 673 | (eq (cdr (subr-arity (symbol-function function))) 'unevalled)) |
| 637 | (error "Function %s is a special form" function)) | 674 | (error "Function %s is a special form" function)) |
| 638 | (if (or (symbolp (symbol-function function)) | 675 | (if (or (symbolp (symbol-function function)) |
| 639 | (subrp (symbol-function function))) | 676 | (subrp (symbol-function function))) |
| 640 | ;; The function is built-in or aliased to another function. | 677 | ;; The function is built-in or aliased to another function. |
| 641 | ;; Create a wrapper in which we can add the debug call. | 678 | ;; Create a wrapper in which we can add the debug call. |
| 642 | (fset function `(lambda (&rest debug-on-entry-args) | 679 | (fset function `(lambda (&rest debug-on-entry-args) |
| 643 | ,(interactive-form (symbol-function function)) | 680 | ,(interactive-form (symbol-function function)) |
| 644 | (apply ',(symbol-function function) | 681 | (apply ',(symbol-function function) |
| 645 | debug-on-entry-args))) | 682 | debug-on-entry-args))) |
| 646 | (when (eq (car-safe (symbol-function function)) 'autoload) | 683 | (when (eq (car-safe (symbol-function function)) 'autoload) |
| 647 | ;; The function is autoloaded. Load its real definition. | 684 | ;; The function is autoloaded. Load its real definition. |
| @@ -662,14 +699,19 @@ Redefining FUNCTION also cancels it." | |||
| 662 | ;;;###autoload | 699 | ;;;###autoload |
| 663 | (defun cancel-debug-on-entry (&optional function) | 700 | (defun cancel-debug-on-entry (&optional function) |
| 664 | "Undo effect of \\[debug-on-entry] on FUNCTION. | 701 | "Undo effect of \\[debug-on-entry] on FUNCTION. |
| 665 | If argument is nil or an empty string, cancel for all functions." | 702 | If FUNCTION is nil, cancel debug-on-entry for all functions. |
| 703 | When called interactively, prompt for FUNCTION in the minibuffer. | ||
| 704 | To specify a nil argument interactively, exit with an empty minibuffer." | ||
| 666 | (interactive | 705 | (interactive |
| 667 | (list (let ((name | 706 | (list (let ((name |
| 668 | (completing-read "Cancel debug on entry (to function): " | 707 | (completing-read |
| 669 | (mapcar 'symbol-name debug-function-list) | 708 | "Cancel debug on entry to function (default: all functions): " |
| 670 | nil t nil))) | 709 | (mapcar 'symbol-name debug-function-list) nil t))) |
| 671 | (if name (intern name))))) | 710 | (when name |
| 672 | (if (and function (not (string= function ""))) | 711 | (unless (string= name "") |
| 712 | (intern name)))))) | ||
| 713 | (if (and function | ||
| 714 | (not (string= function ""))) ; Pre 22.1 compatibility test. | ||
| 673 | (progn | 715 | (progn |
| 674 | (let ((defn (debug-on-entry-1 function nil))) | 716 | (let ((defn (debug-on-entry-1 function nil))) |
| 675 | (condition-case nil | 717 | (condition-case nil |
| @@ -709,7 +751,7 @@ If argument is nil or an empty string, cancel for all functions." | |||
| 709 | (defun debug-on-entry-1 (function flag) | 751 | (defun debug-on-entry-1 (function flag) |
| 710 | (let* ((defn (symbol-function function)) | 752 | (let* ((defn (symbol-function function)) |
| 711 | (tail defn)) | 753 | (tail defn)) |
| 712 | (when (eq (car-safe tail) 'macro) | 754 | (when (eq (car-safe tail) 'macro) |
| 713 | (setq tail (cdr tail))) | 755 | (setq tail (cdr tail))) |
| 714 | (if (not (eq (car-safe tail) 'lambda)) | 756 | (if (not (eq (car-safe tail) 'lambda)) |
| 715 | ;; Only signal an error when we try to set debug-on-entry. | 757 | ;; Only signal an error when we try to set debug-on-entry. |
diff --git a/lisp/emacs-lisp/derived.el b/lisp/emacs-lisp/derived.el index 5ba9c094355..943f052fc6d 100644 --- a/lisp/emacs-lisp/derived.el +++ b/lisp/emacs-lisp/derived.el | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | ;;; derived.el --- allow inheritance of major modes | 1 | ;;; derived.el --- allow inheritance of major modes |
| 2 | ;;; (formerly mode-clone.el) | 2 | ;; (formerly mode-clone.el) |
| 3 | 3 | ||
| 4 | ;; Copyright (C) 1993, 1994, 1999, 2003 Free Software Foundation, Inc. | 4 | ;; Copyright (C) 1993, 1994, 1999, 2003 Free Software Foundation, Inc. |
| 5 | 5 | ||
| @@ -221,6 +221,12 @@ See Info node `(elisp)Derived Modes' for more details." | |||
| 221 | (get (quote ,parent) 'mode-class))) | 221 | (get (quote ,parent) 'mode-class))) |
| 222 | ; Set up maps and tables. | 222 | ; Set up maps and tables. |
| 223 | (unless (keymap-parent ,map) | 223 | (unless (keymap-parent ,map) |
| 224 | ;; It would probably be better to set the keymap's parent | ||
| 225 | ;; at the toplevel rather than inside the mode function, | ||
| 226 | ;; but this is not easy for at least the following reasons: | ||
| 227 | ;; - the parent (and its keymap) may not yet be loaded. | ||
| 228 | ;; - the parent's keymap name may be called something else | ||
| 229 | ;; than <parent>-mode-map. | ||
| 224 | (set-keymap-parent ,map (current-local-map))) | 230 | (set-keymap-parent ,map (current-local-map))) |
| 225 | ,(when declare-syntax | 231 | ,(when declare-syntax |
| 226 | `(let ((parent (char-table-parent ,syntax))) | 232 | `(let ((parent (char-table-parent ,syntax))) |
| @@ -440,5 +446,5 @@ Where the new table already has an entry, nothing is copied from the old one." | |||
| 440 | 446 | ||
| 441 | (provide 'derived) | 447 | (provide 'derived) |
| 442 | 448 | ||
| 443 | ;;; arch-tag: 630be248-47d1-4f02-afa0-8207de0ebea0 | 449 | ;; arch-tag: 630be248-47d1-4f02-afa0-8207de0ebea0 |
| 444 | ;;; derived.el ends here | 450 | ;;; derived.el ends here |
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el index 188dc172e07..a342f8a5530 100644 --- a/lisp/emacs-lisp/easy-mmode.el +++ b/lisp/emacs-lisp/easy-mmode.el | |||
| @@ -183,13 +183,18 @@ Use the command `%s' to change this variable." pretty-name mode)) | |||
| 183 | 183 | ||
| 184 | (let ((curfile (or (and (boundp 'byte-compile-current-file) | 184 | (let ((curfile (or (and (boundp 'byte-compile-current-file) |
| 185 | byte-compile-current-file) | 185 | byte-compile-current-file) |
| 186 | load-file-name))) | 186 | load-file-name)) |
| 187 | `(defcustom ,mode ,init-value | 187 | base-doc-string) |
| 188 | ,(format "Non-nil if %s is enabled. | 188 | (setq base-doc-string "Non-nil if %s is enabled. |
| 189 | See the command `%s' for a description of this minor-mode. | 189 | See the command `%s' for a description of this minor-mode. |
| 190 | Setting this variable directly does not take effect; | 190 | Setting this variable directly does not take effect; |
| 191 | use either \\[customize] or the function `%s'." | 191 | use either \\[customize] or the function `%s'.") |
| 192 | pretty-name mode mode) | 192 | (if (null body) |
| 193 | (setq base-doc-string "Non-nil if %s is enabled. | ||
| 194 | See the command `%s' for a description of this minor-mode.")) | ||
| 195 | |||
| 196 | `(defcustom ,mode ,init-value | ||
| 197 | ,(format base-doc-string pretty-name mode mode) | ||
| 193 | :set 'custom-set-minor-mode | 198 | :set 'custom-set-minor-mode |
| 194 | :initialize 'custom-initialize-default | 199 | :initialize 'custom-initialize-default |
| 195 | ,@group | 200 | ,@group |
| @@ -271,14 +276,26 @@ With zero or negative ARG turn mode off. | |||
| 271 | TURN-ON is a function that will be called with no args in every buffer | 276 | TURN-ON is a function that will be called with no args in every buffer |
| 272 | and that should try to turn MODE on if applicable for that buffer. | 277 | and that should try to turn MODE on if applicable for that buffer. |
| 273 | KEYS is a list of CL-style keyword arguments: | 278 | KEYS is a list of CL-style keyword arguments: |
| 274 | :group to specify the custom group." | 279 | :group to specify the custom group. |
| 280 | |||
| 281 | If MODE's set-up depends on the major mode in effect when it was | ||
| 282 | enabled, then disabling and reenabling MODE should make MODE work | ||
| 283 | correctly with the current major mode. This is important to | ||
| 284 | prevent problems with derived modes, that is, major modes that | ||
| 285 | call another major mode in their body." | ||
| 286 | |||
| 275 | (let* ((global-mode-name (symbol-name global-mode)) | 287 | (let* ((global-mode-name (symbol-name global-mode)) |
| 276 | (pretty-name (easy-mmode-pretty-mode-name mode)) | 288 | (pretty-name (easy-mmode-pretty-mode-name mode)) |
| 277 | (pretty-global-name (easy-mmode-pretty-mode-name global-mode)) | 289 | (pretty-global-name (easy-mmode-pretty-mode-name global-mode)) |
| 278 | (group nil) | 290 | (group nil) |
| 279 | (extra-args nil) | 291 | (extra-args nil) |
| 280 | (buffers (intern (concat global-mode-name "-buffers"))) | 292 | (MODE-buffers (intern (concat global-mode-name "-buffers"))) |
| 281 | (cmmh (intern (concat global-mode-name "-cmmh")))) | 293 | (MODE-enable-in-buffers |
| 294 | (intern (concat global-mode-name "-enable-in-buffers"))) | ||
| 295 | (MODE-check-buffers | ||
| 296 | (intern (concat global-mode-name "-check-buffers"))) | ||
| 297 | (MODE-cmhh (intern (concat global-mode-name "-cmhh"))) | ||
| 298 | (MODE-major-mode (intern (concat (symbol-name mode) "-major-mode")))) | ||
| 282 | 299 | ||
| 283 | ;; Check keys. | 300 | ;; Check keys. |
| 284 | (while (keywordp (car keys)) | 301 | (while (keywordp (car keys)) |
| @@ -294,6 +311,8 @@ KEYS is a list of CL-style keyword arguments: | |||
| 294 | "-mode\\'" "" (symbol-name mode)))))) | 311 | "-mode\\'" "" (symbol-name mode)))))) |
| 295 | 312 | ||
| 296 | `(progn | 313 | `(progn |
| 314 | (defvar ,MODE-major-mode nil) | ||
| 315 | (make-variable-buffer-local ',MODE-major-mode) | ||
| 297 | ;; The actual global minor-mode | 316 | ;; The actual global minor-mode |
| 298 | (define-minor-mode ,global-mode | 317 | (define-minor-mode ,global-mode |
| 299 | ,(format "Toggle %s in every buffer. | 318 | ,(format "Toggle %s in every buffer. |
| @@ -306,10 +325,13 @@ in which `%s' turns it on." | |||
| 306 | ;; Setup hook to handle future mode changes and new buffers. | 325 | ;; Setup hook to handle future mode changes and new buffers. |
| 307 | (if ,global-mode | 326 | (if ,global-mode |
| 308 | (progn | 327 | (progn |
| 309 | (add-hook 'after-change-major-mode-hook ',buffers) | 328 | (add-hook 'after-change-major-mode-hook |
| 310 | (add-hook 'change-major-mode-hook ',cmmh)) | 329 | ',MODE-enable-in-buffers) |
| 311 | (remove-hook 'after-change-major-mode-hook ',buffers) | 330 | (add-hook 'find-file-hook ',MODE-check-buffers) |
| 312 | (remove-hook 'change-major-mode-hook ',cmmh)) | 331 | (add-hook 'change-major-mode-hook ',MODE-cmhh)) |
| 332 | (remove-hook 'after-change-major-mode-hook ',MODE-enable-in-buffers) | ||
| 333 | (remove-hook 'find-file-hook ',MODE-check-buffers) | ||
| 334 | (remove-hook 'change-major-mode-hook ',MODE-cmhh)) | ||
| 313 | 335 | ||
| 314 | ;; Go through existing buffers. | 336 | ;; Go through existing buffers. |
| 315 | (dolist (buf (buffer-list)) | 337 | (dolist (buf (buffer-list)) |
| @@ -321,22 +343,33 @@ in which `%s' turns it on." | |||
| 321 | :autoload-end | 343 | :autoload-end |
| 322 | 344 | ||
| 323 | ;; List of buffers left to process. | 345 | ;; List of buffers left to process. |
| 324 | (defvar ,buffers nil) | 346 | (defvar ,MODE-buffers nil) |
| 325 | 347 | ||
| 326 | ;; The function that calls TURN-ON in each buffer. | 348 | ;; The function that calls TURN-ON in each buffer. |
| 327 | (defun ,buffers () | 349 | (defun ,MODE-enable-in-buffers () |
| 328 | (remove-hook 'post-command-hook ',buffers) | 350 | (dolist (buf ,MODE-buffers) |
| 329 | (while ,buffers | 351 | (when (buffer-live-p buf) |
| 330 | (let ((buf (pop ,buffers))) | 352 | (with-current-buffer buf |
| 331 | (when (buffer-live-p buf) | 353 | (if ,mode |
| 332 | (with-current-buffer buf (,turn-on)))))) | 354 | (unless (eq ,MODE-major-mode major-mode) |
| 333 | (put ',buffers 'definition-name ',global-mode) | 355 | (,mode -1) |
| 356 | (,turn-on) | ||
| 357 | (setq ,MODE-major-mode major-mode)) | ||
| 358 | (,turn-on) | ||
| 359 | (setq ,MODE-major-mode major-mode)))))) | ||
| 360 | (put ',MODE-enable-in-buffers 'definition-name ',global-mode) | ||
| 361 | |||
| 362 | (defun ,MODE-check-buffers () | ||
| 363 | (,MODE-enable-in-buffers) | ||
| 364 | (setq ,MODE-buffers nil) | ||
| 365 | (remove-hook 'post-command-hook ',MODE-check-buffers)) | ||
| 366 | (put ',MODE-check-buffers 'definition-name ',global-mode) | ||
| 334 | 367 | ||
| 335 | ;; The function that catches kill-all-local-variables. | 368 | ;; The function that catches kill-all-local-variables. |
| 336 | (defun ,cmmh () | 369 | (defun ,MODE-cmhh () |
| 337 | (add-to-list ',buffers (current-buffer)) | 370 | (add-to-list ',MODE-buffers (current-buffer)) |
| 338 | (add-hook 'post-command-hook ',buffers)) | 371 | (add-hook 'post-command-hook ',MODE-check-buffers)) |
| 339 | (put ',cmmh 'definition-name ',global-mode)))) | 372 | (put ',MODE-cmhh 'definition-name ',global-mode)))) |
| 340 | 373 | ||
| 341 | ;;; | 374 | ;;; |
| 342 | ;;; easy-mmode-defmap | 375 | ;;; easy-mmode-defmap |
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el index 91ebda57001..54325c87b6d 100644 --- a/lisp/emacs-lisp/edebug.el +++ b/lisp/emacs-lisp/edebug.el | |||
| @@ -80,7 +80,7 @@ using but only when you also use Edebug." | |||
| 80 | 80 | ||
| 81 | ;;;###autoload | 81 | ;;;###autoload |
| 82 | (defcustom edebug-all-defs nil | 82 | (defcustom edebug-all-defs nil |
| 83 | "*If non-nil, evaluation of any defining forms will instrument for Edebug. | 83 | "*If non-nil, evaluating defining forms instruments for Edebug. |
| 84 | This applies to `eval-defun', `eval-region', `eval-buffer', and | 84 | This applies to `eval-defun', `eval-region', `eval-buffer', and |
| 85 | `eval-current-buffer'. `eval-region' is also called by | 85 | `eval-current-buffer'. `eval-region' is also called by |
| 86 | `eval-last-sexp', and `eval-print-last-sexp'. | 86 | `eval-last-sexp', and `eval-print-last-sexp'. |
| @@ -141,10 +141,10 @@ it." | |||
| 141 | :group 'edebug) | 141 | :group 'edebug) |
| 142 | 142 | ||
| 143 | (defcustom edebug-initial-mode 'step | 143 | (defcustom edebug-initial-mode 'step |
| 144 | "*Initial execution mode for Edebug, if non-nil. If this variable | 144 | "*Initial execution mode for Edebug, if non-nil. |
| 145 | is non-@code{nil}, it specifies the initial execution mode for Edebug | 145 | If this variable is non-nil, it specifies the initial execution mode |
| 146 | when it is first activated. Possible values are step, next, go, | 146 | for Edebug when it is first activated. Possible values are step, next, |
| 147 | Go-nonstop, trace, Trace-fast, continue, and Continue-fast." | 147 | go, Go-nonstop, trace, Trace-fast, continue, and Continue-fast." |
| 148 | :type '(choice (const step) (const next) (const go) | 148 | :type '(choice (const step) (const next) (const go) |
| 149 | (const Go-nonstop) (const trace) | 149 | (const Go-nonstop) (const trace) |
| 150 | (const Trace-fast) (const continue) | 150 | (const Trace-fast) (const continue) |
| @@ -180,15 +180,15 @@ Use this with caution since it is not debugged." | |||
| 180 | 180 | ||
| 181 | 181 | ||
| 182 | (defcustom edebug-print-length 50 | 182 | (defcustom edebug-print-length 50 |
| 183 | "*Default value of `print-length' to use while printing results in Edebug." | 183 | "*Default value of `print-length' for printing results in Edebug." |
| 184 | :type 'integer | 184 | :type 'integer |
| 185 | :group 'edebug) | 185 | :group 'edebug) |
| 186 | (defcustom edebug-print-level 50 | 186 | (defcustom edebug-print-level 50 |
| 187 | "*Default value of `print-level' to use while printing results in Edebug." | 187 | "*Default value of `print-level' for printing results in Edebug." |
| 188 | :type 'integer | 188 | :type 'integer |
| 189 | :group 'edebug) | 189 | :group 'edebug) |
| 190 | (defcustom edebug-print-circle t | 190 | (defcustom edebug-print-circle t |
| 191 | "*Default value of `print-circle' to use while printing results in Edebug." | 191 | "*Default value of `print-circle' for printing results in Edebug." |
| 192 | :type 'boolean | 192 | :type 'boolean |
| 193 | :group 'edebug) | 193 | :group 'edebug) |
| 194 | 194 | ||
| @@ -3189,8 +3189,8 @@ The default is one second." | |||
| 3189 | 3189 | ||
| 3190 | 3190 | ||
| 3191 | (defun edebug-modify-breakpoint (flag &optional condition temporary) | 3191 | (defun edebug-modify-breakpoint (flag &optional condition temporary) |
| 3192 | "Modify the breakpoint for the form at point or after it according | 3192 | "Modify the breakpoint for the form at point or after it. |
| 3193 | to FLAG: set if t, clear if nil. Then move to that point. | 3193 | Set it if FLAG is non-nil, clear it otherwise. Then move to that point. |
| 3194 | If CONDITION or TEMPORARY are non-nil, add those attributes to | 3194 | If CONDITION or TEMPORARY are non-nil, add those attributes to |
| 3195 | the breakpoint. " | 3195 | the breakpoint. " |
| 3196 | (let ((edebug-stop-point (edebug-find-stop-point))) | 3196 | (let ((edebug-stop-point (edebug-find-stop-point))) |
| @@ -3729,12 +3729,13 @@ Print result in minibuffer." | |||
| 3729 | (eval-expression-print-format (car values)))))) | 3729 | (eval-expression-print-format (car values)))))) |
| 3730 | 3730 | ||
| 3731 | (defun edebug-eval-last-sexp () | 3731 | (defun edebug-eval-last-sexp () |
| 3732 | "Evaluate sexp before point in the outside environment; value in minibuffer." | 3732 | "Evaluate sexp before point in the outside environment. |
| 3733 | Print value in minibuffer." | ||
| 3733 | (interactive) | 3734 | (interactive) |
| 3734 | (edebug-eval-expression (edebug-last-sexp))) | 3735 | (edebug-eval-expression (edebug-last-sexp))) |
| 3735 | 3736 | ||
| 3736 | (defun edebug-eval-print-last-sexp () | 3737 | (defun edebug-eval-print-last-sexp () |
| 3737 | "Evaluate sexp before point in the outside environment; insert the value. | 3738 | "Evaluate sexp before point in outside environment; insert value. |
| 3738 | This prints the value into current buffer." | 3739 | This prints the value into current buffer." |
| 3739 | (interactive) | 3740 | (interactive) |
| 3740 | (let* ((edebug-form (edebug-last-sexp)) | 3741 | (let* ((edebug-form (edebug-last-sexp)) |
| @@ -4014,20 +4015,19 @@ May only be called from within edebug-recursive-edit." | |||
| 4014 | (defvar edebug-eval-mode-map nil | 4015 | (defvar edebug-eval-mode-map nil |
| 4015 | "Keymap for Edebug Eval mode. Superset of Lisp Interaction mode.") | 4016 | "Keymap for Edebug Eval mode. Superset of Lisp Interaction mode.") |
| 4016 | 4017 | ||
| 4017 | (if edebug-eval-mode-map | 4018 | (unless edebug-eval-mode-map |
| 4018 | nil | 4019 | (setq edebug-eval-mode-map (make-sparse-keymap)) |
| 4019 | (setq edebug-eval-mode-map (copy-keymap lisp-interaction-mode-map)) | 4020 | (set-keymap-parent edebug-eval-mode-map lisp-interaction-mode-map) |
| 4020 | 4021 | ||
| 4021 | (define-key edebug-eval-mode-map "\C-c\C-w" 'edebug-where) | 4022 | (define-key edebug-eval-mode-map "\C-c\C-w" 'edebug-where) |
| 4022 | (define-key edebug-eval-mode-map "\C-c\C-d" 'edebug-delete-eval-item) | 4023 | (define-key edebug-eval-mode-map "\C-c\C-d" 'edebug-delete-eval-item) |
| 4023 | (define-key edebug-eval-mode-map "\C-c\C-u" 'edebug-update-eval-list) | 4024 | (define-key edebug-eval-mode-map "\C-c\C-u" 'edebug-update-eval-list) |
| 4024 | (define-key edebug-eval-mode-map "\C-x\C-e" 'edebug-eval-last-sexp) | 4025 | (define-key edebug-eval-mode-map "\C-x\C-e" 'edebug-eval-last-sexp) |
| 4025 | (define-key edebug-eval-mode-map "\C-j" 'edebug-eval-print-last-sexp) | 4026 | (define-key edebug-eval-mode-map "\C-j" 'edebug-eval-print-last-sexp)) |
| 4026 | ) | ||
| 4027 | 4027 | ||
| 4028 | (put 'edebug-eval-mode 'mode-class 'special) | 4028 | (put 'edebug-eval-mode 'mode-class 'special) |
| 4029 | 4029 | ||
| 4030 | (defun edebug-eval-mode () | 4030 | (define-derived-mode edebug-eval-mode lisp-interaction-mode "Edebug Eval" |
| 4031 | "Mode for evaluation list buffer while in Edebug. | 4031 | "Mode for evaluation list buffer while in Edebug. |
| 4032 | 4032 | ||
| 4033 | In addition to all Interactive Emacs Lisp commands there are local and | 4033 | In addition to all Interactive Emacs Lisp commands there are local and |
| @@ -4039,12 +4039,7 @@ Eval list buffer commands: | |||
| 4039 | \\{edebug-eval-mode-map} | 4039 | \\{edebug-eval-mode-map} |
| 4040 | 4040 | ||
| 4041 | Global commands prefixed by global-edebug-prefix: | 4041 | Global commands prefixed by global-edebug-prefix: |
| 4042 | \\{global-edebug-map} | 4042 | \\{global-edebug-map}") |
| 4043 | " | ||
| 4044 | (lisp-interaction-mode) | ||
| 4045 | (setq major-mode 'edebug-eval-mode) | ||
| 4046 | (setq mode-name "Edebug Eval") | ||
| 4047 | (use-local-map edebug-eval-mode-map)) | ||
| 4048 | 4043 | ||
| 4049 | ;;; Interface with standard debugger. | 4044 | ;;; Interface with standard debugger. |
| 4050 | 4045 | ||
diff --git a/lisp/emacs-lisp/ewoc.el b/lisp/emacs-lisp/ewoc.el index a2cb4e9fe46..9f91dbab0e9 100644 --- a/lisp/emacs-lisp/ewoc.el +++ b/lisp/emacs-lisp/ewoc.el | |||
| @@ -264,7 +264,7 @@ start position and the element DATA." | |||
| 264 | 264 | ||
| 265 | (defun ewoc--delete-node-internal (ewoc node) | 265 | (defun ewoc--delete-node-internal (ewoc node) |
| 266 | "Delete a data string from EWOC. | 266 | "Delete a data string from EWOC. |
| 267 | Can not be used on the footer. Returns the wrapper that is deleted. | 267 | Can not be used on the footer. Return the wrapper that is deleted. |
| 268 | The start-marker in the wrapper is set to nil, so that it doesn't | 268 | The start-marker in the wrapper is set to nil, so that it doesn't |
| 269 | consume any more resources." | 269 | consume any more resources." |
| 270 | (let ((dll (ewoc--dll ewoc)) | 270 | (let ((dll (ewoc--dll ewoc)) |
| @@ -334,25 +334,27 @@ be inserted at the bottom of the ewoc." | |||
| 334 | (defalias 'ewoc-data 'ewoc--node-data) | 334 | (defalias 'ewoc-data 'ewoc--node-data) |
| 335 | 335 | ||
| 336 | (defun ewoc-enter-first (ewoc data) | 336 | (defun ewoc-enter-first (ewoc data) |
| 337 | "Enter DATA first in EWOC." | 337 | "Enter DATA first in EWOC. |
| 338 | Return the new node." | ||
| 338 | (ewoc--set-buffer-bind-dll ewoc | 339 | (ewoc--set-buffer-bind-dll ewoc |
| 339 | (ewoc-enter-after ewoc (ewoc--node-nth dll 0) data))) | 340 | (ewoc-enter-after ewoc (ewoc--node-nth dll 0) data))) |
| 340 | 341 | ||
| 341 | (defun ewoc-enter-last (ewoc data) | 342 | (defun ewoc-enter-last (ewoc data) |
| 342 | "Enter DATA last in EWOC." | 343 | "Enter DATA last in EWOC. |
| 344 | Return the new node." | ||
| 343 | (ewoc--set-buffer-bind-dll ewoc | 345 | (ewoc--set-buffer-bind-dll ewoc |
| 344 | (ewoc-enter-before ewoc (ewoc--node-nth dll -1) data))) | 346 | (ewoc-enter-before ewoc (ewoc--node-nth dll -1) data))) |
| 345 | 347 | ||
| 346 | 348 | ||
| 347 | (defun ewoc-enter-after (ewoc node data) | 349 | (defun ewoc-enter-after (ewoc node data) |
| 348 | "Enter a new element DATA after NODE in EWOC. | 350 | "Enter a new element DATA after NODE in EWOC. |
| 349 | Returns the new NODE." | 351 | Return the new node." |
| 350 | (ewoc--set-buffer-bind-dll ewoc | 352 | (ewoc--set-buffer-bind-dll ewoc |
| 351 | (ewoc-enter-before ewoc (ewoc--node-next dll node) data))) | 353 | (ewoc-enter-before ewoc (ewoc--node-next dll node) data))) |
| 352 | 354 | ||
| 353 | (defun ewoc-enter-before (ewoc node data) | 355 | (defun ewoc-enter-before (ewoc node data) |
| 354 | "Enter a new element DATA before NODE in EWOC. | 356 | "Enter a new element DATA before NODE in EWOC. |
| 355 | Returns the new NODE." | 357 | Return the new node." |
| 356 | (ewoc--set-buffer-bind-dll ewoc | 358 | (ewoc--set-buffer-bind-dll ewoc |
| 357 | (ewoc--node-enter-before | 359 | (ewoc--node-enter-before |
| 358 | node | 360 | node |
| @@ -362,15 +364,15 @@ Returns the new NODE." | |||
| 362 | (ewoc--node-start-marker node))))) | 364 | (ewoc--node-start-marker node))))) |
| 363 | 365 | ||
| 364 | (defun ewoc-next (ewoc node) | 366 | (defun ewoc-next (ewoc node) |
| 365 | "Get the next node. | 367 | "Return the node in EWOC that follows NODE. |
| 366 | Returns nil if NODE is nil or the last element." | 368 | Return nil if NODE is nil or the last element." |
| 367 | (when node | 369 | (when node |
| 368 | (ewoc--filter-hf-nodes | 370 | (ewoc--filter-hf-nodes |
| 369 | ewoc (ewoc--node-next (ewoc--dll ewoc) node)))) | 371 | ewoc (ewoc--node-next (ewoc--dll ewoc) node)))) |
| 370 | 372 | ||
| 371 | (defun ewoc-prev (ewoc node) | 373 | (defun ewoc-prev (ewoc node) |
| 372 | "Get the previous node. | 374 | "Return the node in EWOC that precedes NODE. |
| 373 | Returns nil if NODE is nil or the first element." | 375 | Return nil if NODE is nil or the first element." |
| 374 | (when node | 376 | (when node |
| 375 | (ewoc--filter-hf-nodes | 377 | (ewoc--filter-hf-nodes |
| 376 | ewoc | 378 | ewoc |
| @@ -497,16 +499,16 @@ If the EWOC is empty, nil is returned." | |||
| 497 | best-guess))))))) | 499 | best-guess))))))) |
| 498 | 500 | ||
| 499 | (defun ewoc-invalidate (ewoc &rest nodes) | 501 | (defun ewoc-invalidate (ewoc &rest nodes) |
| 500 | "Refresh some elements. | 502 | "Call EWOC's pretty-printer for each element in NODES. |
| 501 | The pretty-printer set for EWOC will be called for all NODES." | 503 | Delete current text first, thus effecting a \"refresh\"." |
| 502 | (ewoc--set-buffer-bind-dll ewoc | 504 | (ewoc--set-buffer-bind-dll ewoc |
| 503 | (dolist (node nodes) | 505 | (dolist (node nodes) |
| 504 | (ewoc--refresh-node (ewoc--pretty-printer ewoc) node)))) | 506 | (ewoc--refresh-node (ewoc--pretty-printer ewoc) node)))) |
| 505 | 507 | ||
| 506 | (defun ewoc-goto-prev (ewoc arg) | 508 | (defun ewoc-goto-prev (ewoc arg) |
| 507 | "Move point to the ARGth previous element. | 509 | "Move point to the ARGth previous element in EWOC. |
| 508 | Don't move if we are at the first element, or if EWOC is empty. | 510 | Don't move if we are at the first element, or if EWOC is empty. |
| 509 | Returns the node we moved to." | 511 | Return the node we moved to." |
| 510 | (ewoc--set-buffer-bind-dll-let* ewoc | 512 | (ewoc--set-buffer-bind-dll-let* ewoc |
| 511 | ((node (ewoc-locate ewoc (point)))) | 513 | ((node (ewoc-locate ewoc (point)))) |
| 512 | (when node | 514 | (when node |
| @@ -522,8 +524,8 @@ Returns the node we moved to." | |||
| 522 | (ewoc-goto-node ewoc node)))) | 524 | (ewoc-goto-node ewoc node)))) |
| 523 | 525 | ||
| 524 | (defun ewoc-goto-next (ewoc arg) | 526 | (defun ewoc-goto-next (ewoc arg) |
| 525 | "Move point to the ARGth next element. | 527 | "Move point to the ARGth next element in EWOC. |
| 526 | Returns the node (or nil if we just passed the last node)." | 528 | Return the node (or nil if we just passed the last node)." |
| 527 | (ewoc--set-buffer-bind-dll-let* ewoc | 529 | (ewoc--set-buffer-bind-dll-let* ewoc |
| 528 | ((node (ewoc-locate ewoc (point)))) | 530 | ((node (ewoc-locate ewoc (point)))) |
| 529 | (while (and node (> arg 0)) | 531 | (while (and node (> arg 0)) |
| @@ -535,7 +537,7 @@ Returns the node (or nil if we just passed the last node)." | |||
| 535 | (ewoc-goto-node ewoc node))) | 537 | (ewoc-goto-node ewoc node))) |
| 536 | 538 | ||
| 537 | (defun ewoc-goto-node (ewoc node) | 539 | (defun ewoc-goto-node (ewoc node) |
| 538 | "Move point to NODE." | 540 | "Move point to NODE in EWOC." |
| 539 | (ewoc--set-buffer-bind-dll ewoc | 541 | (ewoc--set-buffer-bind-dll ewoc |
| 540 | (goto-char (ewoc--node-start-marker node)) | 542 | (goto-char (ewoc--node-start-marker node)) |
| 541 | (if goal-column (move-to-column goal-column)) | 543 | (if goal-column (move-to-column goal-column)) |
| @@ -586,7 +588,7 @@ remaining arguments will be passed to PREDICATE." | |||
| 586 | 588 | ||
| 587 | (defun ewoc-buffer (ewoc) | 589 | (defun ewoc-buffer (ewoc) |
| 588 | "Return the buffer that is associated with EWOC. | 590 | "Return the buffer that is associated with EWOC. |
| 589 | Returns nil if the buffer has been deleted." | 591 | Return nil if the buffer has been deleted." |
| 590 | (let ((buf (ewoc--buffer ewoc))) | 592 | (let ((buf (ewoc--buffer ewoc))) |
| 591 | (when (buffer-name buf) buf))) | 593 | (when (buffer-name buf) buf))) |
| 592 | 594 | ||
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index bb815481bf0..72924417109 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el | |||
| @@ -129,6 +129,7 @@ | |||
| 129 | (put 'defmacro 'doc-string-elt 3) | 129 | (put 'defmacro 'doc-string-elt 3) |
| 130 | (put 'defmacro* 'doc-string-elt 3) | 130 | (put 'defmacro* 'doc-string-elt 3) |
| 131 | (put 'defsubst 'doc-string-elt 3) | 131 | (put 'defsubst 'doc-string-elt 3) |
| 132 | (put 'defstruct 'doc-string-elt 2) | ||
| 132 | (put 'define-skeleton 'doc-string-elt 2) | 133 | (put 'define-skeleton 'doc-string-elt 2) |
| 133 | (put 'define-derived-mode 'doc-string-elt 4) | 134 | (put 'define-derived-mode 'doc-string-elt 4) |
| 134 | (put 'define-compilation-mode 'doc-string-elt 3) | 135 | (put 'define-compilation-mode 'doc-string-elt 3) |
| @@ -194,7 +195,7 @@ | |||
| 194 | (setq comment-start-skip "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\);+ *") | 195 | (setq comment-start-skip "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\);+ *") |
| 195 | (make-local-variable 'font-lock-comment-start-skip) | 196 | (make-local-variable 'font-lock-comment-start-skip) |
| 196 | ;; Font lock mode uses this only when it KNOWS a comment is starting. | 197 | ;; Font lock mode uses this only when it KNOWS a comment is starting. |
| 197 | (setq font-lock-comment-start-skip ";+ *") | 198 | (setq font-lock-comment-start-skip ";+ *") |
| 198 | (make-local-variable 'comment-add) | 199 | (make-local-variable 'comment-add) |
| 199 | (setq comment-add 1) ;default to `;;' in comment-region | 200 | (setq comment-add 1) ;default to `;;' in comment-region |
| 200 | (make-local-variable 'comment-column) | 201 | (make-local-variable 'comment-column) |
diff --git a/lisp/emacs-lisp/testcover.el b/lisp/emacs-lisp/testcover.el index f77b1a00e2c..6b87d06cb0e 100644 --- a/lisp/emacs-lisp/testcover.el +++ b/lisp/emacs-lisp/testcover.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;;; testcover.el -- Visual code-coverage tool | 1 | ;;;; testcover.el -- Visual code-coverage tool |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2002 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Jonathan Yavner <jyavner@member.fsf.org> | 5 | ;; Author: Jonathan Yavner <jyavner@member.fsf.org> |
| 6 | ;; Maintainer: Jonathan Yavner <jyavner@member.fsf.org> | 6 | ;; Maintainer: Jonathan Yavner <jyavner@member.fsf.org> |
| @@ -150,15 +150,19 @@ call to one of the `testcover-1value-functions'." | |||
| 150 | 1-valued, no error if actually multi-valued." | 150 | 1-valued, no error if actually multi-valued." |
| 151 | :group 'testcover) | 151 | :group 'testcover) |
| 152 | 152 | ||
| 153 | (defface testcover-nohits-face | 153 | (defface testcover-nohits |
| 154 | '((t (:background "DeepPink2"))) | 154 | '((t (:background "DeepPink2"))) |
| 155 | "Face for forms that had no hits during coverage test" | 155 | "Face for forms that had no hits during coverage test" |
| 156 | :group 'testcover) | 156 | :group 'testcover) |
| 157 | ;; backward-compatibility alias | ||
| 158 | (put 'testcover-nohits-face 'face-alias 'testcover-nohits) | ||
| 157 | 159 | ||
| 158 | (defface testcover-1value-face | 160 | (defface testcover-1value |
| 159 | '((t (:background "Wheat2"))) | 161 | '((t (:background "Wheat2"))) |
| 160 | "Face for forms that always produced the same value during coverage test" | 162 | "Face for forms that always produced the same value during coverage test" |
| 161 | :group 'testcover) | 163 | :group 'testcover) |
| 164 | ;; backward-compatibility alias | ||
| 165 | (put 'testcover-1value-face 'face-alias 'testcover-1value) | ||
| 162 | 166 | ||
| 163 | 167 | ||
| 164 | ;;;========================================================================= | 168 | ;;;========================================================================= |
| @@ -477,8 +481,8 @@ same value during coverage testing." | |||
| 477 | (defun testcover-mark (def) | 481 | (defun testcover-mark (def) |
| 478 | "Marks one DEF (a function or macro symbol) to highlight its contained forms | 482 | "Marks one DEF (a function or macro symbol) to highlight its contained forms |
| 479 | that did not get completely tested during coverage tests. | 483 | that did not get completely tested during coverage tests. |
| 480 | A marking of testcover-nohits-face (default = red) indicates that the | 484 | A marking with the face `testcover-nohits' (default = red) indicates that the |
| 481 | form was never evaluated. A marking of testcover-1value-face | 485 | form was never evaluated. A marking using the `testcover-1value' face |
| 482 | \(default = tan) indicates that the form always evaluated to the same value. | 486 | \(default = tan) indicates that the form always evaluated to the same value. |
| 483 | The forms throw, error, and signal are not marked. They do not return and | 487 | The forms throw, error, and signal are not marked. They do not return and |
| 484 | would always get a red mark. Some forms that always return the same | 488 | would always get a red mark. Some forms that always return the same |
| @@ -506,8 +510,8 @@ eliminated by adding more test cases." | |||
| 506 | (setq ov (make-overlay (1- j) j)) | 510 | (setq ov (make-overlay (1- j) j)) |
| 507 | (overlay-put ov 'face | 511 | (overlay-put ov 'face |
| 508 | (if (memq data '(unknown 1value)) | 512 | (if (memq data '(unknown 1value)) |
| 509 | 'testcover-nohits-face | 513 | 'testcover-nohits |
| 510 | 'testcover-1value-face)))) | 514 | 'testcover-1value)))) |
| 511 | (set-buffer-modified-p changed)))) | 515 | (set-buffer-modified-p changed)))) |
| 512 | 516 | ||
| 513 | (defun testcover-mark-all (&optional buffer) | 517 | (defun testcover-mark-all (&optional buffer) |