Commit 10a4c11f authored by Jim Blandy's avatar Jim Blandy

*** empty log message ***

parent e652a34a
......@@ -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
......
......@@ -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
......
;; 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
......@@ -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)))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment