Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
10a4c11f
Commit
10a4c11f
authored
Jan 09, 1992
by
Jim Blandy
Browse files
*** empty log message ***
parent
e652a34a
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
109 additions
and
80 deletions
+109
-80
etc/TUTORIAL
etc/TUTORIAL
+15
-9
lisp/emacs-lisp/debug.el
lisp/emacs-lisp/debug.el
+10
-1
lisp/gud.el
lisp/gud.el
+26
-14
lisp/mail/mail-utils.el
lisp/mail/mail-utils.el
+58
-56
No files found.
etc/TUTORIAL
View file @
10a4c11f
...
...
@@ -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
...
...
lisp/emacs-lisp/debug.el
View file @
10a4c11f
...
...
@@ -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
...
...
lisp/gud.el
View file @
10a4c11f
;; 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
lisp/mail/mail-utils.el
View file @
10a4c11f
...
...
@@ -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)))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment