Mercurial > emacs
changeset 477:ab9a55b26bd4
*** empty log message ***
author | Jim Blandy <jimb@redhat.com> |
---|---|
date | Thu, 09 Jan 1992 05:06:34 +0000 |
parents | 6d25047306d9 |
children | 84799f3f3488 |
files | etc/TUTORIAL lisp/emacs-lisp/debug.el lisp/gud.el lisp/mail/mail-utils.el |
diffstat | 4 files changed, 109 insertions(+), 80 deletions(-) [+] |
line wrap: on
line diff
--- a/etc/TUTORIAL Wed Jan 08 01:58:52 1992 +0000 +++ b/etc/TUTORIAL Thu Jan 09 05:06:34 1992 +0000 @@ -790,11 +790,11 @@ >> 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 @@ 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
--- a/lisp/emacs-lisp/debug.el Wed Jan 08 01:58:52 1992 +0000 +++ b/lisp/emacs-lisp/debug.el Thu Jan 09 05:06:34 1992 +0000 @@ -286,7 +286,16 @@ (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
--- a/lisp/gud.el Wed Jan 08 01:58:52 1992 +0000 +++ b/lisp/gud.el Thu Jan 09 05:06:34 1992 +0000 @@ -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 @@ ;; 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 @@ (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 @@ (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 @@ (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 @@ (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 @@ (switch-to-buffer current-gud-buffer) (goto-char (dot-max)) (insert-string comm))) + +;; gud.e ends here +
--- a/lisp/mail/mail-utils.el Wed Jan 08 01:58:52 1992 +0000 +++ b/lisp/mail/mail-utils.el Thu Jan 09 05:06:34 1992 +0000 @@ -41,64 +41,66 @@ "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)))