; Fix some typos and doc issues (bug#40695)
This commit is contained in:
parent
f3b62b6c62
commit
067b070598
27 changed files with 79 additions and 83 deletions
16
ChangeLog.3
16
ChangeLog.3
|
@ -11660,7 +11660,7 @@
|
||||||
Mention the Emacs exit code in batch mode
|
Mention the Emacs exit code in batch mode
|
||||||
|
|
||||||
* doc/lispref/os.texi (Batch Mode): Mention what the exit code is
|
* doc/lispref/os.texi (Batch Mode): Mention what the exit code is
|
||||||
if an error is signalled (bug#31552).
|
if an error is signaled (bug#31552).
|
||||||
|
|
||||||
2019-10-12 Kaushal Modi <kaushal.modi@gmail.com>
|
2019-10-12 Kaushal Modi <kaushal.modi@gmail.com>
|
||||||
|
|
||||||
|
@ -15059,7 +15059,7 @@
|
||||||
|
|
||||||
* lisp/image/exif.el (exif-parse-buffer): New function.
|
* lisp/image/exif.el (exif-parse-buffer): New function.
|
||||||
(exif-orientation): Ditto.
|
(exif-orientation): Ditto.
|
||||||
(exif-error): New error symbol, and adjust all error signalling to
|
(exif-error): New error symbol, and adjust all error signaling to
|
||||||
only use that signal.
|
only use that signal.
|
||||||
|
|
||||||
2019-09-22 Andreas Schwab <schwab@linux-m68k.org>
|
2019-09-22 Andreas Schwab <schwab@linux-m68k.org>
|
||||||
|
@ -25100,7 +25100,7 @@
|
||||||
|
|
||||||
* lisp/json.el (json-read): Try to clarify what's returned (bug#34242).
|
* lisp/json.el (json-read): Try to clarify what's returned (bug#34242).
|
||||||
(json-encode): Refer to `json-read' about what the input is and
|
(json-encode): Refer to `json-read' about what the input is and
|
||||||
say what error is signalled.
|
say what error is signaled.
|
||||||
|
|
||||||
2019-07-09 Lars Ingebrigtsen <larsi@gnus.org>
|
2019-07-09 Lars Ingebrigtsen <larsi@gnus.org>
|
||||||
|
|
||||||
|
@ -26971,7 +26971,7 @@
|
||||||
help-C-file-name shouldn't error out if we can't find the name
|
help-C-file-name shouldn't error out if we can't find the name
|
||||||
|
|
||||||
* lisp/help-fns.el (help-C-file-name): Make help-C-file-name
|
* lisp/help-fns.el (help-C-file-name): Make help-C-file-name
|
||||||
return nil instead of signalling an error if we can't find the
|
return nil instead of signaling an error if we can't find the
|
||||||
file name (bug#17250).
|
file name (bug#17250).
|
||||||
|
|
||||||
2019-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
|
2019-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||||
|
@ -34107,7 +34107,7 @@
|
||||||
Remove unused internal function completion-pcm--optimize-pattern
|
Remove unused internal function completion-pcm--optimize-pattern
|
||||||
|
|
||||||
* lisp/minibuffer.el (completion-pcm--optimize-pattern): Remove
|
* lisp/minibuffer.el (completion-pcm--optimize-pattern): Remove
|
||||||
unused internal function (that signalled a compilation warning).
|
unused internal function (that signaled a compilation warning).
|
||||||
|
|
||||||
2019-05-16 Stefan Monnier <monnier@iro.umontreal.ca>
|
2019-05-16 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||||
|
|
||||||
|
@ -40134,10 +40134,10 @@
|
||||||
|
|
||||||
2019-03-30 Mattias Engdegård <mattiase@acm.org>
|
2019-03-30 Mattias Engdegård <mattiase@acm.org>
|
||||||
|
|
||||||
Release regexp before signalling overflow error
|
Release regexp before signaling overflow error
|
||||||
|
|
||||||
* src/search.c (looking_at_1, search_buffer_re): Unfreeze the regexp
|
* src/search.c (looking_at_1, search_buffer_re): Unfreeze the regexp
|
||||||
buffer before signalling a matcher overflow, since the error
|
buffer before signaling a matcher overflow, since the error
|
||||||
processing may require quite some regexp use as well (Bug#34910).
|
processing may require quite some regexp use as well (Bug#34910).
|
||||||
|
|
||||||
2019-03-30 Mattias Engdegård <mattiase@acm.org>
|
2019-03-30 Mattias Engdegård <mattiase@acm.org>
|
||||||
|
@ -88604,7 +88604,7 @@
|
||||||
Tweak Fdocumentation's error for an undefined function
|
Tweak Fdocumentation's error for an undefined function
|
||||||
|
|
||||||
* src/doc.c (Fdocumentation): Restore the pre-25 behavior
|
* src/doc.c (Fdocumentation): Restore the pre-25 behavior
|
||||||
of signalling a void-function error for an undefined function.
|
of signaling a void-function error for an undefined function.
|
||||||
This seems cleaner than Emacs 25's "invalid-function: nil" error,
|
This seems cleaner than Emacs 25's "invalid-function: nil" error,
|
||||||
which was (probably) an unintended consequence of changes to
|
which was (probably) an unintended consequence of changes to
|
||||||
Findirect_function.
|
Findirect_function.
|
||||||
|
|
|
@ -81,7 +81,7 @@ the ones that are not reproducible on the current release.
|
||||||
* New bug triage process
|
* New bug triage process
|
||||||
|
|
||||||
The goal of the new bug triage process is similar to the backlog triage process,
|
The goal of the new bug triage process is similar to the backlog triage process,
|
||||||
except that the focus is on prioritizing the bug, and making sure it is has
|
except that the focus is on prioritizing the bug, and making sure it has
|
||||||
necessary information for others to act on.
|
necessary information for others to act on.
|
||||||
|
|
||||||
For each new bug, ask the following questions:
|
For each new bug, ask the following questions:
|
||||||
|
|
|
@ -201,8 +201,8 @@ sentences and paragraphs, respectively. These commands work like
|
||||||
A numeric argument to a transpose command serves as a repeat count: it
|
A numeric argument to a transpose command serves as a repeat count: it
|
||||||
tells the transpose command to move the character (or word or
|
tells the transpose command to move the character (or word or
|
||||||
expression or line) before or containing point across several other
|
expression or line) before or containing point across several other
|
||||||
characters (or words or expressions or lines). For example, @kbd{C-u
|
characters (or words or expressions or lines). For example, @w{@kbd{C-u
|
||||||
3 C-t} moves the character before point forward across three other
|
3 C-t}} moves the character before point forward across three other
|
||||||
characters. It would change @samp{f@point{}oobar} into
|
characters. It would change @samp{f@point{}oobar} into
|
||||||
@samp{oobf@point{}ar}. This is equivalent to repeating @kbd{C-t}
|
@samp{oobf@point{}ar}. This is equivalent to repeating @kbd{C-t}
|
||||||
three times. @kbd{C-u - 4 M-t} moves the word before point backward
|
three times. @kbd{C-u - 4 M-t} moves the word before point backward
|
||||||
|
@ -304,10 +304,10 @@ region; @pxref{Disabled Transient Mark}.)
|
||||||
@cindex spell-checking the active region
|
@cindex spell-checking the active region
|
||||||
Similarly, the command @kbd{M-x ispell} performs spell-checking in
|
Similarly, the command @kbd{M-x ispell} performs spell-checking in
|
||||||
the region if one is active, or in the entire buffer otherwise. The
|
the region if one is active, or in the entire buffer otherwise. The
|
||||||
commands @kbd{M-x ispell-buffer} and @kbd{M-x ispell-region}
|
commands @w{@kbd{M-x ispell-buffer}} and @w{@kbd{M-x ispell-region}}
|
||||||
explicitly perform spell-checking on the entire buffer or the region
|
explicitly perform spell-checking on the entire buffer or the region
|
||||||
respectively. To check spelling in an email message you are writing,
|
respectively. To check spelling in an email message you are writing,
|
||||||
use @kbd{M-x ispell-message}; that command checks the whole buffer,
|
use @w{@kbd{M-x ispell-message}}; that command checks the whole buffer,
|
||||||
except for material that is indented or appears to be cited from other
|
except for material that is indented or appears to be cited from other
|
||||||
messages. @xref{Sending Mail}.
|
messages. @xref{Sending Mail}.
|
||||||
|
|
||||||
|
@ -365,8 +365,8 @@ wildcard.
|
||||||
@item C-g
|
@item C-g
|
||||||
@itemx X
|
@itemx X
|
||||||
Quit interactive spell-checking, leaving point at the word that was
|
Quit interactive spell-checking, leaving point at the word that was
|
||||||
being checked. You can restart checking again afterward with @kbd{C-u
|
being checked. You can restart checking again afterward with @w{@kbd{C-u
|
||||||
M-$}.
|
M-$}}.
|
||||||
|
|
||||||
@item x
|
@item x
|
||||||
Quit interactive spell-checking and move point back to where it was
|
Quit interactive spell-checking and move point back to where it was
|
||||||
|
@ -384,8 +384,8 @@ Show the list of options.
|
||||||
(@code{ispell-complete-word}) performs in-buffer completion based on
|
(@code{ispell-complete-word}) performs in-buffer completion based on
|
||||||
spelling correction. Insert the beginning of a word, and then type
|
spelling correction. Insert the beginning of a word, and then type
|
||||||
@kbd{M-@key{TAB}}; this shows a list of completions. (If your
|
@kbd{M-@key{TAB}}; this shows a list of completions. (If your
|
||||||
window manager intercepts @kbd{M-@key{TAB}}, type @kbd{@key{ESC}
|
window manager intercepts @kbd{M-@key{TAB}}, type @w{@kbd{@key{ESC}
|
||||||
@key{TAB}} or @kbd{C-M-i}.) Each completion is listed with a digit or
|
@key{TAB}}} or @kbd{C-M-i}.) Each completion is listed with a digit or
|
||||||
character; type that digit or character to choose it.
|
character; type that digit or character to choose it.
|
||||||
|
|
||||||
@cindex @code{ispell} program
|
@cindex @code{ispell} program
|
||||||
|
@ -393,7 +393,7 @@ character; type that digit or character to choose it.
|
||||||
Once started, the spell-checker subprocess continues
|
Once started, the spell-checker subprocess continues
|
||||||
to run, waiting for something to do, so that subsequent spell-checking
|
to run, waiting for something to do, so that subsequent spell-checking
|
||||||
commands complete more quickly. If you want to get rid of the
|
commands complete more quickly. If you want to get rid of the
|
||||||
process, use @kbd{M-x ispell-kill-ispell}. This is not usually
|
process, use @w{@kbd{M-x ispell-kill-ispell}}. This is not usually
|
||||||
necessary, since the process uses no processor time except when you do
|
necessary, since the process uses no processor time except when you do
|
||||||
spelling correction.
|
spelling correction.
|
||||||
|
|
||||||
|
@ -406,7 +406,7 @@ the standard dictionary and your personal dictionary. The standard
|
||||||
dictionary is specified by the variable @code{ispell-local-dictionary}
|
dictionary is specified by the variable @code{ispell-local-dictionary}
|
||||||
or, if that is @code{nil}, by the variable @code{ispell-dictionary}.
|
or, if that is @code{nil}, by the variable @code{ispell-dictionary}.
|
||||||
If both are @code{nil}, the spelling program's default dictionary is
|
If both are @code{nil}, the spelling program's default dictionary is
|
||||||
used. The command @kbd{M-x ispell-change-dictionary} sets the
|
used. The command @w{@kbd{M-x ispell-change-dictionary}} sets the
|
||||||
standard dictionary for the buffer and then restarts the subprocess,
|
standard dictionary for the buffer and then restarts the subprocess,
|
||||||
so that it will use a different standard dictionary. Your personal
|
so that it will use a different standard dictionary. Your personal
|
||||||
dictionary is specified by the variable
|
dictionary is specified by the variable
|
||||||
|
@ -428,8 +428,8 @@ dictionary.
|
||||||
@findex flyspell-mode
|
@findex flyspell-mode
|
||||||
Flyspell mode is a minor mode that performs automatic spell-checking
|
Flyspell mode is a minor mode that performs automatic spell-checking
|
||||||
of the text you type as you type it. When it finds a word that it
|
of the text you type as you type it. When it finds a word that it
|
||||||
does not recognize, it highlights that word. Type @kbd{M-x
|
does not recognize, it highlights that word. Type @w{@kbd{M-x
|
||||||
flyspell-mode} to toggle Flyspell mode in the current buffer. To
|
flyspell-mode}} to toggle Flyspell mode in the current buffer. To
|
||||||
enable Flyspell mode in all text mode buffers, add
|
enable Flyspell mode in all text mode buffers, add
|
||||||
@code{flyspell-mode} to @code{text-mode-hook}. @xref{Hooks}. Note
|
@code{flyspell-mode} to @code{text-mode-hook}. @xref{Hooks}. Note
|
||||||
that, as Flyspell mode needs to check each word across which you move,
|
that, as Flyspell mode needs to check each word across which you move,
|
||||||
|
@ -445,14 +445,14 @@ it with @kbd{mouse-2} (@code{flyspell-correct-word}) to display a menu
|
||||||
of possible corrections and actions. In addition, @kbd{C-.} or
|
of possible corrections and actions. In addition, @kbd{C-.} or
|
||||||
@kbd{@key{ESC}-@key{TAB}} (@code{flyspell-auto-correct-word}) will
|
@kbd{@key{ESC}-@key{TAB}} (@code{flyspell-auto-correct-word}) will
|
||||||
propose various successive corrections for the word at point, and
|
propose various successive corrections for the word at point, and
|
||||||
@kbd{C-c $} (@code{flyspell-correct-word-before-point}) will pop up a
|
@w{@kbd{C-c $}} (@code{flyspell-correct-word-before-point}) will pop up a
|
||||||
menu of possible corrections. Of course, you can always correct the
|
menu of possible corrections. Of course, you can always correct the
|
||||||
misspelled word by editing it manually in any way you like.
|
misspelled word by editing it manually in any way you like.
|
||||||
|
|
||||||
@findex flyspell-prog-mode
|
@findex flyspell-prog-mode
|
||||||
Flyspell Prog mode works just like ordinary Flyspell mode, except
|
Flyspell Prog mode works just like ordinary Flyspell mode, except
|
||||||
that it only checks words in comments and string constants. This
|
that it only checks words in comments and string constants. This
|
||||||
feature is useful for editing programs. Type @kbd{M-x
|
feature is useful for editing programs. Type @w{@kbd{M-x
|
||||||
flyspell-prog-mode} to enable or disable this mode in the current
|
flyspell-prog-mode}} to enable or disable this mode in the current
|
||||||
buffer. To enable this mode in all programming mode buffers, add
|
buffer. To enable this mode in all programming mode buffers, add
|
||||||
@code{flyspell-prog-mode} to @code{prog-mode-hook} (@pxref{Hooks}).
|
@code{flyspell-prog-mode} to @code{prog-mode-hook} (@pxref{Hooks}).
|
||||||
|
|
|
@ -6929,7 +6929,7 @@ end of the buffer continues from the other end. If
|
||||||
is displayed. Any button with a non-@code{nil} @code{skip} property
|
is displayed. Any button with a non-@code{nil} @code{skip} property
|
||||||
is skipped over. Returns the button found, and signals an error if no
|
is skipped over. Returns the button found, and signals an error if no
|
||||||
buttons can be found. If @var{no-error} in non-@code{nil}, return nil
|
buttons can be found. If @var{no-error} in non-@code{nil}, return nil
|
||||||
instead of signalling the error.
|
instead of signaling the error.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
@deffn Command backward-button n &optional wrap display-message
|
@deffn Command backward-button n &optional wrap display-message
|
||||||
|
@ -6941,7 +6941,7 @@ end of the buffer continues from the other end. If
|
||||||
is displayed. Any button with a non-@code{nil} @code{skip} property
|
is displayed. Any button with a non-@code{nil} @code{skip} property
|
||||||
is skipped over. Returns the button found, and signals an error if no
|
is skipped over. Returns the button found, and signals an error if no
|
||||||
buttons can be found. If @var{no-error} in non-@code{nil}, return nil
|
buttons can be found. If @var{no-error} in non-@code{nil}, return nil
|
||||||
instead of signalling the error.
|
instead of signaling the error.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
@defun next-button pos &optional count-current
|
@defun next-button pos &optional count-current
|
||||||
|
|
|
@ -2287,7 +2287,7 @@ function) as a generalized variable. @var{setter} can be a symbol in which
|
||||||
case it will be passed to @code{gv-define-simple-setter}, or it can be of the
|
case it will be passed to @code{gv-define-simple-setter}, or it can be of the
|
||||||
form @code{(lambda (@var{arg}) @var{body})} in which case that function will
|
form @code{(lambda (@var{arg}) @var{body})} in which case that function will
|
||||||
additionally have access to the macro (or function)'s arguments and it will
|
additionally have access to the macro (or function)'s arguments and it will
|
||||||
passed to @code{gv-define-setter}.
|
be passed to @code{gv-define-setter}.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
|
@ -2616,7 +2616,7 @@ if it is non-@code{nil}; this can be overridden by binding
|
||||||
This variable is non-@code{nil} when Emacs is running in batch mode.
|
This variable is non-@code{nil} when Emacs is running in batch mode.
|
||||||
@end defvar
|
@end defvar
|
||||||
|
|
||||||
If Emacs exits due to signalling an error in batch mode, the exit
|
If Emacs exits due to signaling an error in batch mode, the exit
|
||||||
status of the Emacs command is non-zero:
|
status of the Emacs command is non-zero:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
|
|
|
@ -4679,7 +4679,7 @@ expanded when the header line is computed. To do this, the
|
||||||
above. @var{specification} is an alist that has elements where the
|
above. @var{specification} is an alist that has elements where the
|
||||||
@code{car} is a character and the @code{cdr} is the substitution.
|
@code{car} is a character and the @code{cdr} is the substitution.
|
||||||
|
|
||||||
If @code{ONLY-PRESENT} is @code{nil}, errors will be signalled if a
|
If @code{ONLY-PRESENT} is @code{nil}, errors will be signaled if a
|
||||||
format character has been used that's not present in
|
format character has been used that's not present in
|
||||||
@var{specification}. If it's non-@code{nil}, that format
|
@var{specification}. If it's non-@code{nil}, that format
|
||||||
specification is left verbatim in the result.
|
specification is left verbatim in the result.
|
||||||
|
@ -5725,7 +5725,7 @@ made within the @code{combine-after-change-calls} body.
|
||||||
@code{after-change-functions} within
|
@code{after-change-functions} within
|
||||||
the body of a @code{combine-after-change-calls} form.
|
the body of a @code{combine-after-change-calls} form.
|
||||||
|
|
||||||
@strong{Warning:} if the changes you combine occur in widely scattered
|
@strong{Warning:} If the changes you combine occur in widely scattered
|
||||||
parts of the buffer, this will still work, but it is not advisable,
|
parts of the buffer, this will still work, but it is not advisable,
|
||||||
because it may lead to inefficient behavior for some change hook
|
because it may lead to inefficient behavior for some change hook
|
||||||
functions.
|
functions.
|
||||||
|
|
|
@ -67,7 +67,7 @@ union ieee754_float
|
||||||
#endif /* Little endian. */
|
#endif /* Little endian. */
|
||||||
} ieee;
|
} ieee;
|
||||||
|
|
||||||
/* This format makes it easier to see if a NaN is a signalling NaN. */
|
/* This format makes it easier to see if a NaN is a signaling NaN. */
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||||
|
@ -118,7 +118,7 @@ union ieee754_double
|
||||||
#endif /* Little endian. */
|
#endif /* Little endian. */
|
||||||
} ieee;
|
} ieee;
|
||||||
|
|
||||||
/* This format makes it easier to see if a NaN is a signalling NaN. */
|
/* This format makes it easier to see if a NaN is a signaling NaN. */
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||||
|
|
|
@ -677,7 +677,7 @@ Each element is (INDEX . VALUE)")
|
||||||
(byte-defop 112 1 byte-current-buffer)
|
(byte-defop 112 1 byte-current-buffer)
|
||||||
(byte-defop 113 0 byte-set-buffer)
|
(byte-defop 113 0 byte-set-buffer)
|
||||||
(byte-defop 114 0 byte-save-current-buffer
|
(byte-defop 114 0 byte-save-current-buffer
|
||||||
"To make a binding to record the current buffer")
|
"to make a binding to record the current buffer")
|
||||||
(byte-defop 115 0 byte-set-mark-OBSOLETE)
|
(byte-defop 115 0 byte-set-mark-OBSOLETE)
|
||||||
(byte-defop 116 1 byte-interactive-p-OBSOLETE)
|
(byte-defop 116 1 byte-interactive-p-OBSOLETE)
|
||||||
|
|
||||||
|
|
|
@ -2133,7 +2133,7 @@ buffer, otherwise stop after the first error."
|
||||||
(checkdoc-ispell-init)
|
(checkdoc-ispell-init)
|
||||||
(unless checkdoc-spellcheck-documentation-flag
|
(unless checkdoc-spellcheck-documentation-flag
|
||||||
;; this happens when (checkdoc-ispell-init) can't start `ispell-program-name'
|
;; this happens when (checkdoc-ispell-init) can't start `ispell-program-name'
|
||||||
(user-error "No spellchecker installed: check the variable `ispell-program-name'."))
|
(user-error "No spellchecker installed: check the variable `ispell-program-name'"))
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(skip-chars-forward "^a-zA-Z")
|
(skip-chars-forward "^a-zA-Z")
|
||||||
(let (word sym case-fold-search err word-beginning word-end)
|
(let (word sym case-fold-search err word-beginning word-end)
|
||||||
|
|
|
@ -776,7 +776,7 @@ The result of the body appears to the compiler as a quoted constant."
|
||||||
"Eval EXPR and choose among clauses on that value.
|
"Eval EXPR and choose among clauses on that value.
|
||||||
Each clause looks like (KEYLIST BODY...). EXPR is evaluated and
|
Each clause looks like (KEYLIST BODY...). EXPR is evaluated and
|
||||||
compared against each key in each KEYLIST; the corresponding BODY
|
compared against each key in each KEYLIST; the corresponding BODY
|
||||||
is evaluated. If no clause succeeds, cl-case returns nil. A
|
is evaluated. If no clause succeeds, this macro returns nil. A
|
||||||
single non-nil atom may be used in place of a KEYLIST of one
|
single non-nil atom may be used in place of a KEYLIST of one
|
||||||
atom. A KEYLIST of t or `otherwise' is allowed only in the final
|
atom. A KEYLIST of t or `otherwise' is allowed only in the final
|
||||||
clause, and matches if no other keys match. Key values are
|
clause, and matches if no other keys match. Key values are
|
||||||
|
@ -815,10 +815,10 @@ compared by `eql'.
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defmacro cl-typecase (expr &rest clauses)
|
(defmacro cl-typecase (expr &rest clauses)
|
||||||
"Evals EXPR, chooses among clauses on that value.
|
"Eval EXPR and choose among clauses on that value.
|
||||||
Each clause looks like (TYPE BODY...). EXPR is evaluated and, if it
|
Each clause looks like (TYPE BODY...). EXPR is evaluated and, if it
|
||||||
satisfies TYPE, the corresponding BODY is evaluated. If no clause succeeds,
|
satisfies TYPE, the corresponding BODY is evaluated. If no clause succeeds,
|
||||||
cl-typecase returns nil. A TYPE of t or `otherwise' is allowed only in the
|
this macro returns nil. A TYPE of t or `otherwise' is allowed only in the
|
||||||
final clause, and matches if no other keys match.
|
final clause, and matches if no other keys match.
|
||||||
\n(fn EXPR (TYPE BODY...)...)"
|
\n(fn EXPR (TYPE BODY...)...)"
|
||||||
(declare (indent 1)
|
(declare (indent 1)
|
||||||
|
@ -2707,7 +2707,7 @@ pairs for that slot.
|
||||||
Supported keywords for slots are:
|
Supported keywords for slots are:
|
||||||
- `:read-only': If this has a non-nil value, that slot cannot be set via `setf'.
|
- `:read-only': If this has a non-nil value, that slot cannot be set via `setf'.
|
||||||
- `:documentation': this is a docstring describing the slot.
|
- `:documentation': this is a docstring describing the slot.
|
||||||
- `:type': the type of the field; currently unused.
|
- `:type': the type of the field; currently only used for documentation.
|
||||||
|
|
||||||
\(fn NAME &optional DOCSTRING &rest SLOTS)"
|
\(fn NAME &optional DOCSTRING &rest SLOTS)"
|
||||||
(declare (doc-string 2) (indent 1)
|
(declare (doc-string 2) (indent 1)
|
||||||
|
|
|
@ -238,7 +238,7 @@ FUNSYM must be a symbol of a defined function."
|
||||||
;; The info vector data structure is a 2 element vector. The 0th
|
;; The info vector data structure is a 2 element vector. The 0th
|
||||||
;; element is the call-count, i.e. the total number of times this
|
;; element is the call-count, i.e. the total number of times this
|
||||||
;; function has been entered. This value is bumped up on entry to
|
;; function has been entered. This value is bumped up on entry to
|
||||||
;; the function so that non-local exists are still recorded. TBD:
|
;; the function so that non-local exits are still recorded. TBD:
|
||||||
;; I haven't tested non-local exits at all, so no guarantees.
|
;; I haven't tested non-local exits at all, so no guarantees.
|
||||||
;;
|
;;
|
||||||
;; The 1st element is the total amount of time in seconds that has
|
;; The 1st element is the total amount of time in seconds that has
|
||||||
|
|
|
@ -59,7 +59,7 @@
|
||||||
;; This raw form of iteration is general, but a bit awkward to use, so
|
;; This raw form of iteration is general, but a bit awkward to use, so
|
||||||
;; this library also provides some convenience functions:
|
;; this library also provides some convenience functions:
|
||||||
;;
|
;;
|
||||||
;; `iter-do' is like `cl-do', except that instead of walking a list,
|
;; `iter-do' is like `dolist', except that instead of walking a list,
|
||||||
;; it walks an iterator. `cl-loop' is also extended with a new
|
;; it walks an iterator. `cl-loop' is also extended with a new
|
||||||
;; keyword, `iter-by', that iterates over an iterator.
|
;; keyword, `iter-by', that iterates over an iterator.
|
||||||
;;
|
;;
|
||||||
|
@ -67,7 +67,7 @@
|
||||||
;;; Implementation:
|
;;; Implementation:
|
||||||
|
|
||||||
;;
|
;;
|
||||||
;; The internal cps transformation code uses the cps- namespace.
|
;; The internal CPS transformation code uses the cps- namespace.
|
||||||
;; Iteration functions use the `iter-' namespace. Generator functions
|
;; Iteration functions use the `iter-' namespace. Generator functions
|
||||||
;; are somewhat less efficient than conventional elisp routines,
|
;; are somewhat less efficient than conventional elisp routines,
|
||||||
;; although we try to avoid CPS transformation on forms that do not
|
;; although we try to avoid CPS transformation on forms that do not
|
||||||
|
@ -89,13 +89,13 @@
|
||||||
`(gensym (format ,fmt ,@args)))
|
`(gensym (format ,fmt ,@args)))
|
||||||
|
|
||||||
(defvar cps--dynamic-wrappers '(identity)
|
(defvar cps--dynamic-wrappers '(identity)
|
||||||
"List of transformer functions to apply to atomic forms we
|
"List of functions to apply to atomic forms.
|
||||||
evaluate in CPS context.")
|
These are transformer functions applied to atomic forms evaluated
|
||||||
|
in CPS context.")
|
||||||
|
|
||||||
(defconst cps-standard-special-forms
|
(defconst cps-standard-special-forms
|
||||||
'(setq setq-default throw interactive)
|
'(setq setq-default throw interactive)
|
||||||
"List of special forms that we treat just like ordinary
|
"List of special forms treated just like ordinary function applications." )
|
||||||
function applications." )
|
|
||||||
|
|
||||||
(defun cps--trace-funcall (func &rest args)
|
(defun cps--trace-funcall (func &rest args)
|
||||||
(message "%S: args=%S" func args)
|
(message "%S: args=%S" func args)
|
||||||
|
@ -118,17 +118,15 @@ evaluate in CPS context.")
|
||||||
(error "%s not supported in generators" ,function)))
|
(error "%s not supported in generators" ,function)))
|
||||||
|
|
||||||
(defmacro cps--with-value-wrapper (wrapper &rest body)
|
(defmacro cps--with-value-wrapper (wrapper &rest body)
|
||||||
"Continue generating CPS code with an atomic-form wrapper
|
"Evaluate BODY with WRAPPER added to the stack of atomic-form wrappers.
|
||||||
to the current stack of such wrappers. WRAPPER is a function that
|
WRAPPER is a function that takes an atomic form and returns a wrapped form.
|
||||||
takes a form and returns a wrapped form.
|
|
||||||
|
|
||||||
Whenever we generate an atomic form (i.e., a form that can't
|
Whenever we generate an atomic form (i.e., a form that can't
|
||||||
`iter-yield'), we first (before actually inserting that form in our
|
`iter-yield'), we first (before actually inserting that form in our
|
||||||
generated code) pass that form through all the transformer
|
generated code) pass that form through all the transformer
|
||||||
functions. We use this facility to wrap forms that can transfer
|
functions. We use this facility to wrap forms that can transfer
|
||||||
control flow non-locally in goo that diverts this control flow to
|
control flow non-locally in goo that diverts this control flow to
|
||||||
the CPS state machinery.
|
the CPS state machinery."
|
||||||
"
|
|
||||||
(declare (indent 1))
|
(declare (indent 1))
|
||||||
`(let ((cps--dynamic-wrappers
|
`(let ((cps--dynamic-wrappers
|
||||||
(cons
|
(cons
|
||||||
|
@ -153,7 +151,7 @@ DYNAMIC-VAR bound to STATIC-VAR."
|
||||||
,@body))
|
,@body))
|
||||||
|
|
||||||
(defun cps--add-state (kind body)
|
(defun cps--add-state (kind body)
|
||||||
"Create a new CPS state with body BODY and return the state's name."
|
"Create a new CPS state of KIND with BODY and return the state's name."
|
||||||
(declare (indent 1))
|
(declare (indent 1))
|
||||||
(let* ((state (cps--gensym "cps-state-%s-" kind)))
|
(let* ((state (cps--gensym "cps-state-%s-" kind)))
|
||||||
(push (list state body cps--cleanup-function) cps--states)
|
(push (list state body cps--cleanup-function) cps--states)
|
||||||
|
@ -170,14 +168,12 @@ DYNAMIC-VAR bound to STATIC-VAR."
|
||||||
(and (fboundp handler) handler)))
|
(and (fboundp handler) handler)))
|
||||||
|
|
||||||
(defvar cps-inhibit-atomic-optimization nil
|
(defvar cps-inhibit-atomic-optimization nil
|
||||||
"When non-nil, always rewrite forms into cps even when they
|
"When non-nil, always rewrite forms into CPS even when they don't yield.")
|
||||||
don't yield.")
|
|
||||||
|
|
||||||
(defvar cps--yield-seen)
|
(defvar cps--yield-seen)
|
||||||
|
|
||||||
(defun cps--atomic-p (form)
|
(defun cps--atomic-p (form)
|
||||||
"Return whether the given form never yields."
|
"Return nil if FORM can yield, non-nil otherwise."
|
||||||
|
|
||||||
(and (not cps-inhibit-atomic-optimization)
|
(and (not cps-inhibit-atomic-optimization)
|
||||||
(let* ((cps--yield-seen))
|
(let* ((cps--yield-seen))
|
||||||
(ignore (macroexpand-all
|
(ignore (macroexpand-all
|
||||||
|
@ -649,8 +645,8 @@ modified copy."
|
||||||
(defun iter-yield (value)
|
(defun iter-yield (value)
|
||||||
"When used inside a generator, yield control to caller.
|
"When used inside a generator, yield control to caller.
|
||||||
The caller of `iter-next' receives VALUE, and the next call to
|
The caller of `iter-next' receives VALUE, and the next call to
|
||||||
`iter-next' resumes execution at the previous
|
`iter-next' resumes execution with the form immediately following this
|
||||||
`iter-yield' point."
|
`iter-yield' call."
|
||||||
(identity value)
|
(identity value)
|
||||||
(error "`iter-yield' used outside a generator"))
|
(error "`iter-yield' used outside a generator"))
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
;;
|
;;
|
||||||
;; Instead, we use here a higher-order approach: instead
|
;; Instead, we use here a higher-order approach: instead
|
||||||
;; of a 5-tuple, a place-expander returns a function.
|
;; of a 5-tuple, a place-expander returns a function.
|
||||||
;; If you think about types, the old approach return things of type
|
;; If you think about types, the old approach returns things of type
|
||||||
;; {vars: List Var, values: List Exp,
|
;; {vars: List Var, values: List Exp,
|
||||||
;; stores: List Var, getter: Exp, setter: Exp}
|
;; stores: List Var, getter: Exp, setter: Exp}
|
||||||
;; whereas the new approach returns a function of type
|
;; whereas the new approach returns a function of type
|
||||||
|
|
|
@ -535,7 +535,7 @@ This will generate compile-time constants from BINDINGS."
|
||||||
|
|
||||||
;; Support backtrace mode.
|
;; Support backtrace mode.
|
||||||
(defconst lisp-el-font-lock-keywords-for-backtraces lisp-el-font-lock-keywords
|
(defconst lisp-el-font-lock-keywords-for-backtraces lisp-el-font-lock-keywords
|
||||||
"Default highlighting from Emacs Lisp mod used in Backtrace mode.")
|
"Default highlighting from Emacs Lisp mode used in Backtrace mode.")
|
||||||
(defconst lisp-el-font-lock-keywords-for-backtraces-1 lisp-el-font-lock-keywords-1
|
(defconst lisp-el-font-lock-keywords-for-backtraces-1 lisp-el-font-lock-keywords-1
|
||||||
"Subdued highlighting from Emacs Lisp mode used in Backtrace mode.")
|
"Subdued highlighting from Emacs Lisp mode used in Backtrace mode.")
|
||||||
(defconst lisp-el-font-lock-keywords-for-backtraces-2
|
(defconst lisp-el-font-lock-keywords-for-backtraces-2
|
||||||
|
|
|
@ -95,7 +95,7 @@ mirrored or not.")
|
||||||
"Parse FILE (a JPEG file) and return the Exif data, if any.
|
"Parse FILE (a JPEG file) and return the Exif data, if any.
|
||||||
The return value is a list of Exif items.
|
The return value is a list of Exif items.
|
||||||
|
|
||||||
If the data is invalid, an `exif-error' is signalled."
|
If the data is invalid, an `exif-error' is signaled."
|
||||||
(with-temp-buffer
|
(with-temp-buffer
|
||||||
(set-buffer-multibyte nil)
|
(set-buffer-multibyte nil)
|
||||||
(insert-file-contents-literally file)
|
(insert-file-contents-literally file)
|
||||||
|
@ -105,7 +105,7 @@ If the data is invalid, an `exif-error' is signalled."
|
||||||
"Parse BUFFER (which should be a JPEG file) and return the Exif data, if any.
|
"Parse BUFFER (which should be a JPEG file) and return the Exif data, if any.
|
||||||
The return value is a list of Exif items.
|
The return value is a list of Exif items.
|
||||||
|
|
||||||
If the data is invalid, an `exif-error' is signalled."
|
If the data is invalid, an `exif-error' is signaled."
|
||||||
(setq buffer (or buffer (current-buffer)))
|
(setq buffer (or buffer (current-buffer)))
|
||||||
(with-current-buffer buffer
|
(with-current-buffer buffer
|
||||||
(if enable-multibyte-characters
|
(if enable-multibyte-characters
|
||||||
|
|
|
@ -75,7 +75,7 @@ unless the display width of STR is equal to or less than the display
|
||||||
width of ELLIPSIS. If it is non-nil and not a string, then ELLIPSIS
|
width of ELLIPSIS. If it is non-nil and not a string, then ELLIPSIS
|
||||||
defaults to `truncate-string-ellipsis'.
|
defaults to `truncate-string-ellipsis'.
|
||||||
|
|
||||||
If ELLIPSIS-TEXT-PROPERTY in non-nil, a too-long string will not
|
If ELLIPSIS-TEXT-PROPERTY is non-nil, a too-long string will not
|
||||||
be truncated, but instead the elided parts will be covered by a
|
be truncated, but instead the elided parts will be covered by a
|
||||||
`display' text property showing the ellipsis."
|
`display' text property showing the ellipsis."
|
||||||
(or start-column
|
(or start-column
|
||||||
|
|
|
@ -735,7 +735,7 @@ you will get the following structure returned:
|
||||||
|
|
||||||
OBJECT should have a structure like one returned by `json-read'.
|
OBJECT should have a structure like one returned by `json-read'.
|
||||||
If an error is detected during encoding, an error based on
|
If an error is detected during encoding, an error based on
|
||||||
`json-error' is signalled."
|
`json-error' is signaled."
|
||||||
(cond ((memq object (list t json-null json-false))
|
(cond ((memq object (list t json-null json-false))
|
||||||
(json-encode-keyword object))
|
(json-encode-keyword object))
|
||||||
((stringp object) (json-encode-string object))
|
((stringp object) (json-encode-string object))
|
||||||
|
|
|
@ -163,8 +163,8 @@ perform completion, no matter what ACTION is.
|
||||||
|
|
||||||
If ACTION is `metadata' or a list where the first element is
|
If ACTION is `metadata' or a list where the first element is
|
||||||
`boundaries', return nil. If ACTION is nil, this function works
|
`boundaries', return nil. If ACTION is nil, this function works
|
||||||
like `try-completion'; if it's t, this function works like
|
like `try-completion'; if it is t, this function works like
|
||||||
`all-completion'; and any other values makes it work like
|
`all-completion'; and any other value makes it work like
|
||||||
`test-completion'."
|
`test-completion'."
|
||||||
(cond
|
(cond
|
||||||
((functionp collection) (funcall collection string predicate action))
|
((functionp collection) (funcall collection string predicate action))
|
||||||
|
|
|
@ -509,7 +509,7 @@ This method shows how to handle `setf's to places of the form
|
||||||
ARGLIST, as if NAME were going to be expanded as a macro, then
|
ARGLIST, as if NAME were going to be expanded as a macro, then
|
||||||
the BODY forms are executed and must return a list of five elements:
|
the BODY forms are executed and must return a list of five elements:
|
||||||
a temporary-variables list, a value-forms list, a store-variables list
|
a temporary-variables list, a value-forms list, a store-variables list
|
||||||
\(of length one), a store-form, and an access- form.
|
\(of length one), a store-form, and an access-form.
|
||||||
|
|
||||||
See `gv-define-expander', and `gv-define-setter' for better and
|
See `gv-define-expander', and `gv-define-setter' for better and
|
||||||
simpler ways to define setf-methods."
|
simpler ways to define setf-methods."
|
||||||
|
|
|
@ -352,11 +352,11 @@ Setting `init-file-user' does not prevent Emacs from loading
|
||||||
|
|
||||||
(defcustom site-run-file (purecopy "site-start")
|
(defcustom site-run-file (purecopy "site-start")
|
||||||
"File containing site-wide run-time initializations.
|
"File containing site-wide run-time initializations.
|
||||||
This file is loaded at run-time before `~/.emacs'. It contains inits
|
This file is loaded at run-time before `user-init-file'. It contains
|
||||||
that need to be in place for the entire site, but which, due to their
|
inits that need to be in place for the entire site, but which, due to
|
||||||
higher incidence of change, don't make sense to put into Emacs's
|
their higher incidence of change, don't make sense to put into Emacs's
|
||||||
dump file. Thus, the run-time load order is: 1. file described in
|
dump file. Thus, the run-time load order is: 1. file described in
|
||||||
this variable, if non-nil; 2. `~/.emacs'; 3. `default.el'.
|
this variable, if non-nil; 2. `user-init-file'; 3. `default.el'.
|
||||||
|
|
||||||
Don't use the `site-start.el' file for things some users may not like.
|
Don't use the `site-start.el' file for things some users may not like.
|
||||||
Put them in `default.el' instead, so that users can more easily
|
Put them in `default.el' instead, so that users can more easily
|
||||||
|
|
|
@ -385,7 +385,7 @@ entry to the debugger, even when `debug-on-error' is non-nil.
|
||||||
This can be overridden by `debug-ignored-errors'.
|
This can be overridden by `debug-ignored-errors'.
|
||||||
|
|
||||||
To signal with MESSAGE without interpreting format characters
|
To signal with MESSAGE without interpreting format characters
|
||||||
like `%', `\\=`' and `\\='', use (error \"%s\" MESSAGE).
|
like `%', `\\=`' and `\\='', use (user-error \"%s\" MESSAGE).
|
||||||
In Emacs, the convention is that error messages start with a capital
|
In Emacs, the convention is that error messages start with a capital
|
||||||
letter but *do not* end with a period. Please follow this convention
|
letter but *do not* end with a period. Please follow this convention
|
||||||
for the sake of consistency."
|
for the sake of consistency."
|
||||||
|
@ -3290,7 +3290,7 @@ alternatives."
|
||||||
|
|
||||||
(defun function-get (f prop &optional autoload)
|
(defun function-get (f prop &optional autoload)
|
||||||
"Return the value of property PROP of function F.
|
"Return the value of property PROP of function F.
|
||||||
If AUTOLOAD is non-nil and F is autoloaded, try to autoload it
|
If AUTOLOAD is non-nil and F is autoloaded, try to load it
|
||||||
in the hope that it will set PROP. If AUTOLOAD is `macro', do it only
|
in the hope that it will set PROP. If AUTOLOAD is `macro', do it only
|
||||||
if it's an autoloaded macro."
|
if it's an autoloaded macro."
|
||||||
(let ((val nil))
|
(let ((val nil))
|
||||||
|
@ -4997,7 +4997,7 @@ The properties used on SYMBOL are `composefunc', `sendfunc',
|
||||||
(defun backtrace-frames (&optional base)
|
(defun backtrace-frames (&optional base)
|
||||||
"Collect all frames of current backtrace into a list.
|
"Collect all frames of current backtrace into a list.
|
||||||
If non-nil, BASE should be a function, and frames before its
|
If non-nil, BASE should be a function, and frames before its
|
||||||
nearest activation frames are discarded."
|
nearest activation frame are discarded."
|
||||||
(let ((frames nil))
|
(let ((frames nil))
|
||||||
(mapbacktrace (lambda (&rest frame) (push frame frames))
|
(mapbacktrace (lambda (&rest frame) (push frame frames))
|
||||||
(or base 'backtrace-frames))
|
(or base 'backtrace-frames))
|
||||||
|
|
|
@ -800,8 +800,8 @@ Otherwise returns the library directory name, if that is defined."
|
||||||
|
|
||||||
(defun ispell-create-debug-buffer (&optional append)
|
(defun ispell-create-debug-buffer (&optional append)
|
||||||
"Create an ispell debug buffer for debugging output.
|
"Create an ispell debug buffer for debugging output.
|
||||||
If APPEND is non-nil, append the info to previous buffer if exists,
|
If APPEND is non-nil, add output to the old buffer if it exists,
|
||||||
otherwise is reset. Returns name of ispell debug buffer.
|
otherwise the buffer is erased first. Returns the debug buffer.
|
||||||
See `ispell-buffer-with-debug' for an example of use."
|
See `ispell-buffer-with-debug' for an example of use."
|
||||||
(let ((ispell-debug-buffer (get-buffer-create "*ispell-debug*")))
|
(let ((ispell-debug-buffer (get-buffer-create "*ispell-debug*")))
|
||||||
(with-current-buffer ispell-debug-buffer
|
(with-current-buffer ispell-debug-buffer
|
||||||
|
@ -812,7 +812,7 @@ See `ispell-buffer-with-debug' for an example of use."
|
||||||
ispell-debug-buffer))
|
ispell-debug-buffer))
|
||||||
|
|
||||||
(defsubst ispell-print-if-debug (format &rest args)
|
(defsubst ispell-print-if-debug (format &rest args)
|
||||||
"Print message using FORMAT and ARGS to `ispell-debug-buffer' buffer if enabled."
|
"Print message using FORMAT and ARGS to `ispell-debug-buffer' if enabled."
|
||||||
(if (boundp 'ispell-debug-buffer)
|
(if (boundp 'ispell-debug-buffer)
|
||||||
(with-current-buffer ispell-debug-buffer
|
(with-current-buffer ispell-debug-buffer
|
||||||
(goto-char (point-max))
|
(goto-char (point-max))
|
||||||
|
@ -3618,8 +3618,8 @@ Returns the sum SHIFT due to changes in word replacements."
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun ispell-buffer-with-debug (&optional append)
|
(defun ispell-buffer-with-debug (&optional append)
|
||||||
"`ispell-buffer' with some output sent to `ispell-debug-buffer' buffer.
|
"`ispell-buffer' with some output sent to `ispell-debug-buffer'.
|
||||||
If APPEND is non-n il, append the info to previous buffer if exists."
|
If APPEND is non-nil, don't erase previous debugging output."
|
||||||
(interactive)
|
(interactive)
|
||||||
(let ((ispell-debug-buffer (ispell-create-debug-buffer append)))
|
(let ((ispell-debug-buffer (ispell-create-debug-buffer append)))
|
||||||
(ispell-buffer)))
|
(ispell-buffer)))
|
||||||
|
|
|
@ -1229,7 +1229,7 @@ The car of a handler may be a list of condition names instead of a
|
||||||
single condition name; then it handles all of them. If the special
|
single condition name; then it handles all of them. If the special
|
||||||
condition name `debug' is present in this list, it allows another
|
condition name `debug' is present in this list, it allows another
|
||||||
condition in the list to run the debugger if `debug-on-error' and the
|
condition in the list to run the debugger if `debug-on-error' and the
|
||||||
other usual mechanisms says it should (otherwise, `condition-case'
|
other usual mechanisms say it should (otherwise, `condition-case'
|
||||||
suppresses the debugger).
|
suppresses the debugger).
|
||||||
|
|
||||||
When a handler handles an error, control returns to the `condition-case'
|
When a handler handles an error, control returns to the `condition-case'
|
||||||
|
|
|
@ -4919,7 +4919,7 @@ features required. Each entry has the form `(provide . FEATURE)',
|
||||||
`(defface . SYMBOL)', `(define-type . SYMBOL)',
|
`(defface . SYMBOL)', `(define-type . SYMBOL)',
|
||||||
`(cl-defmethod METHOD SPECIALIZERS)', or `(t . SYMBOL)'.
|
`(cl-defmethod METHOD SPECIALIZERS)', or `(t . SYMBOL)'.
|
||||||
Entries like `(t . SYMBOL)' may precede a `(defun . FUNCTION)' entry,
|
Entries like `(t . SYMBOL)' may precede a `(defun . FUNCTION)' entry,
|
||||||
and means that SYMBOL was an autoload before this file redefined it
|
and mean that SYMBOL was an autoload before this file redefined it
|
||||||
as a function. In addition, entries may also be single symbols,
|
as a function. In addition, entries may also be single symbols,
|
||||||
which means that symbol was defined by `defvar' or `defconst'.
|
which means that symbol was defined by `defvar' or `defconst'.
|
||||||
|
|
||||||
|
|
|
@ -114,7 +114,7 @@
|
||||||
(condition-case err
|
(condition-case err
|
||||||
(progn
|
(progn
|
||||||
(jsonrpc-request conn 'delete-directory "~/tmp")
|
(jsonrpc-request conn 'delete-directory "~/tmp")
|
||||||
(ert-fail "A `jsonrpc-error' should have been signalled!"))
|
(ert-fail "A `jsonrpc-error' should have been signaled!"))
|
||||||
(jsonrpc-error
|
(jsonrpc-error
|
||||||
(should (= -32601 (cdr (assoc 'jsonrpc-error-code (cdr err)))))))))
|
(should (= -32601 (cdr (assoc 'jsonrpc-error-code (cdr err)))))))))
|
||||||
|
|
||||||
|
@ -124,7 +124,7 @@
|
||||||
(condition-case err
|
(condition-case err
|
||||||
(progn
|
(progn
|
||||||
(jsonrpc-request conn '+ ["a" 2])
|
(jsonrpc-request conn '+ ["a" 2])
|
||||||
(ert-fail "A `jsonrpc-error' should have been signalled!"))
|
(ert-fail "A `jsonrpc-error' should have been signaled!"))
|
||||||
(jsonrpc-error
|
(jsonrpc-error
|
||||||
(should (= -32603 (cdr (assoc 'jsonrpc-error-code (cdr err)))))))))
|
(should (= -32603 (cdr (assoc 'jsonrpc-error-code (cdr err)))))))))
|
||||||
|
|
||||||
|
|
|
@ -112,7 +112,7 @@
|
||||||
(should-error (thread-join (current-thread))))
|
(should-error (thread-join (current-thread))))
|
||||||
|
|
||||||
(ert-deftest threads-join-error ()
|
(ert-deftest threads-join-error ()
|
||||||
"Test of error signalling from `thread-join'."
|
"Test of error signaling from `thread-join'."
|
||||||
:tags '(:unstable)
|
:tags '(:unstable)
|
||||||
(skip-unless (featurep 'threads))
|
(skip-unless (featurep 'threads))
|
||||||
(let ((thread (make-thread #'threads-call-error)))
|
(let ((thread (make-thread #'threads-call-error)))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue