aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorK. Handa2015-09-02 18:28:54 +0900
committerK. Handa2015-09-02 18:28:54 +0900
commite7b62736aade24620c8ba6fa6bd467d017f16ee0 (patch)
treed00a2203437a168b2414c6b73afc00a88d90b4b1
parentae08d073d7e2738580341534adc3c5924dc76860 (diff)
parent30866274e21c5f0a1c5f60cfe290743e7d482349 (diff)
downloademacs-e7b62736aade24620c8ba6fa6bd467d017f16ee0.tar.gz
emacs-e7b62736aade24620c8ba6fa6bd467d017f16ee0.zip
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
-rw-r--r--doc/lispintro/emacs-lisp-intro.texi189
-rw-r--r--etc/NEWS5
-rw-r--r--lisp/calculator.el8
-rw-r--r--lisp/calendar/cal-dst.el2
-rw-r--r--lisp/calendar/calendar.el4
-rw-r--r--lisp/cedet/semantic/idle.el4
-rw-r--r--lisp/cus-edit.el4
-rw-r--r--lisp/emacs-lisp/cl.el2
-rw-r--r--lisp/emacs-lisp/eieio.el4
-rw-r--r--lisp/emacs-lisp/eldoc.el4
-rw-r--r--lisp/emacs-lisp/gv.el2
-rw-r--r--lisp/emulation/cua-base.el53
-rw-r--r--lisp/erc/erc-backend.el2
-rw-r--r--lisp/erc/erc-networks.el7
-rw-r--r--lisp/erc/erc-services.el2
-rw-r--r--lisp/erc/erc.el4
-rw-r--r--lisp/eshell/esh-opt.el2
-rw-r--r--lisp/filesets.el2
-rw-r--r--lisp/font-lock.el6
-rw-r--r--lisp/gnus/gnus-art.el6
-rw-r--r--lisp/gnus/gnus-sum.el2
-rw-r--r--lisp/gnus/gnus-util.el8
-rw-r--r--lisp/gnus/nndiary.el8
-rw-r--r--lisp/gnus/nnmail.el4
-rw-r--r--lisp/iimage.el2
-rw-r--r--lisp/international/ogonek.el6
-rw-r--r--lisp/kmacro.el50
-rw-r--r--lisp/msb.el2
-rw-r--r--lisp/net/dbus.el4
-rw-r--r--lisp/net/tls.el7
-rw-r--r--lisp/net/tramp-sh.el6
-rw-r--r--lisp/net/tramp.el12
-rw-r--r--lisp/obsolete/sregex.el10
-rw-r--r--lisp/org/org-agenda.el14
-rw-r--r--lisp/org/org-protocol.el4
-rw-r--r--lisp/org/ox-html.el2
-rw-r--r--lisp/outline.el2
-rw-r--r--lisp/printing.el58
-rw-r--r--lisp/progmodes/etags.el2
-rw-r--r--lisp/progmodes/hideshow.el6
-rw-r--r--lisp/progmodes/idlwave.el6
-rw-r--r--lisp/progmodes/sql.el4
-rw-r--r--lisp/progmodes/verilog-mode.el12
-rw-r--r--lisp/ps-print.el10
-rw-r--r--lisp/server.el2
-rw-r--r--lisp/ses.el4
-rw-r--r--lisp/simple.el80
-rw-r--r--lisp/startup.el19
-rw-r--r--lisp/term/w32console.el7
-rw-r--r--lisp/textmodes/table.el10
-rw-r--r--lisp/textmodes/tildify.el4
-rw-r--r--lisp/vc/vc-git.el30
-rw-r--r--lisp/vc/vc-hooks.el12
-rw-r--r--lisp/wid-edit.el8
-rw-r--r--src/buffer.c54
-rw-r--r--src/category.c2
-rw-r--r--src/data.c2
-rw-r--r--src/dired.c2
-rw-r--r--src/editfns.c2
-rw-r--r--src/eval.c6
-rw-r--r--src/fileio.c2
-rw-r--r--src/fns.c4
-rw-r--r--src/frame.c6
-rw-r--r--src/image.c2
-rw-r--r--src/keyboard.c280
-rw-r--r--src/print.c2
-rw-r--r--src/process.c4
-rw-r--r--src/w32fns.c4
-rw-r--r--src/xfaces.c4
69 files changed, 527 insertions, 578 deletions
diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi
index a27a969f91b..3ac24183078 100644
--- a/doc/lispintro/emacs-lisp-intro.texi
+++ b/doc/lispintro/emacs-lisp-intro.texi
@@ -3691,26 +3691,26 @@ to the two variables @code{zebra} and @code{tiger}. The body of the
3691 3691
3692@smallexample 3692@smallexample
3693@group 3693@group
3694(let ((zebra 'stripes) 3694(let ((zebra "stripes")
3695 (tiger 'fierce)) 3695 (tiger "fierce"))
3696 (message "One kind of animal has %s and another is %s." 3696 (message "One kind of animal has %s and another is %s."
3697 zebra tiger)) 3697 zebra tiger))
3698@end group 3698@end group
3699@end smallexample 3699@end smallexample
3700 3700
3701Here, the varlist is @code{((zebra 'stripes) (tiger 'fierce))}. 3701Here, the varlist is @code{((zebra "stripes") (tiger "fierce"))}.
3702 3702
3703The two variables are @code{zebra} and @code{tiger}. Each variable is 3703The two variables are @code{zebra} and @code{tiger}. Each variable is
3704the first element of a two-element list and each value is the second 3704the first element of a two-element list and each value is the second
3705element of its two-element list. In the varlist, Emacs binds the 3705element of its two-element list. In the varlist, Emacs binds the
3706variable @code{zebra} to the value @code{stripes}@footnote{According 3706variable @code{zebra} to the value @code{"stripes"}@footnote{According
3707to Jared Diamond in @cite{Guns, Germs, and Steel}, ``@dots{} zebras 3707to Jared Diamond in @cite{Guns, Germs, and Steel}, ``@dots{} zebras
3708become impossibly dangerous as they grow older'' but the claim here is 3708become impossibly dangerous as they grow older'' but the claim here is
3709that they do not become fierce like a tiger. (1997, W. W. Norton and 3709that they do not become fierce like a tiger. (1997, W. W. Norton and
3710Co., ISBN 0-393-03894-2, page 171)}, and binds the 3710Co., ISBN 0-393-03894-2, page 171)}, and binds the
3711variable @code{tiger} to the value @code{fierce}. In this example, 3711variable @code{tiger} to the value @code{"fierce"}. In this example,
3712both values are symbols preceded by a quote. The values could just as 3712both values are strings. The values could just as well have been
3713well have been another list or a string. The body of the @code{let} 3713another list or a symbol. The body of the @code{let}
3714follows after the list holding the variables. In this example, the 3714follows after the list holding the variables. In this example, the
3715body is a list that uses the @code{message} function to print a string 3715body is a list that uses the @code{message} function to print a string
3716in the echo area. 3716in the echo area.
@@ -3855,17 +3855,17 @@ of time, we would not need to run the test!)
3855For example, the value may be bound to an argument of a function 3855For example, the value may be bound to an argument of a function
3856definition. In the following function definition, the character of the 3856definition. In the following function definition, the character of the
3857animal is a value that is passed to the function. If the value bound to 3857animal is a value that is passed to the function. If the value bound to
3858@code{characteristic} is @code{fierce}, then the message, @samp{It's a 3858@code{characteristic} is @code{"fierce"}, then the message, @samp{It is a
3859tiger!} will be printed; otherwise, @code{nil} will be returned. 3859tiger!} will be printed; otherwise, @code{nil} will be returned.
3860 3860
3861@smallexample 3861@smallexample
3862@group 3862@group
3863(defun type-of-animal (characteristic) 3863(defun type-of-animal (characteristic)
3864 "Print message in echo area depending on CHARACTERISTIC. 3864 "Print message in echo area depending on CHARACTERISTIC.
3865If the CHARACTERISTIC is the symbol fierce, 3865If the CHARACTERISTIC is the string \"fierce\",
3866then warn of a tiger." 3866then warn of a tiger."
3867 (if (equal characteristic 'fierce) 3867 (if (equal characteristic "fierce")
3868 (message "Its a tiger!"))) 3868 (message "It is a tiger!")))
3869@end group 3869@end group
3870@end smallexample 3870@end smallexample
3871 3871
@@ -3877,18 +3877,18 @@ can evaluate the following two expressions to see the results:
3877 3877
3878@smallexample 3878@smallexample
3879@group 3879@group
3880(type-of-animal 'fierce) 3880(type-of-animal "fierce")
3881 3881
3882(type-of-animal 'zebra) 3882(type-of-animal "striped")
3883 3883
3884@end group 3884@end group
3885@end smallexample 3885@end smallexample
3886 3886
3887@c Following sentences rewritten to prevent overfull hbox. 3887@c Following sentences rewritten to prevent overfull hbox.
3888@noindent 3888@noindent
3889When you evaluate @code{(type-of-animal 'fierce)}, you will see the 3889When you evaluate @code{(type-of-animal "fierce")}, you will see the
3890following message printed in the echo area: @code{"Its a tiger!"}; and 3890following message printed in the echo area: @code{"It is a tiger!"}; and
3891when you evaluate @code{(type-of-animal 'zebra)} you will see @code{nil} 3891when you evaluate @code{(type-of-animal "striped")} you will see @code{nil}
3892printed in the echo area. 3892printed in the echo area.
3893 3893
3894@node type-of-animal in detail 3894@node type-of-animal in detail
@@ -3918,7 +3918,7 @@ The parts of the function that match this template look like this:
3918@group 3918@group
3919(defun type-of-animal (characteristic) 3919(defun type-of-animal (characteristic)
3920 "Print message in echo area depending on CHARACTERISTIC. 3920 "Print message in echo area depending on CHARACTERISTIC.
3921If the CHARACTERISTIC is the symbol fierce, 3921If the CHARACTERISTIC is the string \"fierce\",
3922then warn of a tiger." 3922then warn of a tiger."
3923 @var{body: the} @code{if} @var{expression}) 3923 @var{body: the} @code{if} @var{expression})
3924@end group 3924@end group
@@ -3947,8 +3947,8 @@ looks like this:
3947 3947
3948@smallexample 3948@smallexample
3949@group 3949@group
3950(if (equal characteristic 'fierce) 3950(if (equal characteristic "fierce")
3951 (message "Its a tiger!"))) 3951 (message "It is a tiger!")))
3952@end group 3952@end group
3953@end smallexample 3953@end smallexample
3954 3954
@@ -3956,26 +3956,26 @@ looks like this:
3956Here, the true-or-false-test is the expression: 3956Here, the true-or-false-test is the expression:
3957 3957
3958@smallexample 3958@smallexample
3959(equal characteristic 'fierce) 3959(equal characteristic "fierce")
3960@end smallexample 3960@end smallexample
3961 3961
3962@noindent 3962@noindent
3963In Lisp, @code{equal} is a function that determines whether its first 3963In Lisp, @code{equal} is a function that determines whether its first
3964argument is equal to its second argument. The second argument is the 3964argument is equal to its second argument. The second argument is the
3965quoted symbol @code{'fierce} and the first argument is the value of the 3965string @code{"fierce"} and the first argument is the value of the
3966symbol @code{characteristic}---in other words, the argument passed to 3966symbol @code{characteristic}---in other words, the argument passed to
3967this function. 3967this function.
3968 3968
3969In the first exercise of @code{type-of-animal}, the argument 3969In the first exercise of @code{type-of-animal}, the argument
3970@code{fierce} is passed to @code{type-of-animal}. Since @code{fierce} 3970@code{"fierce"} is passed to @code{type-of-animal}. Since @code{"fierce"}
3971is equal to @code{fierce}, the expression, @code{(equal characteristic 3971is equal to @code{"fierce"}, the expression, @code{(equal characteristic
3972'fierce)}, returns a value of true. When this happens, the @code{if} 3972"fierce")}, returns a value of true. When this happens, the @code{if}
3973evaluates the second argument or then-part of the @code{if}: 3973evaluates the second argument or then-part of the @code{if}:
3974@code{(message "Its a tiger!")}. 3974@code{(message "It is a tiger!")}.
3975 3975
3976On the other hand, in the second exercise of @code{type-of-animal}, the 3976On the other hand, in the second exercise of @code{type-of-animal}, the
3977argument @code{zebra} is passed to @code{type-of-animal}. @code{zebra} 3977argument @code{"striped"} is passed to @code{type-of-animal}. @code{"striped"}
3978is not equal to @code{fierce}, so the then-part is not evaluated and 3978is not equal to @code{"fierce"}, so the then-part is not evaluated and
3979@code{nil} is returned by the @code{if} expression. 3979@code{nil} is returned by the @code{if} expression.
3980 3980
3981@node else 3981@node else
@@ -4034,33 +4034,33 @@ arguments to the function.
4034@group 4034@group
4035(defun type-of-animal (characteristic) ; @r{Second version.} 4035(defun type-of-animal (characteristic) ; @r{Second version.}
4036 "Print message in echo area depending on CHARACTERISTIC. 4036 "Print message in echo area depending on CHARACTERISTIC.
4037If the CHARACTERISTIC is the symbol fierce, 4037If the CHARACTERISTIC is the string \"fierce\",
4038then warn of a tiger; else say its not fierce." 4038then warn of a tiger; else say it is not fierce."
4039 (if (equal characteristic 'fierce) 4039 (if (equal characteristic "fierce")
4040 (message "Its a tiger!") 4040 (message "It is a tiger!")
4041 (message "Its not fierce!"))) 4041 (message "It is not fierce!")))
4042@end group 4042@end group
4043@end smallexample 4043@end smallexample
4044@sp 1 4044@sp 1
4045 4045
4046@smallexample 4046@smallexample
4047@group 4047@group
4048(type-of-animal 'fierce) 4048(type-of-animal "fierce")
4049 4049
4050(type-of-animal 'zebra) 4050(type-of-animal "striped")
4051 4051
4052@end group 4052@end group
4053@end smallexample 4053@end smallexample
4054 4054
4055@c Following sentence rewritten to prevent overfull hbox. 4055@c Following sentence rewritten to prevent overfull hbox.
4056@noindent 4056@noindent
4057When you evaluate @code{(type-of-animal 'fierce)}, you will see the 4057When you evaluate @code{(type-of-animal "fierce")}, you will see the
4058following message printed in the echo area: @code{"Its a tiger!"}; but 4058following message printed in the echo area: @code{"It is a tiger!"}; but
4059when you evaluate @code{(type-of-animal 'zebra)}, you will see 4059when you evaluate @code{(type-of-animal "striped")}, you will see
4060@code{"Its not fierce!"}. 4060@code{"It is not fierce!"}.
4061 4061
4062(Of course, if the @var{characteristic} were @code{ferocious}, the 4062(Of course, if the @var{characteristic} were @code{"ferocious"}, the
4063message @code{"Its not fierce!"} would be printed; and it would be 4063message @code{"It is not fierce!"} would be printed; and it would be
4064misleading! When you write code, you need to take into account the 4064misleading! When you write code, you need to take into account the
4065possibility that some such argument will be tested by the @code{if} 4065possibility that some such argument will be tested by the @code{if}
4066and write your program accordingly.) 4066and write your program accordingly.)
@@ -6348,7 +6348,7 @@ With arg N, put point N/10 of the way
6348from the true beginning. 6348from the true beginning.
6349@end group 6349@end group
6350@group 6350@group
6351Dont use this in Lisp programs! 6351Don't use this in Lisp programs!
6352\(goto-char (point-min)) is faster 6352\(goto-char (point-min)) is faster
6353and does not set the mark." 6353and does not set the mark."
6354 (interactive "P") 6354 (interactive "P")
@@ -7604,8 +7604,8 @@ Here is the complete text of the version 22 implementation of the function:
7604@smallexample 7604@smallexample
7605@group 7605@group
7606(defun zap-to-char (arg char) 7606(defun zap-to-char (arg char)
7607 "Kill up to and including ARGth occurrence of CHAR. 7607 "Kill up to and including ARG'th occurrence of CHAR.
7608Case is ignored if case-fold-search is non-nil in the current buffer. 7608Case is ignored if `case-fold-search' is non-nil in the current buffer.
7609Goes backward if ARG is negative; error if CHAR not found." 7609Goes backward if ARG is negative; error if CHAR not found."
7610 (interactive "p\ncZap to char: ") 7610 (interactive "p\ncZap to char: ")
7611 (if (char-table-p translation-table-for-input) 7611 (if (char-table-p translation-table-for-input)
@@ -7620,6 +7620,19 @@ Goes backward if ARG is negative; error if CHAR not found."
7620The documentation is thorough. You do need to know the jargon meaning 7620The documentation is thorough. You do need to know the jargon meaning
7621of the word ``kill''. 7621of the word ``kill''.
7622 7622
7623@cindex curved quotes
7624@cindex curly quotes
7625The version 22 documentation string for @code{zap-to-char} uses ASCII
7626grave accent and apostrophe to quote a symbol, so it appears as
7627@t{`case-fold-search'}. This quoting style was inspired by 1970s-era
7628displays in which grave accent and apostrophe were often mirror images
7629suitable for use as quotes. On most modern displays this is no longer
7630true, and when these two ASCII characters appear in documentation
7631strings or diagnostic message formats, Emacs typically transliterates
7632them to curved single quotes, so that the abovequoted symbol appears
7633as @t{‘case-fold-search’}. Source-code strings can also simply use
7634curved quotes directly.
7635
7623@node zap-to-char interactive 7636@node zap-to-char interactive
7624@subsection The @code{interactive} Expression 7637@subsection The @code{interactive} Expression
7625 7638
@@ -7863,7 +7876,7 @@ to make one entry in the kill ring.
7863 7876
7864In Lisp code, optional third arg YANK-HANDLER, if non-nil, 7877In Lisp code, optional third arg YANK-HANDLER, if non-nil,
7865specifies the yank-handler text property to be set on the killed 7878specifies the yank-handler text property to be set on the killed
7866text. See insert-for-yank." 7879text. See `insert-for-yank'."
7867 ;; Pass point first, then mark, because the order matters 7880 ;; Pass point first, then mark, because the order matters
7868 ;; when calling kill-append. 7881 ;; when calling kill-append.
7869 (interactive (list (point) (mark))) 7882 (interactive (list (point) (mark)))
@@ -8291,9 +8304,9 @@ function:
8291@smallexample 8304@smallexample
8292@group 8305@group
8293(defun copy-region-as-kill (beg end) 8306(defun copy-region-as-kill (beg end)
8294 "Save the region as if killed, but dont kill it. 8307 "Save the region as if killed, but don't kill it.
8295In Transient Mark mode, deactivate the mark. 8308In Transient Mark mode, deactivate the mark.
8296If interprogram-cut-function is non-nil, also save the text for a window 8309If `interprogram-cut-function' is non-nil, also save the text for a window
8297system cut and paste." 8310system cut and paste."
8298 (interactive "r") 8311 (interactive "r")
8299@end group 8312@end group
@@ -8573,28 +8586,16 @@ function which in turn uses the @code{setcar} function.
8573@unnumberedsubsubsec The @code{kill-new} function 8586@unnumberedsubsubsec The @code{kill-new} function
8574@findex kill-new 8587@findex kill-new
8575 8588
8576@c in GNU Emacs 22, additional documentation to kill-new:
8577@ignore
8578Optional third arguments YANK-HANDLER controls how the STRING is later
8579inserted into a buffer; see `insert-for-yank' for details.
8580When a yank handler is specified, STRING must be non-empty (the yank
8581handler, if non-nil, is stored as a `yank-handler' text property on STRING).
8582
8583When the yank handler has a non-nil PARAM element, the original STRING
8584argument is not used by `insert-for-yank'. However, since Lisp code
8585may access and use elements from the kill ring directly, the STRING
8586argument should still be a \"useful\" string for such uses."
8587@end ignore
8588@need 1200 8589@need 1200
8589The @code{kill-new} function looks like this: 8590In version 22 the @code{kill-new} function looks like this:
8590 8591
8591@smallexample 8592@smallexample
8592@group 8593@group
8593(defun kill-new (string &optional replace yank-handler) 8594(defun kill-new (string &optional replace yank-handler)
8594 "Make STRING the latest kill in the kill ring. 8595 "Make STRING the latest kill in the kill ring.
8595Set kill-ring-yank-pointer to point to it. 8596Set `kill-ring-yank-pointer' to point to it.
8596 8597
8597If `interprogram-cut-function is non-nil, apply it to STRING. 8598If `interprogram-cut-function' is non-nil, apply it to STRING.
8598Optional second argument REPLACE non-nil means that STRING will replace 8599Optional second argument REPLACE non-nil means that STRING will replace
8599the front of the kill ring, rather than being added to the list. 8600the front of the kill ring, rather than being added to the list.
8600@dots{}" 8601@dots{}"
@@ -10089,10 +10090,10 @@ With argument, rotate that many kills forward (or backward, if negative)."
10089 10090
10090(defun current-kill (n &optional do-not-move) 10091(defun current-kill (n &optional do-not-move)
10091 "Rotate the yanking point by N places, and then return that kill. 10092 "Rotate the yanking point by N places, and then return that kill.
10092If N is zero, interprogram-paste-function is set, and calling it 10093If N is zero, `interprogram-paste-function' is set, and calling it
10093returns a string, then that string is added to the front of the 10094returns a string, then that string is added to the front of the
10094kill ring and returned as the latest kill. 10095kill ring and returned as the latest kill.
10095If optional arg DO-NOT-MOVE is non-nil, then dont actually move the 10096If optional arg DO-NOT-MOVE is non-nil, then don't actually move the
10096yanking point; just return the Nth kill forward." 10097yanking point; just return the Nth kill forward."
10097 (let ((interprogram-paste (and (= n 0) 10098 (let ((interprogram-paste (and (= n 0)
10098 interprogram-paste-function 10099 interprogram-paste-function
@@ -12427,10 +12428,10 @@ Here is the code for @code{forward-sentence}:
12427@smallexample 12428@smallexample
12428@group 12429@group
12429(defun forward-sentence (&optional arg) 12430(defun forward-sentence (&optional arg)
12430 "Move forward to next sentence-end’. With argument, repeat. 12431 "Move forward to next end of sentence. With argument, repeat.
12431With negative argument, move backward repeatedly to sentence-beginning’. 12432With negative argument, move backward repeatedly to start of sentence.
12432 12433
12433The variable sentence-end is a regular expression that matches ends of 12434The variable `sentence-end' is a regular expression that matches ends of
12434sentences. Also, every paragraph boundary terminates sentences as well." 12435sentences. Also, every paragraph boundary terminates sentences as well."
12435@end group 12436@end group
12436@group 12437@group
@@ -17520,8 +17521,13 @@ Incidentally, @code{load-library} is an interactive interface to the
17520@smallexample 17521@smallexample
17521@group 17522@group
17522(defun load-library (library) 17523(defun load-library (library)
17523 "Load the library named LIBRARY. 17524 "Load the Emacs Lisp library named LIBRARY.
17524This is an interface to the function ‘load’." 17525This is an interface to the function `load'. LIBRARY is searched
17526for in `load-path', both with and without `load-suffixes' (as
17527well as `load-file-rep-suffixes').
17528
17529See Info node `(emacs)Lisp Libraries' for more details.
17530See `load-file' for a different interface to `load'."
17525 (interactive 17531 (interactive
17526 (list (completing-read "Load library: " 17532 (list (completing-read "Load library: "
17527 (apply-partially 'locate-file-completion-table 17533 (apply-partially 'locate-file-completion-table
@@ -19005,13 +19011,21 @@ The @code{current-kill} function is used by @code{yank} and by
19005@group 19011@group
19006(defun current-kill (n &optional do-not-move) 19012(defun current-kill (n &optional do-not-move)
19007 "Rotate the yanking point by N places, and then return that kill. 19013 "Rotate the yanking point by N places, and then return that kill.
19008If N is zero, ‘interprogram-paste-function’ is set, and calling it 19014If N is zero and `interprogram-paste-function' is set to a
19009returns a string, then that string is added to the front of the 19015function that returns a string or a list of strings, and if that
19010kill ring and returned as the latest kill. 19016function doesn't return nil, then that string (or list) is added
19017to the front of the kill ring and the string (or first string in
19018the list) is returned as the latest kill.
19011@end group 19019@end group
19012@group 19020@group
19013If optional arg DO-NOT-MOVE is non-nil, then don’t actually move the 19021If N is not zero, and if `yank-pop-change-selection' is
19014yanking point; just return the Nth kill forward." 19022non-nil, use `interprogram-cut-function' to transfer the
19023kill at the new yank point into the window system selection.
19024@end group
19025@group
19026If optional arg DO-NOT-MOVE is non-nil, then don't actually
19027move the yanking point; just return the Nth kill forward."
19028
19015 (let ((interprogram-paste (and (= n 0) 19029 (let ((interprogram-paste (and (= n 0)
19016 interprogram-paste-function 19030 interprogram-paste-function
19017 (funcall interprogram-paste-function)))) 19031 (funcall interprogram-paste-function))))
@@ -19023,8 +19037,10 @@ yanking point; just return the Nth kill forward."
19023 ;; text to the kill ring, so Emacs doesn't try to own the 19037 ;; text to the kill ring, so Emacs doesn't try to own the
19024 ;; selection, with identical text. 19038 ;; selection, with identical text.
19025 (let ((interprogram-cut-function nil)) 19039 (let ((interprogram-cut-function nil))
19026 (kill-new interprogram-paste)) 19040 (if (listp interprogram-paste)
19027 interprogram-paste) 19041 (mapc 'kill-new (nreverse interprogram-paste))
19042 (kill-new interprogram-paste)))
19043 (car kill-ring))
19028@end group 19044@end group
19029@group 19045@group
19030 (or kill-ring (error "Kill ring is empty")) 19046 (or kill-ring (error "Kill ring is empty"))
@@ -19032,8 +19048,12 @@ yanking point; just return the Nth kill forward."
19032 (nthcdr (mod (- n (length kill-ring-yank-pointer)) 19048 (nthcdr (mod (- n (length kill-ring-yank-pointer))
19033 (length kill-ring)) 19049 (length kill-ring))
19034 kill-ring))) 19050 kill-ring)))
19035 (or do-not-move 19051 (unless do-not-move
19036 (setq kill-ring-yank-pointer ARGth-kill-element)) 19052 (setq kill-ring-yank-pointer ARGth-kill-element)
19053 (when (and yank-pop-change-selection
19054 (> n 0)
19055 interprogram-cut-function)
19056 (funcall interprogram-cut-function (car ARGth-kill-element))))
19037 (car ARGth-kill-element))))) 19057 (car ARGth-kill-element)))))
19038@end group 19058@end group
19039@end smallexample 19059@end smallexample
@@ -19344,15 +19364,15 @@ The code looks like this:
19344 "Reinsert (\"paste\") the last stretch of killed text. 19364 "Reinsert (\"paste\") the last stretch of killed text.
19345More precisely, reinsert the stretch of killed text most recently 19365More precisely, reinsert the stretch of killed text most recently
19346killed OR yanked. Put point at end, and set mark at beginning. 19366killed OR yanked. Put point at end, and set mark at beginning.
19347With just \\[universal-argument] as argument, same but put point at 19367With just \\[universal-argument] as argument, same but put point at beginning (and mark at end).
19348beginning (and mark at end). With argument N, reinsert the Nth most 19368With argument N, reinsert the Nth most recently killed stretch of killed
19349recently killed stretch of killed text. 19369text.
19350 19370
19351When this command inserts killed text into the buffer, it honors 19371When this command inserts killed text into the buffer, it honors
19352yank-excluded-properties and yank-handler as described in the 19372`yank-excluded-properties' and `yank-handler' as described in the
19353doc string for insert-for-yank-1, which see. 19373doc string for `insert-for-yank-1', which see.
19354 19374
19355See also the command \\[yank-pop]." 19375See also the command `yank-pop' (\\[yank-pop])."
19356@end group 19376@end group
19357@group 19377@group
19358 (interactive "*P") 19378 (interactive "*P")
@@ -19368,8 +19388,7 @@ See also the command \\[yank-pop]."
19368 ((eq arg '-) -2) 19388 ((eq arg '-) -2)
19369 (t (1- arg))))) 19389 (t (1- arg)))))
19370 (if (consp arg) 19390 (if (consp arg)
19371 ;; This is like exchange-point-and-mark, 19391 ;; This is like exchange-point-and-mark, but doesn't activate the mark.
19372 ;; but doesn't activate the mark.
19373 ;; It is cleaner to avoid activation, even though the command 19392 ;; It is cleaner to avoid activation, even though the command
19374 ;; loop would deactivate the mark because we inserted text. 19393 ;; loop would deactivate the mark because we inserted text.
19375 (goto-char (prog1 (mark t) 19394 (goto-char (prog1 (mark t)
diff --git a/etc/NEWS b/etc/NEWS
index 3832ffae1f4..c664e026d47 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -310,6 +310,7 @@ standards.
310 310
311* Changes in Specialized Modes and Packages in Emacs 25.1 311* Changes in Specialized Modes and Packages in Emacs 25.1
312 312
313** You can recompute the VC state of a file buffer with `M-x vc-refresh-state'
313** Prog mode has some support for multi-mode indentation. 314** Prog mode has some support for multi-mode indentation.
314See `prog-indentation-context' and `prog-widen'. 315See `prog-indentation-context' and `prog-widen'.
315 316
@@ -965,6 +966,10 @@ be updated accordingly.
965 966
966* Lisp Changes in Emacs 25.1 967* Lisp Changes in Emacs 25.1
967 968
969** New hooks prefix-command-echo-keystrokes-functions and
970prefix-command-preserve-state-hook, to allow the definition of prefix
971commands other than the predefined C-u.
972
968** New functions `filepos-to-bufferpos' and `bufferpos-to-filepos'. 973** New functions `filepos-to-bufferpos' and `bufferpos-to-filepos'.
969 974
970** The default value of `load-read-function' is now `read'. 975** The default value of `load-read-function' is now `read'.
diff --git a/lisp/calculator.el b/lisp/calculator.el
index 55229bc03fb..49d47a0519b 100644
--- a/lisp/calculator.el
+++ b/lisp/calculator.el
@@ -191,7 +191,7 @@ Each element in this list is a list of a character and a number that
191will be stored in that character's register. 191will be stored in that character's register.
192 192
193For example, use this to define the golden ratio number: 193For example, use this to define the golden ratio number:
194 (setq calculator-user-registers '((?g . 1.61803398875))) 194 (setq calculator-user-registers \\='((?g . 1.61803398875)))
195before you load calculator." 195before you load calculator."
196 :type '(repeat (cons character number)) 196 :type '(repeat (cons character number))
197 :set (lambda (_ val) 197 :set (lambda (_ val)
@@ -214,7 +214,7 @@ Examples:
214 t as a prefix key: 214 t as a prefix key:
215 215
216 (setq calculator-user-operators 216 (setq calculator-user-operators
217 '((\"tf\" cl-to-fr (+ 32 (/ (* X 9) 5)) 1) 217 \\='((\"tf\" cl-to-fr (+ 32 (/ (* X 9) 5)) 1)
218 (\"tc\" fr-to-cl (/ (* (- X 32) 5) 9) 1) 218 (\"tc\" fr-to-cl (/ (* (- X 32) 5) 9) 1)
219 (\"tp\" kg-to-lb (/ X 0.453592) 1) 219 (\"tp\" kg-to-lb (/ X 0.453592) 1)
220 (\"tk\" lb-to-kg (* X 0.453592) 1) 220 (\"tk\" lb-to-kg (* X 0.453592) 1)
@@ -226,8 +226,8 @@ Examples:
226 version of `X' and `F' for a recursive call. Here is a [very 226 version of `X' and `F' for a recursive call. Here is a [very
227 inefficient] Fibonacci number calculation: 227 inefficient] Fibonacci number calculation:
228 228
229 (add-to-list 'calculator-user-operators 229 (add-to-list \\='calculator-user-operators
230 '(\"F\" fib 230 \\='(\"F\" fib
231 (if (<= TX 1) 1 (+ (F (- TX 1)) (F (- TX 2)))))) 231 (if (<= TX 1) 1 (+ (F (- TX 1)) (F (- TX 2))))))
232 232
233 Note that this will be either postfix or prefix, according to 233 Note that this will be either postfix or prefix, according to
diff --git a/lisp/calendar/cal-dst.el b/lisp/calendar/cal-dst.el
index e8d6077b165..a0d0def61a5 100644
--- a/lisp/calendar/cal-dst.el
+++ b/lisp/calendar/cal-dst.el
@@ -82,7 +82,7 @@ list and for correcting times of day in the solar and lunar calculations.
82 82
83For example, if daylight saving time ends on the last Sunday in October: 83For example, if daylight saving time ends on the last Sunday in October:
84 84
85 '(calendar-nth-named-day -1 0 10 year) 85 (calendar-nth-named-day -1 0 10 year)
86 86
87If the locale never uses daylight saving time, set this to nil." 87If the locale never uses daylight saving time, set this to nil."
88 :type 'sexp 88 :type 'sexp
diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el
index c35bd38bb64..07977afc397 100644
--- a/lisp/calendar/calendar.el
+++ b/lisp/calendar/calendar.el
@@ -550,12 +550,12 @@ For example, to display the ISO week numbers:
550 550
551 (setq calendar-week-start-day 1 551 (setq calendar-week-start-day 1
552 calendar-intermonth-text 552 calendar-intermonth-text
553 '(propertize 553 \\='(propertize
554 (format \"%2d\" 554 (format \"%2d\"
555 (car 555 (car
556 (calendar-iso-from-absolute 556 (calendar-iso-from-absolute
557 (calendar-absolute-from-gregorian (list month day year))))) 557 (calendar-absolute-from-gregorian (list month day year)))))
558 'font-lock-face 'font-lock-function-name-face)) 558 \\='font-lock-face \\='font-lock-function-name-face))
559 559
560See also `calendar-intermonth-header'." 560See also `calendar-intermonth-header'."
561 :group 'calendar 561 :group 'calendar
diff --git a/lisp/cedet/semantic/idle.el b/lisp/cedet/semantic/idle.el
index 225caa599fb..95d9d846466 100644
--- a/lisp/cedet/semantic/idle.el
+++ b/lisp/cedet/semantic/idle.el
@@ -716,8 +716,8 @@ It might be useful to override this variable to add comment faces
716specific to a major mode. For example, in jde mode: 716specific to a major mode. For example, in jde mode:
717 717
718\(defvar-mode-local jde-mode semantic-idle-summary-out-of-context-faces 718\(defvar-mode-local jde-mode semantic-idle-summary-out-of-context-faces
719 (append (default-value 'semantic-idle-summary-out-of-context-faces) 719 (append (default-value \\='semantic-idle-summary-out-of-context-faces)
720 '(jde-java-font-lock-doc-tag-face 720 \\='(jde-java-font-lock-doc-tag-face
721 jde-java-font-lock-link-face 721 jde-java-font-lock-link-face
722 jde-java-font-lock-bold-face 722 jde-java-font-lock-bold-face
723 jde-java-font-lock-underline-face 723 jde-java-font-lock-underline-face
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index 70308334183..08c1acdae86 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -1189,8 +1189,8 @@ and `defface'.
1189 1189
1190For example, the MH-E package updates this alist as follows: 1190For example, the MH-E package updates this alist as follows:
1191 1191
1192 (add-to-list 'customize-package-emacs-version-alist 1192 (add-to-list \\='customize-package-emacs-version-alist
1193 '(MH-E (\"6.0\" . \"22.1\") (\"6.1\" . \"22.1\") 1193 \\='(MH-E (\"6.0\" . \"22.1\") (\"6.1\" . \"22.1\")
1194 (\"7.0\" . \"22.1\") (\"7.1\" . \"22.1\") 1194 (\"7.0\" . \"22.1\") (\"7.1\" . \"22.1\")
1195 (\"7.2\" . \"22.1\") (\"7.3\" . \"22.1\") 1195 (\"7.2\" . \"22.1\") (\"7.3\" . \"22.1\")
1196 (\"7.4\" . \"22.1\") (\"8.0\" . \"22.1\"))) 1196 (\"7.4\" . \"22.1\") (\"8.0\" . \"22.1\")))
diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el
index 38deeaeaaa9..ba50680e8b9 100644
--- a/lisp/emacs-lisp/cl.el
+++ b/lisp/emacs-lisp/cl.el
@@ -568,7 +568,7 @@ may be bound to temporary variables which are introduced
568automatically to preserve proper execution order of the arguments. 568automatically to preserve proper execution order of the arguments.
569For example: 569For example:
570 570
571 (defsetf nth (n x) (v) `(setcar (nthcdr ,n ,x) ,v)) 571 (defsetf nth (n x) (v) \\=`(setcar (nthcdr ,n ,x) ,v))
572 572
573You can replace this form with `gv-define-setter'. 573You can replace this form with `gv-define-setter'.
574 574
diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el
index 84c07d96c8d..ad178c3a2c2 100644
--- a/lisp/emacs-lisp/eieio.el
+++ b/lisp/emacs-lisp/eieio.el
@@ -683,12 +683,12 @@ This class is not stored in the `parent' slot of a class vector."
683 "Make a new instance of CLASS based on INITARGS. 683 "Make a new instance of CLASS based on INITARGS.
684For example: 684For example:
685 685
686 (make-instance 'foo) 686 (make-instance \\='foo)
687 687
688INITARGS is a property list with keywords based on the `:initarg' 688INITARGS is a property list with keywords based on the `:initarg'
689for each slot. For example: 689for each slot. For example:
690 690
691 (make-instance 'foo :slot1 value1 :slotN valueN)") 691 (make-instance \\='foo :slot1 value1 :slotN valueN)")
692 692
693(define-obsolete-function-alias 'constructor #'make-instance "25.1") 693(define-obsolete-function-alias 'constructor #'make-instance "25.1")
694 694
diff --git a/lisp/emacs-lisp/eldoc.el b/lisp/emacs-lisp/eldoc.el
index feffd5470c4..2dae86ebc95 100644
--- a/lisp/emacs-lisp/eldoc.el
+++ b/lisp/emacs-lisp/eldoc.el
@@ -337,8 +337,8 @@ and the face `eldoc-highlight-function-argument', if they are to have any
337effect. 337effect.
338 338
339Major modes should modify this variable using `add-function', for example: 339Major modes should modify this variable using `add-function', for example:
340 (add-function :before-until (local 'eldoc-documentation-function) 340 (add-function :before-until (local \\='eldoc-documentation-function)
341 #'foo-mode-eldoc-function) 341 #\\='foo-mode-eldoc-function)
342so that the global documentation function (i.e. the default value of the 342so that the global documentation function (i.e. the default value of the
343variable) is taken into account if the major mode specific function does not 343variable) is taken into account if the major mode specific function does not
344return any documentation.") 344return any documentation.")
diff --git a/lisp/emacs-lisp/gv.el b/lisp/emacs-lisp/gv.el
index bed9024e037..67609820a33 100644
--- a/lisp/emacs-lisp/gv.el
+++ b/lisp/emacs-lisp/gv.el
@@ -218,7 +218,7 @@ return a Lisp form that does the assignment.
218The first arg in ARGLIST (the one that receives VAL) receives an expression 218The first arg in ARGLIST (the one that receives VAL) receives an expression
219which can do arbitrary things, whereas the other arguments are all guaranteed 219which can do arbitrary things, whereas the other arguments are all guaranteed
220to be pure and copyable. Example use: 220to be pure and copyable. Example use:
221 (gv-define-setter aref (v a i) `(aset ,a ,i ,v))" 221 (gv-define-setter aref (v a i) \\=`(aset ,a ,i ,v))"
222 (declare (indent 2) (debug (&define name sexp body))) 222 (declare (indent 2) (debug (&define name sexp body)))
223 `(gv-define-expander ,name 223 `(gv-define-expander ,name
224 (lambda (do &rest args) 224 (lambda (do &rest args)
diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el
index e91ce80bbe2..52e1647ede7 100644
--- a/lisp/emulation/cua-base.el
+++ b/lisp/emulation/cua-base.el
@@ -685,7 +685,7 @@ a cons (TYPE . COLOR), then both properties are affected."
685(defvar cua--prefix-override-timer nil) 685(defvar cua--prefix-override-timer nil)
686(defvar cua--prefix-override-length nil) 686(defvar cua--prefix-override-length nil)
687 687
688(defun cua--prefix-override-replay (arg repeat) 688(defun cua--prefix-override-replay (repeat)
689 (let* ((keys (this-command-keys)) 689 (let* ((keys (this-command-keys))
690 (i (length keys)) 690 (i (length keys))
691 (key (aref keys (1- i)))) 691 (key (aref keys (1- i))))
@@ -705,21 +705,23 @@ a cons (TYPE . COLOR), then both properties are affected."
705 ;; Don't record this command 705 ;; Don't record this command
706 (setq this-command last-command) 706 (setq this-command last-command)
707 ;; Restore the prefix arg 707 ;; Restore the prefix arg
708 (setq prefix-arg arg) 708 ;; This should make it so that exchange-point-and-mark gets the prefix when
709 (reset-this-command-lengths) 709 ;; you do C-u C-x C-x C-x work (where the C-u is properly passed to the C-x
710 ;; C-x binding after the first C-x C-x was rewritten to just C-x).
711 (prefix-command-preserve-state)
710 ;; Push the key back on the event queue 712 ;; Push the key back on the event queue
711 (setq unread-command-events (cons key unread-command-events)))) 713 (setq unread-command-events (cons key unread-command-events))))
712 714
713(defun cua--prefix-override-handler (arg) 715(defun cua--prefix-override-handler ()
714 "Start timer waiting for prefix key to be followed by another key. 716 "Start timer waiting for prefix key to be followed by another key.
715Repeating prefix key when region is active works as a single prefix key." 717Repeating prefix key when region is active works as a single prefix key."
716 (interactive "P") 718 (interactive)
717 (cua--prefix-override-replay arg 0)) 719 (cua--prefix-override-replay 0))
718 720
719(defun cua--prefix-repeat-handler (arg) 721(defun cua--prefix-repeat-handler ()
720 "Repeating prefix key when region is active works as a single prefix key." 722 "Repeating prefix key when region is active works as a single prefix key."
721 (interactive "P") 723 (interactive)
722 (cua--prefix-override-replay arg 1)) 724 (cua--prefix-override-replay 1))
723 725
724(defun cua--prefix-copy-handler (arg) 726(defun cua--prefix-copy-handler (arg)
725 "Copy region/rectangle, then replay last key." 727 "Copy region/rectangle, then replay last key."
@@ -742,7 +744,8 @@ Repeating prefix key when region is active works as a single prefix key."
742 (when (= (length (this-command-keys)) cua--prefix-override-length) 744 (when (= (length (this-command-keys)) cua--prefix-override-length)
743 (setq unread-command-events (cons 'timeout unread-command-events)) 745 (setq unread-command-events (cons 'timeout unread-command-events))
744 (if prefix-arg 746 (if prefix-arg
745 (reset-this-command-lengths) 747 nil
748 ;; FIXME: Why?
746 (setq overriding-terminal-local-map nil)) 749 (setq overriding-terminal-local-map nil))
747 (cua--select-keymaps))) 750 (cua--select-keymaps)))
748 751
@@ -755,8 +758,9 @@ Repeating prefix key when region is active works as a single prefix key."
755 (call-interactively this-command)) 758 (call-interactively this-command))
756 759
757(defun cua--keep-active () 760(defun cua--keep-active ()
758 (setq mark-active t 761 (when (mark t)
759 deactivate-mark nil)) 762 (setq mark-active t
763 deactivate-mark nil)))
760 764
761(defun cua--deactivate (&optional now) 765(defun cua--deactivate (&optional now)
762 (if (not now) 766 (if (not now)
@@ -944,7 +948,7 @@ See also `exchange-point-and-mark'."
944 (cond ((null cua-enable-cua-keys) 948 (cond ((null cua-enable-cua-keys)
945 (exchange-point-and-mark arg)) 949 (exchange-point-and-mark arg))
946 (arg 950 (arg
947 (setq mark-active t)) 951 (when (mark t) (setq mark-active t)))
948 (t 952 (t
949 (let (mark-active) 953 (let (mark-active)
950 (exchange-point-and-mark) 954 (exchange-point-and-mark)
@@ -1212,25 +1216,28 @@ If ARG is the atom `-', scroll upward by nearly full screen."
1212 1216
1213(defvar cua--keymaps-initialized nil) 1217(defvar cua--keymaps-initialized nil)
1214 1218
1215(defun cua--shift-control-prefix (prefix arg) 1219(defun cua--shift-control-prefix (prefix)
1216 ;; handle S-C-x and S-C-c by emulating the fast double prefix function. 1220 ;; handle S-C-x and S-C-c by emulating the fast double prefix function.
1217 ;; Don't record this command 1221 ;; Don't record this command
1218 (setq this-command last-command) 1222 (setq this-command last-command)
1219 ;; Restore the prefix arg 1223 ;; Restore the prefix arg
1220 (setq prefix-arg arg) 1224 ;; This should make it so that exchange-point-and-mark gets the prefix when
1221 (reset-this-command-lengths) 1225 ;; you do C-u S-C-x C-x work (where the C-u is properly passed to the C-x
1226 ;; C-x binding after the first S-C-x was rewritten to just C-x).
1227 (prefix-command-preserve-state)
1222 ;; Activate the cua--prefix-repeat-keymap 1228 ;; Activate the cua--prefix-repeat-keymap
1223 (setq cua--prefix-override-timer 'shift) 1229 (setq cua--prefix-override-timer 'shift)
1224 ;; Push duplicate keys back on the event queue 1230 ;; Push duplicate keys back on the event queue
1225 (setq unread-command-events (cons prefix (cons prefix unread-command-events)))) 1231 (setq unread-command-events
1232 (cons prefix (cons prefix unread-command-events))))
1226 1233
1227(defun cua--shift-control-c-prefix (arg) 1234(defun cua--shift-control-c-prefix ()
1228 (interactive "P") 1235 (interactive)
1229 (cua--shift-control-prefix ?\C-c arg)) 1236 (cua--shift-control-prefix ?\C-c))
1230 1237
1231(defun cua--shift-control-x-prefix (arg) 1238(defun cua--shift-control-x-prefix ()
1232 (interactive "P") 1239 (interactive)
1233 (cua--shift-control-prefix ?\C-x arg)) 1240 (cua--shift-control-prefix ?\C-x))
1234 1241
1235(defun cua--init-keymaps () 1242(defun cua--init-keymaps ()
1236 ;; Cache actual rectangle modifier key. 1243 ;; Cache actual rectangle modifier key.
diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el
index db5f6a63519..eec69256db6 100644
--- a/lisp/erc/erc-backend.el
+++ b/lisp/erc/erc-backend.el
@@ -1082,7 +1082,7 @@ As an example:
1082Would expand to: 1082Would expand to:
1083 1083
1084 (prog2 1084 (prog2
1085 (defvar erc-server-311-functions 'erc-server-311 1085 (defvar erc-server-311-functions \\='erc-server-311
1086 \"Some non-generic variable documentation. 1086 \"Some non-generic variable documentation.
1087 1087
1088 Hook called upon receiving a 311 server response. 1088 Hook called upon receiving a 311 server response.
diff --git a/lisp/erc/erc-networks.el b/lisp/erc/erc-networks.el
index 9de9b257c10..441663f3b3b 100644
--- a/lisp/erc/erc-networks.el
+++ b/lisp/erc/erc-networks.el
@@ -782,9 +782,9 @@ PORTS should be a list of either:
782 numbers between LOW and HIGH (inclusive) is returned. 782 numbers between LOW and HIGH (inclusive) is returned.
783 783
784As an example: 784As an example:
785 (erc-ports-list '(1)) => (1) 785 (erc-ports-list \\='(1)) => (1)
786 (erc-ports-list '((1 5))) => (1 2 3 4 5) 786 (erc-ports-list \\='((1 5))) => (1 2 3 4 5)
787 (erc-ports-list '(1 (3 5))) => (1 3 4 5)" 787 (erc-ports-list \\='(1 (3 5))) => (1 3 4 5)"
788 (let (result) 788 (let (result)
789 (dolist (p ports) 789 (dolist (p ports)
790 (cond ((numberp p) 790 (cond ((numberp p)
@@ -866,4 +866,3 @@ VALUE is the options value.")
866;; indent-tabs-mode: t 866;; indent-tabs-mode: t
867;; tab-width: 8 867;; tab-width: 8
868;; End: 868;; End:
869
diff --git a/lisp/erc/erc-services.el b/lisp/erc/erc-services.el
index 07a4274dcb6..2d2fa6230c3 100644
--- a/lisp/erc/erc-services.el
+++ b/lisp/erc/erc-services.el
@@ -172,7 +172,7 @@ You can also use M-x erc-nickserv-identify-mode to change modes."
172 172
173Example of use: 173Example of use:
174 (setq erc-nickserv-passwords 174 (setq erc-nickserv-passwords
175 '((freenode ((\"nick-one\" . \"password\") 175 \\='((freenode ((\"nick-one\" . \"password\")
176 (\"nick-two\" . \"password\"))) 176 (\"nick-two\" . \"password\")))
177 (DALnet ((\"nick\" . \"password\")))))" 177 (DALnet ((\"nick\" . \"password\")))))"
178 :group 'erc-services 178 :group 'erc-services
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
index f2821798103..726e9ed9a21 100644
--- a/lisp/erc/erc.el
+++ b/lisp/erc/erc.el
@@ -927,7 +927,7 @@ If no elements match, then the empty string is used.
927 927
928As an example: 928As an example:
929 (setq erc-quit-reason-various-alist 929 (setq erc-quit-reason-various-alist
930 '((\"xmms\" dme:now-playing) 930 \\='((\"xmms\" dme:now-playing)
931 (\"version\" erc-quit-reason-normal) 931 (\"version\" erc-quit-reason-normal)
932 (\"home\" \"Gone home !\") 932 (\"home\" \"Gone home !\")
933 (\"^$\" \"Default Reason\"))) 933 (\"^$\" \"Default Reason\")))
@@ -950,7 +950,7 @@ If no elements match, then the empty string is used.
950 950
951As an example: 951As an example:
952 (setq erc-part-reason-various-alist 952 (setq erc-part-reason-various-alist
953 '((\"xmms\" dme:now-playing) 953 \\='((\"xmms\" dme:now-playing)
954 (\"version\" erc-part-reason-normal) 954 (\"version\" erc-part-reason-normal)
955 (\"home\" \"Gone home !\") 955 (\"home\" \"Gone home !\")
956 (\"^$\" \"Default Reason\"))) 956 (\"^$\" \"Default Reason\")))
diff --git a/lisp/eshell/esh-opt.el b/lisp/eshell/esh-opt.el
index 2e929b05f49..4d28208b234 100644
--- a/lisp/eshell/esh-opt.el
+++ b/lisp/eshell/esh-opt.el
@@ -82,7 +82,7 @@ and `eshell-stringify-list'.
82 82
83For example, OPTIONS might look like: 83For example, OPTIONS might look like:
84 84
85 '((?C nil nil multi-column \"multi-column display\") 85 ((?C nil nil multi-column \"multi-column display\")
86 (nil \"help\" nil nil \"show this usage display\") 86 (nil \"help\" nil nil \"show this usage display\")
87 (?r \"reverse\" nil reverse-list \"reverse order while sorting\") 87 (?r \"reverse\" nil reverse-list \"reverse order while sorting\")
88 :external \"ls\" 88 :external \"ls\"
diff --git a/lisp/filesets.el b/lisp/filesets.el
index 8e2b145d04c..c098879d49d 100644
--- a/lisp/filesets.el
+++ b/lisp/filesets.el
@@ -951,7 +951,7 @@ variable will take effect after rebuilding the menu.
951Caveat: Fileset names have to be unique. 951Caveat: Fileset names have to be unique.
952 952
953Example definition: 953Example definition:
954 '\(\(\"My Wiki\" 954 \\='\(\(\"My Wiki\"
955 \(:ingroup \"~/Etc/My-Wiki/WikiContents\")) 955 \(:ingroup \"~/Etc/My-Wiki/WikiContents\"))
956 \(\"My Homepage\" 956 \(\"My Homepage\"
957 \(:pattern \"~/public_html/\" \"^.+\\\\.html$\") 957 \(:pattern \"~/public_html/\" \"^.+\\\\.html$\")
diff --git a/lisp/font-lock.el b/lisp/font-lock.el
index 5f12c6c129f..b74b60341bd 100644
--- a/lisp/font-lock.el
+++ b/lisp/font-lock.el
@@ -683,9 +683,9 @@ end of the current highlighting list.
683 683
684For example: 684For example:
685 685
686 (font-lock-add-keywords 'c-mode 686 (font-lock-add-keywords \\='c-mode
687 '((\"\\\\\\=<\\\\(FIXME\\\\):\" 1 'font-lock-warning-face prepend) 687 \\='((\"\\\\\\=<\\\\(FIXME\\\\):\" 1 \\='font-lock-warning-face prepend)
688 (\"\\\\\\=<\\\\(and\\\\|or\\\\|not\\\\)\\\\\\=>\" . 'font-lock-keyword-face))) 688 (\"\\\\\\=<\\\\(and\\\\|or\\\\|not\\\\)\\\\\\=>\" . \\='font-lock-keyword-face)))
689 689
690adds two fontification patterns for C mode, to fontify `FIXME:' words, even in 690adds two fontification patterns for C mode, to fontify `FIXME:' words, even in
691comments, and to fontify `and', `or' and `not' words as keywords. 691comments, and to fontify `and', `or' and `not' words as keywords.
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index b4a2f6a1773..01eb6c5cd48 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -330,7 +330,7 @@ to match a mail address in the From: header, BANNER is one of a symbol
330If ADDRESS matches author's mail address, it will remove things like 330If ADDRESS matches author's mail address, it will remove things like
331advertisements. For example: 331advertisements. For example:
332 332
333\((\"@yoo-hoo\\\\.co\\\\.jp\\\\'\" . \"\\n_+\\nDo You Yoo-hoo!\\\\?\\n.*\\n.*\\n\")) 333\((\"@yoo-hoo\\\\.co\\\\.jp\\\\\\='\" . \"\\n_+\\nDo You Yoo-hoo!\\\\?\\n.*\\n.*\\n\"))
334" 334"
335 :type '(repeat 335 :type '(repeat
336 (cons 336 (cons
@@ -886,12 +886,12 @@ Here are examples:
886 886
887;; Specify the altitude of Face images in the From header. 887;; Specify the altitude of Face images in the From header.
888\(setq gnus-face-properties-alist 888\(setq gnus-face-properties-alist
889 '((pbm . (:face gnus-x-face :ascent 80)) 889 \\='((pbm . (:face gnus-x-face :ascent 80))
890 (png . (:ascent 80)))) 890 (png . (:ascent 80))))
891 891
892;; Show Face images as pressed buttons. 892;; Show Face images as pressed buttons.
893\(setq gnus-face-properties-alist 893\(setq gnus-face-properties-alist
894 '((pbm . (:face gnus-x-face :relief -2)) 894 \\='((pbm . (:face gnus-x-face :relief -2))
895 (png . (:relief -2)))) 895 (png . (:relief -2))))
896 896
897See the manual for the valid properties for various image types. 897See the manual for the valid properties for various image types.
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index 447bd5d56f2..6b90204beb6 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -1656,7 +1656,7 @@ while still allowing them to affect operations done in other buffers.
1656For example: 1656For example:
1657 1657
1658\(setq gnus-newsgroup-variables 1658\(setq gnus-newsgroup-variables
1659 '(message-use-followup-to 1659 \\='(message-use-followup-to
1660 (gnus-visible-headers . 1660 (gnus-visible-headers .
1661 \"^From:\\\\|^Newsgroups:\\\\|^Subject:\\\\|^Date:\\\\|^To:\"))) 1661 \"^From:\\\\|^Newsgroups:\\\\|^Subject:\\\\|^Date:\\\\|^To:\")))
1662") 1662")
diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el
index 54cf099e078..215eac88aef 100644
--- a/lisp/gnus/gnus-util.el
+++ b/lisp/gnus/gnus-util.el
@@ -1974,10 +1974,10 @@ to case differences."
1974 (string-equal (downcase str1) (downcase prefix)) 1974 (string-equal (downcase str1) (downcase prefix))
1975 (string-equal str1 prefix)))))) 1975 (string-equal str1 prefix))))))
1976 1976
1977(if (fboundp 'format-message) 1977(defalias 'gnus-format-message
1978 (defalias 'gnus-format-message 'format-message) 1978 (if (fboundp 'format-message) 'format-message
1979 ;; for Emacs < 25, and XEmacs, don't worry about quote translation. 1979 ;; for Emacs < 25, and XEmacs, don't worry about quote translation.
1980 (defalias 'gnus-format-message 'format)) 1980 'format))
1981 1981
1982;; Simple check: can be a macro but this way, although slow, it's really clear. 1982;; Simple check: can be a macro but this way, although slow, it's really clear.
1983;; We don't use `bound-and-true-p' because it's not in XEmacs. 1983;; We don't use `bound-and-true-p' because it's not in XEmacs.
diff --git a/lisp/gnus/nndiary.el b/lisp/gnus/nndiary.el
index 31344382029..a6e75b739dd 100644
--- a/lisp/gnus/nndiary.el
+++ b/lisp/gnus/nndiary.el
@@ -151,15 +151,15 @@ maximum in the reminder is not that painful, I think. Although this
151scheme might appear somewhat weird at a first glance, it is very powerful. 151scheme might appear somewhat weird at a first glance, it is very powerful.
152In order to make this clear, here are some examples: 152In order to make this clear, here are some examples:
153 153
154- '(0 . day): this is the default value of `nndiary-reminders'. It means 154- (0 . day): this is the default value of `nndiary-reminders'. It means
155 pop up the appointments of the day each morning at 00:00. 155 pop up the appointments of the day each morning at 00:00.
156 156
157- '(1 . day): this means pop up the appointments the day before, at 00:00. 157- (1 . day): this means pop up the appointments the day before, at 00:00.
158 158
159- '(6 . hour): for an appointment at 18:30, this would pop up the 159- (6 . hour): for an appointment at 18:30, this would pop up the
160 appointment message at 12:00. 160 appointment message at 12:00.
161 161
162- '(360 . minute): for an appointment at 18:30 and 15 seconds, this would 162- (360 . minute): for an appointment at 18:30 and 15 seconds, this would
163 pop up the appointment message at 12:30." 163 pop up the appointment message at 12:30."
164 :group 'nndiary 164 :group 'nndiary
165 :type '(repeat (cons :format "%v\n" 165 :type '(repeat (cons :format "%v\n"
diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el
index 2292849ccb1..681116017ba 100644
--- a/lisp/gnus/nnmail.el
+++ b/lisp/gnus/nnmail.el
@@ -217,7 +217,7 @@ will try to match against both the From and the To header.
217Example: 217Example:
218 218
219\(setq nnmail-fancy-expiry-targets 219\(setq nnmail-fancy-expiry-targets
220 '((to-from \"boss\" \"nnfolder:Work\") 220 \\='((to-from \"boss\" \"nnfolder:Work\")
221 (\"Subject\" \"IMPORTANT\" \"nnfolder:IMPORTANT.%Y.%b\") 221 (\"Subject\" \"IMPORTANT\" \"nnfolder:IMPORTANT.%Y.%b\")
222 (\"from\" \".*\" \"nnfolder:Archive-%Y\"))) 222 (\"from\" \".*\" \"nnfolder:Archive-%Y\")))
223 223
@@ -465,7 +465,7 @@ GROUP: Mail will be stored in GROUP (a string).
465junk: Mail will be deleted. Use with care! Do not submerge in water! 465junk: Mail will be deleted. Use with care! Do not submerge in water!
466 Example: 466 Example:
467 (setq nnmail-split-fancy 467 (setq nnmail-split-fancy
468 '(| (\"Subject\" \"MAKE MONEY FAST\" junk) 468 \\='(| (\"Subject\" \"MAKE MONEY FAST\" junk)
469 ...other.rules.omitted...)) 469 ...other.rules.omitted...))
470 470
471FIELD must match a complete field name. VALUE must match a complete 471FIELD must match a complete field name. VALUE must match a complete
diff --git a/lisp/iimage.el b/lisp/iimage.el
index 5852c9497d7..08808b1b4c4 100644
--- a/lisp/iimage.el
+++ b/lisp/iimage.el
@@ -71,7 +71,7 @@ NUM specifies which parenthesized expression in the regexp.
71 71
72Examples of image filename patterns to match: 72Examples of image filename patterns to match:
73 file://foo.png 73 file://foo.png
74 `file://foo.png' 74 \\=`file://foo.png\\='
75 \\[\\[foo.gif]] 75 \\[\\[foo.gif]]
76 <foo.png> 76 <foo.png>
77 foo.JPG 77 foo.JPG
diff --git a/lisp/international/ogonek.el b/lisp/international/ogonek.el
index 9e5a4501357..7caa5d4b30c 100644
--- a/lisp/international/ogonek.el
+++ b/lisp/international/ogonek.el
@@ -244,17 +244,17 @@ The functions come in the following groups.
244 (defun deprefixify-iso8859-2-region (start end) 244 (defun deprefixify-iso8859-2-region (start end)
245 (interactive \"*r\") 245 (interactive \"*r\")
246 (ogonek-deprefixify-region start end ?/ \"iso8859-2\")) 246 (ogonek-deprefixify-region start end ?/ \"iso8859-2\"))
247 (global-set-key \"\\C-cd\" 'deprefixify-iso8859-2-region) ; ctrl-c d 247 (global-set-key \"\\C-cd\" \\='deprefixify-iso8859-2-region) ; ctrl-c d
248 248
249 (defun mazovia-to-iso8859-2 (start end) 249 (defun mazovia-to-iso8859-2 (start end)
250 (interactive \"*r\") 250 (interactive \"*r\")
251 (ogonek-recode-region start end \"mazovia\" \"iso8859-2\")) 251 (ogonek-recode-region start end \"mazovia\" \"iso8859-2\"))
252 (global-set-key \"\\C-cr\" 'mazovia-to-iso8859-2) ; ctrl-c r 252 (global-set-key \"\\C-cr\" \\='mazovia-to-iso8859-2) ; ctrl-c r
253 253
254 (defun prefixify-iso8859-2-region (start end) 254 (defun prefixify-iso8859-2-region (start end)
255 (interactive \"*r\") 255 (interactive \"*r\")
256 (ogonek-prefixify-region start end \"iso8859-2\" ?/)) 256 (ogonek-prefixify-region start end \"iso8859-2\" ?/))
257 (global-set-key \"\\C-cp\" 'prefixify-iso8859-2-region) ; ctrl-c p 257 (global-set-key \"\\C-cp\" \\='prefixify-iso8859-2-region) ; ctrl-c p
258 258
259 Each recoding operation can be called off using the `undo' command.") 259 Each recoding operation can be called off using the `undo' command.")
260 260
diff --git a/lisp/kmacro.el b/lisp/kmacro.el
index 9636a36b1e2..ddf3005bab5 100644
--- a/lisp/kmacro.el
+++ b/lisp/kmacro.el
@@ -941,7 +941,6 @@ without repeating the prefix."
941(defvar kmacro-step-edit-inserting) ;; inserting into macro 941(defvar kmacro-step-edit-inserting) ;; inserting into macro
942(defvar kmacro-step-edit-appending) ;; append to end of macro 942(defvar kmacro-step-edit-appending) ;; append to end of macro
943(defvar kmacro-step-edit-replace) ;; replace orig macro when done 943(defvar kmacro-step-edit-replace) ;; replace orig macro when done
944(defvar kmacro-step-edit-prefix-index) ;; index of first prefix arg key
945(defvar kmacro-step-edit-key-index) ;; index of current key 944(defvar kmacro-step-edit-key-index) ;; index of current key
946(defvar kmacro-step-edit-action) ;; automatic action on next pre-command hook 945(defvar kmacro-step-edit-action) ;; automatic action on next pre-command hook
947(defvar kmacro-step-edit-help) ;; kmacro step edit help enabled 946(defvar kmacro-step-edit-help) ;; kmacro step edit help enabled
@@ -976,11 +975,6 @@ This keymap is an extension to the `query-replace-map', allowing the
976following additional answers: `insert', `insert-1', `replace', `replace-1', 975following additional answers: `insert', `insert-1', `replace', `replace-1',
977`append', `append-end', `act-repeat', `skip-end', `skip-keep'.") 976`append', `append-end', `act-repeat', `skip-end', `skip-keep'.")
978 977
979(defvar kmacro-step-edit-prefix-commands
980 '(universal-argument universal-argument-more universal-argument-minus
981 digit-argument negative-argument)
982 "Commands which build up a prefix arg for the current command.")
983
984(defun kmacro-step-edit-prompt (macro index) 978(defun kmacro-step-edit-prompt (macro index)
985 ;; Show step-edit prompt 979 ;; Show step-edit prompt
986 (let ((keys (and (not kmacro-step-edit-appending) 980 (let ((keys (and (not kmacro-step-edit-appending)
@@ -1084,21 +1078,13 @@ following additional answers: `insert', `insert-1', `replace', `replace-1',
1084 ;; Handle prefix arg, or query user 1078 ;; Handle prefix arg, or query user
1085 (cond 1079 (cond
1086 (act act) ;; set above 1080 (act act) ;; set above
1087 ((memq this-command kmacro-step-edit-prefix-commands)
1088 (unless kmacro-step-edit-prefix-index
1089 (setq kmacro-step-edit-prefix-index kmacro-step-edit-key-index))
1090 (setq act 'universal-argument))
1091 ((eq this-command 'universal-argument-other-key)
1092 (setq act 'universal-argument))
1093 (t 1081 (t
1094 (kmacro-step-edit-prompt macro (or kmacro-step-edit-prefix-index kmacro-step-edit-key-index)) 1082 (kmacro-step-edit-prompt macro kmacro-step-edit-key-index)
1095 (setq act (lookup-key kmacro-step-edit-map 1083 (setq act (lookup-key kmacro-step-edit-map
1096 (vector (with-current-buffer (current-buffer) (read-event)))))))) 1084 (vector (with-current-buffer (current-buffer) (read-event))))))))
1097 1085
1098 ;; Resume macro execution and perform the action 1086 ;; Resume macro execution and perform the action
1099 (cond 1087 (cond
1100 ((eq act 'universal-argument)
1101 nil)
1102 ((cond 1088 ((cond
1103 ((eq act 'act) 1089 ((eq act 'act)
1104 t) 1090 t)
@@ -1110,7 +1096,6 @@ following additional answers: `insert', `insert-1', `replace', `replace-1',
1110 (setq kmacro-step-edit-active 'ignore) 1096 (setq kmacro-step-edit-active 'ignore)
1111 nil) 1097 nil)
1112 ((eq act 'skip) 1098 ((eq act 'skip)
1113 (setq kmacro-step-edit-prefix-index nil)
1114 nil) 1099 nil)
1115 ((eq act 'skip-keep) 1100 ((eq act 'skip-keep)
1116 (setq this-command 'ignore) 1101 (setq this-command 'ignore)
@@ -1123,12 +1108,11 @@ following additional answers: `insert', `insert-1', `replace', `replace-1',
1123 (setq act t) 1108 (setq act t)
1124 t) 1109 t)
1125 ((member act '(insert-1 insert)) 1110 ((member act '(insert-1 insert))
1126 (setq executing-kbd-macro-index (or kmacro-step-edit-prefix-index kmacro-step-edit-key-index)) 1111 (setq executing-kbd-macro-index kmacro-step-edit-key-index)
1127 (setq kmacro-step-edit-inserting (if (eq act 'insert-1) 1 t)) 1112 (setq kmacro-step-edit-inserting (if (eq act 'insert-1) 1 t))
1128 nil) 1113 nil)
1129 ((member act '(replace-1 replace)) 1114 ((member act '(replace-1 replace))
1130 (setq kmacro-step-edit-inserting (if (eq act 'replace-1) 1 t)) 1115 (setq kmacro-step-edit-inserting (if (eq act 'replace-1) 1 t))
1131 (setq kmacro-step-edit-prefix-index nil)
1132 (if (= executing-kbd-macro-index (length executing-kbd-macro)) 1116 (if (= executing-kbd-macro-index (length executing-kbd-macro))
1133 (setq executing-kbd-macro (vconcat executing-kbd-macro [nil]) 1117 (setq executing-kbd-macro (vconcat executing-kbd-macro [nil])
1134 kmacro-step-edit-appending t)) 1118 kmacro-step-edit-appending t))
@@ -1148,19 +1132,19 @@ following additional answers: `insert', `insert-1', `replace', `replace-1',
1148 (setq act t) 1132 (setq act t)
1149 t) 1133 t)
1150 ((eq act 'help) 1134 ((eq act 'help)
1151 (setq executing-kbd-macro-index (or kmacro-step-edit-prefix-index kmacro-step-edit-key-index)) 1135 (setq executing-kbd-macro-index kmacro-step-edit-key-index)
1152 (setq kmacro-step-edit-help (not kmacro-step-edit-help)) 1136 (setq kmacro-step-edit-help (not kmacro-step-edit-help))
1153 nil) 1137 nil)
1154 (t ;; Ignore unknown responses 1138 (t ;; Ignore unknown responses
1155 (setq executing-kbd-macro-index (or kmacro-step-edit-prefix-index kmacro-step-edit-key-index)) 1139 (setq executing-kbd-macro-index kmacro-step-edit-key-index)
1156 nil)) 1140 nil))
1157 (if (> executing-kbd-macro-index (or kmacro-step-edit-prefix-index kmacro-step-edit-key-index)) 1141 (if (> executing-kbd-macro-index kmacro-step-edit-key-index)
1158 (setq kmacro-step-edit-new-macro 1142 (setq kmacro-step-edit-new-macro
1159 (vconcat kmacro-step-edit-new-macro 1143 (vconcat kmacro-step-edit-new-macro
1160 (substring executing-kbd-macro 1144 (substring executing-kbd-macro
1161 (or kmacro-step-edit-prefix-index kmacro-step-edit-key-index) 1145 kmacro-step-edit-key-index
1162 (if (eq act t) nil executing-kbd-macro-index))) 1146 (if (eq act t) nil
1163 kmacro-step-edit-prefix-index nil)) 1147 executing-kbd-macro-index)))))
1164 (if restore-index 1148 (if restore-index
1165 (setq executing-kbd-macro-index restore-index))) 1149 (setq executing-kbd-macro-index restore-index)))
1166 (t 1150 (t
@@ -1175,12 +1159,10 @@ following additional answers: `insert', `insert-1', `replace', `replace-1',
1175 (executing-kbd-macro nil) 1159 (executing-kbd-macro nil)
1176 (defining-kbd-macro nil) 1160 (defining-kbd-macro nil)
1177 cmd keys next-index) 1161 cmd keys next-index)
1178 (setq executing-kbd-macro-index (or kmacro-step-edit-prefix-index kmacro-step-edit-key-index) 1162 (setq executing-kbd-macro-index kmacro-step-edit-key-index)
1179 kmacro-step-edit-prefix-index nil)
1180 (kmacro-step-edit-prompt macro nil) 1163 (kmacro-step-edit-prompt macro nil)
1181 ;; Now, we have read a key sequence from the macro, but we don't want 1164 ;; Now, we have read a key sequence from the macro, but we don't want
1182 ;; to execute it yet. So push it back and read another sequence. 1165 ;; to execute it yet. So push it back and read another sequence.
1183 (reset-this-command-lengths)
1184 (setq keys (read-key-sequence nil nil nil nil t)) 1166 (setq keys (read-key-sequence nil nil nil nil t))
1185 (setq cmd (key-binding keys t nil)) 1167 (setq cmd (key-binding keys t nil))
1186 (if (cond 1168 (if (cond
@@ -1201,25 +1183,12 @@ following additional answers: `insert', `insert-1', `replace', `replace-1',
1201 unread-command-events nil))) 1183 unread-command-events nil)))
1202 (setq cmd 'ignore) 1184 (setq cmd 'ignore)
1203 nil) 1185 nil)
1204 ((memq cmd kmacro-step-edit-prefix-commands)
1205 (reset-this-command-lengths)
1206 nil)
1207 ((eq cmd 'universal-argument-other-key)
1208 (setq kmacro-step-edit-action t)
1209 (reset-this-command-lengths)
1210 (if (numberp kmacro-step-edit-inserting)
1211 (setq kmacro-step-edit-inserting nil))
1212 nil)
1213 ((numberp kmacro-step-edit-inserting) 1186 ((numberp kmacro-step-edit-inserting)
1214 (setq kmacro-step-edit-inserting nil) 1187 (setq kmacro-step-edit-inserting nil)
1215 nil) 1188 nil)
1216 ((equal keys "\C-j") 1189 ((equal keys "\C-j")
1217 (setq kmacro-step-edit-inserting nil) 1190 (setq kmacro-step-edit-inserting nil)
1218 (setq kmacro-step-edit-action nil) 1191 (setq kmacro-step-edit-action nil)
1219 ;; Forget any (partial) prefix arg from next command
1220 (setq kmacro-step-edit-prefix-index nil)
1221 (reset-this-command-lengths)
1222 (setq overriding-terminal-local-map nil)
1223 (setq next-index kmacro-step-edit-key-index) 1192 (setq next-index kmacro-step-edit-key-index)
1224 t) 1193 t)
1225 (t nil)) 1194 (t nil))
@@ -1278,7 +1247,6 @@ To customize possible responses, change the \"bindings\" in `kmacro-step-edit-ma
1278 (kmacro-step-edit-inserting nil) 1247 (kmacro-step-edit-inserting nil)
1279 (kmacro-step-edit-appending nil) 1248 (kmacro-step-edit-appending nil)
1280 (kmacro-step-edit-replace t) 1249 (kmacro-step-edit-replace t)
1281 (kmacro-step-edit-prefix-index nil)
1282 (kmacro-step-edit-key-index 0) 1250 (kmacro-step-edit-key-index 0)
1283 (kmacro-step-edit-action nil) 1251 (kmacro-step-edit-action nil)
1284 (kmacro-step-edit-help nil) 1252 (kmacro-step-edit-help nil)
diff --git a/lisp/msb.el b/lisp/msb.el
index 03b29202efe..b717dcc8cd9 100644
--- a/lisp/msb.el
+++ b/lisp/msb.el
@@ -777,7 +777,7 @@ SORT-PREDICATE.
777 777
778Example: 778Example:
779\(msb--aggregate-alist 779\(msb--aggregate-alist
780 '((a . a1) (a . a2) (b . b1) (c . c3) (a . a4) (a . a3) (b . b3) (b . b2)) 780 \\='((a . a1) (a . a2) (b . b1) (c . c3) (a . a4) (a . a3) (b . b3) (b . b2))
781 (function string=) 781 (function string=)
782 (lambda (item1 item2) 782 (lambda (item1 item2)
783 (string< (symbol-name item1) (symbol-name item2)))) 783 (string< (symbol-name item1) (symbol-name item2))))
diff --git a/lisp/net/dbus.el b/lisp/net/dbus.el
index 8f7754137cb..a7efaf81dbc 100644
--- a/lisp/net/dbus.el
+++ b/lisp/net/dbus.el
@@ -377,7 +377,7 @@ Example:
377 377
378\(dbus-call-method-asynchronously 378\(dbus-call-method-asynchronously
379 :system \"org.freedesktop.Hal\" \"/org/freedesktop/Hal/devices/computer\" 379 :system \"org.freedesktop.Hal\" \"/org/freedesktop/Hal/devices/computer\"
380 \"org.freedesktop.Hal.Device\" \"GetPropertyString\" 'message 380 \"org.freedesktop.Hal.Device\" \"GetPropertyString\" \\='message
381 \"system.kernel.machine\") 381 \"system.kernel.machine\")
382 382
383 => \(:serial :system 2) 383 => \(:serial :system 2)
@@ -654,7 +654,7 @@ Example:
654 654
655\(dbus-register-signal 655\(dbus-register-signal
656 :system \"org.freedesktop.Hal\" \"/org/freedesktop/Hal/Manager\" 656 :system \"org.freedesktop.Hal\" \"/org/freedesktop/Hal/Manager\"
657 \"org.freedesktop.Hal.Manager\" \"DeviceAdded\" 'my-signal-handler) 657 \"org.freedesktop.Hal.Manager\" \"DeviceAdded\" \\='my-signal-handler)
658 658
659 => \(\(:signal :system \"org.freedesktop.Hal.Manager\" \"DeviceAdded\") 659 => \(\(:signal :system \"org.freedesktop.Hal.Manager\" \"DeviceAdded\")
660 \(\"org.freedesktop.Hal\" \"/org/freedesktop/Hal/Manager\" my-signal-handler)) 660 \(\"org.freedesktop.Hal\" \"/org/freedesktop/Hal/Manager\" my-signal-handler))
diff --git a/lisp/net/tls.el b/lisp/net/tls.el
index 46891be38e6..544aec5cfda 100644
--- a/lisp/net/tls.el
+++ b/lisp/net/tls.el
@@ -174,11 +174,10 @@ Used by `tls-certificate-information'."
174 :type 'string 174 :type 'string
175 :group 'tls) 175 :group 'tls)
176 176
177(eval-and-compile 177(defalias 'tls-format-message
178 (if (fboundp 'format-message) 178 (if (fboundp 'format-message) 'format-message
179 (defalias 'tls-format-message 'format-message)
180 ;; for Emacs < 25, and XEmacs, don't worry about quote translation. 179 ;; for Emacs < 25, and XEmacs, don't worry about quote translation.
181 (defalias 'tls-format-message 'format))) 180 'format))
182 181
183(defun tls-certificate-information (der) 182(defun tls-certificate-information (der)
184 "Parse X.509 certificate in DER format into an assoc list." 183 "Parse X.509 certificate in DER format into an assoc list."
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 8cae8dc92b9..79b024e8310 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -288,7 +288,10 @@ The string is used in `tramp-methods'.")
288(add-to-list 'tramp-methods 288(add-to-list 'tramp-methods
289 '("sudo" 289 '("sudo"
290 (tramp-login-program "sudo") 290 (tramp-login-program "sudo")
291 (tramp-login-args (("-u" "%u") ("-s") ("-H") ("-p" "Password:"))) 291 ;; The password template must be masked. Otherwise, it could be
292 ;; interpreted as password prompt if the remote host echoes the command.
293 (tramp-login-args (("-u" "%u") ("-s") ("-H")
294 ("-p" "P\"\"a\"\"s\"\"s\"\"w\"\"o\"\"r\"\"d\"\":")))
292 ;; Local $SHELL could be a nasty one, like zsh or fish. Let's override it. 295 ;; Local $SHELL could be a nasty one, like zsh or fish. Let's override it.
293 (tramp-login-env (("SHELL") ("/bin/sh"))) 296 (tramp-login-env (("SHELL") ("/bin/sh")))
294 (tramp-remote-shell "/bin/sh") 297 (tramp-remote-shell "/bin/sh")
@@ -4316,6 +4319,7 @@ with the encoded or decoded results, respectively.")
4316 ;; However, I don't know whether all base64 versions do supports 4319 ;; However, I don't know whether all base64 versions do supports
4317 ;; this option. 4320 ;; this option.
4318 (b64 "base64" "base64 -d") 4321 (b64 "base64" "base64 -d")
4322 (b64 "openssl enc -base64" "openssl enc -d -base64")
4319 (b64 "mimencode -b" "mimencode -u -b") 4323 (b64 "mimencode -b" "mimencode -u -b")
4320 (b64 "mmencode -b" "mmencode -u -b") 4324 (b64 "mmencode -b" "mmencode -u -b")
4321 (b64 "recode data..base64" "recode base64..data") 4325 (b64 "recode data..base64" "recode base64..data")
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index bf3e1c740de..6cec3c55bc9 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -1750,7 +1750,7 @@ Example:
1750 1750
1751 (tramp-set-completion-function 1751 (tramp-set-completion-function
1752 \"ssh\" 1752 \"ssh\"
1753 '((tramp-parse-sconfig \"/etc/ssh_config\") 1753 \\='((tramp-parse-sconfig \"/etc/ssh_config\")
1754 (tramp-parse-sconfig \"~/.ssh/config\")))" 1754 (tramp-parse-sconfig \"~/.ssh/config\")))"
1755 1755
1756 (let ((r function-list) 1756 (let ((r function-list)
@@ -4258,6 +4258,16 @@ Invokes `password-read' if available, `read-passwd' else."
4258;;;###tramp-autoload 4258;;;###tramp-autoload
4259(defun tramp-clear-passwd (vec) 4259(defun tramp-clear-passwd (vec)
4260 "Clear password cache for connection related to VEC." 4260 "Clear password cache for connection related to VEC."
4261 (let ((hop (tramp-file-name-hop vec)))
4262 (when hop
4263 ;; Clear also the passwords of the hops.
4264 (tramp-clear-passwd
4265 (tramp-dissect-file-name
4266 (concat
4267 tramp-prefix-format
4268 (tramp-compat-replace-regexp-in-string
4269 (concat tramp-postfix-hop-regexp "$")
4270 tramp-postfix-host-format hop))))))
4261 (tramp-compat-funcall 4271 (tramp-compat-funcall
4262 'password-cache-remove 4272 'password-cache-remove
4263 (tramp-make-tramp-file-name 4273 (tramp-make-tramp-file-name
diff --git a/lisp/obsolete/sregex.el b/lisp/obsolete/sregex.el
index 0a15f50be28..de0b1d913ba 100644
--- a/lisp/obsolete/sregex.el
+++ b/lisp/obsolete/sregex.el
@@ -262,15 +262,15 @@
262This is exactly like `sregexq' (q.v.) except that it evaluates all its 262This is exactly like `sregexq' (q.v.) except that it evaluates all its
263arguments, so literal sregex clauses must be quoted. For example: 263arguments, so literal sregex clauses must be quoted. For example:
264 264
265 (sregex '(or \"Bob\" \"Robert\")) => \"Bob\\\\|Robert\" 265 (sregex \\='(or \"Bob\" \"Robert\")) => \"Bob\\\\|Robert\"
266 266
267An argument-evaluating sregex interpreter lets you reuse sregex 267An argument-evaluating sregex interpreter lets you reuse sregex
268subexpressions: 268subexpressions:
269 269
270 (let ((dotstar '(0+ any)) 270 (let ((dotstar \\='(0+ any))
271 (whitespace '(1+ (syntax ?-))) 271 (whitespace \\='(1+ (syntax ?-)))
272 (digits '(1+ (char (?0 . ?9))))) 272 (digits \\='(1+ (char (?0 . ?9)))))
273 (sregex 'bol dotstar \":\" whitespace digits)) => \"^.*:\\\\s-+[0-9]+\"" 273 (sregex \\='bol dotstar \":\" whitespace digits)) => \"^.*:\\\\s-+[0-9]+\""
274 (sregex--sequence exps nil)) 274 (sregex--sequence exps nil))
275 275
276(defmacro sregexq (&rest exps) 276(defmacro sregexq (&rest exps)
diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el
index a3c8b84bfca..3a87f6bedbd 100644
--- a/lisp/org/org-agenda.el
+++ b/lisp/org/org-agenda.el
@@ -1990,8 +1990,8 @@ the lower-case version of all tags."
1990 "Alist of characters and custom functions for bulk actions. 1990 "Alist of characters and custom functions for bulk actions.
1991For example, this value makes those two functions available: 1991For example, this value makes those two functions available:
1992 1992
1993 '((?R set-category) 1993 ((?R set-category)
1994 (?C bulk-cut)) 1994 (?C bulk-cut))
1995 1995
1996With selected entries in an agenda buffer, `B R' will call 1996With selected entries in an agenda buffer, `B R' will call
1997the custom function `set-category' on the selected entries. 1997the custom function `set-category' on the selected entries.
@@ -4937,13 +4937,13 @@ the `regexp' or `notregexp' element.
4937`todo' and `nottodo' accept as an argument a list of todo 4937`todo' and `nottodo' accept as an argument a list of todo
4938keywords, which may include \"*\" to match any todo keyword. 4938keywords, which may include \"*\" to match any todo keyword.
4939 4939
4940 (org-agenda-skip-entry-if 'todo '(\"TODO\" \"WAITING\")) 4940 (org-agenda-skip-entry-if \\='todo \\='(\"TODO\" \"WAITING\"))
4941 4941
4942would skip all entries with \"TODO\" or \"WAITING\" keywords. 4942would skip all entries with \"TODO\" or \"WAITING\" keywords.
4943 4943
4944Instead of a list, a keyword class may be given. For example: 4944Instead of a list, a keyword class may be given. For example:
4945 4945
4946 (org-agenda-skip-entry-if 'nottodo 'done) 4946 (org-agenda-skip-entry-if \\='nottodo \\='done)
4947 4947
4948would skip entries that haven't been marked with any of \"DONE\" 4948would skip entries that haven't been marked with any of \"DONE\"
4949keywords. Possible classes are: `todo', `done', `any'. 4949keywords. Possible classes are: `todo', `done', `any'.
@@ -10005,10 +10005,10 @@ calling the function returns nil. This function takes one
10005argument: an entry from `org-agenda-get-day-entries'. 10005argument: an entry from `org-agenda-get-day-entries'.
10006 10006
10007FILTER can also be an alist with the car of each cell being 10007FILTER can also be an alist with the car of each cell being
10008either 'headline or 'category. For example: 10008either `headline' or `category'. For example:
10009 10009
10010 '((headline \"IMPORTANT\") 10010 ((headline \"IMPORTANT\")
10011 (category \"Work\")) 10011 (category \"Work\"))
10012 10012
10013will only add headlines containing IMPORTANT or headlines 10013will only add headlines containing IMPORTANT or headlines
10014belonging to the \"Work\" category. 10014belonging to the \"Work\" category.
diff --git a/lisp/org/org-protocol.el b/lisp/org/org-protocol.el
index 4d9e79f54ea..ae0f4946832 100644
--- a/lisp/org/org-protocol.el
+++ b/lisp/org/org-protocol.el
@@ -197,7 +197,7 @@ Possible properties are:
197Example: 197Example:
198 198
199 (setq org-protocol-project-alist 199 (setq org-protocol-project-alist
200 '((\"http://orgmode.org/worg/\" 200 \\='((\"http://orgmode.org/worg/\"
201 :online-suffix \".php\" 201 :online-suffix \".php\"
202 :working-suffix \".org\" 202 :working-suffix \".org\"
203 :base-url \"http://orgmode.org/worg/\" 203 :base-url \"http://orgmode.org/worg/\"
@@ -251,7 +251,7 @@ kill-client - If t, kill the client immediately, once the sub-protocol is
251Here is an example: 251Here is an example:
252 252
253 (setq org-protocol-protocol-alist 253 (setq org-protocol-protocol-alist
254 '((\"my-protocol\" 254 \\='((\"my-protocol\"
255 :protocol \"my-protocol\" 255 :protocol \"my-protocol\"
256 :function my-protocol-handler-function) 256 :function my-protocol-handler-function)
257 (\"your-protocol\" 257 (\"your-protocol\"
diff --git a/lisp/org/ox-html.el b/lisp/org/ox-html.el
index 144b58b9bc8..fc4f574a4c4 100644
--- a/lisp/org/ox-html.el
+++ b/lisp/org/ox-html.el
@@ -833,7 +833,7 @@ you can reuse them:
833For example: 833For example:
834 834
835\(setq org-html-table-row-tags 835\(setq org-html-table-row-tags
836 (cons '(cond (top-row-p \"<tr class=\\\"tr-top\\\">\") 836 (cons \\='(cond (top-row-p \"<tr class=\\\"tr-top\\\">\")
837 (bottom-row-p \"<tr class=\\\"tr-bottom\\\">\") 837 (bottom-row-p \"<tr class=\\\"tr-bottom\\\">\")
838 (t (if (= (mod row-number 2) 1) 838 (t (if (= (mod row-number 2) 1)
839 \"<tr class=\\\"tr-odd\\\">\" 839 \"<tr class=\\\"tr-odd\\\">\"
diff --git a/lisp/outline.el b/lisp/outline.el
index d9142c5a604..816cd9ae7c9 100644
--- a/lisp/outline.el
+++ b/lisp/outline.el
@@ -338,7 +338,7 @@ numbered and unnumbered sections), list them set by set and sorted by level
338within each set. For example in texinfo mode: 338within each set. For example in texinfo mode:
339 339
340 (setq outline-heading-alist 340 (setq outline-heading-alist
341 '((\"@chapter\" . 2) (\"@section\" . 3) (\"@subsection\" . 4) 341 \\='((\"@chapter\" . 2) (\"@section\" . 3) (\"@subsection\" . 4)
342 (\"@subsubsection\" . 5) 342 (\"@subsubsection\" . 5)
343 (\"@unnumbered\" . 2) (\"@unnumberedsec\" . 3) 343 (\"@unnumbered\" . 2) (\"@unnumberedsec\" . 3)
344 (\"@unnumberedsubsec\" . 4) (\"@unnumberedsubsubsec\" . 5) 344 (\"@unnumberedsubsec\" . 4) (\"@unnumberedsubsubsec\" . 5)
diff --git a/lisp/printing.el b/lisp/printing.el
index 8ad56f413e2..ae0f3fdbc67 100644
--- a/lisp/printing.el
+++ b/lisp/printing.el
@@ -1746,14 +1746,14 @@ Examples:
1746 1746
1747* On GNU or Unix system: 1747* On GNU or Unix system:
1748 1748
1749 '((unix \".\" \"~/bin\" ghostview mpage PATH) 1749 ((unix \".\" \"~/bin\" ghostview mpage PATH)
1750 (ghostview \"$HOME/bin/gsview-dir\") 1750 (ghostview \"$HOME/bin/gsview-dir\")
1751 (mpage \"$HOME/bin/mpage-dir\") 1751 (mpage \"$HOME/bin/mpage-dir\")
1752 ) 1752 )
1753 1753
1754* On Windows system: 1754* On Windows system:
1755 1755
1756 '((windows \"c:/applications/executables\" PATH ghostview mpage) 1756 ((windows \"c:/applications/executables\" PATH ghostview mpage)
1757 (ghostview \"c:/gs/gsview-dir\") 1757 (ghostview \"c:/gs/gsview-dir\")
1758 (mpage \"c:/mpage-dir\") 1758 (mpage \"c:/mpage-dir\")
1759 )" 1759 )"
@@ -1810,8 +1810,8 @@ Where:
1810SYMBOL It's a symbol to identify a text printer. It's for 1810SYMBOL It's a symbol to identify a text printer. It's for
1811 setting option `pr-txt-name' and for menu selection. 1811 setting option `pr-txt-name' and for menu selection.
1812 Examples: 1812 Examples:
1813 'prt_06a 1813 prt_06a
1814 'my_printer 1814 my_printer
1815 1815
1816COMMAND Name of the program for printing a text file. On MS-DOS and 1816COMMAND Name of the program for printing a text file. On MS-DOS and
1817 MS-Windows systems, if the value is an empty string, then Emacs 1817 MS-Windows systems, if the value is an empty string, then Emacs
@@ -1838,7 +1838,7 @@ SWITCHES List of sexp's to pass as extra options for text printer
1838 instead of including an explicit switch on this list. 1838 instead of including an explicit switch on this list.
1839 Example: 1839 Example:
1840 . for lpr 1840 . for lpr
1841 '(\"-#3\" \"-l\") 1841 (\"-#3\" \"-l\")
1842 nil 1842 nil
1843 1843
1844NAME A string that specifies a text printer name. 1844NAME A string that specifies a text printer name.
@@ -1869,13 +1869,13 @@ Examples:
1869 1869
1870* On GNU or Unix system: 1870* On GNU or Unix system:
1871 1871
1872 '((prt_06a \"lpr\" nil \"prt_06a\") 1872 ((prt_06a \"lpr\" nil \"prt_06a\")
1873 (prt_07c nil nil \"prt_07c\") 1873 (prt_07c nil nil \"prt_07c\")
1874 ) 1874 )
1875 1875
1876* On Windows system: 1876* On Windows system:
1877 1877
1878 '((prt_06a \"print\" nil \"/D:\\\\\\\\printers\\\\prt_06a\") 1878 ((prt_06a \"print\" nil \"/D:\\\\\\\\printers\\\\prt_06a\")
1879 (prt_07c nil nil \"/D:\\\\\\\\printers\\\\prt_07c\") 1879 (prt_07c nil nil \"/D:\\\\\\\\printers\\\\prt_07c\")
1880 (PRN \"\" nil \"PRN\") 1880 (PRN \"\" nil \"PRN\")
1881 (standard \"redpr.exe\" nil \"\") 1881 (standard \"redpr.exe\" nil \"\")
@@ -1961,8 +1961,8 @@ Where:
1961SYMBOL It's a symbol to identify a PostScript printer. It's for 1961SYMBOL It's a symbol to identify a PostScript printer. It's for
1962 setting option `pr-ps-name' and for menu selection. 1962 setting option `pr-ps-name' and for menu selection.
1963 Examples: 1963 Examples:
1964 'prt_06a 1964 prt_06a
1965 'my_printer 1965 my_printer
1966 1966
1967COMMAND Name of the program for printing a PostScript file. On MS-DOS 1967COMMAND Name of the program for printing a PostScript file. On MS-DOS
1968 and MS-Windows systems, if the value is an empty string then 1968 and MS-Windows systems, if the value is an empty string then
@@ -1991,11 +1991,11 @@ SWITCHES List of sexp's to pass as extra options for PostScript printer
1991 instead of including an explicit switch on this list. 1991 instead of including an explicit switch on this list.
1992 Example: 1992 Example:
1993 . for lpr 1993 . for lpr
1994 '(\"-#3\" \"-l\") 1994 (\"-#3\" \"-l\")
1995 nil 1995 nil
1996 1996
1997 . for gsprint.exe 1997 . for gsprint.exe
1998 '(\"-all\" \"-twoup\") 1998 (\"-all\" \"-twoup\")
1999 1999
2000PRINTER-SWITCH A string that specifies PostScript printer name switch. If 2000PRINTER-SWITCH A string that specifies PostScript printer name switch. If
2001 it's necessary to have a space between PRINTER-SWITCH and NAME, 2001 it's necessary to have a space between PRINTER-SWITCH and NAME,
@@ -2057,9 +2057,9 @@ DEFAULT It's a way to set default values when this entry is selected.
2057 which the current setting inherits the context. Take care with 2057 which the current setting inherits the context. Take care with
2058 circular inheritance. 2058 circular inheritance.
2059 Examples: 2059 Examples:
2060 '(ps-landscape-mode . nil) 2060 (ps-landscape-mode . nil)
2061 '(ps-spool-duplex . t) 2061 (ps-spool-duplex . t)
2062 '(pr-gs-device . (my-gs-device t)) 2062 (pr-gs-device . (my-gs-device t))
2063 2063
2064This variable should be modified by customization engine. If this variable is 2064This variable should be modified by customization engine. If this variable is
2065modified by other means (for example, a lisp function), use `pr-update-menus' 2065modified by other means (for example, a lisp function), use `pr-update-menus'
@@ -2069,14 +2069,14 @@ Examples:
2069 2069
2070* On GNU or Unix system: 2070* On GNU or Unix system:
2071 2071
2072 '((lps_06b \"lpr\" nil \"-P\" \"lps_06b\") 2072 ((lps_06b \"lpr\" nil \"-P\" \"lps_06b\")
2073 (lps_07c \"lpr\" nil nil \"lps_07c\") 2073 (lps_07c \"lpr\" nil nil \"lps_07c\")
2074 (lps_08c nil nil nil \"lps_08c\") 2074 (lps_08c nil nil nil \"lps_08c\")
2075 ) 2075 )
2076 2076
2077* On Windows system: 2077* On Windows system:
2078 2078
2079 '((lps_06a \"print\" nil \"/D:\" \"\\\\\\\\printers\\\\lps_06a\") 2079 ((lps_06a \"print\" nil \"/D:\" \"\\\\\\\\printers\\\\lps_06a\")
2080 (lps_06b \"print\" nil nil \"\\\\\\\\printers\\\\lps_06b\") 2080 (lps_06b \"print\" nil nil \"\\\\\\\\printers\\\\lps_06b\")
2081 (lps_07c \"print\" nil \"\" \"/D:\\\\\\\\printers\\\\lps_07c\") 2081 (lps_07c \"print\" nil \"\" \"/D:\\\\\\\\printers\\\\lps_07c\")
2082 (lps_08c nil nil nil \"\\\\\\\\printers\\\\lps_08c\") 2082 (lps_08c nil nil nil \"\\\\\\\\printers\\\\lps_08c\")
@@ -2102,7 +2102,7 @@ Also the gsprint utility comes together with gsview distribution.
2102As an example of gsprint declaration: 2102As an example of gsprint declaration:
2103 2103
2104 (setq pr-ps-printer-alist 2104 (setq pr-ps-printer-alist
2105 '((A \"gsprint\" (\"-all\" \"-twoup\") \"-printer \" \"lps_015\") 2105 \\='((A \"gsprint\" (\"-all\" \"-twoup\") \"-printer \" \"lps_015\")
2106 (B \"gsprint\" (\"-all\" \"-twoup\") nil \"-printer lps_015\") 2106 (B \"gsprint\" (\"-all\" \"-twoup\") nil \"-printer lps_015\")
2107 ;; some other printer declaration 2107 ;; some other printer declaration
2108 )) 2108 ))
@@ -2594,9 +2594,9 @@ DEFAULT It's a way to set default values when this entry is selected.
2594 which the current setting inherits the context. Take care with 2594 which the current setting inherits the context. Take care with
2595 circular inheritance. 2595 circular inheritance.
2596 Examples: 2596 Examples:
2597 '(ps-landscape-mode . nil) 2597 (ps-landscape-mode . nil)
2598 '(ps-spool-duplex . t) 2598 (ps-spool-duplex . t)
2599 '(pr-gs-device . (my-gs-device t))" 2599 (pr-gs-device . (my-gs-device t))"
2600 :type '(repeat 2600 :type '(repeat
2601 (list 2601 (list
2602 :tag "" 2602 :tag ""
@@ -2690,8 +2690,8 @@ Where:
2690SYMBOL It's a symbol to identify a PostScript utility. It's for 2690SYMBOL It's a symbol to identify a PostScript utility. It's for
2691 `pr-ps-utility' variable setting and for menu selection. 2691 `pr-ps-utility' variable setting and for menu selection.
2692 Examples: 2692 Examples:
2693 'mpage 2693 mpage
2694 'psnup 2694 psnup
2695 2695
2696UTILITY Name of utility for processing a PostScript file. 2696UTILITY Name of utility for processing a PostScript file.
2697 See also `pr-path-alist'. 2697 See also `pr-path-alist'.
@@ -2708,7 +2708,7 @@ MUST-SWITCHES List of sexp's to pass as options to the PostScript utility
2708 program and must be placed before any other switches. 2708 program and must be placed before any other switches.
2709 Example: 2709 Example:
2710 . for psnup: 2710 . for psnup:
2711 '(\"-q\") 2711 (\"-q\")
2712 2712
2713PAPERSIZE It's a format string to specify paper size switch. 2713PAPERSIZE It's a format string to specify paper size switch.
2714 Example: 2714 Example:
@@ -2752,7 +2752,7 @@ SWITCHES List of sexp's to pass as extra options to the PostScript utility
2752 program. 2752 program.
2753 Example: 2753 Example:
2754 . for psnup 2754 . for psnup
2755 '(\"-q\") 2755 (\"-q\")
2756 nil 2756 nil
2757 2757
2758DEFAULT It's a way to set default values when this entry is selected. 2758DEFAULT It's a way to set default values when this entry is selected.
@@ -2772,9 +2772,9 @@ DEFAULT It's a way to set default values when this entry is selected.
2772 which the current setting inherits the context. Take care with 2772 which the current setting inherits the context. Take care with
2773 circular inheritance. 2773 circular inheritance.
2774 Examples: 2774 Examples:
2775 '(pr-file-landscape . nil) 2775 (pr-file-landscape . nil)
2776 '(pr-file-duplex . t) 2776 (pr-file-duplex . t)
2777 '(pr-gs-device . (my-gs-device t)) 2777 (pr-gs-device . (my-gs-device t))
2778 2778
2779This variable should be modified by customization engine. If this variable is 2779This variable should be modified by customization engine. If this variable is
2780modified by other means (for example, a lisp function), use `pr-update-menus' 2780modified by other means (for example, a lisp function), use `pr-update-menus'
@@ -2787,14 +2787,14 @@ Examples:
2787 2787
2788* On GNU or Unix system: 2788* On GNU or Unix system:
2789 2789
2790 '((mpage \"mpage\" nil \"-b%s\" \"-%d\" \"-l\" \"-t\" \"-T\" \">\" nil) 2790 ((mpage \"mpage\" nil \"-b%s\" \"-%d\" \"-l\" \"-t\" \"-T\" \">\" nil)
2791 (psnup \"psnup\" (\"-q\") \"-P%s\" \"-%d\" \"-l\" nil nil \" \" nil 2791 (psnup \"psnup\" (\"-q\") \"-P%s\" \"-%d\" \"-l\" nil nil \" \" nil
2792 (pr-file-duplex . nil) (pr-file-tumble . nil)) 2792 (pr-file-duplex . nil) (pr-file-tumble . nil))
2793 ) 2793 )
2794 2794
2795* On Windows system: 2795* On Windows system:
2796 2796
2797 '((psnup \"c:/psutils/psnup\" (\"-q\") \"-P%s\" \"-%d\" \"-l\" nil nil \" \" 2797 ((psnup \"c:/psutils/psnup\" (\"-q\") \"-P%s\" \"-%d\" \"-l\" nil nil \" \"
2798 nil (pr-file-duplex . nil) (pr-file-tumble . nil)) 2798 nil (pr-file-duplex . nil) (pr-file-tumble . nil))
2799 ) 2799 )
2800 2800
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
index 611ba84e25b..d38a7cd7706 100644
--- a/lisp/progmodes/etags.el
+++ b/lisp/progmodes/etags.el
@@ -171,7 +171,7 @@ is the symbol being selected.
171 171
172Example value: 172Example value:
173 173
174 '((\"Emacs Lisp\" Info-goto-emacs-command-node obarray) 174 ((\"Emacs Lisp\" Info-goto-emacs-command-node obarray)
175 (\"Common Lisp\" common-lisp-hyperspec common-lisp-hyperspec-obarray) 175 (\"Common Lisp\" common-lisp-hyperspec common-lisp-hyperspec-obarray)
176 (\"SCWM\" scwm-documentation scwm-obarray))" 176 (\"SCWM\" scwm-documentation scwm-obarray))"
177 :group 'etags 177 :group 'etags
diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el
index fb4d445b595..845abc09842 100644
--- a/lisp/progmodes/hideshow.el
+++ b/lisp/progmodes/hideshow.el
@@ -323,13 +323,13 @@ Hideshow puts a unique overlay on each range of text to be hidden
323in the buffer. Here is a simple example of how to use this variable: 323in the buffer. Here is a simple example of how to use this variable:
324 324
325 (defun display-code-line-counts (ov) 325 (defun display-code-line-counts (ov)
326 (when (eq 'code (overlay-get ov 'hs)) 326 (when (eq \\='code (overlay-get ov \\='hs))
327 (overlay-put ov 'display 327 (overlay-put ov \\='display
328 (format \"... / %d\" 328 (format \"... / %d\"
329 (count-lines (overlay-start ov) 329 (count-lines (overlay-start ov)
330 (overlay-end ov)))))) 330 (overlay-end ov))))))
331 331
332 (setq hs-set-up-overlay 'display-code-line-counts) 332 (setq hs-set-up-overlay \\='display-code-line-counts)
333 333
334This example shows how to get information from the overlay as well 334This example shows how to get information from the overlay as well
335as how to set its `display' property. See `hs-make-overlay' and 335as how to set its `display' property. See `hs-make-overlay' and
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el
index 18299c7f116..daf919adb2f 100644
--- a/lisp/progmodes/idlwave.el
+++ b/lisp/progmodes/idlwave.el
@@ -1571,11 +1571,11 @@ Otherwise, if SELECT is non-nil then only an action is created.
1571 1571
1572Some examples: 1572Some examples:
1573No spaces before and 1 after a comma 1573No spaces before and 1 after a comma
1574 (idlwave-action-and-binding \",\" '(idlwave-surround 0 1)) 1574 (idlwave-action-and-binding \",\" \\='(idlwave-surround 0 1))
1575A minimum of 1 space before and after `=' (see `idlwave-expand-equal'). 1575A minimum of 1 space before and after `=' (see `idlwave-expand-equal').
1576 (idlwave-action-and-binding \"=\" '(idlwave-expand-equal -1 -1)) 1576 (idlwave-action-and-binding \"=\" \\='(idlwave-expand-equal -1 -1))
1577Capitalize system variables - action only 1577Capitalize system variables - action only
1578 (idlwave-action-and-binding idlwave-sysvar '(capitalize-word 1) t)" 1578 (idlwave-action-and-binding idlwave-sysvar \\='(capitalize-word 1) t)"
1579 (if (not (equal select 'noaction)) 1579 (if (not (equal select 'noaction))
1580 ;; Add action 1580 ;; Add action
1581 (let* ((table (if select 'idlwave-indent-action-table 1581 (let* ((table (if select 'idlwave-indent-action-table
diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el
index 18f445ca5cf..f46c8a99b67 100644
--- a/lisp/progmodes/sql.el
+++ b/lisp/progmodes/sql.el
@@ -2609,8 +2609,8 @@ of the current highlighting list.
2609 2609
2610For example: 2610For example:
2611 2611
2612 (sql-add-product-keywords 'ms 2612 (sql-add-product-keywords \\='ms
2613 '((\"\\\\b\\\\w+_t\\\\b\" . font-lock-type-face))) 2613 \\='((\"\\\\b\\\\w+_t\\\\b\" . font-lock-type-face)))
2614 2614
2615adds a fontification pattern to fontify identifiers ending in 2615adds a fontification pattern to fontify identifiers ending in
2616`_t' as data types." 2616`_t' as data types."
diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el
index 76d85c68c99..caae746779e 100644
--- a/lisp/progmodes/verilog-mode.el
+++ b/lisp/progmodes/verilog-mode.el
@@ -12794,7 +12794,7 @@ Constant signals:
12794 is put into the AUTOSENSE list and is not desired, use the AUTO_CONSTANT 12794 is put into the AUTOSENSE list and is not desired, use the AUTO_CONSTANT
12795 declaration anywhere in the module (parenthesis are required): 12795 declaration anywhere in the module (parenthesis are required):
12796 12796
12797 /* AUTO_CONSTANT ( `this_is_really_constant_dont_autosense_it ) */ 12797 /* AUTO_CONSTANT ( \\=`this_is_really_constant_dont_autosense_it ) */
12798 12798
12799 Better yet, use a parameter, which will be understood to be constant 12799 Better yet, use a parameter, which will be understood to be constant
12800 automatically. 12800 automatically.
@@ -12810,16 +12810,16 @@ OOps!
12810An example: 12810An example:
12811 12811
12812 always @ (/*AS*/) begin 12812 always @ (/*AS*/) begin
12813 /* AUTO_CONSTANT (`constant) */ 12813 /* AUTO_CONSTANT (\\=`constant) */
12814 outin = ina | inb | `constant; 12814 outin = ina | inb | \\=`constant;
12815 out = outin; 12815 out = outin;
12816 end 12816 end
12817 12817
12818Typing \\[verilog-auto] will make this into: 12818Typing \\[verilog-auto] will make this into:
12819 12819
12820 always @ (/*AS*/ina or inb) begin 12820 always @ (/*AS*/ina or inb) begin
12821 /* AUTO_CONSTANT (`constant) */ 12821 /* AUTO_CONSTANT (\\=`constant) */
12822 outin = ina | inb | `constant; 12822 outin = ina | inb | \\=`constant;
12823 out = outin; 12823 out = outin;
12824 end 12824 end
12825 12825
@@ -12827,7 +12827,7 @@ Note in Verilog 2001, you can often get the same result from the new @*
12827operator. (This was added to the language in part due to AUTOSENSE!) 12827operator. (This was added to the language in part due to AUTOSENSE!)
12828 12828
12829 always @* begin 12829 always @* begin
12830 outin = ina | inb | `constant; 12830 outin = ina | inb | \\=`constant;
12831 out = outin; 12831 out = outin;
12832 end" 12832 end"
12833 (save-excursion 12833 (save-excursion
diff --git a/lisp/ps-print.el b/lisp/ps-print.el
index faafe9ce87f..218a02a7f6d 100644
--- a/lisp/ps-print.el
+++ b/lisp/ps-print.el
@@ -1953,7 +1953,7 @@ If you set option `ps-selected-pages', first the pages are
1953filtered by option `ps-selected-pages' and then by `ps-even-or-odd-pages'. 1953filtered by option `ps-selected-pages' and then by `ps-even-or-odd-pages'.
1954For example, if we have: 1954For example, if we have:
1955 1955
1956 (setq ps-selected-pages '(1 4 (6 . 10) (12 . 16) 20)) 1956 (setq ps-selected-pages \\='(1 4 (6 . 10) (12 . 16) 20))
1957 1957
1958Combining with `ps-even-or-odd-pages' and option `ps-n-up-printing', we have: 1958Combining with `ps-even-or-odd-pages' and option `ps-n-up-printing', we have:
1959 1959
@@ -2249,9 +2249,9 @@ X, Y, XSCALE, YSCALE and ROTATION may be a floating point number, an integer
2249number or a string. If it is a string, the string should contain PostScript 2249number or a string. If it is a string, the string should contain PostScript
2250programming that returns a float or integer value. 2250programming that returns a float or integer value.
2251 2251
2252For example, if you wish to print an EPS image on all pages do: 2252For example, if you wish to print an EPS image on all pages use:
2253 2253
2254 '((\"~/images/EPS-image.ps\"))" 2254 ((\"~/images/EPS-image.ps\"))"
2255 :type '(repeat 2255 :type '(repeat
2256 (list 2256 (list
2257 (file :tag "EPS File") 2257 (file :tag "EPS File")
@@ -2300,9 +2300,9 @@ X, Y, FONTSIZE, GRAY and ROTATION may be a floating point number, an integer
2300number or a string. If it is a string, the string should contain PostScript 2300number or a string. If it is a string, the string should contain PostScript
2301programming that returns a float or integer value. 2301programming that returns a float or integer value.
2302 2302
2303For example, if you wish to print text \"Preliminary\" on all pages do: 2303For example, if you wish to print text \"Preliminary\" on all pages use:
2304 2304
2305 '((\"Preliminary\"))" 2305 ((\"Preliminary\"))"
2306 :type '(repeat 2306 :type '(repeat
2307 (list 2307 (list
2308 (string :tag "Text") 2308 (string :tag "Text")
diff --git a/lisp/server.el b/lisp/server.el
index 57c16af0cd5..b16a06e79f0 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -1649,7 +1649,7 @@ only these files will be asked to be saved."
1649 "Contact the Emacs server named SERVER and evaluate FORM there. 1649 "Contact the Emacs server named SERVER and evaluate FORM there.
1650Returns the result of the evaluation, or signals an error if it 1650Returns the result of the evaluation, or signals an error if it
1651cannot contact the specified server. For example: 1651cannot contact the specified server. For example:
1652 (server-eval-at \"server\" '(emacs-pid)) 1652 (server-eval-at \"server\" \\='(emacs-pid))
1653returns the process ID of the Emacs instance running \"server\"." 1653returns the process ID of the Emacs instance running \"server\"."
1654 (let* ((server-dir (if server-use-tcp server-auth-dir server-socket-dir)) 1654 (let* ((server-dir (if server-use-tcp server-auth-dir server-socket-dir))
1655 (server-file (expand-file-name server server-dir)) 1655 (server-file (expand-file-name server server-dir))
diff --git a/lisp/ses.el b/lisp/ses.el
index 0bc43ec8b58..ec1359bbbcb 100644
--- a/lisp/ses.el
+++ b/lisp/ses.el
@@ -1491,11 +1491,11 @@ by (ROWINCR,COLINCR)."
1491 "Produce a copy of FORMULA where all symbols that refer to cells in row 1491 "Produce a copy of FORMULA where all symbols that refer to cells in row
1492STARTROW or above, and col STARTCOL or above, are altered by adding ROWINCR 1492STARTROW or above, and col STARTCOL or above, are altered by adding ROWINCR
1493and COLINCR. STARTROW and STARTCOL are 0-based. Example: 1493and COLINCR. STARTROW and STARTCOL are 0-based. Example:
1494 (ses-relocate-formula '(+ A1 B2 D3) 1 2 1 -1) 1494 (ses-relocate-formula \\='(+ A1 B2 D3) 1 2 1 -1)
1495 => (+ A1 B2 C4) 1495 => (+ A1 B2 C4)
1496If ROWINCR or COLINCR is negative, references to cells being deleted are 1496If ROWINCR or COLINCR is negative, references to cells being deleted are
1497removed. Example: 1497removed. Example:
1498 (ses-relocate-formula '(+ A1 B2 D3) 0 1 0 -1) 1498 (ses-relocate-formula \\='(+ A1 B2 D3) 0 1 0 -1)
1499 => (+ A1 C3) 1499 => (+ A1 C3)
1500Sets `ses-relocate-return' to 'delete if cell-references were removed." 1500Sets `ses-relocate-return' to 'delete if cell-references were removed."
1501 (let (rowcol result) 1501 (let (rowcol result)
diff --git a/lisp/simple.el b/lisp/simple.el
index 6f76d755292..b8d4e741775 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -1711,9 +1711,13 @@ The argument SPECIAL, if non-nil, means that this command is executing
1711a special event, so ignore the prefix argument and don't clear it." 1711a special event, so ignore the prefix argument and don't clear it."
1712 (setq debug-on-next-call nil) 1712 (setq debug-on-next-call nil)
1713 (let ((prefixarg (unless special 1713 (let ((prefixarg (unless special
1714 ;; FIXME: This should probably be done around
1715 ;; pre-command-hook rather than here!
1714 (prog1 prefix-arg 1716 (prog1 prefix-arg
1715 (setq current-prefix-arg prefix-arg) 1717 (setq current-prefix-arg prefix-arg)
1716 (setq prefix-arg nil))))) 1718 (setq prefix-arg nil)
1719 (when current-prefix-arg
1720 (prefix-command-update))))))
1717 (if (and (symbolp cmd) 1721 (if (and (symbolp cmd)
1718 (get cmd 'disabled) 1722 (get cmd 'disabled)
1719 disabled-command-function) 1723 disabled-command-function)
@@ -3626,6 +3630,73 @@ see other processes running on the system, use `list-system-processes'."
3626 (display-buffer buffer) 3630 (display-buffer buffer)
3627 nil) 3631 nil)
3628 3632
3633;;;; Prefix commands
3634
3635(setq prefix-command--needs-update nil)
3636(setq prefix-command--last-echo nil)
3637
3638(defun internal-echo-keystrokes-prefix ()
3639 ;; BEWARE: Called directly from the C code.
3640 (if (not prefix-command--needs-update)
3641 prefix-command--last-echo
3642 (setq prefix-command--last-echo
3643 (let ((strs nil))
3644 (run-hook-wrapped 'prefix-command-echo-keystrokes-functions
3645 (lambda (fun) (push (funcall fun) strs)))
3646 (setq strs (delq nil strs))
3647 (when strs (mapconcat #'identity strs " "))))))
3648
3649(defvar prefix-command-echo-keystrokes-functions nil
3650 "Abnormal hook which constructs the description of the current prefix state.
3651Each function is called with no argument, should return a string or nil.")
3652
3653(defun prefix-command-update ()
3654 "Update state of prefix commands.
3655Call it whenever you change the \"prefix command state\"."
3656 (setq prefix-command--needs-update t))
3657
3658(defvar prefix-command-preserve-state-hook nil
3659 "Normal hook run when a command needs to preserve the prefix.")
3660
3661(defun prefix-command-preserve-state ()
3662 "Pass the current prefix command state to the next command.
3663Should be called by all prefix commands.
3664Runs `prefix-command-preserve-state-hook'."
3665 (run-hooks 'prefix-command-preserve-state-hook)
3666 ;; If the current command is a prefix command, we don't want the next (real)
3667 ;; command to have `last-command' set to, say, `universal-argument'.
3668 (setq this-command last-command)
3669 (setq real-this-command real-last-command)
3670 (prefix-command-update))
3671
3672(defun reset-this-command-lengths ()
3673 (declare (obsolete prefix-command-preserve-state "25.1"))
3674 nil)
3675
3676;;;;; The main prefix command.
3677
3678;; FIXME: Declaration of `prefix-arg' should be moved here!?
3679
3680(add-hook 'prefix-command-echo-keystrokes-functions
3681 #'universal-argument--description)
3682(defun universal-argument--description ()
3683 (when prefix-arg
3684 (concat "C-u"
3685 (pcase prefix-arg
3686 (`(-) " -")
3687 (`(,(and (pred integerp) n))
3688 (let ((str ""))
3689 (while (and (> n 4) (= (mod n 4) 0))
3690 (setq str (concat str " C-u"))
3691 (setq n (/ n 4)))
3692 (if (= n 4) str (format " %s" prefix-arg))))
3693 (_ (format " %s" prefix-arg))))))
3694
3695(add-hook 'prefix-command-preserve-state-hook
3696 #'universal-argument--preserve)
3697(defun universal-argument--preserve ()
3698 (setq prefix-arg current-prefix-arg))
3699
3629(defvar universal-argument-map 3700(defvar universal-argument-map
3630 (let ((map (make-sparse-keymap)) 3701 (let ((map (make-sparse-keymap))
3631 (universal-argument-minus 3702 (universal-argument-minus
@@ -3664,7 +3735,8 @@ see other processes running on the system, use `list-system-processes'."
3664 "Keymap used while processing \\[universal-argument].") 3735 "Keymap used while processing \\[universal-argument].")
3665 3736
3666(defun universal-argument--mode () 3737(defun universal-argument--mode ()
3667 (set-transient-map universal-argument-map)) 3738 (prefix-command-update)
3739 (set-transient-map universal-argument-map nil))
3668 3740
3669(defun universal-argument () 3741(defun universal-argument ()
3670 "Begin a numeric argument for the following command. 3742 "Begin a numeric argument for the following command.
@@ -3677,6 +3749,7 @@ For some commands, just \\[universal-argument] by itself serves as a flag
3677which is different in effect from any particular numeric argument. 3749which is different in effect from any particular numeric argument.
3678These commands include \\[set-mark-command] and \\[start-kbd-macro]." 3750These commands include \\[set-mark-command] and \\[start-kbd-macro]."
3679 (interactive) 3751 (interactive)
3752 (prefix-command-preserve-state)
3680 (setq prefix-arg (list 4)) 3753 (setq prefix-arg (list 4))
3681 (universal-argument--mode)) 3754 (universal-argument--mode))
3682 3755
@@ -3684,6 +3757,7 @@ These commands include \\[set-mark-command] and \\[start-kbd-macro]."
3684 ;; A subsequent C-u means to multiply the factor by 4 if we've typed 3757 ;; A subsequent C-u means to multiply the factor by 4 if we've typed
3685 ;; nothing but C-u's; otherwise it means to terminate the prefix arg. 3758 ;; nothing but C-u's; otherwise it means to terminate the prefix arg.
3686 (interactive "P") 3759 (interactive "P")
3760 (prefix-command-preserve-state)
3687 (setq prefix-arg (if (consp arg) 3761 (setq prefix-arg (if (consp arg)
3688 (list (* 4 (car arg))) 3762 (list (* 4 (car arg)))
3689 (if (eq arg '-) 3763 (if (eq arg '-)
@@ -3695,6 +3769,7 @@ These commands include \\[set-mark-command] and \\[start-kbd-macro]."
3695 "Begin a negative numeric argument for the next command. 3769 "Begin a negative numeric argument for the next command.
3696\\[universal-argument] following digits or minus sign ends the argument." 3770\\[universal-argument] following digits or minus sign ends the argument."
3697 (interactive "P") 3771 (interactive "P")
3772 (prefix-command-preserve-state)
3698 (setq prefix-arg (cond ((integerp arg) (- arg)) 3773 (setq prefix-arg (cond ((integerp arg) (- arg))
3699 ((eq arg '-) nil) 3774 ((eq arg '-) nil)
3700 (t '-))) 3775 (t '-)))
@@ -3704,6 +3779,7 @@ These commands include \\[set-mark-command] and \\[start-kbd-macro]."
3704 "Part of the numeric argument for the next command. 3779 "Part of the numeric argument for the next command.
3705\\[universal-argument] following digits or minus sign ends the argument." 3780\\[universal-argument] following digits or minus sign ends the argument."
3706 (interactive "P") 3781 (interactive "P")
3782 (prefix-command-preserve-state)
3707 (let* ((char (if (integerp last-command-event) 3783 (let* ((char (if (integerp last-command-event)
3708 last-command-event 3784 last-command-event
3709 (get last-command-event 'ascii-character))) 3785 (get last-command-event 'ascii-character)))
diff --git a/lisp/startup.el b/lisp/startup.el
index 8c63ed263c2..b5e258f56c0 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -803,6 +803,15 @@ to prepare for opening the first frame (e.g. open a connection to an X server)."
803(defvar server-name) 803(defvar server-name)
804(defvar server-process) 804(defvar server-process)
805 805
806(defun startup--setup-quote-display ()
807 "If curved quotes don't work, display ASCII approximations."
808 (dolist (char-repl '((?‘ . ?\`) (?’ . ?\') (?“ . ?\") (?” . ?\")))
809 (when (not (char-displayable-p (car char-repl)))
810 (unless standard-display-table
811 (setq standard-display-table (make-display-table)))
812 (aset standard-display-table (car char-repl)
813 (vector (make-glyph-code (cdr char-repl) 'shadow))))))
814
806(defun command-line () 815(defun command-line ()
807 "A subroutine of `normal-top-level'. 816 "A subroutine of `normal-top-level'.
808Amongst another things, it parses the command-line arguments." 817Amongst another things, it parses the command-line arguments."
@@ -1017,13 +1026,9 @@ please check its value")
1017 '("no" "off" "false" "0"))))) 1026 '("no" "off" "false" "0")))))
1018 (setq no-blinking-cursor t)) 1027 (setq no-blinking-cursor t))
1019 1028
1020 ;; If curved quotes don't work, display ASCII approximations. 1029 (unless noninteractive
1021 (dolist (char-repl '((?‘ . [?\`]) (?’ . [?\']) (?“ . [?\"]) (?” . [?\"]))) 1030 (startup--setup-quote-display)
1022 (when (not (char-displayable-p (car char-repl))) 1031 (setq internal--text-quoting-flag t))
1023 (or standard-display-table
1024 (setq standard-display-table (make-display-table)))
1025 (aset standard-display-table (car char-repl) (cdr char-repl))))
1026 (setq internal--text-quoting-flag t)
1027 1032
1028 ;; Re-evaluate predefined variables whose initial value depends on 1033 ;; Re-evaluate predefined variables whose initial value depends on
1029 ;; the runtime context. 1034 ;; the runtime context.
diff --git a/lisp/term/w32console.el b/lisp/term/w32console.el
index 2df137839d0..58856858502 100644
--- a/lisp/term/w32console.el
+++ b/lisp/term/w32console.el
@@ -68,12 +68,7 @@
68 (if oem-o-cs-p oem-code-page-output-coding oem-code-page-coding)) 68 (if oem-o-cs-p oem-code-page-output-coding oem-code-page-coding))
69 ;; Since we changed the terminal encoding, we need to repeat 69 ;; Since we changed the terminal encoding, we need to repeat
70 ;; the test for Unicode quotes being displayable. 70 ;; the test for Unicode quotes being displayable.
71 (dolist (char-repl 71 (startup--setup-quote-display)))
72 '((?‘ . [?\`]) (?’ . [?\']) (?“ . [?\"]) (?” . [?\"])))
73 (when (not (char-displayable-p (car char-repl)))
74 (or standard-display-table
75 (setq standard-display-table (make-display-table)))
76 (aset standard-display-table (car char-repl) (cdr char-repl))))))
77 (let* ((colors w32-tty-standard-colors) 72 (let* ((colors w32-tty-standard-colors)
78 (color (car colors))) 73 (color (car colors)))
79 (tty-color-clear) 74 (tty-color-clear)
diff --git a/lisp/textmodes/table.el b/lisp/textmodes/table.el
index 93b31d5c86c..9c50eca6419 100644
--- a/lisp/textmodes/table.el
+++ b/lisp/textmodes/table.el
@@ -3349,17 +3349,17 @@ Example:
3349 (progn 3349 (progn
3350 (table-insert 16 3 5 1) 3350 (table-insert 16 3 5 1)
3351 (table-forward-cell 15) 3351 (table-forward-cell 15)
3352 (table-insert-sequence \"D0\" -16 1 1 'center) 3352 (table-insert-sequence \"D0\" -16 1 1 \\='center)
3353 (table-forward-cell 16) 3353 (table-forward-cell 16)
3354 (table-insert-sequence \"A[0]\" -16 1 1 'center) 3354 (table-insert-sequence \"A[0]\" -16 1 1 \\='center)
3355 (table-forward-cell 1) 3355 (table-forward-cell 1)
3356 (table-insert-sequence \"-\" 16 0 1 'center)) 3356 (table-insert-sequence \"-\" 16 0 1 \\='center))
3357 3357
3358 (progn 3358 (progn
3359 (table-insert 16 8 5 1) 3359 (table-insert 16 8 5 1)
3360 (table-insert-sequence \"@\" 0 1 2 'right) 3360 (table-insert-sequence \"@\" 0 1 2 \\='right)
3361 (table-forward-cell 1) 3361 (table-forward-cell 1)
3362 (table-insert-sequence \"64\" 0 1 2 'left))" 3362 (table-insert-sequence \"64\" 0 1 2 \\='left))"
3363 (interactive 3363 (interactive
3364 (progn 3364 (progn
3365 (barf-if-buffer-read-only) 3365 (barf-if-buffer-read-only)
diff --git a/lisp/textmodes/tildify.el b/lisp/textmodes/tildify.el
index 4e385a0fbd3..c94e417a7ea 100644
--- a/lisp/textmodes/tildify.el
+++ b/lisp/textmodes/tildify.el
@@ -291,8 +291,8 @@ BEG argument is ignored.
291This function is meant to be used to set `tildify-foreach-region-function' 291This function is meant to be used to set `tildify-foreach-region-function'
292variable. For example, for an XML file one might use: 292variable. For example, for an XML file one might use:
293 (setq-local tildify-foreach-region-function 293 (setq-local tildify-foreach-region-function
294 (apply-partially 'tildify-foreach-ignore-environments 294 (apply-partially \\='tildify-foreach-ignore-environments
295 '((\"<! *--\" . \"-- *>\") (\"<\" . \">\"))))" 295 \\='((\"<! *--\" . \"-- *>\") (\"<\" . \">\"))))"
296 (let ((beg-re (concat "\\(?:" (mapconcat 'car pairs "\\)\\|\\(?:") "\\)")) 296 (let ((beg-re (concat "\\(?:" (mapconcat 'car pairs "\\)\\|\\(?:") "\\)"))
297 p end-re) 297 p end-re)
298 (save-excursion 298 (save-excursion
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
index 9522328cae8..50c6d96e911 100644
--- a/lisp/vc/vc-git.el
+++ b/lisp/vc/vc-git.el
@@ -248,26 +248,30 @@ matching the resulting Git log output, and KEYWORDS is a list of
248 (vc-git--state-code diff-letter))) 248 (vc-git--state-code diff-letter)))
249 (if (vc-git--empty-db-p) 'added 'up-to-date)))) 249 (if (vc-git--empty-db-p) 'added 'up-to-date))))
250 250
251(defun vc-git-working-revision (file) 251(defun vc-git-working-revision (_file)
252 "Git-specific version of `vc-working-revision'." 252 "Git-specific version of `vc-working-revision'."
253 (let* (process-file-side-effects 253 (let (process-file-side-effects)
254 (str (vc-git--run-command-string nil "symbolic-ref" "HEAD"))) 254 (vc-git--rev-parse "HEAD")))
255 (vc-file-setprop file 'vc-git-detached (null str)) 255
256 (if str 256(defun vc-git--symbolic-ref (file)
257 (if (string-match "^\\(refs/heads/\\)?\\(.+\\)$" str) 257 (or
258 (match-string 2 str) 258 (vc-file-getprop file 'vc-git-symbolic-ref)
259 str) 259 (let* (process-file-side-effects
260 (vc-git--rev-parse "HEAD")))) 260 (str (vc-git--run-command-string nil "symbolic-ref" "HEAD")))
261 (vc-file-setprop file 'vc-git-symbolic-ref
262 (if str
263 (if (string-match "^\\(refs/heads/\\)?\\(.+\\)$" str)
264 (match-string 2 str)
265 str))))))
261 266
262(defun vc-git-mode-line-string (file) 267(defun vc-git-mode-line-string (file)
263 "Return a string for `vc-mode-line' to put in the mode line for FILE." 268 "Return a string for `vc-mode-line' to put in the mode line for FILE."
264 (let* ((rev (vc-working-revision file)) 269 (let* ((rev (vc-working-revision file))
265 (detached (vc-file-getprop file 'vc-git-detached)) 270 (disp-rev (or (vc-git--symbolic-ref file)
271 (substring rev 0 7)))
266 (def-ml (vc-default-mode-line-string 'Git file)) 272 (def-ml (vc-default-mode-line-string 'Git file))
267 (help-echo (get-text-property 0 'help-echo def-ml))) 273 (help-echo (get-text-property 0 'help-echo def-ml)))
268 (propertize (if detached 274 (propertize (replace-regexp-in-string (concat rev "\\'") disp-rev def-ml t t)
269 (substring def-ml 0 (- 7 (length rev)))
270 def-ml)
271 'help-echo (concat help-echo "\nCurrent revision: " rev)))) 275 'help-echo (concat help-echo "\nCurrent revision: " rev))))
272 276
273(cl-defstruct (vc-git-extra-fileinfo 277(cl-defstruct (vc-git-extra-fileinfo
diff --git a/lisp/vc/vc-hooks.el b/lisp/vc/vc-hooks.el
index bae991936b5..e674f0e4d4e 100644
--- a/lisp/vc/vc-hooks.el
+++ b/lisp/vc/vc-hooks.el
@@ -790,8 +790,9 @@ current, and kill the buffer that visits the link."
790(defun vc-default-find-file-hook (_backend) 790(defun vc-default-find-file-hook (_backend)
791 nil) 791 nil)
792 792
793(defun vc-find-file-hook () 793(defun vc-refresh-state ()
794 "Function for `find-file-hook' activating VC mode if appropriate." 794 "Activate or deactivate VC mode as appropriate."
795 (interactive)
795 ;; Recompute whether file is version controlled, 796 ;; Recompute whether file is version controlled,
796 ;; if user has killed the buffer and revisited. 797 ;; if user has killed the buffer and revisited.
797 (when vc-mode 798 (when vc-mode
@@ -838,18 +839,19 @@ current, and kill the buffer that visits the link."
838 839
839 (vc-follow-link) 840 (vc-follow-link)
840 (message "Followed link to %s" buffer-file-name) 841 (message "Followed link to %s" buffer-file-name)
841 (vc-find-file-hook)) 842 (vc-refresh-state))
842 (t 843 (t
843 (if (yes-or-no-p (format 844 (if (yes-or-no-p (format
844 "Symbolic link to %s-controlled source file; follow link? " link-type)) 845 "Symbolic link to %s-controlled source file; follow link? " link-type))
845 (progn (vc-follow-link) 846 (progn (vc-follow-link)
846 (message "Followed link to %s" buffer-file-name) 847 (message "Followed link to %s" buffer-file-name)
847 (vc-find-file-hook)) 848 (vc-refresh-state))
848 (message 849 (message
849 "Warning: editing through the link bypasses version control") 850 "Warning: editing through the link bypasses version control")
850 ))))))))) 851 )))))))))
851 852
852(add-hook 'find-file-hook 'vc-find-file-hook) 853(add-hook 'find-file-hook #'vc-refresh-state)
854(define-obsolete-function-alias 'vc-find-file-hook 'vc-refresh-state "25.1")
853 855
854(defun vc-kill-buffer-hook () 856(defun vc-kill-buffer-hook ()
855 "Discard VC info about a file when we kill its buffer." 857 "Discard VC info about a file when we kill its buffer."
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 0c8f4af58e1..b64de4759d7 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -3477,10 +3477,10 @@ themselves. A list, for example, is defined as either nil, or a cons
3477cell whose cdr itself is a list. The obvious way to translate this 3477cell whose cdr itself is a list. The obvious way to translate this
3478into a widget type would be 3478into a widget type would be
3479 3479
3480 (define-widget 'my-list 'choice 3480 (define-widget \\='my-list \\='choice
3481 \"A list of sexps.\" 3481 \"A list of sexps.\"
3482 :tag \"Sexp list\" 3482 :tag \"Sexp list\"
3483 :args '((const nil) (cons :value (nil) sexp my-list))) 3483 :args \\='((const nil) (cons :value (nil) sexp my-list)))
3484 3484
3485Here we attempt to define my-list as a choice of either the constant 3485Here we attempt to define my-list as a choice of either the constant
3486nil, or a cons-cell containing a sexp and my-lisp. This will not work 3486nil, or a cons-cell containing a sexp and my-lisp. This will not work
@@ -3489,10 +3489,10 @@ because the `choice' widget does not allow recursion.
3489Using the `lazy' widget you can overcome this problem, as in this 3489Using the `lazy' widget you can overcome this problem, as in this
3490example: 3490example:
3491 3491
3492 (define-widget 'sexp-list 'lazy 3492 (define-widget \\='sexp-list \\='lazy
3493 \"A list of sexps.\" 3493 \"A list of sexps.\"
3494 :tag \"Sexp list\" 3494 :tag \"Sexp list\"
3495 :type '(choice (const nil) (cons :value (nil) sexp sexp-list)))" 3495 :type \\='(choice (const nil) (cons :value (nil) sexp sexp-list)))"
3496 :format "%{%t%}: %v" 3496 :format "%{%t%}: %v"
3497 ;; We don't convert :type because we want to allow recursive 3497 ;; We don't convert :type because we want to allow recursive
3498 ;; data structures. This is slow, so we should not create speed 3498 ;; data structures. This is slow, so we should not create speed
diff --git a/src/buffer.c b/src/buffer.c
index fc2ee82e447..33f7996a8c1 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -5402,140 +5402,140 @@ syms_of_buffer (void)
5402 DEFVAR_BUFFER_DEFAULTS ("default-mode-line-format", 5402 DEFVAR_BUFFER_DEFAULTS ("default-mode-line-format",
5403 mode_line_format, 5403 mode_line_format,
5404 doc: /* Default value of `mode-line-format' for buffers that don't override it. 5404 doc: /* Default value of `mode-line-format' for buffers that don't override it.
5405This is the same as (default-value 'mode-line-format). */); 5405This is the same as (default-value \\='mode-line-format). */);
5406 5406
5407 DEFVAR_BUFFER_DEFAULTS ("default-header-line-format", 5407 DEFVAR_BUFFER_DEFAULTS ("default-header-line-format",
5408 header_line_format, 5408 header_line_format,
5409 doc: /* Default value of `header-line-format' for buffers that don't override it. 5409 doc: /* Default value of `header-line-format' for buffers that don't override it.
5410This is the same as (default-value 'header-line-format). */); 5410This is the same as (default-value \\='header-line-format). */);
5411 5411
5412 DEFVAR_BUFFER_DEFAULTS ("default-cursor-type", cursor_type, 5412 DEFVAR_BUFFER_DEFAULTS ("default-cursor-type", cursor_type,
5413 doc: /* Default value of `cursor-type' for buffers that don't override it. 5413 doc: /* Default value of `cursor-type' for buffers that don't override it.
5414This is the same as (default-value 'cursor-type). */); 5414This is the same as (default-value \\='cursor-type). */);
5415 5415
5416 DEFVAR_BUFFER_DEFAULTS ("default-line-spacing", 5416 DEFVAR_BUFFER_DEFAULTS ("default-line-spacing",
5417 extra_line_spacing, 5417 extra_line_spacing,
5418 doc: /* Default value of `line-spacing' for buffers that don't override it. 5418 doc: /* Default value of `line-spacing' for buffers that don't override it.
5419This is the same as (default-value 'line-spacing). */); 5419This is the same as (default-value \\='line-spacing). */);
5420 5420
5421 DEFVAR_BUFFER_DEFAULTS ("default-cursor-in-non-selected-windows", 5421 DEFVAR_BUFFER_DEFAULTS ("default-cursor-in-non-selected-windows",
5422 cursor_in_non_selected_windows, 5422 cursor_in_non_selected_windows,
5423 doc: /* Default value of `cursor-in-non-selected-windows'. 5423 doc: /* Default value of `cursor-in-non-selected-windows'.
5424This is the same as (default-value 'cursor-in-non-selected-windows). */); 5424This is the same as (default-value \\='cursor-in-non-selected-windows). */);
5425 5425
5426 DEFVAR_BUFFER_DEFAULTS ("default-abbrev-mode", 5426 DEFVAR_BUFFER_DEFAULTS ("default-abbrev-mode",
5427 abbrev_mode, 5427 abbrev_mode,
5428 doc: /* Default value of `abbrev-mode' for buffers that do not override it. 5428 doc: /* Default value of `abbrev-mode' for buffers that do not override it.
5429This is the same as (default-value 'abbrev-mode). */); 5429This is the same as (default-value \\='abbrev-mode). */);
5430 5430
5431 DEFVAR_BUFFER_DEFAULTS ("default-ctl-arrow", 5431 DEFVAR_BUFFER_DEFAULTS ("default-ctl-arrow",
5432 ctl_arrow, 5432 ctl_arrow,
5433 doc: /* Default value of `ctl-arrow' for buffers that do not override it. 5433 doc: /* Default value of `ctl-arrow' for buffers that do not override it.
5434This is the same as (default-value 'ctl-arrow). */); 5434This is the same as (default-value \\='ctl-arrow). */);
5435 5435
5436 DEFVAR_BUFFER_DEFAULTS ("default-enable-multibyte-characters", 5436 DEFVAR_BUFFER_DEFAULTS ("default-enable-multibyte-characters",
5437 enable_multibyte_characters, 5437 enable_multibyte_characters,
5438 doc: /* Default value of `enable-multibyte-characters' for buffers not overriding it. 5438 doc: /* Default value of `enable-multibyte-characters' for buffers not overriding it.
5439This is the same as (default-value 'enable-multibyte-characters). */); 5439This is the same as (default-value \\='enable-multibyte-characters). */);
5440 5440
5441 DEFVAR_BUFFER_DEFAULTS ("default-buffer-file-coding-system", 5441 DEFVAR_BUFFER_DEFAULTS ("default-buffer-file-coding-system",
5442 buffer_file_coding_system, 5442 buffer_file_coding_system,
5443 doc: /* Default value of `buffer-file-coding-system' for buffers not overriding it. 5443 doc: /* Default value of `buffer-file-coding-system' for buffers not overriding it.
5444This is the same as (default-value 'buffer-file-coding-system). */); 5444This is the same as (default-value \\='buffer-file-coding-system). */);
5445 5445
5446 DEFVAR_BUFFER_DEFAULTS ("default-truncate-lines", 5446 DEFVAR_BUFFER_DEFAULTS ("default-truncate-lines",
5447 truncate_lines, 5447 truncate_lines,
5448 doc: /* Default value of `truncate-lines' for buffers that do not override it. 5448 doc: /* Default value of `truncate-lines' for buffers that do not override it.
5449This is the same as (default-value 'truncate-lines). */); 5449This is the same as (default-value \\='truncate-lines). */);
5450 5450
5451 DEFVAR_BUFFER_DEFAULTS ("default-fill-column", 5451 DEFVAR_BUFFER_DEFAULTS ("default-fill-column",
5452 fill_column, 5452 fill_column,
5453 doc: /* Default value of `fill-column' for buffers that do not override it. 5453 doc: /* Default value of `fill-column' for buffers that do not override it.
5454This is the same as (default-value 'fill-column). */); 5454This is the same as (default-value \\='fill-column). */);
5455 5455
5456 DEFVAR_BUFFER_DEFAULTS ("default-left-margin", 5456 DEFVAR_BUFFER_DEFAULTS ("default-left-margin",
5457 left_margin, 5457 left_margin,
5458 doc: /* Default value of `left-margin' for buffers that do not override it. 5458 doc: /* Default value of `left-margin' for buffers that do not override it.
5459This is the same as (default-value 'left-margin). */); 5459This is the same as (default-value \\='left-margin). */);
5460 5460
5461 DEFVAR_BUFFER_DEFAULTS ("default-tab-width", 5461 DEFVAR_BUFFER_DEFAULTS ("default-tab-width",
5462 tab_width, 5462 tab_width,
5463 doc: /* Default value of `tab-width' for buffers that do not override it. 5463 doc: /* Default value of `tab-width' for buffers that do not override it.
5464NOTE: This controls the display width of a TAB character, and not 5464NOTE: This controls the display width of a TAB character, and not
5465the size of an indentation step. 5465the size of an indentation step.
5466This is the same as (default-value 'tab-width). */); 5466This is the same as (default-value \\='tab-width). */);
5467 5467
5468 DEFVAR_BUFFER_DEFAULTS ("default-case-fold-search", 5468 DEFVAR_BUFFER_DEFAULTS ("default-case-fold-search",
5469 case_fold_search, 5469 case_fold_search,
5470 doc: /* Default value of `case-fold-search' for buffers that don't override it. 5470 doc: /* Default value of `case-fold-search' for buffers that don't override it.
5471This is the same as (default-value 'case-fold-search). */); 5471This is the same as (default-value \\='case-fold-search). */);
5472 5472
5473 DEFVAR_BUFFER_DEFAULTS ("default-left-margin-width", 5473 DEFVAR_BUFFER_DEFAULTS ("default-left-margin-width",
5474 left_margin_cols, 5474 left_margin_cols,
5475 doc: /* Default value of `left-margin-width' for buffers that don't override it. 5475 doc: /* Default value of `left-margin-width' for buffers that don't override it.
5476This is the same as (default-value 'left-margin-width). */); 5476This is the same as (default-value \\='left-margin-width). */);
5477 5477
5478 DEFVAR_BUFFER_DEFAULTS ("default-right-margin-width", 5478 DEFVAR_BUFFER_DEFAULTS ("default-right-margin-width",
5479 right_margin_cols, 5479 right_margin_cols,
5480 doc: /* Default value of `right-margin-width' for buffers that don't override it. 5480 doc: /* Default value of `right-margin-width' for buffers that don't override it.
5481This is the same as (default-value 'right-margin-width). */); 5481This is the same as (default-value \\='right-margin-width). */);
5482 5482
5483 DEFVAR_BUFFER_DEFAULTS ("default-left-fringe-width", 5483 DEFVAR_BUFFER_DEFAULTS ("default-left-fringe-width",
5484 left_fringe_width, 5484 left_fringe_width,
5485 doc: /* Default value of `left-fringe-width' for buffers that don't override it. 5485 doc: /* Default value of `left-fringe-width' for buffers that don't override it.
5486This is the same as (default-value 'left-fringe-width). */); 5486This is the same as (default-value \\='left-fringe-width). */);
5487 5487
5488 DEFVAR_BUFFER_DEFAULTS ("default-right-fringe-width", 5488 DEFVAR_BUFFER_DEFAULTS ("default-right-fringe-width",
5489 right_fringe_width, 5489 right_fringe_width,
5490 doc: /* Default value of `right-fringe-width' for buffers that don't override it. 5490 doc: /* Default value of `right-fringe-width' for buffers that don't override it.
5491This is the same as (default-value 'right-fringe-width). */); 5491This is the same as (default-value \\='right-fringe-width). */);
5492 5492
5493 DEFVAR_BUFFER_DEFAULTS ("default-fringes-outside-margins", 5493 DEFVAR_BUFFER_DEFAULTS ("default-fringes-outside-margins",
5494 fringes_outside_margins, 5494 fringes_outside_margins,
5495 doc: /* Default value of `fringes-outside-margins' for buffers that don't override it. 5495 doc: /* Default value of `fringes-outside-margins' for buffers that don't override it.
5496This is the same as (default-value 'fringes-outside-margins). */); 5496This is the same as (default-value \\='fringes-outside-margins). */);
5497 5497
5498 DEFVAR_BUFFER_DEFAULTS ("default-scroll-bar-width", 5498 DEFVAR_BUFFER_DEFAULTS ("default-scroll-bar-width",
5499 scroll_bar_width, 5499 scroll_bar_width,
5500 doc: /* Default value of `scroll-bar-width' for buffers that don't override it. 5500 doc: /* Default value of `scroll-bar-width' for buffers that don't override it.
5501This is the same as (default-value 'scroll-bar-width). */); 5501This is the same as (default-value \\='scroll-bar-width). */);
5502 5502
5503 DEFVAR_BUFFER_DEFAULTS ("default-vertical-scroll-bar", 5503 DEFVAR_BUFFER_DEFAULTS ("default-vertical-scroll-bar",
5504 vertical_scroll_bar_type, 5504 vertical_scroll_bar_type,
5505 doc: /* Default value of `vertical-scroll-bar' for buffers that don't override it. 5505 doc: /* Default value of `vertical-scroll-bar' for buffers that don't override it.
5506This is the same as (default-value 'vertical-scroll-bar). */); 5506This is the same as (default-value \\='vertical-scroll-bar). */);
5507 5507
5508 DEFVAR_BUFFER_DEFAULTS ("default-indicate-empty-lines", 5508 DEFVAR_BUFFER_DEFAULTS ("default-indicate-empty-lines",
5509 indicate_empty_lines, 5509 indicate_empty_lines,
5510 doc: /* Default value of `indicate-empty-lines' for buffers that don't override it. 5510 doc: /* Default value of `indicate-empty-lines' for buffers that don't override it.
5511This is the same as (default-value 'indicate-empty-lines). */); 5511This is the same as (default-value \\='indicate-empty-lines). */);
5512 5512
5513 DEFVAR_BUFFER_DEFAULTS ("default-indicate-buffer-boundaries", 5513 DEFVAR_BUFFER_DEFAULTS ("default-indicate-buffer-boundaries",
5514 indicate_buffer_boundaries, 5514 indicate_buffer_boundaries,
5515 doc: /* Default value of `indicate-buffer-boundaries' for buffers that don't override it. 5515 doc: /* Default value of `indicate-buffer-boundaries' for buffers that don't override it.
5516This is the same as (default-value 'indicate-buffer-boundaries). */); 5516This is the same as (default-value \\='indicate-buffer-boundaries). */);
5517 5517
5518 DEFVAR_BUFFER_DEFAULTS ("default-fringe-indicator-alist", 5518 DEFVAR_BUFFER_DEFAULTS ("default-fringe-indicator-alist",
5519 fringe_indicator_alist, 5519 fringe_indicator_alist,
5520 doc: /* Default value of `fringe-indicator-alist' for buffers that don't override it. 5520 doc: /* Default value of `fringe-indicator-alist' for buffers that don't override it.
5521This is the same as (default-value 'fringe-indicator-alist). */); 5521This is the same as (default-value \\='fringe-indicator-alist). */);
5522 5522
5523 DEFVAR_BUFFER_DEFAULTS ("default-fringe-cursor-alist", 5523 DEFVAR_BUFFER_DEFAULTS ("default-fringe-cursor-alist",
5524 fringe_cursor_alist, 5524 fringe_cursor_alist,
5525 doc: /* Default value of `fringe-cursor-alist' for buffers that don't override it. 5525 doc: /* Default value of `fringe-cursor-alist' for buffers that don't override it.
5526This is the same as (default-value 'fringe-cursor-alist). */); 5526This is the same as (default-value \\='fringe-cursor-alist). */);
5527 5527
5528 DEFVAR_BUFFER_DEFAULTS ("default-scroll-up-aggressively", 5528 DEFVAR_BUFFER_DEFAULTS ("default-scroll-up-aggressively",
5529 scroll_up_aggressively, 5529 scroll_up_aggressively,
5530 doc: /* Default value of `scroll-up-aggressively'. 5530 doc: /* Default value of `scroll-up-aggressively'.
5531This value applies in buffers that don't have their own local values. 5531This value applies in buffers that don't have their own local values.
5532This is the same as (default-value 'scroll-up-aggressively). */); 5532This is the same as (default-value \\='scroll-up-aggressively). */);
5533 5533
5534 DEFVAR_BUFFER_DEFAULTS ("default-scroll-down-aggressively", 5534 DEFVAR_BUFFER_DEFAULTS ("default-scroll-down-aggressively",
5535 scroll_down_aggressively, 5535 scroll_down_aggressively,
5536 doc: /* Default value of `scroll-down-aggressively'. 5536 doc: /* Default value of `scroll-down-aggressively'.
5537This value applies in buffers that don't have their own local values. 5537This value applies in buffers that don't have their own local values.
5538This is the same as (default-value 'scroll-down-aggressively). */); 5538This is the same as (default-value \\='scroll-down-aggressively). */);
5539 5539
5540 DEFVAR_PER_BUFFER ("header-line-format", 5540 DEFVAR_PER_BUFFER ("header-line-format",
5541 &BVAR (current_buffer, header_line_format), 5541 &BVAR (current_buffer, header_line_format),
diff --git a/src/category.c b/src/category.c
index ab90f5ff093..bb4a75d3a4d 100644
--- a/src/category.c
+++ b/src/category.c
@@ -491,7 +491,7 @@ between C1 and C2.
491 491
492For instance, to tell that there's a word boundary between Hiragana 492For instance, to tell that there's a word boundary between Hiragana
493and Katakana (both are in the same script `kana'), 493and Katakana (both are in the same script `kana'),
494the element `(?H . ?K) should be in this list. */); 494the element `(?H . ?K)' should be in this list. */);
495 495
496 Vword_combining_categories = Qnil; 496 Vword_combining_categories = Qnil;
497 497
diff --git a/src/data.c b/src/data.c
index 784d127f18a..88c5a309859 100644
--- a/src/data.c
+++ b/src/data.c
@@ -1668,7 +1668,7 @@ this function causes a local value to exist for this buffer,
1668just as setting the variable would do. 1668just as setting the variable would do.
1669 1669
1670This function returns VARIABLE, and therefore 1670This function returns VARIABLE, and therefore
1671 (set (make-local-variable 'VARIABLE) VALUE-EXP) 1671 (set (make-local-variable \\='VARIABLE) VALUE-EXP)
1672works. 1672works.
1673 1673
1674See also `make-variable-buffer-local'. 1674See also `make-variable-buffer-local'.
diff --git a/src/dired.c b/src/dired.c
index e70f136d0cc..97736673f5d 100644
--- a/src/dired.c
+++ b/src/dired.c
@@ -816,7 +816,7 @@ DEFUN ("file-attributes", Ffile_attributes, Sfile_attributes, 1, 2, 0,
816Value is nil if specified file cannot be opened. 816Value is nil if specified file cannot be opened.
817 817
818ID-FORMAT specifies the preferred format of attributes uid and gid (see 818ID-FORMAT specifies the preferred format of attributes uid and gid (see
819below) - valid values are 'string and 'integer. The latter is the 819below) - valid values are `string' and `integer'. The latter is the
820default, but we plan to change that, so you should specify a non-nil value 820default, but we plan to change that, so you should specify a non-nil value
821for ID-FORMAT if you use the returned uid or gid. 821for ID-FORMAT if you use the returned uid or gid.
822 822
diff --git a/src/editfns.c b/src/editfns.c
index a85c9e79d4e..e7d5dd89e51 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -2156,7 +2156,7 @@ applied without consideration for daylight saving time.
2156You can pass more than 7 arguments; then the first six arguments 2156You can pass more than 7 arguments; then the first six arguments
2157are used as SECOND through YEAR, and the *last* argument is used as ZONE. 2157are used as SECOND through YEAR, and the *last* argument is used as ZONE.
2158The intervening arguments are ignored. 2158The intervening arguments are ignored.
2159This feature lets (apply 'encode-time (decode-time ...)) work. 2159This feature lets (apply \\='encode-time (decode-time ...)) work.
2160 2160
2161Out-of-range values for SECOND, MINUTE, HOUR, DAY, or MONTH are allowed; 2161Out-of-range values for SECOND, MINUTE, HOUR, DAY, or MONTH are allowed;
2162for example, a DAY of 0 means the day preceding the given month. 2162for example, a DAY of 0 means the day preceding the given month.
diff --git a/src/eval.c b/src/eval.c
index 6fde7e30b7f..77d435acbe6 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -517,7 +517,7 @@ DEFUN ("quote", Fquote, Squote, 1, UNEVALLED, 0,
517Warning: `quote' does not construct its return value, but just returns 517Warning: `quote' does not construct its return value, but just returns
518the value that was pre-constructed by the Lisp reader (see info node 518the value that was pre-constructed by the Lisp reader (see info node
519`(elisp)Printed Representation'). 519`(elisp)Printed Representation').
520This means that '(a . b) is not identical to (cons 'a 'b): the former 520This means that \\='(a . b) is not identical to (cons \\='a \\='b): the former
521does not cons. Quoting should be reserved for constants that will 521does not cons. Quoting should be reserved for constants that will
522never be modified by side-effects, unless you like self-modifying code. 522never be modified by side-effects, unless you like self-modifying code.
523See the common pitfall in info node `(elisp)Rearrangement' for an example 523See the common pitfall in info node `(elisp)Rearrangement' for an example
@@ -2196,7 +2196,7 @@ eval_sub (Lisp_Object form)
2196DEFUN ("apply", Fapply, Sapply, 1, MANY, 0, 2196DEFUN ("apply", Fapply, Sapply, 1, MANY, 0,
2197 doc: /* Call FUNCTION with our remaining args, using our last arg as list of args. 2197 doc: /* Call FUNCTION with our remaining args, using our last arg as list of args.
2198Then return the value FUNCTION returns. 2198Then return the value FUNCTION returns.
2199Thus, (apply '+ 1 2 '(3 4)) returns 10. 2199Thus, (apply \\='+ 1 2 \\='(3 4)) returns 10.
2200usage: (apply FUNCTION &rest ARGUMENTS) */) 2200usage: (apply FUNCTION &rest ARGUMENTS) */)
2201 (ptrdiff_t nargs, Lisp_Object *args) 2201 (ptrdiff_t nargs, Lisp_Object *args)
2202{ 2202{
@@ -2557,7 +2557,7 @@ DEFUN ("functionp", Ffunctionp, Sfunctionp, 1, 1, 0,
2557DEFUN ("funcall", Ffuncall, Sfuncall, 1, MANY, 0, 2557DEFUN ("funcall", Ffuncall, Sfuncall, 1, MANY, 0,
2558 doc: /* Call first argument as a function, passing remaining arguments to it. 2558 doc: /* Call first argument as a function, passing remaining arguments to it.
2559Return the value that function returns. 2559Return the value that function returns.
2560Thus, (funcall 'cons 'x 'y) returns (x . y). 2560Thus, (funcall \\='cons \\='x \\='y) returns (x . y).
2561usage: (funcall FUNCTION &rest ARGUMENTS) */) 2561usage: (funcall FUNCTION &rest ARGUMENTS) */)
2562 (ptrdiff_t nargs, Lisp_Object *args) 2562 (ptrdiff_t nargs, Lisp_Object *args)
2563{ 2563{
diff --git a/src/fileio.c b/src/fileio.c
index a36dfbcfa36..d4341f8fa59 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -5878,7 +5878,7 @@ the arguments that were passed to that primitive. For example, if you
5878do (file-exists-p FILENAME) and FILENAME is handled by HANDLER, then 5878do (file-exists-p FILENAME) and FILENAME is handled by HANDLER, then
5879HANDLER is called like this: 5879HANDLER is called like this:
5880 5880
5881 (funcall HANDLER 'file-exists-p FILENAME) 5881 (funcall HANDLER \\='file-exists-p FILENAME)
5882 5882
5883Note that HANDLER must be able to handle all I/O primitives; if it has 5883Note that HANDLER must be able to handle all I/O primitives; if it has
5884nothing special to do for a primitive, it should reinvoke the 5884nothing special to do for a primitive, it should reinvoke the
diff --git a/src/fns.c b/src/fns.c
index 26a98abc1a6..aa917ac6ec9 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -347,7 +347,7 @@ This function obeys the conventions for collation order in your
347locale settings. For example, punctuation and whitespace characters 347locale settings. For example, punctuation and whitespace characters
348might be considered less significant for sorting: 348might be considered less significant for sorting:
349 349
350\(sort '\("11" "12" "1 1" "1 2" "1.1" "1.2") 'string-collate-lessp) 350\(sort '\("11" "12" "1 1" "1 2" "1.1" "1.2") \\='string-collate-lessp)
351 => \("11" "1 1" "1.1" "12" "1 2" "1.2") 351 => \("11" "1 1" "1.1" "12" "1 2" "1.2")
352 352
353The optional argument LOCALE, a string, overrides the setting of your 353The optional argument LOCALE, a string, overrides the setting of your
@@ -1083,7 +1083,7 @@ multibyte character of charset `eight-bit'.
1083See also `string-to-multibyte'. 1083See also `string-to-multibyte'.
1084 1084
1085Beware, this often doesn't really do what you think it does. 1085Beware, this often doesn't really do what you think it does.
1086It is similar to (decode-coding-string STRING 'utf-8-emacs). 1086It is similar to (decode-coding-string STRING \\='utf-8-emacs).
1087If you're not sure, whether to use `string-as-multibyte' or 1087If you're not sure, whether to use `string-as-multibyte' or
1088`string-to-multibyte', use `string-to-multibyte'. */) 1088`string-to-multibyte', use `string-to-multibyte'. */)
1089 (Lisp_Object string) 1089 (Lisp_Object string)
diff --git a/src/frame.c b/src/frame.c
index d3e478075c3..6debcb8e7bc 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -976,7 +976,7 @@ except when you want to create a new frame on another terminal.
976In that case, the `tty' parameter specifies the device file to open, 976In that case, the `tty' parameter specifies the device file to open,
977and the `tty-type' parameter specifies the terminal type. Example: 977and the `tty-type' parameter specifies the terminal type. Example:
978 978
979 (make-terminal-frame '((tty . "/dev/pts/5") (tty-type . "xterm"))) 979 (make-terminal-frame \\='((tty . "/dev/pts/5") (tty-type . "xterm")))
980 980
981Note that changing the size of one terminal frame automatically 981Note that changing the size of one terminal frame automatically
982affects all frames on the same terminal device. */) 982affects all frames on the same terminal device. */)
@@ -5018,7 +5018,7 @@ You can also use a floating number between 0.0 and 1.0. */);
5018 DEFVAR_LISP ("default-frame-alist", Vdefault_frame_alist, 5018 DEFVAR_LISP ("default-frame-alist", Vdefault_frame_alist,
5019 doc: /* Alist of default values for frame creation. 5019 doc: /* Alist of default values for frame creation.
5020These may be set in your init file, like this: 5020These may be set in your init file, like this:
5021 (setq default-frame-alist '((width . 80) (height . 55) (menu-bar-lines . 1))) 5021 (setq default-frame-alist \\='((width . 80) (height . 55) (menu-bar-lines . 1)))
5022These override values given in window system configuration data, 5022These override values given in window system configuration data,
5023 including X Windows' defaults database. 5023 including X Windows' defaults database.
5024For values specific to the first Emacs frame, see `initial-frame-alist'. 5024For values specific to the first Emacs frame, see `initial-frame-alist'.
@@ -5176,7 +5176,7 @@ width by the width of one scroll bar provided this option is nil and
5176keep it unchanged if this option is either t or a list containing 5176keep it unchanged if this option is either t or a list containing
5177`vertical-scroll-bars'. 5177`vertical-scroll-bars'.
5178 5178
5179The default value is '(tool-bar-lines) on Lucid, Motif and Windows 5179The default value is \\='(tool-bar-lines) on Lucid, Motif and Windows
5180\(which means that adding/removing a tool bar does not change the frame 5180\(which means that adding/removing a tool bar does not change the frame
5181height), nil on all other window systems including GTK+ (which means 5181height), nil on all other window systems including GTK+ (which means
5182that changing any of the parameters listed above may change the size of 5182that changing any of the parameters listed above may change the size of
diff --git a/src/image.c b/src/image.c
index 743d230ed3b..85cf801f6a9 100644
--- a/src/image.c
+++ b/src/image.c
@@ -9752,7 +9752,7 @@ syms_of_image (void)
9752 defining the supported image types. */ 9752 defining the supported image types. */
9753 DEFVAR_LISP ("image-types", Vimage_types, 9753 DEFVAR_LISP ("image-types", Vimage_types,
9754 doc: /* List of potentially supported image types. 9754 doc: /* List of potentially supported image types.
9755Each element of the list is a symbol for an image type, like 'jpeg or 'png. 9755Each element of the list is a symbol for an image type, like `jpeg' or `png'.
9756To check whether it is really supported, use `image-type-available-p'. */); 9756To check whether it is really supported, use `image-type-available-p'. */);
9757 Vimage_types = Qnil; 9757 Vimage_types = Qnil;
9758 9758
diff --git a/src/keyboard.c b/src/keyboard.c
index dab32b12826..a8b1e9828bf 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -107,10 +107,6 @@ static Lisp_Object recent_keys;
107Lisp_Object this_command_keys; 107Lisp_Object this_command_keys;
108ptrdiff_t this_command_key_count; 108ptrdiff_t this_command_key_count;
109 109
110/* True after calling Freset_this_command_lengths.
111 Usually it is false. */
112static bool this_command_key_count_reset;
113
114/* This vector is used as a buffer to record the events that were actually read 110/* This vector is used as a buffer to record the events that were actually read
115 by read_key_sequence. */ 111 by read_key_sequence. */
116static Lisp_Object raw_keybuf; 112static Lisp_Object raw_keybuf;
@@ -124,11 +120,6 @@ static int raw_keybuf_count;
124 that precede this key sequence. */ 120 that precede this key sequence. */
125static ptrdiff_t this_single_command_key_start; 121static ptrdiff_t this_single_command_key_start;
126 122
127/* Record values of this_command_key_count and echo_length ()
128 before this command was read. */
129static ptrdiff_t before_command_key_count;
130static ptrdiff_t before_command_echo_length;
131
132#ifdef HAVE_STACK_OVERFLOW_HANDLING 123#ifdef HAVE_STACK_OVERFLOW_HANDLING
133 124
134/* For longjmp to recover from C stack overflow. */ 125/* For longjmp to recover from C stack overflow. */
@@ -441,10 +432,12 @@ echo_add_key (Lisp_Object c)
441 ptrdiff_t size = sizeof initbuf; 432 ptrdiff_t size = sizeof initbuf;
442 char *buffer = initbuf; 433 char *buffer = initbuf;
443 char *ptr = buffer; 434 char *ptr = buffer;
444 Lisp_Object echo_string; 435 Lisp_Object echo_string = KVAR (current_kboard, echo_string);
445 USE_SAFE_ALLOCA; 436 USE_SAFE_ALLOCA;
446 437
447 echo_string = KVAR (current_kboard, echo_string); 438 if (STRINGP (echo_string) && SCHARS (echo_string) > 0)
439 /* Add a space at the end as a separator between keys. */
440 ptr++[0] = ' ';
448 441
449 /* If someone has passed us a composite event, use its head symbol. */ 442 /* If someone has passed us a composite event, use its head symbol. */
450 c = EVENT_HEAD (c); 443 c = EVENT_HEAD (c);
@@ -486,48 +479,12 @@ echo_add_key (Lisp_Object c)
486 ptr += len; 479 ptr += len;
487 } 480 }
488 481
489 /* Replace a dash from echo_dash with a space, otherwise add a space
490 at the end as a separator between keys. */
491 AUTO_STRING (space, " ");
492 if (STRINGP (echo_string) && SCHARS (echo_string) > 1)
493 {
494 Lisp_Object last_char, prev_char, idx;
495
496 idx = make_number (SCHARS (echo_string) - 2);
497 prev_char = Faref (echo_string, idx);
498
499 idx = make_number (SCHARS (echo_string) - 1);
500 last_char = Faref (echo_string, idx);
501
502 /* We test PREV_CHAR to make sure this isn't the echoing of a
503 minus-sign. */
504 if (XINT (last_char) == '-' && XINT (prev_char) != ' ')
505 Faset (echo_string, idx, make_number (' '));
506 else
507 echo_string = concat2 (echo_string, space);
508 }
509 else if (STRINGP (echo_string) && SCHARS (echo_string) > 0)
510 echo_string = concat2 (echo_string, space);
511
512 kset_echo_string 482 kset_echo_string
513 (current_kboard, 483 (current_kboard,
514 concat2 (echo_string, make_string (buffer, ptr - buffer))); 484 concat2 (echo_string, make_string (buffer, ptr - buffer)));
515 SAFE_FREE (); 485 SAFE_FREE ();
516} 486}
517 487
518/* Add C to the echo string, if echoing is going on. C can be a
519 character or a symbol. */
520
521static void
522echo_char (Lisp_Object c)
523{
524 if (current_kboard->immediate_echo)
525 {
526 echo_add_key (c);
527 echo_now ();
528 }
529}
530
531/* Temporarily add a dash to the end of the echo string if it's not 488/* Temporarily add a dash to the end of the echo string if it's not
532 empty, so that it serves as a mini-prompt for the very next 489 empty, so that it serves as a mini-prompt for the very next
533 character. */ 490 character. */
@@ -539,9 +496,6 @@ echo_dash (void)
539 if (NILP (KVAR (current_kboard, echo_string))) 496 if (NILP (KVAR (current_kboard, echo_string)))
540 return; 497 return;
541 498
542 if (this_command_key_count == 0)
543 return;
544
545 if (!current_kboard->immediate_echo 499 if (!current_kboard->immediate_echo
546 && SCHARS (KVAR (current_kboard, echo_string)) == 0) 500 && SCHARS (KVAR (current_kboard, echo_string)) == 0)
547 return; 501 return;
@@ -574,39 +528,39 @@ echo_dash (void)
574 echo_now (); 528 echo_now ();
575} 529}
576 530
577/* Display the current echo string, and begin echoing if not already
578 doing so. */
579
580static void 531static void
581echo_now (void) 532echo_update (void)
582{ 533{
583 if (!current_kboard->immediate_echo) 534 if (current_kboard->immediate_echo)
584 { 535 {
585 ptrdiff_t i; 536 ptrdiff_t i;
586 current_kboard->immediate_echo = true; 537 kset_echo_string (current_kboard,
538 call0 (Qinternal_echo_keystrokes_prefix));
587 539
588 for (i = 0; i < this_command_key_count; i++) 540 for (i = 0; i < this_command_key_count; i++)
589 { 541 {
590 Lisp_Object c; 542 Lisp_Object c;
591 543
592 /* Set before_command_echo_length to the value that would
593 have been saved before the start of this subcommand in
594 command_loop_1, if we had already been echoing then. */
595 if (i == this_single_command_key_start)
596 before_command_echo_length = echo_length ();
597
598 c = AREF (this_command_keys, i); 544 c = AREF (this_command_keys, i);
599 if (! (EVENT_HAS_PARAMETERS (c) 545 if (! (EVENT_HAS_PARAMETERS (c)
600 && EQ (EVENT_HEAD_KIND (EVENT_HEAD (c)), Qmouse_movement))) 546 && EQ (EVENT_HEAD_KIND (EVENT_HEAD (c)), Qmouse_movement)))
601 echo_char (c); 547 echo_add_key (c);
602 } 548 }
603 549
604 /* Set before_command_echo_length to the value that would 550 echo_now ();
605 have been saved before the start of this subcommand in 551 }
606 command_loop_1, if we had already been echoing then. */ 552}
607 if (this_command_key_count == this_single_command_key_start) 553
608 before_command_echo_length = echo_length (); 554/* Display the current echo string, and begin echoing if not already
555 doing so. */
609 556
557static void
558echo_now (void)
559{
560 if (!current_kboard->immediate_echo)
561 {
562 current_kboard->immediate_echo = true;
563 echo_update ();
610 /* Put a dash at the end to invite the user to type more. */ 564 /* Put a dash at the end to invite the user to type more. */
611 echo_dash (); 565 echo_dash ();
612 } 566 }
@@ -666,20 +620,6 @@ echo_truncate (ptrdiff_t nchars)
666static void 620static void
667add_command_key (Lisp_Object key) 621add_command_key (Lisp_Object key)
668{ 622{
669#if 0 /* Not needed after we made Freset_this_command_lengths
670 do the job immediately. */
671 /* If reset-this-command-length was called recently, obey it now.
672 See the doc string of that function for an explanation of why. */
673 if (before_command_restore_flag)
674 {
675 this_command_key_count = before_command_key_count_1;
676 if (this_command_key_count < this_single_command_key_start)
677 this_single_command_key_start = this_command_key_count;
678 echo_truncate (before_command_echo_length_1);
679 before_command_restore_flag = 0;
680 }
681#endif
682
683 if (this_command_key_count >= ASIZE (this_command_keys)) 623 if (this_command_key_count >= ASIZE (this_command_keys))
684 this_command_keys = larger_vector (this_command_keys, 1, -1); 624 this_command_keys = larger_vector (this_command_keys, 1, -1);
685 625
@@ -754,7 +694,7 @@ force_auto_save_soon (void)
754DEFUN ("recursive-edit", Frecursive_edit, Srecursive_edit, 0, 0, "", 694DEFUN ("recursive-edit", Frecursive_edit, Srecursive_edit, 0, 0, "",
755 doc: /* Invoke the editor command loop recursively. 695 doc: /* Invoke the editor command loop recursively.
756To get out of the recursive edit, a command can throw to ‘exit’ -- for 696To get out of the recursive edit, a command can throw to ‘exit’ -- for
757instance ‘(throw 'exit nil)’. 697instance ‘(throw \\='exit nil)’.
758If you throw a value other than t, ‘recursive-edit’ returns normally 698If you throw a value other than t, ‘recursive-edit’ returns normally
759to the function that called it. Throwing a t value causes 699to the function that called it. Throwing a t value causes
760‘recursive-edit’ to quit, so that control returns to the command loop 700‘recursive-edit’ to quit, so that control returns to the command loop
@@ -1285,10 +1225,6 @@ static void adjust_point_for_property (ptrdiff_t, bool);
1285/* The last boundary auto-added to buffer-undo-list. */ 1225/* The last boundary auto-added to buffer-undo-list. */
1286Lisp_Object last_undo_boundary; 1226Lisp_Object last_undo_boundary;
1287 1227
1288/* FIXME: This is wrong rather than test window-system, we should call
1289 a new set-selection, which will then dispatch to x-set-selection, or
1290 tty-set-selection, or w32-set-selection, ... */
1291
1292Lisp_Object 1228Lisp_Object
1293command_loop_1 (void) 1229command_loop_1 (void)
1294{ 1230{
@@ -1306,7 +1242,6 @@ command_loop_1 (void)
1306 cancel_echoing (); 1242 cancel_echoing ();
1307 1243
1308 this_command_key_count = 0; 1244 this_command_key_count = 0;
1309 this_command_key_count_reset = false;
1310 this_single_command_key_start = 0; 1245 this_single_command_key_start = 0;
1311 1246
1312 if (NILP (Vmemory_full)) 1247 if (NILP (Vmemory_full))
@@ -1394,9 +1329,6 @@ command_loop_1 (void)
1394 && !NILP (Ffboundp (Qrecompute_lucid_menubar))) 1329 && !NILP (Ffboundp (Qrecompute_lucid_menubar)))
1395 call0 (Qrecompute_lucid_menubar); 1330 call0 (Qrecompute_lucid_menubar);
1396 1331
1397 before_command_key_count = this_command_key_count;
1398 before_command_echo_length = echo_length ();
1399
1400 Vthis_command = Qnil; 1332 Vthis_command = Qnil;
1401 Vreal_this_command = Qnil; 1333 Vreal_this_command = Qnil;
1402 Vthis_original_command = Qnil; 1334 Vthis_original_command = Qnil;
@@ -1424,7 +1356,6 @@ command_loop_1 (void)
1424 { 1356 {
1425 cancel_echoing (); 1357 cancel_echoing ();
1426 this_command_key_count = 0; 1358 this_command_key_count = 0;
1427 this_command_key_count_reset = false;
1428 this_single_command_key_start = 0; 1359 this_single_command_key_start = 0;
1429 goto finalize; 1360 goto finalize;
1430 } 1361 }
@@ -1509,14 +1440,13 @@ command_loop_1 (void)
1509 } 1440 }
1510#endif 1441#endif
1511 1442
1512 if (NILP (KVAR (current_kboard, Vprefix_arg))) /* FIXME: Why? --Stef */ 1443 {
1513 { 1444 Lisp_Object undo = BVAR (current_buffer, undo_list);
1514 Lisp_Object undo = BVAR (current_buffer, undo_list); 1445 Fundo_boundary ();
1515 Fundo_boundary (); 1446 last_undo_boundary
1516 last_undo_boundary 1447 = (EQ (undo, BVAR (current_buffer, undo_list))
1517 = (EQ (undo, BVAR (current_buffer, undo_list)) 1448 ? Qnil : BVAR (current_buffer, undo_list));
1518 ? Qnil : BVAR (current_buffer, undo_list)); 1449 }
1519 }
1520 call1 (Qcommand_execute, Vthis_command); 1450 call1 (Qcommand_execute, Vthis_command);
1521 1451
1522#ifdef HAVE_WINDOW_SYSTEM 1452#ifdef HAVE_WINDOW_SYSTEM
@@ -1544,31 +1474,23 @@ command_loop_1 (void)
1544 1474
1545 safe_run_hooks (Qdeferred_action_function); 1475 safe_run_hooks (Qdeferred_action_function);
1546 1476
1547 /* If there is a prefix argument, 1477 kset_last_command (current_kboard, Vthis_command);
1548 1) We don't want Vlast_command to be ``universal-argument'' 1478 kset_real_last_command (current_kboard, Vreal_this_command);
1549 (that would be dumb), so don't set Vlast_command, 1479 if (!CONSP (last_command_event))
1550 2) we want to leave echoing on so that the prefix will be 1480 kset_last_repeatable_command (current_kboard, Vreal_this_command);
1551 echoed as part of this key sequence, so don't call 1481
1552 cancel_echoing, and 1482 this_command_key_count = 0;
1553 3) we want to leave this_command_key_count non-zero, so that 1483 this_single_command_key_start = 0;
1554 read_char will realize that it is re-reading a character, and 1484
1555 not echo it a second time. 1485 if (current_kboard->immediate_echo
1556 1486 && !NILP (call0 (Qinternal_echo_keystrokes_prefix)))
1557 If the command didn't actually create a prefix arg,
1558 but is merely a frame event that is transparent to prefix args,
1559 then the above doesn't apply. */
1560 if (NILP (KVAR (current_kboard, Vprefix_arg))
1561 || CONSP (last_command_event))
1562 { 1487 {
1563 kset_last_command (current_kboard, Vthis_command); 1488 current_kboard->immediate_echo = false;
1564 kset_real_last_command (current_kboard, Vreal_this_command); 1489 /* Refresh the echo message. */
1565 if (!CONSP (last_command_event)) 1490 echo_now ();
1566 kset_last_repeatable_command (current_kboard, Vreal_this_command);
1567 cancel_echoing ();
1568 this_command_key_count = 0;
1569 this_command_key_count_reset = false;
1570 this_single_command_key_start = 0;
1571 } 1491 }
1492 else
1493 cancel_echoing ();
1572 1494
1573 if (!NILP (BVAR (current_buffer, mark_active)) 1495 if (!NILP (BVAR (current_buffer, mark_active))
1574 && !NILP (Vrun_hooks)) 1496 && !NILP (Vrun_hooks))
@@ -2389,10 +2311,6 @@ read_char (int commandflag, Lisp_Object map,
2389 2311
2390 also_record = Qnil; 2312 also_record = Qnil;
2391 2313
2392#if 0 /* This was commented out as part of fixing echo for C-u left. */
2393 before_command_key_count = this_command_key_count;
2394 before_command_echo_length = echo_length ();
2395#endif
2396 c = Qnil; 2314 c = Qnil;
2397 previous_echo_area_message = Qnil; 2315 previous_echo_area_message = Qnil;
2398 2316
@@ -2471,8 +2389,6 @@ read_char (int commandflag, Lisp_Object map,
2471 goto reread_for_input_method; 2389 goto reread_for_input_method;
2472 } 2390 }
2473 2391
2474 this_command_key_count_reset = false;
2475
2476 if (!NILP (Vexecuting_kbd_macro)) 2392 if (!NILP (Vexecuting_kbd_macro))
2477 { 2393 {
2478 /* We set this to Qmacro; since that's not a frame, nobody will 2394 /* We set this to Qmacro; since that's not a frame, nobody will
@@ -2570,7 +2486,7 @@ read_char (int commandflag, Lisp_Object map,
2570 2486
2571 (3) There's only one place in 20.x where ok_to_echo_at_next_pause 2487 (3) There's only one place in 20.x where ok_to_echo_at_next_pause
2572 is set to a non-null value. This is done in read_char and it is 2488 is set to a non-null value. This is done in read_char and it is
2573 set to echo_area_glyphs after a call to echo_char. That means 2489 set to echo_area_glyphs. That means
2574 ok_to_echo_at_next_pause is either null or 2490 ok_to_echo_at_next_pause is either null or
2575 current_kboard->echobuf with the appropriate current_kboard at 2491 current_kboard->echobuf with the appropriate current_kboard at
2576 that time. 2492 that time.
@@ -2674,7 +2590,8 @@ read_char (int commandflag, Lisp_Object map,
2674 if (minibuf_level == 0 2590 if (minibuf_level == 0
2675 && !end_time 2591 && !end_time
2676 && !current_kboard->immediate_echo 2592 && !current_kboard->immediate_echo
2677 && this_command_key_count > 0 2593 && (this_command_key_count > 0
2594 || !NILP (call0 (Qinternal_echo_keystrokes_prefix)))
2678 && ! noninteractive 2595 && ! noninteractive
2679 && echo_keystrokes_p () 2596 && echo_keystrokes_p ()
2680 && (/* No message. */ 2597 && (/* No message. */
@@ -3018,7 +2935,6 @@ read_char (int commandflag, Lisp_Object map,
3018 { 2935 {
3019 Lisp_Object keys; 2936 Lisp_Object keys;
3020 ptrdiff_t key_count; 2937 ptrdiff_t key_count;
3021 bool key_count_reset;
3022 ptrdiff_t command_key_start; 2938 ptrdiff_t command_key_start;
3023 ptrdiff_t count = SPECPDL_INDEX (); 2939 ptrdiff_t count = SPECPDL_INDEX ();
3024 2940
@@ -3028,20 +2944,8 @@ read_char (int commandflag, Lisp_Object map,
3028 Lisp_Object saved_echo_string = KVAR (current_kboard, echo_string); 2944 Lisp_Object saved_echo_string = KVAR (current_kboard, echo_string);
3029 ptrdiff_t saved_echo_after_prompt = current_kboard->echo_after_prompt; 2945 ptrdiff_t saved_echo_after_prompt = current_kboard->echo_after_prompt;
3030 2946
3031#if 0
3032 if (before_command_restore_flag)
3033 {
3034 this_command_key_count = before_command_key_count_1;
3035 if (this_command_key_count < this_single_command_key_start)
3036 this_single_command_key_start = this_command_key_count;
3037 echo_truncate (before_command_echo_length_1);
3038 before_command_restore_flag = 0;
3039 }
3040#endif
3041
3042 /* Save the this_command_keys status. */ 2947 /* Save the this_command_keys status. */
3043 key_count = this_command_key_count; 2948 key_count = this_command_key_count;
3044 key_count_reset = this_command_key_count_reset;
3045 command_key_start = this_single_command_key_start; 2949 command_key_start = this_single_command_key_start;
3046 2950
3047 if (key_count > 0) 2951 if (key_count > 0)
@@ -3051,7 +2955,6 @@ read_char (int commandflag, Lisp_Object map,
3051 2955
3052 /* Clear out this_command_keys. */ 2956 /* Clear out this_command_keys. */
3053 this_command_key_count = 0; 2957 this_command_key_count = 0;
3054 this_command_key_count_reset = false;
3055 this_single_command_key_start = 0; 2958 this_single_command_key_start = 0;
3056 2959
3057 /* Now wipe the echo area. */ 2960 /* Now wipe the echo area. */
@@ -3075,7 +2978,6 @@ read_char (int commandflag, Lisp_Object map,
3075 /* Restore the saved echoing state 2978 /* Restore the saved echoing state
3076 and this_command_keys state. */ 2979 and this_command_keys state. */
3077 this_command_key_count = key_count; 2980 this_command_key_count = key_count;
3078 this_command_key_count_reset = key_count_reset;
3079 this_single_command_key_start = command_key_start; 2981 this_single_command_key_start = command_key_start;
3080 if (key_count > 0) 2982 if (key_count > 0)
3081 this_command_keys = keys; 2983 this_command_keys = keys;
@@ -3141,28 +3043,23 @@ read_char (int commandflag, Lisp_Object map,
3141 goto retry; 3043 goto retry;
3142 } 3044 }
3143 3045
3144 if ((! reread || this_command_key_count == 0 3046 if ((! reread || this_command_key_count == 0)
3145 || this_command_key_count_reset)
3146 && !end_time) 3047 && !end_time)
3147 { 3048 {
3148 3049
3149 /* Don't echo mouse motion events. */ 3050 /* Don't echo mouse motion events. */
3150 if (echo_keystrokes_p () 3051 if (! (EVENT_HAS_PARAMETERS (c)
3151 && ! (EVENT_HAS_PARAMETERS (c) 3052 && EQ (EVENT_HEAD_KIND (EVENT_HEAD (c)), Qmouse_movement)))
3152 && EQ (EVENT_HEAD_KIND (EVENT_HEAD (c)), Qmouse_movement))) 3053 /* Once we reread a character, echoing can happen
3153 { 3054 the next time we pause to read a new one. */
3154 echo_char (c); 3055 ok_to_echo_at_next_pause = current_kboard;
3155 if (! NILP (also_record))
3156 echo_char (also_record);
3157 /* Once we reread a character, echoing can happen
3158 the next time we pause to read a new one. */
3159 ok_to_echo_at_next_pause = current_kboard;
3160 }
3161 3056
3162 /* Record this character as part of the current key. */ 3057 /* Record this character as part of the current key. */
3163 add_command_key (c); 3058 add_command_key (c);
3164 if (! NILP (also_record)) 3059 if (! NILP (also_record))
3165 add_command_key (also_record); 3060 add_command_key (also_record);
3061
3062 echo_update ();
3166 } 3063 }
3167 3064
3168 last_input_event = c; 3065 last_input_event = c;
@@ -3218,23 +3115,13 @@ record_menu_key (Lisp_Object c)
3218 3115
3219 record_char (c); 3116 record_char (c);
3220 3117
3221#if 0 3118 /* Once we reread a character, echoing can happen
3222 before_command_key_count = this_command_key_count; 3119 the next time we pause to read a new one. */
3223 before_command_echo_length = echo_length (); 3120 ok_to_echo_at_next_pause = NULL;
3224#endif
3225
3226 /* Don't echo mouse motion events. */
3227 if (echo_keystrokes_p ())
3228 {
3229 echo_char (c);
3230
3231 /* Once we reread a character, echoing can happen
3232 the next time we pause to read a new one. */
3233 ok_to_echo_at_next_pause = 0;
3234 }
3235 3121
3236 /* Record this character as part of the current key. */ 3122 /* Record this character as part of the current key. */
3237 add_command_key (c); 3123 add_command_key (c);
3124 echo_update ();
3238 3125
3239 /* Re-reading in the middle of a command. */ 3126 /* Re-reading in the middle of a command. */
3240 last_input_event = c; 3127 last_input_event = c;
@@ -9120,11 +9007,12 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
9120 { 9007 {
9121 key = keybuf[t]; 9008 key = keybuf[t];
9122 add_command_key (key); 9009 add_command_key (key);
9123 if (echo_keystrokes_p () 9010 if (current_kboard->immediate_echo)
9124 && current_kboard->immediate_echo)
9125 { 9011 {
9126 echo_add_key (key); 9012 /* Set immediate_echo to false so as to force echo_now to
9127 echo_dash (); 9013 redisplay (it will set immediate_echo right back to true). */
9014 current_kboard->immediate_echo = false;
9015 echo_now ();
9128 } 9016 }
9129 } 9017 }
9130 9018
@@ -9788,11 +9676,8 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
9788 9676
9789 Better ideas? */ 9677 Better ideas? */
9790 for (; t < mock_input; t++) 9678 for (; t < mock_input; t++)
9791 { 9679 add_command_key (keybuf[t]);
9792 if (echo_keystrokes_p ()) 9680 echo_update ();
9793 echo_char (keybuf[t]);
9794 add_command_key (keybuf[t]);
9795 }
9796 9681
9797 return t; 9682 return t;
9798} 9683}
@@ -9819,7 +9704,6 @@ read_key_sequence_vs (Lisp_Object prompt, Lisp_Object continue_echo,
9819 if (NILP (continue_echo)) 9704 if (NILP (continue_echo))
9820 { 9705 {
9821 this_command_key_count = 0; 9706 this_command_key_count = 0;
9822 this_command_key_count_reset = false;
9823 this_single_command_key_start = 0; 9707 this_single_command_key_start = 0;
9824 } 9708 }
9825 9709
@@ -10076,33 +9960,6 @@ The value is always a vector. */)
10076 return Fvector (raw_keybuf_count, XVECTOR (raw_keybuf)->contents); 9960 return Fvector (raw_keybuf_count, XVECTOR (raw_keybuf)->contents);
10077} 9961}
10078 9962
10079DEFUN ("reset-this-command-lengths", Freset_this_command_lengths,
10080 Sreset_this_command_lengths, 0, 0, 0,
10081 doc: /* Make the unread events replace the last command and echo.
10082Used in `universal-argument-other-key'.
10083
10084`universal-argument-other-key' rereads the event just typed.
10085It then gets translated through `function-key-map'.
10086The translated event has to replace the real events,
10087both in the value of (this-command-keys) and in echoing.
10088To achieve this, `universal-argument-other-key' calls
10089`reset-this-command-lengths', which discards the record of reading
10090these events the first time. */)
10091 (void)
10092{
10093 this_command_key_count = before_command_key_count;
10094 if (this_command_key_count < this_single_command_key_start)
10095 this_single_command_key_start = this_command_key_count;
10096
10097 echo_truncate (before_command_echo_length);
10098
10099 /* Cause whatever we put into unread-command-events
10100 to echo as if it were being freshly read from the keyboard. */
10101 this_command_key_count_reset = true;
10102
10103 return Qnil;
10104}
10105
10106DEFUN ("clear-this-command-keys", Fclear_this_command_keys, 9963DEFUN ("clear-this-command-keys", Fclear_this_command_keys,
10107 Sclear_this_command_keys, 0, 1, 0, 9964 Sclear_this_command_keys, 0, 1, 0,
10108 doc: /* Clear out the vector that `this-command-keys' returns. 9965 doc: /* Clear out the vector that `this-command-keys' returns.
@@ -10113,7 +9970,6 @@ KEEP-RECORD is non-nil. */)
10113 int i; 9970 int i;
10114 9971
10115 this_command_key_count = 0; 9972 this_command_key_count = 0;
10116 this_command_key_count_reset = false;
10117 9973
10118 if (NILP (keep_record)) 9974 if (NILP (keep_record))
10119 { 9975 {
@@ -11210,6 +11066,7 @@ syms_of_keyboard (void)
11210 staticpro (&raw_keybuf); 11066 staticpro (&raw_keybuf);
11211 11067
11212 DEFSYM (Qcommand_execute, "command-execute"); 11068 DEFSYM (Qcommand_execute, "command-execute");
11069 DEFSYM (Qinternal_echo_keystrokes_prefix, "internal-echo-keystrokes-prefix");
11213 11070
11214 accent_key_syms = Qnil; 11071 accent_key_syms = Qnil;
11215 staticpro (&accent_key_syms); 11072 staticpro (&accent_key_syms);
@@ -11253,7 +11110,6 @@ syms_of_keyboard (void)
11253 defsubr (&Sthis_command_keys_vector); 11110 defsubr (&Sthis_command_keys_vector);
11254 defsubr (&Sthis_single_command_keys); 11111 defsubr (&Sthis_single_command_keys);
11255 defsubr (&Sthis_single_command_raw_keys); 11112 defsubr (&Sthis_single_command_raw_keys);
11256 defsubr (&Sreset_this_command_lengths);
11257 defsubr (&Sclear_this_command_keys); 11113 defsubr (&Sclear_this_command_keys);
11258 defsubr (&Ssuspend_emacs); 11114 defsubr (&Ssuspend_emacs);
11259 defsubr (&Sabort_recursive_edit); 11115 defsubr (&Sabort_recursive_edit);
diff --git a/src/print.c b/src/print.c
index d3b1a927b22..94f3fcd7db1 100644
--- a/src/print.c
+++ b/src/print.c
@@ -2212,7 +2212,7 @@ This affects only `prin1'. */);
2212 2212
2213 DEFVAR_BOOL ("print-quoted", print_quoted, 2213 DEFVAR_BOOL ("print-quoted", print_quoted,
2214 doc: /* Non-nil means print quoted forms with reader syntax. 2214 doc: /* Non-nil means print quoted forms with reader syntax.
2215I.e., (quote foo) prints as 'foo, (function foo) as #'foo. */); 2215I.e., (quote foo) prints as \\='foo, (function foo) as #\\='foo. */);
2216 print_quoted = 0; 2216 print_quoted = 0;
2217 2217
2218 DEFVAR_LISP ("print-gensym", Vprint_gensym, 2218 DEFVAR_LISP ("print-gensym", Vprint_gensym,
diff --git a/src/process.c b/src/process.c
index 17e9187aa65..1ab83780914 100644
--- a/src/process.c
+++ b/src/process.c
@@ -2685,7 +2685,7 @@ Examples:
2685\(serial-process-configure :process "/dev/ttyS0" :speed 1200) 2685\(serial-process-configure :process "/dev/ttyS0" :speed 1200)
2686 2686
2687\(serial-process-configure 2687\(serial-process-configure
2688 :buffer "COM1" :stopbits 1 :parity 'odd :flowcontrol 'hw) 2688 :buffer "COM1" :stopbits 1 :parity \\='odd :flowcontrol \\='hw)
2689 2689
2690\(serial-process-configure :port "\\\\.\\COM13" :bytesize 7) 2690\(serial-process-configure :port "\\\\.\\COM13" :bytesize 7)
2691 2691
@@ -2785,7 +2785,7 @@ Examples:
2785 2785
2786\(make-serial-process :port "COM1" :speed 115200 :stopbits 2) 2786\(make-serial-process :port "COM1" :speed 115200 :stopbits 2)
2787 2787
2788\(make-serial-process :port "\\\\.\\COM13" :speed 1200 :bytesize 7 :parity 'odd) 2788\(make-serial-process :port "\\\\.\\COM13" :speed 1200 :bytesize 7 :parity \\='odd)
2789 2789
2790\(make-serial-process :port "/dev/tty.BlueConsole-SPP-1" :speed nil) 2790\(make-serial-process :port "/dev/tty.BlueConsole-SPP-1" :speed nil)
2791 2791
diff --git a/src/w32fns.c b/src/w32fns.c
index f279fb86c2f..d8e22e2aa9c 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -5782,8 +5782,8 @@ Internal use only, use `display-monitor-attributes-list' instead. */)
5782 5782
5783DEFUN ("set-message-beep", Fset_message_beep, Sset_message_beep, 1, 1, 0, 5783DEFUN ("set-message-beep", Fset_message_beep, Sset_message_beep, 1, 1, 0,
5784 doc: /* Set the sound generated when the bell is rung. 5784 doc: /* Set the sound generated when the bell is rung.
5785SOUND is 'asterisk, 'exclamation, 'hand, 'question, 'ok, or 'silent 5785SOUND is `asterisk', `exclamation', `hand', `question', `ok', or `silent'
5786to use the corresponding system sound for the bell. The 'silent sound 5786to use the corresponding system sound for the bell. The `silent' sound
5787prevents Emacs from making any sound at all. 5787prevents Emacs from making any sound at all.
5788SOUND is nil to use the normal beep. */) 5788SOUND is nil to use the normal beep. */)
5789 (Lisp_Object sound) 5789 (Lisp_Object sound)
diff --git a/src/xfaces.c b/src/xfaces.c
index 556f361c10d..d89adca8c57 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -6506,8 +6506,8 @@ If this variable is made buffer-local, the face remapping takes effect
6506only in that buffer. For instance, the mode my-mode could define a 6506only in that buffer. For instance, the mode my-mode could define a
6507face `my-mode-default', and then in the mode setup function, do: 6507face `my-mode-default', and then in the mode setup function, do:
6508 6508
6509 (set (make-local-variable 'face-remapping-alist) 6509 (set (make-local-variable \\='face-remapping-alist)
6510 '((default my-mode-default)))). 6510 \\='((default my-mode-default)))).
6511 6511
6512Because Emacs normally only redraws screen areas when the underlying 6512Because Emacs normally only redraws screen areas when the underlying
6513buffer contents change, you may need to call `redraw-display' after 6513buffer contents change, you may need to call `redraw-display' after