aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Blandy <[email protected]>1992-01-09 05:06:34 +0000
committerJim Blandy <[email protected]>1992-01-09 05:06:34 +0000
commit10a4c11f7e8d1bcb8448a7771850b95c7c46caba (patch)
tree7daac1a5fee21309d54e7cb53ac17e02b9fba11a
parente652a34a67f502767cd6e06800690438e4843a18 (diff)
*** empty log message ***
-rw-r--r--etc/TUTORIAL24
-rw-r--r--lisp/emacs-lisp/debug.el11
-rw-r--r--lisp/gud.el40
-rw-r--r--lisp/mail/mail-utils.el114
4 files changed, 109 insertions, 80 deletions
diff --git a/etc/TUTORIAL b/etc/TUTORIAL
index db88bc3ed7..98e1243837 100644
--- a/etc/TUTORIAL
+++ b/etc/TUTORIAL
@@ -790,11 +790,11 @@ To get more information on the command, use C-h k instead of C-h c.
>> Type C-h k Control-p.
-This displays the documentation of the function, as well as its name,
-in an Emacs window. When you are finished reading the output, type
-C-x 1 to get rid of the help text. You do not have to do this right
-away. You can do some editing based on the help text before you type
-C-x 1.
+This displays the documentation of the function, as well as its
+name, in an Emacs window. When you are finished reading the
+output, type C-x 1 to get rid of the help text. You do not have
+to do this right away. You can do some editing while referring
+to the help text and then type C-x 1.
Here are some other useful C-h options:
@@ -811,10 +811,16 @@ Here are some other useful C-h options:
For some commands, Command Apropos will also list a one
or two character sequence which has the same effect.
->> Type C-h a file<Return>. You will see a list of all M-x commands
-with "file" in their names. You will also see commands
-like C-x C-f and C-x C-w, listed beside the command names
-find-file and write-file.
+>> Type C-h a file<Return>.
+
+This displays in another window a list of all M-x commands with
+"file" in their names. You will also see commands like C-x C-f
+and C-x C-w, listed beside the command names find-file and
+write-file.
+
+>> Type C-M-v to scroll the help window. Do this a few times.
+
+>> Type C-x 1 to delete the help window.
CONCLUSION
diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el
index 1b4ebf8c3b..ff31feb68c 100644
--- a/lisp/emacs-lisp/debug.el
+++ b/lisp/emacs-lisp/debug.el
@@ -286,7 +286,16 @@ Redefining FUNCTION also does that."
(defun cancel-debug-on-entry (&optional function)
"Undo effect of \\[debug-on-entry] on FUNCTION.
If argument is nil or an empty string, cancel for all functions."
- (interactive "aCancel debug on entry (to function): ")
+ (interactive
+ (list (let ((name
+ (completing-read "Cancel debug on entry (to function): "
+ ;; Make an "alist" of the functions
+ ;; that now have debug on entry.
+ (mapcar 'list
+ (mapcar 'symbol-name
+ debug-function-list))
+ nil t nil)))
+ (if name (intern name)))))
(debugger-reenable)
(if (and function (not (string= function "")))
(progn
diff --git a/lisp/gud.el b/lisp/gud.el
index aebcc68f4e..172781e0fe 100644
--- a/lisp/gud.el
+++ b/lisp/gud.el
@@ -1,5 +1,5 @@
;; Grand Unified Debugger mode --- run gdb, sdb, dbx under Emacs control
-;; @(#)gud.el 1.8
+;; @(#)gud.el 1.10
;; This file is part of GNU Emacs.
@@ -85,6 +85,24 @@ This association list has elements of the form
;; gud-<name>-file-visit
;; gud-<name>-set-break
;;
+;; The job of the startup-command method is to fire up a copy of the debugger,
+;; given an object file and source directory.
+;;
+;; The job of the marker-filter method is to detect file/line markers in
+;; strings and set the global gud-last-frame to indicate what display
+;; action (if any) should be triggered by the marker. Note that only
+;; whetever the method *returns* is displayed in the buffer; thus, you
+;; can filter the debugger's output, interpreting some and passing on
+;; the rest.
+;;
+;; The job of the visit-file method is to visit and return the buffer indicated
+;; by the car of gud-tag-frame. This may be a file name, a tag name, or
+;; something else.
+;;
+;; The job of the gud-set-break method is to send the commands necessary
+;; to set a breakpoint at a given line in a given source file.
+;;
+;; Debugger-specific information begins here:
;; ======================================================================
;; gdb functions
@@ -114,6 +132,7 @@ This association list has elements of the form
(defun gud-gdb-set-break (proc f n)
(gud-call "break %s:%d" f n))
+;;;###autoload
(defun gdb (path)
"Run gdb on program FILE in buffer *gud-FILE*.
The directory containing FILE becomes the initial working directory
@@ -162,6 +181,7 @@ and source-file directory for your debugger."
(defun gud-sdb-set-break (proc f n)
(gud-queue-send (format "e %s" f) (format "%d b" n)))
+;;;###autoload
(defun sdb (path)
"Run sdb on program FILE in buffer *gud-FILE*.
The directory containing FILE becomes the initial working directory
@@ -207,6 +227,7 @@ and source-file directory for your debugger."
(defun gud-dbx-set-break (proc f n)
(gud-call "stop at \"%s\":%d" f n))
+;;;###autoload
(defun dbx (path)
"Run dbx on program FILE in buffer *gud-FILE*.
The directory containing FILE becomes the initial working directory
@@ -225,21 +246,9 @@ and source-file directory for your debugger."
(run-hooks 'dbx-mode-hook)
)
-;; The job of the debugger-startup method is to fire up a copy of the debugger,
-;; given an object file and source directory.
-;;
-;; The job of the marker-filter method is to detect file/line markers in
-;; strings and set the global gud-last-frame to indicate what display
-;; action (if any) should be triggered by the marker
-;;
-;; The job of the visit-file method is to visit and return the buffer indicated
-;; by the car of gud-tag-frame. This may be a file name, a tag name, or
-;; something else.
-;;
-;; The job of the gud-set-break method is to send the commands necessary
-;; to set a breakpoint at a given line in a given source file.
;;
;; End of debugger-specific information
+;;
(defvar gud-mode-map nil
"Keymap for gud-mode.")
@@ -519,3 +528,6 @@ It is for customization by you.")
(switch-to-buffer current-gud-buffer)
(goto-char (dot-max))
(insert-string comm)))
+
+;; gud.e ends here
+
diff --git a/lisp/mail/mail-utils.el b/lisp/mail/mail-utils.el
index 320f096746..4f97f1d350 100644
--- a/lisp/mail/mail-utils.el
+++ b/lisp/mail/mail-utils.el
@@ -41,64 +41,66 @@ from START (inclusive) to END (exclusive)."
"Delete comments and quoted strings in an address list ADDRESS.
Also delete leading/trailing whitespace and replace FOO <BAR> with just BAR.
Return a modified address list."
- (if mail-use-rfc822
- (progn (require 'rfc822)
- (mapconcat 'identity (rfc822-addresses address) ", "))
- (let (pos)
- (string-match "\\`[ \t\n]*" address)
- ;; strip surrounding whitespace
- (setq address (substring address
- (match-end 0)
- (string-match "[ \t\n]*\\'" address
- (match-end 0))))
+ (if (null address)
+ nil
+ (if mail-use-rfc822
+ (progn (require 'rfc822)
+ (mapconcat 'identity (rfc822-addresses address) ", "))
+ (let (pos)
+ (string-match "\\`[ \t\n]*" address)
+ ;; strip surrounding whitespace
+ (setq address (substring address
+ (match-end 0)
+ (string-match "[ \t\n]*\\'" address
+ (match-end 0))))
- ;; Detect nested comments.
- (if (string-match "[ \t]*(\\([^)\"\\]\\|\\\\.\\|\\\\\n\\)*(" address)
- ;; Strip nested comments.
- (save-excursion
- (set-buffer (get-buffer-create " *temp*"))
- (erase-buffer)
- (insert address)
- (set-syntax-table lisp-mode-syntax-table)
- (goto-char 1)
- (while (search-forward "(" nil t)
- (forward-char -1)
- (skip-chars-backward " \t")
- (delete-region (point)
- (save-excursion (forward-sexp 1) (point))))
- (setq address (buffer-string))
- (erase-buffer))
- ;; Strip non-nested comments an easier way.
- (while (setq pos (string-match
- ;; This doesn't hack rfc822 nested comments
- ;; `(xyzzy (foo) whinge)' properly. Big deal.
- "[ \t]*(\\([^)\"\\]\\|\\\\.\\|\\\\\n\\)*)"
- address))
- (setq address
- (mail-string-delete address
- pos (match-end 0)))))
+ ;; Detect nested comments.
+ (if (string-match "[ \t]*(\\([^)\"\\]\\|\\\\.\\|\\\\\n\\)*(" address)
+ ;; Strip nested comments.
+ (save-excursion
+ (set-buffer (get-buffer-create " *temp*"))
+ (erase-buffer)
+ (insert address)
+ (set-syntax-table lisp-mode-syntax-table)
+ (goto-char 1)
+ (while (search-forward "(" nil t)
+ (forward-char -1)
+ (skip-chars-backward " \t")
+ (delete-region (point)
+ (save-excursion (forward-sexp 1) (point))))
+ (setq address (buffer-string))
+ (erase-buffer))
+ ;; Strip non-nested comments an easier way.
+ (while (setq pos (string-match
+ ;; This doesn't hack rfc822 nested comments
+ ;; `(xyzzy (foo) whinge)' properly. Big deal.
+ "[ \t]*(\\([^)\"\\]\\|\\\\.\\|\\\\\n\\)*)"
+ address))
+ (setq address
+ (mail-string-delete address
+ pos (match-end 0)))))
- ;; strip `quoted' names (This is supposed to hack `"Foo Bar" <bar@host>')
- (setq pos 0)
- (while (setq pos (string-match
- "[ \t]*\"\\([^\"\\]\\|\\\\.\\|\\\\\n\\)*\"[ \t\n]*"
- address pos))
- ;; If the next thing is "@", we have "foo bar"@host. Leave it.
- (if (and (> (length address) (match-end 0))
- (= (aref address (match-end 0)) ?@))
- (setq pos (match-end 0))
- (setq address
- (mail-string-delete address
- pos (match-end 0)))))
- ;; Retain only part of address in <> delims, if there is such a thing.
- (while (setq pos (string-match "\\(,\\|\\`\\)[^,]*<\\([^>,]*>\\)"
- address))
- (let ((junk-beg (match-end 1))
- (junk-end (match-beginning 2))
- (close (match-end 0)))
- (setq address (mail-string-delete address (1- close) close))
- (setq address (mail-string-delete address junk-beg junk-end))))
- address)))
+ ;; strip `quoted' names (This is supposed to hack `"Foo Bar" <bar@host>')
+ (setq pos 0)
+ (while (setq pos (string-match
+ "[ \t]*\"\\([^\"\\]\\|\\\\.\\|\\\\\n\\)*\"[ \t\n]*"
+ address pos))
+ ;; If the next thing is "@", we have "foo bar"@host. Leave it.
+ (if (and (> (length address) (match-end 0))
+ (= (aref address (match-end 0)) ?@))
+ (setq pos (match-end 0))
+ (setq address
+ (mail-string-delete address
+ pos (match-end 0)))))
+ ;; Retain only part of address in <> delims, if there is such a thing.
+ (while (setq pos (string-match "\\(,\\|\\`\\)[^,]*<\\([^>,]*>\\)"
+ address))
+ (let ((junk-beg (match-end 1))
+ (junk-end (match-beginning 2))
+ (close (match-end 0)))
+ (setq address (mail-string-delete address (1- close) close))
+ (setq address (mail-string-delete address junk-beg junk-end))))
+ address))))
(or (and (boundp 'rmail-default-dont-reply-to-names)
(not (null rmail-default-dont-reply-to-names)))