aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorJoakim Verona2011-12-28 11:34:15 +0100
committerJoakim Verona2011-12-28 11:34:15 +0100
commit2f74c36bf173b5ad01f99e0d1b31b9b8fa5c8f2f (patch)
tree034e65ef002631d0aba8fc1a41e9984fc557e630 /lisp
parentbb29f044aa967831cd664c54eba0de0c701436ce (diff)
parentd23ab8e8726ecb7e3554644857b4a58e5f7408f1 (diff)
downloademacs-2f74c36bf173b5ad01f99e0d1b31b9b8fa5c8f2f.tar.gz
emacs-2f74c36bf173b5ad01f99e0d1b31b9b8fa5c8f2f.zip
upstream
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog435
-rw-r--r--lisp/ChangeLog.102
-rw-r--r--lisp/ChangeLog.112
-rw-r--r--lisp/ChangeLog.1210
-rw-r--r--lisp/ChangeLog.136
-rw-r--r--lisp/ChangeLog.146
-rw-r--r--lisp/ChangeLog.156
-rw-r--r--lisp/ChangeLog.22
-rw-r--r--lisp/ChangeLog.34
-rw-r--r--lisp/ChangeLog.720
-rw-r--r--lisp/ChangeLog.92
-rw-r--r--lisp/align.el6
-rw-r--r--lisp/allout-widgets.el2
-rw-r--r--lisp/allout.el12
-rw-r--r--lisp/ansi-color.el4
-rw-r--r--lisp/arc-mode.el4
-rw-r--r--lisp/battery.el35
-rw-r--r--lisp/calc/calc-alg.el2
-rw-r--r--lisp/calc/calc-menu.el289
-rw-r--r--lisp/calc/calc-misc.el4
-rw-r--r--lisp/calc/calc-poly.el26
-rw-r--r--lisp/calc/calc-yank.el12
-rw-r--r--lisp/calculator.el2
-rw-r--r--lisp/calendar/appt.el4
-rw-r--r--lisp/calendar/holidays.el2
-rw-r--r--lisp/calendar/solar.el2
-rw-r--r--lisp/cedet/ChangeLog9
-rw-r--r--lisp/cedet/data-debug.el4
-rw-r--r--lisp/cedet/ede/pmake.el6
-rw-r--r--lisp/cedet/ede/proj-archive.el2
-rw-r--r--lisp/cedet/ede/proj-shared.el2
-rw-r--r--lisp/cedet/inversion.el4
-rw-r--r--lisp/cedet/semantic.el2
-rw-r--r--lisp/cedet/semantic/analyze/debug.el2
-rw-r--r--lisp/cedet/semantic/bovine/c.el4
-rw-r--r--lisp/cedet/semantic/bovine/el.el8
-rw-r--r--lisp/cedet/semantic/db-file.el12
-rw-r--r--lisp/cedet/semantic/db-find.el12
-rw-r--r--lisp/cedet/semantic/db.el4
-rw-r--r--lisp/cedet/semantic/debug.el2
-rw-r--r--lisp/cedet/semantic/edit.el3
-rw-r--r--lisp/cedet/semantic/find.el2
-rw-r--r--lisp/cedet/semantic/grammar.el2
-rw-r--r--lisp/cedet/semantic/idle.el8
-rw-r--r--lisp/cedet/semantic/lex.el6
-rw-r--r--lisp/cedet/semantic/scope.el2
-rw-r--r--lisp/cedet/semantic/tag-ls.el2
-rw-r--r--lisp/cedet/semantic/util-modes.el6
-rw-r--r--lisp/cedet/semantic/wisent/comp.el4
-rw-r--r--lisp/cedet/srecode/args.el3
-rw-r--r--lisp/cedet/srecode/fields.el2
-rw-r--r--lisp/cedet/srecode/insert.el2
-rw-r--r--lisp/cedet/srecode/srt-mode.el2
-rw-r--r--lisp/comint.el2
-rw-r--r--lisp/delim-col.el18
-rw-r--r--lisp/delsel.el2
-rw-r--r--lisp/descr-text.el16
-rw-r--r--lisp/desktop.el4
-rw-r--r--lisp/dframe.el2
-rw-r--r--lisp/dired-x.el2
-rw-r--r--lisp/dired.el4
-rw-r--r--lisp/electric.el2
-rw-r--r--lisp/emacs-lisp/assoc.el7
-rw-r--r--lisp/emacs-lisp/bytecomp.el2
-rw-r--r--lisp/emacs-lisp/edebug.el2
-rw-r--r--lisp/emacs-lisp/eieio.el2
-rw-r--r--lisp/emacs-lisp/lisp-mode.el1
-rw-r--r--lisp/emacs-lisp/package.el7
-rw-r--r--lisp/emacs-lisp/pcase.el10
-rw-r--r--lisp/emacs-lisp/syntax.el4
-rw-r--r--lisp/emulation/cua-base.el4
-rw-r--r--lisp/emulation/cua-gmrk.el2
-rw-r--r--lisp/emulation/cua-rect.el4
-rw-r--r--lisp/emulation/vip.el4
-rw-r--r--lisp/emulation/viper-cmd.el22
-rw-r--r--lisp/emulation/viper-init.el2
-rw-r--r--lisp/emulation/viper-macs.el2
-rw-r--r--lisp/emulation/viper.el2
-rw-r--r--lisp/epa-dired.el2
-rw-r--r--lisp/epa-file.el4
-rw-r--r--lisp/erc/ChangeLog.028
-rw-r--r--lisp/erc/ChangeLog.0316
-rw-r--r--lisp/erc/erc-backend.el2
-rw-r--r--lisp/eshell/em-dirs.el2
-rw-r--r--lisp/eshell/em-rebind.el2
-rw-r--r--lisp/faces.el11
-rw-r--r--lisp/files.el57
-rw-r--r--lisp/filesets.el2
-rw-r--r--lisp/follow.el4
-rw-r--r--lisp/font-lock.el2
-rw-r--r--lisp/forms.el2
-rw-r--r--lisp/gnus/ChangeLog129
-rw-r--r--lisp/gnus/ChangeLog.24
-rw-r--r--lisp/gnus/gnus-art.el2
-rw-r--r--lisp/gnus/gnus-fun.el6
-rw-r--r--lisp/gnus/gnus-group.el2
-rw-r--r--lisp/gnus/gnus-msg.el4
-rw-r--r--lisp/gnus/gnus-spec.el4
-rw-r--r--lisp/gnus/gnus-sum.el15
-rw-r--r--lisp/gnus/gnus-win.el4
-rw-r--r--lisp/gnus/gnus.el2
-rw-r--r--lisp/gnus/message.el23
-rw-r--r--lisp/gnus/mm-decode.el2
-rw-r--r--lisp/gnus/mm-view.el1
-rw-r--r--lisp/gnus/nndiary.el10
-rw-r--r--lisp/gnus/nnir.el4
-rw-r--r--lisp/gnus/nntp.el2
-rw-r--r--lisp/gnus/plstore.el2
-rw-r--r--lisp/gnus/rfc2231.el2
-rw-r--r--lisp/gs.el4
-rw-r--r--lisp/hilit-chg.el2
-rw-r--r--lisp/htmlfontify.el2
-rw-r--r--lisp/ibuf-ext.el2
-rw-r--r--lisp/ibuffer.el6
-rw-r--r--lisp/ido.el2
-rw-r--r--lisp/international/ccl.el4
-rw-r--r--lisp/international/mule-cmds.el2
-rw-r--r--lisp/international/mule-util.el2
-rw-r--r--lisp/international/mule.el2
-rw-r--r--lisp/international/quail.el6
-rw-r--r--lisp/international/robin.el6
-rw-r--r--lisp/international/titdic-cnv.el8
-rw-r--r--lisp/international/ucs-normalize.el2
-rw-r--r--lisp/kmacro.el2
-rw-r--r--lisp/language/chinese.el14
-rw-r--r--lisp/language/cyrillic.el4
-rw-r--r--lisp/language/ethio-util.el6
-rw-r--r--lisp/language/lao-util.el2
-rw-r--r--lisp/language/viet-util.el4
-rw-r--r--lisp/ldefs-boot.el2
-rw-r--r--lisp/loadhist.el2
-rw-r--r--lisp/mail/emacsbug.el2
-rw-r--r--lisp/mail/rmail.el4
-rw-r--r--lisp/mail/rmailmm.el2
-rw-r--r--lisp/mail/rmailsum.el6
-rw-r--r--lisp/makefile.w32-in7
-rw-r--r--lisp/man.el5
-rw-r--r--lisp/mh-e/ChangeLog5
-rw-r--r--lisp/mh-e/ChangeLog.16
-rw-r--r--lisp/net/ange-ftp.el8
-rw-r--r--lisp/net/dbus.el2
-rw-r--r--lisp/net/netrc.el2
-rw-r--r--lisp/net/network-stream.el2
-rw-r--r--lisp/net/ntlm.el2
-rw-r--r--lisp/net/tramp-gvfs.el2
-rw-r--r--lisp/net/tramp-sh.el16
-rw-r--r--lisp/net/tramp.el6
-rw-r--r--lisp/net/xesam.el6
-rw-r--r--lisp/net/zeroconf.el2
-rw-r--r--lisp/nxml/rng-valid.el4
-rw-r--r--lisp/obsolete/old-whitespace.el8
-rw-r--r--lisp/obsolete/pgg.el2
-rw-r--r--lisp/org/ChangeLog17
-rw-r--r--lisp/org/ob-ref.el2
-rw-r--r--lisp/org/ob.el4
-rw-r--r--lisp/org/org-agenda.el4
-rw-r--r--lisp/org/org-clock.el4
-rw-r--r--lisp/org/org-list.el2
-rw-r--r--lisp/org/org-protocol.el8
-rw-r--r--lisp/org/org-publish.el6
-rw-r--r--lisp/org/org-taskjuggler.el2
-rw-r--r--lisp/org/org.el6
-rw-r--r--lisp/pcmpl-gnu.el17
-rw-r--r--lisp/play/gametree.el2
-rw-r--r--lisp/printing.el12
-rw-r--r--lisp/proced.el2
-rw-r--r--lisp/progmodes/ada-mode.el6
-rw-r--r--lisp/progmodes/ada-stmt.el2
-rw-r--r--lisp/progmodes/ada-xref.el2
-rw-r--r--lisp/progmodes/cc-awk.el8
-rw-r--r--lisp/progmodes/cc-cmds.el6
-rw-r--r--lisp/progmodes/cc-defs.el2
-rw-r--r--lisp/progmodes/cc-engine.el234
-rw-r--r--lisp/progmodes/cc-fonts.el32
-rw-r--r--lisp/progmodes/cc-langs.el72
-rw-r--r--lisp/progmodes/cc-mode.el196
-rw-r--r--lisp/progmodes/cc-vars.el2
-rw-r--r--lisp/progmodes/cfengine.el142
-rw-r--r--lisp/progmodes/cperl-mode.el14
-rw-r--r--lisp/progmodes/dcl-mode.el4
-rw-r--r--lisp/progmodes/ebnf2ps.el8
-rw-r--r--lisp/progmodes/gdb-mi.el223
-rw-r--r--lisp/progmodes/grep.el7
-rw-r--r--lisp/progmodes/gud.el108
-rw-r--r--lisp/progmodes/hideif.el2
-rw-r--r--lisp/progmodes/idlwave.el4
-rw-r--r--lisp/progmodes/inf-lisp.el2
-rw-r--r--lisp/progmodes/js.el2
-rw-r--r--lisp/progmodes/make-mode.el58
-rw-r--r--lisp/progmodes/pascal.el1
-rw-r--r--lisp/progmodes/prolog.el6
-rw-r--r--lisp/progmodes/python.el2
-rw-r--r--lisp/progmodes/sql.el2
-rw-r--r--lisp/progmodes/vera-mode.el4
-rw-r--r--lisp/progmodes/verilog-mode.el20
-rw-r--r--lisp/progmodes/vhdl-mode.el26
-rw-r--r--lisp/ps-mule.el6
-rw-r--r--lisp/ps-print.el2
-rw-r--r--lisp/reveal.el6
-rw-r--r--lisp/server.el18
-rw-r--r--lisp/ses.el181
-rw-r--r--lisp/shell.el2
-rw-r--r--lisp/simple.el54
-rw-r--r--lisp/speedbar.el4
-rw-r--r--lisp/term.el4
-rw-r--r--lisp/term/ns-win.el21
-rw-r--r--lisp/term/rxvt.el2
-rw-r--r--lisp/term/x-win.el2
-rw-r--r--lisp/term/xterm.el2
-rw-r--r--lisp/textmodes/artist.el8
-rw-r--r--lisp/textmodes/fill.el4
-rw-r--r--lisp/textmodes/ispell.el4
-rw-r--r--lisp/textmodes/picture.el2
-rw-r--r--lisp/textmodes/reftex-dcr.el2
-rw-r--r--lisp/textmodes/remember.el2
-rw-r--r--lisp/textmodes/rst.el2
-rw-r--r--lisp/textmodes/table.el8
-rw-r--r--lisp/textmodes/texinfmt.el4
-rw-r--r--lisp/textmodes/texnfo-upd.el122
-rw-r--r--lisp/time.el2
-rw-r--r--lisp/url/ChangeLog4
-rw-r--r--lisp/url/url-cookie.el2
-rw-r--r--lisp/url/url-gw.el4
-rw-r--r--lisp/url/url-http.el4
-rw-r--r--lisp/url/url-vars.el1
-rw-r--r--lisp/vc/ediff-init.el2
-rw-r--r--lisp/vc/ediff-ptch.el2
-rw-r--r--lisp/vc/emerge.el2
-rw-r--r--lisp/vc/pcvs.el2
-rw-r--r--lisp/vc/vc-bzr.el5
-rw-r--r--lisp/vc/vc-dir.el100
-rw-r--r--lisp/vc/vc-hg.el2
-rw-r--r--lisp/vc/vc-hooks.el6
-rw-r--r--lisp/vc/vc.el61
-rw-r--r--lisp/vcursor.el2
-rw-r--r--lisp/view.el4
-rw-r--r--lisp/wid-edit.el6
-rw-r--r--lisp/window.el121
238 files changed, 2240 insertions, 1503 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index c77ace6d483..78cc1862c2f 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,383 @@
12011-12-28 Chong Yidong <cyd@gnu.org>
2
3 * progmodes/gdb-mi.el (gdb-get-source-file-list)
4 (gdb-get-source-file): Move mode line update to
5 gdb-get-source-file (Bug#10087).
6
72011-12-25 Chong Yidong <cyd@gnu.org>
8
9 * progmodes/gud.el (gud-gdb-fetch-lines-filter): Just use
10 gud-gdb-marker-filter without taking it as an argument.
11 (gud-gdb-run-command-fetch-lines): Caller changed.
12 (gud-gdb-completion-function): New variable.
13 (gud-gdb-completion-at-point): Use it.
14 (gud-gdb-completions-1): Split from gud-gdb-completions.
15
16 * progmodes/gdb-mi.el (gdb-input): Accept command and handler
17 function as separate arguments.
18 (gdb-init-1, gdb-non-stop-handler, gdb-check-target-async)
19 (gdb-tooltip-print-1, gud-watch, gdb-speedbar-update)
20 (gdb-var-list-children, gdb-var-set-format, gdb-var-delete-1)
21 (gdb-var-delete-children, gdb-edit-value, gdb-var-update)
22 (gdb-stopped, def-gdb-auto-update-trigger)
23 (gdb-place-breakpoints, gdb-select-thread, gdb-select-frame)
24 (gdb-get-changed-registers, gdb-get-main-selected-frame): Callers
25 changed.
26 (gud-gdbmi-completions): New function.
27 (gdb): Use it for generating the completion table.
28
292011-12-24 Alan Mackenzie <acm@muc.de>
30
31 Introduce a mechanism to widen the region used in context font
32 locking. Use this to protect declarations from losing their
33 contexts.
34
35 * progmodes/cc-langs.el (c-before-font-lock-functions): replace
36 c-set-fl-decl-start with c-change-set-fl-decl-start (Renaming).
37 (c-before-context-fontification-functions): new defvar, a list of
38 functions to be run just before context (etc.) font locking.
39
40 * progmodes/cc-mode.el (c-extend-font-lock-region-for-macros):
41 new, functionality extracted from
42 c-neutralize-syntax-in-and-mark-CPP.
43 (c-in-after-change-fontification): new variable.
44 (c-after-change): Set c-in-after-change-fontification.
45 (c-set-fl-decl-start): Rejig its interface, so it can be called
46 from both after-change and context fontifying.
47 (c-change-set-fl-decl-start, c-context-set-fl-decl-start): new
48 functions.
49 (c-standard-font-lock-fontify-region-function): new variable.
50 (c-font-lock-fontify-region): new function.
51
522011-12-24 Juri Linkov <juri@jurta.org>
53
54 * window.el (window--state-get-1): Set `FORCE' arg of `mark' to t.
55 (Bug#10348)
56
572011-12-23 Michael Albinus <michael.albinus@gmx.de>
58
59 * net/ange-ftp.el (ange-ftp-copy-file-internal): Check for
60 existence of source file. (Bug#10325)
61
622011-12-23 Alan Mackenzie <acm@muc.de>
63
64 Fix unstable fontification inside templates.
65
66 * progmodes/cc-langs.el (c-before-font-lock-functions): newly
67 created from the singular version. The (c c++ objc) entry now
68 additionally has c-set-fl-decl-start. The other languages (apart
69 from AWK) have that as a single entry.
70
71 * progmodes/cc-fonts.el (c-font-lock-enclosing-decls): The
72 functionality for "local" declarations has been extracted to
73 c-set-fl-decl-start.
74
75 * progmodes/cc-mode.el: (c-common-init, c-after-change): Changes
76 due to pluralisation of c-before-font-lock-functions.
77 (c-set-fl-decl-start): New function, extracted from
78 c-font-lock-enclosing-decls and enhanced.
79
802011-12-23 Juanma Barranquero <lekktu@gmail.com>
81
82 * desktop.el (desktop-internal-v2s): Fix typos in docstring (bug#10353).
83
842011-12-22 Juri Linkov <juri@jurta.org>
85
86 * progmodes/grep.el (rgrep): Fix docstring. (Bug#10185)
87
882011-12-22 Chong Yidong <cyd@gnu.org>
89
90 * vc/vc-hooks.el (vc-keep-workfiles): Doc fix.
91
922011-12-21 Drew Adams <drew.adams@oracle.com>
93
94 * files.el (file-remote-p): Fix docstring. (Bug#10319)
95
962011-12-21 Jérémy Compostella <jeremy.compostella@gmail.com>
97
98 * battery.el (battery-linux-sysfs): Add missing parameters from acpi.
99
1002011-12-21 Teodor Zlatanov <tzz@lifelogs.com>
101
102 * progmodes/cfengine.el: Add Version.
103
104 Add CFEngine 3.x syntax highlighting and support with
105 `cfengine3-mode', and rename the old `cfengine-mode' to
106 `cfengine2-mode'. Make `cfengine-mode' an automatic content-based
107 switcher between `cfengine3-mode' and `cfengine2-mode' by aliasing
108 it to `cfengine-auto-mode'. Rename variables specific to
109 `cfengine2-mode' from cfengine-* to cfengine2-*. Change the
110 modeline indicator to "CFE2" and "CFE3" depending on the mode, to
111 save space. Mark `cfengine-mode-abbrevs' as obsolete.
112
1132011-12-21 Chong Yidong <cyd@gnu.org>
114
115 * vc/vc-bzr.el (vc-bzr-rename-file): Don't pass ~ to Bzr in
116 filename argument.
117
1182011-12-20 Martin Rudalics <rudalics@gmx.at>
119
120 * window.el (window-normalize-buffer-to-display): Remove.
121 (display-buffer): Handle buffer-or-name argument as in Emacs 23.
122
1232011-12-19 Chong Yidong <cyd@gnu.org>
124
125 * vc/vc-dir.el (vc-dir-parent-marked-p, vc-dir-children-marked-p):
126 Don't signal an error in a predicate function; return non-nil.
127 (vc-dir-mark-file): Move the error here.
128 (vc-dir-mark-unmark): If acting on the region, keep going if one
129 of the entries cannot be marked/unmarked.
130 (vc-dir-mark-all-files): If current entry is a directory, mark
131 only child files, as documented.
132
1332011-12-19 Vincent Belaïche <vincentb1@users.sourceforge.net>
134
135 * ses.el: Ooops... undo changes of 2011-12-11T14:49:48Z!vincentb1@users.sourceforge.net, as trunk
136 branch is feature frozen, and 2011-12-11T14:49:48Z!vincentb1@users.sourceforge.net was a feature
137 addition.
138
1392011-12-18 Jan Djärv <jan.h.d@swipnet.se>
140
141 * term/ns-win.el (ns-get-selection-internal)
142 (ns-store-selection-internal): Declare.
143 (ns-store-cut-buffer-internal, ns-get-cut-buffer-internal):
144 Declare as obsolete.
145 (ns-get-pasteboard, ns-paste-secondary):
146 Use ns-get-selection-internal.
147 (ns-set-pasteboard, ns-copy-including-secondary):
148 Use ns-store-selection-internal.
149
1502011-12-17 Chong Yidong <cyd@gnu.org>
151
152 * vc/vc.el (vc-next-action): Doc fix; remove CVS-isms.
153 (vc-deduce-fileset): Doc fix.
154
1552011-12-16 Andreas Schwab <schwab@linux-m68k.org>
156
157 * calc/calc-misc.el (calc-help): Avoid wrapping help message.
158
1592011-12-13 Sam Steingold <sds@gnu.org>
160
161 * man.el (Man-getpage-in-background): When running under a
162 window-system, ignore $MANWIDTH and $COLUMNS.
163
1642011-12-15 Kenichi Handa <handa@m17n.org>
165
166 * language/ethio-util.el: Change coding tag to utf-8-emacs.
167 (setup-ethiopic-environment-internal): Comment out key-binding for
168 ethio-toggle-punctuation.
169
1702011-12-13 Alan Mackenzie <acm@muc.de>
171
172 Add the switch statement to AWK Mode.
173
174 * progmodes/cc-awk (awk-font-lock-keywords): Add "switch", "case",
175 "default" to the keywords regexp.
176
177 * progmodes/cc-langs (c-label-kwds): Let AWK take the same
178 expression as the rest.
179 (c-nonlabel-token-key): Allow string literals for AWK. Refactor
180 for the other modes.
181
182 Large brace-block initialisation makes CC Mode slow: Fix.
183 Tidy up and accelerate c-in-literal, etc. by using the
184 c-parse-state
185 routines. Limit backward searching in c-font-lock-enclosing.decl.
186
187 * progmodes/cc-engine.el (c-state-pp-to-literal): Return the
188 pp-state and literal type in addition to the limits.
189 (c-state-safe-place): New defun, extracted from
190 c-state-literal-at.
191 (c-state-literal-at): Use the above new defun.
192 (c-slow-in-literal, c-fast-in-literal): Removed.
193 (c-in-literal, c-literal-limits): Amended to use
194 c-state-pp-to-literal.
195
196 * progmodes/cc-fonts.el (c-font-lock-enclosing-decls): Check for
197 being in a literal. Add a limit for backward searching.
198
199 * progmodes/cc-mode.el (awk-mode): Don't alias c-in-literal to
200 c-slow-in-literal.
201
2022011-12-13 Stefan Monnier <monnier@iro.umontreal.ca>
203
204 * progmodes/pascal.el: Declare `ind' as dyn-bound (bug#10264).
205
2062011-12-13 Martin Rudalics <rudalics@gmx.at>
207
208 * window.el (delete-other-windows): Use correct frame in call to
209 window-with-parameter.
210
2112011-12-12 Daniel Pfeiffer <occitan@t-online.de>
212
213 * progmodes/make-mode.el: Bring it up to date with makepp V2.0.
214 (makefile-make-font-lock-keywords): Extend meaning of `keywords'.
215 (makefile-gmake-statements, makefile-makepp-statements):
216 Use it and add new makepp keywords.
217 (makefile-makepp-font-lock-keywords): Add new patterns.
218 (makefile-match-function-end): Match new [...] and [[...]].
219
2202011-12-11 Juanma Barranquero <lekktu@gmail.com>
221
222 * ses.el (ses-call-printer-return, ses-cell-property-get)
223 (ses-sym-rowcol, ses-printer-validate, ses-formula-record)
224 (ses-create-cell-variable, ses-reset-header-string)
225 (ses-cell-set-formula, ses-repair-cell-reference-all)
226 (ses-self-reference-early-detection, ses-in-print-area, ses-set-curcell)
227 (ses-check-curcell, ses-call-printer, ses-adjust-print-width)
228 (ses-print-cell-new-width, ses-formula-references, ses-relocate-formula)
229 (ses-aset-with-undo, ses-load, ses-truncate-cell)
230 (ses-read-column-printer, ses-read-default-printer, ses-insert-row)
231 (ses-delete-row, ses-delete-column, ses-append-row-jump-first-column)
232 (ses-kill-override, ses-yank-pop, ses-yank-cells, ses-yank-tsf)
233 (ses-yank-resize, ses-export-tab, ses-mark-row, ses-mark-column)
234 (ses-renarrow-buffer, ses-insert-range, ses-insert-ses-range)
235 (ses-safe-printer, ses-safe-formula, ses-warn-unsafe, ses--clean-!)
236 (ses--clean-_, ses-range, ses-select, ses-center, ses-center-span)
237 (ses-dashfill, ses-unsafe): Fix typos and reflow docstrings.
238
2392011-12-11 Vincent Belaïche <vincentb1@users.sourceforge.net>
240
241 * ses.el: The overall change is to add cell renaming, that is
242 setting fancy names for cell symbols other than name matching
243 "\\`[A-Z]+[0-9]+\\'" regexp .
244 (ses-create-cell-variable): New defun.
245 (ses-relocate-formula): Relocate formulas only for cells the
246 symbols of which are not renamed, i.e. symbols whose names do not
247 match regexp "\\`[A-Z]+[0-9]+\\'".
248 (ses-relocate-all): Relocate values only for cells the symbols of
249 which are not renamed.
250 (ses-load): Create cells variables as the (ses-cell ...) are read,
251 in order to check row col consistency with cell symbol name only
252 for cells that are not renamed.
253 (ses-replace-name-in-formula): New defun.
254 (ses-rename-cell): New defun.
255
2562011-12-11 Chong Yidong <cyd@gnu.org>
257
258 * progmodes/gdb-mi.el (gdb): Set comint-prompt-regexp, required
259 for completion via gud-gdb-fetch-lines-filter (Bug#10274).
260
2612011-12-11 Eric Hanchrow <eric.hanchrow@gmail.com>
262
263 * window.el (other-window): Fix docstring.
264
2652011-12-10 Eli Zaretskii <eliz@gnu.org>
266
267 * mail/rmailsum.el (rmail-header-summary): RFC2047 decode the
268 `from' or `to' address before taking its substring. Fixes
269 incorrect display in Rmail summary buffer whereby an RFC2047
270 encoded name is chopped in the middle of the encoded string, and
271 thus displayed encoded.
272
2732011-12-10 Juanma Barranquero <lekktu@gmail.com>
274
275 * makefile.w32-in (update-subdirs-CMD): Use a Local Variables section.
276
2772011-12-10 Eli Zaretskii <eliz@gnu.org>
278
279 * textmodes/texnfo-upd.el: Update commentary. Add a warning not
280 to use texinfo-update-node and commands that call it if the
281 Texinfo file uses @node lines without next/prev/up pointers.
282 Correct outdated description about texinfo-master-menu.
283 (texinfo-all-menus-update, texinfo-master-menu)
284 (texinfo-update-node, texinfo-every-node-update)
285 (texinfo-multiple-files-update): Doc fix. Warn against updating
286 all the @node lines.
287 (texinfo-master-menu): Only call texinfo-update-node if the prefix
288 argument is numeric. Explain better in the doc string what the
289 function really does.
290 (texinfo-insert-master-menu-list): Improve the error message
291 displayed if there's no menu in the Top node.
292 (Bug#2975) See also this thread:
293 http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00156.html.
294
2952011-12-09 Manuel Gómez <mgrojo@gmail.com> (tiny change)
296
297 * speedbar.el (speedbar-supported-extension-expressions):
298 Add .adb and .ads, commonly used for Ada source code (bug#10256).
299
3002011-12-09 Juanma Barranquero <lekktu@gmail.com>
301
302 * printing.el (pr-mode-alist):
303 * simple.el (filter-buffer-substring-functions)
304 (completion-list-insert-choice-function):
305 * window.el (window-with-parameter, window-atom-root)
306 (window-sides-slots, window-size-fixed, window-min-delta)
307 (window-max-delta, window--resize-mini-window)
308 (window--resize-child-windows-normal, window-tree)
309 (delete-other-windows, quit-window, split-window)
310 (display-buffer-record-window, special-display-buffer-names)
311 (special-display-regexps, special-display-popup-frame)
312 (same-window-p, split-window-sensibly)
313 (display-buffer-overriding-action, display-buffer-alist)
314 (display-buffer-base-action, display-buffer, switch-to-buffer)
315 (switch-to-buffer-other-window, switch-to-buffer-other-frame)
316 (fit-window-to-buffer, recenter-positions)
317 (mouse-autoselect-window-state, mouse-autoselect-window-select):
318 * emacs-lisp/syntax.el (syntax-propertize-function): Fix typos
319 and remove unneeded backslashes in docstrings.
320
3212011-12-08 Stefan Monnier <monnier@iro.umontreal.ca>
322
323 * emacs-lisp/lisp-mode.el (defmethod): Add doc-string-elt (bug#10244).
324
325 * pcmpl-gnu.el: Don't fail when there is no Makefile nor -f arg.
326 (pcmpl-gnu-makefile-regexps): Accept "makefile" as well as files that
327 end in ".mk".
328 (pcmpl-gnu-make-rule-names): Check "makefile" and ignore errors
329 when reading the makefile (bug#10116).
330
3312011-12-06 Stefan Monnier <monnier@iro.umontreal.ca>
332
333 * pcmpl-gnu.el (pcomplete/make): Also allow filename arguments
334 (bug#10116).
335
3362011-12-06 Glenn Morris <rgm@gnu.org>
337
338 * emacs-lisp/package.el (package-archives): Doc fix re riskiness.
339
3402011-12-06 Chong Yidong <cyd@gnu.org>
341
342 * progmodes/cc-fonts.el (c-annotation-face): Use defface.
343
3442011-12-06 Juanma Barranquero <lekktu@gmail.com>
345
346 * textmodes/table.el (table-shorten-cell): Fix typo.
347
3482011-12-05 Christopher Genovese <genovese.cr@gmail.com> (tiny change)
349
350 * emacs-lisp/assoc.el (aput): Fix return value (bug#10146)
351
3522011-12-05 Eli Zaretskii <eliz@gnu.org>
353
354 * descr-text.el (describe-char): Fix display of strong
355 right-to-left characters and directional embeddings and overrides.
356
357 * simple.el (what-cursor-position): Fix display of codepoints of
358 strong right-to-left characters.
359
3602011-12-05 Chong Yidong <cyd@gnu.org>
361
362 * faces.el (read-color): Doc fix.
363
3642011-12-05 Glenn Morris <rgm@gnu.org>
365
366 * align.el (align--set-marker): Add doc-string.
367 Don't try to move something that is not a marker. (Bug#10216)
368
3692011-12-04 Glenn Morris <rgm@gnu.org>
370
371 * calendar/appt.el (appt-add): Rewrite the interactive-spec to avoid
372 overly zealous deletion of trailing whitespace.
373
3742011-12-04 Juanma Barranquero <lekktu@gmail.com>
375
376 * server.el (server-delete-client): On Windows, do not try to delete
377 the only terminal.
378 (server-process-filter): On Windows, treat requests for a tty frame as
379 if they were for a GUI frame if the running server is in GUI mode.
380
12011-12-03 Glenn Morris <rgm@gnu.org> 3812011-12-03 Glenn Morris <rgm@gnu.org>
2 382
3 * textmodes/texinfmt.el (batch-texinfo-format): Doc fix. (Bug#10207) 383 * textmodes/texinfmt.el (batch-texinfo-format): Doc fix. (Bug#10207)
@@ -112,11 +492,11 @@
112 (verilog-inject-sense, verilog-read-inst-pins) 492 (verilog-inject-sense, verilog-read-inst-pins)
113 (verilog-read-sub-decls, verilog-read-sub-decls-line): 493 (verilog-read-sub-decls, verilog-read-sub-decls-line):
114 Fix mismatching parenthesis inside commented out code when deleting 494 Fix mismatching parenthesis inside commented out code when deleting
115 AUTOINST, bug383. Reported by Jonathan Greenlaw. 495 AUTOINST, bug383. Reported by Jonathan Greenlaw.
116 (verilog-auto-ascii-enum): Fix AUTOASCIIENUM one-hot with 496 (verilog-auto-ascii-enum): Fix AUTOASCIIENUM one-hot with
117 non-numeric vector width. Reported by Alex Reed. 497 non-numeric vector width. Reported by Alex Reed.
118 (verilog-auto-ascii-enum): Add "onehot" option to work around not 498 (verilog-auto-ascii-enum): Add "onehot" option to work around not
119 detecting signals with parameter widths. Reported by Alex Reed. 499 detecting signals with parameter widths. Reported by Alex Reed.
120 (verilog-auto-delete-trailing-whitespace): 500 (verilog-auto-delete-trailing-whitespace):
121 With `verilog-auto-delete-trailing-whitespace' remove trailing 501 With `verilog-auto-delete-trailing-whitespace' remove trailing
122 whitespace in auto expansion, bug371. Reported by Brad Dobbie. 502 whitespace in auto expansion, bug371. Reported by Brad Dobbie.
@@ -384,8 +764,8 @@
384 764
3852011-11-21 Juri Linkov <juri@jurta.org> 7652011-11-21 Juri Linkov <juri@jurta.org>
386 766
387 * calc/calc.el (calc-read-key-sequence): Let-bind `input-method-function' 767 * calc/calc.el (calc-read-key-sequence):
388 to nil. (Bug#10018) 768 Let-bind `input-method-function' to nil. (Bug#10018)
389 769
3902011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org> 7702011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
391 771
@@ -1915,11 +2295,10 @@
19152011-09-24 Ulf Jasper <ulf.jasper@web.de> 22952011-09-24 Ulf Jasper <ulf.jasper@web.de>
1916 2296
1917 * net/newst-reader.el (newsticker-html-renderer) 2297 * net/newst-reader.el (newsticker-html-renderer)
1918 (newsticker-show-news): Automatically 2298 (newsticker-show-news): Automatically load html rendering package
1919 load html rendering package if newsticker-html-renderer is set. 2299 if newsticker-html-renderer is set. Fixes "Warning: defvar ignored
1920 Fixes "Warning: defvar ignored because w3m-fill-column is 2300 because w3m-fill-column is let-bound" and the error "Symbol's value
1921 let-bound" and the error "Symbol's value as variable is void: 2301 as variable is void: w3m-fill-column".
1922 w3m-fill-column".
1923 2302
19242011-09-24 Michael Albinus <michael.albinus@gmx.de> 23032011-09-24 Michael Albinus <michael.albinus@gmx.de>
1925 2304
@@ -2033,8 +2412,8 @@
20332011-09-21 Martin Rudalics <rudalics@gmx.at> 24122011-09-21 Martin Rudalics <rudalics@gmx.at>
2034 2413
2035 * window.el (set-window-buffer-start-and-point): 2414 * window.el (set-window-buffer-start-and-point):
2036 Call set-window-start with NOFORCE argument t. Suggested by Thierry 2415 Call set-window-start with NOFORCE argument t.
2037 Volpiatto <thierry.volpiatto@gmail.com>. 2416 Suggested by Thierry Volpiatto <thierry.volpiatto@gmail.com>.
2038 (quit-window): Reword doc-string. Handle new format of 2417 (quit-window): Reword doc-string. Handle new format of
2039 quit-restore parameter. Don't delete window if it has a 2418 quit-restore parameter. Don't delete window if it has a
2040 previous buffer we can show instead of the present one. 2419 previous buffer we can show instead of the present one.
@@ -2152,13 +2531,13 @@
21522011-09-18 Juri Linkov <juri@jurta.org> 25312011-09-18 Juri Linkov <juri@jurta.org>
2153 2532
2154 * info.el (Info-mode-syntax-table): New variable. 2533 * info.el (Info-mode-syntax-table): New variable.
2155 (Info-mode): Set `:syntax-table' to `Info-mode-syntax-table'. (Bug#3312) 2534 (Info-mode): Set `:syntax-table' to `Info-mode-syntax-table' (bug#3312).
2156 2535
21572011-09-18 Juri Linkov <juri@jurta.org> 25362011-09-18 Juri Linkov <juri@jurta.org>
2158 2537
2159 * info.el (Info-file-supports-index-cookies): Increment 2538 * info.el (Info-file-supports-index-cookies):
2160 line-beginning-position's arg from 3 to 4 because makeinfo outputs 2539 Increment line-beginning-position's arg from 3 to 4 because makeinfo
2161 one more line for long file names (bug#4142). 2540 outputs one more line for long file names (bug#4142).
2162 2541
21632011-09-18 Chong Yidong <cyd@stupidchicken.com> 25422011-09-18 Chong Yidong <cyd@stupidchicken.com>
2164 2543
@@ -4450,8 +4829,8 @@
4450 pending encryption. 4829 pending encryption.
4451 4830
4452 (allout-inhibit-auto-save-info-for-decryption): 4831 (allout-inhibit-auto-save-info-for-decryption):
4453 Adjust buffer-saved-size and some allout state to inhibit auto-saves if 4832 Adjust buffer-saved-size and some allout state to inhibit auto-saves
4454 there are plain-text topics pending encryption. 4833 if there are plain-text topics pending encryption.
4455 4834
4456 (allout-maybe-resume-auto-save-info-after-encryption): Adjust 4835 (allout-maybe-resume-auto-save-info-after-encryption): Adjust
4457 buffer-saved-size and some allout state to not inhibit auto-saves 4836 buffer-saved-size and some allout state to not inhibit auto-saves
@@ -5064,7 +5443,7 @@
5064 (ses-calculate-cell, ses-update-cells): Use Dijkstra algorithm for 5443 (ses-calculate-cell, ses-update-cells): Use Dijkstra algorithm for
5065 cycle detection. 5444 cycle detection.
5066 (ses-self-reference-early-detection): New defcustom. 5445 (ses-self-reference-early-detection): New defcustom.
5067 (ses-formula-references): Robustify against self-refering cells. 5446 (ses-formula-references): Robustify against self-referring cells.
5068 (ses-mode): Use ses-set-localvars. 5447 (ses-mode): Use ses-set-localvars.
5069 (ses-command-hook): Add call to ses-initialize-Dijkstra-attempt 5448 (ses-command-hook): Add call to ses-initialize-Dijkstra-attempt
5070 before lauching the update processing. 5449 before lauching the update processing.
@@ -5353,7 +5732,7 @@
5353 5732
5354 * net/network-stream.el (network-stream-open-starttls): Support 5733 * net/network-stream.el (network-stream-open-starttls): Support
5355 upgrading to STARTTLS always, even if we don't have built-in support. 5734 upgrading to STARTTLS always, even if we don't have built-in support.
5356 (open-network-stream): Add the :always-query-capabilies keyword. 5735 (open-network-stream): Add the :always-query-capabilities keyword.
5357 5736
5358 * mail/smtpmail.el: Rewritten to do opportunistic STARTTLS 5737 * mail/smtpmail.el: Rewritten to do opportunistic STARTTLS
5359 upgrades with `open-network-stream', and rely solely on 5738 upgrades with `open-network-stream', and rely solely on
@@ -5881,11 +6260,11 @@
5881 (split-window-keep-point): Mention split-window-above-each-other 6260 (split-window-keep-point): Mention split-window-above-each-other
5882 instead of split-window-vertically. 6261 instead of split-window-vertically.
5883 (split-window-above-each-other, split-window-vertically): 6262 (split-window-above-each-other, split-window-vertically):
5884 Rename split-window-vertically to split-window-above-each-other and 6263 Rename split-window-vertically to split-window-above-each-other
5885 provide defalias for old definition. 6264 and provide defalias for old definition.
5886 (split-window-side-by-side, split-window-horizontally): Rename 6265 (split-window-side-by-side, split-window-horizontally):
5887 split-window-horizontally to split-window-side-by-side and provide 6266 Rename split-window-horizontally to split-window-side-by-side
5888 defalias for the old definition. 6267 and provide defalias for the old definition.
5889 (ctl-x-map): Move bindings for delete-window, 6268 (ctl-x-map): Move bindings for delete-window,
5890 delete-other-windows and enlarge-window here from window.c. 6269 delete-other-windows and enlarge-window here from window.c.
5891 Replace bindings for split-window-vertically and 6270 Replace bindings for split-window-vertically and
@@ -9308,10 +9687,10 @@
9308 preserves the existing header prefix, rebulleting it if necessary, 9687 preserves the existing header prefix, rebulleting it if necessary,
9309 rather than replacing it. This is necessary for proper operation 9688 rather than replacing it. This is necessary for proper operation
9310 of cooperative addons like allout-widgets. 9689 of cooperative addons like allout-widgets.
9311 (allout-make-topic-prefix, allout-rebullet-heading): Change 9690 (allout-make-topic-prefix, allout-rebullet-heading):
9312 SOLICIT arg to INSTEAD, and interpret additionally a string value 9691 Change SOLICIT arg to INSTEAD, and interpret additionally a string
9313 as alternate bullet to be used, instead of prompting the user for 9692 value as alternate bullet to be used, instead of prompting the user
9314 a bullet character. 9693 for a bullet character.
9315 9694
93162011-03-09 Michael Albinus <michael.albinus@gmx.de> 96952011-03-09 Michael Albinus <michael.albinus@gmx.de>
9317 9696
diff --git a/lisp/ChangeLog.10 b/lisp/ChangeLog.10
index a1cfaee6eaf..d6ac498c877 100644
--- a/lisp/ChangeLog.10
+++ b/lisp/ChangeLog.10
@@ -8278,7 +8278,7 @@
82782002-11-17 Markus Rost <rost@math.ohio-state.edu> 82782002-11-17 Markus Rost <rost@math.ohio-state.edu>
8279 8279
8280 * speedbar.el (defgroup speedbar): Use group 'etags instead of 8280 * speedbar.el (defgroup speedbar): Use group 'etags instead of
8281 nonexisting group 'tags. 8281 nonexistent group 'tags.
8282 8282
8283 * emacs-lisp/re-builder.el: Add provide call. 8283 * emacs-lisp/re-builder.el: Add provide call.
8284 8284
diff --git a/lisp/ChangeLog.11 b/lisp/ChangeLog.11
index 38a5530fbfc..dd1d113d665 100644
--- a/lisp/ChangeLog.11
+++ b/lisp/ChangeLog.11
@@ -1744,7 +1744,7 @@
1744 substitute-env-vars -- not quite shell compatible but better than 1744 substitute-env-vars -- not quite shell compatible but better than
1745 nothing. 1745 nothing.
1746 (compilation-error-regexp-alist-alist): Simplify ftnchek to only 1746 (compilation-error-regexp-alist-alist): Simplify ftnchek to only
1747 handle the newer versions messages, which are more parseable. 1747 handle the newer versions messages, which are more parsable.
1748 1748
17492004-11-22 Stefan Monnier <monnier@iro.umontreal.ca> 17492004-11-22 Stefan Monnier <monnier@iro.umontreal.ca>
1750 1750
diff --git a/lisp/ChangeLog.12 b/lisp/ChangeLog.12
index 8721130ec50..55335533b7a 100644
--- a/lisp/ChangeLog.12
+++ b/lisp/ChangeLog.12
@@ -6278,7 +6278,7 @@
6278 Register changes using allout-exposure-change-hook. 6278 Register changes using allout-exposure-change-hook.
6279 Disregard aberrant topics. 6279 Disregard aberrant topics.
6280 (allout-shift-in): With universal-argument, make topic a peer of 6280 (allout-shift-in): With universal-argument, make topic a peer of
6281 it's former offspring. Simplify the code by separating out 6281 its former offspring. Simplify the code by separating out
6282 allout-shift-out functionality. 6282 allout-shift-out functionality.
6283 (allout-shift-out): With universal-argument, make offspring peers 6283 (allout-shift-out): With universal-argument, make offspring peers
6284 of their former container, and its siblings. Implement the 6284 of their former container, and its siblings. Implement the
@@ -7177,7 +7177,7 @@
71772006-08-20 Chong Yidong <cyd@stupidchicken.com> 71772006-08-20 Chong Yidong <cyd@stupidchicken.com>
7178 7178
7179 * frame.el (blink-cursor-start): Set timer first. 7179 * frame.el (blink-cursor-start): Set timer first.
7180 (blink-cursor-end): Ignore timer cancelling errors. 7180 (blink-cursor-end): Ignore timer canceling errors.
7181 Suggested by Ken Manheimer. 7181 Suggested by Ken Manheimer.
7182 7182
71832006-08-20 Juanma Barranquero <lekktu@gmail.com> 71832006-08-20 Juanma Barranquero <lekktu@gmail.com>
@@ -15842,7 +15842,7 @@
15842 interactive spec from "p" to "P". 15842 interactive spec from "p" to "P".
15843 15843
15844 * progmodes/cc-styles.el: Amend the doc-string of c-set-style, in 15844 * progmodes/cc-styles.el: Amend the doc-string of c-set-style, in
15845 reponse to a report from Joseph Kiniry <kiniry@acm.org> that it 15845 response to a report from Joseph Kiniry <kiniry@acm.org> that it
15846 was difficult to understand. 15846 was difficult to understand.
15847 15847
158482005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org> 158482005-12-08 Martin Stjernholm <bug-cc-mode@gnu.org>
@@ -18459,7 +18459,7 @@
18459 reveal-open-spots, so as to be more reliable. There were several 18459 reveal-open-spots, so as to be more reliable. There were several
18460 tricky corner cases where an open spot might be lost, or where 18460 tricky corner cases where an open spot might be lost, or where
18461 a closed spot might end up on the list of open spots. 18461 a closed spot might end up on the list of open spots.
18462 Only reveal text that's ellipsised. 18462 Only reveal text that's ellipsized.
18463 18463
184642005-11-07 Carsten Dominik <dominik@science.uva.nl> 184642005-11-07 Carsten Dominik <dominik@science.uva.nl>
18465 18465
@@ -27413,7 +27413,7 @@
27413 which has been added in Emacs 21.1. 27413 which has been added in Emacs 21.1.
27414 (c-mode, c++-mode, objc-mode, java-mode, idl-mode, pike-mode) 27414 (c-mode, c++-mode, objc-mode, java-mode, idl-mode, pike-mode)
27415 (awk-mode): Use it. 27415 (awk-mode): Use it.
27416 (make-local-hook): Suppress warning about obsoleteness. 27416 (make-local-hook): Suppress warning about obsolescence.
27417 27417
27418 * progmodes/cc-engine.el, cc-align.el, cc-cmds.el 27418 * progmodes/cc-engine.el, cc-align.el, cc-cmds.el
27419 (c-append-backslashes-forward, c-delete-backslashes-forward) 27419 (c-append-backslashes-forward, c-delete-backslashes-forward)
diff --git a/lisp/ChangeLog.13 b/lisp/ChangeLog.13
index 12eadc6aadf..558718a5a5f 100644
--- a/lisp/ChangeLog.13
+++ b/lisp/ChangeLog.13
@@ -7261,7 +7261,7 @@
7261 * progmodes/gdb-ui.el (gdb-parent-bptno-enabled): New variable. 7261 * progmodes/gdb-ui.el (gdb-parent-bptno-enabled): New variable.
7262 (gdb-breakpoint-regexp, gdb-mouse-toggle-breakpoint-margin) 7262 (gdb-breakpoint-regexp, gdb-mouse-toggle-breakpoint-margin)
7263 (gdb-mouse-toggle-breakpoint-fringe, gdb-delete-breakpoint) 7263 (gdb-mouse-toggle-breakpoint-fringe, gdb-delete-breakpoint)
7264 (gdb-goto-breakpoint): Generalise for breakpoints with multiple 7264 (gdb-goto-breakpoint): Generalize for breakpoints with multiple
7265 locations. 7265 locations.
7266 (gdb-info-breakpoints-custom, gdb-assembler-custom) 7266 (gdb-info-breakpoints-custom, gdb-assembler-custom)
7267 (gdb-toggle-breakpoint): Update for new gdb-breakpoint-regexp. 7267 (gdb-toggle-breakpoint): Update for new gdb-breakpoint-regexp.
@@ -8010,7 +8010,7 @@
80102007-10-31 Juanma Barranquero <lekktu@gmail.com> 80102007-10-31 Juanma Barranquero <lekktu@gmail.com>
8011 8011
8012 * help-at-pt.el (help-at-pt-unload-hook): Remove. 8012 * help-at-pt.el (help-at-pt-unload-hook): Remove.
8013 Timers are automatically cancelled by `unload-feature'. 8013 Timers are automatically canceled by `unload-feature'.
8014 8014
8015 * delsel.el (delsel-unload-hook): Remove function and variable. 8015 * delsel.el (delsel-unload-hook): Remove function and variable.
8016 (delsel-unload-function): New-style unload function, adapted 8016 (delsel-unload-function): New-style unload function, adapted
@@ -10869,7 +10869,7 @@
10869 10869
108702007-09-23 Glenn Morris <rgm@gnu.org> 108702007-09-23 Glenn Morris <rgm@gnu.org>
10871 10871
10872 * ses.el (ses-calculate-cell): Don't evaluate unsafe formulae. 10872 * ses.el (ses-calculate-cell): Don't evaluate unsafe formulas.
10873 10873
108742007-09-23 Dan Nicolaescu <dann@ics.uci.edu> 108742007-09-23 Dan Nicolaescu <dann@ics.uci.edu>
10875 10875
diff --git a/lisp/ChangeLog.14 b/lisp/ChangeLog.14
index 0348a0141a2..5620b90a3f4 100644
--- a/lisp/ChangeLog.14
+++ b/lisp/ChangeLog.14
@@ -866,7 +866,7 @@
866 866
867 * calc/calc-embed.el (calc-embedded-restore-original-modes): 867 * calc/calc-embed.el (calc-embedded-restore-original-modes):
868 Add argument for Calculator buffer. 868 Add argument for Calculator buffer.
869 (calc-do-embedded): Use specific Calculator buffer when cancelling 869 (calc-do-embedded): Use specific Calculator buffer when canceling
870 embedded mode. 870 embedded mode.
871 871
872 * calc/calc.el (calc-buffer-list): New variable. 872 * calc/calc.el (calc-buffer-list): New variable.
@@ -3473,7 +3473,7 @@
34732009-01-10 Dan Nicolaescu <dann@ics.uci.edu> 34732009-01-10 Dan Nicolaescu <dann@ics.uci.edu>
3474 3474
3475 * diff-mode.el (diff-show-trailing-whitespaces): Remove function. 3475 * diff-mode.el (diff-show-trailing-whitespaces): Remove function.
3476 Move setting up whitepace-mode ... 3476 Move setting up whitespace-mode ...
3477 (diff-mode): ... here. 3477 (diff-mode): ... here.
3478 (diff-mode-menu): Add a menu entry for showing trailing whitespace. 3478 (diff-mode-menu): Add a menu entry for showing trailing whitespace.
3479 3479
@@ -19176,7 +19176,7 @@
19176 toggle-read-only. 19176 toggle-read-only.
19177 19177
19178 * textmodes/bibtex.el (bibtex-format-entry): Handle error message 19178 * textmodes/bibtex.el (bibtex-format-entry): Handle error message
19179 refering to a missing required field with the OPT prefix. 19179 referring to a missing required field with the OPT prefix.
19180 Make unwindform more robust. 19180 Make unwindform more robust.
19181 19181
19182 * textmodes/bibtex.el: Remove support for hideshow minor mode as 19182 * textmodes/bibtex.el: Remove support for hideshow minor mode as
diff --git a/lisp/ChangeLog.15 b/lisp/ChangeLog.15
index e0c244d5725..6e13c1156ce 100644
--- a/lisp/ChangeLog.15
+++ b/lisp/ChangeLog.15
@@ -7086,7 +7086,7 @@
7086 (sql-mode-oracle-font-lock-keywords): Improve SQL*Plus REMARK 7086 (sql-mode-oracle-font-lock-keywords): Improve SQL*Plus REMARK
7087 syntax pattern. 7087 syntax pattern.
7088 (sql-mode-postgres-font-lock-keywords): Support Postgres V9. 7088 (sql-mode-postgres-font-lock-keywords): Support Postgres V9.
7089 (sql-mode-sqlite-font-lock-keywords): Hilight sqlite commands. 7089 (sql-mode-sqlite-font-lock-keywords): Highlight sqlite commands.
7090 7090
70912010-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org> 70912010-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
7092 7092
@@ -8618,7 +8618,7 @@
8618 (menu-bar-showhide-tool-bar-menu-customize-enable-right) 8618 (menu-bar-showhide-tool-bar-menu-customize-enable-right)
8619 (menu-bar-showhide-tool-bar-menu-customize-enable-bottom) 8619 (menu-bar-showhide-tool-bar-menu-customize-enable-bottom)
8620 (menu-bar-showhide-tool-bar-menu-customize-enable-top): New functions 8620 (menu-bar-showhide-tool-bar-menu-customize-enable-top): New functions
8621 (menu-bar-showhide-tool-bar-menu): If tool bar is moveable, 8621 (menu-bar-showhide-tool-bar-menu): If tool bar is movable,
8622 make a menu for Options => toolbar that can move it. 8622 make a menu for Options => toolbar that can move it.
8623 8623
86242010-07-29 Chong Yidong <cyd@stupidchicken.com> 86242010-07-29 Chong Yidong <cyd@stupidchicken.com>
@@ -11908,7 +11908,7 @@
11908 Add new VC methods: vc-log-incoming and vc-log-outgoing. 11908 Add new VC methods: vc-log-incoming and vc-log-outgoing.
11909 * vc.el (vc-print-log-setup-buttons): New function split out from 11909 * vc.el (vc-print-log-setup-buttons): New function split out from
11910 vc-print-log-internal. 11910 vc-print-log-internal.
11911 (vc-log-internal-common): New function, a parametrized version of 11911 (vc-log-internal-common): New function, a parameterized version of
11912 vc-print-log-internal. 11912 vc-print-log-internal.
11913 (vc-print-log-internal): Just call vc-log-internal-common with the 11913 (vc-print-log-internal): Just call vc-log-internal-common with the
11914 right arguments. 11914 right arguments.
diff --git a/lisp/ChangeLog.2 b/lisp/ChangeLog.2
index 65005a4ba47..957c9c7deff 100644
--- a/lisp/ChangeLog.2
+++ b/lisp/ChangeLog.2
@@ -60,7 +60,7 @@
60 60
611988-08-03 Robert J. Chassell (bob@frosted-flakes.ai.mit.edu) 611988-08-03 Robert J. Chassell (bob@frosted-flakes.ai.mit.edu)
62 62
63 * texinfo.el: Changed fill-colum from 75 to 72. The larger 63 * texinfo.el: Changed fill-column from 75 to 72. The larger
64 fill-column causes numerous overfull hboxes in TeX when you are 64 fill-column causes numerous overfull hboxes in TeX when you are
65 writing Emacs Lisp code that will be formatted as a Texinfo example. 65 writing Emacs Lisp code that will be formatted as a Texinfo example.
66 66
diff --git a/lisp/ChangeLog.3 b/lisp/ChangeLog.3
index cb39ca5997f..e0f9bc9ade2 100644
--- a/lisp/ChangeLog.3
+++ b/lisp/ChangeLog.3
@@ -6305,7 +6305,7 @@
6305 to "Non-echoed text: ". This conforms with the convention 6305 to "Non-echoed text: ". This conforms with the convention
6306 used by existing prompts, and gives more room to type stuff. 6306 used by existing prompts, and gives more room to type stuff.
6307 6307
6308 * comint.el (comint-last-input-start): New varible. In 6308 * comint.el (comint-last-input-start): New variable. In
6309 particular, this helps support subprocesses that insist on echoing 6309 particular, this helps support subprocesses that insist on echoing
6310 their input. Added comments to porting guide indicating that 6310 their input. Added comments to porting guide indicating that
6311 this should probably not be used for implementing history stuff. 6311 this should probably not be used for implementing history stuff.
@@ -8647,7 +8647,7 @@
8647 * comint.el, inf-lisp.el, shell.el: Updated to meet Olin's 8647 * comint.el, inf-lisp.el, shell.el: Updated to meet Olin's
8648 version 2.0 comint offerings. 8648 version 2.0 comint offerings.
8649 * ring.el: The underlying history mechanism for comint. 8649 * ring.el: The underlying history mechanism for comint.
8650 Generalised handling of a ring data type based on vectors. 8650 Generalized handling of a ring data type based on vectors.
8651 * history.el: For now, a symlink to ring.el. 8651 * history.el: For now, a symlink to ring.el.
8652 * loaddefs.el: Updated shell-prompt-pattern doc string. 8652 * loaddefs.el: Updated shell-prompt-pattern doc string.
8653 8653
diff --git a/lisp/ChangeLog.7 b/lisp/ChangeLog.7
index 934258ade67..b05707abe5c 100644
--- a/lisp/ChangeLog.7
+++ b/lisp/ChangeLog.7
@@ -884,7 +884,7 @@
8841998-07-21 Kenichi Handa <handa@etl.go.jp> 8841998-07-21 Kenichi Handa <handa@etl.go.jp>
885 885
886 * international/kkc.el (kkc-region): Handled the case that 886 * international/kkc.el (kkc-region): Handled the case that
887 conversion is cancelled. 887 conversion is canceled.
888 (kkc-terminate): Update kkc-overlay-head correctly. 888 (kkc-terminate): Update kkc-overlay-head correctly.
889 (kkc-cancel): Don't call kkc-terminate, but set kkc-converting to nil. 889 (kkc-cancel): Don't call kkc-terminate, but set kkc-converting to nil.
890 890
@@ -12129,7 +12129,7 @@
12129 12129
12130 * cc-mode.el (c-buffer-is-cc-mode): 12130 * cc-mode.el (c-buffer-is-cc-mode):
12131 Definition moved here from cc-vars.el. Also, 12131 Definition moved here from cc-vars.el. Also,
12132 put permanent-local property on variable so it's value won't get 12132 put permanent-local property on variable so its value won't get
12133 killed by kill-all-local-variables. 12133 killed by kill-all-local-variables.
12134 12134
12135 * cc-mode.el (c++-mode, java-mode, objc-mode, idl-mode): 12135 * cc-mode.el (c++-mode, java-mode, objc-mode, idl-mode):
@@ -13088,7 +13088,7 @@
13088 13088
130891997-07-25 Simon Marshall <simon@frobnitz.gnu.ai.mit.edu> 130891997-07-25 Simon Marshall <simon@frobnitz.gnu.ai.mit.edu>
13090 13090
13091 * complete.el: Customise; as subgroup of minibuffer. 13091 * complete.el: Customize; as subgroup of minibuffer.
13092 (partial-completion-mode): New option to toggle mode. 13092 (partial-completion-mode): New option to toggle mode.
13093 (partial-completion-mode): New command to toggle mode. 13093 (partial-completion-mode): New command to toggle mode.
13094 Add and remove hooks here, i.e., not at the top-level. 13094 Add and remove hooks here, i.e., not at the top-level.
@@ -13617,7 +13617,7 @@
13617 13617
136181997-07-15 Simon Marshall <simon@albert.gnu.ai.mit.edu> 136181997-07-15 Simon Marshall <simon@albert.gnu.ai.mit.edu>
13619 13619
13620 * mouse-sel.el: Customise; create mouse-sel as subgroup of mouse. 13620 * mouse-sel.el: Customize; create mouse-sel as subgroup of mouse.
13621 (mouse-sel-mode): New option to toggle mode. 13621 (mouse-sel-mode): New option to toggle mode.
13622 (mouse-sel-mode): New command to toggle mode. 13622 (mouse-sel-mode): New command to toggle mode.
13623 (mouse-sel-set-selection-function): If mouse-sel-default-bindings is 13623 (mouse-sel-set-selection-function): If mouse-sel-default-bindings is
@@ -13625,7 +13625,7 @@
13625 (mouse-sel-bindings): New function to install/restore mouse bindings. 13625 (mouse-sel-bindings): New function to install/restore mouse bindings.
13626 This is called by mouse-sel-mode, i.e., not at the top-level. 13626 This is called by mouse-sel-mode, i.e., not at the top-level.
13627 13627
13628 * delsel.el: Customise; as part of editing-basics group. 13628 * delsel.el: Customize; as part of editing-basics group.
13629 (delete-selection-mode): Convert to autoloaded option. Default to nil. 13629 (delete-selection-mode): Convert to autoloaded option. Default to nil.
13630 (delete-selection-mode): Define before option. 13630 (delete-selection-mode): Define before option.
13631 Modify pre-command-hook here, i.e., not at the top-level. 13631 Modify pre-command-hook here, i.e., not at the top-level.
@@ -14943,7 +14943,7 @@
14943 paren-matching) and put all blink-matching-paren variables in the 14943 paren-matching) and put all blink-matching-paren variables in the
14944 former (as opposed to the latter) group. 14944 former (as opposed to the latter) group.
14945 14945
14946 * paren.el: Customise; paren-showing as a subgroup of paren-matching. 14946 * paren.el: Customize; paren-showing as a subgroup of paren-matching.
14947 (show-paren-style): New variable. 14947 (show-paren-style): New variable.
14948 (show-paren-match-face) 14948 (show-paren-match-face)
14949 (show-paren-mismatch-face): New faces. 14949 (show-paren-mismatch-face): New faces.
@@ -18871,7 +18871,7 @@
18871 18871
188721997-04-16 Simon Marshall <simon@wombat.gnu.ai.mit.edu> 188721997-04-16 Simon Marshall <simon@wombat.gnu.ai.mit.edu>
18873 18873
18874 * font-lock.el: Customise. 18874 * font-lock.el: Customize.
18875 (font-lock-defaults-alist): Leave ~ syntax alone in C++. 18875 (font-lock-defaults-alist): Leave ~ syntax alone in C++.
18876 (font-lock-match-c++-style-declaration-item-and-skip-to-next): Match ~ 18876 (font-lock-match-c++-style-declaration-item-and-skip-to-next): Match ~
18877 characters here. 18877 characters here.
@@ -18883,10 +18883,10 @@
18883 (font-lock-compile-keywords): Don't set font-lock-keywords. 18883 (font-lock-compile-keywords): Don't set font-lock-keywords.
18884 (font-lock-fontify-keywords-region): Set it here. 18884 (font-lock-fontify-keywords-region): Set it here.
18885 18885
18886 * fast-lock.el: Customise. 18886 * fast-lock.el: Customize.
18887 (fast-lock-cache-data): Simplify calls of font-lock-compile-keywords. 18887 (fast-lock-cache-data): Simplify calls of font-lock-compile-keywords.
18888 18888
18889 * lazy-lock.el: Customise. 18889 * lazy-lock.el: Customize.
18890 (lazy-lock-fontify-conservatively): Fontify around WINDOW's point. 18890 (lazy-lock-fontify-conservatively): Fontify around WINDOW's point.
18891 18891
18892 * shell.el (shell-font-lock-keywords): Use EVAL form for prompt. 18892 * shell.el (shell-font-lock-keywords): Use EVAL form for prompt.
@@ -19534,7 +19534,7 @@
19534 the innermost test. This catches GNU-style comments. 19534 the innermost test. This catches GNU-style comments.
19535 19535
19536 * cc-mode.el (c-add-syntax): 19536 * cc-mode.el (c-add-syntax):
19537 Move macro definition to before it's first use. 19537 Move macro definition to before its first use.
19538 19538
19539 * cc-mode.el (c-submit-bug-report): 19539 * cc-mode.el (c-submit-bug-report):
19540 Capture buffer local variable values which are 19540 Capture buffer local variable values which are
diff --git a/lisp/ChangeLog.9 b/lisp/ChangeLog.9
index 1c38b4d9ac6..252b3854f7a 100644
--- a/lisp/ChangeLog.9
+++ b/lisp/ChangeLog.9
@@ -6620,7 +6620,7 @@
6620 (ansi-color-process-output): New function. It is automatically 6620 (ansi-color-process-output): New function. It is automatically
6621 added to comint-output-filter-functions if this is XEmacs. 6621 added to comint-output-filter-functions if this is XEmacs.
6622 (ansi-color-unfontify-region): New optional parameter for XEmacs 6622 (ansi-color-unfontify-region): New optional parameter for XEmacs
6623 compatibility. Check wether font-lock-syntactic-keywords is 6623 compatibility. Check whether font-lock-syntactic-keywords is
6624 boundp before removing the syntax table text property, as XEmacs 6624 boundp before removing the syntax table text property, as XEmacs
6625 doesn't have it. 6625 doesn't have it.
6626 (ansi-color-filter-region): Doc change. 6626 (ansi-color-filter-region): Doc change.
diff --git a/lisp/align.el b/lisp/align.el
index 0d9f351b9da..214c3add93f 100644
--- a/lisp/align.el
+++ b/lisp/align.el
@@ -109,7 +109,7 @@
109;; simple algorithm that understand only basic regular expressions. 109;; simple algorithm that understand only basic regular expressions.
110;; Parts of the code were broken up and included in vhdl-mode.el 110;; Parts of the code were broken up and included in vhdl-mode.el
111;; around this time. After several comments from users, and a need to 111;; around this time. After several comments from users, and a need to
112;; find a more robust, performant algorithm, 2.0 was born in late 112;; find a more robust, higher performing algorithm, 2.0 was born in late
113;; 1998. Many different approaches were taken (mostly due to the 113;; 1998. Many different approaches were taken (mostly due to the
114;; complexity of TeX tables), but finally a scheme was discovered 114;; complexity of TeX tables), but finally a scheme was discovered
115;; which worked fairly well for most common usage cases. Development 115;; which worked fairly well for most common usage cases. Development
@@ -1247,7 +1247,9 @@ have been aligned. No changes will be made to the buffer."
1247 (setq areas (cdr areas)))))) 1247 (setq areas (cdr areas))))))
1248 1248
1249(defmacro align--set-marker (marker-var pos &optional type) 1249(defmacro align--set-marker (marker-var pos &optional type)
1250 `(if ,marker-var 1250 "If MARKER-VAR is a marker, move it to position POS.
1251Otherwise, create a new marker at position POS, with type TYPE."
1252 `(if (markerp ,marker-var)
1251 (move-marker ,marker-var ,pos) 1253 (move-marker ,marker-var ,pos)
1252 (setq ,marker-var (copy-marker ,pos ,type)))) 1254 (setq ,marker-var (copy-marker ,pos ,type))))
1253 1255
diff --git a/lisp/allout-widgets.el b/lisp/allout-widgets.el
index dfd9adad2a7..715879534b0 100644
--- a/lisp/allout-widgets.el
+++ b/lisp/allout-widgets.el
@@ -108,7 +108,7 @@ inhibition of allout-widgets-mode."
108;;;_ > allout-widgets-setup (varname value) 108;;;_ > allout-widgets-setup (varname value)
109;;;###autoload 109;;;###autoload
110(defun allout-widgets-setup (varname value) 110(defun allout-widgets-setup (varname value)
111 "Commission or decommision allout-widgets-mode along with allout-mode. 111 "Commission or decommission allout-widgets-mode along with allout-mode.
112 112
113Meant to be used by customization of `allout-widgets-auto-activation'." 113Meant to be used by customization of `allout-widgets-auto-activation'."
114 (set-default varname value) 114 (set-default varname value)
diff --git a/lisp/allout.el b/lisp/allout.el
index 68330aa538b..480c22d31e0 100644
--- a/lisp/allout.el
+++ b/lisp/allout.el
@@ -1872,7 +1872,7 @@ at the beginning of the current entry.
1872 1872
1873 Extending Allout 1873 Extending Allout
1874 1874
1875Allout exposure and authoring activites all have associated 1875Allout exposure and authoring activities all have associated
1876hooks, by which independent code can cooperate with allout 1876hooks, by which independent code can cooperate with allout
1877without changes to the allout core. Here are key ones: 1877without changes to the allout core. Here are key ones:
1878 1878
@@ -3334,7 +3334,7 @@ coordinating with allout activity.")
3334 (run-hooks 'allout-post-undo-hook) 3334 (run-hooks 'allout-post-undo-hook)
3335 (cond ((and (= buffer-saved-size -1) 3335 (cond ((and (= buffer-saved-size -1)
3336 allout-auto-save-temporarily-disabled) 3336 allout-auto-save-temporarily-disabled)
3337 ;; user possibly undid a decryption, deinhibit auto-save: 3337 ;; user possibly undid a decryption, disinhibit auto-save:
3338 (allout-maybe-resume-auto-save-info-after-encryption)) 3338 (allout-maybe-resume-auto-save-info-after-encryption))
3339 ((save-excursion 3339 ((save-excursion
3340 (save-restriction 3340 (save-restriction
@@ -5871,7 +5871,7 @@ encryption.
5871Further, encrypting with a KEYMODE-CUE universal argument greater 5871Further, encrypting with a KEYMODE-CUE universal argument greater
5872than 4 - eg, preceded by a doubled Ctrl-U - causes association of 5872than 4 - eg, preceded by a doubled Ctrl-U - causes association of
5873the specified recipients with the file, replacing those currently 5873the specified recipients with the file, replacing those currently
5874associated with it. This can be used to deassociate any 5874associated with it. This can be used to dissociate any
5875recipients with the file, by selecting no recipients in the 5875recipients with the file, by selecting no recipients in the
5876dialog. 5876dialog.
5877 5877
@@ -5912,7 +5912,7 @@ encryption.
5912Further, encrypting with a KEYMODE-CUE universal argument greater 5912Further, encrypting with a KEYMODE-CUE universal argument greater
5913than 4 - eg, preceded by a doubled Ctrl-U - causes association of 5913than 4 - eg, preceded by a doubled Ctrl-U - causes association of
5914the specified recipients with the file, replacing those currently 5914the specified recipients with the file, replacing those currently
5915associated with it. This can be used to deassociate any 5915associated with it. This can be used to dissociate any
5916recipients with the file, by selecting no recipients in the 5916recipients with the file, by selecting no recipients in the
5917dialog. 5917dialog.
5918 5918
@@ -6045,7 +6045,7 @@ encryption.
6045Further, encrypting with a KEYMODE-CUE universal argument greater 6045Further, encrypting with a KEYMODE-CUE universal argument greater
6046than 4 - eg, preceded by a doubled Ctrl-U - causes association of 6046than 4 - eg, preceded by a doubled Ctrl-U - causes association of
6047the specified recipients with the file, replacing those currently 6047the specified recipients with the file, replacing those currently
6048associated with it. This can be used to deassociate any 6048associated with it. This can be used to dissociate any
6049recipients with the file, by selecting no recipients in the 6049recipients with the file, by selecting no recipients in the
6050dialog. 6050dialog.
6051 6051
@@ -6661,7 +6661,7 @@ To ignore intangibility, bind `inhibit-point-motion-hooks' to t."
6661 (if (/= arg 1) 6661 (if (/= arg 1)
6662 (condition-case nil (line-move (1- arg)) (error nil))) 6662 (condition-case nil (line-move (1- arg)) (error nil)))
6663 6663
6664 ;; Move to beginning-of-line, ignoring fields and invisibles. 6664 ;; Move to beginning-of-line, ignoring fields and invisible text.
6665 (skip-chars-backward "^\n") 6665 (skip-chars-backward "^\n")
6666 (while (and (not (bobp)) 6666 (while (and (not (bobp))
6667 (let ((prop 6667 (let ((prop
diff --git a/lisp/ansi-color.el b/lisp/ansi-color.el
index 4d6f02a40b7..abb6a961018 100644
--- a/lisp/ansi-color.el
+++ b/lisp/ansi-color.el
@@ -413,7 +413,7 @@ start of the region and set the face with which to start. Set
413 (setq ansi-color-context-region nil)))))) 413 (setq ansi-color-context-region nil))))))
414 414
415;; This function helps you look for overlapping overlays. This is 415;; This function helps you look for overlapping overlays. This is
416;; usefull in comint-buffers. Overlapping overlays should not happen! 416;; useful in comint-buffers. Overlapping overlays should not happen!
417;; A possible cause for bugs are the markers. If you create an overlay 417;; A possible cause for bugs are the markers. If you create an overlay
418;; up to the end of the region, then that end might coincide with the 418;; up to the end of the region, then that end might coincide with the
419;; process-mark. As text is added BEFORE the process-mark, the overlay 419;; process-mark. As text is added BEFORE the process-mark, the overlay
@@ -585,7 +585,7 @@ ANSI-CODE is used as an index into the vector."
585 "Create a new face by applying all the parameters in ESCAPE-SEQ. 585 "Create a new face by applying all the parameters in ESCAPE-SEQ.
586 586
587Should any of the parameters result in the default face (usually this is 587Should any of the parameters result in the default face (usually this is
588the parameter 0), then the effect of all previous parameters is cancelled. 588the parameter 0), then the effect of all previous parameters is canceled.
589 589
590ESCAPE-SEQ is a SGR control sequences such as \\033[34m. The parameter 590ESCAPE-SEQ is a SGR control sequences such as \\033[34m. The parameter
59134 is used by `ansi-color-get-face-1' to return a face definition." 59134 is used by `ansi-color-get-face-1' to return a face definition."
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
index 48b4c5be164..816291166fa 100644
--- a/lisp/arc-mode.el
+++ b/lisp/arc-mode.el
@@ -860,13 +860,13 @@ using `make-temp-file', and the generated name is returned."
860 dir))) 860 dir)))
861 (if (or alien (file-exists-p fullname)) 861 (if (or alien (file-exists-p fullname))
862 (progn 862 (progn
863 ;; Maked sure all the leading directories in 863 ;; Make sure all the leading directories in
864 ;; archive-local-name exist under archive-tmpdir, so that 864 ;; archive-local-name exist under archive-tmpdir, so that
865 ;; the directory structure recorded in the archive is 865 ;; the directory structure recorded in the archive is
866 ;; reconstructed in the temporary directory. 866 ;; reconstructed in the temporary directory.
867 (make-directory (file-name-directory tmpfile) t) 867 (make-directory (file-name-directory tmpfile) t)
868 (make-temp-file tmpfile)) 868 (make-temp-file tmpfile))
869 ;; Maked sure all the leading directories in `fullname' exist 869 ;; Make sure all the leading directories in `fullname' exist
870 ;; under archive-tmpdir. This is necessary for nested archives 870 ;; under archive-tmpdir. This is necessary for nested archives
871 ;; (`archive-extract' sets `archive-remote' to t in case 871 ;; (`archive-extract' sets `archive-remote' to t in case
872 ;; an archive occurs inside another archive). 872 ;; an archive occurs inside another archive).
diff --git a/lisp/battery.el b/lisp/battery.el
index 3b245ed644d..bb899f2beae 100644
--- a/lisp/battery.el
+++ b/lisp/battery.el
@@ -421,10 +421,15 @@ format introduced in Linux version 2.4.25.
421 421
422The following %-sequences are provided: 422The following %-sequences are provided:
423%c Current capacity (mAh or mWh) 423%c Current capacity (mAh or mWh)
424%r Current rate
424%B Battery status (verbose) 425%B Battery status (verbose)
426%d Temperature (in degrees Celsius)
425%p Battery load percentage 427%p Battery load percentage
426%L AC line status (verbose)" 428%L AC line status (verbose)
427 (let (charging-state 429%m Remaining time (to charge or discharge) in minutes
430%h Remaining time (to charge or discharge) in hours
431%t Remaining time (to charge or discharge) in the form `h:min'"
432 (let (charging-state rate temperature hours
428 (charge-full 0.0) 433 (charge-full 0.0)
429 (charge-now 0.0) 434 (charge-now 0.0)
430 (energy-full 0.0) 435 (energy-full 0.0)
@@ -444,6 +449,12 @@ The following %-sequences are provided:
444 (and (re-search-forward "POWER_SUPPLY_STATUS=\\(.*\\)$" nil t) 449 (and (re-search-forward "POWER_SUPPLY_STATUS=\\(.*\\)$" nil t)
445 (member charging-state '("Unknown" "Full" nil)) 450 (member charging-state '("Unknown" "Full" nil))
446 (setq charging-state (match-string 1))) 451 (setq charging-state (match-string 1)))
452 (when (re-search-forward
453 "POWER_SUPPLY_\\(CURRENT\\|POWER\\)_NOW=\\([0-9]*\\)$"
454 nil t)
455 (setq rate (float (string-to-number (match-string 2)))))
456 (when (re-search-forward "POWER_SUPPLY_TEMP=\\([0-9]*\\)$" nil t)
457 (setq temperature (match-string 1)))
447 (let (full-string now-string) 458 (let (full-string now-string)
448 ;; Sysfs may list either charge (mAh) or energy (mWh). 459 ;; Sysfs may list either charge (mAh) or energy (mWh).
449 ;; Keep track of both, and choose which to report later. 460 ;; Keep track of both, and choose which to report later.
@@ -466,12 +477,30 @@ The following %-sequences are provided:
466 (setq energy-full (+ energy-full 477 (setq energy-full (+ energy-full
467 (string-to-number full-string)) 478 (string-to-number full-string))
468 energy-now (+ energy-now 479 energy-now (+ energy-now
469 (string-to-number now-string))))))))) 480 (string-to-number now-string))))))
481 (goto-char (point-min))
482 (when (and energy-now rate (not (zerop rate))
483 (re-search-forward
484 "POWER_SUPPLY_VOLTAGE_NOW=\\([0-9]*\\)$" nil t))
485 (let ((remaining (if (string= charging-state "Discharging")
486 energy-now
487 (- energy-full energy-now))))
488 (setq hours (/ (/ (* remaining (string-to-number
489 (match-string 1)))
490 rate)
491 10000000.0)))))))
470 (list (cons ?c (cond ((or (> charge-full 0) (> charge-now 0)) 492 (list (cons ?c (cond ((or (> charge-full 0) (> charge-now 0))
471 (number-to-string charge-now)) 493 (number-to-string charge-now))
472 ((or (> energy-full 0) (> energy-now 0)) 494 ((or (> energy-full 0) (> energy-now 0))
473 (number-to-string energy-now)) 495 (number-to-string energy-now))
474 (t "N/A"))) 496 (t "N/A")))
497 (cons ?r (if rate (format "%.1f" (/ rate 1000000.0)) "N/A"))
498 (cons ?m (if hours (format "%d" (* hours 60)) "N/A"))
499 (cons ?h (if hours (format "%d" hours) "N/A"))
500 (cons ?t (if hours
501 (format "%d:%02d" hours (* (- hours (floor hours)) 60))
502 "N/A"))
503 (cons ?d (or temperature "N/A"))
475 (cons ?B (or charging-state "N/A")) 504 (cons ?B (or charging-state "N/A"))
476 (cons ?p (cond ((> charge-full 0) 505 (cons ?p (cond ((> charge-full 0)
477 (format "%.1f" 506 (format "%.1f"
diff --git a/lisp/calc/calc-alg.el b/lisp/calc/calc-alg.el
index 274f399fe6a..5ad1e58b45c 100644
--- a/lisp/calc/calc-alg.el
+++ b/lisp/calc/calc-alg.el
@@ -1841,7 +1841,7 @@
1841 expr)))) 1841 expr))))
1842 1842
1843;;; Simplify a polynomial in list form by stripping off high-end zeros. 1843;;; Simplify a polynomial in list form by stripping off high-end zeros.
1844;;; This always leaves the constant part, i.e., nil->nil and nonnil->nonnil. 1844;;; This always leaves the constant part, i.e., nil->nil and non-nil->non-nil.
1845(defun math-poly-simplify (p) 1845(defun math-poly-simplify (p)
1846 (and p 1846 (and p
1847 (if (Math-zerop (nth (1- (length p)) p)) 1847 (if (Math-zerop (nth (1- (length p)) p))
diff --git a/lisp/calc/calc-menu.el b/lisp/calc/calc-menu.el
index d8099b0aadc..d8c01656784 100644
--- a/lisp/calc/calc-menu.el
+++ b/lisp/calc/calc-menu.el
@@ -24,19 +24,19 @@
24(defvar calc-arithmetic-menu 24(defvar calc-arithmetic-menu
25 (list "Arithmetic" 25 (list "Arithmetic"
26 (list "Basic" 26 (list "Basic"
27 ["-(1:)" calc-change-sign 27 ["-(1:)" calc-change-sign
28 :keys "n" :active (>= (calc-stack-size) 1)] 28 :keys "n" :active (>= (calc-stack-size) 1)]
29 ["(2:) + (1:)" calc-plus 29 ["(2:) + (1:)" calc-plus
30 :keys "+" :active (>= (calc-stack-size) 2)] 30 :keys "+" :active (>= (calc-stack-size) 2)]
31 ["(2:) - (1:)" calc-minus 31 ["(2:) - (1:)" calc-minus
32 :keys "-" :active (>= (calc-stack-size) 2)] 32 :keys "-" :active (>= (calc-stack-size) 2)]
33 ["(2:) * (1:)" calc-times 33 ["(2:) * (1:)" calc-times
34 :keys "*" :active (>= (calc-stack-size) 2)] 34 :keys "*" :active (>= (calc-stack-size) 2)]
35 ["(2:) / (1:)" calc-divide 35 ["(2:) / (1:)" calc-divide
36 :keys "/" :active (>= (calc-stack-size) 2)] 36 :keys "/" :active (>= (calc-stack-size) 2)]
37 ["(2:) ^ (1:)" calc-power 37 ["(2:) ^ (1:)" calc-power
38 :keys "^" :active (>= (calc-stack-size) 2)] 38 :keys "^" :active (>= (calc-stack-size) 2)]
39 ["(2:) ^ (1/(1:))" 39 ["(2:) ^ (1/(1:))"
40 (progn 40 (progn
41 (require 'calc-ext) 41 (require 'calc-ext)
42 (let ((calc-inverse-flag t)) 42 (let ((calc-inverse-flag t))
@@ -44,8 +44,8 @@
44 :keys "I ^" 44 :keys "I ^"
45 :active (>= (calc-stack-size) 2) 45 :active (>= (calc-stack-size) 2)
46 :help "The (1:)th root of (2:)"] 46 :help "The (1:)th root of (2:)"]
47 ["abs(1:)" 47 ["abs(1:)"
48 (progn 48 (progn
49 (require 'calc-arith) 49 (require 'calc-arith)
50 (call-interactively 'calc-abs)) 50 (call-interactively 'calc-abs))
51 :keys "A" 51 :keys "A"
@@ -57,7 +57,7 @@
57 (call-interactively 'calc-inv)) 57 (call-interactively 'calc-inv))
58 :keys "&" 58 :keys "&"
59 :active (>= (calc-stack-size) 1)] 59 :active (>= (calc-stack-size) 1)]
60 ["sqrt(1:)" 60 ["sqrt(1:)"
61 (progn 61 (progn
62 (require 'calc-math) 62 (require 'calc-math)
63 (call-interactively 'calc-sqrt)) 63 (call-interactively 'calc-sqrt))
@@ -70,7 +70,7 @@
70 :keys "\\" 70 :keys "\\"
71 :active (>= (calc-stack-size) 2) 71 :active (>= (calc-stack-size) 2)
72 :help "The integer quotient of (2:) over (1:)"] 72 :help "The integer quotient of (2:) over (1:)"]
73 ["(2:) mod (1:)" 73 ["(2:) mod (1:)"
74 (progn 74 (progn
75 (require 'calc-misc) 75 (require 'calc-misc)
76 (call-interactively 'calc-mod)) 76 (call-interactively 'calc-mod))
@@ -78,28 +78,28 @@
78 :active (>= (calc-stack-size) 2) 78 :active (>= (calc-stack-size) 2)
79 :help "The remainder when (2:) is divided by (1:)"]) 79 :help "The remainder when (2:) is divided by (1:)"])
80 (list "Rounding" 80 (list "Rounding"
81 ["floor(1:)" 81 ["floor(1:)"
82 (progn 82 (progn
83 (require 'calc-arith) 83 (require 'calc-arith)
84 (call-interactively 'calc-floor)) 84 (call-interactively 'calc-floor))
85 :keys "F" 85 :keys "F"
86 :active (>= (calc-stack-size) 1) 86 :active (>= (calc-stack-size) 1)
87 :help "The greatest integer less than or equal to (1:)"] 87 :help "The greatest integer less than or equal to (1:)"]
88 ["ceiling(1:)" 88 ["ceiling(1:)"
89 (progn 89 (progn
90 (require 'calc-arith) 90 (require 'calc-arith)
91 (call-interactively 'calc-ceiling)) 91 (call-interactively 'calc-ceiling))
92 :keys "I F" 92 :keys "I F"
93 :active (>= (calc-stack-size) 1) 93 :active (>= (calc-stack-size) 1)
94 :help "The smallest integer greater than or equal to (1:)"] 94 :help "The smallest integer greater than or equal to (1:)"]
95 ["round(1:)" 95 ["round(1:)"
96 (progn 96 (progn
97 (require 'calc-arith) 97 (require 'calc-arith)
98 (call-interactively 'calc-round)) 98 (call-interactively 'calc-round))
99 :keys "R" 99 :keys "R"
100 :active (>= (calc-stack-size) 1) 100 :active (>= (calc-stack-size) 1)
101 :help "The nearest integer to (1:)"] 101 :help "The nearest integer to (1:)"]
102 ["truncate(1:)" 102 ["truncate(1:)"
103 (progn 103 (progn
104 (require 'calc-arith) 104 (require 'calc-arith)
105 (call-interactively 'calc-trunc)) 105 (call-interactively 'calc-trunc))
@@ -140,32 +140,32 @@
140 :active (>= (calc-stack-size) 1) 140 :active (>= (calc-stack-size) 1)
141 :help "The argument (polar angle) of (1:)"]) 141 :help "The argument (polar angle) of (1:)"])
142 (list "Conversion" 142 (list "Conversion"
143 ["Convert (1:) to a float" 143 ["Convert (1:) to a float"
144 (progn 144 (progn
145 (require 'calc-ext) 145 (require 'calc-ext)
146 (call-interactively 'calc-float)) 146 (call-interactively 'calc-float))
147 :keys "c f" 147 :keys "c f"
148 :active (>= (calc-stack-size) 1)] 148 :active (>= (calc-stack-size) 1)]
149 ["Convert (1:) to a fraction" 149 ["Convert (1:) to a fraction"
150 (progn 150 (progn
151 (require 'calc-ext) 151 (require 'calc-ext)
152 (call-interactively 'calc-fraction)) 152 (call-interactively 'calc-fraction))
153 :keys "c F" 153 :keys "c F"
154 :active (>= (calc-stack-size) 1)]) 154 :active (>= (calc-stack-size) 1)])
155 (list "Binary" 155 (list "Binary"
156 ["Set word size" 156 ["Set word size"
157 (progn 157 (progn
158 (require 'calc-bin) 158 (require 'calc-bin)
159 (call-interactively 'calc-word-size)) 159 (call-interactively 'calc-word-size))
160 :keys "b w"] 160 :keys "b w"]
161 ["Clip (1:) to word size" 161 ["Clip (1:) to word size"
162 (progn 162 (progn
163 (require 'calc-bin) 163 (require 'calc-bin)
164 (call-interactively 'calc-clip)) 164 (call-interactively 'calc-clip))
165 :keys "b c" 165 :keys "b c"
166 :active (>= (calc-stack-size) 1) 166 :active (>= (calc-stack-size) 1)
167 :help "Reduce (1:) modulo 2^wordsize"] 167 :help "Reduce (1:) modulo 2^wordsize"]
168 ["(2:) and (1:)" 168 ["(2:) and (1:)"
169 (progn 169 (progn
170 (require 'calc-bin) 170 (require 'calc-bin)
171 (call-interactively 'calc-and)) 171 (call-interactively 'calc-and))
@@ -180,13 +180,13 @@
180 :active (>= (calc-stack-size) 2) 180 :active (>= (calc-stack-size) 2)
181 :help "Bitwise inclusive OR [modulo 2^wordsize]"] 181 :help "Bitwise inclusive OR [modulo 2^wordsize]"]
182 ["(2:) xor (1:)" 182 ["(2:) xor (1:)"
183 (progn 183 (progn
184 (require 'calc-bin) 184 (require 'calc-bin)
185 (call-interactively 'calc-xor)) 185 (call-interactively 'calc-xor))
186 :keys "b x" 186 :keys "b x"
187 :active (>= (calc-stack-size) 2) 187 :active (>= (calc-stack-size) 2)
188 :help "Bitwise exclusive OR [modulo 2^wordsize]"] 188 :help "Bitwise exclusive OR [modulo 2^wordsize]"]
189 ["diff(2:,1:)" 189 ["diff(2:,1:)"
190 (progn 190 (progn
191 (require 'calc-bin) 191 (require 'calc-bin)
192 (call-interactively 'calc-diff)) 192 (call-interactively 'calc-diff))
@@ -263,82 +263,82 @@
263 :keys "I P" 263 :keys "I P"
264 :help "Euler's constant"]) 264 :help "Euler's constant"])
265 (list "Logs and Exps" 265 (list "Logs and Exps"
266 ["ln(1:)" 266 ["ln(1:)"
267 (progn 267 (progn
268 (require 'calc-math) 268 (require 'calc-math)
269 (call-interactively 'calc-ln)) 269 (call-interactively 'calc-ln))
270 :keys "L" 270 :keys "L"
271 :active (>= (calc-stack-size) 1) 271 :active (>= (calc-stack-size) 1)
272 :help "The natural logarithm"] 272 :help "The natural logarithm"]
273 ["e^(1:)" 273 ["e^(1:)"
274 (progn 274 (progn
275 (require 'calc-math) 275 (require 'calc-math)
276 (call-interactively 'calc-exp)) 276 (call-interactively 'calc-exp))
277 :keys "E" 277 :keys "E"
278 :active (>= (calc-stack-size) 1)] 278 :active (>= (calc-stack-size) 1)]
279 ["log(1:) [base 10]" 279 ["log(1:) [base 10]"
280 (progn 280 (progn
281 (require 'calc-math) 281 (require 'calc-math)
282 (call-interactively 'calc-log10)) 282 (call-interactively 'calc-log10))
283 :keys "H L" 283 :keys "H L"
284 :active (>= (calc-stack-size) 1) 284 :active (>= (calc-stack-size) 1)
285 :help "The common logarithm"] 285 :help "The common logarithm"]
286 ["10^(1:)" 286 ["10^(1:)"
287 (progn 287 (progn
288 (require 'calc-math) 288 (require 'calc-math)
289 (let ((calc-inverse-flag t)) 289 (let ((calc-inverse-flag t))
290 (call-interactively 'calc-log10))) 290 (call-interactively 'calc-log10)))
291 :keys "I H L" 291 :keys "I H L"
292 :active (>= (calc-stack-size) 1)] 292 :active (>= (calc-stack-size) 1)]
293 ["log(2:) [base(1:)]" 293 ["log(2:) [base(1:)]"
294 (progn 294 (progn
295 (require 'calc-math) 295 (require 'calc-math)
296 (call-interactively 'calc-log)) 296 (call-interactively 'calc-log))
297 :keys "B" 297 :keys "B"
298 :active (>= (calc-stack-size) 2) 298 :active (>= (calc-stack-size) 2)
299 :help "The logarithm with an arbitrary base"] 299 :help "The logarithm with an arbitrary base"]
300 ["(2:) ^ (1:)" 300 ["(2:) ^ (1:)"
301 calc-power 301 calc-power
302 :keys "^" 302 :keys "^"
303 :active (>= (calc-stack-size) 2)]) 303 :active (>= (calc-stack-size) 2)])
304 (list "Trigonometric Functions" 304 (list "Trigonometric Functions"
305 ["sin(1:)" 305 ["sin(1:)"
306 (progn 306 (progn
307 (require 'calc-math) 307 (require 'calc-math)
308 (call-interactively 'calc-sin)) 308 (call-interactively 'calc-sin))
309 :keys "S" 309 :keys "S"
310 :active (>= (calc-stack-size) 1)] 310 :active (>= (calc-stack-size) 1)]
311 ["cos(1:)" 311 ["cos(1:)"
312 (progn 312 (progn
313 (require 'calc-math) 313 (require 'calc-math)
314 (call-interactively 'calc-cos)) 314 (call-interactively 'calc-cos))
315 :keys "C" 315 :keys "C"
316 :active (>= (calc-stack-size) 1)] 316 :active (>= (calc-stack-size) 1)]
317 ["tan(1:)" 317 ["tan(1:)"
318 (progn 318 (progn
319 (require 'calc-math) 319 (require 'calc-math)
320 (call-interactively 'calc-tan)) 320 (call-interactively 'calc-tan))
321 :keys "T" 321 :keys "T"
322 :active (>= (calc-stack-size) 1)] 322 :active (>= (calc-stack-size) 1)]
323 ["arcsin(1:)" 323 ["arcsin(1:)"
324 (progn 324 (progn
325 (require 'calc-math) 325 (require 'calc-math)
326 (call-interactively 'calc-arcsin)) 326 (call-interactively 'calc-arcsin))
327 :keys "I S" 327 :keys "I S"
328 :active (>= (calc-stack-size) 1)] 328 :active (>= (calc-stack-size) 1)]
329 ["arccos(1:)" 329 ["arccos(1:)"
330 (progn 330 (progn
331 (require 'calc-math) 331 (require 'calc-math)
332 (call-interactively 'calc-arccos)) 332 (call-interactively 'calc-arccos))
333 :keys "I C" 333 :keys "I C"
334 :active (>= (calc-stack-size) 1)] 334 :active (>= (calc-stack-size) 1)]
335 ["arctan(1:)" 335 ["arctan(1:)"
336 (progn 336 (progn
337 (require 'calc-math) 337 (require 'calc-math)
338 (call-interactively 'calc-arctan)) 338 (call-interactively 'calc-arctan))
339 :keys "I T" 339 :keys "I T"
340 :active (>= (calc-stack-size) 1)] 340 :active (>= (calc-stack-size) 1)]
341 ["arctan2(2:,1:)" 341 ["arctan2(2:,1:)"
342 (progn 342 (progn
343 (require 'calc-math) 343 (require 'calc-math)
344 (call-interactively 'calc-arctan2)) 344 (call-interactively 'calc-arctan2))
@@ -367,65 +367,65 @@
367 :style radio 367 :style radio
368 :selected (eq calc-angle-mode 'hms)]) 368 :selected (eq calc-angle-mode 'hms)])
369 (list "Hyperbolic Functions" 369 (list "Hyperbolic Functions"
370 ["sinh(1:)" 370 ["sinh(1:)"
371 (progn 371 (progn
372 (require 'calc-math) 372 (require 'calc-math)
373 (call-interactively 'calc-sinh)) 373 (call-interactively 'calc-sinh))
374 :keys "H S" 374 :keys "H S"
375 :active (>= (calc-stack-size) 1)] 375 :active (>= (calc-stack-size) 1)]
376 ["cosh(1:)" 376 ["cosh(1:)"
377 (progn 377 (progn
378 (require 'calc-math) 378 (require 'calc-math)
379 (call-interactively 'calc-cosh)) 379 (call-interactively 'calc-cosh))
380 :keys "H C" 380 :keys "H C"
381 :active (>= (calc-stack-size) 1)] 381 :active (>= (calc-stack-size) 1)]
382 ["tanh(1:)" 382 ["tanh(1:)"
383 (progn 383 (progn
384 (require 'calc-math) 384 (require 'calc-math)
385 (call-interactively 'calc-tanh)) 385 (call-interactively 'calc-tanh))
386 :keys "H T" 386 :keys "H T"
387 :active (>= (calc-stack-size) 1)] 387 :active (>= (calc-stack-size) 1)]
388 ["arcsinh(1:)" 388 ["arcsinh(1:)"
389 (progn 389 (progn
390 (require 'calc-math) 390 (require 'calc-math)
391 (call-interactively 'calc-arcsinh)) 391 (call-interactively 'calc-arcsinh))
392 :keys "I H S" 392 :keys "I H S"
393 :active (>= (calc-stack-size) 1)] 393 :active (>= (calc-stack-size) 1)]
394 ["arccosh(1:)" 394 ["arccosh(1:)"
395 (progn 395 (progn
396 (require 'calc-math) 396 (require 'calc-math)
397 (call-interactively 'calc-arccosh)) 397 (call-interactively 'calc-arccosh))
398 :keys "I H C" 398 :keys "I H C"
399 :active (>= (calc-stack-size) 1)] 399 :active (>= (calc-stack-size) 1)]
400 ["arctanh(1:)" 400 ["arctanh(1:)"
401 (progn 401 (progn
402 (require 'calc-math) 402 (require 'calc-math)
403 (call-interactively 'calc-arctanh)) 403 (call-interactively 'calc-arctanh))
404 :keys "I H T" 404 :keys "I H T"
405 :active (>= (calc-stack-size) 1)]) 405 :active (>= (calc-stack-size) 1)])
406 (list "Advanced Math Functions" 406 (list "Advanced Math Functions"
407 ["Gamma(1:)" 407 ["Gamma(1:)"
408 (progn 408 (progn
409 (require 'calc-comb) 409 (require 'calc-comb)
410 (call-interactively 'calc-gamma)) 410 (call-interactively 'calc-gamma))
411 :keys "f g" 411 :keys "f g"
412 :active (>= (calc-stack-size) 1) 412 :active (>= (calc-stack-size) 1)
413 :help "The Euler Gamma function"] 413 :help "The Euler Gamma function"]
414 ["GammaP(2:,1:)" 414 ["GammaP(2:,1:)"
415 (progn 415 (progn
416 (require 'calc-funcs) 416 (require 'calc-funcs)
417 (call-interactively 'calc-inc-gamma)) 417 (call-interactively 'calc-inc-gamma))
418 :keys "f G" 418 :keys "f G"
419 :active (>= (calc-stack-size) 2) 419 :active (>= (calc-stack-size) 2)
420 :help "The lower incomplete Gamma function"] 420 :help "The lower incomplete Gamma function"]
421 ["Beta(2:,1:)" 421 ["Beta(2:,1:)"
422 (progn 422 (progn
423 (require 'calc-funcs) 423 (require 'calc-funcs)
424 (call-interactively 'calc-beta)) 424 (call-interactively 'calc-beta))
425 :keys "f b" 425 :keys "f b"
426 :active (>= (calc-stack-size) 2) 426 :active (>= (calc-stack-size) 2)
427 :help "The Euler Beta function"] 427 :help "The Euler Beta function"]
428 ["BetaI(3:,2:,1:)" 428 ["BetaI(3:,2:,1:)"
429 (progn 429 (progn
430 (require 'calc-funcs) 430 (require 'calc-funcs)
431 (call-interactively 'calc-inc-beta)) 431 (call-interactively 'calc-inc-beta))
@@ -439,14 +439,14 @@
439 :keys "f e" 439 :keys "f e"
440 :active (>= (calc-stack-size) 1) 440 :active (>= (calc-stack-size) 1)
441 :help "The error function"] 441 :help "The error function"]
442 ["BesselJ(2:,1:)" 442 ["BesselJ(2:,1:)"
443 (progn 443 (progn
444 (require 'calc-funcs) 444 (require 'calc-funcs)
445 (call-interactively 'calc-bessel-J)) 445 (call-interactively 'calc-bessel-J))
446 :keys "f j" 446 :keys "f j"
447 :active (>= (calc-stack-size) 2) 447 :active (>= (calc-stack-size) 2)
448 :help "The Bessel function of the first kind (of order (2:))"] 448 :help "The Bessel function of the first kind (of order (2:))"]
449 ["BesselY(2:,1:)" 449 ["BesselY(2:,1:)"
450 (progn 450 (progn
451 (require 'calc-funcs) 451 (require 'calc-funcs)
452 (call-interactively 'calc-bessel-Y)) 452 (call-interactively 'calc-bessel-Y))
@@ -454,44 +454,44 @@
454 :active (>= (calc-stack-size) 2) 454 :active (>= (calc-stack-size) 2)
455 :help "The Bessel function of the second kind (of order (2:))"]) 455 :help "The Bessel function of the second kind (of order (2:))"])
456 (list "Combinatorial Functions" 456 (list "Combinatorial Functions"
457 ["gcd(2:,1:)" 457 ["gcd(2:,1:)"
458 (progn 458 (progn
459 (require 'calc-comb) 459 (require 'calc-comb)
460 (call-interactively 'calc-gcd)) 460 (call-interactively 'calc-gcd))
461 :keys "k g" 461 :keys "k g"
462 :active (>= (calc-stack-size) 2)] 462 :active (>= (calc-stack-size) 2)]
463 ["lcm(2:,1:)" 463 ["lcm(2:,1:)"
464 (progn 464 (progn
465 (require 'calc-comb) 465 (require 'calc-comb)
466 (call-interactively 'calc-lcm)) 466 (call-interactively 'calc-lcm))
467 :keys "k l" 467 :keys "k l"
468 :active (>= (calc-stack-size) 2)] 468 :active (>= (calc-stack-size) 2)]
469 ["factorial(1:)" 469 ["factorial(1:)"
470 (progn 470 (progn
471 (require 'calc-comb) 471 (require 'calc-comb)
472 (call-interactively 'calc-factorial)) 472 (call-interactively 'calc-factorial))
473 :keys "!" 473 :keys "!"
474 :active (>= (calc-stack-size) 1)] 474 :active (>= (calc-stack-size) 1)]
475 ["(2:) choose (1:)" 475 ["(2:) choose (1:)"
476 (progn 476 (progn
477 (require 'calc-comb) 477 (require 'calc-comb)
478 (call-interactively 'calc-choose)) 478 (call-interactively 'calc-choose))
479 :keys "k c" 479 :keys "k c"
480 :active (>= (calc-stack-size) 2)] 480 :active (>= (calc-stack-size) 2)]
481 ["permutations(2:,1:)" 481 ["permutations(2:,1:)"
482 (progn 482 (progn
483 (require 'calc-comb) 483 (require 'calc-comb)
484 (call-interactively 'calc-perm)) 484 (call-interactively 'calc-perm))
485 :keys "H k c" 485 :keys "H k c"
486 :active (>= (calc-stack-size) 2)] 486 :active (>= (calc-stack-size) 2)]
487 ["Primality test for (1:)" 487 ["Primality test for (1:)"
488 (progn 488 (progn
489 (require 'calc-comb) 489 (require 'calc-comb)
490 (call-interactively 'calc-prime-test)) 490 (call-interactively 'calc-prime-test))
491 :keys "k p" 491 :keys "k p"
492 :active (>= (calc-stack-size) 1) 492 :active (>= (calc-stack-size) 1)
493 :help "For large (1:), a probabilistic test"] 493 :help "For large (1:), a probabilistic test"]
494 ["Factor (1:) into primes" 494 ["Factor (1:) into primes"
495 (progn 495 (progn
496 (require 'calc-comb) 496 (require 'calc-comb)
497 (call-interactively 'calc-prime-factors)) 497 (call-interactively 'calc-prime-factors))
@@ -527,17 +527,17 @@
527 ["Help on Scientific Functions" 527 ["Help on Scientific Functions"
528 (calc-info-goto-node "Scientific Functions")]) 528 (calc-info-goto-node "Scientific Functions")])
529 "Menu for Calc's scientific functions.") 529 "Menu for Calc's scientific functions.")
530 530
531(defvar calc-algebra-menu 531(defvar calc-algebra-menu
532 (list "Algebra" 532 (list "Algebra"
533 (list "Simplification" 533 (list "Simplification"
534 ["Simplify (1:)" 534 ["Simplify (1:)"
535 (progn 535 (progn
536 (require 'calc-alg) 536 (require 'calc-alg)
537 (call-interactively 'calc-simplify)) 537 (call-interactively 'calc-simplify))
538 :keys "a s" 538 :keys "a s"
539 :active (>= (calc-stack-size) 1)] 539 :active (>= (calc-stack-size) 1)]
540 ["Simplify (1:) with extended rules" 540 ["Simplify (1:) with extended rules"
541 (progn 541 (progn
542 (require 'calc-alg) 542 (require 'calc-alg)
543 (call-interactively 'calc-simplify-extended)) 543 (call-interactively 'calc-simplify-extended))
@@ -545,72 +545,72 @@
545 :active (>= (calc-stack-size) 1) 545 :active (>= (calc-stack-size) 1)
546 :help "Apply possibly unsafe simplifications"]) 546 :help "Apply possibly unsafe simplifications"])
547 (list "Manipulation" 547 (list "Manipulation"
548 ["Expand formula (1:)" 548 ["Expand formula (1:)"
549 (progn 549 (progn
550 (require 'calc-alg) 550 (require 'calc-alg)
551 (call-interactively 'calc-expand-formula)) 551 (call-interactively 'calc-expand-formula))
552 :keys "a \"" 552 :keys "a \""
553 :active (>= (calc-stack-size) 1) 553 :active (>= (calc-stack-size) 1)
554 :help "Expand (1:) into its defining formula, if possible"] 554 :help "Expand (1:) into its defining formula, if possible"]
555 ["Evaluate variables in (1:)" 555 ["Evaluate variables in (1:)"
556 (progn 556 (progn
557 (require 'calc-ext) 557 (require 'calc-ext)
558 (call-interactively 'calc-evaluate)) 558 (call-interactively 'calc-evaluate))
559 :keys "=" 559 :keys "="
560 :active (>= (calc-stack-size) 1)] 560 :active (>= (calc-stack-size) 1)]
561 ["Make substitution in (1:)" 561 ["Make substitution in (1:)"
562 (progn 562 (progn
563 (require 'calc-alg) 563 (require 'calc-alg)
564 (call-interactively 'calc-substitute)) 564 (call-interactively 'calc-substitute))
565 :keys "a b" 565 :keys "a b"
566 :active (>= (calc-stack-size) 1) 566 :active (>= (calc-stack-size) 1)
567 :help 567 :help
568 "Substitute all occurrences of a sub-expression with a new sub-expression"]) 568 "Substitute all occurrences of a sub-expression with a new sub-expression"])
569 (list "Polynomials" 569 (list "Polynomials"
570 ["Factor (1:)" 570 ["Factor (1:)"
571 (progn 571 (progn
572 (require 'calc-alg) 572 (require 'calc-alg)
573 (call-interactively 'calc-factor)) 573 (call-interactively 'calc-factor))
574 :keys "a f" 574 :keys "a f"
575 :active (>= (calc-stack-size) 1)] 575 :active (>= (calc-stack-size) 1)]
576 ["Collect terms in (1:)" 576 ["Collect terms in (1:)"
577 (progn 577 (progn
578 (require 'calc-alg) 578 (require 'calc-alg)
579 (call-interactively 'calc-collect)) 579 (call-interactively 'calc-collect))
580 :keys "a c" 580 :keys "a c"
581 :active (>= (calc-stack-size) 1) 581 :active (>= (calc-stack-size) 1)
582 :help "Arrange as a polynomial in a given variable"] 582 :help "Arrange as a polynomial in a given variable"]
583 ["Expand (1:)" 583 ["Expand (1:)"
584 (progn 584 (progn
585 (require 'calc-alg) 585 (require 'calc-alg)
586 (call-interactively 'calc-expand)) 586 (call-interactively 'calc-expand))
587 :keys "a x" 587 :keys "a x"
588 :active (>= (calc-stack-size) 1) 588 :active (>= (calc-stack-size) 1)
589 :help "Apply distributive law everywhere"] 589 :help "Apply distributive law everywhere"]
590 ["Find roots of (1:)" 590 ["Find roots of (1:)"
591 (progn 591 (progn
592 (require 'calcalg2) 592 (require 'calcalg2)
593 (call-interactively 'calc-poly-roots)) 593 (call-interactively 'calc-poly-roots))
594 :keys "a P" 594 :keys "a P"
595 :active (>= (calc-stack-size) 1)]) 595 :active (>= (calc-stack-size) 1)])
596 (list "Calculus" 596 (list "Calculus"
597 ["Differentiate (1:)" 597 ["Differentiate (1:)"
598 (progn 598 (progn
599 (require 'calcalg2) 599 (require 'calcalg2)
600 (call-interactively 'calc-derivative)) 600 (call-interactively 'calc-derivative))
601 :keys "a d" 601 :keys "a d"
602 :active (>= (calc-stack-size) 1)] 602 :active (>= (calc-stack-size) 1)]
603 ["Integrate (1:) [indefinite]" 603 ["Integrate (1:) [indefinite]"
604 (progn 604 (progn
605 (require 'calcalg2) 605 (require 'calcalg2)
606 (call-interactively 'calc-integral)) 606 (call-interactively 'calc-integral))
607 :keys "a i" 607 :keys "a i"
608 :active (>= (calc-stack-size) 1)] 608 :active (>= (calc-stack-size) 1)]
609 ["Integrate (1:) [definite]" 609 ["Integrate (1:) [definite]"
610 (progn 610 (progn
611 (require 'calcalg2) 611 (require 'calcalg2)
612 (let ((var (read-string "Integration variable: "))) 612 (let ((var (read-string "Integration variable: ")))
613 (calc-tabular-command 'calcFunc-integ "Integration" 613 (calc-tabular-command 'calcFunc-integ "Integration"
614 "intg" nil var nil nil))) 614 "intg" nil var nil nil)))
615 :keys "C-u a i" 615 :keys "C-u a i"
616 :active (>= (calc-stack-size) 1)] 616 :active (>= (calc-stack-size) 1)]
@@ -621,20 +621,20 @@
621 :keys "a I" 621 :keys "a I"
622 :active (>= (calc-stack-size) 1) 622 :active (>= (calc-stack-size) 1)
623 :help "Integrate using the open Romberg method"] 623 :help "Integrate using the open Romberg method"]
624 ["Taylor expand (1:)" 624 ["Taylor expand (1:)"
625 (progn 625 (progn
626 (require 'calcalg2) 626 (require 'calcalg2)
627 (call-interactively 'calc-taylor)) 627 (call-interactively 'calc-taylor))
628 :keys "a t" 628 :keys "a t"
629 :active (>= (calc-stack-size) 1)] 629 :active (>= (calc-stack-size) 1)]
630 ["Minimize (2:) [initial guess = (1:)]" 630 ["Minimize (2:) [initial guess = (1:)]"
631 (progn 631 (progn
632 (require 'calcalg3) 632 (require 'calcalg3)
633 (call-interactively 'calc-find-minimum)) 633 (call-interactively 'calc-find-minimum))
634 :keys "a N" 634 :keys "a N"
635 :active (>= (calc-stack-size) 2) 635 :active (>= (calc-stack-size) 2)
636 :help "Find a local minimum"] 636 :help "Find a local minimum"]
637 ["Maximize (2:) [initial guess = (1:)]" 637 ["Maximize (2:) [initial guess = (1:)]"
638 (progn 638 (progn
639 (require 'calcalg3) 639 (require 'calcalg3)
640 (call-interactively 'calc-find-maximum)) 640 (call-interactively 'calc-find-maximum))
@@ -642,26 +642,26 @@
642 :active (>= (calc-stack-size) 2) 642 :active (>= (calc-stack-size) 2)
643 :help "Find a local maximum"]) 643 :help "Find a local maximum"])
644 (list "Solving" 644 (list "Solving"
645 ["Solve equation (1:)" 645 ["Solve equation (1:)"
646 (progn 646 (progn
647 (require 'calcalg2) 647 (require 'calcalg2)
648 (call-interactively 'calc-solve-for)) 648 (call-interactively 'calc-solve-for))
649 :keys "a S" 649 :keys "a S"
650 :active (>= (calc-stack-size) 1)] 650 :active (>= (calc-stack-size) 1)]
651 ["Solve equation (2:) numerically [initial guess = (1:)]" 651 ["Solve equation (2:) numerically [initial guess = (1:)]"
652 (progn 652 (progn
653 (require 'calcalg3) 653 (require 'calcalg3)
654 (call-interactively 'calc-find-root)) 654 (call-interactively 'calc-find-root))
655 :keys "a R" 655 :keys "a R"
656 :active (>= (calc-stack-size) 2)] 656 :active (>= (calc-stack-size) 2)]
657 ["Find roots of polynomial (1:)" 657 ["Find roots of polynomial (1:)"
658 (progn 658 (progn
659 (require 'calcalg2) 659 (require 'calcalg2)
660 (call-interactively 'calc-poly-roots)) 660 (call-interactively 'calc-poly-roots))
661 :keys "a P" 661 :keys "a P"
662 :active (>= (calc-stack-size) 1)]) 662 :active (>= (calc-stack-size) 1)])
663 (list "Curve Fitting" 663 (list "Curve Fitting"
664 ["Fit (1:)=[x values, y values] to a curve" 664 ["Fit (1:)=[x values, y values] to a curve"
665 (progn 665 (progn
666 (require 'calcalg3) 666 (require 'calcalg3)
667 (call-interactively 'calc-curve-fit)) 667 (call-interactively 'calc-curve-fit))
@@ -675,13 +675,13 @@
675 675
676(defvar calc-graphics-menu 676(defvar calc-graphics-menu
677 (list "Graphics" 677 (list "Graphics"
678 ["Graph 2D [(1:)= y values, (2:)= x values]" 678 ["Graph 2D [(1:)= y values, (2:)= x values]"
679 (progn 679 (progn
680 (require 'calc-graph) 680 (require 'calc-graph)
681 (call-interactively 'calc-graph-fast)) 681 (call-interactively 'calc-graph-fast))
682 :keys "g f" 682 :keys "g f"
683 :active (>= (calc-stack-size) 2)] 683 :active (>= (calc-stack-size) 2)]
684 ["Graph 3D [(1:)= z values, (2:)= y values, (3:)= x values]" 684 ["Graph 3D [(1:)= z values, (2:)= y values, (3:)= x values]"
685 (progn 685 (progn
686 (require 'calc-graph) 686 (require 'calc-graph)
687 (call-interactively 'calc-graph-fast-3d)) 687 (call-interactively 'calc-graph-fast-3d))
@@ -696,11 +696,11 @@
696(defvar calc-vectors-menu 696(defvar calc-vectors-menu
697 (list "Matrices/Vectors" 697 (list "Matrices/Vectors"
698 (list "Matrices" 698 (list "Matrices"
699 ["(2:) + (1:)" calc-plus 699 ["(2:) + (1:)" calc-plus
700 :keys "+" :active (>= (calc-stack-size) 2)] 700 :keys "+" :active (>= (calc-stack-size) 2)]
701 ["(2:) - (1:)" calc-minus 701 ["(2:) - (1:)" calc-minus
702 :keys "-" :active (>= (calc-stack-size) 2)] 702 :keys "-" :active (>= (calc-stack-size) 2)]
703 ["(2:) * (1:)" calc-times 703 ["(2:) * (1:)" calc-times
704 :keys "*" :active (>= (calc-stack-size) 2)] 704 :keys "*" :active (>= (calc-stack-size) 2)]
705 ["(1:)^(-1)" 705 ["(1:)^(-1)"
706 (progn 706 (progn
@@ -709,17 +709,17 @@
709 :keys "&" 709 :keys "&"
710 :active (>= (calc-stack-size) 1)] 710 :active (>= (calc-stack-size) 1)]
711 ["Create an identity matrix" 711 ["Create an identity matrix"
712 (progn 712 (progn
713 (require 'calc-vec) 713 (require 'calc-vec)
714 (call-interactively 'calc-ident)) 714 (call-interactively 'calc-ident))
715 :keys "v i"] 715 :keys "v i"]
716 ["transpose(1:)" 716 ["transpose(1:)"
717 (progn 717 (progn
718 (require 'calc-vec) 718 (require 'calc-vec)
719 (call-interactively 'calc-transpose)) 719 (call-interactively 'calc-transpose))
720 :keys "v t" 720 :keys "v t"
721 :active (>= (calc-stack-size) 1)] 721 :active (>= (calc-stack-size) 1)]
722 ["det(1:)" 722 ["det(1:)"
723 (progn 723 (progn
724 (require 'calc-mtx) 724 (require 'calc-mtx)
725 (call-interactively 'calc-mdet)) 725 (call-interactively 'calc-mdet))
@@ -731,19 +731,19 @@
731 (call-interactively 'calc-mtrace)) 731 (call-interactively 'calc-mtrace))
732 :keys "V T" 732 :keys "V T"
733 :active (>= (calc-stack-size) 1)] 733 :active (>= (calc-stack-size) 1)]
734 ["LUD decompose (1:)" 734 ["LUD decompose (1:)"
735 (progn 735 (progn
736 (require 'calc-mtx) 736 (require 'calc-mtx)
737 (call-interactively 'calc-mlud)) 737 (call-interactively 'calc-mlud))
738 :keys "V L" 738 :keys "V L"
739 :active (>= (calc-stack-size) 1)] 739 :active (>= (calc-stack-size) 1)]
740 ["Extract a row from (1:)" 740 ["Extract a row from (1:)"
741 (progn 741 (progn
742 (require 'calc-vec) 742 (require 'calc-vec)
743 (call-interactively 'calc-mrow)) 743 (call-interactively 'calc-mrow))
744 :keys "v r" 744 :keys "v r"
745 :active (>= (calc-stack-size) 1)] 745 :active (>= (calc-stack-size) 1)]
746 ["Extract a column from (1:)" 746 ["Extract a column from (1:)"
747 (progn 747 (progn
748 (require 'calc-vec) 748 (require 'calc-vec)
749 (call-interactively 'calc-mcol)) 749 (call-interactively 'calc-mcol))
@@ -756,13 +756,13 @@
756 (call-interactively 'calc-head)) 756 (call-interactively 'calc-head))
757 :keys "v h" 757 :keys "v h"
758 :active (>= (calc-stack-size) 1)] 758 :active (>= (calc-stack-size) 1)]
759 ["Extract an element from (1:)" 759 ["Extract an element from (1:)"
760 (progn 760 (progn
761 (require 'calc-vec) 761 (require 'calc-vec)
762 (call-interactively 'calc-mrow)) 762 (call-interactively 'calc-mrow))
763 :keys "v r" 763 :keys "v r"
764 :active (>= (calc-stack-size) 1)] 764 :active (>= (calc-stack-size) 1)]
765 ["Reverse (1:)" 765 ["Reverse (1:)"
766 (progn 766 (progn
767 (require 'calc-vec) 767 (require 'calc-vec)
768 (call-interactively 'calc-reverse-vector)) 768 (call-interactively 'calc-reverse-vector))
@@ -775,19 +775,19 @@
775 :keys "v u" 775 :keys "v u"
776 :active (>= (calc-stack-size) 1) 776 :active (>= (calc-stack-size) 1)
777 :help "Separate the elements of (1:)"] 777 :help "Separate the elements of (1:)"]
778 ["(2:) cross (1:)" 778 ["(2:) cross (1:)"
779 (progn 779 (progn
780 (require 'calc-vec) 780 (require 'calc-vec)
781 (call-interactively 'calc-cross)) 781 (call-interactively 'calc-cross))
782 :keys "V C" 782 :keys "V C"
783 :active (>= (calc-stack-size) 2) 783 :active (>= (calc-stack-size) 2)
784 :help "The cross product in R^3"] 784 :help "The cross product in R^3"]
785 ["(2:) dot (1:)" 785 ["(2:) dot (1:)"
786 calc-mult 786 calc-mult
787 :keys "*" 787 :keys "*"
788 :active (>= (calc-stack-size) 2) 788 :active (>= (calc-stack-size) 2)
789 :help "The dot product"] 789 :help "The dot product"]
790 ["Map a function across (1:)" 790 ["Map a function across (1:)"
791 (progn 791 (progn
792 (require 'calc-map) 792 (require 'calc-map)
793 (call-interactively 'calc-map)) 793 (call-interactively 'calc-map))
@@ -795,25 +795,25 @@
795 :active (>= (calc-stack-size) 1) 795 :active (>= (calc-stack-size) 1)
796 :help "Apply a function to each element"]) 796 :help "Apply a function to each element"])
797 (list "Vectors As Sets" 797 (list "Vectors As Sets"
798 ["Remove duplicates from (1:)" 798 ["Remove duplicates from (1:)"
799 (progn 799 (progn
800 (require 'calc-vec) 800 (require 'calc-vec)
801 (call-interactively 'calc-remove-duplicates)) 801 (call-interactively 'calc-remove-duplicates))
802 :keys "V +" 802 :keys "V +"
803 :active (>= (calc-stack-size) 1)] 803 :active (>= (calc-stack-size) 1)]
804 ["(2:) union (1:)" 804 ["(2:) union (1:)"
805 (progn 805 (progn
806 (require 'calc-vec) 806 (require 'calc-vec)
807 (call-interactively 'calc-set-union)) 807 (call-interactively 'calc-set-union))
808 :keys "V V" 808 :keys "V V"
809 :active (>= (calc-stack-size) 2)] 809 :active (>= (calc-stack-size) 2)]
810 ["(2:) intersect (1:)" 810 ["(2:) intersect (1:)"
811 (progn 811 (progn
812 (require 'calc-vec) 812 (require 'calc-vec)
813 (call-interactively 'calc-set-intersect)) 813 (call-interactively 'calc-set-intersect))
814 :keys "V ^" 814 :keys "V ^"
815 :active (>= (calc-stack-size) 2)] 815 :active (>= (calc-stack-size) 2)]
816 ["(2:) \\ (1:)" 816 ["(2:) \\ (1:)"
817 (progn 817 (progn
818 (require 'calc-vec) 818 (require 'calc-vec)
819 (call-interactively 'calc-set-difference)) 819 (call-interactively 'calc-set-difference))
@@ -821,35 +821,35 @@
821 :help "Set difference" 821 :help "Set difference"
822 :active (>= (calc-stack-size) 2)]) 822 :active (>= (calc-stack-size) 2)])
823 (list "Statistics On Vectors" 823 (list "Statistics On Vectors"
824 ["length(1:)" 824 ["length(1:)"
825 (progn 825 (progn
826 (require 'calc-stat) 826 (require 'calc-stat)
827 (call-interactively 'calc-vector-count)) 827 (call-interactively 'calc-vector-count))
828 :keys "u #" 828 :keys "u #"
829 :active (>= (calc-stack-size) 1) 829 :active (>= (calc-stack-size) 1)
830 :help "The number of data values"] 830 :help "The number of data values"]
831 ["sum(1:)" 831 ["sum(1:)"
832 (progn 832 (progn
833 (require 'calc-stat) 833 (require 'calc-stat)
834 (call-interactively 'calc-vector-sum)) 834 (call-interactively 'calc-vector-sum))
835 :keys "u +" 835 :keys "u +"
836 :active (>= (calc-stack-size) 1) 836 :active (>= (calc-stack-size) 1)
837 :help "The sum of the data values"] 837 :help "The sum of the data values"]
838 ["max(1:)" 838 ["max(1:)"
839 (progn 839 (progn
840 (require 'calc-stat) 840 (require 'calc-stat)
841 (call-interactively 'calc-vector-max)) 841 (call-interactively 'calc-vector-max))
842 :keys "u x" 842 :keys "u x"
843 :active (>= (calc-stack-size) 1) 843 :active (>= (calc-stack-size) 1)
844 :help "The maximum of the data values"] 844 :help "The maximum of the data values"]
845 ["min(1:)" 845 ["min(1:)"
846 (progn 846 (progn
847 (require 'calc-stat) 847 (require 'calc-stat)
848 (call-interactively 'calc-vector-min)) 848 (call-interactively 'calc-vector-min))
849 :keys "u N" 849 :keys "u N"
850 :active (>= (calc-stack-size) 1) 850 :active (>= (calc-stack-size) 1)
851 :help "The minumum of the data values"] 851 :help "The minimum of the data values"]
852 ["mean(1:)" 852 ["mean(1:)"
853 (progn 853 (progn
854 (require 'calc-stat) 854 (require 'calc-stat)
855 (call-interactively 'calc-vector-mean)) 855 (call-interactively 'calc-vector-mean))
@@ -863,28 +863,28 @@
863 :keys "I u M" 863 :keys "I u M"
864 :active (>= (calc-stack-size) 1) 864 :active (>= (calc-stack-size) 1)
865 :help "The average (arithmetic mean) of the data values as an error form"] 865 :help "The average (arithmetic mean) of the data values as an error form"]
866 ["sdev(1:)" 866 ["sdev(1:)"
867 (progn 867 (progn
868 (require 'calc-stat) 868 (require 'calc-stat)
869 (call-interactively 'calc-vector-sdev)) 869 (call-interactively 'calc-vector-sdev))
870 :keys "u S" 870 :keys "u S"
871 :active (>= (calc-stack-size) 1) 871 :active (>= (calc-stack-size) 1)
872 :help "The sample sdev, sqrt[sum((values - mean)^2)/(N-1)]"] 872 :help "The sample sdev, sqrt[sum((values - mean)^2)/(N-1)]"]
873 ["variance(1:)" 873 ["variance(1:)"
874 (progn 874 (progn
875 (require 'calc-stat) 875 (require 'calc-stat)
876 (call-interactively 'calc-vector-variance)) 876 (call-interactively 'calc-vector-variance))
877 :keys "H u S" 877 :keys "H u S"
878 :active (>= (calc-stack-size) 1) 878 :active (>= (calc-stack-size) 1)
879 :help "The sample variance, sum((values - mean)^2)/(N-1)"] 879 :help "The sample variance, sum((values - mean)^2)/(N-1)"]
880 ["population sdev(1:)" 880 ["population sdev(1:)"
881 (progn 881 (progn
882 (require 'calc-stat) 882 (require 'calc-stat)
883 (call-interactively 'calc-vector-pop-sdev)) 883 (call-interactively 'calc-vector-pop-sdev))
884 :keys "I u S" 884 :keys "I u S"
885 :active (>= (calc-stack-size) 1) 885 :active (>= (calc-stack-size) 1)
886 :help "The population sdev, sqrt[sum((values - mean)^2)/N]"] 886 :help "The population sdev, sqrt[sum((values - mean)^2)/N]"]
887 ["population variance(1:)" 887 ["population variance(1:)"
888 (progn 888 (progn
889 (require 'calc-stat) 889 (require 'calc-stat)
890 (call-interactively 'calc-vector-pop-variance)) 890 (call-interactively 'calc-vector-pop-variance))
@@ -937,25 +937,25 @@
937 937
938(defvar calc-units-menu 938(defvar calc-units-menu
939 (list "Units" 939 (list "Units"
940 ["Convert units in (1:)" 940 ["Convert units in (1:)"
941 (progn 941 (progn
942 (require 'calc-units) 942 (require 'calc-units)
943 (call-interactively 'calc-convert-units )) 943 (call-interactively 'calc-convert-units ))
944 :keys "u c" 944 :keys "u c"
945 :active (>= (calc-stack-size) 1)] 945 :active (>= (calc-stack-size) 1)]
946 ["Convert temperature in (1:)" 946 ["Convert temperature in (1:)"
947 (progn 947 (progn
948 (require 'calc-units) 948 (require 'calc-units)
949 (call-interactively 'calc-convert-temperature)) 949 (call-interactively 'calc-convert-temperature))
950 :keys "u t" 950 :keys "u t"
951 :active (>= (calc-stack-size) 1)] 951 :active (>= (calc-stack-size) 1)]
952 ["Simplify units in (1:)" 952 ["Simplify units in (1:)"
953 (progn 953 (progn
954 (require 'calc-units) 954 (require 'calc-units)
955 (call-interactively 'calc-simplify-units)) 955 (call-interactively 'calc-simplify-units))
956 :keys "u s" 956 :keys "u s"
957 :active (>= (calc-stack-size) 1)] 957 :active (>= (calc-stack-size) 1)]
958 ["View units table" 958 ["View units table"
959 (progn 959 (progn
960 (require 'calc-units) 960 (require 'calc-units)
961 (call-interactively 'calc-view-units-table)) 961 (call-interactively 'calc-view-units-table))
@@ -1072,40 +1072,40 @@
1072 1072
1073(defvar calc-variables-menu 1073(defvar calc-variables-menu
1074 (list "Variables" 1074 (list "Variables"
1075 ["Store (1:) into a variable" 1075 ["Store (1:) into a variable"
1076 (progn 1076 (progn
1077 (require 'calc-store) 1077 (require 'calc-store)
1078 (call-interactively 'calc-store)) 1078 (call-interactively 'calc-store))
1079 :keys "s s" 1079 :keys "s s"
1080 :active (>= (calc-stack-size) 1)] 1080 :active (>= (calc-stack-size) 1)]
1081 ["Recall a variable value" 1081 ["Recall a variable value"
1082 (progn 1082 (progn
1083 (require 'calc-store) 1083 (require 'calc-store)
1084 (call-interactively 'calc-recall )) 1084 (call-interactively 'calc-recall ))
1085 :keys "s r"] 1085 :keys "s r"]
1086 ["Edit the value of a variable" 1086 ["Edit the value of a variable"
1087 (progn 1087 (progn
1088 (require 'calc-store) 1088 (require 'calc-store)
1089 (call-interactively 'calc-edit-variable)) 1089 (call-interactively 'calc-edit-variable))
1090 :keys "s e"] 1090 :keys "s e"]
1091 ["Exchange (1:) with a variable value" 1091 ["Exchange (1:) with a variable value"
1092 (progn 1092 (progn
1093 (require 'calc-store) 1093 (require 'calc-store)
1094 (call-interactively 'calc-store-exchange)) 1094 (call-interactively 'calc-store-exchange))
1095 :keys "s x" 1095 :keys "s x"
1096 :active (>= (calc-stack-size) 1)] 1096 :active (>= (calc-stack-size) 1)]
1097 ["Clear variable value" 1097 ["Clear variable value"
1098 (progn 1098 (progn
1099 (require 'calc-store) 1099 (require 'calc-store)
1100 (call-interactively 'calc-unstore)) 1100 (call-interactively 'calc-unstore))
1101 :keys "s u"] 1101 :keys "s u"]
1102 ["Evaluate variables in (1:)" 1102 ["Evaluate variables in (1:)"
1103 (progn 1103 (progn
1104 (require 'calc-ext) 1104 (require 'calc-ext)
1105 (call-interactively 'calc-evaluate)) 1105 (call-interactively 'calc-evaluate))
1106 :keys "=" 1106 :keys "="
1107 :active (>= (calc-stack-size) 1)] 1107 :active (>= (calc-stack-size) 1)]
1108 ["Evaluate (1:), assigning a value to a variable" 1108 ["Evaluate (1:), assigning a value to a variable"
1109 (progn 1109 (progn
1110 (require 'calc-store) 1110 (require 'calc-store)
1111 (call-interactively 'calc-let)) 1111 (call-interactively 'calc-let))
@@ -1119,19 +1119,19 @@
1119 1119
1120(defvar calc-stack-menu 1120(defvar calc-stack-menu
1121 (list "Stack" 1121 (list "Stack"
1122 ["Remove (1:)" 1122 ["Remove (1:)"
1123 calc-pop 1123 calc-pop
1124 :keys "DEL" 1124 :keys "DEL"
1125 :active (>= (calc-stack-size) 1)] 1125 :active (>= (calc-stack-size) 1)]
1126 ["Switch (1:) and (2:)" 1126 ["Switch (1:) and (2:)"
1127 calc-roll-down 1127 calc-roll-down
1128 :keys "TAB" 1128 :keys "TAB"
1129 :active (>= (calc-stack-size) 2)] 1129 :active (>= (calc-stack-size) 2)]
1130 ["Duplicate (1:)" 1130 ["Duplicate (1:)"
1131 calc-enter 1131 calc-enter
1132 :keys "RET" 1132 :keys "RET"
1133 :active (>= (calc-stack-size) 1)] 1133 :active (>= (calc-stack-size) 1)]
1134 ["Edit (1:)" 1134 ["Edit (1:)"
1135 (progn 1135 (progn
1136 (require 'calc-yank) 1136 (require 'calc-yank)
1137 (call-interactively calc-edit)) 1137 (call-interactively calc-edit))
@@ -1144,12 +1144,12 @@
1144 1144
1145(defvar calc-errors-menu 1145(defvar calc-errors-menu
1146 (list "Undo" 1146 (list "Undo"
1147 ["Undo" 1147 ["Undo"
1148 (progn 1148 (progn
1149 (require 'calc-undo) 1149 (require 'calc-undo)
1150 (call-interactively 'calc-undo)) 1150 (call-interactively 'calc-undo))
1151 :keys "U"] 1151 :keys "U"]
1152 ["Redo" 1152 ["Redo"
1153 (progn 1153 (progn
1154 (require 'calc-undo) 1154 (require 'calc-undo)
1155 (call-interactively 'calc-redo)) 1155 (call-interactively 'calc-redo))
@@ -1162,7 +1162,7 @@
1162 1162
1163(defvar calc-modes-menu 1163(defvar calc-modes-menu
1164 (list "Modes" 1164 (list "Modes"
1165 ["Precision" 1165 ["Precision"
1166 (progn 1166 (progn
1167 (require 'calc-ext) 1167 (require 'calc-ext)
1168 (call-interactively 'calc-precision)) 1168 (call-interactively 'calc-precision))
@@ -1277,7 +1277,7 @@
1277 ["Binary" 1277 ["Binary"
1278 (progn 1278 (progn
1279 (require 'calc-bin) 1279 (require 'calc-bin)
1280 (call-interactively 1280 (call-interactively
1281 (lambda () (interactive) (calc-binary-radix t)))) 1281 (lambda () (interactive) (calc-binary-radix t))))
1282 :keys "C-u d 2" 1282 :keys "C-u d 2"
1283 :style radio 1283 :style radio
@@ -1330,7 +1330,7 @@
1330 :keys "d e" 1330 :keys "d e"
1331 :style radio 1331 :style radio
1332 :selected (eq (car-safe calc-float-format) 'eng)]) 1332 :selected (eq (car-safe calc-float-format) 'eng)])
1333 (list "Complex Format" 1333 (list "Complex Format"
1334 ["Default" 1334 ["Default"
1335 (progn 1335 (progn
1336 (require 'calc-cplx) 1336 (require 'calc-cplx)
@@ -1522,17 +1522,17 @@
1522 1522
1523(defvar calc-help-menu 1523(defvar calc-help-menu
1524 (list "Help" 1524 (list "Help"
1525 ["Manual" 1525 ["Manual"
1526 calc-info 1526 calc-info
1527 :keys "h i"] 1527 :keys "h i"]
1528 ["Tutorial" 1528 ["Tutorial"
1529 calc-tutorial 1529 calc-tutorial
1530 :keys "h t"] 1530 :keys "h t"]
1531 ["Summary" 1531 ["Summary"
1532 calc-info-summary 1532 calc-info-summary
1533 :keys "h s"] 1533 :keys "h s"]
1534 "----" 1534 "----"
1535 ["Help on Help" 1535 ["Help on Help"
1536 (progn 1536 (progn
1537 (calc-info-goto-node "Introduction") 1537 (calc-info-goto-node "Introduction")
1538 (Info-goto-node "Help Commands"))]) 1538 (Info-goto-node "Help Commands"))])
@@ -1557,7 +1557,7 @@
1557 calc-errors-menu 1557 calc-errors-menu
1558 calc-modes-menu 1558 calc-modes-menu
1559 calc-help-menu 1559 calc-help-menu
1560 ["Reset" 1560 ["Reset"
1561 (progn 1561 (progn
1562 (require 'calc-ext) 1562 (require 'calc-ext)
1563 (call-interactively 'calc-reset)) 1563 (call-interactively 'calc-reset))
@@ -1565,4 +1565,3 @@
1565 ["Quit" calc-quit])) 1565 ["Quit" calc-quit]))
1566 1566
1567(provide 'calc-menu) 1567(provide 'calc-menu)
1568
diff --git a/lisp/calc/calc-misc.el b/lisp/calc/calc-misc.el
index 6d034927ae0..d8bdc614e67 100644
--- a/lisp/calc/calc-misc.el
+++ b/lisp/calc/calc-misc.el
@@ -219,10 +219,10 @@ Calc user interface as before (either C-x * C or C-x * K; initially C-x * C).
219 (let ((msgs 219 (let ((msgs
220 '("Press `h' for complete help; press `?' repeatedly for a summary" 220 '("Press `h' for complete help; press `?' repeatedly for a summary"
221 "Letter keys: Negate; Precision; Yank; Why; Xtended cmd; Quit" 221 "Letter keys: Negate; Precision; Yank; Why; Xtended cmd; Quit"
222 "Letter keys: SHIFT + Undo, reDo; Keep-args; Inverse, Hyperbolic, Option" 222 "Letter keys: SHIFT + Undo, reDo; Inverse, Hyperbolic, Option"
223 "Letter keys: SHIFT + sQrt; Sin, Cos, Tan; Exp, Ln, logB" 223 "Letter keys: SHIFT + sQrt; Sin, Cos, Tan; Exp, Ln, logB"
224 "Letter keys: SHIFT + Floor, Round; Abs, conJ, arG; Pi" 224 "Letter keys: SHIFT + Floor, Round; Abs, conJ, arG; Pi"
225 "Letter keys: SHIFT + Num-eval; More-recn; eXec-kbd-macro" 225 "Letter keys: SHIFT + Num-eval; More-recn; eXec-kbd-macro; Keep-args"
226 "Other keys: +, -, *, /, ^, \\ (int div), : (frac div)" 226 "Other keys: +, -, *, /, ^, \\ (int div), : (frac div)"
227 "Other keys: & (1/x), | (concat), % (modulo), ! (factorial)" 227 "Other keys: & (1/x), | (concat), % (modulo), ! (factorial)"
228 "Other keys: ' (alg-entry), = (eval), ` (edit); M-RET (last-args)" 228 "Other keys: ' (alg-entry), = (eval), ` (edit); M-RET (last-args)"
diff --git a/lisp/calc/calc-poly.el b/lisp/calc/calc-poly.el
index 97d955eb07d..e21a095c821 100644
--- a/lisp/calc/calc-poly.el
+++ b/lisp/calc/calc-poly.el
@@ -147,7 +147,7 @@
147 147
148;;; Return only quotient to top of stack (nil if zero) 148;;; Return only quotient to top of stack (nil if zero)
149 149
150;; calc-poly-div-remainder is a local variable for 150;; calc-poly-div-remainder is a local variable for
151;; calc-poly-div (in calc-alg.el), but is used by 151;; calc-poly-div (in calc-alg.el), but is used by
152;; calcFunc-pdiv, which is called by calc-poly-div. 152;; calcFunc-pdiv, which is called by calc-poly-div.
153(defvar calc-poly-div-remainder) 153(defvar calc-poly-div-remainder)
@@ -512,7 +512,7 @@
512;;; Given an expression find all variables that are polynomial bases. 512;;; Given an expression find all variables that are polynomial bases.
513;;; Return list in the form '( (var1 degree1) (var2 degree2) ... ). 513;;; Return list in the form '( (var1 degree1) (var2 degree2) ... ).
514 514
515;; The variable math-poly-base-total-base is local to 515;; The variable math-poly-base-total-base is local to
516;; math-total-polynomial-base, but is used by math-polynomial-p1, 516;; math-total-polynomial-base, but is used by math-polynomial-p1,
517;; which is called by math-total-polynomial-base. 517;; which is called by math-total-polynomial-base.
518(defvar math-poly-base-total-base) 518(defvar math-poly-base-total-base)
@@ -539,19 +539,19 @@
539 nil) 539 nil)
540 540
541;; The variable math-factored-vars is local to calcFunc-factors and 541;; The variable math-factored-vars is local to calcFunc-factors and
542;; calcFunc-factor, but is used by math-factor-expr and 542;; calcFunc-factor, but is used by math-factor-expr and
543;; math-factor-expr-part, which are called (directly and indirectly) by 543;; math-factor-expr-part, which are called (directly and indirectly) by
544;; calcFunc-factor and calcFunc-factors. 544;; calcFunc-factor and calcFunc-factors.
545(defvar math-factored-vars) 545(defvar math-factored-vars)
546 546
547;; The variable math-fact-expr is local to calcFunc-factors, 547;; The variable math-fact-expr is local to calcFunc-factors,
548;; calcFunc-factor and math-factor-expr, but is used by math-factor-expr-try 548;; calcFunc-factor and math-factor-expr, but is used by math-factor-expr-try
549;; and math-factor-expr-part, which are called (directly and indirectly) by 549;; and math-factor-expr-part, which are called (directly and indirectly) by
550;; calcFunc-factor, calcFunc-factors and math-factor-expr. 550;; calcFunc-factor, calcFunc-factors and math-factor-expr.
551(defvar math-fact-expr) 551(defvar math-fact-expr)
552 552
553;; The variable math-to-list is local to calcFunc-factors and 553;; The variable math-to-list is local to calcFunc-factors and
554;; calcFunc-factor, but is used by math-accum-factors, which is 554;; calcFunc-factor, but is used by math-accum-factors, which is
555;; called (indirectly) by calcFunc-factors and calcFunc-factor. 555;; called (indirectly) by calcFunc-factors and calcFunc-factor.
556(defvar math-to-list) 556(defvar math-to-list)
557 557
@@ -729,7 +729,7 @@
729 '(1))) 729 '(1)))
730 730
731 ;; We now have a square-free polynomial with integer coefs. 731 ;; We now have a square-free polynomial with integer coefs.
732 ;; For now, we use a kludgey method that finds linear and 732 ;; For now, we use a kludgy method that finds linear and
733 ;; quadratic terms using floating-point root-finding. 733 ;; quadratic terms using floating-point root-finding.
734 (if (setq t1 (let ((calc-symbolic-mode nil)) 734 (if (setq t1 (let ((calc-symbolic-mode nil))
735 (math-poly-all-roots nil p t))) 735 (math-poly-all-roots nil p t)))
@@ -749,7 +749,7 @@
749 (math-add 749 (math-add
750 (math-add 750 (math-add
751 (math-mul den (math-pow math-fet-x 2)) 751 (math-mul den (math-pow math-fet-x 2))
752 (math-mul (math-mul coef1 den) 752 (math-mul (math-mul coef1 den)
753 math-fet-x)) 753 math-fet-x))
754 (math-mul coef0 den))) 754 (math-mul coef0 den)))
755 (let ((den (math-lcm-denoms coef0))) 755 (let ((den (math-lcm-denoms coef0)))
@@ -1077,7 +1077,7 @@ If no partial fraction representation can be found, return nil."
1077 ((and (eq (car-safe expr) '^) 1077 ((and (eq (car-safe expr) '^)
1078 (memq (car-safe (nth 1 expr)) '(+ -)) 1078 (memq (car-safe (nth 1 expr)) '(+ -))
1079 (integerp (nth 2 expr)) 1079 (integerp (nth 2 expr))
1080 (if (and 1080 (if (and
1081 (or (math-known-matrixp (nth 1 (nth 1 expr))) 1081 (or (math-known-matrixp (nth 1 (nth 1 expr)))
1082 (math-known-matrixp (nth 2 (nth 1 expr))) 1082 (math-known-matrixp (nth 2 (nth 1 expr)))
1083 (and 1083 (and
@@ -1090,11 +1090,11 @@ If no partial fraction representation can be found, return nil."
1090 (math-add-or-sub (list '* (nth 1 (nth 1 expr)) (nth 1 expr)) 1090 (math-add-or-sub (list '* (nth 1 (nth 1 expr)) (nth 1 expr))
1091 (list '* (nth 2 (nth 1 expr)) (nth 1 expr)) 1091 (list '* (nth 2 (nth 1 expr)) (nth 1 expr))
1092 nil (eq (car (nth 1 expr)) '-)) 1092 nil (eq (car (nth 1 expr)) '-))
1093 (math-add-or-sub (list '* (nth 1 (nth 1 expr)) 1093 (math-add-or-sub (list '* (nth 1 (nth 1 expr))
1094 (list '^ (nth 1 expr) 1094 (list '^ (nth 1 expr)
1095 (1- (nth 2 expr)))) 1095 (1- (nth 2 expr))))
1096 (list '* (nth 2 (nth 1 expr)) 1096 (list '* (nth 2 (nth 1 expr))
1097 (list '^ (nth 1 expr) 1097 (list '^ (nth 1 expr)
1098 (1- (nth 2 expr)))) 1098 (1- (nth 2 expr))))
1099 nil (eq (car (nth 1 expr)) '-))) 1099 nil (eq (car (nth 1 expr)) '-)))
1100 (if (> (nth 2 expr) 0) 1100 (if (> (nth 2 expr) 0)
diff --git a/lisp/calc/calc-yank.el b/lisp/calc/calc-yank.el
index 2360cf00ddc..135ea0bae40 100644
--- a/lisp/calc/calc-yank.el
+++ b/lisp/calc/calc-yank.el
@@ -131,7 +131,7 @@
131 val)) 131 val))
132 val)))))))) 132 val))))))))
133 133
134;;; The Calc set- and get-register commands are modified versions of functions 134;;; The Calc set- and get-register commands are modified versions of functions
135;;; in register.el 135;;; in register.el
136 136
137(defvar calc-register-alist nil 137(defvar calc-register-alist nil
@@ -206,7 +206,7 @@ With prefix arg, delete as well."
206 206
207(defun calc-add-to-register (register start end prepend delete-flag) 207(defun calc-add-to-register (register start end prepend delete-flag)
208 "Add the lines in the region to register REGISTER. 208 "Add the lines in the region to register REGISTER.
209If PREPEND is non-nil, add them to the beginning of the register, 209If PREPEND is non-nil, add them to the beginning of the register,
210otherwise the end. If DELETE-FLAG is non-nil, also delete the region." 210otherwise the end. If DELETE-FLAG is non-nil, also delete the region."
211 (let* ((top-num (calc-locate-cursor-element start)) 211 (let* ((top-num (calc-locate-cursor-element start))
212 (top-pos (save-excursion 212 (top-pos (save-excursion
@@ -242,7 +242,7 @@ With prefix arg, also delete the region."
242 (if (eq major-mode 'calc-mode) 242 (if (eq major-mode 'calc-mode)
243 (calc-add-to-register register start end nil delete-flag) 243 (calc-add-to-register register start end nil delete-flag)
244 (append-to-register register start end delete-flag))) 244 (append-to-register register start end delete-flag)))
245 245
246(defun calc-prepend-to-register (register start end &optional delete-flag) 246(defun calc-prepend-to-register (register start end &optional delete-flag)
247 "Copy the lines in the region to the beginning of register REGISTER. 247 "Copy the lines in the region to the beginning of register REGISTER.
248With prefix arg, also delete the region." 248With prefix arg, also delete the region."
@@ -250,7 +250,7 @@ With prefix arg, also delete the region."
250 (if (eq major-mode 'calc-mode) 250 (if (eq major-mode 'calc-mode)
251 (calc-add-to-register register start end t delete-flag) 251 (calc-add-to-register register start end t delete-flag)
252 (prepend-to-register register start end delete-flag))) 252 (prepend-to-register register start end delete-flag)))
253 253
254 254
255 255
256(defun calc-clean-newlines (s) 256(defun calc-clean-newlines (s)
@@ -585,12 +585,12 @@ To cancel the edit, simply kill the *Calc Edit* buffer."
585 (setq calc-allow-ret allow-ret) 585 (setq calc-allow-ret allow-ret)
586 (let ((inhibit-read-only t)) 586 (let ((inhibit-read-only t))
587 (erase-buffer)) 587 (erase-buffer))
588 (add-hook 'kill-buffer-hook (lambda () 588 (add-hook 'kill-buffer-hook (lambda ()
589 (let ((calc-edit-handler nil)) 589 (let ((calc-edit-handler nil))
590 (calc-edit-finish t)) 590 (calc-edit-finish t))
591 (message "(Cancelled)")) t t) 591 (message "(Cancelled)")) t t)
592 (insert (propertize 592 (insert (propertize
593 (concat 593 (concat
594 (or title title "Calc Edit Mode. ") 594 (or title title "Calc Edit Mode. ")
595 "Press `C-c C-c'" 595 "Press `C-c C-c'"
596 (if allow-ret "" " or RET") 596 (if allow-ret "" " or RET")
diff --git a/lisp/calculator.el b/lisp/calculator.el
index 4a79316d736..faf62424729 100644
--- a/lisp/calculator.el
+++ b/lisp/calculator.el
@@ -81,7 +81,7 @@ This determines the default behavior of unary operators."
81 81
82(defcustom calculator-prompt "Calc=%s> " 82(defcustom calculator-prompt "Calc=%s> "
83 "The prompt used by the Emacs calculator. 83 "The prompt used by the Emacs calculator.
84It should contain a \"%s\" somewhere that will indicate the i/o radixes; 84It should contain a \"%s\" somewhere that will indicate the i/o radices;
85this will be a two-character string as described in the documentation 85this will be a two-character string as described in the documentation
86for `calculator-mode'." 86for `calculator-mode'."
87 :type 'string 87 :type 'string
diff --git a/lisp/calendar/appt.el b/lisp/calendar/appt.el
index c44eb6e1b5d..230366da2b0 100644
--- a/lisp/calendar/appt.el
+++ b/lisp/calendar/appt.el
@@ -508,7 +508,7 @@ The time should be in either 24 hour format or am/pm format.
508Optional argument WARNTIME is an integer (or string) giving the number 508Optional argument WARNTIME is an integer (or string) giving the number
509of minutes before the appointment at which to start warning. 509of minutes before the appointment at which to start warning.
510The default is `appt-message-warning-time'." 510The default is `appt-message-warning-time'."
511 (interactive "sTime (hh:mm[am/pm]): \nsMessage: 511 (interactive "sTime (hh:mm[am/pm]): \nsMessage: \n\
512sMinutes before the appointment to start warning: ") 512sMinutes before the appointment to start warning: ")
513 (unless (string-match appt-time-regexp time) 513 (unless (string-match appt-time-regexp time)
514 (error "Unacceptable time-string")) 514 (error "Unacceptable time-string"))
@@ -521,7 +521,7 @@ sMinutes before the appointment to start warning: ")
521 (or appt-timer (appt-activate)) 521 (or appt-timer (appt-activate))
522 (let ((time-msg (list (list (appt-convert-time time)) 522 (let ((time-msg (list (list (appt-convert-time time))
523 (concat time " " msg) t))) 523 (concat time " " msg) t)))
524 ;; It is presently non-sensical to have multiple warnings about 524 ;; It is presently nonsensical to have multiple warnings about
525 ;; the same appointment with just different delays, but it might 525 ;; the same appointment with just different delays, but it might
526 ;; not always be so. TODO 526 ;; not always be so. TODO
527 (if warntime (setq time-msg (append time-msg (list warntime)))) 527 (if warntime (setq time-msg (append time-msg (list warntime))))
diff --git a/lisp/calendar/holidays.el b/lisp/calendar/holidays.el
index 3ba1078f62d..42c95f39faa 100644
--- a/lisp/calendar/holidays.el
+++ b/lisp/calendar/holidays.el
@@ -723,7 +723,7 @@ STRING)). Returns nil if it is not visible in the current calendar window."
723 (let ((m displayed-month) 723 (let ((m displayed-month)
724 (y displayed-year)) 724 (y displayed-year))
725 (calendar-increment-month m y (- 11 month)) 725 (calendar-increment-month m y (- 11 month))
726 (if (> m 9) ; is november visible? 726 (if (> m 9) ; Is November visible?
727 (list (list (list month day y) string))))) 727 (list (list (list month day y) string)))))
728 728
729(defun holiday-float (month dayname n string &optional day) 729(defun holiday-float (month dayname n string &optional day)
diff --git a/lisp/calendar/solar.el b/lisp/calendar/solar.el
index 84a1544d709..b841ed4ab73 100644
--- a/lisp/calendar/solar.el
+++ b/lisp/calendar/solar.el
@@ -962,7 +962,7 @@ Accurate to within a minute between 1951 and 2050."
962(defun solar-mean-equinoxes/solstices (k year) 962(defun solar-mean-equinoxes/solstices (k year)
963 "Julian day of mean equinox/solstice K for YEAR. 963 "Julian day of mean equinox/solstice K for YEAR.
964K=0, spring equinox; K=1, summer solstice; K=2, fall equinox; K=3, winter 964K=0, spring equinox; K=1, summer solstice; K=2, fall equinox; K=3, winter
965solstice. These formulae are only to be used between 1000 BC and 3000 AD." 965solstice. These formulas are only to be used between 1000 BC and 3000 AD."
966 (let ((y (/ year 1000.0)) 966 (let ((y (/ year 1000.0))
967 (z (/ (- year 2000) 1000.0))) 967 (z (/ (- year 2000) 1000.0)))
968 (if (< year 1000) ; actually between -1000 and 1000 968 (if (< year 1000) ; actually between -1000 and 1000
diff --git a/lisp/cedet/ChangeLog b/lisp/cedet/ChangeLog
index f3ff89ddd7f..0e46ba73e6e 100644
--- a/lisp/cedet/ChangeLog
+++ b/lisp/cedet/ChangeLog
@@ -1,3 +1,12 @@
12011-12-19 Sam Steingold <sds@gnu.org>
2
3 * semantic/edit.el (semantic-edits-incremental-parser): Add the
4 autoload cookie, necessary for JDEE.
5
62011-12-06 Juanma Barranquero <lekktu@gmail.com>
7
8 * semantic/bovine/c.el (semantic-tag-abstract-p): Fix typo.
9
12011-11-26 Chong Yidong <cyd@gnu.org> 102011-11-26 Chong Yidong <cyd@gnu.org>
2 11
3 * semantic/wisent/python-wy.el: 12 * semantic/wisent/python-wy.el:
diff --git a/lisp/cedet/data-debug.el b/lisp/cedet/data-debug.el
index 329d1c608c2..d553c433fc4 100644
--- a/lisp/cedet/data-debug.el
+++ b/lisp/cedet/data-debug.el
@@ -1060,11 +1060,11 @@ If the result is a list or vector, then use the data debugger to display it."
1060 (setq values (cons (eval expr) values)) 1060 (setq values (cons (eval expr) values))
1061 (let ((old-value (make-symbol "t")) new-value) 1061 (let ((old-value (make-symbol "t")) new-value)
1062 ;; Bind debug-on-error to something unique so that we can 1062 ;; Bind debug-on-error to something unique so that we can
1063 ;; detect when evaled code changes it. 1063 ;; detect when evalled code changes it.
1064 (let ((debug-on-error old-value)) 1064 (let ((debug-on-error old-value))
1065 (setq values (cons (eval expr) values)) 1065 (setq values (cons (eval expr) values))
1066 (setq new-value debug-on-error)) 1066 (setq new-value debug-on-error))
1067 ;; If evaled code has changed the value of debug-on-error, 1067 ;; If evalled code has changed the value of debug-on-error,
1068 ;; propagate that change to the global binding. 1068 ;; propagate that change to the global binding.
1069 (unless (eq old-value new-value) 1069 (unless (eq old-value new-value)
1070 (setq debug-on-error new-value)))) 1070 (setq debug-on-error new-value))))
diff --git a/lisp/cedet/ede/pmake.el b/lisp/cedet/ede/pmake.el
index d78e95af27f..4065b848f54 100644
--- a/lisp/cedet/ede/pmake.el
+++ b/lisp/cedet/ede/pmake.el
@@ -335,7 +335,7 @@ NOTE: Not yet in use! This is part of an SRecode conversion of
335; 335;
336; (oref this variables)) 336; (oref this variables))
337; 337;
338; ;; Add in all variables from the configuration not allready covered. 338; ;; Add in all variables from the configuration not already covered.
339; (mapc (lambda (c) 339; (mapc (lambda (c)
340; 340;
341; (if (member (car c) conf-done) 341; (if (member (car c) conf-done)
@@ -372,7 +372,7 @@ NOTE: Not yet in use! This is part of an SRecode conversion of
372 (setq conf-done (cons (car c) conf-done)))) 372 (setq conf-done (cons (car c) conf-done))))
373 (insert (cdr c) "\n")) 373 (insert (cdr c) "\n"))
374 (oref this variables)) 374 (oref this variables))
375 ;; Add in all variables from the configuration not allready covered. 375 ;; Add in all variables from the configuration not already covered.
376 (mapc (lambda (c) 376 (mapc (lambda (c)
377 (if (member (car c) conf-done) 377 (if (member (car c) conf-done)
378 nil 378 nil
@@ -430,7 +430,7 @@ sources variable."
430 this (oref proj configuration-default))) 430 this (oref proj configuration-default)))
431 (conf-done nil) 431 (conf-done nil)
432 ) 432 )
433 ;; Add in all variables from the configuration not allready covered. 433 ;; Add in all variables from the configuration not already covered.
434 (mapc (lambda (c) 434 (mapc (lambda (c)
435 (if (member (car c) conf-done) 435 (if (member (car c) conf-done)
436 nil 436 nil
diff --git a/lisp/cedet/ede/proj-archive.el b/lisp/cedet/ede/proj-archive.el
index 23d3aa05000..23ef4850b6a 100644
--- a/lisp/cedet/ede/proj-archive.el
+++ b/lisp/cedet/ede/proj-archive.el
@@ -46,7 +46,7 @@
46(defmethod ede-proj-makefile-insert-source-variables :BEFORE 46(defmethod ede-proj-makefile-insert-source-variables :BEFORE
47 ((this ede-proj-target-makefile-archive) &optional moresource) 47 ((this ede-proj-target-makefile-archive) &optional moresource)
48 "Insert bin_PROGRAMS variables needed by target THIS. 48 "Insert bin_PROGRAMS variables needed by target THIS.
49We aren't acutally inserting SOURCE details, but this is used by the 49We aren't actually inserting SOURCE details, but this is used by the
50Makefile.am generator, so use it to add this important bin program." 50Makefile.am generator, so use it to add this important bin program."
51 (ede-pmake-insert-variable-shared 51 (ede-pmake-insert-variable-shared
52 (concat "lib" (ede-name this) "_a_LIBRARIES") 52 (concat "lib" (ede-name this) "_a_LIBRARIES")
diff --git a/lisp/cedet/ede/proj-shared.el b/lisp/cedet/ede/proj-shared.el
index 4e233f56a12..7268fb95646 100644
--- a/lisp/cedet/ede/proj-shared.el
+++ b/lisp/cedet/ede/proj-shared.el
@@ -181,7 +181,7 @@ Results in --add-missing being passed to automake."
181(defmethod ede-proj-makefile-insert-automake-pre-variables 181(defmethod ede-proj-makefile-insert-automake-pre-variables
182 ((this ede-proj-target-makefile-shared-object)) 182 ((this ede-proj-target-makefile-shared-object))
183 "Insert bin_PROGRAMS variables needed by target THIS. 183 "Insert bin_PROGRAMS variables needed by target THIS.
184We aren't acutally inserting SOURCE details, but this is used by the 184We aren't actually inserting SOURCE details, but this is used by the
185Makefile.am generator, so use it to add this important bin program." 185Makefile.am generator, so use it to add this important bin program."
186 (ede-pmake-insert-variable-shared "lib_LTLIBRARIES" 186 (ede-pmake-insert-variable-shared "lib_LTLIBRARIES"
187 (insert (concat "lib" (ede-name this) ".la")))) 187 (insert (concat "lib" (ede-name this) ".la"))))
diff --git a/lisp/cedet/inversion.el b/lisp/cedet/inversion.el
index 53639b19a96..35841d2a6b2 100644
--- a/lisp/cedet/inversion.el
+++ b/lisp/cedet/inversion.el
@@ -199,12 +199,12 @@ not an indication of new features or bug fixes."
199 (= v1-1 v2-1) 199 (= v1-1 v2-1)
200 (= v1-2 v2-2) 200 (= v1-2 v2-2)
201 (= v1-3 v2-3) 201 (= v1-3 v2-3)
202 v1-4 v2-4 ; all or nothin if elt - is = 202 v1-4 v2-4 ; all or nothing if elt - is =
203 (< v1-4 v2-4)) 203 (< v1-4 v2-4))
204 (and (= v1-0 v2-0) 204 (and (= v1-0 v2-0)
205 (= v1-1 v2-1) 205 (= v1-1 v2-1)
206 (= v1-2 v2-2) 206 (= v1-2 v2-2)
207 v1-3 v2-3 ; all or nothin if elt - is = 207 v1-3 v2-3 ; all or nothing if elt - is =
208 (< v1-3 v2-3)) 208 (< v1-3 v2-3))
209 (and (= v1-1 v2-1) 209 (and (= v1-1 v2-1)
210 (< v1-2 v2-2)) 210 (< v1-2 v2-2))
diff --git a/lisp/cedet/semantic.el b/lisp/cedet/semantic.el
index 3355ed83a91..337413caf75 100644
--- a/lisp/cedet/semantic.el
+++ b/lisp/cedet/semantic.el
@@ -680,7 +680,7 @@ Does nothing if the current buffer doesn't need reparsing."
680 (save-excursion (semantic-fetch-tags)) 680 (save-excursion (semantic-fetch-tags))
681 nil) 681 nil)
682 ;; If we are here, it is because the lexical step failed, 682 ;; If we are here, it is because the lexical step failed,
683 ;; proably due to unterminated lists or something like that. 683 ;; probably due to unterminated lists or something like that.
684 684
685 ;; We do nothing, and just wait for the next idle timer 685 ;; We do nothing, and just wait for the next idle timer
686 ;; to go off. In the meantime, remember this, and make sure 686 ;; to go off. In the meantime, remember this, and make sure
diff --git a/lisp/cedet/semantic/analyze/debug.el b/lisp/cedet/semantic/analyze/debug.el
index b02358b7243..ce8e79b19dc 100644
--- a/lisp/cedet/semantic/analyze/debug.el
+++ b/lisp/cedet/semantic/analyze/debug.el
@@ -70,7 +70,7 @@
70 (let ((pentry (nth idx pf)) 70 (let ((pentry (nth idx pf))
71 (ptentry (nth idx pft))) 71 (ptentry (nth idx pft)))
72 (if (or (stringp pentry) (not ptentry)) 72 (if (or (stringp pentry) (not ptentry))
73 ;; Found someting ok. stop 73 ;; Found something ok. Stop.
74 (setq stop t) 74 (setq stop t)
75 (setq idx (1+ idx))))) 75 (setq idx (1+ idx)))))
76 ;; We found the first non-tag entry. What is the situation? 76 ;; We found the first non-tag entry. What is the situation?
diff --git a/lisp/cedet/semantic/bovine/c.el b/lisp/cedet/semantic/bovine/c.el
index fe659d118e1..4da23498cfc 100644
--- a/lisp/cedet/semantic/bovine/c.el
+++ b/lisp/cedet/semantic/bovine/c.el
@@ -816,7 +816,7 @@ now.
816 ;; 816 ;;
817 ;; will create 2 toplevel tags, one is type A, and the other variable B 817 ;; will create 2 toplevel tags, one is type A, and the other variable B
818 ;; where the :type of B is just a type tag A that is a prototype, and 818 ;; where the :type of B is just a type tag A that is a prototype, and
819 ;; the actual struct info of A is it's own toplevel tag. 819 ;; the actual struct info of A is its own toplevel tag.
820 (when (or (semantic-tag-of-class-p tag 'function) 820 (when (or (semantic-tag-of-class-p tag 'function)
821 (semantic-tag-of-class-p tag 'variable)) 821 (semantic-tag-of-class-p tag 'variable))
822 (let* ((basetype (semantic-tag-type tag)) 822 (let* ((basetype (semantic-tag-type tag))
@@ -1311,7 +1311,7 @@ Optional PARENT and COLOR as specified with
1311 "Return non-nil if TAG is considered abstract. 1311 "Return non-nil if TAG is considered abstract.
1312PARENT is tag's parent. 1312PARENT is tag's parent.
1313In C, a method is abstract if it is `virtual', which is already 1313In C, a method is abstract if it is `virtual', which is already
1314handled. A class is abstract iff it's destructor is virtual." 1314handled. A class is abstract iff its destructor is virtual."
1315 (cond 1315 (cond
1316 ((eq (semantic-tag-class tag) 'type) 1316 ((eq (semantic-tag-class tag) 'type)
1317 (require 'semantic/find) 1317 (require 'semantic/find)
diff --git a/lisp/cedet/semantic/bovine/el.el b/lisp/cedet/semantic/bovine/el.el
index 98f744dca6e..1a2061d01e7 100644
--- a/lisp/cedet/semantic/bovine/el.el
+++ b/lisp/cedet/semantic/bovine/el.el
@@ -497,15 +497,15 @@ used to perform the override."
497Unfortunately, this requires that the tag in question has been loaded 497Unfortunately, this requires that the tag in question has been loaded
498into Emacs Lisp's memory." 498into Emacs Lisp's memory."
499 (let ((obsoletethis (intern-soft (semantic-tag-name tag))) 499 (let ((obsoletethis (intern-soft (semantic-tag-name tag)))
500 (obsoletor nil)) 500 (obsoleter nil))
501 ;; This asks if our tag is available in the Emacs name space for querying. 501 ;; This asks if our tag is available in the Emacs name space for querying.
502 (when obsoletethis 502 (when obsoletethis
503 (mapatoms (lambda (a) 503 (mapatoms (lambda (a)
504 (let ((oi (get a 'byte-obsolete-info))) 504 (let ((oi (get a 'byte-obsolete-info)))
505 (if (and oi (eq (car oi) obsoletethis)) 505 (if (and oi (eq (car oi) obsoletethis))
506 (setq obsoletor a))))) 506 (setq obsoleter a)))))
507 (if obsoletor 507 (if obsoleter
508 (format "\n@obsolete{%s,%s}" obsoletor (semantic-tag-name tag)) 508 (format "\n@obsolete{%s,%s}" obsoleter (semantic-tag-name tag))
509 "")))) 509 ""))))
510 510
511(define-mode-local-override semantic-documentation-for-tag 511(define-mode-local-override semantic-documentation-for-tag
diff --git a/lisp/cedet/semantic/db-file.el b/lisp/cedet/semantic/db-file.el
index 943ccf23031..9df240a3681 100644
--- a/lisp/cedet/semantic/db-file.el
+++ b/lisp/cedet/semantic/db-file.el
@@ -193,16 +193,16 @@ If DIRECTORY doesn't exist, create a new one."
193 (eieio-instance-tracker-find filename 'file 'semanticdb-database-list)) 193 (eieio-instance-tracker-find filename 'file 'semanticdb-database-list))
194 194
195(defmethod semanticdb-file-directory-exists-p ((DB semanticdb-project-database-file) 195(defmethod semanticdb-file-directory-exists-p ((DB semanticdb-project-database-file)
196 &optional supress-questions) 196 &optional suppress-questions)
197 "Does the directory the database DB needs to write to exist? 197 "Does the directory the database DB needs to write to exist?
198If SUPRESS-QUESTIONS, then do not ask to create the directory." 198If SUPPRESS-QUESTIONS, then do not ask to create the directory."
199 (let ((dest (file-name-directory (oref DB file))) 199 (let ((dest (file-name-directory (oref DB file)))
200 ) 200 )
201 (cond ((null dest) 201 (cond ((null dest)
202 ;; @TODO - If it was never set up... what should we do ? 202 ;; @TODO - If it was never set up... what should we do ?
203 nil) 203 nil)
204 ((file-exists-p dest) t) 204 ((file-exists-p dest) t)
205 ((or supress-questions 205 ((or suppress-questions
206 (and (boundp 'semanticdb--inhibit-make-directory) 206 (and (boundp 'semanticdb--inhibit-make-directory)
207 semanticdb--inhibit-make-directory)) 207 semanticdb--inhibit-make-directory))
208 nil) 208 nil)
@@ -216,13 +216,13 @@ If SUPRESS-QUESTIONS, then do not ask to create the directory."
216 216
217(defmethod semanticdb-save-db ((DB semanticdb-project-database-file) 217(defmethod semanticdb-save-db ((DB semanticdb-project-database-file)
218 &optional 218 &optional
219 supress-questions) 219 suppress-questions)
220 "Write out the database DB to its file. 220 "Write out the database DB to its file.
221If DB is not specified, then use the current database." 221If DB is not specified, then use the current database."
222 (let ((objname (oref DB file))) 222 (let ((objname (oref DB file)))
223 (when (and (semanticdb-dirty-p DB) 223 (when (and (semanticdb-dirty-p DB)
224 (semanticdb-live-p DB) 224 (semanticdb-live-p DB)
225 (semanticdb-file-directory-exists-p DB supress-questions) 225 (semanticdb-file-directory-exists-p DB suppress-questions)
226 (semanticdb-write-directory-p DB) 226 (semanticdb-write-directory-p DB)
227 ) 227 )
228 ;;(message "Saving tag summary for %s..." objname) 228 ;;(message "Saving tag summary for %s..." objname)
@@ -243,7 +243,7 @@ If DB is not specified, then use the current database."
243 (t 243 (t
244 ;; @todo - It should ask if we are not called from a hook. 244 ;; @todo - It should ask if we are not called from a hook.
245 ;; How? 245 ;; How?
246 (if (or supress-questions 246 (if (or suppress-questions
247 (y-or-n-p (format "Skip Error: %s ?" (car (cdr foo))))) 247 (y-or-n-p (format "Skip Error: %s ?" (car (cdr foo)))))
248 (message "Save Error: %S: %s" (car (cdr foo)) 248 (message "Save Error: %S: %s" (car (cdr foo))
249 objname) 249 objname)
diff --git a/lisp/cedet/semantic/db-find.el b/lisp/cedet/semantic/db-find.el
index 4d5d8f35f51..a651e08d53c 100644
--- a/lisp/cedet/semantic/db-find.el
+++ b/lisp/cedet/semantic/db-find.el
@@ -210,7 +210,7 @@ This class will cache data derived during various searches.")
210 "Synchronize the search index IDX with some NEW-TAGS." 210 "Synchronize the search index IDX with some NEW-TAGS."
211 ;; Reset our parts. 211 ;; Reset our parts.
212 (semantic-reset idx) 212 (semantic-reset idx)
213 ;; Notify dependants by clearning their indicies. 213 ;; Notify dependants by clearing their indices.
214 (semanticdb-notify-references 214 (semanticdb-notify-references
215 (oref idx table) 215 (oref idx table)
216 (lambda (tab me) 216 (lambda (tab me)
@@ -224,7 +224,7 @@ This class will cache data derived during various searches.")
224 (if (semantic-find-tags-by-class 'include new-tags) 224 (if (semantic-find-tags-by-class 'include new-tags)
225 (progn 225 (progn
226 (semantic-reset idx) 226 (semantic-reset idx)
227 ;; Notify dependants by clearning their indicies. 227 ;; Notify dependants by clearing their indices.
228 (semanticdb-notify-references 228 (semanticdb-notify-references
229 (oref idx table) 229 (oref idx table)
230 (lambda (tab me) 230 (lambda (tab me)
@@ -234,7 +234,7 @@ This class will cache data derived during various searches.")
234 (when (oref idx type-cache) 234 (when (oref idx type-cache)
235 (when (semanticdb-partial-synchronize (oref idx type-cache) new-tags) 235 (when (semanticdb-partial-synchronize (oref idx type-cache) new-tags)
236 ;; If the synchronize returns true, we need to notify. 236 ;; If the synchronize returns true, we need to notify.
237 ;; Notify dependants by clearning their indicies. 237 ;; Notify dependants by clearing their indices.
238 (semanticdb-notify-references 238 (semanticdb-notify-references
239 (oref idx table) 239 (oref idx table)
240 (lambda (tab me) 240 (lambda (tab me)
@@ -405,10 +405,10 @@ Default action as described in `semanticdb-find-translate-path'."
405 ;; do a caching lookup. 405 ;; do a caching lookup.
406 (let ((index (semanticdb-get-table-index table))) 406 (let ((index (semanticdb-get-table-index table)))
407 (if (semanticdb-find-need-cache-update-p table) 407 (if (semanticdb-find-need-cache-update-p table)
408 ;; Lets go look up our indicies 408 ;; Let's go look up our indices.
409 (let ((ans (semanticdb-find-translate-path-includes--internal path))) 409 (let ((ans (semanticdb-find-translate-path-includes--internal path)))
410 (oset index include-path ans) 410 (oset index include-path ans)
411 ;; Once we have our new indicies set up, notify those 411 ;; Once we have our new indices set up, notify those
412 ;; who depend on us if we found something for them to 412 ;; who depend on us if we found something for them to
413 ;; depend on. 413 ;; depend on.
414 (when ans (semanticdb-refresh-references table)) 414 (when ans (semanticdb-refresh-references table))
@@ -575,7 +575,7 @@ a new path from the provided PATH."
575 (setq ans (semanticdb-file-table 575 (setq ans (semanticdb-file-table
576 (car systemdb) 576 (car systemdb)
577 ;; I would expect most omniscient to return the same 577 ;; I would expect most omniscient to return the same
578 ;; thing reguardless of filename, but we may have 578 ;; thing regardless of filename, but we may have
579 ;; one that can return a table of all things the 579 ;; one that can return a table of all things the
580 ;; current file needs. 580 ;; current file needs.
581 (buffer-file-name (current-buffer)))) 581 (buffer-file-name (current-buffer))))
diff --git a/lisp/cedet/semantic/db.el b/lisp/cedet/semantic/db.el
index 3d2128db29a..c159a26dc1e 100644
--- a/lisp/cedet/semantic/db.el
+++ b/lisp/cedet/semantic/db.el
@@ -227,7 +227,7 @@ it is in Emacs.")
227 "Non nil if this table needs to be `Saved'.") 227 "Non nil if this table needs to be `Saved'.")
228 (db-refs :initform nil 228 (db-refs :initform nil
229 :documentation 229 :documentation
230 "List of `semanticdb-table' objects refering to this one. 230 "List of `semanticdb-table' objects referring to this one.
231These aren't saved, but are instead recalculated after load. 231These aren't saved, but are instead recalculated after load.
232See the file semantic/db-ref.el for how this slot is used.") 232See the file semantic/db-ref.el for how this slot is used.")
233 (pointmax :initarg :pointmax 233 (pointmax :initarg :pointmax
@@ -657,7 +657,7 @@ The file associated with OBJ does not need to be in a buffer."
657;;; SAVE/LOAD 657;;; SAVE/LOAD
658;; 658;;
659(defmethod semanticdb-save-db ((DB semanticdb-project-database) 659(defmethod semanticdb-save-db ((DB semanticdb-project-database)
660 &optional supress-questions) 660 &optional suppress-questions)
661 "Cause a database to save itself. 661 "Cause a database to save itself.
662The database base class does not save itself persistently. 662The database base class does not save itself persistently.
663Subclasses could save themselves to a file, or to a database, or other 663Subclasses could save themselves to a file, or to a database, or other
diff --git a/lisp/cedet/semantic/debug.el b/lisp/cedet/semantic/debug.el
index 45b807df12b..6db47f8b0be 100644
--- a/lisp/cedet/semantic/debug.el
+++ b/lisp/cedet/semantic/debug.el
@@ -175,7 +175,7 @@ TOKEN is a lexical token."
175 "For IFACE, highlight NONTERM in the parser buffer. 175 "For IFACE, highlight NONTERM in the parser buffer.
176NONTERM is the name of the rule currently being processed that shows up 176NONTERM is the name of the rule currently being processed that shows up
177as a nonterminal (or tag) in the source buffer. 177as a nonterminal (or tag) in the source buffer.
178If RULE and MATCH indicies are specified, highlight those also." 178If RULE and MATCH indices are specified, highlight those also."
179 (set-buffer (oref iface :parser-buffer)) 179 (set-buffer (oref iface :parser-buffer))
180 180
181 (let* ((rules (semantic-find-tags-by-class 'nonterminal (current-buffer))) 181 (let* ((rules (semantic-find-tags-by-class 'nonterminal (current-buffer)))
diff --git a/lisp/cedet/semantic/edit.el b/lisp/cedet/semantic/edit.el
index a2c8c5efd40..d33454eb56b 100644
--- a/lisp/cedet/semantic/edit.el
+++ b/lisp/cedet/semantic/edit.el
@@ -470,6 +470,7 @@ a 'semantic-parse-changes-failed exception with value t."
470 (buffer-name (current-buffer)))) 470 (buffer-name (current-buffer))))
471 (run-hooks 'semantic-edits-incremental-reparse-failed-hook)) 471 (run-hooks 'semantic-edits-incremental-reparse-failed-hook))
472 472
473;;;###autoload
473(defun semantic-edits-incremental-parser () 474(defun semantic-edits-incremental-parser ()
474 "Incrementally reparse the current buffer. 475 "Incrementally reparse the current buffer.
475Incremental parser allows semantic to only reparse those sections of 476Incremental parser allows semantic to only reparse those sections of
@@ -859,7 +860,7 @@ pre-positioned to a convenient location."
859 (setq cacheend chil) 860 (setq cacheend chil)
860 (while (and cacheend (not (eq last (car cacheend)))) 861 (while (and cacheend (not (eq last (car cacheend))))
861 (setq cacheend (cdr cacheend))) 862 (setq cacheend (cdr cacheend)))
862 ;; The splicable part is after cacheend.. so move cacheend 863 ;; The spliceable part is after cacheend.. so move cacheend
863 ;; one more tag. 864 ;; one more tag.
864 (setq cacheend (cdr cacheend)) 865 (setq cacheend (cdr cacheend))
865 ;; Splice the found end tag into the cons cell 866 ;; Splice the found end tag into the cons cell
diff --git a/lisp/cedet/semantic/find.el b/lisp/cedet/semantic/find.el
index b4d94321bc1..a6d86691206 100644
--- a/lisp/cedet/semantic/find.el
+++ b/lisp/cedet/semantic/find.el
@@ -427,7 +427,7 @@ TABLE is a tag table. See `semantic-something-to-tag-table'."
427 427
428;;; Old Style Brute Force Search Routines 428;;; Old Style Brute Force Search Routines
429;; 429;;
430;; These functions will search through tags lists explicity for 430;; These functions will search through tags lists explicitly for
431;; desired information. 431;; desired information.
432 432
433;; The -by-name nonterminal search can use the built in fcn 433;; The -by-name nonterminal search can use the built in fcn
diff --git a/lisp/cedet/semantic/grammar.el b/lisp/cedet/semantic/grammar.el
index 98b1ab55c32..1a79adc650d 100644
--- a/lisp/cedet/semantic/grammar.el
+++ b/lisp/cedet/semantic/grammar.el
@@ -1290,7 +1290,7 @@ the change bounds to encompass the whole nonterminal tag."
1290 semantic-grammar-mode-keywords-3) 1290 semantic-grammar-mode-keywords-3)
1291 nil ;; perform string/comment fontification 1291 nil ;; perform string/comment fontification
1292 nil ;; keywords are case sensitive. 1292 nil ;; keywords are case sensitive.
1293 ;; This puts _ & - as a word constituant, 1293 ;; This puts _ & - as a word constituent,
1294 ;; simplifying our keywords significantly 1294 ;; simplifying our keywords significantly
1295 ((?_ . "w") (?- . "w")))) 1295 ((?_ . "w") (?- . "w"))))
1296 ;; Setup Semantic to parse grammar 1296 ;; Setup Semantic to parse grammar
diff --git a/lisp/cedet/semantic/idle.el b/lisp/cedet/semantic/idle.el
index 6761a7f532b..c60ca4b4b6a 100644
--- a/lisp/cedet/semantic/idle.el
+++ b/lisp/cedet/semantic/idle.el
@@ -246,8 +246,8 @@ And also manages services that depend on tag values."
246 246
247 ;; NOTE ON COMMENTED SAFE HERE 247 ;; NOTE ON COMMENTED SAFE HERE
248 ;; We used to not execute the services if the buffer was 248 ;; We used to not execute the services if the buffer was
249 ;; unparseable. We now assume that they are lexically 249 ;; unparsable. We now assume that they are lexically
250 ;; safe to do, because we have marked the buffer unparseable 250 ;; safe to do, because we have marked the buffer unparsable
251 ;; if there was a problem. 251 ;; if there was a problem.
252 ;;(when safe 252 ;;(when safe
253 (dolist (service semantic-idle-scheduler-queue) 253 (dolist (service semantic-idle-scheduler-queue)
@@ -476,7 +476,7 @@ Does nothing if the current buffer doesn't need reparsing."
476 ;; do them here, then all the bovination hooks are not run, and 476 ;; do them here, then all the bovination hooks are not run, and
477 ;; we save lots of time. 477 ;; we save lots of time.
478 (cond 478 (cond
479 ;; If the buffer was previously marked unparseable, 479 ;; If the buffer was previously marked unparsable,
480 ;; then don't waste our time. 480 ;; then don't waste our time.
481 ((semantic-parse-tree-unparseable-p) 481 ((semantic-parse-tree-unparseable-p)
482 nil) 482 nil)
@@ -515,7 +515,7 @@ Does nothing if the current buffer doesn't need reparsing."
515 (save-excursion (semantic-fetch-tags)) 515 (save-excursion (semantic-fetch-tags))
516 nil) 516 nil)
517 ;; If we are here, it is because the lexical step failed, 517 ;; If we are here, it is because the lexical step failed,
518 ;; proably due to unterminated lists or something like that. 518 ;; probably due to unterminated lists or something like that.
519 519
520 ;; We do nothing, and just wait for the next idle timer 520 ;; We do nothing, and just wait for the next idle timer
521 ;; to go off. In the meantime, remember this, and make sure 521 ;; to go off. In the meantime, remember this, and make sure
diff --git a/lisp/cedet/semantic/lex.el b/lisp/cedet/semantic/lex.el
index ba43ba657a1..f8e72c1027c 100644
--- a/lisp/cedet/semantic/lex.el
+++ b/lisp/cedet/semantic/lex.el
@@ -1248,7 +1248,7 @@ they are comment end characters) AND when you want whitespace tokens."
1248 (if (eq (semantic-lex-token-class (car semantic-lex-token-stream)) 1248 (if (eq (semantic-lex-token-class (car semantic-lex-token-stream))
1249 'whitespace) 1249 'whitespace)
1250 ;; Merge whitespace tokens together if they are adjacent. Two 1250 ;; Merge whitespace tokens together if they are adjacent. Two
1251 ;; whitespace tokens may be sperated by a comment which is not in 1251 ;; whitespace tokens may be separated by a comment which is not in
1252 ;; the token stream. 1252 ;; the token stream.
1253 (setcdr (semantic-lex-token-bounds (car semantic-lex-token-stream)) 1253 (setcdr (semantic-lex-token-bounds (car semantic-lex-token-stream))
1254 (match-end 0)) 1254 (match-end 0))
@@ -1271,7 +1271,7 @@ they are comment end characters)."
1271 (if (eq (semantic-lex-token-class (car semantic-lex-token-stream)) 1271 (if (eq (semantic-lex-token-class (car semantic-lex-token-stream))
1272 'whitespace) 1272 'whitespace)
1273 ;; Merge whitespace tokens together if they are adjacent. Two 1273 ;; Merge whitespace tokens together if they are adjacent. Two
1274 ;; whitespace tokens may be sperated by a comment which is not in 1274 ;; whitespace tokens may be separated by a comment which is not in
1275 ;; the token stream. 1275 ;; the token stream.
1276 (progn 1276 (progn
1277 (setq semantic-lex-end-point (match-end 0)) 1277 (setq semantic-lex-end-point (match-end 0))
@@ -1704,7 +1704,7 @@ If there is no error, then the last value of FORMS is returned."
1704 nil)))) 1704 nil))))
1705 ;; Great Sadness. Assume that FORMS execute within the 1705 ;; Great Sadness. Assume that FORMS execute within the
1706 ;; confines of the current buffer only! Mark this thing 1706 ;; confines of the current buffer only! Mark this thing
1707 ;; unparseable iff the special symbol was thrown. This 1707 ;; unparsable iff the special symbol was thrown. This
1708 ;; will prevent future calls from parsing, but will allow 1708 ;; will prevent future calls from parsing, but will allow
1709 ;; then to still return the cache. 1709 ;; then to still return the cache.
1710 (when ,ret 1710 (when ,ret
diff --git a/lisp/cedet/semantic/scope.el b/lisp/cedet/semantic/scope.el
index ea4903c70ea..937936032d2 100644
--- a/lisp/cedet/semantic/scope.el
+++ b/lisp/cedet/semantic/scope.el
@@ -725,7 +725,7 @@ The class returned from the scope calculation is variable
725 (oset scopecache localargs localargs) 725 (oset scopecache localargs localargs)
726 (oset scopecache localvar localvar) 726 (oset scopecache localvar localvar)
727 ))) 727 )))
728 ;; Make sure we become dependant on the typecache. 728 ;; Make sure we become dependent on the typecache.
729 (semanticdb-typecache-add-dependant scopecache) 729 (semanticdb-typecache-add-dependant scopecache)
730 ;; Handy debug output. 730 ;; Handy debug output.
731 (when (called-interactively-p 'any) 731 (when (called-interactively-p 'any)
diff --git a/lisp/cedet/semantic/tag-ls.el b/lisp/cedet/semantic/tag-ls.el
index 4d001322108..2f585cbdf45 100644
--- a/lisp/cedet/semantic/tag-ls.el
+++ b/lisp/cedet/semantic/tag-ls.el
@@ -195,7 +195,7 @@ See `semantic-tag-static-p'."
195;;;###autoload 195;;;###autoload
196(define-overloadable-function semantic-tag-prototype-p (tag) 196(define-overloadable-function semantic-tag-prototype-p (tag)
197 "Return non nil if TAG is a prototype. 197 "Return non nil if TAG is a prototype.
198For some laguages, such as C, a prototype is a declaration of 198For some languages, such as C, a prototype is a declaration of
199something without an implementation." 199something without an implementation."
200 ) 200 )
201 201
diff --git a/lisp/cedet/semantic/util-modes.el b/lisp/cedet/semantic/util-modes.el
index a08f4a31b30..13836f64b85 100644
--- a/lisp/cedet/semantic/util-modes.el
+++ b/lisp/cedet/semantic/util-modes.el
@@ -109,7 +109,7 @@ Only minor modes that are locally enabled are shown in the mode line."
109 (tail (or (memq elem minor-mode-alist) 109 (tail (or (memq elem minor-mode-alist)
110 (setq minor-mode-alist 110 (setq minor-mode-alist
111 (cons elem minor-mode-alist))))) 111 (cons elem minor-mode-alist)))))
112 (setcdr tail (nconc locals (cdr tail))))))))) 112 (setcdr tail (nconc locals (cdr tail)))))))))
113 113
114(defun semantic-desktop-ignore-this-minor-mode (buffer) 114(defun semantic-desktop-ignore-this-minor-mode (buffer)
115 "Installed as a minor-mode initializer for Desktop mode. 115 "Installed as a minor-mode initializer for Desktop mode.
@@ -438,7 +438,7 @@ The state is indicated in the modeline with the following characters:
438 `-' -> The cache is up to date. 438 `-' -> The cache is up to date.
439 `!' -> The cache requires a full update. 439 `!' -> The cache requires a full update.
440 `~' -> The cache needs to be incrementally parsed. 440 `~' -> The cache needs to be incrementally parsed.
441 `%' -> The cache is not currently parseable. 441 `%' -> The cache is not currently parsable.
442 `@' -> Auto-parse in progress (not set here.) 442 `@' -> Auto-parse in progress (not set here.)
443With prefix argument ARG, turn on if positive, otherwise off. The 443With prefix argument ARG, turn on if positive, otherwise off. The
444minor mode can be turned on only if semantic feature is available and 444minor mode can be turned on only if semantic feature is available and
@@ -524,7 +524,7 @@ This marker is one of the following:
524 `-' -> The cache is up to date. 524 `-' -> The cache is up to date.
525 `!' -> The cache requires a full update. 525 `!' -> The cache requires a full update.
526 `~' -> The cache needs to be incrementally parsed. 526 `~' -> The cache needs to be incrementally parsed.
527 `%' -> The cache is not currently parseable. 527 `%' -> The cache is not currently parsable.
528 `@' -> Auto-parse in progress (not set here.) 528 `@' -> Auto-parse in progress (not set here.)
529Arguments IGNORE are ignored, and accepted so this can be used as a hook 529Arguments IGNORE are ignored, and accepted so this can be used as a hook
530in many situations." 530in many situations."
diff --git a/lisp/cedet/semantic/wisent/comp.el b/lisp/cedet/semantic/wisent/comp.el
index f92ae88c14e..0aff8325252 100644
--- a/lisp/cedet/semantic/wisent/comp.el
+++ b/lisp/cedet/semantic/wisent/comp.el
@@ -51,7 +51,7 @@
51;; name space. Elisp dynamic binding allows that ;-) 51;; name space. Elisp dynamic binding allows that ;-)
52 52
53;; Here are simple macros to easily define and use set of variables 53;; Here are simple macros to easily define and use set of variables
54;; binded locally, without all these "reference to free variable" 54;; bound locally, without all these "reference to free variable"
55;; compiler warnings! 55;; compiler warnings!
56 56
57(defmacro wisent-context-name (name) 57(defmacro wisent-context-name (name)
@@ -2640,7 +2640,7 @@ there are any reduce/reduce conflicts.")
2640 2640
2641(defun wisent-print-results () 2641(defun wisent-print-results ()
2642 "Print information on generated parser. 2642 "Print information on generated parser.
2643Report detailed informations if `wisent-verbose-flag' or 2643Report detailed information if `wisent-verbose-flag' or
2644`wisent-debug-flag' are non-nil." 2644`wisent-debug-flag' are non-nil."
2645 (when (or wisent-verbose-flag wisent-debug-flag) 2645 (when (or wisent-verbose-flag wisent-debug-flag)
2646 (wisent-print-useless)) 2646 (wisent-print-useless))
diff --git a/lisp/cedet/srecode/args.el b/lisp/cedet/srecode/args.el
index d8e02f978b2..73445fbf13d 100644
--- a/lisp/cedet/srecode/args.el
+++ b/lisp/cedet/srecode/args.el
@@ -32,7 +32,7 @@
32;;; :blank 32;;; :blank
33;; 33;;
34;; Using :blank means that the template should force blank lines 34;; Using :blank means that the template should force blank lines
35;; before and after the template, reguardless of where the insertion 35;; before and after the template, regardless of where the insertion
36;; is occurring. 36;; is occurring.
37(defun srecode-semantic-handle-:blank (dict) 37(defun srecode-semantic-handle-:blank (dict)
38 "Add macros into the dictionary DICT specifying blank line spacing. 38 "Add macros into the dictionary DICT specifying blank line spacing.
@@ -185,4 +185,3 @@ do not contain any text from preceding or following text."
185(provide 'srecode/args) 185(provide 'srecode/args)
186 186
187;;; srecode/args.el ends here 187;;; srecode/args.el ends here
188
diff --git a/lisp/cedet/srecode/fields.el b/lisp/cedet/srecode/fields.el
index f13fb17ca8f..f4d34a0f2ab 100644
--- a/lisp/cedet/srecode/fields.el
+++ b/lisp/cedet/srecode/fields.el
@@ -324,7 +324,7 @@ Try to use this to provide useful completion when available.")
324 ) 324 )
325 325
326(defvar srecode-field-replication-max-size 100 326(defvar srecode-field-replication-max-size 100
327 "Maximum size of a field before cancelling replication.") 327 "Maximum size of a field before canceling replication.")
328 328
329(defun srecode-field-mod-hook (ol after start end &optional pre-len) 329(defun srecode-field-mod-hook (ol after start end &optional pre-len)
330 "Modification hook for the field overlay. 330 "Modification hook for the field overlay.
diff --git a/lisp/cedet/srecode/insert.el b/lisp/cedet/srecode/insert.el
index 60f277b2c9f..bbf8b881c4d 100644
--- a/lisp/cedet/srecode/insert.el
+++ b/lisp/cedet/srecode/insert.el
@@ -312,7 +312,7 @@ occur in your template.")
312 (setq doit nil))) 312 (setq doit nil)))
313 (goto-char pm) 313 (goto-char pm)
314 ) 314 )
315 ;; Do indentation reguardless of the newline. 315 ;; Do indentation regardless of the newline.
316 (when (and (eq i t) inbuff) 316 (when (and (eq i t) inbuff)
317 (indent-according-to-mode) 317 (indent-according-to-mode)
318 (goto-char pm)) 318 (goto-char pm))
diff --git a/lisp/cedet/srecode/srt-mode.el b/lisp/cedet/srecode/srt-mode.el
index 0a99b7869e8..ed2b0e2cfdb 100644
--- a/lisp/cedet/srecode/srt-mode.el
+++ b/lisp/cedet/srecode/srt-mode.el
@@ -194,7 +194,7 @@ we can tell font lock about them.")
194 '(srecode-font-lock-keywords 194 '(srecode-font-lock-keywords
195 nil ;; perform string/comment fontification 195 nil ;; perform string/comment fontification
196 nil ;; keywords are case sensitive. 196 nil ;; keywords are case sensitive.
197 ;; This puts _ & - as a word constituant, 197 ;; This puts _ & - as a word constituent,
198 ;; simplifying our keywords significantly 198 ;; simplifying our keywords significantly
199 ((?_ . "w") (?- . "w"))))) 199 ((?_ . "w") (?- . "w")))))
200 200
diff --git a/lisp/comint.el b/lisp/comint.el
index c0b02e5a230..77734b69af6 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -45,7 +45,7 @@
45;; It is pretty easy to make new derived modes for other processes. 45;; It is pretty easy to make new derived modes for other processes.
46 46
47;; For documentation on the functionality provided by Comint mode, and 47;; For documentation on the functionality provided by Comint mode, and
48;; the hooks available for customising it, see the comments below. 48;; the hooks available for customizing it, see the comments below.
49;; For further information on the standard derived modes (shell, 49;; For further information on the standard derived modes (shell,
50;; inferior-lisp, inferior-scheme, ...), see the relevant source files. 50;; inferior-lisp, inferior-scheme, ...), see the relevant source files.
51 51
diff --git a/lisp/delim-col.el b/lisp/delim-col.el
index ed6ab96107a..a0a8af80389 100644
--- a/lisp/delim-col.el
+++ b/lisp/delim-col.el
@@ -97,7 +97,7 @@
97;; operates over the text rectangle selected which rectangle diagonal is 97;; operates over the text rectangle selected which rectangle diagonal is
98;; given by the region start and end. 98;; given by the region start and end.
99;; 99;;
100;; See `delimit-columns-format' variable documentation for column formating. 100;; See `delimit-columns-format' variable documentation for column formatting.
101;; 101;;
102;; `delimit-columns-region' is useful when you have columns of text that 102;; `delimit-columns-region' is useful when you have columns of text that
103;; are not well aligned, like: 103;; are not well aligned, like:
@@ -171,7 +171,7 @@ For examples below, consider:
171 171
172Valid values are: 172Valid values are:
173 173
174 nil no formating. That is, `delimit-columns-after' is followed by 174 nil no formatting. That is, `delimit-columns-after' is followed by
175 `delimit-columns-separator'. 175 `delimit-columns-separator'.
176 For example, the result is: \"<ccc>:<dddd>:\" 176 For example, the result is: \"<ccc>:<dddd>:\"
177 177
@@ -190,9 +190,9 @@ Valid values are:
190 For example, the result is: \"<ccc >:<dddd >:\" 190 For example, the result is: \"<ccc >:<dddd >:\"
191 191
192Any other value is treated as t." 192Any other value is treated as t."
193 :type '(choice :menu-tag "Column Formating" 193 :type '(choice :menu-tag "Column Formatting"
194 :tag "Column Formating" 194 :tag "Column Formatting"
195 (const :tag "No Formating" nil) 195 (const :tag "No Formatting" nil)
196 (const :tag "Column Alignment" t) 196 (const :tag "Column Alignment" t)
197 (const :tag "Separator Alignment" separator) 197 (const :tag "Separator Alignment" separator)
198 (const :tag "Column Padding" padding)) 198 (const :tag "Column Padding" padding))
@@ -206,7 +206,7 @@ This has effect only when there are lines with different number of columns."
206 :group 'columns) 206 :group 'columns)
207 207
208(defcustom delimit-columns-start 0 208(defcustom delimit-columns-start 0
209 "Specify column number to start prettifing. 209 "Specify column number to start prettifying.
210 210
211See also `delimit-columns-end' for documentation. 211See also `delimit-columns-end' for documentation.
212 212
@@ -221,7 +221,7 @@ column (column 0) is located at left corner."
221 :group 'columns) 221 :group 'columns)
222 222
223(defcustom delimit-columns-end 1000000 223(defcustom delimit-columns-end 1000000
224 "Specify column number to end prettifing. 224 "Specify column number to end prettifying.
225 225
226See also `delimit-columns-start' for documentation. 226See also `delimit-columns-start' for documentation.
227 227
@@ -404,7 +404,7 @@ START and END delimits the corners of text rectangle."
404 (re-search-forward delimit-columns-separator 404 (re-search-forward delimit-columns-separator
405 delimit-columns-limit 'move)) 405 delimit-columns-limit 'move))
406 (setq ncol (1+ ncol))) 406 (setq ncol (1+ ncol)))
407 ;; insert first formating 407 ;; insert first formatting
408 (insert delimit-columns-str-before delimit-columns-before) 408 (insert delimit-columns-str-before delimit-columns-before)
409 ;; Adjust all columns but last one 409 ;; Adjust all columns but last one
410 (while (progn 410 (while (progn
@@ -436,7 +436,7 @@ START and END delimits the corners of text rectangle."
436 (setq spaces (and delimit-columns-format 436 (setq spaces (and delimit-columns-format
437 (make-string (aref delimit-columns-max ncol) 437 (make-string (aref delimit-columns-max ncol)
438 ?\s))))) 438 ?\s)))))
439 ;; insert last formating 439 ;; insert last formatting
440 (cond ((null delimit-columns-format) 440 (cond ((null delimit-columns-format)
441 (insert delimit-columns-after delimit-columns-str-after)) 441 (insert delimit-columns-after delimit-columns-str-after))
442 ((eq delimit-columns-format 'padding) 442 ((eq delimit-columns-format 'padding)
diff --git a/lisp/delsel.el b/lisp/delsel.el
index 6d2c47f3957..fcd45f1a148 100644
--- a/lisp/delsel.el
+++ b/lisp/delsel.el
@@ -144,7 +144,7 @@ any selection."
144(put 'newline 'delete-selection t) 144(put 'newline 'delete-selection t)
145(put 'open-line 'delete-selection 'kill) 145(put 'open-line 'delete-selection 'kill)
146 146
147;; This is very useful for cancelling a selection in the minibuffer without 147;; This is very useful for canceling a selection in the minibuffer without
148;; aborting the minibuffer. 148;; aborting the minibuffer.
149(defun minibuffer-keyboard-quit () 149(defun minibuffer-keyboard-quit ()
150 "Abort recursive edit. 150 "Abort recursive edit.
diff --git a/lisp/descr-text.el b/lisp/descr-text.el
index 8b7fa89a19b..47f96e8d68f 100644
--- a/lisp/descr-text.el
+++ b/lisp/descr-text.el
@@ -358,7 +358,7 @@ This function is semi-obsolete. Use `get-char-code-property'."
358 (compose-string (string ch) 0 1 (format "\t%c\t" ch)) 358 (compose-string (string ch) 0 1 (format "\t%c\t" ch))
359 (string ch))) 359 (string ch)))
360 360
361;; Return a nicely formated list of categories; extended category 361;; Return a nicely formatted list of categories; extended category
362;; description is added to the category name as a tooltip 362;; description is added to the category name as a tooltip
363(defsubst describe-char-categories (category-set) 363(defsubst describe-char-categories (category-set)
364 (let ((mnemonics (category-set-mnemonics category-set))) 364 (let ((mnemonics (category-set-mnemonics category-set)))
@@ -422,6 +422,20 @@ as well as widgets, buttons, overlays, and text properties."
422 (setq charset (char-charset char) 422 (setq charset (char-charset char)
423 code (encode-char char charset))) 423 code (encode-char char charset)))
424 (setq code char)) 424 (setq code char))
425 (cond
426 ;; Append a PDF character to directional embeddings and
427 ;; overrides, to prevent potential messup of the following
428 ;; text.
429 ((memq char '(?\x202a ?\x202b ?\x202d ?\x202e))
430 (setq char-description
431 (concat char-description
432 (propertize (string ?\x202c) 'invisible t))))
433 ;; Append a LRM character to any strong character to avoid
434 ;; messing up the numerical codepoint.
435 ((memq (get-char-code-property char 'bidi-class) '(R AL))
436 (setq char-description
437 (concat char-description
438 (propertize (string ?\x200e) 'invisible t)))))
425 (when composition 439 (when composition
426 ;; When the composition is trivial (i.e. composed only with the 440 ;; When the composition is trivial (i.e. composed only with the
427 ;; current character itself without any alternate characters), 441 ;; current character itself without any alternate characters),
diff --git a/lisp/desktop.el b/lisp/desktop.el
index 8a61bec0eea..34a51eb51dc 100644
--- a/lisp/desktop.el
+++ b/lisp/desktop.el
@@ -702,9 +702,9 @@ is nil, ask the user where to save the desktop."
702;; ---------------------------------------------------------------------------- 702;; ----------------------------------------------------------------------------
703(defun desktop-internal-v2s (value) 703(defun desktop-internal-v2s (value)
704 "Convert VALUE to a pair (QUOTE . TXT); (eval (read TXT)) gives VALUE. 704 "Convert VALUE to a pair (QUOTE . TXT); (eval (read TXT)) gives VALUE.
705TXT is a string that when read and evaluated yields value. 705TXT is a string that when read and evaluated yields VALUE.
706QUOTE may be `may' (value may be quoted), 706QUOTE may be `may' (value may be quoted),
707`must' (values must be quoted), or nil (value may not be quoted)." 707`must' (value must be quoted), or nil (value must not be quoted)."
708 (cond 708 (cond
709 ((or (numberp value) (null value) (eq t value) (keywordp value)) 709 ((or (numberp value) (null value) (eq t value) (keywordp value))
710 (cons 'may (prin1-to-string value))) 710 (cons 'may (prin1-to-string value)))
diff --git a/lisp/dframe.el b/lisp/dframe.el
index b4f44e1a308..728f08d135d 100644
--- a/lisp/dframe.el
+++ b/lisp/dframe.el
@@ -221,7 +221,7 @@ Local to those buffers, as a function called that created it.")
221 (define-key map [mouse-2] 'dframe-click) 221 (define-key map [mouse-2] 'dframe-click)
222 ;; This is the power click for new frames, or refreshing a cache 222 ;; This is the power click for new frames, or refreshing a cache
223 (define-key map [S-mouse-2] 'dframe-power-click) 223 (define-key map [S-mouse-2] 'dframe-power-click)
224 ;; This adds a small unecessary visual effect 224 ;; This adds a small unnecessary visual effect
225 ;;(define-key map [down-mouse-2] 'dframe-quick-mouse) 225 ;;(define-key map [down-mouse-2] 'dframe-quick-mouse)
226 226
227 (define-key map [down-mouse-3] 'dframe-popup-kludge) 227 (define-key map [down-mouse-3] 'dframe-popup-kludge)
diff --git a/lisp/dired-x.el b/lisp/dired-x.el
index 4daf313445c..0863cc1abac 100644
--- a/lisp/dired-x.el
+++ b/lisp/dired-x.el
@@ -1392,7 +1392,7 @@ Considers buffers closer to the car of `buffer-list' to be more recent."
1392;; Apparently people do use it. - lrd 12/22/97. 1392;; Apparently people do use it. - lrd 12/22/97.
1393 1393
1394(with-no-warnings 1394(with-no-warnings
1395 ;; Warnings are suppresed to avoid "global/dynamic var `X' lacks a prefix". 1395 ;; Warnings are suppressed to avoid "global/dynamic var `X' lacks a prefix".
1396 ;; This is unbearably ugly, but not more than having global variables 1396 ;; This is unbearably ugly, but not more than having global variables
1397 ;; named size, time, name or s, however practical it can be while writing 1397 ;; named size, time, name or s, however practical it can be while writing
1398 ;; `dired-mark-sexp' predicates. 1398 ;; `dired-mark-sexp' predicates.
diff --git a/lisp/dired.el b/lisp/dired.el
index 1d503a14810..3a82ebcf504 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -2678,7 +2678,7 @@ Anything else means ask for each directory."
2678(defvar dired-re-no-dot "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*") 2678(defvar dired-re-no-dot "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*")
2679 2679
2680;; Delete file, possibly delete a directory and all its files. 2680;; Delete file, possibly delete a directory and all its files.
2681;; This function is usefull outside of dired. One could change it's name 2681;; This function is useful outside of dired. One could change its name
2682;; to e.g. recursive-delete-file and put it somewhere else. 2682;; to e.g. recursive-delete-file and put it somewhere else.
2683(defun dired-delete-file (file &optional recursive trash) "\ 2683(defun dired-delete-file (file &optional recursive trash) "\
2684Delete FILE or directory (possibly recursively if optional RECURSIVE is true.) 2684Delete FILE or directory (possibly recursively if optional RECURSIVE is true.)
@@ -4128,7 +4128,7 @@ instead.
4128;;;*** 4128;;;***
4129 4129
4130;;;### (autoloads (dired-do-relsymlink dired-jump-other-window dired-jump) 4130;;;### (autoloads (dired-do-relsymlink dired-jump-other-window dired-jump)
4131;;;;;; "dired-x" "dired-x.el" "ea7c74fbb7dddf43bb85875018cb59ad") 4131;;;;;; "dired-x" "dired-x.el" "a542cdbf155ff79f36331bae217f3b28")
4132;;; Generated autoloads from dired-x.el 4132;;; Generated autoloads from dired-x.el
4133 4133
4134(autoload 'dired-jump "dired-x" "\ 4134(autoload 'dired-jump "dired-x" "\
diff --git a/lisp/electric.el b/lisp/electric.el
index 1a8bf9f89ed..cec1b5d2000 100644
--- a/lisp/electric.el
+++ b/lisp/electric.el
@@ -85,7 +85,7 @@
85 (eq last-input-event ?\C-g)) 85 (eq last-input-event ?\C-g))
86 (progn (setq unread-command-events nil 86 (progn (setq unread-command-events nil
87 prefix-arg nil) 87 prefix-arg nil)
88 ;; If it wasn't cancelling a prefix character, then quit. 88 ;; If it wasn't canceling a prefix character, then quit.
89 (if (or (= (length (this-command-keys)) 1) 89 (if (or (= (length (this-command-keys)) 1)
90 (not inhibit-quit)) ; safety 90 (not inhibit-quit)) ; safety
91 (progn (ding) 91 (progn (ding)
diff --git a/lisp/emacs-lisp/assoc.el b/lisp/emacs-lisp/assoc.el
index 31be851f2dd..e650995d3fe 100644
--- a/lisp/emacs-lisp/assoc.el
+++ b/lisp/emacs-lisp/assoc.el
@@ -61,10 +61,9 @@ pair is not at the head of alist. ALIST is not altered."
61 61
62 62
63(defun aput (alist-symbol key &optional value) 63(defun aput (alist-symbol key &optional value)
64 "Inserts a key-value pair into an alist. 64 "Insert a key-value pair into an alist.
65The alist is referenced by ALIST-SYMBOL. The key-value pair is made 65The alist is referenced by ALIST-SYMBOL. The key-value pair is made
66from KEY and optionally, VALUE. Returns the altered alist or nil if 66from KEY and optionally, VALUE. Returns the altered alist.
67ALIST is nil.
68 67
69If the key-value pair referenced by KEY can be found in the alist, and 68If the key-value pair referenced by KEY can be found in the alist, and
70VALUE is supplied non-nil, then the value of KEY will be set to VALUE. 69VALUE is supplied non-nil, then the value of KEY will be set to VALUE.
@@ -78,7 +77,7 @@ of the alist (with value nil if VALUE is nil or not supplied)."
78 (setq alist (symbol-value alist-symbol)) 77 (setq alist (symbol-value alist-symbol))
79 (cond ((null alist) (set alist-symbol elem)) 78 (cond ((null alist) (set alist-symbol elem))
80 ((anot-head-p alist key) (set alist-symbol (nconc elem alist))) 79 ((anot-head-p alist key) (set alist-symbol (nconc elem alist)))
81 (value (setcar alist (car elem))) 80 (value (setcar alist (car elem)) alist)
82 (t alist)))) 81 (t alist))))
83 82
84 83
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 9aa230cfe9b..29c5f3f092b 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -2637,7 +2637,7 @@ If FORM is a lambda or a macro, byte-compile it as a function."
2637 (setq form (cdr form))) 2637 (setq form (cdr form)))
2638 (setq form (car form))) 2638 (setq form (car form)))
2639 (if (and (eq (car-safe form) 'list) 2639 (if (and (eq (car-safe form) 'list)
2640 ;; The spec is evaled in callint.c in dynamic-scoping 2640 ;; The spec is evalled in callint.c in dynamic-scoping
2641 ;; mode, so just leaving the form unchanged would mean 2641 ;; mode, so just leaving the form unchanged would mean
2642 ;; it won't be eval'd in the right mode. 2642 ;; it won't be eval'd in the right mode.
2643 (not lexical-binding)) 2643 (not lexical-binding))
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index 86c7e59fd07..d7cfcfb870a 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -3448,7 +3448,7 @@ instrumented. Then it does `edebug-on-entry' and switches to `go' mode."
3448(defun edebug-on-entry (function &optional flag) 3448(defun edebug-on-entry (function &optional flag)
3449 "Cause Edebug to stop when FUNCTION is called. 3449 "Cause Edebug to stop when FUNCTION is called.
3450With prefix argument, make this temporary so it is automatically 3450With prefix argument, make this temporary so it is automatically
3451cancelled the first time the function is entered." 3451canceled the first time the function is entered."
3452 (interactive "aEdebug on entry to: \nP") 3452 (interactive "aEdebug on entry to: \nP")
3453 ;; Could store this in the edebug data instead. 3453 ;; Could store this in the edebug data instead.
3454 (put function 'edebug-on-entry (if flag 'temp t))) 3454 (put function 'edebug-on-entry (if flag 'temp t)))
diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el
index db3236afc1a..170d3fb0bf8 100644
--- a/lisp/emacs-lisp/eieio.el
+++ b/lisp/emacs-lisp/eieio.el
@@ -57,7 +57,7 @@
57 57
58(eval-and-compile 58(eval-and-compile
59;; About the above. EIEIO must process its own code when it compiles 59;; About the above. EIEIO must process its own code when it compiles
60;; itself, thus, by eval-and-compiling outselves, we solve the problem. 60;; itself, thus, by eval-and-compiling ourselves, we solve the problem.
61 61
62;; Compatibility 62;; Compatibility
63(if (fboundp 'compiled-function-arglist) 63(if (fboundp 'compiled-function-arglist)
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index f9e7fe44824..44e87e171d1 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -131,6 +131,7 @@
131(put 'autoload 'doc-string-elt 3) 131(put 'autoload 'doc-string-elt 3)
132(put 'defun 'doc-string-elt 3) 132(put 'defun 'doc-string-elt 3)
133(put 'defun* 'doc-string-elt 3) 133(put 'defun* 'doc-string-elt 3)
134(put 'defmethod 'doc-string-elt 3)
134(put 'defvar 'doc-string-elt 3) 135(put 'defvar 'doc-string-elt 3)
135(put 'defcustom 'doc-string-elt 3) 136(put 'defcustom 'doc-string-elt 3)
136(put 'deftheme 'doc-string-elt 2) 137(put 'deftheme 'doc-string-elt 2)
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 8417aa8d380..a1513039a98 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -113,6 +113,8 @@
113 113
114;;; ToDo: 114;;; ToDo:
115 115
116;; - a trust mechanism, since compiling a package can run arbitrary code.
117;; For example, download package signatures and check that they match.
116;; - putting info dirs at the start of the info path means 118;; - putting info dirs at the start of the info path means
117;; users see a weird ordering of categories. OTOH we want to 119;; users see a weird ordering of categories. OTOH we want to
118;; override later entries. maybe emacs needs to enforce 120;; override later entries. maybe emacs needs to enforce
@@ -224,7 +226,10 @@ Each element has the form (ID . LOCATION).
224 LOCATION specifies the base location for the archive. 226 LOCATION specifies the base location for the archive.
225 If it starts with \"http:\", it is treated as a HTTP URL; 227 If it starts with \"http:\", it is treated as a HTTP URL;
226 otherwise it should be an absolute directory name. 228 otherwise it should be an absolute directory name.
227 (Other types of URL are currently not supported.)" 229 (Other types of URL are currently not supported.)
230
231Only add locations that you trust, since fetching and installing
232a package can run arbitrary code."
228 :type '(alist :key-type (string :tag "Archive name") 233 :type '(alist :key-type (string :tag "Archive name")
229 :value-type (string :tag "URL or directory name")) 234 :value-type (string :tag "URL or directory name"))
230 :risky t 235 :risky t
diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el
index e6c4ccbbc50..6931ce75cb5 100644
--- a/lisp/emacs-lisp/pcase.el
+++ b/lisp/emacs-lisp/pcase.el
@@ -363,12 +363,12 @@ MATCH is the pattern that needs to be matched, of the form:
363 (dolist (branch rest) 363 (dolist (branch rest)
364 (let* ((match (car branch)) 364 (let* ((match (car branch))
365 (code&vars (cdr branch)) 365 (code&vars (cdr branch))
366 (splitted 366 (split
367 (pcase--split-match sym splitter match))) 367 (pcase--split-match sym splitter match)))
368 (unless (eq (car splitted) :pcase--fail) 368 (unless (eq (car split) :pcase--fail)
369 (push (cons (car splitted) code&vars) then-rest)) 369 (push (cons (car split) code&vars) then-rest))
370 (unless (eq (cdr splitted) :pcase--fail) 370 (unless (eq (cdr split) :pcase--fail)
371 (push (cons (cdr splitted) code&vars) else-rest)))) 371 (push (cons (cdr split) code&vars) else-rest))))
372 (cons (nreverse then-rest) (nreverse else-rest)))) 372 (cons (nreverse then-rest) (nreverse else-rest))))
373 373
374(defun pcase--split-consp (syma symd pat) 374(defun pcase--split-consp (syma symd pat)
diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el
index c65cbc39eab..85fa4772eb6 100644
--- a/lisp/emacs-lisp/syntax.el
+++ b/lisp/emacs-lisp/syntax.el
@@ -56,7 +56,7 @@
56 ;; syntax-ppss-flush-cache since that would not only flush the cache but also 56 ;; syntax-ppss-flush-cache since that would not only flush the cache but also
57 ;; reset syntax-propertize--done which should not be done in this case). 57 ;; reset syntax-propertize--done which should not be done in this case).
58 "Mode-specific function to apply the syntax-table properties. 58 "Mode-specific function to apply the syntax-table properties.
59Called with 2 arguments: START and END. 59Called with two arguments: START and END.
60This function can call `syntax-ppss' on any position before END, but it 60This function can call `syntax-ppss' on any position before END, but it
61should not call `syntax-ppss-flush-cache', which means that it should not 61should not call `syntax-ppss-flush-cache', which means that it should not
62call `syntax-ppss' on some position and later modify the buffer on some 62call `syntax-ppss' on some position and later modify the buffer on some
@@ -248,7 +248,7 @@ Note: back-references in REGEXPs do not work."
248 (if syntax 248 (if syntax
249 (put-text-property 249 (put-text-property
250 mb me 'syntax-table syntax)))))))) 250 mb me 'syntax-table syntax))))))))
251 251
252 (if (or (not (cddr rule)) (zerop gn)) 252 (if (or (not (cddr rule)) (zerop gn))
253 (setq code (nconc (nreverse thiscode) code)) 253 (setq code (nconc (nreverse thiscode) code))
254 (push `(if (match-beginning ,gn) 254 (push `(if (match-beginning ,gn)
diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el
index 9a50352d507..b17fa6b1471 100644
--- a/lisp/emulation/cua-base.el
+++ b/lisp/emulation/cua-base.el
@@ -368,7 +368,7 @@ interpreted as a register number."
368 368
369(defcustom cua-check-pending-input t 369(defcustom cua-check-pending-input t
370 "If non-nil, don't override prefix key if input pending. 370 "If non-nil, don't override prefix key if input pending.
371It is rumoured that `input-pending-p' is unreliable under some window 371It is rumored that `input-pending-p' is unreliable under some window
372managers, so try setting this to nil, if prefix override doesn't work." 372managers, so try setting this to nil, if prefix override doesn't work."
373 :type 'boolean 373 :type 'boolean
374 :group 'cua) 374 :group 'cua)
@@ -1242,7 +1242,7 @@ If ARG is the atom `-', scroll upward by nearly full screen."
1242 1242
1243 ;; Handle shifted cursor keys and other movement commands. 1243 ;; Handle shifted cursor keys and other movement commands.
1244 ;; If region is not active, region is activated if key is shifted. 1244 ;; If region is not active, region is activated if key is shifted.
1245 ;; If region is active, region is cancelled if key is unshifted 1245 ;; If region is active, region is canceled if key is unshifted
1246 ;; (and region not started with C-SPC). 1246 ;; (and region not started with C-SPC).
1247 ;; If rectangle is active, expand rectangle in specified direction and 1247 ;; If rectangle is active, expand rectangle in specified direction and
1248 ;; ignore the movement. 1248 ;; ignore the movement.
diff --git a/lisp/emulation/cua-gmrk.el b/lisp/emulation/cua-gmrk.el
index 690555e81dc..b6a3a977909 100644
--- a/lisp/emulation/cua-gmrk.el
+++ b/lisp/emulation/cua-gmrk.el
@@ -94,7 +94,7 @@ insert the deleted or copied text before the global marker, even when the
94global marker is in another buffer. 94global marker is in another buffer.
95If the global marker isn't set, set the global marker at point in the current 95If the global marker isn't set, set the global marker at point in the current
96buffer. Otherwise jump to the global marker position and cancel it. 96buffer. Otherwise jump to the global marker position and cancel it.
97With prefix argument, don't jump to global mark when cancelling it." 97With prefix argument, don't jump to global mark when canceling it."
98 (interactive "P") 98 (interactive "P")
99 (unless cua--global-mark-initialized 99 (unless cua--global-mark-initialized
100 (cua--init-global-mark)) 100 (cua--init-global-mark))
diff --git a/lisp/emulation/cua-rect.el b/lisp/emulation/cua-rect.el
index 76cab39f5b2..00aec2d0bf9 100644
--- a/lisp/emulation/cua-rect.el
+++ b/lisp/emulation/cua-rect.el
@@ -1258,7 +1258,7 @@ The numbers are formatted according to the FORMAT string."
1258 (untabify (point-min) (point-max))) 1258 (untabify (point-min) (point-max)))
1259 1259
1260(defun cua-text-fill-rectangle (width text) 1260(defun cua-text-fill-rectangle (width text)
1261 "Replace rectagle with filled TEXT read from minibuffer. 1261 "Replace rectangle with filled TEXT read from minibuffer.
1262A numeric prefix argument is used a new width for the filled rectangle." 1262A numeric prefix argument is used a new width for the filled rectangle."
1263 (interactive (list 1263 (interactive (list
1264 (prefix-numeric-value current-prefix-arg) 1264 (prefix-numeric-value current-prefix-arg)
@@ -1269,7 +1269,7 @@ A numeric prefix argument is used a new width for the filled rectangle."
1269 (lambda () (insert text)))) 1269 (lambda () (insert text))))
1270 1270
1271(defun cua-refill-rectangle (width) 1271(defun cua-refill-rectangle (width)
1272 "Fill contents of current rectagle. 1272 "Fill contents of current rectangle.
1273A numeric prefix argument is used as new width for the filled rectangle." 1273A numeric prefix argument is used as new width for the filled rectangle."
1274 (interactive "P") 1274 (interactive "P")
1275 (cua--rectangle-aux-replace 1275 (cua--rectangle-aux-replace
diff --git a/lisp/emulation/vip.el b/lisp/emulation/vip.el
index a0c6062fb29..1298e5424ac 100644
--- a/lisp/emulation/vip.el
+++ b/lisp/emulation/vip.el
@@ -420,7 +420,7 @@ Type `n' to quit this window for now.\n")
420 (goto-char (point-min)) 420 (goto-char (point-min))
421 (if (y-or-n-p "Inhibit VIP startup message? ") 421 (if (y-or-n-p "Inhibit VIP startup message? ")
422 (progn 422 (progn
423 (with-current-buffer 423 (with-current-buffer
424 (find-file-noselect 424 (find-file-noselect
425 (substitute-in-file-name vip-startup-file)) 425 (substitute-in-file-name vip-startup-file))
426 (goto-char (point-max)) 426 (goto-char (point-max))
@@ -877,7 +877,7 @@ is the name of the register for COM."
877 (if (> beg end) (exchange-point-and-mark))) 877 (if (> beg end) (exchange-point-and-mark)))
878 878
879(defun vip-global-execute () 879(defun vip-global-execute ()
880 "Call last keyboad macro for each line in the region." 880 "Call last keyboard macro for each line in the region."
881 (if (> (point) (mark)) (exchange-point-and-mark)) 881 (if (> (point) (mark)) (exchange-point-and-mark))
882 (beginning-of-line) 882 (beginning-of-line)
883 (call-last-kbd-macro) 883 (call-last-kbd-macro)
diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el
index ce3cc3c9a22..b6d487704f4 100644
--- a/lisp/emulation/viper-cmd.el
+++ b/lisp/emulation/viper-cmd.el
@@ -716,7 +716,7 @@
716 (error 716 (error
717 (viper-message-conditions conds)))) 717 (viper-message-conditions conds))))
718 718
719;; escape to emacs mode termporarily 719;; escape to emacs mode temporarily
720(defun viper-escape-to-emacs (arg &optional events) 720(defun viper-escape-to-emacs (arg &optional events)
721 "Escape to Emacs state from Vi state for one Emacs command. 721 "Escape to Emacs state from Vi state for one Emacs command.
722ARG is used as the prefix value for the executed command. If 722ARG is used as the prefix value for the executed command. If
@@ -726,7 +726,7 @@ EVENTS is a list of events, which become the beginning of the command."
726 (message "Switched to EMACS state for the next command...")) 726 (message "Switched to EMACS state for the next command..."))
727 (viper-escape-to-state arg events 'emacs-state)) 727 (viper-escape-to-state arg events 'emacs-state))
728 728
729;; escape to Vi mode termporarily 729;; escape to Vi mode temporarily
730(defun viper-escape-to-vi (arg) 730(defun viper-escape-to-vi (arg)
731 "Escape from Emacs state to Vi state for one Vi 1-character command. 731 "Escape from Emacs state to Vi state for one Vi 1-character command.
732If the Vi command that the user types has a prefix argument, e.g., `d2w', then 732If the Vi command that the user types has a prefix argument, e.g., `d2w', then
@@ -1979,7 +1979,7 @@ Undo previous insertion and inserts new."
1979;; Quote region by each line with a user supplied string. 1979;; Quote region by each line with a user supplied string.
1980(defun viper-quote-region () 1980(defun viper-quote-region ()
1981 (let ((quote-str viper-quote-string) 1981 (let ((quote-str viper-quote-string)
1982 (donot-change-dafault t)) 1982 (donot-change-default t))
1983 (setq quote-str 1983 (setq quote-str
1984 (viper-read-string-with-history 1984 (viper-read-string-with-history
1985 "Quote string: " 1985 "Quote string: "
@@ -1991,9 +1991,9 @@ Undo previous insertion and inserts new."
1991 ((string-match "lisp.*-mode" (symbol-name major-mode)) ";;") 1991 ((string-match "lisp.*-mode" (symbol-name major-mode)) ";;")
1992 ((memq major-mode '(c-mode cc-mode c++-mode)) "//") 1992 ((memq major-mode '(c-mode cc-mode c++-mode)) "//")
1993 ((memq major-mode '(sh-mode shell-mode)) "#") 1993 ((memq major-mode '(sh-mode shell-mode)) "#")
1994 (t (setq donot-change-dafault nil) 1994 (t (setq donot-change-default nil)
1995 quote-str)))) 1995 quote-str))))
1996 (or donot-change-dafault 1996 (or donot-change-default
1997 (setq viper-quote-string quote-str)) 1997 (setq viper-quote-string quote-str))
1998 (viper-enlarge-region (point) (mark t)) 1998 (viper-enlarge-region (point) (mark t))
1999 (if (> (point) (mark t)) (exchange-point-and-mark)) 1999 (if (> (point) (mark t)) (exchange-point-and-mark))
@@ -2407,7 +2407,7 @@ problems."
2407 t 'local) 2407 t 'local)
2408 (add-hook 2408 (add-hook
2409 'viper-pre-command-hooks 'viper-replace-state-pre-command-sentinel t 'local) 2409 'viper-pre-command-hooks 'viper-replace-state-pre-command-sentinel t 'local)
2410 ;; guard against a smartie who switched from R-replace to normal replace 2410 ;; guard against a smarty who switched from R-replace to normal replace
2411 (remove-hook 2411 (remove-hook
2412 'viper-post-command-hooks 'viper-R-state-post-command-sentinel 'local) 2412 'viper-post-command-hooks 'viper-R-state-post-command-sentinel 'local)
2413 (if overwrite-mode (overwrite-mode -1)) 2413 (if overwrite-mode (overwrite-mode -1))
@@ -2531,7 +2531,7 @@ problems."
2531 'viper-post-command-hooks 'viper-R-state-post-command-sentinel t 'local) 2531 'viper-post-command-hooks 'viper-R-state-post-command-sentinel t 'local)
2532 (add-hook 2532 (add-hook
2533 'viper-pre-command-hooks 'viper-replace-state-pre-command-sentinel t 'local) 2533 'viper-pre-command-hooks 'viper-replace-state-pre-command-sentinel t 'local)
2534 ;; guard against a smartie who switched from R-replace to normal replace 2534 ;; guard against a smarty who switched from R-replace to normal replace
2535 (remove-hook 2535 (remove-hook
2536 'viper-post-command-hooks 'viper-replace-state-post-command-sentinel 'local) 2536 'viper-post-command-hooks 'viper-replace-state-post-command-sentinel 'local)
2537 ) 2537 )
@@ -3767,7 +3767,7 @@ If MAJOR-MODE is set, set the macros only in that major mode."
3767 "//" 'vi-state 3767 "//" 'vi-state
3768 [1 (meta x) v i p e r - t o g g l e - s e a r c h - s t y l e return] 3768 [1 (meta x) v i p e r - t o g g l e - s e a r c h - s t y l e return]
3769 scope) 3769 scope)
3770 ;; toggle regexp/vanila search 3770 ;; toggle regexp/vanilla search
3771 (viper-record-kbd-macro 3771 (viper-record-kbd-macro
3772 "///" 'vi-state 3772 "///" 'vi-state
3773 [2 (meta x) v i p e r - t o g g l e - s e a r c h - s t y l e return] 3773 [2 (meta x) v i p e r - t o g g l e - s e a r c h - s t y l e return]
@@ -3824,7 +3824,7 @@ the macros are set in the current major mode.
3824 "//" 'emacs-state 3824 "//" 'emacs-state
3825 [1 (meta x) v i p e r - t o g g l e - s e a r c h - s t y l e return] 3825 [1 (meta x) v i p e r - t o g g l e - s e a r c h - s t y l e return]
3826 (or arg-majormode major-mode)) 3826 (or arg-majormode major-mode))
3827 ;; toggle regexp/vanila search 3827 ;; toggle regexp/vanilla search
3828 (viper-record-kbd-macro 3828 (viper-record-kbd-macro
3829 "///" 'emacs-state 3829 "///" 'emacs-state
3830 [2 (meta x) v i p e r - t o g g l e - s e a r c h - s t y l e return] 3830 [2 (meta x) v i p e r - t o g g l e - s e a r c h - s t y l e return]
@@ -4017,7 +4017,7 @@ Null string will repeat previous search."
4017 (setq viper-prefix-commands 4017 (setq viper-prefix-commands
4018 (cons viper-buffer-search-char viper-prefix-commands))) 4018 (cons viper-buffer-search-char viper-prefix-commands)))
4019 4019
4020;; This is a Viper wraper for isearch-forward. 4020;; This is a Viper wrapper for isearch-forward.
4021(defun viper-isearch-forward (arg) 4021(defun viper-isearch-forward (arg)
4022 "Do incremental search forward." 4022 "Do incremental search forward."
4023 (interactive "P") 4023 (interactive "P")
@@ -4025,7 +4025,7 @@ Null string will repeat previous search."
4025 (if (listp arg) (setq arg (car arg))) 4025 (if (listp arg) (setq arg (car arg)))
4026 (viper-exec-form-in-emacs (list 'isearch-forward arg))) 4026 (viper-exec-form-in-emacs (list 'isearch-forward arg)))
4027 4027
4028;; This is a Viper wraper for isearch-backward." 4028;; This is a Viper wrapper for isearch-backward."
4029(defun viper-isearch-backward (arg) 4029(defun viper-isearch-backward (arg)
4030 "Do incremental search backward." 4030 "Do incremental search backward."
4031 (interactive "P") 4031 (interactive "P")
diff --git a/lisp/emulation/viper-init.el b/lisp/emulation/viper-init.el
index 2d221d5fa05..2fc8dc599cb 100644
--- a/lisp/emulation/viper-init.el
+++ b/lisp/emulation/viper-init.el
@@ -818,7 +818,7 @@ Related buffers can be cycled through via :R and :P commands."
818;;; Face-saving tricks 818;;; Face-saving tricks
819 819
820(defgroup viper-highlighting nil 820(defgroup viper-highlighting nil
821 "Hilighting of replace region, search pattern, minibuffer, etc." 821 "Highlighting of replace region, search pattern, minibuffer, etc."
822 :prefix "viper-" 822 :prefix "viper-"
823 :group 'viper) 823 :group 'viper)
824 824
diff --git a/lisp/emulation/viper-macs.el b/lisp/emulation/viper-macs.el
index e978823a49c..2704bdc5b40 100644
--- a/lisp/emulation/viper-macs.el
+++ b/lisp/emulation/viper-macs.el
@@ -921,7 +921,7 @@ name from there."
921 921
922 922
923(defun viper-global-execute () 923(defun viper-global-execute ()
924 "Call last keyboad macro for each line in the region." 924 "Call last keyboard macro for each line in the region."
925 (if (> (point) (mark t)) (exchange-point-and-mark)) 925 (if (> (point) (mark t)) (exchange-point-and-mark))
926 (beginning-of-line) 926 (beginning-of-line)
927 (call-last-kbd-macro) 927 (call-last-kbd-macro)
diff --git a/lisp/emulation/viper.el b/lisp/emulation/viper.el
index b2035e8ede6..3704725b8dd 100644
--- a/lisp/emulation/viper.el
+++ b/lisp/emulation/viper.el
@@ -491,7 +491,7 @@ unless it is coming up in a wrong Viper state."
491 ) 491 )
492 "List specifying how to modify the various major modes to enable some Viperisms. 492 "List specifying how to modify the various major modes to enable some Viperisms.
493The list has the structure: ((mode viper-state keymap) (mode viper-state 493The list has the structure: ((mode viper-state keymap) (mode viper-state
494keymap) ...). If `mode' is on the list, the `kemap' will be made active (on 494keymap) ...). If `mode' is on the list, the `keymap' will be made active (on
495the minor-mode-map-alist) in the specified viper state. 495the minor-mode-map-alist) in the specified viper state.
496If you change this list, have to restart Emacs for the change to take effect. 496If you change this list, have to restart Emacs for the change to take effect.
497However, if you did the change through the customization widget, then Emacs 497However, if you did the change through the customization widget, then Emacs
diff --git a/lisp/epa-dired.el b/lisp/epa-dired.el
index 0834a8df23a..d51045a5e37 100644
--- a/lisp/epa-dired.el
+++ b/lisp/epa-dired.el
@@ -67,7 +67,7 @@ If no one is selected, default secret key is used. "
67 (while file-list 67 (while file-list
68 (epa-encrypt-file 68 (epa-encrypt-file
69 (expand-file-name (car file-list)) 69 (expand-file-name (car file-list))
70 (epa-select-keys (epg-make-context) "Select recipents for encryption. 70 (epa-select-keys (epg-make-context) "Select recipients for encryption.
71If no one is selected, symmetric encryption will be performed. ")) 71If no one is selected, symmetric encryption will be performed. "))
72 (setq file-list (cdr file-list))) 72 (setq file-list (cdr file-list)))
73 (revert-buffer))) 73 (revert-buffer)))
diff --git a/lisp/epa-file.el b/lisp/epa-file.el
index bef67ba4f69..4d05563719d 100644
--- a/lisp/epa-file.el
+++ b/lisp/epa-file.el
@@ -235,7 +235,7 @@ encryption is used."
235 (current-buffer))))) 235 (current-buffer)))))
236 (epa-select-keys 236 (epa-select-keys
237 context 237 context
238 "Select recipents for encryption. 238 "Select recipients for encryption.
239If no one is selected, symmetric encryption will be performed. " 239If no one is selected, symmetric encryption will be performed. "
240 recipients) 240 recipients)
241 (if epa-file-encrypt-to 241 (if epa-file-encrypt-to
@@ -273,7 +273,7 @@ If no one is selected, symmetric encryption will be performed. "
273 (epg-sub-key-id (car (epg-key-sub-key-list key)))) 273 (epg-sub-key-id (car (epg-key-sub-key-list key))))
274 (epa-select-keys 274 (epa-select-keys
275 (epg-make-context) 275 (epg-make-context)
276 "Select recipents for encryption. 276 "Select recipients for encryption.
277If no one is selected, symmetric encryption will be performed. ")))) 277If no one is selected, symmetric encryption will be performed. "))))
278 278
279;;;###autoload 279;;;###autoload
diff --git a/lisp/erc/ChangeLog.02 b/lisp/erc/ChangeLog.02
index 3364af531f5..d20b6ca35a7 100644
--- a/lisp/erc/ChangeLog.02
+++ b/lisp/erc/ChangeLog.02
@@ -75,7 +75,7 @@
75 everything but the last character. 75 everything but the last character.
76 76
77 * erc.el(erc-send-current-line): 77 * erc.el(erc-send-current-line):
78 Check wether point is in the input line. If 78 Check whether point is in the input line. If
79 not, just beep and do nothing. 79 not, just beep and do nothing.
80 80
812002-12-28 Alex Schroeder <alex@gnu.org> 812002-12-28 Alex Schroeder <alex@gnu.org>
@@ -98,7 +98,7 @@
982002-12-28 Jorgen Schaefer <forcer@users.sourceforge.net> 982002-12-28 Jorgen Schaefer <forcer@users.sourceforge.net>
99 99
100 * erc.el(erc-log-irc-protocol): 100 * erc.el(erc-log-irc-protocol):
101 Removed check wether get-buffer-create 101 Removed check whether get-buffer-create
102 returned nil. "The value is never nil", says the docstring. 102 returned nil. "The value is never nil", says the docstring.
103 103
104 * erc.el: Day Of The Small Changes 104 * erc.el: Day Of The Small Changes
@@ -245,7 +245,7 @@
245 (erc-process-alive): Check erc-process for boundp and processp. 245 (erc-process-alive): Check erc-process for boundp and processp.
246 246
247 * erc.el(erc-kill-buffer-function): 247 * erc.el(erc-kill-buffer-function):
248 Do not check wether the process is 248 Do not check whether the process is
249 alive before running the hook, because there might be functions on 249 alive before running the hook, because there might be functions on
250 the hook that need to run even when the process is dead. And 250 the hook that need to run even when the process is dead. And
251 function that wants to check this, should use (erc-process-alive). 251 function that wants to check this, should use (erc-process-alive).
@@ -1037,7 +1037,7 @@
1037 * (erc-away-p): new function 1037 * (erc-away-p): new function
1038 1038
1039 erc-fill.el: 1039 erc-fill.el:
1040 * (erc-fill-variable): Check wether erc-timestamp-format is bound before 1040 * (erc-fill-variable): Check whether erc-timestamp-format is bound before
1041 using it (erc-fill.el does not require erc-stamp). 1041 using it (erc-fill.el does not require erc-stamp).
1042 1042
10432002-11-10 Alex Schroeder <alex@gnu.org> 10432002-11-10 Alex Schroeder <alex@gnu.org>
diff --git a/lisp/erc/ChangeLog.03 b/lisp/erc/ChangeLog.03
index fc7fd09e76c..3e687202d38 100644
--- a/lisp/erc/ChangeLog.03
+++ b/lisp/erc/ChangeLog.03
@@ -416,7 +416,7 @@
416 * erc-button.el: New variable erc-button-wrap-long-urls. 416 * erc-button.el: New variable erc-button-wrap-long-urls.
417 Modified erc-button-add-buttons: 417 Modified erc-button-add-buttons:
418 New optional argument REGEXP. 418 New optional argument REGEXP.
419 If we're buttonising a URL and erc-button-wrap-long-urls is 419 If we're buttonizing a URL and erc-button-wrap-long-urls is
420 non-nil, try and wrap them 420 non-nil, try and wrap them
421 421
422 Modified erc-button-add-buttons-1: 422 Modified erc-button-add-buttons-1:
@@ -693,10 +693,10 @@
6932003-04-29 Jorgen Schaefer <forcer@users.sourceforge.net> 6932003-04-29 Jorgen Schaefer <forcer@users.sourceforge.net>
694 694
695 * erc.el(erc): 695 * erc.el(erc):
696 Check wether erc-save-buffer-in-logs is bound, too 696 Check whether erc-save-buffer-in-logs is bound, too
697 697
698 * erc.el(erc): 698 * erc.el(erc):
699 Check wether erc-logging-enabled is bound before using it - not 699 Check whether erc-logging-enabled is bound before using it - not
700 everyone is using erc-log.el! 700 everyone is using erc-log.el!
701 701
7022003-04-28 Andreas Fuchs <asf@void.at> 7022003-04-28 Andreas Fuchs <asf@void.at>
@@ -822,7 +822,7 @@
822 (define-erc-module): the enable and disable routines now update erc-modules 822 (define-erc-module): the enable and disable routines now update erc-modules
823 accordingly 823 accordingly
824 erc-modules: new variable controlling the modules which erc has loaded/will 824 erc-modules: new variable controlling the modules which erc has loaded/will
825 load. when customising, it will automatically enable modules. it won't 825 load. when customizing, it will automatically enable modules. it won't
826 automatically disable modules which are removed, yet. 826 automatically disable modules which are removed, yet.
827 (erc-update-modules): enable all modules in `erc-modules' 827 (erc-update-modules): enable all modules in `erc-modules'
828 828
@@ -1058,7 +1058,7 @@
1058 * erc.el(erc-process-input-line): 1058 * erc.el(erc-process-input-line):
1059 when displaying the help for a function, if no 1059 when displaying the help for a function, if no
1060 documentation exists, don't fall over 1060 documentation exists, don't fall over
1061 (erc-cmd-SAY): new function for quoting lines begining with / 1061 (erc-cmd-SAY): new function for quoting lines beginning with /
1062 (erc-server-NICK): 1062 (erc-server-NICK):
1063 - fix a bug where the "is now known as" message doesn't appear on newly 1063 - fix a bug where the "is now known as" message doesn't appear on newly
1064 created /query buffers 1064 created /query buffers
@@ -1166,7 +1166,7 @@
1166 1166
1167 (erc-person): Call erc-downcase before getting 1167 (erc-person): Call erc-downcase before getting
1168 something from the hash. 1168 something from the hash.
1169 (erc-nick-in-channel): Checking wether erc-process must be used is 1169 (erc-nick-in-channel): Checking whether erc-process must be used is
1170 unnecessary -- this will be done in erc-person. 1170 unnecessary -- this will be done in erc-person.
1171 (erc-nick-channels): New. 1171 (erc-nick-channels): New.
1172 (erc-add-nick-to-channel, erc-update-member): Call erc-downcase 1172 (erc-add-nick-to-channel, erc-update-member): Call erc-downcase
@@ -1491,7 +1491,7 @@
1491 * erc.el: 1491 * erc.el:
1492 * removed duplicate do-no-parse-args properties for the defaliased defuns 1492 * removed duplicate do-no-parse-args properties for the defaliased defuns
1493 (erc-process-input-line): show function signature when incorrect args 1493 (erc-process-input-line): show function signature when incorrect args
1494 (erc-extract-command-from-line): canonicalise defaliases before extracting 1494 (erc-extract-command-from-line): canonicalize defaliases before extracting
1495 plist 1495 plist
1496 (erc-cmd-CLEAR): fixed 1496 (erc-cmd-CLEAR): fixed
1497 (erc-cmd-UNIGNORE): fixed again 1497 (erc-cmd-UNIGNORE): fixed again
@@ -1678,7 +1678,7 @@
16782003-01-11 Jorgen Schaefer <forcer@users.sourceforge.net> 16782003-01-11 Jorgen Schaefer <forcer@users.sourceforge.net>
1679 1679
1680 * erc-stamp.el(erc-insert-timestamp-right): 1680 * erc-stamp.el(erc-insert-timestamp-right):
1681 Check wether erc-fill-column is 1681 Check whether erc-fill-column is
1682 available before using it. Else default to fill-column or if 1682 available before using it. Else default to fill-column or if
1683 everything else fails, the window width of the current window. For the 1683 everything else fails, the window width of the current window. For the
1684 fill-columns, use them directly as the starting position for the 1684 fill-columns, use them directly as the starting position for the
diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el
index 5baa676ab39..112091af219 100644
--- a/lisp/erc/erc-backend.el
+++ b/lisp/erc/erc-backend.el
@@ -991,7 +991,7 @@ Hands off to helper functions via `erc-call-hooks'."
991 (if (member (erc-response.command parsed-response) 991 (if (member (erc-response.command parsed-response)
992 erc-server-prevent-duplicates) 992 erc-server-prevent-duplicates)
993 (let ((m (erc-response.unparsed parsed-response))) 993 (let ((m (erc-response.unparsed parsed-response)))
994 ;; duplicate supression 994 ;; duplicate suppression
995 (if (< (or (gethash m erc-server-duplicates) 0) 995 (if (< (or (gethash m erc-server-duplicates) 0)
996 (- (erc-current-time) erc-server-duplicate-timeout)) 996 (- (erc-current-time) erc-server-duplicate-timeout))
997 (erc-call-hooks process parsed-response)) 997 (erc-call-hooks process parsed-response))
diff --git a/lisp/eshell/em-dirs.el b/lisp/eshell/em-dirs.el
index 1aa2c34c395..cab84951143 100644
--- a/lisp/eshell/em-dirs.el
+++ b/lisp/eshell/em-dirs.el
@@ -160,7 +160,7 @@ it's far more automatic. `pushd' allows the user to decide which
160directories gets pushed, and its size is unlimited. 160directories gets pushed, and its size is unlimited.
161 161
162`eshell-last-dir-ring' is meant for users who don't use `pushd' 162`eshell-last-dir-ring' is meant for users who don't use `pushd'
163explicity very much, but every once in a while would like to return to 163explicitly very much, but every once in a while would like to return to
164a previously visited directory without having to type in the whole 164a previously visited directory without having to type in the whole
165thing again." 165thing again."
166 :type 'integer 166 :type 'integer
diff --git a/lisp/eshell/em-rebind.el b/lisp/eshell/em-rebind.el
index 2c346dfcd3d..b6f12e1ff2e 100644
--- a/lisp/eshell/em-rebind.el
+++ b/lisp/eshell/em-rebind.el
@@ -144,7 +144,7 @@ This is default behavior of shells like bash."
144;;; Functions: 144;;; Functions:
145 145
146(defun eshell-rebind-initialize () 146(defun eshell-rebind-initialize ()
147 "Initialize the inputing code." 147 "Initialize the inputting code."
148 (unless eshell-non-interactive-p 148 (unless eshell-non-interactive-p
149 (add-hook 'eshell-mode-hook 'eshell-setup-input-keymap nil t) 149 (add-hook 'eshell-mode-hook 'eshell-setup-input-keymap nil t)
150 (make-local-variable 'eshell-previous-point) 150 (make-local-variable 'eshell-previous-point)
diff --git a/lisp/faces.el b/lisp/faces.el
index f10c9f87f25..21193589deb 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -1704,13 +1704,14 @@ If omitted or nil, that stands for the selected frame's display."
1704 (> (tty-color-gray-shades display) 2))))) 1704 (> (tty-color-gray-shades display) 2)))))
1705 1705
1706(defun read-color (&optional prompt convert-to-RGB allow-empty-name msg) 1706(defun read-color (&optional prompt convert-to-RGB allow-empty-name msg)
1707 "Read a color name or RGB triplet of the form \"#RRRRGGGGBBBB\". 1707 "Read a color name or RGB triplet.
1708Completion is available for color names, but not for RGB triplets. 1708Completion is available for color names, but not for RGB triplets.
1709 1709
1710RGB triplets have the form #XXXXXXXXXXXX, where each X is a hex 1710RGB triplets have the form \"#RRGGBB\". Each of the R, G, and B
1711digit. The number of Xs must be a multiple of 3, with the same 1711components can have one to four digits, but all three components
1712number of Xs for each of red, green, and blue. The order is red, 1712must have the same number of digits. Each digit is a hex value
1713green, blue. 1713between 0 and F; either upper case or lower case for A through F
1714are acceptable.
1714 1715
1715In addition to standard color names and RGB hex values, the 1716In addition to standard color names and RGB hex values, the
1716following are available as color candidates. In each case, the 1717following are available as color candidates. In each case, the
diff --git a/lisp/files.el b/lisp/files.el
index f903d2919a6..0f7386511f6 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -917,24 +917,41 @@ See `load-file' for a different interface to `load'."
917 917
918(defun file-remote-p (file &optional identification connected) 918(defun file-remote-p (file &optional identification connected)
919 "Test whether FILE specifies a location on a remote system. 919 "Test whether FILE specifies a location on a remote system.
920Returns nil or a string identifying the remote connection (ideally 920A file is considered remote if accessing it is likely to
921a prefix of FILE). For example, the remote identification for filename 921be slower or less reliable than accessing local files.
922\"/user@host:/foo\" could be \"/user@host:\". 922
923A file is considered \"remote\" if accessing it is likely to be slower or 923`file-remote-p' never opens a new remote connection. It can
924less reliable than accessing local files. 924only reuse a connection that is already open.
925Furthermore, relative file names do not work across remote connections. 925
926 926Return nil or a string identifying the remote connection
927IDENTIFICATION specifies which part of the identification shall 927\(ideally a prefix of FILE). Return nil if FILE is a relative
928be returned as string. IDENTIFICATION can be the symbol 928file name.
929`method', `user', `host' or `localname'; any other value is 929
930handled like nil and means to return the complete identification 930When IDENTIFICATION is nil, the returned string is a complete
931string. 931remote identifier: with components method, user, and host. The
932 932components are those present in FILE, with defaults filled in for
933If CONNECTED is non-nil, the function returns an identification only 933any that are missing.
934if FILE is located on a remote system, and a connection is established 934
935to that remote system. 935IDENTIFICATION can specify which part of the identification to
936 936return. IDENTIFICATION can be the symbol `method', `user',
937`file-remote-p' will never open a connection on its own." 937`host', or `localname'. Any other value is handled like nil and
938means to return the complete identification. The string returned
939for IDENTIFICATION `localname' can differ depending on whether
940there is an existing connection.
941
942If CONNECTED is non-nil, return an identification only if FILE is
943located on a remote system and a connection is established to
944that remote system.
945
946Tip: You can use this expansion of remote identifier components
947 to derive a new remote file name from an existing one. For
948 example, if FILE is \"/sudo::/path/to/file\" then
949
950 \(concat \(file-remote-p FILE) \"/bin/sh\")
951
952 returns a remote file name for file \"/bin/sh\" that has the
953 same remote identifier as FILE but expanded; a name such as
954 \"/sudo:root@myhost:/bin/sh\"."
938 (let ((handler (find-file-name-handler file 'file-remote-p))) 955 (let ((handler (find-file-name-handler file 'file-remote-p)))
939 (if handler 956 (if handler
940 (funcall handler 'file-remote-p file identification connected) 957 (funcall handler 'file-remote-p file identification connected)
@@ -4866,7 +4883,7 @@ given. With a prefix argument, TRASH is nil."
4866 directory 'full directory-files-no-dot-files-regexp)) 4883 directory 'full directory-files-no-dot-files-regexp))
4867 (error "Directory is not empty, not moving to trash") 4884 (error "Directory is not empty, not moving to trash")
4868 (move-file-to-trash directory))) 4885 (move-file-to-trash directory)))
4869 ;; Otherwise, call outselves recursively if needed. 4886 ;; Otherwise, call ourselves recursively if needed.
4870 (t 4887 (t
4871 (if (and recursive (not (file-symlink-p directory))) 4888 (if (and recursive (not (file-symlink-p directory)))
4872 (mapc (lambda (file) 4889 (mapc (lambda (file)
@@ -6110,7 +6127,7 @@ message to that effect instead of signaling an error."
6110 6127
6111(defvar kill-emacs-query-functions nil 6128(defvar kill-emacs-query-functions nil
6112 "Functions to call with no arguments to query about killing Emacs. 6129 "Functions to call with no arguments to query about killing Emacs.
6113If any of these functions returns nil, killing Emacs is cancelled. 6130If any of these functions returns nil, killing Emacs is canceled.
6114`save-buffers-kill-emacs' calls these functions, but `kill-emacs', 6131`save-buffers-kill-emacs' calls these functions, but `kill-emacs',
6115the low level primitive, does not. See also `kill-emacs-hook'.") 6132the low level primitive, does not. See also `kill-emacs-hook'.")
6116 6133
diff --git a/lisp/filesets.el b/lisp/filesets.el
index 680a107adfe..0f6c6e8dd78 100644
--- a/lisp/filesets.el
+++ b/lisp/filesets.el
@@ -453,7 +453,7 @@ will not be rewrapped if their length exceeds this value."
453 :group 'filesets) 453 :group 'filesets)
454 454
455(defcustom filesets-max-entry-length 50 455(defcustom filesets-max-entry-length 50
456 "Truncate names of splitted submenus to this length." 456 "Truncate names of split submenus to this length."
457 :set (function filesets-set-default) 457 :set (function filesets-set-default)
458 :type 'integer 458 :type 'integer
459 :group 'filesets) 459 :group 'filesets)
diff --git a/lisp/follow.el b/lisp/follow.el
index 2273e8920fd..ee8be14c6dc 100644
--- a/lisp/follow.el
+++ b/lisp/follow.el
@@ -1129,7 +1129,7 @@ Otherwise, return nil."
1129;;{{{ Redisplay 1129;;{{{ Redisplay
1130 1130
1131;; Redraw all the windows on the screen, starting with the top window. 1131;; Redraw all the windows on the screen, starting with the top window.
1132;; The window used as as marker is WIN, or the selcted window if WIN 1132;; The window used as as marker is WIN, or the selected window if WIN
1133;; is nil. Start every window directly after the end of the previous 1133;; is nil. Start every window directly after the end of the previous
1134;; window, to make sure long lines are displayed correctly. 1134;; window, to make sure long lines are displayed correctly.
1135 1135
@@ -1993,7 +1993,7 @@ report this using the `report-emacs-bug' function."
1993;; going to be recentered at the next redisplay, unless we do a 1993;; going to be recentered at the next redisplay, unless we do a
1994;; read-and-write cycle to update the `force' flag inside the windows. 1994;; read-and-write cycle to update the `force' flag inside the windows.
1995;; 1995;;
1996;; In 19.30, a new varible `window-scroll-functions' is called every 1996;; In 19.30, a new variable `window-scroll-functions' is called every
1997;; time a window is recentered. It is not perfect for our situation, 1997;; time a window is recentered. It is not perfect for our situation,
1998;; since when it is called for a tail window, it is to late. However, 1998;; since when it is called for a tail window, it is to late. However,
1999;; if it is called for another window, we can try to update our 1999;; if it is called for another window, we can try to update our
diff --git a/lisp/font-lock.el b/lisp/font-lock.el
index c319974fb41..2db0d809275 100644
--- a/lisp/font-lock.el
+++ b/lisp/font-lock.el
@@ -294,7 +294,7 @@ If a number, only buffers greater than this size have fontification messages."
294;; and they give users another mechanism for changing face appearance. 294;; and they give users another mechanism for changing face appearance.
295;; We now allow a FACENAME in `font-lock-keywords' to be any expression that 295;; We now allow a FACENAME in `font-lock-keywords' to be any expression that
296;; returns a face. So the easiest thing is to continue using these variables, 296;; returns a face. So the easiest thing is to continue using these variables,
297;; rather than sometimes evaling FACENAME and sometimes not. sm. 297;; rather than sometimes evalling FACENAME and sometimes not. sm.
298 298
299;; Note that in new code, in the vast majority of cases there is no 299;; Note that in new code, in the vast majority of cases there is no
300;; need to create variables that specify face names. Simply using 300;; need to create variables that specify face names. Simply using
diff --git a/lisp/forms.el b/lisp/forms.el
index 215f3ce88f7..0d92dc3ffd9 100644
--- a/lisp/forms.el
+++ b/lisp/forms.el
@@ -709,7 +709,7 @@ Commands: Equivalent keys in read-only mode:
709 (forms-first-record)) 709 (forms-first-record))
710 ) 710 )
711 711
712 ;; user customising 712 ;; user customizing
713 ;;(message "forms: proceeding setup (user hooks)...") 713 ;;(message "forms: proceeding setup (user hooks)...")
714 (run-mode-hooks 'forms-mode-hook 'forms-mode-hooks) 714 (run-mode-hooks 'forms-mode-hook 'forms-mode-hooks)
715 ;;(message "forms: setting up... done.") 715 ;;(message "forms: setting up... done.")
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index fbfcda57b53..1fff67074e7 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,32 @@
12011-12-28 Katsumi Yamaoka <yamaoka@jpl.org>
2
3 * mm-view.el (mm-display-inline-fontify): Add comment.
4
52011-12-15 Juri Linkov <juri@jurta.org>
6
7 * mm-decode.el (mm-inline-media-tests): Add missing
8 `mm-handle-media-subtype'.
9
102011-12-09 Tassilo Horn <tassilo@member.fsf.org>
11
12 * message.el (message-valid-fqdn-regexp): Update with newly approved
13 top-level domain names ".tel" and ".asia".
14
152011-12-08 Katsumi Yamaoka <yamaoka@jpl.org>
16
17 * gnus-sum.el (gnus-summary-show-article): Don't load shr
18 unconditionally.
19
202011-12-07 Katsumi Yamaoka <yamaoka@jpl.org>
21
22 * message.el (message-pop-to-buffer): Use pop-to-buffer instead of
23 pop-to-buffer-same-window for old Emacsen.
24
252011-12-04 Chong Yidong <cyd@gnu.org>
26
27 * message.el (message-pop-to-buffer): Partially revert 2011-11-30
28 change (Bug#10200).
29
12011-12-02 Katsumi Yamaoka <yamaoka@jpl.org> 302011-12-02 Katsumi Yamaoka <yamaoka@jpl.org>
2 31
3 * compface.el (uncompface): 32 * compface.el (uncompface):
@@ -145,7 +174,7 @@
145 174
1462011-10-17 Dave Abrahams <dave@boostpro.com> (tiny change) 1752011-10-17 Dave Abrahams <dave@boostpro.com> (tiny change)
147 176
148 * gnus-registry.el (gnus-registry-enabled): Add new variable. (Bug#9691) 177 * gnus-registry.el (gnus-registry-enabled): Add new variable (bug#9691).
149 (gnus-registry-install-shortcuts): Set `gnus-registry-install' to 'ask 178 (gnus-registry-install-shortcuts): Set `gnus-registry-install' to 'ask
150 only while we need to find out if it should be t or nil. 179 only while we need to find out if it should be t or nil.
151 (gnus-registry-initialize): Don't set `gnus-registry-install' to t. 180 (gnus-registry-initialize): Don't set `gnus-registry-install' to t.
@@ -304,7 +333,7 @@
3042011-09-20 Julien Danjou <julien@danjou.info> 3332011-09-20 Julien Danjou <julien@danjou.info>
305 334
306 * auth-source.el (auth-source-netrc-create): Use default value for 335 * auth-source.el (auth-source-netrc-create): Use default value for
307 password if specified. Evaluate default. 336 password if specified. Evaluate default.
308 (auth-source-plstore-create): Ditto. 337 (auth-source-plstore-create): Ditto.
309 (auth-source-plstore-create, auth-source-netrc-create): Fix default 338 (auth-source-plstore-create, auth-source-netrc-create): Fix default
310 value evaluation. 339 value evaluation.
@@ -360,7 +389,7 @@
360 (message-mail-other-window, message-mail-other-frame) 389 (message-mail-other-window, message-mail-other-frame)
361 (message-news-other-window, message-news-other-frame): 390 (message-news-other-window, message-news-other-frame):
362 Use switch-to-buffer-other-frame and switch-to-buffer-other-window 391 Use switch-to-buffer-other-frame and switch-to-buffer-other-window
363 instead of setting buffer display varibles. 392 instead of setting buffer display variables.
364 393
3652011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org> 3942011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
366 395
@@ -621,8 +650,8 @@
621 650
6222011-08-05 Andrew Cohen <cohen@andy.bu.edu> 6512011-08-05 Andrew Cohen <cohen@andy.bu.edu>
623 652
624 * gnus-sum.el (gnus-summary-refer-article): Warp to article. This 653 * gnus-sum.el (gnus-summary-refer-article): Warp to article.
625 allows article-referral to work from an nnir group. 654 This allows article-referral to work from an nnir group.
626 655
6272011-08-04 Andrew Cohen <cohen@andy.bu.edu> 6562011-08-04 Andrew Cohen <cohen@andy.bu.edu>
628 657
@@ -638,7 +667,7 @@
6382011-08-03 Andrew Cohen <cohen@andy.bu.edu> 6672011-08-03 Andrew Cohen <cohen@andy.bu.edu>
639 668
640 * nnir.el (nnir-read-server-parm): Add an argument to restrict to 669 * nnir.el (nnir-read-server-parm): Add an argument to restrict to
641 server-variables only. This should fix a bug introduced with commit 670 server-variables only. This should fix a bug introduced with commit
642 e1889675b7f4adf057833c5513c9374134c4e053. 671 e1889675b7f4adf057833c5513c9374134c4e053.
643 (nnir-run-query): 'nnir-search-engine should not be set from the global 672 (nnir-run-query): 'nnir-search-engine should not be set from the global
644 environment. 673 environment.
@@ -1838,7 +1867,7 @@
18382011-03-21 Julien Danjou <julien@danjou.info> 18672011-03-21 Julien Danjou <julien@danjou.info>
1839 1868
1840 * mm-view.el (mm-display-inline-fontify): Make mode optional, and call 1869 * mm-view.el (mm-display-inline-fontify): Make mode optional, and call
1841 normal-mode if not set. Set temp buffer unmodified to avoid kill-buffer 1870 normal-mode if not set. Set temp buffer unmodified to avoid kill-buffer
1842 query. 1871 query.
1843 (mm-inline-text): Render normal text with fontification whenever 1872 (mm-inline-text): Render normal text with fontification whenever
1844 possible. 1873 possible.
@@ -2682,9 +2711,9 @@
2682 * gnus.el (gnus-summary-line-format): Mention &user-date format in 2711 * gnus.el (gnus-summary-line-format): Mention &user-date format in
2683 docstring. 2712 docstring.
2684 2713
2685 * gnus.el (gnus-user-date-format-alist): Change default value. Use 2714 * gnus.el (gnus-user-date-format-alist): Change default value.
2686 defcustom, with type and group. Move from gnus-util.el. Rename to 2715 Use defcustom, with type and group. Move from gnus-util.el.
2687 gnus-summary-user-date-format-alist. 2716 Rename to gnus-summary-user-date-format-alist.
2688 2717
26892011-02-03 Glenn Morris <rgm@gnu.org> 27182011-02-03 Glenn Morris <rgm@gnu.org>
2690 2719
@@ -3211,12 +3240,12 @@
32112010-12-17 Julien Danjou <julien@danjou.info> 32402010-12-17 Julien Danjou <julien@danjou.info>
3212 3241
3213 * gnus-util.el (gnus-rescale-image): Allow to resize images even if 3242 * gnus-util.el (gnus-rescale-image): Allow to resize images even if
3214 they are from file. Can also scale up. 3243 they are from file. Can also scale up.
3215 3244
32162010-12-17 Andrew Cohen <cohen@andy.bu.edu> 32452010-12-17 Andrew Cohen <cohen@andy.bu.edu>
3217 3246
3218 * gnus-sum.el (gnus-summary-refer-thread): Simplify code. Restore 3247 * gnus-sum.el (gnus-summary-refer-thread): Simplify code.
3219 gnus-use-agent. 3248 Restore gnus-use-agent.
3220 (gnus-get-newsgroup-headers): Avoid unwanted spaces at eol. 3249 (gnus-get-newsgroup-headers): Avoid unwanted spaces at eol.
3221 3250
3222 * nnir.el (nnir-get-active): Ignore nnir-ignored-newsgroups if null. 3251 * nnir.el (nnir-get-active): Ignore nnir-ignored-newsgroups if null.
@@ -3574,8 +3603,8 @@
3574 * nnir.el: Update to handle the registry better. 3603 * nnir.el: Update to handle the registry better.
3575 (autoload): Silence byte-compiler. 3604 (autoload): Silence byte-compiler.
3576 (nnir-open-server): Add a hook for nnir groups. 3605 (nnir-open-server): Add a hook for nnir groups.
3577 (nnir-request-move-article): Don't mangle the header. Better to use 3606 (nnir-request-move-article): Don't mangle the header. Better to use
3578 formating variables (which will be added in the future). 3607 formatting variables (which will be added in the future).
3579 (nnir-registry-action): Update the registry using the original article 3608 (nnir-registry-action): Update the registry using the original article
3580 group name. 3609 group name.
3581 (nnir-mode): Install nnir-specific hooks for updating the registry. 3610 (nnir-mode): Install nnir-specific hooks for updating the registry.
@@ -4010,7 +4039,7 @@
40102010-11-21 Andrew Cohen <cohen@andy.bu.edu> 40392010-11-21 Andrew Cohen <cohen@andy.bu.edu>
4011 4040
4012 * nnir.el: Fix typo in comments. 4041 * nnir.el: Fix typo in comments.
4013 (nnir-run-imap): Simplify code. No need to reverse artlist. 4042 (nnir-run-imap): Simplify code. No need to reverse artlist.
4014 (nnir-run-gmane): Use nnir-tmp-buffer for web results. 4043 (nnir-run-gmane): Use nnir-tmp-buffer for web results.
4015 4044
40162010-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org> 40452010-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -4042,8 +4071,8 @@
4042 4071
40432010-11-19 Katsumi Yamaoka <yamaoka@jpl.org> 40722010-11-19 Katsumi Yamaoka <yamaoka@jpl.org>
4044 4073
4045 * gnus-art.el (gnus-mime-display-single) 4074 * gnus-art.el (gnus-mime-display-single):
4046 * gnus-html.el (gnus-html-wash-images, gnus-html-prefetch-images) 4075 * gnus-html.el (gnus-html-wash-images, gnus-html-prefetch-images):
4047 * mm-decode.el (mm-shr): Assume that gnus-inhibit-images may be a group 4076 * mm-decode.el (mm-shr): Assume that gnus-inhibit-images may be a group
4048 parameter. 4077 parameter.
4049 4078
@@ -4398,7 +4427,7 @@
4398 * gnus-util.el (gnus-string-match-p): New function, that is an alias to 4427 * gnus-util.el (gnus-string-match-p): New function, that is an alias to
4399 string-match-p in Emacs >=23. 4428 string-match-p in Emacs >=23.
4400 4429
4401 * gnus-msg.el (gnus-configure-posting-styles) 4430 * gnus-msg.el (gnus-configure-posting-styles):
4402 * nnir.el (nnir-run-gmane): Use gnus-string-match-p. 4431 * nnir.el (nnir-run-gmane): Use gnus-string-match-p.
4403 4432
44042010-11-01 Glenn Morris <rgm@gnu.org> 44332010-11-01 Glenn Morris <rgm@gnu.org>
@@ -5346,8 +5375,8 @@
5346 * gnus-util.el (gnus-remove-if): Allow hash table. 5375 * gnus-util.el (gnus-remove-if): Allow hash table.
5347 (gnus-remove-if-not): New function. 5376 (gnus-remove-if-not): New function.
5348 5377
5349 * gnus-art.el (gnus-mime-view-part-as-type) 5378 * gnus-art.el (gnus-mime-view-part-as-type):
5350 * gnus-score.el (gnus-summary-score-effect) 5379 * gnus-score.el (gnus-summary-score-effect):
5351 * gnus-sum.el (gnus-read-move-group-name): 5380 * gnus-sum.el (gnus-read-move-group-name):
5352 Replace remove-if-not with gnus-remove-if-not. 5381 Replace remove-if-not with gnus-remove-if-not.
5353 5382
@@ -5836,8 +5865,8 @@
58362010-09-29 Katsumi Yamaoka <yamaoka@jpl.org> 58652010-09-29 Katsumi Yamaoka <yamaoka@jpl.org>
5837 5866
5838 * mm-util.el (mm-codepage-iso-8859-list, mm-charset-eval-alist) 5867 * mm-util.el (mm-codepage-iso-8859-list, mm-charset-eval-alist)
5839 (mm-mime-charset) 5868 (mm-mime-charset):
5840 * rfc2047.el (rfc2047-syntax-table) 5869 * rfc2047.el (rfc2047-syntax-table):
5841 * utf7.el (utf7-utf-16-coding-system): Comment fix. 5870 * utf7.el (utf7-utf-16-coding-system): Comment fix.
5842 5871
5843 * nnrss.el (nnrss-read-server-data, nnrss-read-group-data): Use `load' 5872 * nnrss.el (nnrss-read-server-data, nnrss-read-group-data): Use `load'
@@ -5852,8 +5881,8 @@
5852 5881
58532010-09-28 Katsumi Yamaoka <yamaoka@jpl.org> 58822010-09-28 Katsumi Yamaoka <yamaoka@jpl.org>
5854 5883
5855 * mail-source.el (mail-source-report-new-mail) 5884 * mail-source.el (mail-source-report-new-mail):
5856 * message.el (message-default-mail-headers) 5885 * message.el (message-default-mail-headers):
5857 * mm-decode.el (mm-valid-image-format-p): Comment fix. 5886 * mm-decode.el (mm-valid-image-format-p): Comment fix.
5858 5887
5859 * mml2015.el (mml2015-use): Don't bind recursive-load-depth-limit. 5888 * mml2015.el (mml2015-use): Don't bind recursive-load-depth-limit.
@@ -6349,8 +6378,8 @@
6349 (gnus-article-next-page-1): No need to adjust the number of lines. 6378 (gnus-article-next-page-1): No need to adjust the number of lines.
6350 (gnus-article-describe-bindings): Always use help-buffer. 6379 (gnus-article-describe-bindings): Always use help-buffer.
6351 6380
6352 * gnus-audio.el (gnus-audio-inline-sound) 6381 * gnus-audio.el (gnus-audio-inline-sound):
6353 * gnus-cus.el (gnus-custom-mode) 6382 * gnus-cus.el (gnus-custom-mode):
6354 * gnus-group.el (gnus-group-update-tool-bar): Comment fix. 6383 * gnus-group.el (gnus-group-update-tool-bar): Comment fix.
6355 6384
6356 * gnus-sum.el (gnus-remove-overlays): Doc fix. 6385 * gnus-sum.el (gnus-remove-overlays): Doc fix.
@@ -6546,9 +6575,9 @@
6546 6575
65472010-09-22 Katsumi Yamaoka <yamaoka@jpl.org> 65762010-09-22 Katsumi Yamaoka <yamaoka@jpl.org>
6548 6577
6549 * mailcap.el (mailcap-parse-mailcap, mailcap-parse-mimetypes) 6578 * mailcap.el (mailcap-parse-mailcap, mailcap-parse-mimetypes):
6550 * mm-util.el (mm-decompress-buffer) 6579 * mm-util.el (mm-decompress-buffer):
6551 * nnir.el (nnir-run-find-grep) 6580 * nnir.el (nnir-run-find-grep):
6552 * pop3.el (pop3-list): Use 3rd arg of split-string. 6581 * pop3.el (pop3-list): Use 3rd arg of split-string.
6553 6582
65542010-09-21 Lars Magne Ingebrigtsen <larsi@gnus.org> 65832010-09-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -7123,7 +7152,7 @@
7123 7152
7124 * gnus-start.el (gnus-activate-group): Take an optional parameter to 7153 * gnus-start.el (gnus-activate-group): Take an optional parameter to
7125 say that you don't want to call gnus-request-group with don-check, but 7154 say that you don't want to call gnus-request-group with don-check, but
7126 do check the reponse. This is for virtual groups only. 7155 do check the response. This is for virtual groups only.
7127 (gnus-get-unread-articles): Count the archive groups as secondary, so 7156 (gnus-get-unread-articles): Count the archive groups as secondary, so
7128 that they're activated the same way as before. 7157 that they're activated the same way as before.
7129 7158
@@ -7414,7 +7443,7 @@
74142010-09-01 Katsumi Yamaoka <yamaoka@jpl.org> 74432010-09-01 Katsumi Yamaoka <yamaoka@jpl.org>
7415 7444
7416 * gnus-html.el (gnus-html-cache-directory, gnus-html-cache-size) 7445 * gnus-html.el (gnus-html-cache-directory, gnus-html-cache-size)
7417 (gnus-html-frame-width, gnus-blocked-images) 7446 (gnus-html-frame-width, gnus-blocked-images):
7418 * message.el (message-prune-recipient-rules): Add custom version. 7447 * message.el (message-prune-recipient-rules): Add custom version.
7419 * gnus-sum.el (gnus-auto-expirable-marks): Bump custom version. 7448 * gnus-sum.el (gnus-auto-expirable-marks): Bump custom version.
7420 7449
@@ -7464,11 +7493,11 @@
7464 * gnus-ems.el: Provide compatibility functions for 7493 * gnus-ems.el: Provide compatibility functions for
7465 gnus-set-process-plist. 7494 gnus-set-process-plist.
7466 7495
7467 * gnus-sum.el (gnus-summary-stop-at-end-of-message) 7496 * gnus-sum.el (gnus-summary-stop-at-end-of-message):
7468 * gnus.el (gnus-valid-select-methods) 7497 * gnus.el (gnus-valid-select-methods):
7469 * message.el (message-send-mail-partially-limit) 7498 * message.el (message-send-mail-partially-limit):
7470 * mm-decode.el (mm-text-html-renderer) 7499 * mm-decode.el (mm-text-html-renderer):
7471 * mml.el (mml-insert-mime-headers-always) 7500 * mml.el (mml-insert-mime-headers-always):
7472 * smiley.el (smiley-regexp-alist): Bump custom version. 7501 * smiley.el (smiley-regexp-alist): Bump custom version.
7473 7502
74742010-08-31 Lars Magne Ingebrigtsen <larsi@gnus.org> 75032010-08-31 Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -7800,7 +7829,7 @@
7800 7829
78012010-05-13 Katsumi Yamaoka <yamaoka@jpl.org> 78302010-05-13 Katsumi Yamaoka <yamaoka@jpl.org>
7802 7831
7803 * mml1991.el (mml1991-mailcrypt-encrypt, mml1991-gpg-encrypt) 7832 * mml1991.el (mml1991-mailcrypt-encrypt, mml1991-gpg-encrypt):
7804 * mml2015.el (mml2015-gpg-encrypt): Disable multibyte in buffers 7833 * mml2015.el (mml2015-gpg-encrypt): Disable multibyte in buffers
7805 generated within the mm-with-unibyte-current-buffer macro. 7834 generated within the mm-with-unibyte-current-buffer macro.
7806 7835
@@ -7875,11 +7904,11 @@
7875 7904
78762010-05-07 Katsumi Yamaoka <yamaoka@jpl.org> 79052010-05-07 Katsumi Yamaoka <yamaoka@jpl.org>
7877 7906
7878 * nnweb.el (nnweb-gmane-search) 7907 * nnweb.el (nnweb-gmane-search):
7879 * yenc.el (yenc-decode-region): Don't run set-buffer-multibyte for 7908 * yenc.el (yenc-decode-region): Don't run set-buffer-multibyte for
7880 XEmacs. 7909 XEmacs.
7881 7910
7882 * gnus-art.el (gnus-article-browse-html-parts) 7911 * gnus-art.el (gnus-article-browse-html-parts):
7883 * gnus-group.el (gnus-read-ephemeral-gmane-group) 7912 * gnus-group.el (gnus-read-ephemeral-gmane-group)
7884 (gnus-read-ephemeral-bug-grou): Use mm-make-temp-file instead of 7913 (gnus-read-ephemeral-bug-grou): Use mm-make-temp-file instead of
7885 make-temp-file. 7914 make-temp-file.
@@ -10587,10 +10616,10 @@
10587 10616
105882007-12-05 Katsumi Yamaoka <yamaoka@jpl.org> 106172007-12-05 Katsumi Yamaoka <yamaoka@jpl.org>
10589 10618
10590 * gnus-art.el (gnus-use-idna) 10619 * gnus-art.el (gnus-use-idna):
10591 * gnus-start.el (gnus-site-init-file) 10620 * gnus-start.el (gnus-site-init-file):
10592 * message.el (message-use-idna) 10621 * message.el (message-use-idna):
10593 * mm-uu.el (mm-uu-hide-markers) 10622 * mm-uu.el (mm-uu-hide-markers):
10594 * smiley.el (smiley-style): Revert changes that suppress warnings. 10623 * smiley.el (smiley-style): Revert changes that suppress warnings.
10595 10624
105962007-12-05 Katsumi Yamaoka <yamaoka@jpl.org> 106252007-12-05 Katsumi Yamaoka <yamaoka@jpl.org>
@@ -11892,13 +11921,13 @@
118922007-05-25 Katsumi Yamaoka <yamaoka@jpl.org> 119212007-05-25 Katsumi Yamaoka <yamaoka@jpl.org>
11893 11922
11894 * gnus-art.el (gnus-header-from, gnus-header-subject, gnus-header-name) 11923 * gnus-art.el (gnus-header-from, gnus-header-subject, gnus-header-name)
11895 (gnus-header-content) 11924 (gnus-header-content):
11896 * gnus-cite.el (gnus-cite-10) 11925 * gnus-cite.el (gnus-cite-10):
11897 * gnus-srvr.el (gnus-server-closed) 11926 * gnus-srvr.el (gnus-server-closed):
11898 * gnus.el (gnus-group-mail-1, gnus-group-mail-1-empty) 11927 * gnus.el (gnus-group-mail-1, gnus-group-mail-1-empty)
11899 (gnus-group-mail-2, gnus-group-mail-2-empty, gnus-group-mail-3) 11928 (gnus-group-mail-2, gnus-group-mail-2-empty, gnus-group-mail-3)
11900 (gnus-group-mail-3-empty, gnus-group-mail-low) 11929 (gnus-group-mail-3-empty, gnus-group-mail-low)
11901 (gnus-group-mail-low-empty, gnus-splash) 11930 (gnus-group-mail-low-empty, gnus-splash):
11902 * message.el (message-header-to, message-header-cc) 11931 * message.el (message-header-to, message-header-cc)
11903 (message-header-subject, message-header-other, message-header-name) 11932 (message-header-subject, message-header-other, message-header-name)
11904 (message-header-xheader, message-separator, message-cited-text) 11933 (message-header-xheader, message-separator, message-cited-text)
@@ -21315,7 +21344,7 @@
21315 (gnus-agent-cat-groups): Use eval-and-compile, not 21344 (gnus-agent-cat-groups): Use eval-and-compile, not
21316 eval-when-compile, to define gnus-agent-set-cat-groups as the setf 21345 eval-when-compile, to define gnus-agent-set-cat-groups as the setf
21317 method of gnus-agent-cat-groups even when the buffer has been 21346 method of gnus-agent-cat-groups even when the buffer has been
21318 evaled. 21347 evalled.
21319 (gnus-agent-save-active, gnus-agent-save-active-1): Merge to 21348 (gnus-agent-save-active, gnus-agent-save-active-1): Merge to
21320 delete gnus-agent-save-active-1. 21349 delete gnus-agent-save-active-1.
21321 (gnus-agent-save-groups): Delete. Identical to 21350 (gnus-agent-save-groups): Delete. Identical to
@@ -21831,7 +21860,7 @@
21831 21860
218322004-01-06 Steve Youngs <sryoungs@bigpond.net.au> 218612004-01-06 Steve Youngs <sryoungs@bigpond.net.au>
21833 21862
21834 * gnus-ems.el (gnus-mode-line-modified): Don't conditionalise on 21863 * gnus-ems.el (gnus-mode-line-modified): Don't conditionalize on
21835 XEmacs version. 21864 XEmacs version.
21836 21865
21837 * dns.el (dns-make-network-process): Use `open-network-stream' 21866 * dns.el (dns-make-network-process): Use `open-network-stream'
diff --git a/lisp/gnus/ChangeLog.2 b/lisp/gnus/ChangeLog.2
index 6b11a956a99..64b15ce31b3 100644
--- a/lisp/gnus/ChangeLog.2
+++ b/lisp/gnus/ChangeLog.2
@@ -5094,7 +5094,7 @@
50942003-02-02 Katsumi Yamaoka <yamaoka@jpl.org> 50942003-02-02 Katsumi Yamaoka <yamaoka@jpl.org>
5095 5095
5096 * nnheader.el (nnheader-directory-separator-character): Change the 5096 * nnheader.el (nnheader-directory-separator-character): Change the
5097 way to compute the dafault value. 5097 way to compute the default value.
5098 5098
50992003-02-02 Jesper Harder <harder@ifa.au.dk> 50992003-02-02 Jesper Harder <harder@ifa.au.dk>
5100 5100
@@ -8442,7 +8442,7 @@
8442 8442
84432002-07-21 Nevin Kapur <nevin@jhu.edu> 84432002-07-21 Nevin Kapur <nevin@jhu.edu>
8444 8444
8445 * nnmail.el (nnmail-fancy-expiry-target): Treat nonexisting 8445 * nnmail.el (nnmail-fancy-expiry-target): Treat nonexistent
8446 headers as empty headers. 8446 headers as empty headers.
8447 8447
84482002-07-21 Jochen Hein <jochen@jochen.org> 84482002-07-21 Jochen Hein <jochen@jochen.org>
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 555c715bc2f..ea0710bf026 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -669,7 +669,7 @@ non-nil.
669If the match is a string, it is used as a regexp match on the 669If the match is a string, it is used as a regexp match on the
670article. If the match is a symbol, that symbol will be funcalled 670article. If the match is a symbol, that symbol will be funcalled
671from the buffer of the article to be saved with the newsgroup as the 671from the buffer of the article to be saved with the newsgroup as the
672parameter. If it is a list, it will be evaled in the same buffer. 672parameter. If it is a list, it will be evalled in the same buffer.
673 673
674If this form or function returns a string, this string will be used as a 674If this form or function returns a string, this string will be used as a
675possible file name; and if it returns a non-nil list, that list will be 675possible file name; and if it returns a non-nil list, that list will be
diff --git a/lisp/gnus/gnus-fun.el b/lisp/gnus/gnus-fun.el
index 08ec3c4ffb0..44cb1583ec9 100644
--- a/lisp/gnus/gnus-fun.el
+++ b/lisp/gnus/gnus-fun.el
@@ -274,10 +274,10 @@ colors of the displayed X-Faces."
274 result)) 274 result))
275 275
276(defun gnus-fun-ppm-change-string () 276(defun gnus-fun-ppm-change-string ()
277 (let* ((possibilites '("%02x0000" "00%02x00" "0000%02x" 277 (let* ((possibilities '("%02x0000" "00%02x00" "0000%02x"
278 "%02x%02x00" "00%02x%02x" "%02x00%02x")) 278 "%02x%02x00" "00%02x%02x" "%02x00%02x"))
279 (format (concat "'#%02x%02x%02x' '#" 279 (format (concat "'#%02x%02x%02x' '#"
280 (nth (random 6) possibilites) 280 (nth (random 6) possibilities)
281 "'")) 281 "'"))
282 (values nil)) 282 (values nil))
283 (dotimes (i 255) 283 (dotimes (i 255)
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index 694b4d7e8b4..9730b69164e 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -992,7 +992,7 @@ Setter function for custom variables."
992 'gnus-group-tool-bar-retro) 992 'gnus-group-tool-bar-retro)
993 "Specifies the Gnus group tool bar. 993 "Specifies the Gnus group tool bar.
994 994
995It can be either a list or a symbol refering to a list. See 995It can be either a list or a symbol referring to a list. See
996`gmm-tool-bar-from-list' for the format of the list. The 996`gmm-tool-bar-from-list' for the format of the list. The
997default key map is `gnus-group-mode-map'. 997default key map is `gnus-group-mode-map'.
998 998
diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el
index e06d475ed6c..6ff1023383b 100644
--- a/lisp/gnus/gnus-msg.el
+++ b/lisp/gnus/gnus-msg.el
@@ -1588,7 +1588,7 @@ this is a reply."
1588 ;; BUG: We really need to get the charset for 1588 ;; BUG: We really need to get the charset for
1589 ;; each name in the Newsgroups and Followup-To 1589 ;; each name in the Newsgroups and Followup-To
1590 ;; lines to allow crossposting between group 1590 ;; lines to allow crossposting between group
1591 ;; namess with incompatible character sets. 1591 ;; names with incompatible character sets.
1592 ;; -- Per Abrahamsen <abraham@dina.kvl.dk> 2001-10-08. 1592 ;; -- Per Abrahamsen <abraham@dina.kvl.dk> 2001-10-08.
1593 (group-field-charset 1593 (group-field-charset
1594 (gnus-group-name-charset 1594 (gnus-group-name-charset
@@ -1784,7 +1784,7 @@ this is a reply."
1784 (and header 1784 (and header
1785 (string-match (nth 2 match) header))))))) 1785 (string-match (nth 2 match) header)))))))
1786 (t 1786 (t
1787 ;; This is a form to be evaled. 1787 ;; This is a form to be evalled.
1788 (eval match))))) 1788 (eval match)))))
1789 ;; We have a match, so we set the variables. 1789 ;; We have a match, so we set the variables.
1790 (dolist (attribute style) 1790 (dolist (attribute style)
diff --git a/lisp/gnus/gnus-spec.el b/lisp/gnus/gnus-spec.el
index 2345c4fc141..4c5715c67f9 100644
--- a/lisp/gnus/gnus-spec.el
+++ b/lisp/gnus/gnus-spec.el
@@ -52,7 +52,7 @@ text properties. This is only needed on XEmacs, as Emacs does this anyway."
52(defvar gnus-group-indentation "") 52(defvar gnus-group-indentation "")
53 53
54;; Format specs. The chunks below are the machine-generated forms 54;; Format specs. The chunks below are the machine-generated forms
55;; that are to be evaled as the result of the default format strings. 55;; that are to be evalled as the result of the default format strings.
56;; We write them in here to get them byte-compiled. That way the 56;; We write them in here to get them byte-compiled. That way the
57;; default actions will be quite fast, while still retaining the full 57;; default actions will be quite fast, while still retaining the full
58;; flexibility of the user-defined format specs. 58;; flexibility of the user-defined format specs.
@@ -690,7 +690,7 @@ are supported for %s."
690 (not (and (featurep 'xemacs) 690 (not (and (featurep 'xemacs)
691 gnus-use-correct-string-widths))) 691 gnus-use-correct-string-widths)))
692 (insert (number-to-string pad-width))) 692 (insert (number-to-string pad-width)))
693 ;; Create the form to be evaled. 693 ;; Create the form to be evalled.
694 (if (or max-width cut-width ignore-value 694 (if (or max-width cut-width ignore-value
695 (and (featurep 'xemacs) 695 (and (featurep 'xemacs)
696 gnus-use-correct-string-widths)) 696 gnus-use-correct-string-widths))
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index b3f85cf9366..d8db300efbd 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -2835,7 +2835,7 @@ Setter function for custom variables."
2835 'gnus-summary-tool-bar-retro) 2835 'gnus-summary-tool-bar-retro)
2836 "Specifies the Gnus summary tool bar. 2836 "Specifies the Gnus summary tool bar.
2837 2837
2838It can be either a list or a symbol refering to a list. See 2838It can be either a list or a symbol referring to a list. See
2839`gmm-tool-bar-from-list' for the format of the list. The 2839`gmm-tool-bar-from-list' for the format of the list. The
2840default key map is `gnus-summary-mode-map'. 2840default key map is `gnus-summary-mode-map'.
2841 2841
@@ -2969,7 +2969,7 @@ When FORCE, rebuild the tool bar."
2969 'gnus-summary-mode-map))) 2969 'gnus-summary-mode-map)))
2970 (when map 2970 (when map
2971 ;; Need to set `gnus-summary-tool-bar-map' because `gnus-article-mode' 2971 ;; Need to set `gnus-summary-tool-bar-map' because `gnus-article-mode'
2972 ;; uses it's value. 2972 ;; uses its value.
2973 (setq gnus-summary-tool-bar-map map)))) 2973 (setq gnus-summary-tool-bar-map map))))
2974 (set (make-local-variable 'tool-bar-map) gnus-summary-tool-bar-map)) 2974 (set (make-local-variable 'tool-bar-map) gnus-summary-tool-bar-map))
2975 2975
@@ -7087,7 +7087,7 @@ With ARG, turn line truncation on if ARG is positive."
7087(defun gnus-summary-find-for-reselect () 7087(defun gnus-summary-find-for-reselect ()
7088 "Return the number of an article to stay on across a reselect. 7088 "Return the number of an article to stay on across a reselect.
7089The current article is considered, then following articles, then previous 7089The current article is considered, then following articles, then previous
7090articles. An article is sought which is not cancelled and isn't a temporary 7090articles. An article is sought which is not canceled and isn't a temporary
7091insertion from another group. If there's no such then return a dummy 0." 7091insertion from another group. If there's no such then return a dummy 0."
7092 (let (found) 7092 (let (found)
7093 (dolist (rev '(nil t)) 7093 (dolist (rev '(nil t))
@@ -9611,9 +9611,12 @@ C-u g', show the raw article."
9611 (when (gnus-summary-goto-subject (cdr gnus-article-current) nil t) 9611 (when (gnus-summary-goto-subject (cdr gnus-article-current) nil t)
9612 (gnus-summary-update-secondary-mark (cdr gnus-article-current)))))) 9612 (gnus-summary-update-secondary-mark (cdr gnus-article-current))))))
9613 ((not arg) 9613 ((not arg)
9614 (require 'shr) 9614 ;; Select the article the normal way.
9615 (let ((shr-ignore-cache t)) 9615 (if (eq mm-text-html-renderer 'shr)
9616 ;; Select the article the normal way. 9616 (progn
9617 (require 'shr)
9618 (let ((shr-ignore-cache t))
9619 (gnus-summary-select-article nil 'force)))
9617 (gnus-summary-select-article nil 'force))) 9620 (gnus-summary-select-article nil 'force)))
9618 ((equal arg '(16)) 9621 ((equal arg '(16))
9619 ;; C-u C-u g 9622 ;; C-u C-u g
diff --git a/lisp/gnus/gnus-win.el b/lisp/gnus/gnus-win.el
index ecd5b3b525b..f0009830b44 100644
--- a/lisp/gnus/gnus-win.el
+++ b/lisp/gnus/gnus-win.el
@@ -242,7 +242,7 @@ See the Gnus manual for an explanation of the syntax used.")
242 (let* ((current-window (or (get-buffer-window (current-buffer)) (selected-window))) 242 (let* ((current-window (or (get-buffer-window (current-buffer)) (selected-window)))
243 (window (or window current-window))) 243 (window (or window current-window)))
244 (select-window window) 244 (select-window window)
245 ;; The SPLIT might be something that is to be evaled to 245 ;; The SPLIT might be something that is to be evalled to
246 ;; return a new SPLIT. 246 ;; return a new SPLIT.
247 (while (and (not (assq (car split) gnus-window-to-buffer)) 247 (while (and (not (assq (car split) gnus-window-to-buffer))
248 (symbolp (car split)) (fboundp (car split))) 248 (symbolp (car split)) (fboundp (car split)))
@@ -447,7 +447,7 @@ should have point."
447 (when (consp (car split)) 447 (when (consp (car split))
448 (push 1.0 split) 448 (push 1.0 split)
449 (push 'vertical split)) 449 (push 'vertical split))
450 ;; The SPLIT might be something that is to be evaled to 450 ;; The SPLIT might be something that is to be evalled to
451 ;; return a new SPLIT. 451 ;; return a new SPLIT.
452 (while (and (not (assq (car split) gnus-window-to-buffer)) 452 (while (and (not (assq (car split) gnus-window-to-buffer))
453 (symbolp (car split)) (fboundp (car split))) 453 (symbolp (car split)) (fboundp (car split)))
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el
index 5f385ec1054..b1f0f60668e 100644
--- a/lisp/gnus/gnus.el
+++ b/lisp/gnus/gnus.el
@@ -700,7 +700,7 @@ be set in `.emacs' instead."
700(defface gnus-summary-cancelled 700(defface gnus-summary-cancelled
701 '((((class color)) 701 '((((class color))
702 (:foreground "yellow" :background "black"))) 702 (:foreground "yellow" :background "black")))
703 "Face used for cancelled articles." 703 "Face used for canceled articles."
704 :group 'gnus-summary) 704 :group 'gnus-summary)
705;; backward-compatibility alias 705;; backward-compatibility alias
706(put 'gnus-summary-cancelled-face 'face-alias 'gnus-summary-cancelled) 706(put 'gnus-summary-cancelled-face 'face-alias 'gnus-summary-cancelled)
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index ee9d4992158..5198618c2c3 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -906,7 +906,7 @@ The function `message-setup' runs this hook."
906 :type 'hook) 906 :type 'hook)
907 907
908(defcustom message-cancel-hook nil 908(defcustom message-cancel-hook nil
909 "Hook run when cancelling articles." 909 "Hook run when canceling articles."
910 :group 'message-various 910 :group 'message-various
911 :link '(custom-manual "(message)Various Message Variables") 911 :link '(custom-manual "(message)Various Message Variables")
912 :type 'hook) 912 :type 'hook)
@@ -1893,14 +1893,14 @@ You must have the \"hashcash\" binary installed, see `hashcash-path'."
1893 (concat "[a-z0-9][-.a-z0-9]+\\." ;; [hostname.subdomain.]domain. 1893 (concat "[a-z0-9][-.a-z0-9]+\\." ;; [hostname.subdomain.]domain.
1894 ;; valid TLDs: 1894 ;; valid TLDs:
1895 "\\([a-z][a-z]\\|" ;; two letter country TDLs 1895 "\\([a-z][a-z]\\|" ;; two letter country TDLs
1896 "aero\\|arpa\\|bitnet\\|biz\\|bofh\\|" 1896 "aero\\|arpa\\|asia\\|bitnet\\|biz\\|bofh\\|"
1897 "cat\\|com\\|coop\\|edu\\|gov\\|" 1897 "cat\\|com\\|coop\\|edu\\|gov\\|"
1898 "info\\|int\\|jobs\\|" 1898 "info\\|int\\|jobs\\|"
1899 "mil\\|mobi\\|museum\\|name\\|net\\|" 1899 "mil\\|mobi\\|museum\\|name\\|net\\|"
1900 "org\\|pro\\|travel\\|uucp\\)") 1900 "org\\|pro\\|tel\\|travel\\|uucp\\)")
1901 ;; http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains 1901 ;; http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains
1902 ;; http://en.wikipedia.org/wiki/GTLD 1902 ;; http://en.wikipedia.org/wiki/GTLD
1903 ;; `in the process of being approved': .asia .post .tel .sex 1903 ;; `approved, but not yet in operation': .xxx
1904 ;; "dead" nato bitnet uucp 1904 ;; "dead" nato bitnet uucp
1905 "Regular expression that matches a valid FQDN." 1905 "Regular expression that matches a valid FQDN."
1906 ;; see also: gnus-button-valid-fqdn-regexp 1906 ;; see also: gnus-button-valid-fqdn-regexp
@@ -4409,7 +4409,7 @@ This function could be useful in `message-setup-hook'."
4409 ;; A simple function. 4409 ;; A simple function.
4410 ((functionp action) 4410 ((functionp action)
4411 (funcall action)) 4411 (funcall action))
4412 ;; Something to be evaled. 4412 ;; Something to be evalled.
4413 (t 4413 (t
4414 (eval action)))))) 4414 (eval action))))))
4415 4415
@@ -4840,7 +4840,7 @@ Otherwise, generate and save a value for `canlock-password' first."
4840 (message-fetch-field "Followup-To"))) 4840 (message-fetch-field "Followup-To")))
4841 ;; BUG: We really need to get the charset for each name in the 4841 ;; BUG: We really need to get the charset for each name in the
4842 ;; Newsgroups and Followup-To lines to allow crossposting 4842 ;; Newsgroups and Followup-To lines to allow crossposting
4843 ;; between group namess with incompatible character sets. 4843 ;; between group names with incompatible character sets.
4844 ;; -- Per Abrahamsen <abraham@dina.kvl.dk> 2001-10-08. 4844 ;; -- Per Abrahamsen <abraham@dina.kvl.dk> 2001-10-08.
4845 (group-field-charset 4845 (group-field-charset
4846 (gnus-group-name-charset method newsgroups-field)) 4846 (gnus-group-name-charset method newsgroups-field))
@@ -6327,7 +6327,6 @@ between beginning of field and beginning of line."
6327 6327
6328(defun message-pop-to-buffer (name &optional switch-function) 6328(defun message-pop-to-buffer (name &optional switch-function)
6329 "Pop to buffer NAME, and warn if it already exists and is modified." 6329 "Pop to buffer NAME, and warn if it already exists and is modified."
6330 (unless switch-function (setq switch-function #'pop-to-buffer))
6331 (let ((buffer (get-buffer name))) 6330 (let ((buffer (get-buffer name)))
6332 (if (and buffer 6331 (if (and buffer
6333 (buffer-name buffer)) 6332 (buffer-name buffer))
@@ -6337,7 +6336,7 @@ between beginning of field and beginning of line."
6337 (progn 6336 (progn
6338 (gnus-select-frame-set-input-focus (window-frame window)) 6337 (gnus-select-frame-set-input-focus (window-frame window))
6339 (select-window window)) 6338 (select-window window))
6340 (funcall switch-function buffer) 6339 (funcall (or switch-function #'pop-to-buffer) buffer)
6341 (set-buffer buffer)) 6340 (set-buffer buffer))
6342 (when (and (buffer-modified-p) 6341 (when (and (buffer-modified-p)
6343 (not (prog1 6342 (not (prog1
@@ -6345,7 +6344,11 @@ between beginning of field and beginning of line."
6345 "Message already being composed; erase? ") 6344 "Message already being composed; erase? ")
6346 (message nil)))) 6345 (message nil))))
6347 (error "Message being composed"))) 6346 (error "Message being composed")))
6348 (funcall switch-function name) 6347 (funcall (or switch-function
6348 (if (fboundp #'pop-to-buffer-same-window)
6349 #'pop-to-buffer-same-window
6350 #'pop-to-buffer))
6351 name)
6349 (set-buffer name)) 6352 (set-buffer name))
6350 (erase-buffer) 6353 (erase-buffer)
6351 (message-mode))) 6354 (message-mode)))
@@ -7735,7 +7738,7 @@ Setter function for custom variables."
7735 'message-tool-bar-retro) 7738 'message-tool-bar-retro)
7736 "Specifies the message mode tool bar. 7739 "Specifies the message mode tool bar.
7737 7740
7738It can be either a list or a symbol refering to a list. See 7741It can be either a list or a symbol referring to a list. See
7739`gmm-tool-bar-from-list' for the format of the list. The 7742`gmm-tool-bar-from-list' for the format of the list. The
7740default key map is `message-mode-map'. 7743default key map is `message-mode-map'.
7741 7744
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index 44e2af5b904..7ea0902bdb5 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -275,7 +275,7 @@ before the external MIME handler is invoked."
275 (ignore-errors 275 (ignore-errors
276 (if (fboundp 'create-image) 276 (if (fboundp 'create-image)
277 (create-image (buffer-string) 'imagemagick 'data-p) 277 (create-image (buffer-string) 'imagemagick 'data-p)
278 (mm-create-image-xemacs type))))) 278 (mm-create-image-xemacs (mm-handle-media-subtype handle))))))
279 (when image 279 (when image
280 (setcar (cdr handle) (list "image/imagemagick")) 280 (setcar (cdr handle) (list "image/imagemagick"))
281 (mm-image-fit-p handle))))))) 281 (mm-image-fit-p handle)))))))
diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el
index 854ca3497da..f14b47e86e4 100644
--- a/lisp/gnus/mm-view.el
+++ b/lisp/gnus/mm-view.el
@@ -602,6 +602,7 @@ If MODE is not set, try to find mode automatically."
602 ;; I find font-lock a bit too verbose. 602 ;; I find font-lock a bit too verbose.
603 (let ((font-lock-verbose nil)) 603 (let ((font-lock-verbose nil))
604 ;; Disable support modes, e.g., jit-lock, lazy-lock, etc. 604 ;; Disable support modes, e.g., jit-lock, lazy-lock, etc.
605 ;; Note: XEmacs people use `font-lock-mode-hook' to run those modes.
605 (set (make-local-variable 'font-lock-mode-hook) nil) 606 (set (make-local-variable 'font-lock-mode-hook) nil)
606 (set (make-local-variable 'font-lock-support-mode) nil) 607 (set (make-local-variable 'font-lock-support-mode) nil)
607 (setq buffer-file-name (mm-handle-filename handle)) 608 (setq buffer-file-name (mm-handle-filename handle))
diff --git a/lisp/gnus/nndiary.el b/lisp/gnus/nndiary.el
index 043356ca841..29f0695c74e 100644
--- a/lisp/gnus/nndiary.el
+++ b/lisp/gnus/nndiary.el
@@ -353,7 +353,7 @@ all. This may very well take some time.")
353 ;; List of NNDiary headers that specify the time spec. Each header name is 353 ;; List of NNDiary headers that specify the time spec. Each header name is
354 ;; followed by either two integers (specifying a range of possible values 354 ;; followed by either two integers (specifying a range of possible values
355 ;; for this header) or one list (specifying all the possible values for this 355 ;; for this header) or one list (specifying all the possible values for this
356 ;; header). In the latter case, the list does NOT include the unspecifyed 356 ;; header). In the latter case, the list does NOT include the unspecified
357 ;; spec (*). 357 ;; spec (*).
358 ;; For time zone values, we have symbolic time zone names associated with 358 ;; For time zone values, we have symbolic time zone names associated with
359 ;; the (relative) number of seconds ahead GMT. 359 ;; the (relative) number of seconds ahead GMT.
@@ -1161,11 +1161,11 @@ all. This may very well take some time.")
1161 1161
1162(defun nndiary-parse-schedule-value (str min-or-values max) 1162(defun nndiary-parse-schedule-value (str min-or-values max)
1163 ;; Parse the schedule string STR, or signal an error. 1163 ;; Parse the schedule string STR, or signal an error.
1164 ;; Signals are caught by `nndary-schedule'. 1164 ;; Signals are caught by `nndiary-schedule'.
1165 (if (string-match "[ \t]*\\*[ \t]*" str) 1165 (if (string-match "[ \t]*\\*[ \t]*" str)
1166 ;; unspecifyed 1166 ;; unspecified
1167 nil 1167 nil
1168 ;; specifyed 1168 ;; specified
1169 (if (listp min-or-values) 1169 (if (listp min-or-values)
1170 ;; min-or-values is values 1170 ;; min-or-values is values
1171 ;; #### NOTE: this is actually only a hack for time zones. 1171 ;; #### NOTE: this is actually only a hack for time zones.
@@ -1204,7 +1204,7 @@ all. This may very well take some time.")
1204 ;; - Returns nil if `*' 1204 ;; - Returns nil if `*'
1205 ;; - Otherwise returns a list of integers and/or ranges (BEG . END) 1205 ;; - Otherwise returns a list of integers and/or ranges (BEG . END)
1206 ;; The exception is the Timze-Zone value which is always of the form (STR). 1206 ;; The exception is the Timze-Zone value which is always of the form (STR).
1207 ;; Signals are caught by `nndary-schedule'. 1207 ;; Signals are caught by `nndiary-schedule'.
1208 (let ((header (format "^X-Diary-%s: \\(.*\\)$" head))) 1208 (let ((header (format "^X-Diary-%s: \\(.*\\)$" head)))
1209 (goto-char (point-min)) 1209 (goto-char (point-min))
1210 (if (not (re-search-forward header nil t)) 1210 (if (not (re-search-forward header nil t))
diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el
index 78d2478b4fb..3d0fc78dca7 100644
--- a/lisp/gnus/nnir.el
+++ b/lisp/gnus/nnir.el
@@ -1273,8 +1273,8 @@ Tested with swish-e-2.0.1 on Windows NT 4.0."
1273 (message "Doing hyrex-search query \"%s\"...done" qstring) 1273 (message "Doing hyrex-search query \"%s\"...done" qstring)
1274 (sit-for 0) 1274 (sit-for 0)
1275 ;; nnir-search returns: 1275 ;; nnir-search returns:
1276 ;; for nnml/nnfolder: "filename mailid weigth" 1276 ;; for nnml/nnfolder: "filename mailid weight"
1277 ;; for nnimap: "group mailid weigth" 1277 ;; for nnimap: "group mailid weight"
1278 (goto-char (point-min)) 1278 (goto-char (point-min))
1279 (delete-non-matching-lines "^\\S + [0-9]+ [0-9]+$") 1279 (delete-non-matching-lines "^\\S + [0-9]+ [0-9]+$")
1280 ;; HyREX doesn't search directly in groups -- so filter out here. 1280 ;; HyREX doesn't search directly in groups -- so filter out here.
diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el
index 9816c208fab..f4b8ce66d16 100644
--- a/lisp/gnus/nntp.el
+++ b/lisp/gnus/nntp.el
@@ -665,7 +665,7 @@ command whose response triggered the error."
665 (process-buffer -process)))) 665 (process-buffer -process))))
666 ;; When I an able to identify the 666 ;; When I an able to identify the
667 ;; connection to the server AND I've 667 ;; connection to the server AND I've
668 ;; received NO reponse for 668 ;; received NO response for
669 ;; nntp-connection-timeout seconds. 669 ;; nntp-connection-timeout seconds.
670 (when (and -buffer (eq 0 (buffer-size -buffer))) 670 (when (and -buffer (eq 0 (buffer-size -buffer)))
671 ;; Close the connection. Take no 671 ;; Close the connection. Take no
diff --git a/lisp/gnus/plstore.el b/lisp/gnus/plstore.el
index 340c7255958..50208cc5b0b 100644
--- a/lisp/gnus/plstore.el
+++ b/lisp/gnus/plstore.el
@@ -420,7 +420,7 @@ SECRET-KEYS is a plist containing secret data."
420 (current-buffer))))) 420 (current-buffer)))))
421 (epa-select-keys 421 (epa-select-keys
422 context 422 context
423 "Select recipents for encryption. 423 "Select recipients for encryption.
424If no one is selected, symmetric encryption will be performed. " 424If no one is selected, symmetric encryption will be performed. "
425 recipients) 425 recipients)
426 (if plstore-encrypt-to 426 (if plstore-encrypt-to
diff --git a/lisp/gnus/rfc2231.el b/lisp/gnus/rfc2231.el
index 306b67cd7c1..9c30379ef6e 100644
--- a/lisp/gnus/rfc2231.el
+++ b/lisp/gnus/rfc2231.el
@@ -58,7 +58,7 @@ must never cause a Lisp error."
58 ;; The most likely cause of an error is unbalanced parentheses 58 ;; The most likely cause of an error is unbalanced parentheses
59 ;; or double-quotes. If all parentheses and double-quotes are 59 ;; or double-quotes. If all parentheses and double-quotes are
60 ;; quoted meaninglessly with backslashes, removing them might 60 ;; quoted meaninglessly with backslashes, removing them might
61 ;; make it parseable. Let's try... 61 ;; make it parsable. Let's try...
62 (error 62 (error
63 (let (mod) 63 (let (mod)
64 (when (and (string-match "\\\\\"" string) 64 (when (and (string-match "\\\\\"" string)
diff --git a/lisp/gs.el b/lisp/gs.el
index 2eba7af71ae..b86632f7637 100644
--- a/lisp/gs.el
+++ b/lisp/gs.el
@@ -96,7 +96,7 @@ FILE is the value to substitute for the place-holder `<file>'."
96(declare-function x-display-pixel-width "xfns.c" (&optional terminal)) 96(declare-function x-display-pixel-width "xfns.c" (&optional terminal))
97 97
98(defun gs-width-in-pt (frame pixel-width) 98(defun gs-width-in-pt (frame pixel-width)
99 "Return, on FRAME, pixel width PIXEL-WIDTH tranlated to pt." 99 "Return, on FRAME, pixel width PIXEL-WIDTH translated to pt."
100 (let ((mm (* (float pixel-width) 100 (let ((mm (* (float pixel-width)
101 (/ (float (x-display-mm-width frame)) 101 (/ (float (x-display-mm-width frame))
102 (float (x-display-pixel-width frame)))))) 102 (float (x-display-pixel-width frame))))))
@@ -106,7 +106,7 @@ FILE is the value to substitute for the place-holder `<file>'."
106(declare-function x-display-pixel-height "xfns.c" (&optional terminal)) 106(declare-function x-display-pixel-height "xfns.c" (&optional terminal))
107 107
108(defun gs-height-in-pt (frame pixel-height) 108(defun gs-height-in-pt (frame pixel-height)
109 "Return, on FRAME, pixel height PIXEL-HEIGHT tranlated to pt." 109 "Return, on FRAME, pixel height PIXEL-HEIGHT translated to pt."
110 (let ((mm (* (float pixel-height) 110 (let ((mm (* (float pixel-height)
111 (/ (float (x-display-mm-height frame)) 111 (/ (float (x-display-mm-height frame))
112 (float (x-display-pixel-height frame)))))) 112 (float (x-display-pixel-height frame))))))
diff --git a/lisp/hilit-chg.el b/lisp/hilit-chg.el
index 0dee4157d78..50e631a95c5 100644
--- a/lisp/hilit-chg.el
+++ b/lisp/hilit-chg.el
@@ -367,7 +367,7 @@ buffer with the contents of a file
367 367
368;;;###autoload 368;;;###autoload
369(define-minor-mode highlight-changes-visible-mode 369(define-minor-mode highlight-changes-visible-mode
370 "Toggle visiblility of highlighting due to Highlight Changes mode. 370 "Toggle visibility of highlighting due to Highlight Changes mode.
371With a prefix argument ARG, enable Highlight Changes Visible mode 371With a prefix argument ARG, enable Highlight Changes Visible mode
372if ARG is positive, and disable it otherwise. If called from 372if ARG is positive, and disable it otherwise. If called from
373Lisp, enable the mode if ARG is omitted or nil. 373Lisp, enable the mode if ARG is omitted or nil.
diff --git a/lisp/htmlfontify.el b/lisp/htmlfontify.el
index 126b616a644..b0fd37abd36 100644
--- a/lisp/htmlfontify.el
+++ b/lisp/htmlfontify.el
@@ -580,7 +580,7 @@ If a window system is unavailable, calls `hfy-fallback-colour-values'."
580 (color-values colour) 580 (color-values colour)
581 ;;(message "[%S]" window-system) 581 ;;(message "[%S]" window-system)
582 (x-color-values colour)) 582 (x-color-values colour))
583 ;; blarg - tty colours are no good - go fetch some X colours: 583 ;; blarg - tty colors are no good - go fetch some X colors:
584 (hfy-fallback-colour-values colour)))) 584 (hfy-fallback-colour-values colour))))
585 585
586(defvar hfy-cperl-mode-kludged-p nil) 586(defvar hfy-cperl-mode-kludged-p nil)
diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el
index 6c8db872c0b..a0fae8d8671 100644
--- a/lisp/ibuf-ext.el
+++ b/lisp/ibuf-ext.el
@@ -26,7 +26,7 @@
26;;; Commentary: 26;;; Commentary:
27 27
28;; These functions should be automatically loaded when called, but you 28;; These functions should be automatically loaded when called, but you
29;; can explicity (require 'ibuf-ext) in your ~/.emacs to have them 29;; can explicitly (require 'ibuf-ext) in your ~/.emacs to have them
30;; preloaded. 30;; preloaded.
31 31
32;;; Code: 32;;; Code:
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
index 3f3b0b7a843..cb511c4695e 100644
--- a/lisp/ibuffer.el
+++ b/lisp/ibuffer.el
@@ -426,7 +426,7 @@ directory, like `default-directory'."
426 '(menu-item "Save current filter groups permanently..." 426 '(menu-item "Save current filter groups permanently..."
427 ibuffer-save-filter-groups 427 ibuffer-save-filter-groups
428 :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups) 428 :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups)
429 :help "Use a mnemnonic name to store current filter groups")) 429 :help "Use a mnemonic name to store current filter groups"))
430 (define-key-after groups-map [switch-to-saved-filter-groups] 430 (define-key-after groups-map [switch-to-saved-filter-groups]
431 '(menu-item "Restore permanently saved filters..." 431 '(menu-item "Restore permanently saved filters..."
432 ibuffer-switch-to-saved-filter-groups 432 ibuffer-switch-to-saved-filter-groups
@@ -676,7 +676,7 @@ directory, like `default-directory'."
676 (define-key-after map [menu-bar view filter save-filters] 676 (define-key-after map [menu-bar view filter save-filters]
677 '(menu-item "Save current filters permanently..." ibuffer-save-filters 677 '(menu-item "Save current filters permanently..." ibuffer-save-filters
678 :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers) 678 :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers)
679 :help "Use a mnemnonic name to store current filter stack")) 679 :help "Use a mnemonic name to store current filter stack"))
680 (define-key-after map [menu-bar view filter switch-to-saved-filters] 680 (define-key-after map [menu-bar view filter switch-to-saved-filters]
681 '(menu-item "Restore permanently saved filters..." 681 '(menu-item "Restore permanently saved filters..."
682 ibuffer-switch-to-saved-filters 682 ibuffer-switch-to-saved-filters
@@ -2648,7 +2648,7 @@ will be inserted before the group at point."
2648;;;;;; ibuffer-backward-filter-group ibuffer-forward-filter-group 2648;;;;;; ibuffer-backward-filter-group ibuffer-forward-filter-group
2649;;;;;; ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group 2649;;;;;; ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group
2650;;;;;; ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode 2650;;;;;; ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode
2651;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" "25e69a1e030791b3a3e7d91d4377173a") 2651;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" "897e64e4465af94b89e21fa84ae61290")
2652;;; Generated autoloads from ibuf-ext.el 2652;;; Generated autoloads from ibuf-ext.el
2653 2653
2654(autoload 'ibuffer-auto-mode "ibuf-ext" "\ 2654(autoload 'ibuffer-auto-mode "ibuf-ext" "\
diff --git a/lisp/ido.el b/lisp/ido.el
index f2dcba614a9..345438d3cc6 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -308,7 +308,7 @@
308;; ifindf package back into iswitchb. 308;; ifindf package back into iswitchb.
309;; 309;;
310;; This is basically what ido (interactively do) is all about; but I 310;; This is basically what ido (interactively do) is all about; but I
311;; found it ackward to merge my changes into the "iswitchb-" namespace, 311;; found it awkward to merge my changes into the "iswitchb-" namespace,
312;; so I invented a common "ido-" namespace for the merged packages. 312;; so I invented a common "ido-" namespace for the merged packages.
313;; 313;;
314;; This version is based on ido.el version 1.57 released on 314;; This version is based on ido.el version 1.57 released on
diff --git a/lisp/international/ccl.el b/lisp/international/ccl.el
index 9614479072a..d16a272c9dc 100644
--- a/lisp/international/ccl.el
+++ b/lisp/international/ccl.el
@@ -1433,7 +1433,7 @@ REG := r0 | r1 | r2 | r3 | r4 | r5 | r6 | r7
1433ARG := REG | integer 1433ARG := REG | integer
1434 1434
1435OPERATOR := 1435OPERATOR :=
1436 ;; Normal arithmethic operators (same meaning as C code). 1436 ;; Normal arithmetic operators (same meaning as C code).
1437 + | - | * | / | % 1437 + | - | * | / | %
1438 1438
1439 ;; Bitwise operators (same meaning as C code) 1439 ;; Bitwise operators (same meaning as C code)
@@ -1469,7 +1469,7 @@ OPERATOR :=
1469 | de-sjis 1469 | de-sjis
1470 1470
1471 ;; If ARG_0 and ARG_1 are the first and second code point of 1471 ;; If ARG_0 and ARG_1 are the first and second code point of
1472 ;; JISX0208 character CHAR, and SJIS is the correponding 1472 ;; JISX0208 character CHAR, and SJIS is the corresponding
1473 ;; Shift-JIS code, 1473 ;; Shift-JIS code,
1474 ;; (REG = ARG_0 en-sjis ARG_1) means: 1474 ;; (REG = ARG_0 en-sjis ARG_1) means:
1475 ;; ((REG = HIGH) 1475 ;; ((REG = HIGH)
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
index 0a5d6ed954c..0d3f079866e 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -1031,7 +1031,7 @@ It is highly recommended to fix it before writing to a file."
1031and try again)? " coding-system auto-cs)) 1031and try again)? " coding-system auto-cs))
1032 (error "Save aborted")))) 1032 (error "Save aborted"))))
1033 (when (and tick (/= tick (buffer-chars-modified-tick))) 1033 (when (and tick (/= tick (buffer-chars-modified-tick)))
1034 (error "Cancelled because the buffer was modified")) 1034 (error "Canceled because the buffer was modified"))
1035 coding-system))) 1035 coding-system)))
1036 1036
1037(setq select-safe-coding-system-function 'select-safe-coding-system) 1037(setq select-safe-coding-system-function 'select-safe-coding-system)
diff --git a/lisp/international/mule-util.el b/lisp/international/mule-util.el
index ef09cdda2de..f0a5ebbee40 100644
--- a/lisp/international/mule-util.el
+++ b/lisp/international/mule-util.el
@@ -314,7 +314,7 @@ Optional 5th argument NIL-FOR-TOO-LONG non-nil means return nil
314(defmacro with-coding-priority (coding-systems &rest body) 314(defmacro with-coding-priority (coding-systems &rest body)
315 "Execute BODY like `progn' with CODING-SYSTEMS at the front of priority list. 315 "Execute BODY like `progn' with CODING-SYSTEMS at the front of priority list.
316CODING-SYSTEMS is a list of coding systems. See `set-coding-system-priority'. 316CODING-SYSTEMS is a list of coding systems. See `set-coding-system-priority'.
317This affects the implicit sorting of lists of coding sysems returned by 317This affects the implicit sorting of lists of coding systems returned by
318operations such as `find-coding-systems-region'." 318operations such as `find-coding-systems-region'."
319 (let ((current (make-symbol "current"))) 319 (let ((current (make-symbol "current")))
320 `(let ((,current (coding-system-priority-list))) 320 `(let ((,current (coding-system-priority-list)))
diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index d078d98a480..1beffa5218b 100644
--- a/lisp/international/mule.el
+++ b/lisp/international/mule.el
@@ -1785,7 +1785,7 @@ contents of the current buffer following point against
1785succeed, it checks to see if any function in `auto-coding-functions' 1785succeed, it checks to see if any function in `auto-coding-functions'
1786gives a match. 1786gives a match.
1787 1787
1788If a coding system is specifed, the return value is a cons 1788If a coding system is specified, the return value is a cons
1789\(CODING . SOURCE), where CODING is the specified coding system and 1789\(CODING . SOURCE), where CODING is the specified coding system and
1790SOURCE is a symbol `auto-coding-alist', `auto-coding-regexp-alist', 1790SOURCE is a symbol `auto-coding-alist', `auto-coding-regexp-alist',
1791`:coding', or `auto-coding-functions' indicating by what CODING is 1791`:coding', or `auto-coding-functions' indicating by what CODING is
diff --git a/lisp/international/quail.el b/lisp/international/quail.el
index a29b729dcf0..3e0f543492a 100644
--- a/lisp/international/quail.el
+++ b/lisp/international/quail.el
@@ -2703,7 +2703,7 @@ KEY BINDINGS FOR CONVERSION
2703 2703
2704;; Generate a half-cooked decode map (char-table) for the current 2704;; Generate a half-cooked decode map (char-table) for the current
2705;; Quail map. An element for a character C is a key string or a list 2705;; Quail map. An element for a character C is a key string or a list
2706;; of a key strings to type to input C. The lenth of key string is at 2706;; of a key strings to type to input C. The length of key string is at
2707;; most 2. If it is 2, more keys may be required to input C. 2707;; most 2. If it is 2, more keys may be required to input C.
2708 2708
2709(defun quail-gen-decode-map () 2709(defun quail-gen-decode-map ()
@@ -2832,7 +2832,7 @@ STATE-n are symbols to denote state. STATE-0 is the initial state.
2832TRANSITION-n-m are transition rules from STATE-n, and have the form 2832TRANSITION-n-m are transition rules from STATE-n, and have the form
2833\(RULES . STATE-x) or RULES, where STATE-x is one of STATE-n above, 2833\(RULES . STATE-x) or RULES, where STATE-x is one of STATE-n above,
2834RULES is a symbol whose value is an alist of keys \(string) vs the 2834RULES is a symbol whose value is an alist of keys \(string) vs the
2835correponding characters or strings. The format of the symbol value of 2835corresponding characters or strings. The format of the symbol value of
2836RULES is the same as arguments to `quail-define-rules'. 2836RULES is the same as arguments to `quail-define-rules'.
2837 2837
2838If TRANSITION-n-m has the form (RULES . STATE-x), it means that 2838If TRANSITION-n-m has the form (RULES . STATE-x), it means that
@@ -2846,7 +2846,7 @@ The generated map can be set for the current Quail package by the
2846function `quail-install-map' (which see)." 2846function `quail-install-map' (which see)."
2847 (let ((state-alist (mapcar (lambda (x) (list (car x))) table)) 2847 (let ((state-alist (mapcar (lambda (x) (list (car x))) table))
2848 tail elt) 2848 tail elt)
2849 ;; STATE-ALIST is an alist of states vs the correponding sub Quail 2849 ;; STATE-ALIST is an alist of states vs the corresponding sub Quail
2850 ;; map. It is now initialized to ((STATE-0) (STATE-1) ...). 2850 ;; map. It is now initialized to ((STATE-0) (STATE-1) ...).
2851 ;; Set key sequence mapping rules in cdr part of each element. 2851 ;; Set key sequence mapping rules in cdr part of each element.
2852 (while table 2852 (while table
diff --git a/lisp/international/robin.el b/lisp/international/robin.el
index 443a292f4c1..c50277686ff 100644
--- a/lisp/international/robin.el
+++ b/lisp/international/robin.el
@@ -50,9 +50,9 @@
50;; identified by a string called package name. Use robin-define-package 50;; identified by a string called package name. Use robin-define-package
51;; to define a robin package. 51;; to define a robin package.
52 52
53;; (robin-define-package NAME DOCTSTRING 53;; (robin-define-package NAME DOCSTRING
54;; (INPUT1 OUPUT1) 54;; (INPUT1 OUTPUT1)
55;; (INPUT2 OUPUT2) 55;; (INPUT2 OUTPUT2)
56;; ...) 56;; ...)
57 57
58;; NAME is a string identifying the robin package. It often starts with a 58;; NAME is a string identifying the robin package. It often starts with a
diff --git a/lisp/international/titdic-cnv.el b/lisp/international/titdic-cnv.el
index 6614ac8b416..304dc01abe4 100644
--- a/lisp/international/titdic-cnv.el
+++ b/lisp/international/titdic-cnv.el
@@ -103,7 +103,7 @@ For example:
103 103
104\\<quail-translation-docstring> 104\\<quail-translation-docstring>
105 105
106For double-width GB2312 characters correponding to ASCII, use the 106For double-width GB2312 characters corresponding to ASCII, use the
107input method `chinese-qj'.") 107input method `chinese-qj'.")
108 108
109 ("chinese-ecdict" "$(05CKH(B" 109 ("chinese-ecdict" "$(05CKH(B"
@@ -122,7 +122,7 @@ compose one Chinese character.
122 122
123In this input method, you enter a Chinese character by first typing 123In this input method, you enter a Chinese character by first typing
124keys corresponding to Zhuyin symbols (see the above table) followed by 124keys corresponding to Zhuyin symbols (see the above table) followed by
125SPC, 1, 2, 3, or 4 specifing a tone (SPC:$(0?v(N(B, 1:$(0M=Vy(B, 2:$(0Dm(N(B, 3: $(0&9Vy(B, 125SPC, 1, 2, 3, or 4 specifying a tone (SPC:$(0?v(N(B, 1:$(0M=Vy(B, 2:$(0Dm(N(B, 3: $(0&9Vy(B,
1264:$(0(+Vy(B). 1264:$(0(+Vy(B).
127 127
128\\<quail-translation-docstring>") 128\\<quail-translation-docstring>")
@@ -191,7 +191,7 @@ For instance, to input $ADc(B, you type \"n i 3 3\", the first \"n i\" is
191a Pinyin, the next \"3\" specifies tone, and the last \"3\" selects 191a Pinyin, the next \"3\" specifies tone, and the last \"3\" selects
192the third character from the candidate list. 192the third character from the candidate list.
193 193
194For double-width GB2312 characters correponding to ASCII, use the 194For double-width GB2312 characters corresponding to ASCII, use the
195input method `chinese-qj'.") 195input method `chinese-qj'.")
196 196
197 ("chinese-zozy" "$(0I\0D(B" 197 ("chinese-zozy" "$(0I\0D(B"
@@ -203,7 +203,7 @@ compose a Chinese character.
203 203
204In this input method, you enter a Chinese character by first typing 204In this input method, you enter a Chinese character by first typing
205keys corresponding to Zhuyin symbols (see the above table) followed by 205keys corresponding to Zhuyin symbols (see the above table) followed by
206SPC, 6, 3, 4, or 7 specifing a tone (SPC:$(0?v(N(B, 6:$(0Dm(N(B, 3:$(0&9Vy(B, 4:$(0(+Vy(B, 206SPC, 6, 3, 4, or 7 specifying a tone (SPC:$(0?v(N(B, 6:$(0Dm(N(B, 3:$(0&9Vy(B, 4:$(0(+Vy(B,
2077:$(0M=Vy(B). 2077:$(0M=Vy(B).
208 208
209\\<quail-translation-docstring>"))) 209\\<quail-translation-docstring>")))
diff --git a/lisp/international/ucs-normalize.el b/lisp/international/ucs-normalize.el
index df05b355b46..8d13eb2039d 100644
--- a/lisp/international/ucs-normalize.el
+++ b/lisp/international/ucs-normalize.el
@@ -227,7 +227,7 @@ Note that Hangul are excluded.")
227 (eval-when-compile decomposition-pair-to-composition))) 227 (eval-when-compile decomposition-pair-to-composition)))
228 228
229(defun ucs-normalize-primary-composite (decomposition-pair composition-predicate) 229(defun ucs-normalize-primary-composite (decomposition-pair composition-predicate)
230 "Convert DECOMPOSITION-PAIR to primay composite using COMPOSITION-PREDICATE." 230 "Convert DECOMPOSITION-PAIR to primary composite using COMPOSITION-PREDICATE."
231 (let ((char (or (gethash decomposition-pair 231 (let ((char (or (gethash decomposition-pair
232 ucs-normalize-decomposition-pair-to-primary-composite) 232 ucs-normalize-decomposition-pair-to-primary-composite)
233 (and (<= #x1100 (car decomposition-pair)) 233 (and (<= #x1100 (car decomposition-pair))
diff --git a/lisp/kmacro.el b/lisp/kmacro.el
index eea3009faf4..6915640944a 100644
--- a/lisp/kmacro.el
+++ b/lisp/kmacro.el
@@ -747,7 +747,7 @@ If kbd macro currently being defined end it before activating it."
747;; Create a separate keymap installed as a minor-mode keymap (e.g. in 747;; Create a separate keymap installed as a minor-mode keymap (e.g. in
748;; the emulation-mode-map-alists) in which macro bindings are made 748;; the emulation-mode-map-alists) in which macro bindings are made
749;; independent of any other bindings. When first binding is made, 749;; independent of any other bindings. When first binding is made,
750;; the kemap is created, installed, and enabled. Key seq. C-x C-k + 750;; the keymap is created, installed, and enabled. Key seq. C-x C-k +
751;; can then be used to toggle the use of this keymap on and off. 751;; can then be used to toggle the use of this keymap on and off.
752;; This means that it would be safe(r) to bind ordinary keys like 752;; This means that it would be safe(r) to bind ordinary keys like
753;; letters and digits, provided that we inhibit the keymap while 753;; letters and digits, provided that we inhibit the keymap while
diff --git a/lisp/language/chinese.el b/lisp/language/chinese.el
index c44dc44581d..0e87d4d8e8c 100644
--- a/lisp/language/chinese.el
+++ b/lisp/language/chinese.el
@@ -125,7 +125,7 @@
125(define-coding-system 'chinese-big5 125(define-coding-system 'chinese-big5
126 "BIG5 8-bit encoding for Chinese (MIME:Big5)" 126 "BIG5 8-bit encoding for Chinese (MIME:Big5)"
127 :coding-type 'big5 127 :coding-type 'big5
128 :mnemonic ?B 128 :mnemonic ?B
129 :charset-list '(ascii big5) 129 :charset-list '(ascii big5)
130 :mime-charset 'big5) 130 :mime-charset 'big5)
131 131
@@ -152,7 +152,7 @@
152(define-coding-system 'chinese-big5-hkscs 152(define-coding-system 'chinese-big5-hkscs
153 "BIG5-HKSCS 8-bit encoding for Chinese, Hong Kong supplement (MIME:Big5-HKSCS)" 153 "BIG5-HKSCS 8-bit encoding for Chinese, Hong Kong supplement (MIME:Big5-HKSCS)"
154 :coding-type 'charset 154 :coding-type 'charset
155 :mnemonic ?B 155 :mnemonic ?B
156 :charset-list '(ascii big5-hkscs) 156 :charset-list '(ascii big5-hkscs)
157 :mime-charset 'big5-hkscs) 157 :mime-charset 'big5-hkscs)
158(define-coding-system-alias 'big5-hkscs 'chinese-big5-hkscs) 158(define-coding-system-alias 'big5-hkscs 'chinese-big5-hkscs)
@@ -191,7 +191,7 @@
191 chinese-cns11643-5 chinese-cns11643-6 191 chinese-cns11643-5 chinese-cns11643-6
192 chinese-cns11643-7) 192 chinese-cns11643-7)
193 (iso639-language . zh) 193 (iso639-language . zh)
194 (setup-function . (lambda () 194 (setup-function . (lambda ()
195 (use-cjk-char-width-table 'zh_TW))) 195 (use-cjk-char-width-table 'zh_TW)))
196 (exit-function . use-default-char-width-table) 196 (exit-function . use-default-char-width-table)
197 (coding-system iso-2022-cn euc-tw) 197 (coding-system iso-2022-cn euc-tw)
@@ -211,7 +211,7 @@ accepts Big5 for input also (which is then converted to CNS)."))
211 chinese-cns11643-5 chinese-cns11643-6 211 chinese-cns11643-5 chinese-cns11643-6
212 chinese-cns11643-7 chinese-big5-1 chinese-big5-2) 212 chinese-cns11643-7 chinese-big5-1 chinese-big5-2)
213 (iso639-language . zh) 213 (iso639-language . zh)
214 (setup-function . (lambda () 214 (setup-function . (lambda ()
215 (use-cjk-char-width-table 'zh_TW))) 215 (use-cjk-char-width-table 'zh_TW)))
216 (exit-function . use-default-char-width-table) 216 (exit-function . use-default-char-width-table)
217 (coding-system euc-tw iso-2022-cn) 217 (coding-system euc-tw iso-2022-cn)
@@ -220,7 +220,7 @@ accepts Big5 for input also (which is then converted to CNS)."))
220 (features china-util) 220 (features china-util)
221 (input-method . "chinese-cns-quick") 221 (input-method . "chinese-cns-quick")
222 (documentation . "\ 222 (documentation . "\
223Support for Chinese, prefering the EUC-TW character set. Note that 223Support for Chinese, preferring the EUC-TW character set. Note that
224the EUC-TW coding system accepts Big5 for input also (which is then 224the EUC-TW coding system accepts Big5 for input also (which is then
225converted to CNS).")) 225converted to CNS)."))
226 '("Chinese")) 226 '("Chinese"))
@@ -241,13 +241,13 @@ converted to CNS)."))
241(set-language-info-alist 241(set-language-info-alist
242 "Chinese-GBK" '((charset chinese-gbk) 242 "Chinese-GBK" '((charset chinese-gbk)
243 (iso639-language . zh) 243 (iso639-language . zh)
244 (setup-function . (lambda () 244 (setup-function . (lambda ()
245 (use-cjk-char-width-table 'zh_CN))) 245 (use-cjk-char-width-table 'zh_CN)))
246 (exit-function . use-default-char-width-table) 246 (exit-function . use-default-char-width-table)
247 (coding-system chinese-gbk) 247 (coding-system chinese-gbk)
248 (coding-priority gbk iso-2022-cn chinese-big5 248 (coding-priority gbk iso-2022-cn chinese-big5
249 chinese-iso-8bit) ; fixme? 249 chinese-iso-8bit) ; fixme?
250 (ctext-non-standard-encodings "gbk-0") 250 (ctext-non-standard-encodings "gbk-0")
251 (input-method . "chinese-py-punct") ; fixme? 251 (input-method . "chinese-py-punct") ; fixme?
252 (sample-text . "Chinese ($BCfJ8(B,$BIaDL$A;0(B,$A::So(B) $(D95$B9%(B") 252 (sample-text . "Chinese ($BCfJ8(B,$BIaDL$A;0(B,$A::So(B) $(D95$B9%(B")
253 (features china-util) 253 (features china-util)
diff --git a/lisp/language/cyrillic.el b/lisp/language/cyrillic.el
index 8fb7fae720d..c0f857cadee 100644
--- a/lisp/language/cyrillic.el
+++ b/lisp/language/cyrillic.el
@@ -126,7 +126,7 @@ Support for Russian using koi8-r and the russian-computer input method.")
126(define-coding-system 'koi8-u 126(define-coding-system 'koi8-u
127 "KOI8-U 8-bit encoding for Cyrillic (MIME: KOI8-U)" 127 "KOI8-U 8-bit encoding for Cyrillic (MIME: KOI8-U)"
128 :coding-type 'charset 128 :coding-type 'charset
129 :mnemonic ?U 129 :mnemonic ?U
130 :charset-list '(koi8-u) 130 :charset-list '(koi8-u)
131 :mime-charset 'koi8-u) 131 :mime-charset 'koi8-u)
132 132
@@ -246,7 +246,7 @@ Support for Russian using koi8-r and the russian-computer input method.")
246 (ctext-non-standard-encodings "microsoft-cp1251") 246 (ctext-non-standard-encodings "microsoft-cp1251")
247 (input-method . "bulgarian-bds") 247 (input-method . "bulgarian-bds")
248 (documentation 248 (documentation
249 . "Support for Bulgrian with windows-1251 character set.")) 249 . "Support for Bulgarian with windows-1251 character set."))
250 '("Cyrillic")) 250 '("Cyrillic"))
251 251
252(set-language-info-alist 252(set-language-info-alist
diff --git a/lisp/language/ethio-util.el b/lisp/language/ethio-util.el
index 1d93d981f8e..3c39b1eff9c 100644
--- a/lisp/language/ethio-util.el
+++ b/lisp/language/ethio-util.el
@@ -1,4 +1,4 @@
1;;; ethio-util.el --- utilities for Ethiopic -*- coding: utf-8; -*- 1;;; ethio-util.el --- utilities for Ethiopic -*- coding: utf-8-emacs; -*-
2 2
3;; Copyright (C) 1997-1998, 2002-2011 Free Software Foundation, Inc. 3;; Copyright (C) 1997-1998, 2002-2011 Free Software Foundation, Inc.
4;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 4;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
@@ -48,7 +48,7 @@
48 ([f4] . ethio-sera-to-fidel-buffer) 48 ([f4] . ethio-sera-to-fidel-buffer)
49 ([S-f4] . ethio-sera-to-fidel-region) 49 ([S-f4] . ethio-sera-to-fidel-region)
50 ([C-f4] . ethio-sera-to-fidel-marker) 50 ([C-f4] . ethio-sera-to-fidel-marker)
51 ([S-f5] . ethio-toggle-punctuation) 51 ;; ([S-f5] . ethio-toggle-punctuation)
52 ([S-f6] . ethio-modify-vowel) 52 ([S-f6] . ethio-modify-vowel)
53 ([S-f7] . ethio-replace-space) 53 ([S-f7] . ethio-replace-space)
54 ;; ([S-f8] . ethio-input-special-character) ; deprecated 54 ;; ([S-f8] . ethio-input-special-character) ; deprecated
@@ -890,7 +890,7 @@ Otherwise, [0-9A-F]."
890 890
891;;;###autoload 891;;;###autoload
892(defun ethio-find-file nil 892(defun ethio-find-file nil
893 "Transliterate file content into Ethiopic dependig on filename suffix." 893 "Transliterate file content into Ethiopic depending on filename suffix."
894 (cond 894 (cond
895 895
896 ((string-match "\\.sera$" (buffer-file-name)) 896 ((string-match "\\.sera$" (buffer-file-name))
diff --git a/lisp/language/lao-util.el b/lisp/language/lao-util.el
index 008eb92dbbc..2a339504409 100644
--- a/lisp/language/lao-util.el
+++ b/lisp/language/lao-util.el
@@ -386,7 +386,7 @@ character MAA-SAKOD-n.")
386 "Transcribe a Romanized Lao syllable in the region FROM and TO to Lao string. 386 "Transcribe a Romanized Lao syllable in the region FROM and TO to Lao string.
387Only the first syllable is transcribed. 387Only the first syllable is transcribed.
388The value has the form: (START END LAO-STRING), where 388The value has the form: (START END LAO-STRING), where
389START and END are the beggining and end positions of the Roman Lao syllable, 389START and END are the beginning and end positions of the Roman Lao syllable,
390LAO-STRING is the Lao character transcription of it. 390LAO-STRING is the Lao character transcription of it.
391 391
392Optional 3rd arg STR, if non-nil, is a string to search for Roman Lao 392Optional 3rd arg STR, if non-nil, is a string to search for Roman Lao
diff --git a/lisp/language/viet-util.el b/lisp/language/viet-util.el
index ea601c041e4..b71c65438be 100644
--- a/lisp/language/viet-util.el
+++ b/lisp/language/viet-util.el
@@ -34,7 +34,7 @@
34;; for representing these characters: VISCII, TCVN-5712, VPS, VIQR, 34;; for representing these characters: VISCII, TCVN-5712, VPS, VIQR,
35;; and Unicode. VISCII, TCVN-5712 and VPS are simple 1-byte code 35;; and Unicode. VISCII, TCVN-5712 and VPS are simple 1-byte code
36;; which assigns 134 unique characters in control-code area 36;; which assigns 134 unique characters in control-code area
37;; (0x00..0x1F) and right half area (0x80..0xFF). VIQR is a menmonic 37;; (0x00..0x1F) and right half area (0x80..0xFF). VIQR is a mnemonic
38;; encoding specification representing diacritical marks by following 38;; encoding specification representing diacritical marks by following
39;; ASCII characters. 39;; ASCII characters.
40 40
@@ -47,7 +47,7 @@
47 "Return VISCII character code of CHAR if appropriate." 47 "Return VISCII character code of CHAR if appropriate."
48 (encode-char char 'viscii)) 48 (encode-char char 'viscii))
49 49
50;; VIQR is a menmonic encoding specification for Vietnamese. 50;; VIQR is a mnemonic encoding specification for Vietnamese.
51;; It represents diacritical marks by ASCII characters as follows: 51;; It represents diacritical marks by ASCII characters as follows:
52;; ------------+----------+-------- 52;; ------------+----------+--------
53;; mark | mnemonic | example 53;; mark | mnemonic | example
diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el
index 858cfa85a6f..db511e1ce40 100644
--- a/lisp/ldefs-boot.el
+++ b/lisp/ldefs-boot.el
@@ -3608,7 +3608,7 @@ REG := r0 | r1 | r2 | r3 | r4 | r5 | r6 | r7
3608ARG := REG | integer 3608ARG := REG | integer
3609 3609
3610OPERATOR := 3610OPERATOR :=
3611 ;; Normal arithmethic operators (same meaning as C code). 3611 ;; Normal arithmetic operators (same meaning as C code).
3612 + | - | * | / | % 3612 + | - | * | / | %
3613 3613
3614 ;; Bitwise operators (same meaning as C code) 3614 ;; Bitwise operators (same meaning as C code)
diff --git a/lisp/loadhist.el b/lisp/loadhist.el
index 51df6ecff0a..8edda03044a 100644
--- a/lisp/loadhist.el
+++ b/lisp/loadhist.el
@@ -156,7 +156,7 @@ documentation of `unload-feature' for details.")
156 (dolist (buffer (buffer-list)) 156 (dolist (buffer (buffer-list))
157 (set-buffer buffer) 157 (set-buffer buffer)
158 (let ((proposed major-mode)) 158 (let ((proposed major-mode))
159 ;; Look for an antecessor mode not defined in the feature we're processing 159 ;; Look for a predecessor mode not defined in the feature we're processing
160 (while (and proposed (rassq proposed unload-function-defs-list)) 160 (while (and proposed (rassq proposed unload-function-defs-list))
161 (setq proposed (get proposed 'derived-mode-parent))) 161 (setq proposed (get proposed 'derived-mode-parent)))
162 (unless (eq proposed major-mode) 162 (unless (eq proposed major-mode)
diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el
index 576f443c8e2..5b7601c6335 100644
--- a/lisp/mail/emacsbug.el
+++ b/lisp/mail/emacsbug.el
@@ -437,7 +437,7 @@ and send the mail again%s."
437 (car bug)) 437 (car bug))
438 items)) 438 items))
439 (nreverse items)))) 439 (nreverse items))))
440 (widget-insert "No bugs maching your keywords found.\n")) 440 (widget-insert "No bugs matching your keywords found.\n"))
441 (widget-insert "\n") 441 (widget-insert "\n")
442 (widget-create 'push-button 442 (widget-create 'push-button
443 :notify (lambda (&rest ignore) 443 :notify (lambda (&rest ignore)
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index 230424c1920..1ea01bdadb8 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -4527,7 +4527,7 @@ With prefix argument N moves forward N messages with these labels.
4527 4527
4528;;;*** 4528;;;***
4529 4529
4530;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "2cb1f29b88b0c724fdba389fd7b98b00") 4530;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "91f72e39e6ea7c2be098fe3f05174b9e")
4531;;; Generated autoloads from rmailmm.el 4531;;; Generated autoloads from rmailmm.el
4532 4532
4533(autoload 'rmail-mime "rmailmm" "\ 4533(autoload 'rmail-mime "rmailmm" "\
@@ -4629,7 +4629,7 @@ If prefix argument REVERSE is non-nil, sorts in reverse order.
4629 4629
4630;;;### (autoloads (rmail-summary-by-senders rmail-summary-by-topic 4630;;;### (autoloads (rmail-summary-by-senders rmail-summary-by-topic
4631;;;;;; rmail-summary-by-regexp rmail-summary-by-recipients rmail-summary-by-labels 4631;;;;;; rmail-summary-by-regexp rmail-summary-by-recipients rmail-summary-by-labels
4632;;;;;; rmail-summary) "rmailsum" "rmailsum.el" "1375d6512b953c0d7c3bde52192f4055") 4632;;;;;; rmail-summary) "rmailsum" "rmailsum.el" "d5971848a5fb43dc0092008376298a80")
4633;;; Generated autoloads from rmailsum.el 4633;;; Generated autoloads from rmailsum.el
4634 4634
4635(autoload 'rmail-summary "rmailsum" "\ 4635(autoload 'rmail-summary "rmailsum" "\
diff --git a/lisp/mail/rmailmm.el b/lisp/mail/rmailmm.el
index d01cfc7f2c8..03023b07527 100644
--- a/lisp/mail/rmailmm.el
+++ b/lisp/mail/rmailmm.el
@@ -320,7 +320,7 @@ The value is a vector [INDEX HEADER TAGLINE BODY END], where
320 (setq index 2)) 320 (setq index 2))
321 ;; If the tagline is displayed, get past it to the body. 321 ;; If the tagline is displayed, get past it to the body.
322 (if (rmail-mime-display-tagline current) 322 (if (rmail-mime-display-tagline current)
323 ;; The next foward-line call must be in sync with how 323 ;; The next forward-line call must be in sync with how
324 ;; `rmail-mime-insert-tagline' formats the tagline. The 324 ;; `rmail-mime-insert-tagline' formats the tagline. The
325 ;; body begins after the empty line that ends the tagline. 325 ;; body begins after the empty line that ends the tagline.
326 (forward-line 3)) 326 (forward-line 3))
diff --git a/lisp/mail/rmailsum.el b/lisp/mail/rmailsum.el
index e6a0a34f33b..5c147be3104 100644
--- a/lisp/mail/rmailsum.el
+++ b/lisp/mail/rmailsum.el
@@ -762,6 +762,12 @@ the message being processed."
762 (point))))))))) 762 (point)))))))))
763 (if (null from) 763 (if (null from)
764 " " 764 " "
765 ;; We are going to return only 25 characters of the
766 ;; address, so make sure it is RFC2047 decoded before
767 ;; taking its substring. This is important when the address is not on the same line as the name, e.g.:
768 ;; To: =?UTF-8?Q?=C5=A0t=C4=9Bp=C3=A1n_?= =?UTF-8?Q?N=C4=9Bmec?=
769 ;; <stepnem@gmail.com>
770 (setq from (rfc2047-decode-string from))
765 (setq len (length from)) 771 (setq len (length from))
766 (setq mch (string-match "[@%]" from)) 772 (setq mch (string-match "[@%]" from))
767 (format "%25s" 773 (format "%25s"
diff --git a/lisp/makefile.w32-in b/lisp/makefile.w32-in
index c844a8f6630..c8e535d4ac0 100644
--- a/lisp/makefile.w32-in
+++ b/lisp/makefile.w32-in
@@ -232,12 +232,15 @@ $(lisp)/subdirs.el:
232update-subdirs: update-subdirs-$(SHELLTYPE) 232update-subdirs: update-subdirs-$(SHELLTYPE)
233 233
234update-subdirs-CMD: doit 234update-subdirs-CMD: doit
235 echo ;; -*- no-byte-compile: t -*-> $(lisp)/subdirs.el 235 echo ;; In load-path, after this directory should come> $(lisp)/subdirs.el
236 echo ;; In load-path, after this directory should come>> $(lisp)/subdirs.el
237 echo ;; certain of its subdirectories. Here we specify them.>> $(lisp)/subdirs.el 236 echo ;; certain of its subdirectories. Here we specify them.>> $(lisp)/subdirs.el
238 echo (normal-top-level-add-to-load-path $(SQUOTE)(>> $(lisp)/subdirs.el 237 echo (normal-top-level-add-to-load-path $(SQUOTE)(>> $(lisp)/subdirs.el
239 @for %%d in ($(WINS_SUBDIR) cedet) do echo "%%d">> $(lisp)/subdirs.el 238 @for %%d in ($(WINS_SUBDIR) cedet) do echo "%%d">> $(lisp)/subdirs.el
240 echo ))>> $(lisp)/subdirs.el 239 echo ))>> $(lisp)/subdirs.el
240 echo ;; Local Variables:>> $(lisp)/subdirs.el
241 echo ;; version-control: never>> $(lisp)/subdirs.el
242 echo ;; no-byte-compile: t>> $(lisp)/subdirs.el
243 echo ;; End:>> $(lisp)/subdirs.el
241 244
242update-subdirs-SH: doit 245update-subdirs-SH: doit
243 $(srcdir)/update-subdirs $(lisp); \ 246 $(srcdir)/update-subdirs $(lisp); \
diff --git a/lisp/man.el b/lisp/man.el
index c9ba64bf5e0..3cdbdddb044 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -687,7 +687,7 @@ POS defaults to `point'."
687 ;; Otherwise record the current column and look backwards. 687 ;; Otherwise record the current column and look backwards.
688 (setq column (current-column)) 688 (setq column (current-column))
689 (skip-chars-backward ",; \t") 689 (skip-chars-backward ",; \t")
690 ;; Record the distance travelled. 690 ;; Record the distance traveled.
691 (setq distance (- column (current-column))) 691 (setq distance (- column (current-column)))
692 (when (looking-back 692 (when (looking-back
693 (concat "([ \t]*\\(?:" Man-section-regexp "\\)[ \t]*)")) 693 (concat "([ \t]*\\(?:" Man-section-regexp "\\)[ \t]*)"))
@@ -933,7 +933,8 @@ Return the buffer in which the manpage will appear."
933 ;; minal (using an ioctl(2) if available, the value of 933 ;; minal (using an ioctl(2) if available, the value of
934 ;; $COLUMNS, or falling back to 80 characters if nei- 934 ;; $COLUMNS, or falling back to 80 characters if nei-
935 ;; ther is available). 935 ;; ther is available).
936 (unless (or (getenv "MANWIDTH") (getenv "COLUMNS")) 936 (when (or window-system
937 (not (or (getenv "MANWIDTH") (getenv "COLUMNS"))))
937 ;; This isn't strictly correct, since we don't know how 938 ;; This isn't strictly correct, since we don't know how
938 ;; the page will actually be displayed, but it seems 939 ;; the page will actually be displayed, but it seems
939 ;; reasonable. 940 ;; reasonable.
diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog
index 02e531120be..ce8a7e56d60 100644
--- a/lisp/mh-e/ChangeLog
+++ b/lisp/mh-e/ChangeLog
@@ -122,7 +122,7 @@
122 * mh-mime.el: Shush XEmacs compiler in mh-do-in-xemacs block. 122 * mh-mime.el: Shush XEmacs compiler in mh-do-in-xemacs block.
123 123
124 * mh-folder.el: Use boundp instead of fboundp when testing 124 * mh-folder.el: Use boundp instead of fboundp when testing
125 existence of desktop-buffer-mode-handlers. 125 existence of desktop-buffer-mode-handlers (closes SF #1510145).
126 126
1272011-05-10 Jim Meyering <meyering@redhat.com> 1272011-05-10 Jim Meyering <meyering@redhat.com>
128 128
@@ -232,7 +232,8 @@
232 (mh-handle-process-error, mh-variant-info): 232 (mh-handle-process-error, mh-variant-info):
233 * mh-comp.el (mh-forward): 233 * mh-comp.el (mh-forward):
234 * mh-alias.el (mh-alias-local-users, mh-alias-which-file-has-alias): 234 * mh-alias.el (mh-alias-local-users, mh-alias-which-file-has-alias):
235 (mh-alias-add-alias-to-file): Use with-current-buffer. 235 (mh-alias-add-alias-to-file): Use with-current-buffer (closes SF
236 #1903293).
236 237
2372009-11-04 Stefan Monnier <monnier@iro.umontreal.ca> 2382009-11-04 Stefan Monnier <monnier@iro.umontreal.ca>
238 239
diff --git a/lisp/mh-e/ChangeLog.1 b/lisp/mh-e/ChangeLog.1
index 871b84dd039..506390896a1 100644
--- a/lisp/mh-e/ChangeLog.1
+++ b/lisp/mh-e/ChangeLog.1
@@ -428,7 +428,7 @@
4282004-11-08 Satyaki Das <satyaki@theforce.stanford.edu> 4282004-11-08 Satyaki Das <satyaki@theforce.stanford.edu>
429 429
430 * mh-acros.el (mh-funcall-if-exists): In XEmacs, presence of a 430 * mh-acros.el (mh-funcall-if-exists): In XEmacs, presence of a
431 function at compile time doesn't guarantee it's existence at run 431 function at compile time doesn't guarantee its existence at run
432 time. So make the macro handle that situation better. 432 time. So make the macro handle that situation better.
433 433
4342004-11-05 Satyaki Das <satyaki@theforce.stanford.edu> 4342004-11-05 Satyaki Das <satyaki@theforce.stanford.edu>
@@ -1648,7 +1648,7 @@
1648 * mh-e.el (mh-version): Do something sensible when 1648 * mh-e.el (mh-version): Do something sensible when
1649 mh-variant-in-use is undefined. 1649 mh-variant-in-use is undefined.
1650 * mh-junk.el (mh-spamassassin-blacklist) 1650 * mh-junk.el (mh-spamassassin-blacklist)
1651 (mh-spamassassin-whitelist): Change options to be compatoble with 1651 (mh-spamassassin-whitelist): Change options to be compatible with
1652 old version of spamassassin (V2.20). 1652 old version of spamassassin (V2.20).
1653 1653
16542003-09-07 Mark D. Baushke <mdb@gnu.org> 16542003-09-07 Mark D. Baushke <mdb@gnu.org>
@@ -10195,7 +10195,7 @@
101952002-04-02 Peter S Galbraith <psg@debian.org> 101952002-04-02 Peter S Galbraith <psg@debian.org>
10196 10196
10197 * mh-e.el: 'defvar mh-folder-unseen-seq-name' called a function to 10197 * mh-e.el: 'defvar mh-folder-unseen-seq-name' called a function to
10198 set it's value, and this happens also on byte-compilation (where 10198 set its value, and this happens also on byte-compilation (where
10199 it can fail if the user's MH environment is not setup correctly). 10199 it can fail if the user's MH environment is not setup correctly).
10200 I now set the value of mh-folder-unseen-seq-name at runtime when I 10200 I now set the value of mh-folder-unseen-seq-name at runtime when I
10201 first need it. This should fix Debian bugs 10201 first need it. This should fix Debian bugs
diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el
index 7ae6912cf8f..b7fdd9a9bd8 100644
--- a/lisp/net/ange-ftp.el
+++ b/lisp/net/ange-ftp.el
@@ -1664,7 +1664,7 @@ good, skip, fatal, or unknown."
1664 (if (not (and seen-prompt ange-ftp-pending-error-line)) 1664 (if (not (and seen-prompt ange-ftp-pending-error-line))
1665 (ange-ftp-process-handle-line line proc) 1665 (ange-ftp-process-handle-line line proc)
1666 ;; If we've seen a potential error message and it 1666 ;; If we've seen a potential error message and it
1667 ;; hasn't been cancelled by a good message before 1667 ;; hasn't been canceled by a good message before
1668 ;; seeing a prompt, then the error was real. 1668 ;; seeing a prompt, then the error was real.
1669 (delete-process proc) 1669 (delete-process proc)
1670 (setq ange-ftp-process-busy nil 1670 (setq ange-ftp-process-busy nil
@@ -2854,7 +2854,7 @@ NO-ERROR, if a listing for DIRECTORY cannot be obtained."
2854;; that a wasted listing is not done: 2854;; that a wasted listing is not done:
2855;; 1. When looking for a .dired file in dired-x.el. 2855;; 1. When looking for a .dired file in dired-x.el.
2856;; 2. The syntax of FILE and DIR make it impossible that FILE could be a valid 2856;; 2. The syntax of FILE and DIR make it impossible that FILE could be a valid
2857;; subdirectory. This is of course an OS dependent judgement. 2857;; subdirectory. This is of course an OS dependent judgment.
2858 2858
2859(defvar dired-local-variables-file) 2859(defvar dired-local-variables-file)
2860(defmacro ange-ftp-allow-child-lookup (dir file) 2860(defmacro ange-ftp-allow-child-lookup (dir file)
@@ -3637,6 +3637,10 @@ so return the size on the remote host exactly. See RFC 3659."
3637 (setq filename (expand-file-name filename) 3637 (setq filename (expand-file-name filename)
3638 newname (expand-file-name newname)) 3638 newname (expand-file-name newname))
3639 3639
3640 (or (file-exists-p filename)
3641 (signal 'file-error
3642 (list "Copy file" "no such file or directory" filename)))
3643
3640 ;; canonicalize newname if a directory. 3644 ;; canonicalize newname if a directory.
3641 (if (file-directory-p newname) 3645 (if (file-directory-p newname)
3642 (setq newname (expand-file-name (file-name-nondirectory filename) newname))) 3646 (setq newname (expand-file-name (file-name-nondirectory filename) newname)))
diff --git a/lisp/net/dbus.el b/lisp/net/dbus.el
index 8a8d9e6332f..9254fef8a7f 100644
--- a/lisp/net/dbus.el
+++ b/lisp/net/dbus.el
@@ -101,7 +101,7 @@ Otherwise, return result of last form in BODY, or all other errors."
101(defvar dbus-event-error-hooks nil 101(defvar dbus-event-error-hooks nil
102 "Functions to be called when a D-Bus error happens in the event handler. 102 "Functions to be called when a D-Bus error happens in the event handler.
103Every function must accept two arguments, the event and the error variable 103Every function must accept two arguments, the event and the error variable
104catched in `condition-case' by `dbus-error'.") 104caught in `condition-case' by `dbus-error'.")
105 105
106 106
107;;; Hash table of registered functions. 107;;; Hash table of registered functions.
diff --git a/lisp/net/netrc.el b/lisp/net/netrc.el
index b04863b5fc0..80836b03978 100644
--- a/lisp/net/netrc.el
+++ b/lisp/net/netrc.el
@@ -237,7 +237,7 @@ MODE can be \"login\" or \"password\", suitable for passing to
237;;;###autoload 237;;;###autoload
238(defun netrc-credentials (machine &rest ports) 238(defun netrc-credentials (machine &rest ports)
239 "Return a user name/password pair. 239 "Return a user name/password pair.
240Port specifications will be prioritised in the order they are 240Port specifications will be prioritized in the order they are
241listed in the PORTS list." 241listed in the PORTS list."
242 (let ((list (netrc-parse)) 242 (let ((list (netrc-parse))
243 found) 243 found)
diff --git a/lisp/net/network-stream.el b/lisp/net/network-stream.el
index e27b4541ab5..9c07953c9c9 100644
--- a/lisp/net/network-stream.el
+++ b/lisp/net/network-stream.el
@@ -115,7 +115,7 @@ values:
115 capability command, and should return the command to switch on 115 capability command, and should return the command to switch on
116 STARTTLS if the server supports STARTTLS, and nil otherwise. 116 STARTTLS if the server supports STARTTLS, and nil otherwise.
117 117
118:always-query-capabilies says whether to query the server for 118:always-query-capabilities says whether to query the server for
119 capabilities, even if we're doing a `plain' network connection. 119 capabilities, even if we're doing a `plain' network connection.
120 120
121:client-certificate should either be a list where the first 121:client-certificate should either be a list where the first
diff --git a/lisp/net/ntlm.el b/lisp/net/ntlm.el
index 9af148e8faa..8bcb1ef2966 100644
--- a/lisp/net/ntlm.el
+++ b/lisp/net/ntlm.el
@@ -440,7 +440,7 @@ length of STR is LEN."
440 440
441(defun ntlm-smb-dohash (in key forw) 441(defun ntlm-smb-dohash (in key forw)
442 "Return the hash value for a string IN and a string KEY. 442 "Return the hash value for a string IN and a string KEY.
443Length of IN and KEY are 64. FORW non nill means forward, nil means 443Length of IN and KEY are 64. FORW non-nil means forward, nil means
444backward." 444backward."
445 (let (pk1 ;string of length 56 445 (let (pk1 ;string of length 56
446 c ;string of length 28 446 c ;string of length 28
diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
index df841bade79..27dff3aa8d9 100644
--- a/lisp/net/tramp-gvfs.el
+++ b/lisp/net/tramp-gvfs.el
@@ -188,7 +188,7 @@
188;; STRING stable_name 188;; STRING stable_name
189;; STRING x_content_types Since GVFS 1.0 only !!! 189;; STRING x_content_types Since GVFS 1.0 only !!!
190;; STRING icon 190;; STRING icon
191;; STRING prefered_filename_encoding 191;; STRING preferred_filename_encoding
192;; BOOLEAN user_visible 192;; BOOLEAN user_visible
193;; ARRAY BYTE fuse_mountpoint 193;; ARRAY BYTE fuse_mountpoint
194;; STRUCT mount_spec 194;; STRUCT mount_spec
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index ee4c8966626..446a27c65d3 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -44,7 +44,7 @@
44 44
45(defcustom tramp-inline-compress-start-size 4096 45(defcustom tramp-inline-compress-start-size 4096
46 "*The minimum size of compressing where inline transfer. 46 "*The minimum size of compressing where inline transfer.
47When inline transfer, compress transfered data of file 47When inline transfer, compress transferred data of file
48whose size is this value or above (up to `tramp-copy-size-limit'). 48whose size is this value or above (up to `tramp-copy-size-limit').
49If it is nil, no compression at all will be applied." 49If it is nil, no compression at all will be applied."
50 :group 'tramp 50 :group 'tramp
@@ -3526,7 +3526,7 @@ variable PATH."
3526Here, we are looking for a command which has zero exit status if the 3526Here, we are looking for a command which has zero exit status if the
3527file exists and nonzero exit status otherwise." 3527file exists and nonzero exit status otherwise."
3528 (let ((existing "/") 3528 (let ((existing "/")
3529 (nonexisting 3529 (nonexistent
3530 (tramp-shell-quote-argument "/ this file does not exist ")) 3530 (tramp-shell-quote-argument "/ this file does not exist "))
3531 result) 3531 result)
3532 ;; The algorithm is as follows: we try a list of several commands. 3532 ;; The algorithm is as follows: we try a list of several commands.
@@ -3551,22 +3551,22 @@ file exists and nonzero exit status otherwise."
3551 (tramp-send-command-and-check 3551 (tramp-send-command-and-check
3552 vec (format "%s %s" result existing)) 3552 vec (format "%s %s" result existing))
3553 (not (tramp-send-command-and-check 3553 (not (tramp-send-command-and-check
3554 vec (format "%s %s" result nonexisting)))) 3554 vec (format "%s %s" result nonexistent))))
3555 (and (setq result "/bin/test -e") 3555 (and (setq result "/bin/test -e")
3556 (tramp-send-command-and-check 3556 (tramp-send-command-and-check
3557 vec (format "%s %s" result existing)) 3557 vec (format "%s %s" result existing))
3558 (not (tramp-send-command-and-check 3558 (not (tramp-send-command-and-check
3559 vec (format "%s %s" result nonexisting)))) 3559 vec (format "%s %s" result nonexistent))))
3560 (and (setq result "/usr/bin/test -e") 3560 (and (setq result "/usr/bin/test -e")
3561 (tramp-send-command-and-check 3561 (tramp-send-command-and-check
3562 vec (format "%s %s" result existing)) 3562 vec (format "%s %s" result existing))
3563 (not (tramp-send-command-and-check 3563 (not (tramp-send-command-and-check
3564 vec (format "%s %s" result nonexisting)))) 3564 vec (format "%s %s" result nonexistent))))
3565 (and (setq result (format "%s -d" (tramp-get-ls-command vec))) 3565 (and (setq result (format "%s -d" (tramp-get-ls-command vec)))
3566 (tramp-send-command-and-check 3566 (tramp-send-command-and-check
3567 vec (format "%s %s" result existing)) 3567 vec (format "%s %s" result existing))
3568 (not (tramp-send-command-and-check 3568 (not (tramp-send-command-and-check
3569 vec (format "%s %s" result nonexisting))))) 3569 vec (format "%s %s" result nonexistent)))))
3570 (tramp-error 3570 (tramp-error
3571 vec 'file-error "Couldn't find command to check if file exists")) 3571 vec 'file-error "Couldn't find command to check if file exists"))
3572 result)) 3572 result))
@@ -3726,7 +3726,7 @@ process to set up. VEC specifies the connection."
3726 ;; Check whether the output of "uname -sr" has been changed. If 3726 ;; Check whether the output of "uname -sr" has been changed. If
3727 ;; yes, this is a strong indication that we must expire all 3727 ;; yes, this is a strong indication that we must expire all
3728 ;; connection properties. We start again with 3728 ;; connection properties. We start again with
3729 ;; `tramp-maybe-open-connection', it will be catched there. 3729 ;; `tramp-maybe-open-connection', it will be caught there.
3730 (tramp-message vec 5 "Checking system information") 3730 (tramp-message vec 5 "Checking system information")
3731 (let ((old-uname (tramp-get-connection-property vec "uname" nil)) 3731 (let ((old-uname (tramp-get-connection-property vec "uname" nil))
3732 (new-uname 3732 (new-uname
@@ -4215,7 +4215,7 @@ connection if a previous connection has died for some reason."
4215 (tramp-send-command vec "echo are you awake" t t) 4215 (tramp-send-command vec "echo are you awake" t t)
4216 (unless (and (memq (process-status p) '(run open)) 4216 (unless (and (memq (process-status p) '(run open))
4217 (tramp-wait-for-output p 10)) 4217 (tramp-wait-for-output p 10))
4218 ;; The error will be catched locally. 4218 ;; The error will be caught locally.
4219 (tramp-error vec 'file-error "Awake did fail"))) 4219 (tramp-error vec 'file-error "Awake did fail")))
4220 (file-error 4220 (file-error
4221 (tramp-flush-connection-property vec) 4221 (tramp-flush-connection-property vec)
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index c89b61c2eb1..473ba00fbc2 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -298,8 +298,8 @@ shouldn't return t when it isn't."
298 (search-forward-regexp "Missing ControlMaster argument" nil t)))) 298 (search-forward-regexp "Missing ControlMaster argument" nil t))))
299 299
300(defcustom tramp-default-method 300(defcustom tramp-default-method
301 ;; An external copy method seems to be preferred, because it is much 301 ;; An external copy method seems to be preferred, because it performs
302 ;; more performant for large files, and it hasn't too serious delays 302 ;; much better for large files, and it hasn't too serious delays
303 ;; for small files. But it must be ensured that there aren't 303 ;; for small files. But it must be ensured that there aren't
304 ;; permanent password queries. Either a password agent like 304 ;; permanent password queries. Either a password agent like
305 ;; "ssh-agent" or "Pageant" shall run, or the optional 305 ;; "ssh-agent" or "Pageant" shall run, or the optional
@@ -3506,7 +3506,7 @@ If the `tramp-methods' entry does not exist, return nil."
3506 (cond 3506 (cond
3507 ((char-equal other-write ?w) (tramp-compat-octal-to-decimal "00002")) 3507 ((char-equal other-write ?w) (tramp-compat-octal-to-decimal "00002"))
3508 ((char-equal other-write ?-) 0) 3508 ((char-equal other-write ?-) 0)
3509 (t (error "Nineth char `%c' must be one of `w-'" other-write))) 3509 (t (error "Ninth char `%c' must be one of `w-'" other-write)))
3510 (cond 3510 (cond
3511 ((char-equal other-execute-or-sticky ?x) 3511 ((char-equal other-execute-or-sticky ?x)
3512 (tramp-compat-octal-to-decimal "00001")) 3512 (tramp-compat-octal-to-decimal "00001"))
diff --git a/lisp/net/xesam.el b/lisp/net/xesam.el
index ab817a43885..17b22aa03ba 100644
--- a/lisp/net/xesam.el
+++ b/lisp/net/xesam.el
@@ -172,7 +172,7 @@
172 172
173(defface xesam-highlight '((t :inherit match)) 173(defface xesam-highlight '((t :inherit match))
174 "Face to highlight query entries. 174 "Face to highlight query entries.
175It will be overlayed by `widget-documentation-face', so it shall 175It will be overlaid by `widget-documentation-face', so it shall
176be different at least in one face property not set in that face." 176be different at least in one face property not set in that face."
177 :group 'xesam) 177 :group 'xesam)
178 178
@@ -279,8 +279,8 @@ fields are supported.")
279 279
280(defun xesam-dbus-call-method (&rest args) 280(defun xesam-dbus-call-method (&rest args)
281 "Apply a D-Bus method call. 281 "Apply a D-Bus method call.
282`dbus-call-method' is to be preferred, because it is more 282`dbus-call-method' is preferred, because it performs better.
283performant. If the target D-Bus service is owned by Emacs, this 283If the target D-Bus service is owned by Emacs, this
284is not applicable, and `dbus-call-method-non-blocking' must be 284is not applicable, and `dbus-call-method-non-blocking' must be
285used instead. ARGS are identical to the argument list of both 285used instead. ARGS are identical to the argument list of both
286functions." 286functions."
diff --git a/lisp/net/zeroconf.el b/lisp/net/zeroconf.el
index cc538c224dc..a889a6a4177 100644
--- a/lisp/net/zeroconf.el
+++ b/lisp/net/zeroconf.el
@@ -82,7 +82,7 @@
82 82
83;; The function `zeroconf-publish-service' publishes a new service to 83;; The function `zeroconf-publish-service' publishes a new service to
84;; the Avahi daemon. Although the domain, where to the service is 84;; the Avahi daemon. Although the domain, where to the service is
85;; published, can be specified by this function, it is usally the 85;; published, can be specified by this function, it is usually the
86;; default domain "local" (also written as nil or ""). 86;; default domain "local" (also written as nil or "").
87 87
88;; (zeroconf-publish-service 88;; (zeroconf-publish-service
diff --git a/lisp/nxml/rng-valid.el b/lisp/nxml/rng-valid.el
index 9a29e3d4cca..1f69f5d7bf3 100644
--- a/lisp/nxml/rng-valid.el
+++ b/lisp/nxml/rng-valid.el
@@ -377,8 +377,8 @@ The schema is set like `rng-auto-set-schema'."
377(defun rng-kill-timers () 377(defun rng-kill-timers ()
378 ;; rng-validate-timer and rng-validate-quick-timer have the 378 ;; rng-validate-timer and rng-validate-quick-timer have the
379 ;; permanent-local property, so that the timers can be 379 ;; permanent-local property, so that the timers can be
380 ;; cancelled even after changing mode. 380 ;; canceled even after changing mode.
381 ;; This function takes care of cancelling the timers and 381 ;; This function takes care of canceling the timers and
382 ;; then killing the local variables. 382 ;; then killing the local variables.
383 (when (local-variable-p 'rng-validate-timer) 383 (when (local-variable-p 'rng-validate-timer)
384 (when rng-validate-timer 384 (when rng-validate-timer
diff --git a/lisp/obsolete/old-whitespace.el b/lisp/obsolete/old-whitespace.el
index c33794f668d..0c0580b55dc 100644
--- a/lisp/obsolete/old-whitespace.el
+++ b/lisp/obsolete/old-whitespace.el
@@ -515,12 +515,12 @@ See `whitespace-buffer' docstring for a summary of the problems."
515 (whitespace-check-whitespace-mode current-prefix-arg) 515 (whitespace-check-whitespace-mode current-prefix-arg)
516 (if (and buffer-file-name whitespace-mode) 516 (if (and buffer-file-name whitespace-mode)
517 (let ((whitespace-any nil) 517 (let ((whitespace-any nil)
518 (whitespace-tabwith 8) 518 (whitespace-tabwidth 8)
519 (whitespace-tabwith-saved tab-width)) 519 (whitespace-tabwidth-saved tab-width))
520 520
521 ;; since all printable TABS should be 8, irrespective of how 521 ;; since all printable TABS should be 8, irrespective of how
522 ;; they are displayed. 522 ;; they are displayed.
523 (setq tab-width whitespace-tabwith) 523 (setq tab-width whitespace-tabwidth)
524 524
525 (if (and whitespace-check-buffer-leading 525 (if (and whitespace-check-buffer-leading
526 (whitespace-buffer-leading)) 526 (whitespace-buffer-leading))
@@ -562,7 +562,7 @@ See `whitespace-buffer' docstring for a summary of the problems."
562 (message "The region is now clean") 562 (message "The region is now clean")
563 (message "%s is now clean" buffer-file-name))) 563 (message "%s is now clean" buffer-file-name)))
564 (whitespace-update-modeline))) 564 (whitespace-update-modeline)))
565 (setq tab-width whitespace-tabwith-saved)))) 565 (setq tab-width whitespace-tabwidth-saved))))
566 566
567;;;###autoload 567;;;###autoload
568(defun whitespace-cleanup-region (s e) 568(defun whitespace-cleanup-region (s e)
diff --git a/lisp/obsolete/pgg.el b/lisp/obsolete/pgg.el
index 42030f7d502..876f3744bc2 100644
--- a/lisp/obsolete/pgg.el
+++ b/lisp/obsolete/pgg.el
@@ -174,7 +174,7 @@ is true, or else the output buffer is displayed."
174(defvar pgg-pending-timers (make-vector 7 0) 174(defvar pgg-pending-timers (make-vector 7 0)
175 "Hash table for managing scheduled pgg cache management timers. 175 "Hash table for managing scheduled pgg cache management timers.
176 176
177We associate key and timer, so the timer can be cancelled if a new 177We associate key and timer, so the timer can be canceled if a new
178timeout for the key is set while an old one is still pending.") 178timeout for the key is set while an old one is still pending.")
179 179
180(defun pgg-read-passphrase (prompt &optional key notruncate) 180(defun pgg-read-passphrase (prompt &optional key notruncate)
diff --git a/lisp/org/ChangeLog b/lisp/org/ChangeLog
index 1c8a3e72956..6f835c7bfa4 100644
--- a/lisp/org/ChangeLog
+++ b/lisp/org/ChangeLog
@@ -1,3 +1,8 @@
12011-12-06 Juanma Barranquero <lekktu@gmail.com>
2
3 * ob.el (org-babel-expand-body:generic, org-babel-number-p):
4 * ob-ref.el (org-babel-ref-parse): Fix typos.
5
12011-11-24 Juanma Barranquero <lekktu@gmail.com> 62011-11-24 Juanma Barranquero <lekktu@gmail.com>
2 7
3 * ob.el (org-babel-execute-src-block): Fix typo. 8 * ob.el (org-babel-execute-src-block): Fix typo.
@@ -278,7 +283,7 @@
278 283
279 * org-archive.el (org-archive-subtree): While it might be possible 284 * org-archive.el (org-archive-subtree): While it might be possible
280 to archive an headline of a temporary buffer (i.e. not visiting a 285 to archive an headline of a temporary buffer (i.e. not visiting a
281 file), it wouldn't be really sensical. 286 file), it wouldn't be really sensible.
282 287
2832011-07-28 Nicolas Goaziou <n.goaziou@gmail.com> 2882011-07-28 Nicolas Goaziou <n.goaziou@gmail.com>
284 289
@@ -4008,7 +4013,7 @@
4008 * org-list.el (org-list-blocks): New variable. 4013 * org-list.el (org-list-blocks): New variable.
4009 (org-list-context): New function. 4014 (org-list-context): New function.
4010 (org-list-full-item-re): New variable. 4015 (org-list-full-item-re): New variable.
4011 (org-list-struct-assoc-at-point): Use new varible. 4016 (org-list-struct-assoc-at-point): Use new variable.
4012 (org-list-struct): Rewrite of function. Now, list data is 4017 (org-list-struct): Rewrite of function. Now, list data is
4013 collected by looking at the list line after line. It reads the 4018 collected by looking at the list line after line. It reads the
4014 whole list each time because reading only a subtree was not enough 4019 whole list each time because reading only a subtree was not enough
@@ -7119,7 +7124,7 @@
71192010-11-11 Dan Davison <davison@stats.ox.ac.uk> 71242010-11-11 Dan Davison <davison@stats.ox.ac.uk>
7120 7125
7121 * ob.el (org-babel-get-src-block-info): Form info list correctly 7126 * ob.el (org-babel-get-src-block-info): Form info list correctly
7122 when parenthesised arguments are missing. 7127 when parenthesized arguments are missing.
7123 7128
71242010-11-11 Dan Davison <davison@stats.ox.ac.uk> 71292010-11-11 Dan Davison <davison@stats.ox.ac.uk>
7125 7130
@@ -8139,7 +8144,7 @@
81392010-11-11 Nicolas Goaziou <n.goaziou@gmail.com> 81442010-11-11 Nicolas Goaziou <n.goaziou@gmail.com>
8140 8145
8141 * org-list.el (org-insert-item-internal): New function to handle 8146 * org-list.el (org-insert-item-internal): New function to handle
8142 positionning and contents of an item being inserted at a specific 8147 positioning and contents of an item being inserted at a specific
8143 pos. It is not possible anymore to split a term in a description 8148 pos. It is not possible anymore to split a term in a description
8144 list or a checkbox when inserting a new item. 8149 list or a checkbox when inserting a new item.
8145 8150
@@ -9758,7 +9763,7 @@
9758 9763
97592010-07-19 Bastien Guerry <bzg@altern.org> 97642010-07-19 Bastien Guerry <bzg@altern.org>
9760 9765
9761 * org-timer.el (org-timer-set-timer): Fix bug about cancelling 9766 * org-timer.el (org-timer-set-timer): Fix bug about canceling
9762 timers. 9767 timers.
9763 9768
97642010-07-19 David Maus <dmaus@ictsoc.de> 97692010-07-19 David Maus <dmaus@ictsoc.de>
@@ -12582,7 +12587,7 @@
12582 buffer and at the position of the given clock. However, changes 12587 buffer and at the position of the given clock. However, changes
12583 to the current clock are local and have no effect on the user's 12588 to the current clock are local and have no effect on the user's
12584 active clock. This allows, for example, far any clock to be 12589 active clock. This allows, for example, far any clock to be
12585 cancelled without cancelling the active clock. 12590 canceled without canceling the active clock.
12586 (org-clock-clock-in): New inline function that switches the active 12591 (org-clock-clock-in): New inline function that switches the active
12587 clock to the given clock. If either the argument RESUME, or the 12592 clock to the given clock. If either the argument RESUME, or the
12588 global `org-clock-in-resume', are non-nil, it will resume a clock 12593 global `org-clock-in-resume', are non-nil, it will resume a clock
diff --git a/lisp/org/ob-ref.el b/lisp/org/ob-ref.el
index d0a2c14bee9..1e14021a364 100644
--- a/lisp/org/ob-ref.el
+++ b/lisp/org/ob-ref.el
@@ -69,7 +69,7 @@
69 "Parse a variable ASSIGNMENT in a header argument. 69 "Parse a variable ASSIGNMENT in a header argument.
70If the right hand side of the assignment has a literal value 70If the right hand side of the assignment has a literal value
71return that value, otherwise interpret as a reference to an 71return that value, otherwise interpret as a reference to an
72external resource and find it's value using 72external resource and find its value using
73`org-babel-ref-resolve'. Return a list with two elements. The 73`org-babel-ref-resolve'. Return a list with two elements. The
74first element of the list will be the name of the variable, and 74first element of the list will be the name of the variable, and
75the second will be an emacs-lisp representation of the value of 75the second will be an emacs-lisp representation of the value of
diff --git a/lisp/org/ob.el b/lisp/org/ob.el
index f34d1fbda9e..8bba4672169 100644
--- a/lisp/org/ob.el
+++ b/lisp/org/ob.el
@@ -464,7 +464,7 @@ block."
464 464
465(defun org-babel-expand-body:generic (body params &optional var-lines) 465(defun org-babel-expand-body:generic (body params &optional var-lines)
466 "Expand BODY with PARAMS. 466 "Expand BODY with PARAMS.
467Expand a block of code with org-babel according to it's header 467Expand a block of code with org-babel according to its header
468arguments. This generic implementation of body expansion is 468arguments. This generic implementation of body expansion is
469called for languages which have not defined their own specific 469called for languages which have not defined their own specific
470org-babel-expand-body:lang function." 470org-babel-expand-body:lang function."
@@ -2045,7 +2045,7 @@ appropriate."
2045 cell)) 2045 cell))
2046 2046
2047(defun org-babel-number-p (string) 2047(defun org-babel-number-p (string)
2048 "If STRING represents a number return it's value." 2048 "If STRING represents a number return its value."
2049 (if (and (string-match "^-?[0-9]*\\.?[0-9]*$" string) 2049 (if (and (string-match "^-?[0-9]*\\.?[0-9]*$" string)
2050 (= (length (substring string (match-beginning 0) 2050 (= (length (substring string (match-beginning 0)
2051 (match-end 0))) 2051 (match-end 0)))
diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el
index 2f4617f5146..a54f3c4c3d3 100644
--- a/lisp/org/org-agenda.el
+++ b/lisp/org/org-agenda.el
@@ -8331,7 +8331,7 @@ tag and (if present) the flagging note."
8331 (org-agenda-remove-flag hdmarker) 8331 (org-agenda-remove-flag hdmarker)
8332 (let ((win (get-buffer-window "*Flagging Note*"))) 8332 (let ((win (get-buffer-window "*Flagging Note*")))
8333 (and win (delete-window win))) 8333 (and win (delete-window win)))
8334 (message "Entry unflaged")) 8334 (message "Entry unflagged"))
8335 (setq note (org-entry-get hdmarker "THEFLAGGINGNOTE")) 8335 (setq note (org-entry-get hdmarker "THEFLAGGINGNOTE"))
8336 (unless note 8336 (unless note
8337 (error "No flagging note")) 8337 (error "No flagging note"))
@@ -8354,7 +8354,7 @@ tag and (if present) the flagging note."
8354 (org-entry-delete nil "THEFLAGGINGNOTE") 8354 (org-entry-delete nil "THEFLAGGINGNOTE")
8355 (setq newhead (org-get-heading))) 8355 (setq newhead (org-get-heading)))
8356 (org-agenda-change-all-lines newhead marker) 8356 (org-agenda-change-all-lines newhead marker)
8357 (message "Entry unflaged"))) 8357 (message "Entry unflagged")))
8358 8358
8359(defun org-agenda-get-any-marker (&optional pos) 8359(defun org-agenda-get-any-marker (&optional pos)
8360 (or (get-text-property (or pos (point-at-bol)) 'org-hd-marker) 8360 (or (get-text-property (or pos (point-at-bol)) 'org-hd-marker)
diff --git a/lisp/org/org-clock.el b/lisp/org/org-clock.el
index 6d82d4529b6..09b646d40ba 100644
--- a/lisp/org/org-clock.el
+++ b/lisp/org/org-clock.el
@@ -328,7 +328,7 @@ to add an effort property.")
328 "Hook run when stopping the current clock.") 328 "Hook run when stopping the current clock.")
329 329
330(defvar org-clock-cancel-hook nil 330(defvar org-clock-cancel-hook nil
331 "Hook run when cancelling the current clock.") 331 "Hook run when canceling the current clock.")
332(defvar org-clock-goto-hook nil 332(defvar org-clock-goto-hook nil
333 "Hook run when selecting the currently clocked-in entry.") 333 "Hook run when selecting the currently clocked-in entry.")
334(defvar org-clock-has-been-used nil 334(defvar org-clock-has-been-used nil
@@ -346,7 +346,7 @@ to add an effort property.")
346(defvar org-clock-start-time "") 346(defvar org-clock-start-time "")
347 347
348(defvar org-clock-leftover-time nil 348(defvar org-clock-leftover-time nil
349 "If non-nil, user cancelled a clock; this is when leftover time started.") 349 "If non-nil, user canceled a clock; this is when leftover time started.")
350 350
351(defvar org-clock-effort "" 351(defvar org-clock-effort ""
352 "Effort estimate of the currently clocking task.") 352 "Effort estimate of the currently clocking task.")
diff --git a/lisp/org/org-list.el b/lisp/org/org-list.el
index a86c145a9ee..72fc71854e2 100644
--- a/lisp/org/org-list.el
+++ b/lisp/org/org-list.el
@@ -68,7 +68,7 @@
68 68
69;; Computing a list structure can be a costly operation on huge lists 69;; Computing a list structure can be a costly operation on huge lists
70;; (a few thousand lines long). Thus, code should follow the rule : 70;; (a few thousand lines long). Thus, code should follow the rule :
71;; "collect once, use many". As a corollary, it is usally a bad idea 71;; "collect once, use many". As a corollary, it is usually a bad idea
72;; to use directly an interactive function inside the code, as those, 72;; to use directly an interactive function inside the code, as those,
73;; being independent entities, read the whole list structure another 73;; being independent entities, read the whole list structure another
74;; time. 74;; time.
diff --git a/lisp/org/org-protocol.el b/lisp/org/org-protocol.el
index 655123cafa9..bbb93b07fc9 100644
--- a/lisp/org/org-protocol.el
+++ b/lisp/org/org-protocol.el
@@ -145,8 +145,8 @@
145(defgroup org-protocol nil 145(defgroup org-protocol nil
146 "Intercept calls from emacsclient to trigger custom actions. 146 "Intercept calls from emacsclient to trigger custom actions.
147 147
148This is done by advising `server-visit-files' to scann the list of filenames 148This is done by advising `server-visit-files' to scan the list of filenames
149for `org-protocol-the-protocol' and sub-procols defined in 149for `org-protocol-the-protocol' and sub-protocols defined in
150`org-protocol-protocol-alist' and `org-protocol-protocol-alist-default'." 150`org-protocol-protocol-alist' and `org-protocol-protocol-alist-default'."
151 :version "22.1" 151 :version "22.1"
152 :group 'convenience 152 :group 'convenience
@@ -546,8 +546,8 @@ as filename."
546 (when (string-match proto fname) 546 (when (string-match proto fname)
547 (let* ((func (plist-get (cdr prolist) :function)) 547 (let* ((func (plist-get (cdr prolist) :function))
548 (greedy (plist-get (cdr prolist) :greedy)) 548 (greedy (plist-get (cdr prolist) :greedy))
549 (splitted (split-string fname proto)) 549 (split (split-string fname proto))
550 (result (if greedy restoffiles (cadr splitted)))) 550 (result (if greedy restoffiles (cadr split))))
551 (when (plist-get (cdr prolist) :kill-client) 551 (when (plist-get (cdr prolist) :kill-client)
552 (message "Greedy org-protocol handler. Killing client.") 552 (message "Greedy org-protocol handler. Killing client.")
553 (server-edit)) 553 (server-edit))
diff --git a/lisp/org/org-publish.el b/lisp/org/org-publish.el
index 0c924cd9f07..7a0d7b56e22 100644
--- a/lisp/org/org-publish.el
+++ b/lisp/org/org-publish.el
@@ -278,12 +278,12 @@ in the sitemap."
278 :type 'string) 278 :type 'string)
279 279
280(defcustom org-publish-sitemap-file-entry-format "%t" 280(defcustom org-publish-sitemap-file-entry-format "%t"
281 "How a sitemap file entry is formated. 281 "How a sitemap file entry is formatted.
282You could use brackets to delimit on what part the link will be. 282You could use brackets to delimit on what part the link will be.
283 283
284%t is the title. 284%t is the title.
285%a is the author. 285%a is the author.
286%d is the date formated using `org-publish-sitemap-date-format'." 286%d is the date formatted using `org-publish-sitemap-date-format'."
287 :group 'org-publish 287 :group 'org-publish
288 :type 'string) 288 :type 'string)
289 289
@@ -715,7 +715,7 @@ If :auto-sitemap is set, publish the sitemap too.
715If :makeindex is set, also produce a file theindex.org." 715If :makeindex is set, also produce a file theindex.org."
716 (mapc 716 (mapc
717 (lambda (project) 717 (lambda (project)
718 ;; Each project uses it's own cache file: 718 ;; Each project uses its own cache file:
719 (org-publish-initialize-cache (car project)) 719 (org-publish-initialize-cache (car project))
720 (let* 720 (let*
721 ((project-plist (cdr project)) 721 ((project-plist (cdr project))
diff --git a/lisp/org/org-taskjuggler.el b/lisp/org/org-taskjuggler.el
index 1fb3114bf3f..45b16aecf12 100644
--- a/lisp/org/org-taskjuggler.el
+++ b/lisp/org/org-taskjuggler.el
@@ -571,7 +571,7 @@ with separator \"\n\"."
571 (and filtered-items (mapconcat 'identity filtered-items "\n")))) 571 (and filtered-items (mapconcat 'identity filtered-items "\n"))))
572 572
573(defun org-taskjuggler-get-attributes (item attributes) 573(defun org-taskjuggler-get-attributes (item attributes)
574 "Return all attribute as a single formated string. ITEM is an 574 "Return all attributes as a single formatted string. ITEM is an
575alist representing either a resource or a task. ATTRIBUTES is a 575alist representing either a resource or a task. ATTRIBUTES is a
576list of symbols. Only entries from ITEM are considered that are 576list of symbols. Only entries from ITEM are considered that are
577listed in ATTRIBUTES." 577listed in ATTRIBUTES."
diff --git a/lisp/org/org.el b/lisp/org/org.el
index afd4ea6b4c3..8aca74e69cc 100644
--- a/lisp/org/org.el
+++ b/lisp/org/org.el
@@ -2580,7 +2580,7 @@ To turn this on on a per-file basis, insert anywhere in the file:
2580(defcustom org-time-stamp-custom-formats 2580(defcustom org-time-stamp-custom-formats
2581 '("<%m/%d/%y %a>" . "<%m/%d/%y %a %H:%M>") ; american 2581 '("<%m/%d/%y %a>" . "<%m/%d/%y %a %H:%M>") ; american
2582 "Custom formats for time stamps. See `format-time-string' for the syntax. 2582 "Custom formats for time stamps. See `format-time-string' for the syntax.
2583These are overlayed over the default ISO format if the variable 2583These are overlaid over the default ISO format if the variable
2584`org-display-custom-times' is set. Time like %H:%M should be at the 2584`org-display-custom-times' is set. Time like %H:%M should be at the
2585end of the second format. The custom formats are also honored by export 2585end of the second format. The custom formats are also honored by export
2586commands, if custom time display is turned on at the time of export." 2586commands, if custom time display is turned on at the time of export."
@@ -15109,7 +15109,7 @@ The command returns the inserted time stamp."
15109 (org-restart-font-lock) 15109 (org-restart-font-lock)
15110 (setq org-table-may-need-update t) 15110 (setq org-table-may-need-update t)
15111 (if org-display-custom-times 15111 (if org-display-custom-times
15112 (message "Time stamps are overlayed with custom format") 15112 (message "Time stamps are overlaid with custom format")
15113 (message "Time stamp overlays removed"))) 15113 (message "Time stamp overlays removed")))
15114 15114
15115(defun org-display-custom-time (beg end) 15115(defun org-display-custom-time (beg end)
@@ -18961,7 +18961,7 @@ contexts are:
18961:target on a <<target>> 18961:target on a <<target>>
18962:radio-target on a <<<radio-target>>> 18962:radio-target on a <<<radio-target>>>
18963:latex-fragment on a LaTeX fragment 18963:latex-fragment on a LaTeX fragment
18964:latex-preview on a LaTeX fragment with overlayed preview image 18964:latex-preview on a LaTeX fragment with overlaid preview image
18965 18965
18966This function expects the position to be visible because it uses font-lock 18966This function expects the position to be visible because it uses font-lock
18967faces as a help to recognize the following contexts: :table-special, :link, 18967faces as a help to recognize the following contexts: :table-special, :link,
diff --git a/lisp/pcmpl-gnu.el b/lisp/pcmpl-gnu.el
index 608a9dc2e88..3b2a944f5bb 100644
--- a/lisp/pcmpl-gnu.el
+++ b/lisp/pcmpl-gnu.el
@@ -35,7 +35,7 @@
35;; User Variables: 35;; User Variables:
36 36
37(defcustom pcmpl-gnu-makefile-regexps 37(defcustom pcmpl-gnu-makefile-regexps
38 '("\\`GNUmakefile" "\\`Makefile" "\\.mak\\'") 38 '("\\`GNUmakefile" "\\`[Mm]akefile" "\\.ma?k\\'")
39 "A list of regexps that will match Makefile names." 39 "A list of regexps that will match Makefile names."
40 :type '(repeat regexp) 40 :type '(repeat regexp)
41 :group 'pcmpl-gnu) 41 :group 'pcmpl-gnu)
@@ -99,7 +99,10 @@
99 "Completion for GNU `make'." 99 "Completion for GNU `make'."
100 (let ((pcomplete-help "(make)Top")) 100 (let ((pcomplete-help "(make)Top"))
101 (pcomplete-opt "bmC/def(pcmpl-gnu-makefile-names)hiI/j?kl?no.pqrsStvwW.") 101 (pcomplete-opt "bmC/def(pcmpl-gnu-makefile-names)hiI/j?kl?no.pqrsStvwW.")
102 (while (pcomplete-here (pcmpl-gnu-make-rule-names) nil 'identity)))) 102 (while (pcomplete-here (completion-table-in-turn
103 (pcmpl-gnu-make-rule-names)
104 (pcomplete-entries))
105 nil 'identity))))
103 106
104(defun pcmpl-gnu-makefile-names () 107(defun pcmpl-gnu-makefile-names ()
105 "Return a list of possible makefile names." 108 "Return a list of possible makefile names."
@@ -109,14 +112,16 @@
109 "Return a list of possible make rule names in MAKEFILE." 112 "Return a list of possible make rule names in MAKEFILE."
110 (let* ((minus-f (member "-f" pcomplete-args)) 113 (let* ((minus-f (member "-f" pcomplete-args))
111 (makefile (or (cadr minus-f) 114 (makefile (or (cadr minus-f)
112 (if (file-exists-p "GNUmakefile") 115 (cond
113 "GNUmakefile" 116 ((file-exists-p "GNUmakefile") "GNUmakefile")
114 "Makefile"))) 117 ((file-exists-p "makefile") "makefile")
118 (t "Makefile"))))
115 rules) 119 rules)
116 (if (not (file-readable-p makefile)) 120 (if (not (file-readable-p makefile))
117 (unless minus-f (list "-f")) 121 (unless minus-f (list "-f"))
118 (with-temp-buffer 122 (with-temp-buffer
119 (insert-file-contents-literally makefile) 123 (ignore-errors ;Could be a directory or something.
124 (insert-file-contents makefile))
120 (while (re-search-forward 125 (while (re-search-forward
121 (concat "^\\s-*\\([^\n#%.$][^:=\n]*\\)\\s-*:[^=]") nil t) 126 (concat "^\\s-*\\([^\n#%.$][^:=\n]*\\)\\s-*:[^=]") nil t)
122 (setq rules (append (split-string (match-string 1)) rules)))) 127 (setq rules (append (split-string (match-string 1)) rules))))
diff --git a/lisp/play/gametree.el b/lisp/play/gametree.el
index 4d514d2d0aa..e7ed146b4a1 100644
--- a/lisp/play/gametree.el
+++ b/lisp/play/gametree.el
@@ -549,7 +549,7 @@ Argument is a character, naming the register."
549(defun gametree-save-and-hack-layout () 549(defun gametree-save-and-hack-layout ()
550 "Save the current tree layout and hack the file local variable spec. 550 "Save the current tree layout and hack the file local variable spec.
551This function saves the current layout in `gametree-local-layout' and, 551This function saves the current layout in `gametree-local-layout' and,
552if a local file varible specification for this variable exists in the 552if a local file variable specification for this variable exists in the
553buffer, it is replaced by the new value. See the documentation for 553buffer, it is replaced by the new value. See the documentation for
554`gametree-local-layout' for more information." 554`gametree-local-layout' for more information."
555 (interactive) 555 (interactive)
diff --git a/lisp/printing.el b/lisp/printing.el
index 2dea24149a7..a604b9f1027 100644
--- a/lisp/printing.el
+++ b/lisp/printing.el
@@ -2536,7 +2536,7 @@ LPR-PRINT It's a symbol function for text printing. It's invoked with
2536 nil, it's used (point-max). 2536 nil, it's used (point-max).
2537 2537
2538PS-PRINT It's a symbol function for PostScript printing. It's invoked 2538PS-PRINT It's a symbol function for PostScript printing. It's invoked
2539 with 3 arguments: n-up printing, file name and the list: 2539 with three arguments: n-up printing, file name and the list:
2540 (HEADER-LINES LEFT-HEADER RIGHT-HEADER DEFAULT...). 2540 (HEADER-LINES LEFT-HEADER RIGHT-HEADER DEFAULT...).
2541 2541
2542 Usually PS-PRINT function prepares the environment or buffer 2542 Usually PS-PRINT function prepares the environment or buffer
@@ -4710,12 +4710,12 @@ Interactively, you have the following situations:
4710 4710
4711 M-x pr-ps-fast-fire RET 4711 M-x pr-ps-fast-fire RET
4712 The command prompts the user for a N-UP value and printing will 4712 The command prompts the user for a N-UP value and printing will
4713 immediatelly be done using the current active printer. 4713 immediately be done using the current active printer.
4714 4714
4715 C-u M-x pr-ps-fast-fire RET 4715 C-u M-x pr-ps-fast-fire RET
4716 C-u 0 M-x pr-ps-fast-fire RET 4716 C-u 0 M-x pr-ps-fast-fire RET
4717 The command prompts the user for a N-UP value and also for a current 4717 The command prompts the user for a N-UP value and also for a current
4718 PostScript printer, then printing will immediatelly be done using the new 4718 PostScript printer, then printing will immediately be done using the new
4719 current active printer. 4719 current active printer.
4720 4720
4721 C-u 1 M-x pr-ps-fast-fire RET 4721 C-u 1 M-x pr-ps-fast-fire RET
@@ -4736,7 +4736,7 @@ zero and the argument SELECT is treated as follows:
4736 If it's nil, send the image to the printer. 4736 If it's nil, send the image to the printer.
4737 4737
4738 If it's a list or an integer lesser or equal to zero, the command prompts 4738 If it's a list or an integer lesser or equal to zero, the command prompts
4739 the user for a current PostScript printer, then printing will immediatelly 4739 the user for a current PostScript printer, then printing will immediately
4740 be done using the new current active printer. 4740 be done using the new current active printer.
4741 4741
4742 If it's an integer equal to 1, the command prompts the user for a file name 4742 If it's an integer equal to 1, the command prompts the user for a file name
@@ -4749,7 +4749,7 @@ zero and the argument SELECT is treated as follows:
4749 instead of sending it to the printer. 4749 instead of sending it to the printer.
4750 4750
4751 If it's a symbol which it's defined in `pr-ps-printer-alist', it's the new 4751 If it's a symbol which it's defined in `pr-ps-printer-alist', it's the new
4752 active printer and printing will immediatelly be done using the new active 4752 active printer and printing will immediately be done using the new active
4753 printer. 4753 printer.
4754 4754
4755 Otherwise, send the image to the printer. 4755 Otherwise, send the image to the printer.
@@ -4800,7 +4800,7 @@ Noninteractively, the argument SELECT-PRINTER is treated as follows:
4800 If it's nil, the printing is sent to the current active text printer. 4800 If it's nil, the printing is sent to the current active text printer.
4801 4801
4802 If it's a symbol which it's defined in `pr-txt-printer-alist', it's the new 4802 If it's a symbol which it's defined in `pr-txt-printer-alist', it's the new
4803 active printer and printing will immediatelly be done using the new active 4803 active printer and printing will immediately be done using the new active
4804 printer. 4804 printer.
4805 4805
4806 If it's non-nil, the command prompts the user for a new active text printer. 4806 If it's non-nil, the command prompts the user for a new active text printer.
diff --git a/lisp/proced.el b/lisp/proced.el
index e4987bd926c..baee7c0f6ee 100644
--- a/lisp/proced.el
+++ b/lisp/proced.el
@@ -1332,7 +1332,7 @@ Prefix ARG controls sort order, see `proced-sort-interactive'."
1332 (proced-sort-interactive key arg) 1332 (proced-sort-interactive key arg)
1333 (message "No sorter defined here.")))))) 1333 (message "No sorter defined here."))))))
1334 1334
1335;;; Formating 1335;;; Formatting
1336 1336
1337(defun proced-format-time (time) 1337(defun proced-format-time (time)
1338 "Format time interval TIME." 1338 "Format time interval TIME."
diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el
index 64734420a8c..17ff4bd32a6 100644
--- a/lisp/progmodes/ada-mode.el
+++ b/lisp/progmodes/ada-mode.el
@@ -499,7 +499,7 @@ Used to define `ada-*-keywords.'"))
499 499
500(defvar ada-case-exception-substring '() 500(defvar ada-case-exception-substring '()
501 "Alist of substrings (entities) that have special casing. 501 "Alist of substrings (entities) that have special casing.
502The substrings are detected for word constituant when the word 502The substrings are detected for word constituent when the word
503is not itself in `ada-case-exception', and only for substrings that 503is not itself in `ada-case-exception', and only for substrings that
504either are at the beginning or end of the word, or start after '_'.") 504either are at the beginning or end of the word, or start after '_'.")
505 505
@@ -1773,7 +1773,7 @@ ATTENTION: This function might take very long for big buffers!"
1773;; `ada-insert-paramlist'. 1773;; `ada-insert-paramlist'.
1774;; Both steps are called from `ada-format-paramlist'. 1774;; Both steps are called from `ada-format-paramlist'.
1775;; Note: Comments inside the parameter list are lost. 1775;; Note: Comments inside the parameter list are lost.
1776;; The syntax has to be correct, or the reformating will fail. 1776;; The syntax has to be correct, or the reformatting will fail.
1777;;-------------------------------------------------------------- 1777;;--------------------------------------------------------------
1778 1778
1779(defun ada-format-paramlist () 1779(defun ada-format-paramlist ()
@@ -2139,7 +2139,7 @@ command like:
2139 2139
2140 (while command-line-args-left 2140 (while command-line-args-left
2141 (let ((source (car command-line-args-left))) 2141 (let ((source (car command-line-args-left)))
2142 (message "Formating %s" source) 2142 (message "Formatting %s" source)
2143 (find-file source) 2143 (find-file source)
2144 (ada-indent-region (point-min) (point-max)) 2144 (ada-indent-region (point-min) (point-max))
2145 (ada-adjust-case-buffer) 2145 (ada-adjust-case-buffer)
diff --git a/lisp/progmodes/ada-stmt.el b/lisp/progmodes/ada-stmt.el
index e48055c9f50..b33da441eeb 100644
--- a/lisp/progmodes/ada-stmt.el
+++ b/lisp/progmodes/ada-stmt.el
@@ -56,7 +56,7 @@
56;; BUGS: 56;; BUGS:
57;;;> I have the following suggestions for the function template: 1) I 57;;;> I have the following suggestions for the function template: 1) I
58;;;> don't want it automatically assigning it a name for the return variable. I 58;;;> don't want it automatically assigning it a name for the return variable. I
59;;;> never want it to be called "Result" because that is nondescriptive. If you 59;;;> never want it to be called "Result" because that is nondescript. If you
60;;;> must define a variable, give me the ability to specify its name. 60;;;> must define a variable, give me the ability to specify its name.
61;;;> 61;;;>
62;;;> 2) You do not provide a type for variable 'Result'. Its type is the same 62;;;> 2) You do not provide a type for variable 'Result'. Its type is the same
diff --git a/lisp/progmodes/ada-xref.el b/lisp/progmodes/ada-xref.el
index 2f6a7be393a..f30457992a3 100644
--- a/lisp/progmodes/ada-xref.el
+++ b/lisp/progmodes/ada-xref.el
@@ -30,7 +30,7 @@
30;;; for lookup and completion in Ada mode. 30;;; for lookup and completion in Ada mode.
31;;; 31;;;
32;;; If a file *.`adp' exists in the ada-file directory, then it is 32;;; If a file *.`adp' exists in the ada-file directory, then it is
33;;; read for configuration informations. It is read only the first 33;;; read for configuration information. It is read only the first
34;;; time a cross-reference is asked for, and is not read later. 34;;; time a cross-reference is asked for, and is not read later.
35 35
36;;; You need Emacs >= 20.2 to run this package 36;;; You need Emacs >= 20.2 to run this package
diff --git a/lisp/progmodes/cc-awk.el b/lisp/progmodes/cc-awk.el
index 8213a83461b..ef67a18d807 100644
--- a/lisp/progmodes/cc-awk.el
+++ b/lisp/progmodes/cc-awk.el
@@ -545,7 +545,7 @@
545(defun c-awk-vsemi-status-unknown-p () 545(defun c-awk-vsemi-status-unknown-p ()
546 ;; Are we unsure whether there is a virtual semicolon on the current line? 546 ;; Are we unsure whether there is a virtual semicolon on the current line?
547 ;; DO NOT under any circumstances attempt to calculate this; that would 547 ;; DO NOT under any circumstances attempt to calculate this; that would
548 ;; defeat the (admittedly kludgey) purpose of this function, which is to 548 ;; defeat the (admittedly kludgy) purpose of this function, which is to
549 ;; prevent an infinite recursion in c-beginning-of-statement-1 when point 549 ;; prevent an infinite recursion in c-beginning-of-statement-1 when point
550 ;; starts at a `while' token. 550 ;; starts at a `while' token.
551 (not (c-get-char-property (c-point 'eol) 'c-awk-NL-prop))) 551 (not (c-get-char-property (c-point 'eol) 'c-awk-NL-prop)))
@@ -894,9 +894,9 @@ std\\(err\\|in\\|out\\)\\|user\\)\\)\\>\
894 ;; Keywords. 894 ;; Keywords.
895 (concat "\\<" 895 (concat "\\<"
896 (regexp-opt 896 (regexp-opt
897 '("BEGIN" "END" "break" "continue" "delete" "do" "else" 897 '("BEGIN" "END" "break" "case" "continue" "default" "delete"
898 "exit" "for" "getline" "if" "in" "next" "nextfile" 898 "do" "else" "exit" "for" "getline" "if" "in" "next"
899 "return" "while") 899 "nextfile" "return" "switch" "while")
900 t) "\\>") 900 t) "\\>")
901 901
902 ;; Builtins. 902 ;; Builtins.
diff --git a/lisp/progmodes/cc-cmds.el b/lisp/progmodes/cc-cmds.el
index 8e4ac92d96f..686695bc838 100644
--- a/lisp/progmodes/cc-cmds.el
+++ b/lisp/progmodes/cc-cmds.el
@@ -1360,7 +1360,7 @@ No indentation or other \"electric\" behavior is performed."
1360 ;; Determine where we are with respect to functions (or other brace 1360 ;; Determine where we are with respect to functions (or other brace
1361 ;; constructs, included in the term "function" in the rest of this comment). 1361 ;; constructs, included in the term "function" in the rest of this comment).
1362 ;; Point is assumed to be outside any macro or literal. 1362 ;; Point is assumed to be outside any macro or literal.
1363 ;; This is used by c-\(begining\|end\)-of-defun. 1363 ;; This is used by c-\(beginning\|end\)-of-defun.
1364 ;; 1364 ;;
1365 ;; Return one of these symbols: 1365 ;; Return one of these symbols:
1366 ;; at-header : we're at the start of a function's header. 1366 ;; at-header : we're at the start of a function's header.
@@ -2051,7 +2051,7 @@ function does not require the declaration to contain a brace block."
2051 (c-narrow-to-comment-innards range) ; This may move point back. 2051 (c-narrow-to-comment-innards range) ; This may move point back.
2052 (let* ((here (point)) 2052 (let* ((here (point))
2053 last 2053 last
2054 (here-filler ; matches WS and comment-prefices at point. 2054 (here-filler ; matches WS and comment-prefixes at point.
2055 (concat "\\=\\(^[ \t]*\\(" c-current-comment-prefix "\\)" 2055 (concat "\\=\\(^[ \t]*\\(" c-current-comment-prefix "\\)"
2056 "\\|[ \t\n\r\f]\\)*")) 2056 "\\|[ \t\n\r\f]\\)*"))
2057 (prefix-at-bol-here ; matches WS and prefix at BOL, just before point 2057 (prefix-at-bol-here ; matches WS and prefix at BOL, just before point
@@ -2071,7 +2071,7 @@ function does not require the declaration to contain a brace block."
2071 2071
2072 ;; Now seek successively earlier sentence ends between PAR-BEG and 2072 ;; Now seek successively earlier sentence ends between PAR-BEG and
2073 ;; HERE, until the "start of sentence" following it is earlier than 2073 ;; HERE, until the "start of sentence" following it is earlier than
2074 ;; HERE, or we hit PAR-BEG. Beware of comment prefices! 2074 ;; HERE, or we hit PAR-BEG. Beware of comment prefixes!
2075 (while (and (re-search-backward (c-sentence-end) par-beg 'limit) 2075 (while (and (re-search-backward (c-sentence-end) par-beg 'limit)
2076 (setq last (point)) 2076 (setq last (point))
2077 (goto-char (match-end 0)) ; tentative beginning of sentence 2077 (goto-char (match-end 0)) ; tentative beginning of sentence
diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el
index c91fe13543a..2991b511830 100644
--- a/lisp/progmodes/cc-defs.el
+++ b/lisp/progmodes/cc-defs.el
@@ -473,7 +473,7 @@ various buffer change hooks."
473 473
474 (let ((saved-undo-list (elt saved-state 0))) 474 (let ((saved-undo-list (elt saved-state 0)))
475 (if (eq buffer-undo-list saved-undo-list) 475 (if (eq buffer-undo-list saved-undo-list)
476 ;; No change was done afterall. 476 ;; No change was done after all.
477 (setq buffer-undo-list (cdr saved-undo-list)) 477 (setq buffer-undo-list (cdr saved-undo-list))
478 478
479 (if keep 479 (if keep
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index 9544c4f8728..0865ddfed69 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -195,9 +195,6 @@
195 (not prevstate) 195 (not prevstate)
196 (> arg 0))) 196 (> arg 0)))
197 197
198;; Dynamically bound cache for `c-in-literal'.
199(defvar c-in-literal-cache t)
200
201 198
202;; Basic handling of preprocessor directives. 199;; Basic handling of preprocessor directives.
203 200
@@ -2093,28 +2090,35 @@ comment at the start of cc-engine.el for more info."
2093;; `c-state-literal-at'. 2090;; `c-state-literal-at'.
2094 2091
2095(defsubst c-state-pp-to-literal (from to) 2092(defsubst c-state-pp-to-literal (from to)
2096 ;; Do a parse-partial-sexp from FROM to TO, returning the bounds of any 2093 ;; Do a parse-partial-sexp from FROM to TO, returning either
2097 ;; literal at TO as a cons, otherwise NIL. 2094 ;; (STATE TYPE (BEG . END)) if TO is in a literal; or
2098 ;; FROM must not be in a literal, and the buffer should already be wide 2095 ;; (STATE) otherwise,
2099 ;; enough. 2096 ;; where STATE is the parsing state at TO, TYPE is the type of the literal
2097 ;; (one of 'c, 'c++, 'string) and (BEG . END) is the boundaries of the literal.
2098 ;;
2099 ;; Only elements 3 (in a string), 4 (in a comment), 5 (following a quote),
2100 ;; 7 (comment type) and 8 (start of comment/string) (and possibly 9) of
2101 ;; STATE are valid.
2100 (save-excursion 2102 (save-excursion
2101 (let ((s (parse-partial-sexp from to))) 2103 (let ((s (parse-partial-sexp from to))
2104 ty)
2102 (when (or (nth 3 s) (nth 4 s)) ; in a string or comment 2105 (when (or (nth 3 s) (nth 4 s)) ; in a string or comment
2106 (setq ty (cond
2107 ((nth 3 s) 'string)
2108 ((eq (nth 7 s) t) 'c++)
2109 (t 'c)))
2103 (parse-partial-sexp (point) (point-max) 2110 (parse-partial-sexp (point) (point-max)
2104 nil ; TARGETDEPTH 2111 nil ; TARGETDEPTH
2105 nil ; STOPBEFORE 2112 nil ; STOPBEFORE
2106 s ; OLDSTATE 2113 s ; OLDSTATE
2107 'syntax-table) ; stop at end of literal 2114 'syntax-table)) ; stop at end of literal
2108 (cons (nth 8 s) (point)))))) 2115 (if ty
2116 `(,s ,ty (,(nth 8 s) . ,(point)))
2117 `(,s)))))
2109 2118
2110(defun c-state-literal-at (here) 2119(defun c-state-safe-place (here)
2111 ;; If position HERE is inside a literal, return (START . END), the 2120 ;; Return a buffer position before HERE which is "safe", i.e. outside any
2112 ;; boundaries of the literal (which may be outside the accessible bit of the 2121 ;; string, comment, or macro.
2113 ;; buffer). Otherwise, return nil.
2114 ;;
2115 ;; This function is almost the same as `c-literal-limits'. It differs in
2116 ;; that it is a lower level function, and that it rigourously follows the
2117 ;; syntax from BOB, whereas `c-literal-limits' uses a "local" safe position.
2118 ;; 2122 ;;
2119 ;; NOTE: This function manipulates `c-state-nonlit-pos-cache'. This cache 2123 ;; NOTE: This function manipulates `c-state-nonlit-pos-cache'. This cache
2120 ;; MAY NOT contain any positions within macros, since macros are frequently 2124 ;; MAY NOT contain any positions within macros, since macros are frequently
@@ -2137,7 +2141,7 @@ comment at the start of cc-engine.el for more info."
2137 2141
2138 (while (<= (setq npos (+ pos c-state-nonlit-pos-interval)) 2142 (while (<= (setq npos (+ pos c-state-nonlit-pos-interval))
2139 here) 2143 here)
2140 (setq lit (c-state-pp-to-literal pos npos)) 2144 (setq lit (car (cddr (c-state-pp-to-literal pos npos))))
2141 (setq pos (or (cdr lit) npos)) ; end of literal containing npos. 2145 (setq pos (or (cdr lit) npos)) ; end of literal containing npos.
2142 (goto-char pos) 2146 (goto-char pos)
2143 (when (and (c-beginning-of-macro) (/= (point) pos)) 2147 (when (and (c-beginning-of-macro) (/= (point) pos))
@@ -2148,9 +2152,22 @@ comment at the start of cc-engine.el for more info."
2148 2152
2149 (if (> pos c-state-nonlit-pos-cache-limit) 2153 (if (> pos c-state-nonlit-pos-cache-limit)
2150 (setq c-state-nonlit-pos-cache-limit pos)) 2154 (setq c-state-nonlit-pos-cache-limit pos))
2151 (if (< pos here) 2155 pos))))
2152 (setq lit (c-state-pp-to-literal pos here))) 2156
2153 lit)))) 2157(defun c-state-literal-at (here)
2158 ;; If position HERE is inside a literal, return (START . END), the
2159 ;; boundaries of the literal (which may be outside the accessible bit of the
2160 ;; buffer). Otherwise, return nil.
2161 ;;
2162 ;; This function is almost the same as `c-literal-limits'. Previously, it
2163 ;; differed in that it was a lower level function, and that it rigourously
2164 ;; followed the syntax from BOB. `c-literal-limits' is now (2011-12)
2165 ;; virtually identical to this function.
2166 (save-restriction
2167 (widen)
2168 (save-excursion
2169 (let ((pos (c-state-safe-place here)))
2170 (car (cddr (c-state-pp-to-literal pos here)))))))
2154 2171
2155(defsubst c-state-lit-beg (pos) 2172(defsubst c-state-lit-beg (pos)
2156 ;; Return the start of the literal containing POS, or POS itself. 2173 ;; Return the start of the literal containing POS, or POS itself.
@@ -4181,7 +4198,7 @@ comment at the start of cc-engine.el for more info."
4181 4198
4182;; Tools for handling comments and string literals. 4199;; Tools for handling comments and string literals.
4183 4200
4184(defun c-slow-in-literal (&optional lim detect-cpp) 4201(defun c-in-literal (&optional lim detect-cpp)
4185 "Return the type of literal point is in, if any. 4202 "Return the type of literal point is in, if any.
4186The return value is `c' if in a C-style comment, `c++' if in a C++ 4203The return value is `c' if in a C-style comment, `c++' if in a C++
4187style comment, `string' if in a string literal, `pound' if DETECT-CPP 4204style comment, `string' if in a string literal, `pound' if DETECT-CPP
@@ -4194,67 +4211,12 @@ The last point calculated is cached if the cache is enabled, i.e. if
4194 4211
4195Note that this function might do hidden buffer changes. See the 4212Note that this function might do hidden buffer changes. See the
4196comment at the start of cc-engine.el for more info." 4213comment at the start of cc-engine.el for more info."
4197 4214 (let* ((safe-place (c-state-safe-place (point)))
4198 (if (and (vectorp c-in-literal-cache) 4215 (lit (c-state-pp-to-literal safe-place (point))))
4199 (= (point) (aref c-in-literal-cache 0))) 4216 (or (cadr lit)
4200 (aref c-in-literal-cache 1) 4217 (and detect-cpp
4201 (let ((rtn (save-excursion 4218 (save-excursion (c-beginning-of-macro))
4202 (let* ((pos (point)) 4219 'pound))))
4203 (lim (or lim (progn
4204 (c-beginning-of-syntax)
4205 (point))))
4206 (state (parse-partial-sexp lim pos)))
4207 (cond
4208 ((elt state 3) 'string)
4209 ((elt state 4) (if (elt state 7) 'c++ 'c))
4210 ((and detect-cpp (c-beginning-of-macro lim)) 'pound)
4211 (t nil))))))
4212 ;; cache this result if the cache is enabled
4213 (if (not c-in-literal-cache)
4214 (setq c-in-literal-cache (vector (point) rtn)))
4215 rtn)))
4216
4217;; XEmacs has a built-in function that should make this much quicker.
4218;; I don't think we even need the cache, which makes our lives more
4219;; complicated anyway. In this case, lim is only used to detect
4220;; cpp directives.
4221;;
4222;; Note that there is a bug in XEmacs's buffer-syntactic-context when used in
4223;; conjunction with syntax-table-properties. The bug is present in, e.g.,
4224;; XEmacs 21.4.4. It manifested itself thus:
4225;;
4226;; Starting with an empty AWK Mode buffer, type
4227;; /regexp/ {<C-j>
4228;; Point gets wrongly left at column 0, rather than being indented to tab-width.
4229;;
4230;; AWK Mode is designed such that when the first / is typed, it gets the
4231;; syntax-table property "string fence". When the second / is typed, BOTH /s
4232;; are given the s-t property "string". However, buffer-syntactic-context
4233;; fails to take account of the change of the s-t property on the opening / to
4234;; "string", and reports that the { is within a string started by the second /.
4235;;
4236;; The workaround for this is for the AWK Mode initialization to switch the
4237;; defalias for c-in-literal to c-slow-in-literal. This will slow down other
4238;; cc-modes in XEmacs whenever an awk-buffer has been initialized.
4239;;
4240;; (Alan Mackenzie, 2003/4/30).
4241
4242(defun c-fast-in-literal (&optional lim detect-cpp)
4243 ;; This function might do hidden buffer changes.
4244 (let ((context (buffer-syntactic-context)))
4245 (cond
4246 ((eq context 'string) 'string)
4247 ((eq context 'comment) 'c++)
4248 ((eq context 'block-comment) 'c)
4249 ((and detect-cpp (save-excursion (c-beginning-of-macro lim))) 'pound))))
4250
4251(defalias 'c-in-literal
4252 (if (fboundp 'buffer-syntactic-context)
4253 'c-fast-in-literal ; XEmacs
4254 'c-slow-in-literal)) ; GNU Emacs
4255
4256;; The defalias above isn't enough to shut up the byte compiler.
4257(cc-bytecomp-defun c-in-literal)
4258 4220
4259(defun c-literal-limits (&optional lim near not-in-delimiter) 4221(defun c-literal-limits (&optional lim near not-in-delimiter)
4260 "Return a cons of the beginning and end positions of the comment or 4222 "Return a cons of the beginning and end positions of the comment or
@@ -4273,64 +4235,56 @@ comment at the start of cc-engine.el for more info."
4273 4235
4274 (save-excursion 4236 (save-excursion
4275 (let* ((pos (point)) 4237 (let* ((pos (point))
4276 (lim (or lim (progn 4238 (lim (or lim (c-state-safe-place pos)))
4277 (c-beginning-of-syntax) 4239 (pp-to-lit (c-state-pp-to-literal lim pos))
4278 (point)))) 4240 (state (car pp-to-lit))
4279 (state (parse-partial-sexp lim pos))) 4241 (lit-type (cadr pp-to-lit))
4280 4242 (lit-limits (car (cddr pp-to-lit))))
4281 (cond ((elt state 3) ; String.
4282 (goto-char (elt state 8))
4283 (cons (point) (or (c-safe (c-forward-sexp 1) (point))
4284 (point-max))))
4285
4286 ((elt state 4) ; Comment.
4287 (goto-char (elt state 8))
4288 (cons (point) (progn (c-forward-single-comment) (point))))
4289
4290 ((and (not not-in-delimiter)
4291 (not (elt state 5))
4292 (eq (char-before) ?/)
4293 (looking-at "[/*]"))
4294 ;; We're standing in a comment starter.
4295 (backward-char 1)
4296 (cons (point) (progn (c-forward-single-comment) (point))))
4297
4298 (near
4299 (goto-char pos)
4300
4301 ;; Search forward for a literal.
4302 (skip-chars-forward " \t")
4303 4243
4304 (cond 4244 (cond
4305 ((looking-at c-string-limit-regexp) ; String. 4245 (lit-limits)
4306 (cons (point) (or (c-safe (c-forward-sexp 1) (point)) 4246 ((and (not not-in-delimiter)
4307 (point-max)))) 4247 (not (elt state 5))
4248 (eq (char-before) ?/)
4249 (looking-at "[/*]")) ; FIXME!!! use c-line/block-comment-starter. 2008-09-28.
4250 ;; We're standing in a comment starter.
4251 (backward-char 1)
4252 (cons (point) (progn (c-forward-single-comment) (point))))
4253
4254 (near
4255 (goto-char pos)
4256 ;; Search forward for a literal.
4257 (skip-chars-forward " \t")
4258 (cond
4259 ((looking-at c-string-limit-regexp) ; String.
4260 (cons (point) (or (c-safe (c-forward-sexp 1) (point))
4261 (point-max))))
4308 4262
4309 ((looking-at c-comment-start-regexp) ; Line or block comment. 4263 ((looking-at c-comment-start-regexp) ; Line or block comment.
4310 (cons (point) (progn (c-forward-single-comment) (point)))) 4264 (cons (point) (progn (c-forward-single-comment) (point))))
4311 4265
4312 (t 4266 (t
4313 ;; Search backward. 4267 ;; Search backward.
4314 (skip-chars-backward " \t") 4268 (skip-chars-backward " \t")
4315 4269
4316 (let ((end (point)) beg) 4270 (let ((end (point)) beg)
4317 (cond 4271 (cond
4318 ((save-excursion 4272 ((save-excursion
4319 (< (skip-syntax-backward c-string-syntax) 0)) ; String. 4273 (< (skip-syntax-backward c-string-syntax) 0)) ; String.
4320 (setq beg (c-safe (c-backward-sexp 1) (point)))) 4274 (setq beg (c-safe (c-backward-sexp 1) (point))))
4321 4275
4322 ((and (c-safe (forward-char -2) t) 4276 ((and (c-safe (forward-char -2) t)
4323 (looking-at "*/")) 4277 (looking-at "*/"))
4324 ;; Block comment. Due to the nature of line 4278 ;; Block comment. Due to the nature of line
4325 ;; comments, they will always be covered by the 4279 ;; comments, they will always be covered by the
4326 ;; normal case above. 4280 ;; normal case above.
4327 (goto-char end) 4281 (goto-char end)
4328 (c-backward-single-comment) 4282 (c-backward-single-comment)
4329 ;; If LIM is bogus, beg will be bogus. 4283 ;; If LIM is bogus, beg will be bogus.
4330 (setq beg (point)))) 4284 (setq beg (point))))
4331 4285
4332 (if beg (cons beg end)))))) 4286 (if beg (cons beg end))))))
4333 )))) 4287 ))))
4334 4288
4335;; In case external callers use this; it did have a docstring. 4289;; In case external callers use this; it did have a docstring.
4336(defalias 'c-literal-limits-fast 'c-literal-limits) 4290(defalias 'c-literal-limits-fast 'c-literal-limits)
@@ -6832,7 +6786,7 @@ comment at the start of cc-engine.el for more info."
6832 got-suffix-after-parens 6786 got-suffix-after-parens
6833 (eq (char-after got-suffix-after-parens) ?\()) 6787 (eq (char-after got-suffix-after-parens) ?\())
6834 ;; Got a type, no declarator but a paren suffix. I.e. it's a 6788 ;; Got a type, no declarator but a paren suffix. I.e. it's a
6835 ;; normal function call afterall (or perhaps a C++ style object 6789 ;; normal function call after all (or perhaps a C++ style object
6836 ;; instantiation expression). 6790 ;; instantiation expression).
6837 (throw 'at-decl-or-cast nil)))) 6791 (throw 'at-decl-or-cast nil))))
6838 6792
@@ -9151,7 +9105,7 @@ comment at the start of cc-engine.el for more info."
9151 'label)) 9105 'label))
9152 (if (eq step 'up) 9106 (if (eq step 'up)
9153 (setq placeholder (point)) 9107 (setq placeholder (point))
9154 ;; There was no containing statement afterall. 9108 ;; There was no containing statement after all.
9155 (goto-char placeholder))))) 9109 (goto-char placeholder)))))
9156 placeholder)) 9110 placeholder))
9157 (if (looking-at c-block-stmt-2-key) 9111 (if (looking-at c-block-stmt-2-key)
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el
index a31de35f3ba..97cfe808322 100644
--- a/lisp/progmodes/cc-fonts.el
+++ b/lisp/progmodes/cc-fonts.el
@@ -194,9 +194,13 @@
194 (unless (face-property-instance oldface 'reverse) 194 (unless (face-property-instance oldface 'reverse)
195 (invert-face newface))))) 195 (invert-face newface)))))
196 196
197(defvar c-annotation-face (make-face 'c-annotation-face) 197(defvar c-annotation-face 'c-annotation-face)
198 "Face used to highlight annotations in java-mode and other modes that may wish to use it.") 198
199(set-face-foreground 'c-annotation-face "blue") 199(defface c-annotation-face
200 '((default :inherit font-lock-constant-face))
201 "Face for highlighting annotations in Java mode and similar modes."
202 :version "24.1"
203 :group 'c)
200 204
201(eval-and-compile 205(eval-and-compile
202 ;; We need the following definitions during compilation since they're 206 ;; We need the following definitions during compilation since they're
@@ -1207,7 +1211,7 @@ casts and declarations are fontified. Used on level 2 and higher."
1207 ;; o - '<> if the arglist is of angle bracket type; 1211 ;; o - '<> if the arglist is of angle bracket type;
1208 ;; o - 'arglist if it's some other arglist; 1212 ;; o - 'arglist if it's some other arglist;
1209 ;; o - nil, if not in an arglist at all. This includes the 1213 ;; o - nil, if not in an arglist at all. This includes the
1210 ;; parenthesised condition which follows "if", "while", etc. 1214 ;; parenthesized condition which follows "if", "while", etc.
1211 context 1215 context
1212 ;; The position of the next token after the closing paren of 1216 ;; The position of the next token after the closing paren of
1213 ;; the last detected cast. 1217 ;; the last detected cast.
@@ -1534,24 +1538,8 @@ casts and declarations are fontified. Used on level 2 and higher."
1534 ;; prevent a repeat invocation. See elisp/lispref page "Search-based 1538 ;; prevent a repeat invocation. See elisp/lispref page "Search-based
1535 ;; Fontification". 1539 ;; Fontification".
1536 (let* ((paren-state (c-parse-state)) 1540 (let* ((paren-state (c-parse-state))
1537 (start (point)) 1541 decl-context in-typedef ps-elt)
1538 decl-context bo-decl in-typedef type-type ps-elt) 1542 ;; Are we in any nested struct/union/class/etc. braces?
1539
1540 ;; First, are we actually in a "local" declaration?
1541 (setq decl-context (c-beginning-of-decl-1)
1542 bo-decl (point)
1543 in-typedef (looking-at c-typedef-key))
1544 (if in-typedef (c-forward-token-2))
1545 (when (and (eq (car decl-context) 'same)
1546 (< bo-decl start))
1547 ;; Are we genuinely at a type?
1548 (setq type-type (c-forward-type t))
1549 (if (and type-type
1550 (or (not (eq type-type 'maybe))
1551 (looking-at c-symbol-key)))
1552 (c-font-lock-declarators limit t in-typedef)))
1553
1554 ;; Secondly, are we in any nested struct/union/class/etc. braces?
1555 (while paren-state 1543 (while paren-state
1556 (setq ps-elt (car paren-state) 1544 (setq ps-elt (car paren-state)
1557 paren-state (cdr paren-state)) 1545 paren-state (cdr paren-state))
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el
index 37818638d41..2aca885ca35 100644
--- a/lisp/progmodes/cc-langs.el
+++ b/lisp/progmodes/cc-langs.el
@@ -485,28 +485,56 @@ The functions are called even when font locking isn't enabled.
485When the mode is initialized, the functions are called with 485When the mode is initialized, the functions are called with
486parameters \(point-min) and \(point-max).") 486parameters \(point-min) and \(point-max).")
487 487
488(c-lang-defconst c-before-font-lock-function 488(c-lang-defconst c-before-font-lock-functions
489 "If non-nil, a function called just before font locking. 489 ;; For documentation see the following c-lang-defvar of the same name.
490Typically it will extend the region about to be fontified \(see 490 ;; The value here may be a list of functions or a single function.
491 t 'c-change-set-fl-decl-start
492 (c c++ objc) '(c-neutralize-syntax-in-and-mark-CPP
493 c-change-set-fl-decl-start)
494 awk 'c-awk-extend-and-syntax-tablify-region)
495(c-lang-defvar c-before-font-lock-functions
496 (let ((fs (c-lang-const c-before-font-lock-functions)))
497 (if (listp fs)
498 fs
499 (list fs)))
500 "If non-nil, a list of functions called just before font locking.
501Typically they will extend the region about to be fontified \(see
491below) and will set `syntax-table' text properties on the region. 502below) and will set `syntax-table' text properties on the region.
492 503
493It takes 3 parameters, the BEG, END, and OLD-LEN supplied to 504These functions will be run in the order given. Each of them
494every after-change function; point is undefined on both entry and 505takes 3 parameters, the BEG, END, and OLD-LEN supplied to every
495exit; on entry, the buffer will have been widened and match-data 506after-change function; point is undefined on both entry and exit;
496will have been saved; the return value is ignored. 507on entry, the buffer will have been widened and match-data will
508have been saved; the return value is ignored.
497 509
498The function may extend the region to be fontified by setting the 510The functions may extend the region to be fontified by setting the
499buffer local variables c-new-BEG and c-new-END. 511buffer local variables c-new-BEG and c-new-END.
500 512
501The function is called even when font locking is disabled. 513The functions are called even when font locking is disabled.
502 514
503When the mode is initialized, this function is called with 515When the mode is initialized, these functions are called with
504parameters \(point-min), \(point-max) and <buffer size>." 516parameters \(point-min), \(point-max) and <buffer size>.")
505 t nil 517
506 (c c++ objc) 'c-neutralize-syntax-in-and-mark-CPP 518(c-lang-defconst c-before-context-fontification-functions
507 awk 'c-awk-extend-and-syntax-tablify-region) 519 awk nil
508(c-lang-defvar c-before-font-lock-function 520 t 'c-context-set-fl-decl-start)
509 (c-lang-const c-before-font-lock-function)) 521 ;; For documentation see the following c-lang-defvar of the same name.
522 ;; The value here may be a list of functions or a single function.
523(c-lang-defvar c-before-context-fontification-functions
524 (let ((fs (c-lang-const c-before-context-fontification-functions)))
525 (if (listp fs)
526 fs
527 (list fs)))
528 "If non-nil, a list of functions called just before context (or
529other non-change) fontification is done. Typically they will
530extend the region.
531
532These functions will be run in the order given. Each of them
533takes 2 parameters, the BEG and END of the region to be
534fontified. Point is undefined on both entry and exit. On entry,
535the buffer will have been widened and match-data will have been
536saved; the return value is a cons of the adjusted
537region, (NEW-BEG . NEW-END).")
510 538
511 539
512;;; Syntactic analysis ("virtual semicolons") for line-oriented languages (AWK). 540;;; Syntactic analysis ("virtual semicolons") for line-oriented languages (AWK).
@@ -522,7 +550,7 @@ don't have EOL terminated statements. "
522 550
523(c-lang-defconst c-vsemi-status-unknown-p-fn 551(c-lang-defconst c-vsemi-status-unknown-p-fn
524 "Contains a function \"are we unsure whether there is a virtual semicolon on this line?\". 552 "Contains a function \"are we unsure whether there is a virtual semicolon on this line?\".
525The (admittedly kludgey) purpose of such a function is to prevent an infinite 553The (admittedly kludgy) purpose of such a function is to prevent an infinite
526recursion in c-beginning-of-statement-1 when point starts at a `while' token. 554recursion in c-beginning-of-statement-1 when point starts at a `while' token.
527The function MUST NOT UNDER ANY CIRCUMSTANCES call c-beginning-of-statement-1, 555The function MUST NOT UNDER ANY CIRCUMSTANCES call c-beginning-of-statement-1,
528even indirectly. This variable contains nil for languages which don't have 556even indirectly. This variable contains nil for languages which don't have
@@ -2242,8 +2270,7 @@ This construct is \"<keyword> <expression> :\"."
2242 2270
2243(c-lang-defconst c-label-kwds 2271(c-lang-defconst c-label-kwds
2244 "Keywords introducing colon terminated labels in blocks." 2272 "Keywords introducing colon terminated labels in blocks."
2245 t '("case" "default") 2273 t '("case" "default"))
2246 awk nil)
2247 2274
2248(c-lang-defconst c-label-kwds-regexp 2275(c-lang-defconst c-label-kwds-regexp
2249 ;; Adorned regexp matching any keyword that introduces a label. 2276 ;; Adorned regexp matching any keyword that introduces a label.
@@ -2998,18 +3025,19 @@ neither in a statement nor in a declaration context. The regexp is
2998tested at the beginning of every sexp in a suspected label, 3025tested at the beginning of every sexp in a suspected label,
2999i.e. before \":\". Only used if `c-recognize-colon-labels' is set." 3026i.e. before \":\". Only used if `c-recognize-colon-labels' is set."
3000 t (concat 3027 t (concat
3001 ;; Don't allow string literals.
3002 "\"\\|"
3003 ;; All keywords except `c-label-kwds' and `c-protection-kwds'. 3028 ;; All keywords except `c-label-kwds' and `c-protection-kwds'.
3004 (c-make-keywords-re t 3029 (c-make-keywords-re t
3005 (set-difference (c-lang-const c-keywords) 3030 (set-difference (c-lang-const c-keywords)
3006 (append (c-lang-const c-label-kwds) 3031 (append (c-lang-const c-label-kwds)
3007 (c-lang-const c-protection-kwds)) 3032 (c-lang-const c-protection-kwds))
3008 :test 'string-equal))) 3033 :test 'string-equal)))
3034 ;; Don't allow string literals, except in AWK. Character constants are OK.
3035 (c objc java pike idl) (concat "\"\\|"
3036 (c-lang-const c-nonlabel-token-key))
3009 ;; Also check for open parens in C++, to catch member init lists in 3037 ;; Also check for open parens in C++, to catch member init lists in
3010 ;; constructors. We normally allow it so that macros with arguments 3038 ;; constructors. We normally allow it so that macros with arguments
3011 ;; work in labels. 3039 ;; work in labels.
3012 c++ (concat "\\s\(\\|" (c-lang-const c-nonlabel-token-key))) 3040 c++ (concat "\\s\(\\|\"\\|" (c-lang-const c-nonlabel-token-key)))
3013(c-lang-defvar c-nonlabel-token-key (c-lang-const c-nonlabel-token-key)) 3041(c-lang-defvar c-nonlabel-token-key (c-lang-const c-nonlabel-token-key))
3014 3042
3015(c-lang-defconst c-nonlabel-token-2-key 3043(c-lang-defconst c-nonlabel-token-2-key
diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el
index cc5a5236255..1bc0741b0aa 100644
--- a/lisp/progmodes/cc-mode.el
+++ b/lisp/progmodes/cc-mode.el
@@ -599,8 +599,8 @@ that requires a literal mode spec at compile time."
599 599
600;; Buffer local variables defining the region to be fontified by a font lock 600;; Buffer local variables defining the region to be fontified by a font lock
601;; after-change function. They are set in c-after-change to 601;; after-change function. They are set in c-after-change to
602;; after-change-function's BEG and END, and may be modified by a 602;; after-change-functions' BEG and END, and may be modified by functions in
603;; `c-before-font-lock-function'. 603;; `c-before-font-lock-functions'.
604(defvar c-new-BEG 0) 604(defvar c-new-BEG 0)
605(make-variable-buffer-local 'c-new-BEG) 605(make-variable-buffer-local 'c-new-BEG)
606(defvar c-new-END 0) 606(defvar c-new-END 0)
@@ -633,13 +633,13 @@ compatible with old code; callers should always specify it."
633 (setq c-new-BEG (point-min)) 633 (setq c-new-BEG (point-min))
634 (setq c-new-END (point-max)) 634 (setq c-new-END (point-max))
635 (save-excursion 635 (save-excursion
636 (if c-get-state-before-change-functions 636 (mapc (lambda (fn)
637 (mapc (lambda (fn) 637 (funcall fn (point-min) (point-max)))
638 (funcall fn (point-min) (point-max))) 638 c-get-state-before-change-functions)
639 c-get-state-before-change-functions)) 639 (mapc (lambda (fn)
640 (if c-before-font-lock-function 640 (funcall fn (point-min) (point-max)
641 (funcall c-before-font-lock-function (point-min) (point-max) 641 (- (point-max) (point-min))))
642 (- (point-max) (point-min)))))) 642 c-before-font-lock-functions)))
643 643
644 (set (make-local-variable 'outline-regexp) "[^#\n\^M]") 644 (set (make-local-variable 'outline-regexp) "[^#\n\^M]")
645 (set (make-local-variable 'outline-level) 'c-outline-level) 645 (set (make-local-variable 'outline-level) 'c-outline-level)
@@ -830,6 +830,35 @@ Note that the style variables are always made local to the buffer."
830 ; with a c-cpp-delimiter category property 830 ; with a c-cpp-delimiter category property
831 (setq c-old-EOM (point))) 831 (setq c-old-EOM (point)))
832 832
833(defun c-extend-font-lock-region-for-macros (begg endd &optional old-len)
834 ;; Extend the region (BEGG ENDD) to cover all (possibly changed)
835 ;; preprocessor macros; return the cons (new-BEG . new-END). OLD-LEN should
836 ;; be either the old length parameter when called from an
837 ;; after-change-function, or nil otherwise. This defun uses the variables
838 ;; c-old-BOM, c-new-BOM.
839 ;;
840 ;; Point is undefined on both entry and exit to this function. The buffer
841 ;; will have been widened on entry.
842 (let (limits new-beg new-end)
843 (goto-char c-old-BOM) ; already set to old start of macro or begg.
844 (setq new-beg
845 (min begg
846 (if (setq limits (c-state-literal-at (point)))
847 (cdr limits) ; go forward out of any string or comment.
848 (point))))
849
850 (goto-char endd)
851 (if (setq limits (c-state-literal-at (point)))
852 (goto-char (car limits))) ; go backward out of any string or comment.
853 (if (c-beginning-of-macro)
854 (c-end-of-macro))
855 (setq new-end (max endd
856 (if old-len
857 (+ (- c-old-EOM old-len) (- endd begg))
858 c-old-EOM)
859 (point)))
860 (cons new-beg new-end)))
861
833(defun c-neutralize-CPP-line (beg end) 862(defun c-neutralize-CPP-line (beg end)
834 ;; BEG and END bound a region, typically a preprocessor line. Put a 863 ;; BEG and END bound a region, typically a preprocessor line. Put a
835 ;; "punctuation" syntax-table property on syntactically obtrusive 864 ;; "punctuation" syntax-table property on syntactically obtrusive
@@ -881,31 +910,19 @@ Note that the style variables are always made local to the buffer."
881 ;; Point is undefined both before and after this function call, the buffer 910 ;; Point is undefined both before and after this function call, the buffer
882 ;; has been widened, and match-data saved. The return value is ignored. 911 ;; has been widened, and match-data saved. The return value is ignored.
883 ;; 912 ;;
884 ;; This function is the C/C++/ObjC value of `c-before-font-lock-function'. 913 ;; This function is in the C/C++/ObjC value of `c-before-font-lock-functions'.
885 ;; 914 ;;
886 ;; Note: SPEED _MATTERS_ IN THIS FUNCTION!!! 915 ;; Note: SPEED _MATTERS_ IN THIS FUNCTION!!!
887 ;; 916 ;;
888 ;; This function might make hidden buffer changes. 917 ;; This function might make hidden buffer changes.
889 (c-save-buffer-state (limits) 918 (c-save-buffer-state (new-bounds)
890 ;; First determine the region, (c-new-BEG c-new-END), which will get font 919 ;; First determine the region, (c-new-BEG c-new-END), which will get font
891 ;; locked. It might need "neutralizing". This region may not start 920 ;; locked. It might need "neutralizing". This region may not start
892 ;; inside a string, comment, or macro. 921 ;; inside a string, comment, or macro.
893 (goto-char c-old-BOM) ; already set to old start of macro or begg. 922 (setq new-bounds (c-extend-font-lock-region-for-macros
894 (setq c-new-BEG 923 c-new-BEG c-new-END old-len))
895 (min c-new-BEG 924 (setq c-new-BEG (car new-bounds)
896 (if (setq limits (c-state-literal-at (point))) 925 c-new-END (cdr new-bounds))
897 (cdr limits) ; go forward out of any string or comment.
898 (point))))
899
900 (goto-char endd)
901 (if (setq limits (c-state-literal-at (point)))
902 (goto-char (car limits))) ; go backward out of any string or comment.
903 (if (c-beginning-of-macro)
904 (c-end-of-macro))
905 (setq c-new-END (max c-new-END
906 (+ (- c-old-EOM old-len) (- endd begg))
907 (point)))
908
909 ;; Clear all old relevant properties. 926 ;; Clear all old relevant properties.
910 (c-clear-char-property-with-value c-new-BEG c-new-END 'syntax-table '(1)) 927 (c-clear-char-property-with-value c-new-BEG c-new-END 'syntax-table '(1))
911 (c-clear-char-property-with-value c-new-BEG c-new-END 'category 'c-cpp-delimiter) 928 (c-clear-char-property-with-value c-new-BEG c-new-END 'category 'c-cpp-delimiter)
@@ -943,7 +960,7 @@ Note that the style variables are always made local to the buffer."
943 ;; Note that this function must be FAST rather than accurate. Note 960 ;; Note that this function must be FAST rather than accurate. Note
944 ;; also that it only has any effect when font locking is enabled. 961 ;; also that it only has any effect when font locking is enabled.
945 ;; We exploit this by checking for font-lock-*-face instead of doing 962 ;; We exploit this by checking for font-lock-*-face instead of doing
946 ;; rigourous syntactic analysis. 963 ;; rigorous syntactic analysis.
947 964
948 ;; If either change boundary is wholly inside an identifier, delete 965 ;; If either change boundary is wholly inside an identifier, delete
949 ;; it/them from the cache. Don't worry about being inside a string 966 ;; it/them from the cache. Don't worry about being inside a string
@@ -1015,6 +1032,11 @@ Note that the style variables are always made local to the buffer."
1015 c-get-state-before-change-functions)) 1032 c-get-state-before-change-functions))
1016 )))) 1033 ))))
1017 1034
1035(defvar c-in-after-change-fontification nil)
1036(make-variable-buffer-local 'c-in-after-change-fontification)
1037;; A flag to prevent region expanding stuff being done twice for after-change
1038;; fontification.
1039
1018(defun c-after-change (beg end old-len) 1040(defun c-after-change (beg end old-len)
1019 ;; Function put on `after-change-functions' to adjust various caches 1041 ;; Function put on `after-change-functions' to adjust various caches
1020 ;; etc. Prefer speed to finesse here, since there will be an order 1042 ;; etc. Prefer speed to finesse here, since there will be an order
@@ -1026,7 +1048,7 @@ Note that the style variables are always made local to the buffer."
1026 ;; these caches from inside them, and we must thus be sure that this 1048 ;; these caches from inside them, and we must thus be sure that this
1027 ;; has already been executed. 1049 ;; has already been executed.
1028 ;; 1050 ;;
1029 ;; This calls the language variable c-before-font-lock-function, if non nil. 1051 ;; This calls the language variable c-before-font-lock-functions, if non nil.
1030 ;; This typically sets `syntax-table' properties. 1052 ;; This typically sets `syntax-table' properties.
1031 1053
1032 (c-save-buffer-state () 1054 (c-save-buffer-state ()
@@ -1066,19 +1088,113 @@ Note that the style variables are always made local to the buffer."
1066 ;; larger than (beg end). 1088 ;; larger than (beg end).
1067 (setq c-new-BEG beg 1089 (setq c-new-BEG beg
1068 c-new-END end) 1090 c-new-END end)
1069 (if c-before-font-lock-function 1091 (setq c-in-after-change-fontification t)
1070 (save-excursion 1092 (save-excursion
1071 (funcall c-before-font-lock-function beg end old-len))))))) 1093 (mapc (lambda (fn)
1072 1094 (funcall fn beg end old-len))
1095 c-before-font-lock-functions))))))
1096
1097(defun c-set-fl-decl-start (pos)
1098 ;; If the beginning of the line containing POS is in the middle of a "local"
1099 ;; declaration (i.e. one which does not start outside of braces enclosing
1100 ;; POS, such as a struct), return the beginning of that declaration.
1101 ;; Otherwise return POS. Note that declarations, in this sense, can be
1102 ;; nested.
1103 ;;
1104 ;; This function is called indirectly from font locking stuff - either from
1105 ;; c-after-change (to prepare for after-change font-lockng) or from font
1106 ;; lock context (etc.) fontification.
1107 (let ((lit-limits (c-literal-limits))
1108 (new-pos pos)
1109 bod-lim bo-decl)
1110 (goto-char (c-point 'bol new-pos))
1111 (when lit-limits ; Comment or string.
1112 (goto-char (car lit-limits)))
1113 (setq bod-lim (max (- (point) 500) (point-min)))
1114
1115 (while
1116 ;; Go to a less nested declaration each time round this loop.
1117 (and
1118 (eq (car (c-beginning-of-decl-1 bod-lim)) 'same)
1119 (progn (setq bo-decl (point))
1120 ;; Are we looking at a keyword such as "template" or
1121 ;; "typedef" which can decorate a type, or the type itself?
1122 (when (or (looking-at c-prefix-spec-kwds-re)
1123 (c-forward-type t))
1124 ;; We've found another candidate position.
1125 (setq new-pos (min new-pos bo-decl))
1126 (goto-char bo-decl))
1127 t)
1128 ;; Try and go out a level to search again.
1129 (progn
1130 (c-backward-syntactic-ws bod-lim)
1131 (or (memq (char-before) '(?\( ?\[))
1132 (and (eq (char-before) ?\<)
1133 (eq (c-get-char-property
1134 (1- (point)) 'syntax-table)
1135 c-<-as-paren-syntax))))
1136 (not (bobp)))
1137 (backward-char))
1138 new-pos)) ; back over (, [, <.
1139
1140(defun c-change-set-fl-decl-start (beg end old-len)
1141 ;; Set c-new-BEG to the beginning of a "local" declaration if it('s BOL) is
1142 ;; inside one. This is called from an after-change-function, but the
1143 ;; parameters BEG END and OLD-LEN are ignored. See `c-set-fl-decl-start'
1144 ;; for the detailed functionality.
1145 (if font-lock-mode
1146 (setq c-new-BEG (c-set-fl-decl-start c-new-BEG))))
1147
1148(defun c-context-set-fl-decl-start (beg end)
1149 ;; Return a cons (NEW-BEG . END), where NEW-BEG is the beginning of a
1150 ;; "local" declaration (BOL at) NEW is inside or BEG. See
1151 ;; `c-set-fl-decl-start' for the detailed functionality.
1152 (cons (c-set-fl-decl-start beg) end))
1153
1154(defvar c-standard-font-lock-fontify-region-function nil
1155 "Standard value of `font-lock-fontify-region-function'")
1156
1157(defun c-font-lock-fontify-region (beg end &optional verbose)
1158 ;; Effectively advice around `font-lock-fontify-region' which extends the
1159 ;; region (BEG END), for example, to avoid context fontification chopping
1160 ;; off the start of the context. Do not do anything if it's already been
1161 ;; done (i.e. from and after-change fontification. An example (C++) where
1162 ;; this used to happen is this:
1163 ;;
1164 ;; template <typename T>
1165 ;;
1166 ;;
1167 ;; void myfunc(T* p) {}
1168 ;;
1169 ;; Type a space in the first blank line, and the fontification of the next
1170 ;; line was fouled up by context fontification.
1171 (let ((new-beg beg) (new-end end) new-region)
1172 (if c-in-after-change-fontification
1173 (setq c-in-after-change-fontification nil)
1174 (save-restriction
1175 (widen)
1176 (save-excursion
1177 (mapc (lambda (fn)
1178 (setq new-region (funcall fn new-beg new-end))
1179 (setq new-beg (car new-region) new-end (cdr new-region)))
1180 c-before-context-fontification-functions))))
1181 (funcall c-standard-font-lock-fontify-region-function
1182 new-beg new-end verbose)))
1183
1073(defun c-after-font-lock-init () 1184(defun c-after-font-lock-init ()
1074 ;; Put on `font-lock-mode-hook'. 1185 ;; Put on `font-lock-mode-hook'. This function ensures our after-change
1186 ;; function will get excuted before the font-lock one. Amongst other
1187 ;; things.
1075 (remove-hook 'after-change-functions 'c-after-change t) 1188 (remove-hook 'after-change-functions 'c-after-change t)
1076 (add-hook 'after-change-functions 'c-after-change nil t)) 1189 (add-hook 'after-change-functions 'c-after-change nil t)
1190 (setq c-standard-font-lock-fontify-region-function
1191 (default-value 'font-lock-fontify-region-function)))
1077 1192
1078(defun c-font-lock-init () 1193(defun c-font-lock-init ()
1079 "Set up the font-lock variables for using the font-lock support in CC Mode. 1194 "Set up the font-lock variables for using the font-lock support in CC Mode.
1080This does not load the font-lock package. Use after 1195This does not load the font-lock package. Use after
1081`c-basic-common-init' and after cc-fonts has been loaded." 1196`c-basic-common-init' and after cc-fonts has been loaded.
1197This function is called from `c-common-init', once per mode initialization."
1082 1198
1083 (set (make-local-variable 'font-lock-defaults) 1199 (set (make-local-variable 'font-lock-defaults)
1084 `(,(if (c-major-mode-is 'awk-mode) 1200 `(,(if (c-major-mode-is 'awk-mode)
@@ -1092,6 +1208,10 @@ This does not load the font-lock package. Use after
1092 c-beginning-of-syntax 1208 c-beginning-of-syntax
1093 (font-lock-mark-block-function 1209 (font-lock-mark-block-function
1094 . c-mark-function))) 1210 . c-mark-function)))
1211
1212 (make-local-variable 'font-lock-fontify-region-function)
1213 (setq font-lock-fontify-region-function 'c-font-lock-fontify-region)
1214
1095 (if (featurep 'xemacs) 1215 (if (featurep 'xemacs)
1096 (make-local-hook 'font-lock-mode-hook)) 1216 (make-local-hook 'font-lock-mode-hook))
1097 (add-hook 'font-lock-mode-hook 'c-after-font-lock-init nil t)) 1217 (add-hook 'font-lock-mode-hook 'c-after-font-lock-init nil t))
@@ -1562,10 +1682,6 @@ Key bindings:
1562 (c-common-init 'awk-mode) 1682 (c-common-init 'awk-mode)
1563 (c-awk-unstick-NL-prop) 1683 (c-awk-unstick-NL-prop)
1564 1684
1565 ;; Prevent XEmacs's buffer-syntactic-context being used. See the comment
1566 ;; in cc-engine.el, just before (defun c-fast-in-literal ...
1567 (defalias 'c-in-literal 'c-slow-in-literal)
1568
1569 (c-run-mode-hooks 'c-mode-common-hook 'awk-mode-hook) 1685 (c-run-mode-hooks 'c-mode-common-hook 'awk-mode-hook)
1570 (c-update-modeline)) 1686 (c-update-modeline))
1571 1687
diff --git a/lisp/progmodes/cc-vars.el b/lisp/progmodes/cc-vars.el
index 549f94387d2..a4338a3193b 100644
--- a/lisp/progmodes/cc-vars.el
+++ b/lisp/progmodes/cc-vars.el
@@ -586,7 +586,7 @@ in a mode hook, you have to call `c-setup-doc-comment-style'
586afterwards to redo that work." 586afterwards to redo that work."
587 ;; Symbols other than those documented above may be used on this 587 ;; Symbols other than those documented above may be used on this
588 ;; variable. If a variable exists that has that name with 588 ;; variable. If a variable exists that has that name with
589 ;; "-font-lock-keywords" appended, it's value is prepended to the 589 ;; "-font-lock-keywords" appended, its value is prepended to the
590 ;; font lock keywords list. If it's a function then it's called and 590 ;; font lock keywords list. If it's a function then it's called and
591 ;; the result is prepended. 591 ;; the result is prepended.
592 :type '(radio 592 :type '(radio
diff --git a/lisp/progmodes/cfengine.el b/lisp/progmodes/cfengine.el
index 823304bd250..ffe8edfaeb6 100644
--- a/lisp/progmodes/cfengine.el
+++ b/lisp/progmodes/cfengine.el
@@ -5,6 +5,7 @@
5;; Author: Dave Love <fx@gnu.org> 5;; Author: Dave Love <fx@gnu.org>
6;; Maintainer: Ted Zlatanov <tzz@lifelogs.com> 6;; Maintainer: Ted Zlatanov <tzz@lifelogs.com>
7;; Keywords: languages 7;; Keywords: languages
8;; Version: 1.1
8 9
9;; This file is part of GNU Emacs. 10;; This file is part of GNU Emacs.
10 11
@@ -29,18 +30,18 @@
29;; The CFEngine 3.x support doesn't have Imenu support but patches are 30;; The CFEngine 3.x support doesn't have Imenu support but patches are
30;; welcome. 31;; welcome.
31 32
32;; You can set it up so either cfengine-mode (2.x and earlier) or 33;; You can set it up so either `cfengine2-mode' (2.x and earlier) or
33;; cfengine3-mode (3.x) will be picked, depending on the buffer 34;; `cfengine3-mode' (3.x) will be picked, depending on the buffer
34;; contents: 35;; contents:
35 36
36;; (add-to-list 'auto-mode-alist '("\\.cf\\'" . cfengine-auto-mode)) 37;; (add-to-list 'auto-mode-alist '("\\.cf\\'" . cfengine-mode))
37 38
38;; OR you can choose to always use a specific version, if you prefer 39;; OR you can choose to always use a specific version, if you prefer
39;; it 40;; it:
40 41
41;; (add-to-list 'auto-mode-alist '("\\.cf\\'" . cfengine3-mode)) 42;; (add-to-list 'auto-mode-alist '("\\.cf\\'" . cfengine3-mode))
42;; (add-to-list 'auto-mode-alist '("^cf\\." . cfengine-mode)) 43;; (add-to-list 'auto-mode-alist '("^cf\\." . cfengine2-mode))
43;; (add-to-list 'auto-mode-alist '("^cfagent.conf\\'" . cfengine-mode)) 44;; (add-to-list 'auto-mode-alist '("^cfagent.conf\\'" . cfengine2-mode))
44 45
45;; This is not the same as the mode written by Rolf Ebert 46;; This is not the same as the mode written by Rolf Ebert
46;; <ebert@waporo.muc.de>, distributed with cfengine-2.0.5. It does 47;; <ebert@waporo.muc.de>, distributed with cfengine-2.0.5. It does
@@ -49,31 +50,36 @@
49;;; Code: 50;;; Code:
50 51
51(defgroup cfengine () 52(defgroup cfengine ()
52 "Editing Cfengine files." 53 "Editing CFEngine files."
53 :group 'languages) 54 :group 'languages)
54 55
55(defcustom cfengine-indent 2 56(defcustom cfengine-indent 2
56 "*Size of a Cfengine indentation step in columns." 57 "*Size of a CFEngine indentation step in columns."
57 :group 'cfengine 58 :group 'cfengine
58 :type 'integer) 59 :type 'integer)
59 60
61(defvar cfengine-mode-debug nil
62 "Whether `cfengine-mode' should print debugging info.")
63
60(defcustom cfengine-mode-abbrevs nil 64(defcustom cfengine-mode-abbrevs nil
61 "Abbrevs for Cfengine mode." 65 "Abbrevs for CFEngine2 mode."
62 :group 'cfengine 66 :group 'cfengine
63 :type '(repeat (list (string :tag "Name") 67 :type '(repeat (list (string :tag "Name")
64 (string :tag "Expansion") 68 (string :tag "Expansion")
65 (choice :tag "Hook" (const nil) function)))) 69 (choice :tag "Hook" (const nil) function))))
66 70
71(make-obsolete-variable 'cfengine-mode-abbrevs 'edit-abbrevs "24.1")
72
67;; Taken from the doc for pre-release 2.1. 73;; Taken from the doc for pre-release 2.1.
68(eval-and-compile 74(eval-and-compile
69 (defconst cfengine-actions 75 (defconst cfengine2-actions
70 '("acl" "alerts" "binservers" "broadcast" "control" "classes" "copy" 76 '("acl" "alerts" "binservers" "broadcast" "control" "classes" "copy"
71 "defaultroute" "disks" "directories" "disable" "editfiles" "files" 77 "defaultroute" "disks" "directories" "disable" "editfiles" "files"
72 "filters" "groups" "homeservers" "ignore" "import" "interfaces" 78 "filters" "groups" "homeservers" "ignore" "import" "interfaces"
73 "links" "mailserver" "methods" "miscmounts" "mountables" 79 "links" "mailserver" "methods" "miscmounts" "mountables"
74 "processes" "packages" "rename" "required" "resolve" 80 "processes" "packages" "rename" "required" "resolve"
75 "shellcommands" "tidy" "unmount" 81 "shellcommands" "tidy" "unmount"
76 ;; cfservd 82 ;; Keywords for cfservd.
77 "admit" "grant" "deny") 83 "admit" "grant" "deny")
78 "List of the action keywords supported by Cfengine. 84 "List of the action keywords supported by Cfengine.
79This includes those for cfservd as well as cfagent.") 85This includes those for cfservd as well as cfagent.")
@@ -98,11 +104,11 @@ This includes those for cfservd as well as cfagent.")
98 '(string int real slist ilist rlist irange rrange counter)) 104 '(string int real slist ilist rlist irange rrange counter))
99 "List of the CFEngine 3.x variable types.")) 105 "List of the CFEngine 3.x variable types."))
100 106
101(defvar cfengine-font-lock-keywords 107(defvar cfengine2-font-lock-keywords
102 `(;; Actions. 108 `(;; Actions.
103 ;; List the allowed actions explicitly, so that errors are more obvious. 109 ;; List the allowed actions explicitly, so that errors are more obvious.
104 (,(concat "^[ \t]*" (eval-when-compile 110 (,(concat "^[ \t]*" (eval-when-compile
105 (regexp-opt cfengine-actions t)) 111 (regexp-opt cfengine2-actions t))
106 ":") 112 ":")
107 1 font-lock-keyword-face) 113 1 font-lock-keyword-face)
108 ;; Classes. 114 ;; Classes.
@@ -117,46 +123,54 @@ This includes those for cfservd as well as cfagent.")
117 123
118(defvar cfengine3-font-lock-keywords 124(defvar cfengine3-font-lock-keywords
119 `( 125 `(
126 ;; Defuns. This happens early so they don't get caught by looser
127 ;; patterns.
128 (,(concat "\\<" cfengine3-defuns-regex "\\>"
129 "[ \t]+\\<\\([[:alnum:]_]+\\)\\>"
130 "[ \t]+\\<\\([[:alnum:]_]+\\)"
131 ;; Optional parentheses with variable names inside.
132 "\\(?:(\\([^)]*\\))\\)?")
133 (1 font-lock-builtin-face)
134 (2 font-lock-constant-face)
135 (3 font-lock-function-name-face)
136 (4 font-lock-variable-name-face nil t))
137
138 ;; Class selectors.
120 (,(concat "^[ \t]*" cfengine3-class-selector-regex) 139 (,(concat "^[ \t]*" cfengine3-class-selector-regex)
121 1 font-lock-keyword-face) 140 1 font-lock-keyword-face)
141
142 ;; Categories.
122 (,(concat "^[ \t]*" cfengine3-category-regex) 143 (,(concat "^[ \t]*" cfengine3-category-regex)
123 1 font-lock-builtin-face) 144 1 font-lock-builtin-face)
145
124 ;; Variables, including scope, e.g. module.var 146 ;; Variables, including scope, e.g. module.var
125 ("[@$](\\([[:alnum:]_.]+\\))" 1 font-lock-variable-name-face) 147 ("[@$](\\([[:alnum:]_.]+\\))" 1 font-lock-variable-name-face)
126 ("[@$]{\\([[:alnum:]_.]+\\)}" 1 font-lock-variable-name-face) 148 ("[@$]{\\([[:alnum:]_.]+\\)}" 1 font-lock-variable-name-face)
149
127 ;; Variable definitions. 150 ;; Variable definitions.
128 ("\\<\\([[:alnum:]_]+\\)[ \t]*=[ \t]*(" 1 font-lock-variable-name-face) 151 ("\\<\\([[:alnum:]_]+\\)[ \t]*=[ \t]*(" 1 font-lock-variable-name-face)
129 152
130 ;; CFEngine 3.x faces 153 ;; Variable types.
131 ;; defuns
132 (,(concat "\\<" cfengine3-defuns-regex "\\>"
133 "[ \t]+\\<\\([[:alnum:]_]+\\)\\>"
134 "[ \t]+\\<\\([[:alnum:]_]+\\)\\((\\([^)]*\\))\\)?")
135 (1 font-lock-builtin-face)
136 (2 font-lock-constant-name-face)
137 (3 font-lock-function-name-face)
138 (5 font-lock-variable-name-face))
139 ;; variable types
140 (,(concat "\\<" (eval-when-compile (regexp-opt cfengine3-vartypes t)) "\\>") 154 (,(concat "\\<" (eval-when-compile (regexp-opt cfengine3-vartypes t)) "\\>")
141 1 font-lock-type-face))) 155 1 font-lock-type-face)))
142 156
143(defvar cfengine-imenu-expression 157(defvar cfengine2-imenu-expression
144 `((nil ,(concat "^[ \t]*" (eval-when-compile 158 `((nil ,(concat "^[ \t]*" (eval-when-compile
145 (regexp-opt cfengine-actions t)) 159 (regexp-opt cfengine2-actions t))
146 ":[^:]") 160 ":[^:]")
147 1) 161 1)
148 ("Variables/classes" "\\<\\([[:alnum:]_]+\\)[ \t]*=[ \t]*(" 1) 162 ("Variables/classes" "\\<\\([[:alnum:]_]+\\)[ \t]*=[ \t]*(" 1)
149 ("Variables/classes" "\\<define=\\([[:alnum:]_]+\\)" 1) 163 ("Variables/classes" "\\<define=\\([[:alnum:]_]+\\)" 1)
150 ("Variables/classes" "\\<DefineClass\\>[ \t]+\\([[:alnum:]_]+\\)" 1)) 164 ("Variables/classes" "\\<DefineClass\\>[ \t]+\\([[:alnum:]_]+\\)" 1))
151 "`imenu-generic-expression' for Cfengine mode.") 165 "`imenu-generic-expression' for CFEngine mode.")
152 166
153(defun cfengine-outline-level () 167(defun cfengine2-outline-level ()
154 "`outline-level' function for Cfengine mode." 168 "`outline-level' function for CFEngine mode."
155 (if (looking-at "[^:]+\\(?:[:]+\\)$") 169 (if (looking-at "[^:]+\\(?:[:]+\\)$")
156 (length (match-string 1)))) 170 (length (match-string 1))))
157 171
158(defun cfengine-beginning-of-defun () 172(defun cfengine2-beginning-of-defun ()
159 "`beginning-of-defun' function for Cfengine mode. 173 "`beginning-of-defun' function for CFEngine mode.
160Treats actions as defuns." 174Treats actions as defuns."
161 (unless (<= (current-column) (current-indentation)) 175 (unless (<= (current-column) (current-indentation))
162 (end-of-line)) 176 (end-of-line))
@@ -165,8 +179,8 @@ Treats actions as defuns."
165 (goto-char (point-min))) 179 (goto-char (point-min)))
166 t) 180 t)
167 181
168(defun cfengine-end-of-defun () 182(defun cfengine2-end-of-defun ()
169 "`end-of-defun' function for Cfengine mode. 183 "`end-of-defun' function for CFEngine mode.
170Treats actions as defuns." 184Treats actions as defuns."
171 (end-of-line) 185 (end-of-line)
172 (if (re-search-forward "^[[:alpha:]]+: *$" nil t) 186 (if (re-search-forward "^[[:alpha:]]+: *$" nil t)
@@ -176,7 +190,7 @@ Treats actions as defuns."
176 190
177;; Fixme: Should get an extra indent step in editfiles BeginGroup...s. 191;; Fixme: Should get an extra indent step in editfiles BeginGroup...s.
178 192
179(defun cfengine-indent-line () 193(defun cfengine2-indent-line ()
180 "Indent a line in Cfengine mode. 194 "Indent a line in Cfengine mode.
181Intended as the value of `indent-line-function'." 195Intended as the value of `indent-line-function'."
182 (let ((pos (- (point-max) (point)))) 196 (let ((pos (- (point-max) (point))))
@@ -283,15 +297,17 @@ Intended as the value of `indent-line-function'."
283 (narrow-to-defun) 297 (narrow-to-defun)
284 (back-to-indentation) 298 (back-to-indentation)
285 (setq parse (parse-partial-sexp (point-min) (point))) 299 (setq parse (parse-partial-sexp (point-min) (point)))
286 (message "%S" parse) 300 (when cfengine-mode-debug
301 (message "%S" parse))
302
287 (cond 303 (cond
288 ;; body/bundle blocks start at 0 304 ;; Body/bundle blocks start at 0.
289 ((looking-at (concat cfengine3-defuns-regex "\\>")) 305 ((looking-at (concat cfengine3-defuns-regex "\\>"))
290 (indent-line-to 0)) 306 (indent-line-to 0))
291 ;; categories are indented one step 307 ;; Categories are indented one step.
292 ((looking-at (concat cfengine3-category-regex "[ \t]*$")) 308 ((looking-at (concat cfengine3-category-regex "[ \t]*$"))
293 (indent-line-to cfengine-indent)) 309 (indent-line-to cfengine-indent))
294 ;; class selectors are indented two steps 310 ;; Class selectors are indented two steps.
295 ((looking-at (concat cfengine3-class-selector-regex "[ \t]*$")) 311 ((looking-at (concat cfengine3-class-selector-regex "[ \t]*$"))
296 (indent-line-to (* 2 cfengine-indent))) 312 (indent-line-to (* 2 cfengine-indent)))
297 ;; Outdent leading close brackets one step. 313 ;; Outdent leading close brackets one step.
@@ -303,11 +319,17 @@ Intended as the value of `indent-line-function'."
303 (backward-sexp) 319 (backward-sexp)
304 (current-column))) 320 (current-column)))
305 (error nil))) 321 (error nil)))
306 ;; inside a string and it starts before this line 322 ;; Inside a string and it starts before this line.
307 ((and (nth 3 parse) 323 ((and (nth 3 parse)
308 (< (nth 8 parse) (save-excursion (beginning-of-line) (point)))) 324 (< (nth 8 parse) (save-excursion (beginning-of-line) (point))))
309 (indent-line-to 0)) 325 (indent-line-to 0))
310 ;; inside a defun, but not a nested list (depth is 1) 326
327 ;; Inside a defun, but not a nested list (depth is 1). This is
328 ;; a promise, usually.
329
330 ;; Indent to cfengine-indent times the nested depth
331 ;; plus 2. That way, promises indent deeper than class
332 ;; selectors, which in turn are one deeper than categories.
311 ((= 1 (nth 0 parse)) 333 ((= 1 (nth 0 parse))
312 (indent-line-to (* (+ 2 (nth 0 parse)) cfengine-indent))) 334 (indent-line-to (* (+ 2 (nth 0 parse)) cfengine-indent)))
313 ;; Inside brackets/parens: indent to start column of non-comment 335 ;; Inside brackets/parens: indent to start column of non-comment
@@ -411,18 +433,18 @@ Intended as the value of `indent-line-function'."
411 (set (make-local-variable 'parse-sexp-ignore-comments) t)) 433 (set (make-local-variable 'parse-sexp-ignore-comments) t))
412 434
413(defun cfengine-common-syntax (table) 435(defun cfengine-common-syntax (table)
414 ;; the syntax defaults seem OK to give reasonable word movement 436 ;; The syntax defaults seem OK to give reasonable word movement.
415 (modify-syntax-entry ?# "<" table) 437 (modify-syntax-entry ?# "<" table)
416 (modify-syntax-entry ?\n ">#" table) 438 (modify-syntax-entry ?\n ">#" table)
417 (modify-syntax-entry ?\" "\"" table) 439 (modify-syntax-entry ?\" "\"" table)
418 ;; variable substitution: 440 ;; Variable substitution.
419 (modify-syntax-entry ?$ "." table) 441 (modify-syntax-entry ?$ "." table)
420 ;; Doze path separators: 442 ;; Doze path separators.
421 (modify-syntax-entry ?\\ "." table)) 443 (modify-syntax-entry ?\\ "." table))
422 444
423;;;###autoload 445;;;###autoload
424(define-derived-mode cfengine3-mode prog-mode "CFEngine3" 446(define-derived-mode cfengine3-mode prog-mode "CFE3"
425 "Major mode for editing cfengine input. 447 "Major mode for editing CFEngine3 input.
426There are no special keybindings by default. 448There are no special keybindings by default.
427 449
428Action blocks are treated as defuns, i.e. \\[beginning-of-defun] moves 450Action blocks are treated as defuns, i.e. \\[beginning-of-defun] moves
@@ -434,46 +456,46 @@ to the action header."
434 (setq font-lock-defaults 456 (setq font-lock-defaults
435 '(cfengine3-font-lock-keywords nil nil nil beginning-of-defun)) 457 '(cfengine3-font-lock-keywords nil nil nil beginning-of-defun))
436 458
437 ;; use defuns as the essential syntax block 459 ;; Use defuns as the essential syntax block.
438 (set (make-local-variable 'beginning-of-defun-function) 460 (set (make-local-variable 'beginning-of-defun-function)
439 #'cfengine3-beginning-of-defun) 461 #'cfengine3-beginning-of-defun)
440 (set (make-local-variable 'end-of-defun-function) 462 (set (make-local-variable 'end-of-defun-function)
441 #'cfengine3-end-of-defun)) 463 #'cfengine3-end-of-defun))
442 464
443;;;###autoload 465;;;###autoload
444(define-derived-mode cfengine-mode prog-mode "Cfengine" 466(define-derived-mode cfengine2-mode prog-mode "CFE2"
445 "Major mode for editing cfengine input. 467 "Major mode for editing CFEngine2 input.
446There are no special keybindings by default. 468There are no special keybindings by default.
447 469
448Action blocks are treated as defuns, i.e. \\[beginning-of-defun] moves 470Action blocks are treated as defuns, i.e. \\[beginning-of-defun] moves
449to the action header." 471to the action header."
450 (cfengine-common-settings) 472 (cfengine-common-settings)
451 (cfengine-common-syntax cfengine-mode-syntax-table) 473 (cfengine-common-syntax cfengine2-mode-syntax-table)
452 474
453 ;; Shell commands can be quoted by single, double or back quotes. 475 ;; Shell commands can be quoted by single, double or back quotes.
454 ;; It's debatable whether we should define string syntax, but it 476 ;; It's debatable whether we should define string syntax, but it
455 ;; should avoid potential confusion in some cases. 477 ;; should avoid potential confusion in some cases.
456 (modify-syntax-entry ?\' "\"" cfengine-mode-syntax-table) 478 (modify-syntax-entry ?\' "\"" cfengine2-mode-syntax-table)
457 (modify-syntax-entry ?\` "\"" cfengine-mode-syntax-table) 479 (modify-syntax-entry ?\` "\"" cfengine2-mode-syntax-table)
458 480
459 (set (make-local-variable 'indent-line-function) #'cfengine-indent-line) 481 (set (make-local-variable 'indent-line-function) #'cfengine2-indent-line)
460 (set (make-local-variable 'outline-regexp) "[ \t]*\\(\\sw\\|\\s_\\)+:+") 482 (set (make-local-variable 'outline-regexp) "[ \t]*\\(\\sw\\|\\s_\\)+:+")
461 (set (make-local-variable 'outline-level) #'cfengine-outline-level) 483 (set (make-local-variable 'outline-level) #'cfengine2-outline-level)
462 (set (make-local-variable 'fill-paragraph-function) 484 (set (make-local-variable 'fill-paragraph-function)
463 #'cfengine-fill-paragraph) 485 #'cfengine-fill-paragraph)
464 (define-abbrev-table 'cfengine-mode-abbrev-table cfengine-mode-abbrevs) 486 (define-abbrev-table 'cfengine2-mode-abbrev-table cfengine-mode-abbrevs)
465 (setq font-lock-defaults 487 (setq font-lock-defaults
466 '(cfengine-font-lock-keywords nil nil nil beginning-of-line)) 488 '(cfengine2-font-lock-keywords nil nil nil beginning-of-line))
467 ;; Fixme: set the args of functions in evaluated classes to string 489 ;; Fixme: set the args of functions in evaluated classes to string
468 ;; syntax, and then obey syntax properties. 490 ;; syntax, and then obey syntax properties.
469 (setq imenu-generic-expression cfengine-imenu-expression) 491 (setq imenu-generic-expression cfengine2-imenu-expression)
470 (set (make-local-variable 'beginning-of-defun-function) 492 (set (make-local-variable 'beginning-of-defun-function)
471 #'cfengine-beginning-of-defun) 493 #'cfengine2-beginning-of-defun)
472 (set (make-local-variable 'end-of-defun-function) #'cfengine-end-of-defun)) 494 (set (make-local-variable 'end-of-defun-function) #'cfengine2-end-of-defun))
473 495
474;;;###autoload 496;;;###autoload
475(defun cfengine-auto-mode () 497(defun cfengine-auto-mode ()
476 "Choose between `cfengine-mode' and `cfengine3-mode' depending 498 "Choose between `cfengine2-mode' and `cfengine3-mode' depending
477on the buffer contents" 499on the buffer contents"
478 (let ((v3 nil)) 500 (let ((v3 nil))
479 (save-restriction 501 (save-restriction
@@ -481,7 +503,9 @@ on the buffer contents"
481 (while (not (or (eobp) v3)) 503 (while (not (or (eobp) v3))
482 (setq v3 (looking-at (concat cfengine3-defuns-regex "\\>"))) 504 (setq v3 (looking-at (concat cfengine3-defuns-regex "\\>")))
483 (forward-line))) 505 (forward-line)))
484 (if v3 (cfengine3-mode) (cfengine-mode)))) 506 (if v3 (cfengine3-mode) (cfengine2-mode))))
507
508(defalias 'cfengine-mode 'cfengine-auto-mode)
485 509
486(provide 'cfengine3) 510(provide 'cfengine3)
487(provide 'cfengine) 511(provide 'cfengine)
diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el
index 13fa310106c..86284eaa30a 100644
--- a/lisp/progmodes/cperl-mode.el
+++ b/lisp/progmodes/cperl-mode.el
@@ -958,7 +958,7 @@ B) Speed of editing operations.
958 `cperl-array-face' Array names 958 `cperl-array-face' Array names
959 `cperl-hash-face' Hash names 959 `cperl-hash-face' Hash names
960 `font-lock-comment-face' Comments, PODs and whatever is considered 960 `font-lock-comment-face' Comments, PODs and whatever is considered
961 syntaxically to be not code 961 syntactically to be not code
962 `font-lock-constant-face' HERE-doc delimiters, labels, delimiters of 962 `font-lock-constant-face' HERE-doc delimiters, labels, delimiters of
963 2-arg operators s/y/tr/ or of RExen, 963 2-arg operators s/y/tr/ or of RExen,
964 `font-lock-warning-face' Special-cased m// and s//foo/, 964 `font-lock-warning-face' Special-cased m// and s//foo/,
@@ -970,7 +970,7 @@ B) Speed of editing operations.
970 `cperl-nonoverridable-face' Non-overridable keywords, modifiers of RExen 970 `cperl-nonoverridable-face' Non-overridable keywords, modifiers of RExen
971 `font-lock-string-face' Strings, qw() constructs, RExen, POD sections, 971 `font-lock-string-face' Strings, qw() constructs, RExen, POD sections,
972 literal parts and the terminator of formats 972 literal parts and the terminator of formats
973 and whatever is syntaxically considered 973 and whatever is syntactically considered
974 as string literals 974 as string literals
975 `font-lock-type-face' Overridable keywords 975 `font-lock-type-face' Overridable keywords
976 `font-lock-variable-name-face' Variable declarations, indirect array and 976 `font-lock-variable-name-face' Variable declarations, indirect array and
@@ -1537,8 +1537,8 @@ default.) You can always quote (with \\[quoted-insert]) the left
1537since most the time you mean \"less\". CPerl mode tries to guess 1537since most the time you mean \"less\". CPerl mode tries to guess
1538whether you want to type pair <>, and inserts is if it 1538whether you want to type pair <>, and inserts is if it
1539appropriate. You can set `cperl-electric-parens-string' to the string that 1539appropriate. You can set `cperl-electric-parens-string' to the string that
1540contains the parenths from the above list you want to be electrical. 1540contains the parens from the above list you want to be electrical.
1541Electricity of parenths is controlled by `cperl-electric-parens'. 1541Electricity of parens is controlled by `cperl-electric-parens'.
1542You may also set `cperl-electric-parens-mark' to have electric parens 1542You may also set `cperl-electric-parens-mark' to have electric parens
1543look for active mark and \"embrace\" a region if possible.' 1543look for active mark and \"embrace\" a region if possible.'
1544 1544
@@ -3517,7 +3517,7 @@ Works before syntax recognition is done."
3517(defvar font-lock-warning-face) 3517(defvar font-lock-warning-face)
3518 3518
3519(defun cperl-find-sub-attrs (&optional st-l b-fname e-fname pos) 3519(defun cperl-find-sub-attrs (&optional st-l b-fname e-fname pos)
3520 "Syntaxically mark (and fontify) attributes of a subroutine. 3520 "Syntactically mark (and fontify) attributes of a subroutine.
3521Should be called with the point before leading colon of an attribute." 3521Should be called with the point before leading colon of an attribute."
3522 ;; Works *before* syntax recognition is done 3522 ;; Works *before* syntax recognition is done
3523 (or st-l (setq st-l (list nil))) ; Avoid overwriting '() 3523 (or st-l (setq st-l (list nil))) ; Avoid overwriting '()
@@ -4994,7 +4994,7 @@ conditional/loop constructs."
4994 (setq top (point)) 4994 (setq top (point))
4995 ;; Plan A: if line has an unfinished paren-group, go to end-of-group 4995 ;; Plan A: if line has an unfinished paren-group, go to end-of-group
4996 (while (= -1 (nth 0 (parse-partial-sexp (point) tmp-end -1))) 4996 (while (= -1 (nth 0 (parse-partial-sexp (point) tmp-end -1)))
4997 (setq top (point))) ; Get the outermost parenths in line 4997 (setq top (point))) ; Get the outermost parens in line
4998 (goto-char top) 4998 (goto-char top)
4999 (while (< (point) tmp-end) 4999 (while (< (point) tmp-end)
5000 (parse-partial-sexp (point) tmp-end nil t) ; To start-sexp or eol 5000 (parse-partial-sexp (point) tmp-end nil t) ; To start-sexp or eol
@@ -5906,7 +5906,7 @@ indentation and initial hashes. Behaves usually outside of comment."
5906 3 font-lock-variable-name-face))) 5906 3 font-lock-variable-name-face)))
5907 '("\\<for\\(each\\)?\\([ \t]+\\(my\\|local\\|our\\)\\)?[ \t]*\\(\\$[a-zA-Z_][a-zA-Z_0-9]*\\)[ \t]*(" 5907 '("\\<for\\(each\\)?\\([ \t]+\\(my\\|local\\|our\\)\\)?[ \t]*\\(\\$[a-zA-Z_][a-zA-Z_0-9]*\\)[ \t]*("
5908 4 font-lock-variable-name-face) 5908 4 font-lock-variable-name-face)
5909 ;; Avoid $!, and s!!, qq!! etc. when not fontifying syntaxically 5909 ;; Avoid $!, and s!!, qq!! etc. when not fontifying syntactically
5910 '("\\(?:^\\|[^smywqrx$]\\)\\(!\\)" 1 font-lock-negation-char-face) 5910 '("\\(?:^\\|[^smywqrx$]\\)\\(!\\)" 1 font-lock-negation-char-face)
5911 '("\\[\\(\\^\\)" 1 font-lock-negation-char-face prepend))) 5911 '("\\[\\(\\^\\)" 1 font-lock-negation-char-face prepend)))
5912 (setq 5912 (setq
diff --git a/lisp/progmodes/dcl-mode.el b/lisp/progmodes/dcl-mode.el
index d855861d552..eeb145e2b1a 100644
--- a/lisp/progmodes/dcl-mode.el
+++ b/lisp/progmodes/dcl-mode.el
@@ -708,7 +708,7 @@ Returns point of the found command line or nil if not able to move."
708 (setq done t) ; not a label-only line, exit the loop 708 (setq done t) ; not a label-only line, exit the loop
709 (setq retval (point)))) 709 (setq retval (point))))
710 ;; We couldn't go further back, and we haven't found a command yet. 710 ;; We couldn't go further back, and we haven't found a command yet.
711 ;; Return to the start positionn 711 ;; Return to the start position.
712 (goto-char start) 712 (goto-char start)
713 (setq done t) 713 (setq done t)
714 (setq retval nil))) 714 (setq retval nil)))
@@ -756,7 +756,7 @@ Returns point of the found command line or nil if not able to move."
756 (setq done t) ; not a label-only line, exit the loop 756 (setq done t) ; not a label-only line, exit the loop
757 (setq retval (point))))) 757 (setq retval (point)))))
758 ;; We couldn't go further back, and we haven't found a command yet. 758 ;; We couldn't go further back, and we haven't found a command yet.
759 ;; Return to the start positionn 759 ;; Return to the start position.
760 (goto-char start) 760 (goto-char start)
761 (setq done t) 761 (setq done t)
762 (setq retval nil))) 762 (setq retval nil)))
diff --git a/lisp/progmodes/ebnf2ps.el b/lisp/progmodes/ebnf2ps.el
index d9adff6c8b8..240deb39ce3 100644
--- a/lisp/progmodes/ebnf2ps.el
+++ b/lisp/progmodes/ebnf2ps.el
@@ -3260,7 +3260,7 @@ See documentation for `ebnf-terminal-shape', `ebnf-non-terminal-shape' and
3260 3260
3261% --- Corners 3261% --- Corners
3262 3262
3263%>corner Right Descendent: height arrow corner_RD 3263%>corner Right Descendant: height arrow corner_RD
3264% _ | arrow 3264% _ | arrow
3265% / height > 0 | 0 - none 3265% / height > 0 | 0 - none
3266% | | 1 - right 3266% | | 1 - right
@@ -3299,7 +3299,7 @@ See documentation for `ebnf-terminal-shape', `ebnf-non-terminal-shape' and
3299 Gstroke 3299 Gstroke
3300}def 3300}def
3301 3301
3302%>corner Right Ascendent: height arrow corner_RA 3302%>corner Right Ascendant: height arrow corner_RA
3303% | arrow 3303% | arrow
3304% | height > 0 | 0 - none 3304% | height > 0 | 0 - none
3305% / | 1 - right 3305% / | 1 - right
@@ -3338,7 +3338,7 @@ See documentation for `ebnf-terminal-shape', `ebnf-non-terminal-shape' and
3338 Gstroke 3338 Gstroke
3339}def 3339}def
3340 3340
3341%>corner Left Descendent: height arrow corner_LD 3341%>corner Left Descendant: height arrow corner_LD
3342% _ | arrow 3342% _ | arrow
3343% \\ height > 0 | 0 - none 3343% \\ height > 0 | 0 - none
3344% | | 1 - right 3344% | | 1 - right
@@ -3377,7 +3377,7 @@ See documentation for `ebnf-terminal-shape', `ebnf-non-terminal-shape' and
3377 Gstroke 3377 Gstroke
3378}def 3378}def
3379 3379
3380%>corner Left Ascendent: height arrow corner_LA 3380%>corner Left Ascendant: height arrow corner_LA
3381% | arrow 3381% | arrow
3382% | height > 0 | 0 - none 3382% | height > 0 | 0 - none
3383% \\ | 1 - right 3383% \\ | 1 - right
diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el
index ab40dff24f1..1c38c59bba6 100644
--- a/lisp/progmodes/gdb-mi.el
+++ b/lisp/progmodes/gdb-mi.el
@@ -811,6 +811,9 @@ detailed description of this mode.
811 (define-key gud-minor-mode-map [left-margin C-mouse-3] 811 (define-key gud-minor-mode-map [left-margin C-mouse-3]
812 'gdb-mouse-jump) 812 'gdb-mouse-jump)
813 813
814 (set (make-local-variable 'gud-gdb-completion-function)
815 'gud-gdbmi-completions)
816
814 (add-hook 'completion-at-point-functions #'gud-gdb-completion-at-point 817 (add-hook 'completion-at-point-functions #'gud-gdb-completion-at-point
815 nil 'local) 818 nil 'local)
816 (local-set-key "\C-i" 'completion-at-point) 819 (local-set-key "\C-i" 'completion-at-point)
@@ -859,31 +862,28 @@ detailed description of this mode.
859 (set-process-filter (get-process "gdb-inferior") 'gdb-inferior-filter) 862 (set-process-filter (get-process "gdb-inferior") 'gdb-inferior-filter)
860 (gdb-input 863 (gdb-input
861 ;; Needs GDB 6.4 onwards 864 ;; Needs GDB 6.4 onwards
862 (list (concat "-inferior-tty-set " 865 (concat "-inferior-tty-set "
863 (or 866 (or
864 ;; The process can run on a remote host. 867 ;; The process can run on a remote host.
865 (process-get (get-process "gdb-inferior") 'remote-tty) 868 (process-get (get-process "gdb-inferior") 'remote-tty)
866 (process-tty-name (get-process "gdb-inferior")))) 869 (process-tty-name (get-process "gdb-inferior"))))
867 'ignore)) 870 'ignore)
868 (if (eq window-system 'w32) 871 (if (eq window-system 'w32)
869 (gdb-input (list "-gdb-set new-console off" 'ignore))) 872 (gdb-input "-gdb-set new-console off" 'ignore))
870 (gdb-input (list "-gdb-set height 0" 'ignore)) 873 (gdb-input "-gdb-set height 0" 'ignore)
871 874
872 (when gdb-non-stop 875 (when gdb-non-stop
873 (gdb-input (list "-gdb-set non-stop 1" 'gdb-non-stop-handler))) 876 (gdb-input "-gdb-set non-stop 1" 'gdb-non-stop-handler))
874 877
875 (gdb-input (list "-enable-pretty-printing" 'ignore)) 878 (gdb-input "-enable-pretty-printing" 'ignore)
876 879
877 ;; find source file and compilation directory here 880 ;; find source file and compilation directory here
878 (if gdb-create-source-file-list 881 (if gdb-create-source-file-list
879 (gdb-input 882 ;; Needs GDB 6.2 onwards.
880 ; Needs GDB 6.2 onwards. 883 (gdb-input "-file-list-exec-source-files" 'gdb-get-source-file-list))
881 (list "-file-list-exec-source-files" 'gdb-get-source-file-list))) 884 ;; Needs GDB 6.0 onwards.
882 (gdb-input 885 (gdb-input "-file-list-exec-source-file" 'gdb-get-source-file)
883 ; Needs GDB 6.0 onwards. 886 (gdb-input "-gdb-show prompt" 'gdb-get-prompt))
884 (list "-file-list-exec-source-file" 'gdb-get-source-file))
885 (gdb-input
886 (list "-gdb-show prompt" 'gdb-get-prompt)))
887 887
888(defun gdb-non-stop-handler () 888(defun gdb-non-stop-handler ()
889 (goto-char (point-min)) 889 (goto-char (point-min))
@@ -894,8 +894,8 @@ detailed description of this mode.
894 (setq gdb-non-stop nil) 894 (setq gdb-non-stop nil)
895 (setq gdb-supports-non-stop nil)) 895 (setq gdb-supports-non-stop nil))
896 (setq gdb-supports-non-stop t) 896 (setq gdb-supports-non-stop t)
897 (gdb-input (list "-gdb-set target-async 1" 'ignore)) 897 (gdb-input "-gdb-set target-async 1" 'ignore)
898 (gdb-input (list "-list-target-features" 'gdb-check-target-async)))) 898 (gdb-input "-list-target-features" 'gdb-check-target-async)))
899 899
900(defun gdb-check-target-async () 900(defun gdb-check-target-async ()
901 (goto-char (point-min)) 901 (goto-char (point-min))
@@ -903,7 +903,7 @@ detailed description of this mode.
903 (message 903 (message
904 "Target doesn't support non-stop mode. Turning it off.") 904 "Target doesn't support non-stop mode. Turning it off.")
905 (setq gdb-non-stop nil) 905 (setq gdb-non-stop nil)
906 (gdb-input (list "-gdb-set non-stop 0" 'ignore)))) 906 (gdb-input "-gdb-set non-stop 0" 'ignore)))
907 907
908(defvar gdb-define-alist nil "Alist of #define directives for GUD tooltips.") 908(defvar gdb-define-alist nil "Alist of #define directives for GUD tooltips.")
909 909
@@ -948,9 +948,8 @@ detailed description of this mode.
948 (goto-char (point-min)) 948 (goto-char (point-min))
949 (if (search-forward "expands to: " nil t) 949 (if (search-forward "expands to: " nil t)
950 (unless (looking-at "\\S-+.*(.*).*") 950 (unless (looking-at "\\S-+.*(.*).*")
951 (gdb-input 951 (gdb-input (concat "-data-evaluate-expression " expr)
952 (list (concat "-data-evaluate-expression " expr) 952 `(lambda () (gdb-tooltip-print ,expr)))))))
953 `(lambda () (gdb-tooltip-print ,expr))))))))
954 953
955(defun gdb-init-buffer () 954(defun gdb-init-buffer ()
956 (set (make-local-variable 'gud-minor-mode) 'gdbmi) 955 (set (make-local-variable 'gud-minor-mode) 'gdbmi)
@@ -1080,9 +1079,8 @@ With arg, enter name of variable to be watched in the minibuffer."
1080 (concat (if (derived-mode-p 'gdb-registers-mode) "$") 1079 (concat (if (derived-mode-p 'gdb-registers-mode) "$")
1081 (tooltip-identifier-from-point (point))))))) 1080 (tooltip-identifier-from-point (point)))))))
1082 (set-text-properties 0 (length expr) nil expr) 1081 (set-text-properties 0 (length expr) nil expr)
1083 (gdb-input 1082 (gdb-input (concat "-var-create - * " expr "")
1084 (list (concat "-var-create - * " expr "") 1083 `(lambda () (gdb-var-create-handler ,expr))))))
1085 `(lambda () (gdb-var-create-handler ,expr)))))))
1086 (message "gud-watch is a no-op in this mode.")))) 1084 (message "gud-watch is a no-op in this mode."))))
1087 1085
1088(defun gdb-var-create-handler (expr) 1086(defun gdb-var-create-handler (expr)
@@ -1111,7 +1109,7 @@ With arg, enter name of variable to be watched in the minibuffer."
1111 (when (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame) 1109 (when (and (boundp 'speedbar-frame) (frame-live-p speedbar-frame)
1112 (not (gdb-pending-p 'gdb-speedbar-timer))) 1110 (not (gdb-pending-p 'gdb-speedbar-timer)))
1113 ;; Dummy command to update speedbar even when idle. 1111 ;; Dummy command to update speedbar even when idle.
1114 (gdb-input (list "-environment-pwd" 'gdb-speedbar-timer-fn)) 1112 (gdb-input "-environment-pwd" 'gdb-speedbar-timer-fn)
1115 ;; Keep gdb-pending-triggers non-nil till end. 1113 ;; Keep gdb-pending-triggers non-nil till end.
1116 (gdb-add-pending 'gdb-speedbar-timer))) 1114 (gdb-add-pending 'gdb-speedbar-timer)))
1117 1115
@@ -1132,12 +1130,9 @@ With arg, enter name of variable to be watched in the minibuffer."
1132 1130
1133 ; Uses "-var-list-children --all-values". Needs GDB 6.1 onwards. 1131 ; Uses "-var-list-children --all-values". Needs GDB 6.1 onwards.
1134(defun gdb-var-list-children (varnum) 1132(defun gdb-var-list-children (varnum)
1135 (gdb-input 1133 (gdb-input (concat "-var-update " varnum) 'ignore)
1136 (list (concat "-var-update " varnum) 'ignore)) 1134 (gdb-input (concat "-var-list-children --all-values " varnum)
1137 (gdb-input 1135 `(lambda () (gdb-var-list-children-handler ,varnum))))
1138 (list (concat "-var-list-children --all-values "
1139 varnum)
1140 `(lambda () (gdb-var-list-children-handler ,varnum)))))
1141 1136
1142(defun gdb-var-list-children-handler (varnum) 1137(defun gdb-var-list-children-handler (varnum)
1143 (let* ((var-list nil) 1138 (let* ((var-list nil)
@@ -1169,13 +1164,11 @@ With arg, enter name of variable to be watched in the minibuffer."
1169 "Set the output format for a variable displayed in the speedbar." 1164 "Set the output format for a variable displayed in the speedbar."
1170 (let* ((var (nth (- (count-lines (point-min) (point)) 2) gdb-var-list)) 1165 (let* ((var (nth (- (count-lines (point-min) (point)) 2) gdb-var-list))
1171 (varnum (car var))) 1166 (varnum (car var)))
1172 (gdb-input 1167 (gdb-input (concat "-var-set-format " varnum " " format) 'ignore)
1173 (list (concat "-var-set-format " varnum " " format) 'ignore))
1174 (gdb-var-update))) 1168 (gdb-var-update)))
1175 1169
1176(defun gdb-var-delete-1 (var varnum) 1170(defun gdb-var-delete-1 (var varnum)
1177 (gdb-input 1171 (gdb-input (concat "-var-delete " varnum) 'ignore)
1178 (list (concat "-var-delete " varnum) 'ignore))
1179 (setq gdb-var-list (delq var gdb-var-list)) 1172 (setq gdb-var-list (delq var gdb-var-list))
1180 (dolist (varchild gdb-var-list) 1173 (dolist (varchild gdb-var-list)
1181 (if (string-match (concat (car var) "\\.") (car varchild)) 1174 (if (string-match (concat (car var) "\\.") (car varchild))
@@ -1194,17 +1187,15 @@ With arg, enter name of variable to be watched in the minibuffer."
1194 1187
1195(defun gdb-var-delete-children (varnum) 1188(defun gdb-var-delete-children (varnum)
1196 "Delete children of variable object at point from the speedbar." 1189 "Delete children of variable object at point from the speedbar."
1197 (gdb-input 1190 (gdb-input (concat "-var-delete -c " varnum) 'ignore))
1198 (list (concat "-var-delete -c " varnum) 'ignore)))
1199 1191
1200(defun gdb-edit-value (_text _token _indent) 1192(defun gdb-edit-value (_text _token _indent)
1201 "Assign a value to a variable displayed in the speedbar." 1193 "Assign a value to a variable displayed in the speedbar."
1202 (let* ((var (nth (- (count-lines (point-min) (point)) 2) gdb-var-list)) 1194 (let* ((var (nth (- (count-lines (point-min) (point)) 2) gdb-var-list))
1203 (varnum (car var)) (value)) 1195 (varnum (car var)) (value))
1204 (setq value (read-string "New value: ")) 1196 (setq value (read-string "New value: "))
1205 (gdb-input 1197 (gdb-input (concat "-var-assign " varnum " " value)
1206 (list (concat "-var-assign " varnum " " value) 1198 `(lambda () (gdb-edit-value-handler ,value)))))
1207 `(lambda () (gdb-edit-value-handler ,value))))))
1208 1199
1209(defconst gdb-error-regexp "\\^error,msg=\\(\".+\"\\)") 1200(defconst gdb-error-regexp "\\^error,msg=\\(\".+\"\\)")
1210 1201
@@ -1216,8 +1207,7 @@ With arg, enter name of variable to be watched in the minibuffer."
1216 ; Uses "-var-update --all-values". Needs GDB 6.4 onwards. 1207 ; Uses "-var-update --all-values". Needs GDB 6.4 onwards.
1217(defun gdb-var-update () 1208(defun gdb-var-update ()
1218 (if (not (gdb-pending-p 'gdb-var-update)) 1209 (if (not (gdb-pending-p 'gdb-var-update))
1219 (gdb-input 1210 (gdb-input "-var-update --all-values *" 'gdb-var-update-handler))
1220 (list "-var-update --all-values *" 'gdb-var-update-handler)))
1221 (gdb-add-pending 'gdb-var-update)) 1211 (gdb-add-pending 'gdb-var-update))
1222 1212
1223(defun gdb-var-update-handler () 1213(defun gdb-var-update-handler ()
@@ -1697,13 +1687,17 @@ static char *magick[] = {
1697 gdb-continuation string "\"\n")) 1687 gdb-continuation string "\"\n"))
1698 (setq gdb-continuation nil)))) 1688 (setq gdb-continuation nil))))
1699 1689
1700(defun gdb-input (item) 1690(defun gdb-input (command handler-function)
1701 (if gdb-enable-debug (push (cons 'send-item item) gdb-debug-log)) 1691 "Send COMMAND to GDB via the MI interface.
1692Run the function HANDLER-FUNCTION, with no arguments, once the command is
1693complete."
1694 (if gdb-enable-debug (push (list 'send-item command handler-function)
1695 gdb-debug-log))
1702 (setq gdb-token-number (1+ gdb-token-number)) 1696 (setq gdb-token-number (1+ gdb-token-number))
1703 (setcar item (concat (number-to-string gdb-token-number) (car item))) 1697 (setq command (concat (number-to-string gdb-token-number) command))
1704 (push (cons gdb-token-number (car (cdr item))) gdb-handler-alist) 1698 (push (cons gdb-token-number handler-function) gdb-handler-alist)
1705 (process-send-string (get-buffer-process gud-comint-buffer) 1699 (process-send-string (get-buffer-process gud-comint-buffer)
1706 (concat (car item) "\n"))) 1700 (concat command "\n")))
1707 1701
1708;; NOFRAME is used for gud execution control commands 1702;; NOFRAME is used for gud execution control commands
1709(defun gdb-current-context-command (command) 1703(defun gdb-current-context-command (command)
@@ -1890,15 +1884,16 @@ is running."
1890 (let ((record-type (cadr output-record)) 1884 (let ((record-type (cadr output-record))
1891 (arg1 (nth 2 output-record)) 1885 (arg1 (nth 2 output-record))
1892 (arg2 (nth 3 output-record))) 1886 (arg2 (nth 3 output-record)))
1893 (if (eq record-type 'gdb-error) 1887 (cond ((eq record-type 'gdb-error)
1894 (gdb-done-or-error arg2 arg1 'error) 1888 (gdb-done-or-error arg2 arg1 'error))
1895 (if (eq record-type 'gdb-done) 1889 ((eq record-type 'gdb-done)
1896 (gdb-done-or-error arg2 arg1 'done) 1890 (gdb-done-or-error arg2 arg1 'done))
1897 ;; Suppress "No registers." since GDB 6.8 and earlier duplicates MI 1891 ;; Suppress "No registers." GDB 6.8 and earlier
1898 ;; error message on internal stream. Don't print to GUD buffer. 1892 ;; duplicates MI error message on internal stream.
1899 (unless (and (eq record-type 'gdb-internals) 1893 ;; Don't print to GUD buffer.
1900 (string-equal (read arg1) "No registers.\n")) 1894 ((not (and (eq record-type 'gdb-internals)
1901 (funcall record-type arg1)))))) 1895 (string-equal (read arg1) "No registers.\n")))
1896 (funcall record-type arg1)))))
1902 1897
1903 (setq gdb-output-sink 'user) 1898 (setq gdb-output-sink 'user)
1904 ;; Remove padding. 1899 ;; Remove padding.
@@ -1991,11 +1986,10 @@ current thread and update GDB buffers."
1991 ;; -data-list-register-names needs to be issued for any stopped 1986 ;; -data-list-register-names needs to be issued for any stopped
1992 ;; thread 1987 ;; thread
1993 (when (not gdb-register-names) 1988 (when (not gdb-register-names)
1994 (gdb-input 1989 (gdb-input (concat "-data-list-register-names"
1995 (list (concat "-data-list-register-names" 1990 (if gdb-supports-non-stop
1996 (if gdb-supports-non-stop 1991 (concat " --thread " thread-id)))
1997 (concat " --thread " thread-id))) 1992 'gdb-register-names-handler))
1998 'gdb-register-names-handler)))
1999 1993
2000;;; Don't set gud-last-frame here as it's currently done in gdb-frame-handler 1994;;; Don't set gud-last-frame here as it's currently done in gdb-frame-handler
2001;;; because synchronous GDB doesn't give these fields with CLI. 1995;;; because synchronous GDB doesn't give these fields with CLI.
@@ -2062,9 +2056,7 @@ current thread and update GDB buffers."
2062;; (frontend MI commands should not print to this stream) 2056;; (frontend MI commands should not print to this stream)
2063(defun gdb-console (output-field) 2057(defun gdb-console (output-field)
2064 (setq gdb-filter-output 2058 (setq gdb-filter-output
2065 (gdb-concat-output 2059 (gdb-concat-output gdb-filter-output (read output-field))))
2066 gdb-filter-output
2067 (read output-field))))
2068 2060
2069(defun gdb-done-or-error (output-field token-number type) 2061(defun gdb-done-or-error (output-field token-number type)
2070 (if (string-equal token-number "") 2062 (if (string-equal token-number "")
@@ -2102,12 +2094,11 @@ current thread and update GDB buffers."
2102 (assq-delete-all token-number gdb-handler-alist))))) 2094 (assq-delete-all token-number gdb-handler-alist)))))
2103 2095
2104(defun gdb-concat-output (so-far new) 2096(defun gdb-concat-output (so-far new)
2105 (let ((sink gdb-output-sink)) 2097 (cond
2106 (cond 2098 ((eq gdb-output-sink 'user) (concat so-far new))
2107 ((eq sink 'user) (concat so-far new)) 2099 ((eq gdb-output-sink 'emacs)
2108 ((eq sink 'emacs) 2100 (gdb-append-to-partial-output new)
2109 (gdb-append-to-partial-output new) 2101 so-far)))
2110 so-far))))
2111 2102
2112(defun gdb-append-to-partial-output (string) 2103(defun gdb-append-to-partial-output (string)
2113 (with-current-buffer (gdb-get-buffer-create 'gdb-partial-output-buffer) 2104 (with-current-buffer (gdb-get-buffer-create 'gdb-partial-output-buffer)
@@ -2317,9 +2308,8 @@ trigger argument when describing buffer types with
2317 (memq signal ,signal-list)) 2308 (memq signal ,signal-list))
2318 (when (not (gdb-pending-p 2309 (when (not (gdb-pending-p
2319 (cons (current-buffer) ',trigger-name))) 2310 (cons (current-buffer) ',trigger-name)))
2320 (gdb-input 2311 (gdb-input ,gdb-command
2321 (list ,gdb-command 2312 (gdb-bind-function-to-buffer ',handler-name (current-buffer)))
2322 (gdb-bind-function-to-buffer ',handler-name (current-buffer))))
2323 (gdb-add-pending (cons (current-buffer) ',trigger-name)))))) 2313 (gdb-add-pending (cons (current-buffer) ',trigger-name))))))
2324 2314
2325;; Used by disassembly buffer only, the rest use 2315;; Used by disassembly buffer only, the rest use
@@ -2446,13 +2436,10 @@ HANDLER-NAME handler uses customization of CUSTOM-DEFUN. See
2446 ;; Only want one breakpoint icon at each location. 2436 ;; Only want one breakpoint icon at each location.
2447 (gdb-put-breakpoint-icon (string-equal flag "y") bptno 2437 (gdb-put-breakpoint-icon (string-equal flag "y") bptno
2448 (string-to-number line))) 2438 (string-to-number line)))
2449 (gdb-input 2439 (gdb-input (concat "list " file ":1") 'ignore)
2450 (list (concat "list " file ":1") 2440 (gdb-input "-file-list-exec-source-file"
2451 'ignore)) 2441 `(lambda () (gdb-get-location
2452 (gdb-input 2442 ,bptno ,line ,flag)))))))))
2453 (list "-file-list-exec-source-file"
2454 `(lambda () (gdb-get-location
2455 ,bptno ,line ,flag))))))))))
2456 2443
2457(defvar gdb-source-file-regexp "fullname=\"\\(.*?\\)\"") 2444(defvar gdb-source-file-regexp "fullname=\"\\(.*?\\)\"")
2458 2445
@@ -2782,7 +2769,7 @@ on the current line."
2782(def-gdb-thread-buffer-command gdb-select-thread 2769(def-gdb-thread-buffer-command gdb-select-thread
2783 (let ((new-id (bindat-get-field thread 'id))) 2770 (let ((new-id (bindat-get-field thread 'id)))
2784 (gdb-setq-thread-number new-id) 2771 (gdb-setq-thread-number new-id)
2785 (gdb-input (list (concat "-thread-select " new-id) 'ignore)) 2772 (gdb-input (concat "-thread-select " new-id) 'ignore)
2786 (gdb-update)) 2773 (gdb-update))
2787 "Select the thread at current line of threads buffer.") 2774 "Select the thread at current line of threads buffer.")
2788 2775
@@ -3538,8 +3525,8 @@ member."
3538 (if (gdb-buffer-shows-main-thread-p) 3525 (if (gdb-buffer-shows-main-thread-p)
3539 (let ((new-level (bindat-get-field frame 'level))) 3526 (let ((new-level (bindat-get-field frame 'level)))
3540 (setq gdb-frame-number new-level) 3527 (setq gdb-frame-number new-level)
3541 (gdb-input (list (concat "-stack-select-frame " new-level) 3528 (gdb-input (concat "-stack-select-frame " new-level)
3542 'ignore)) 3529 'ignore)
3543 (gdb-update)) 3530 (gdb-update))
3544 (error "Could not select frame for non-current thread")) 3531 (error "Could not select frame for non-current thread"))
3545 (error "Not recognized as frame line")))) 3532 (error "Not recognized as frame line"))))
@@ -3767,14 +3754,11 @@ member."
3767 3754
3768;; Needs GDB 6.4 onwards (used to fail with no stack). 3755;; Needs GDB 6.4 onwards (used to fail with no stack).
3769(defun gdb-get-changed-registers () 3756(defun gdb-get-changed-registers ()
3770 (if (and (gdb-get-buffer 'gdb-registers-buffer) 3757 (when (and (gdb-get-buffer 'gdb-registers-buffer)
3771 (not (gdb-pending-p 'gdb-get-changed-registers))) 3758 (not (gdb-pending-p 'gdb-get-changed-registers)))
3772 (progn 3759 (gdb-input "-data-list-changed-registers"
3773 (gdb-input 3760 'gdb-changed-registers-handler)
3774 (list 3761 (gdb-add-pending 'gdb-get-changed-registers)))
3775 "-data-list-changed-registers"
3776 'gdb-changed-registers-handler))
3777 (gdb-add-pending 'gdb-get-changed-registers))))
3778 3762
3779(defun gdb-changed-registers-handler () 3763(defun gdb-changed-registers-handler ()
3780 (gdb-delete-pending 'gdb-get-changed-registers) 3764 (gdb-delete-pending 'gdb-get-changed-registers)
@@ -3803,18 +3787,15 @@ is set in them."
3803 (dolist (buffer (buffer-list)) 3787 (dolist (buffer (buffer-list))
3804 (with-current-buffer buffer 3788 (with-current-buffer buffer
3805 (when (member buffer-file-name gdb-source-file-list) 3789 (when (member buffer-file-name gdb-source-file-list)
3806 (gdb-init-buffer)))) 3790 (gdb-init-buffer)))))
3807 (gdb-force-mode-line-update
3808 (propertize "ready" 'face font-lock-variable-name-face)))
3809 3791
3810(defun gdb-get-main-selected-frame () 3792(defun gdb-get-main-selected-frame ()
3811 "Trigger for `gdb-frame-handler' which uses main current 3793 "Trigger for `gdb-frame-handler' which uses main current
3812thread. Called from `gdb-update'." 3794thread. Called from `gdb-update'."
3813 (if (not (gdb-pending-p 'gdb-get-main-selected-frame)) 3795 (if (not (gdb-pending-p 'gdb-get-main-selected-frame))
3814 (progn 3796 (progn
3815 (gdb-input 3797 (gdb-input (gdb-current-context-command "-stack-info-frame")
3816 (list (gdb-current-context-command "-stack-info-frame") 3798 'gdb-frame-handler)
3817 'gdb-frame-handler))
3818 (gdb-add-pending 'gdb-get-main-selected-frame)))) 3799 (gdb-add-pending 'gdb-get-main-selected-frame))))
3819 3800
3820(defun gdb-frame-handler () 3801(defun gdb-frame-handler ()
@@ -3862,7 +3843,7 @@ overlay arrow in source buffer."
3862If BUF is already displayed in some window, show it, deiconifying 3843If BUF is already displayed in some window, show it, deiconifying
3863the frame if necessary. Otherwise, find least recently used 3844the frame if necessary. Otherwise, find least recently used
3864window and show BUF there, if the window is not used for GDB 3845window and show BUF there, if the window is not used for GDB
3865already, in which case that window is splitted first." 3846already, in which case that window is split first."
3866 (let ((answer (get-buffer-window buf (or frame 0)))) 3847 (let ((answer (get-buffer-window buf (or frame 0))))
3867 (if answer 3848 (if answer
3868 (display-buffer buf nil (or frame 0)) ;Deiconify frame if necessary. 3849 (display-buffer buf nil (or frame 0)) ;Deiconify frame if necessary.
@@ -4145,7 +4126,9 @@ buffers, if required."
4145 (gdb-get-buffer-create 'gdb-breakpoints-buffer) 4126 (gdb-get-buffer-create 'gdb-breakpoints-buffer)
4146 (if (and gdb-show-main gdb-main-file) 4127 (if (and gdb-show-main gdb-main-file)
4147 (let ((pop-up-windows t)) 4128 (let ((pop-up-windows t))
4148 (display-buffer (gud-find-file gdb-main-file)))))) 4129 (display-buffer (gud-find-file gdb-main-file)))))
4130 (gdb-force-mode-line-update
4131 (propertize "ready" 'face font-lock-variable-name-face)))
4149 4132
4150;;from put-image 4133;;from put-image
4151(defun gdb-put-string (putstring pos &optional dprop &rest sprops) 4134(defun gdb-put-string (putstring pos &optional dprop &rest sprops)
@@ -4256,6 +4239,42 @@ BUFFER nil or omitted means use the current buffer."
4256 (set-window-margins 4239 (set-window-margins
4257 window left-margin-width right-margin-width))))) 4240 window left-margin-width right-margin-width)))))
4258 4241
4242
4243;;; Functions for inline completion.
4244
4245(defvar gud-gdb-fetch-lines-in-progress)
4246(defvar gud-gdb-fetch-lines-string)
4247(defvar gud-gdb-fetch-lines-break)
4248(defvar gud-gdb-fetched-lines)
4249
4250(defun gud-gdbmi-completions (context command)
4251 "Completion table for GDB/MI commands.
4252COMMAND is the prefix for which we seek completion.
4253CONTEXT is the text before COMMAND on the line."
4254 (let ((gud-gdb-fetch-lines-in-progress t)
4255 (gud-gdb-fetch-lines-string nil)
4256 (gud-gdb-fetch-lines-break (length context))
4257 (gud-gdb-fetched-lines nil)
4258 ;; This filter dumps output lines to `gud-gdb-fetched-lines'.
4259 (gud-marker-filter #'gud-gdbmi-fetch-lines-filter)
4260 complete-list)
4261 (with-current-buffer (gdb-get-buffer 'gdb-partial-output-buffer)
4262 (gdb-input (concat "complete " context command)
4263 (lambda () (setq gud-gdb-fetch-lines-in-progress nil)))
4264 (while gud-gdb-fetch-lines-in-progress
4265 (accept-process-output (get-buffer-process gud-comint-buffer))))
4266 (gud-gdb-completions-1 gud-gdb-fetched-lines)))
4267
4268(defun gud-gdbmi-fetch-lines-filter (string)
4269 "Custom filter function for `gud-gdbmi-completions'."
4270 (setq string (concat gud-gdb-fetch-lines-string
4271 (gud-gdbmi-marker-filter string)))
4272 (while (string-match "\n" string)
4273 (push (substring string gud-gdb-fetch-lines-break (match-beginning 0))
4274 gud-gdb-fetched-lines)
4275 (setq string (substring string (match-end 0))))
4276 "")
4277
4259(provide 'gdb-mi) 4278(provide 'gdb-mi)
4260 4279
4261;;; gdb-mi.el ends here 4280;;; gdb-mi.el ends here
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el
index 75d71d2d8a9..38b17a9b1ee 100644
--- a/lisp/progmodes/grep.el
+++ b/lisp/progmodes/grep.el
@@ -108,7 +108,7 @@ To change the default value, use Customize or call the function
108 108
109Setting it causes the grep commands to put point at the end of their 109Setting it causes the grep commands to put point at the end of their
110output window so that the end of the output is always visible rather 110output window so that the end of the output is always visible rather
111than the begining." 111than the beginning."
112 :type 'boolean 112 :type 'boolean
113 :version "22.1" 113 :version "22.1"
114 :group 'grep) 114 :group 'grep)
@@ -959,7 +959,10 @@ can use \\[next-error] (M-x next-error), or \\<grep-mode-map>\\[compile-goto-err
959in the grep output buffer, 959in the grep output buffer,
960to go to the lines where grep found matches. 960to go to the lines where grep found matches.
961 961
962This command shares argument histories with \\[lgrep] and \\[grep-find]." 962This command shares argument histories with \\[lgrep] and \\[grep-find].
963
964When called programmatically and FILES is nil, REGEXP is expected
965to specify a command to run."
963 (interactive 966 (interactive
964 (progn 967 (progn
965 (grep-compute-defaults) 968 (grep-compute-defaults)
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index 406db76487d..7215ac4ea73 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -756,6 +756,8 @@ directory and source-file directory for your debugger."
756 756
757 (add-hook 'completion-at-point-functions #'gud-gdb-completion-at-point 757 (add-hook 'completion-at-point-functions #'gud-gdb-completion-at-point
758 nil 'local) 758 nil 'local)
759 (set (make-local-variable 'gud-gdb-completion-function) 'gud-gdb-completions)
760
759 (local-set-key "\C-i" 'completion-at-point) 761 (local-set-key "\C-i" 'completion-at-point)
760 (setq comint-prompt-regexp "^(.*gdb[+]?) *") 762 (setq comint-prompt-regexp "^(.*gdb[+]?) *")
761 (setq paragraph-start comint-prompt-regexp) 763 (setq paragraph-start comint-prompt-regexp)
@@ -768,6 +770,12 @@ directory and source-file directory for your debugger."
768;; context-sensitive command completion. We preserve that feature 770;; context-sensitive command completion. We preserve that feature
769;; in the GUD buffer by using a GDB command designed just for Emacs. 771;; in the GUD buffer by using a GDB command designed just for Emacs.
770 772
773(defvar gud-gdb-completion-function nil
774 "Completion function for GDB commands.
775It receives two arguments: COMMAND, the prefix for which we seek
776completion; and CONTEXT, the text before COMMAND on the line.
777It should return a list of completion strings.")
778
771;; The completion process filter indicates when it is finished. 779;; The completion process filter indicates when it is finished.
772(defvar gud-gdb-fetch-lines-in-progress) 780(defvar gud-gdb-fetch-lines-in-progress)
773 781
@@ -806,28 +814,32 @@ CONTEXT is the text before COMMAND on the line."
806 (and complete-list 814 (and complete-list
807 (string-match "^Undefined command: \"complete\"" (car complete-list)) 815 (string-match "^Undefined command: \"complete\"" (car complete-list))
808 (error "This version of GDB doesn't support the `complete' command")) 816 (error "This version of GDB doesn't support the `complete' command"))
809 ;; Sort the list like readline. 817 (gud-gdb-completions-1 complete-list)))
810 (setq complete-list (sort complete-list (function string-lessp))) 818
811 ;; Remove duplicates. 819;; This function is also used by `gud-gdbmi-completions'.
812 (let ((first complete-list) 820(defun gud-gdb-completions-1 (complete-list)
813 (second (cdr complete-list))) 821 ;; Sort the list like readline.
814 (while second 822 (setq complete-list (sort complete-list (function string-lessp)))
815 (if (string-equal (car first) (car second)) 823 ;; Remove duplicates.
816 (setcdr first (setq second (cdr second))) 824 (let ((first complete-list)
817 (setq first second 825 (second (cdr complete-list)))
818 second (cdr second))))) 826 (while second
819 ;; Add a trailing single quote if there is a unique completion 827 (if (string-equal (car first) (car second))
820 ;; and it contains an odd number of unquoted single quotes. 828 (setcdr first (setq second (cdr second)))
821 (and (= (length complete-list) 1) 829 (setq first second
822 (let ((str (car complete-list)) 830 second (cdr second)))))
823 (pos 0) 831 ;; Add a trailing single quote if there is a unique completion
824 (count 0)) 832 ;; and it contains an odd number of unquoted single quotes.
825 (while (string-match "\\([^'\\]\\|\\\\'\\)*'" str pos) 833 (and (= (length complete-list) 1)
826 (setq count (1+ count) 834 (let ((str (car complete-list))
827 pos (match-end 0))) 835 (pos 0)
828 (and (= (mod count 2) 1) 836 (count 0))
829 (setq complete-list (list (concat str "'")))))) 837 (while (string-match "\\([^'\\]\\|\\\\'\\)*'" str pos)
830 complete-list)) 838 (setq count (1+ count)
839 pos (match-end 0)))
840 (and (= (mod count 2) 1)
841 (setq complete-list (list (concat str "'"))))))
842 complete-list)
831 843
832(defun gud-gdb-completion-at-point () 844(defun gud-gdb-completion-at-point ()
833 "Return the data to complete the GDB command before point." 845 "Return the data to complete the GDB command before point."
@@ -838,7 +850,7 @@ CONTEXT is the text before COMMAND on the line."
838 (point)))) 850 (point))))
839 (list start end 851 (list start end
840 (completion-table-dynamic 852 (completion-table-dynamic
841 (apply-partially #'gud-gdb-completions 853 (apply-partially gud-gdb-completion-function
842 (buffer-substring (comint-line-beginning-position) 854 (buffer-substring (comint-line-beginning-position)
843 start)))))) 855 start))))))
844 856
@@ -851,11 +863,11 @@ CONTEXT is the text before COMMAND on the line."
851 863
852;; The completion process filter is installed temporarily to slurp the 864;; The completion process filter is installed temporarily to slurp the
853;; output of GDB up to the next prompt and build the completion list. 865;; output of GDB up to the next prompt and build the completion list.
854(defun gud-gdb-fetch-lines-filter (string filter) 866(defun gud-gdb-fetch-lines-filter (string)
855 "Filter used to read the list of lines output by a command. 867 "Filter used to read the list of lines output by a command.
856STRING is the output to filter. 868STRING is the output to filter.
857It is passed through FILTER before we look at it." 869It is passed through `gud-gdb-marker-filter' before we look at it."
858 (setq string (funcall filter string)) 870 (setq string (gud-gdb-marker-filter string))
859 (setq string (concat gud-gdb-fetch-lines-string string)) 871 (setq string (concat gud-gdb-fetch-lines-string string))
860 (while (string-match "\n" string) 872 (while (string-match "\n" string)
861 (push (substring string gud-gdb-fetch-lines-break (match-beginning 0)) 873 (push (substring string gud-gdb-fetch-lines-break (match-beginning 0))
@@ -880,17 +892,6 @@ It is passed through FILTER before we look at it."
880(defvar gud-gdb-fetched-stack-frame nil 892(defvar gud-gdb-fetched-stack-frame nil
881 "Stack frames we are fetching from GDB.") 893 "Stack frames we are fetching from GDB.")
882 894
883;(defun gud-gdb-get-scope-data (text token indent)
884; ;; checkdoc-params: (indent)
885; "Fetch data associated with a stack frame, and expand/contract it.
886;Data to do this is retrieved from TEXT and TOKEN."
887; (let ((args nil) (scope nil))
888; (gud-gdb-run-command-fetch-lines "info args")
889;
890; (gud-gdb-run-command-fetch-lines "info local")
891;
892; ))
893
894(defun gud-gdb-get-stackframe (buffer) 895(defun gud-gdb-get-stackframe (buffer)
895 "Extract the current stack frame out of the GUD GDB BUFFER." 896 "Extract the current stack frame out of the GUD GDB BUFFER."
896 (let ((newlst nil) 897 (let ((newlst nil)
@@ -934,21 +935,16 @@ It is passed through FILTER before we look at it."
934BUFFER is the current buffer which may be the GUD buffer in which to run. 935BUFFER is the current buffer which may be the GUD buffer in which to run.
935SKIP is the number of chars to skip on each line, it defaults to 0." 936SKIP is the number of chars to skip on each line, it defaults to 0."
936 (with-current-buffer gud-comint-buffer 937 (with-current-buffer gud-comint-buffer
937 (if (and (eq gud-comint-buffer buffer) 938 (unless (and (eq gud-comint-buffer buffer)
938 (save-excursion 939 (save-excursion
939 (goto-char (point-max)) 940 (goto-char (point-max))
940 (forward-line 0) 941 (forward-line 0)
941 (not (looking-at comint-prompt-regexp)))) 942 (not (looking-at comint-prompt-regexp))))
942 nil
943 ;; Much of this copied from GDB complete, but I'm grabbing the stack
944 ;; frame instead.
945 (let ((gud-gdb-fetch-lines-in-progress t) 943 (let ((gud-gdb-fetch-lines-in-progress t)
946 (gud-gdb-fetched-lines nil) 944 (gud-gdb-fetched-lines nil)
947 (gud-gdb-fetch-lines-string nil) 945 (gud-gdb-fetch-lines-string nil)
948 (gud-gdb-fetch-lines-break (or skip 0)) 946 (gud-gdb-fetch-lines-break (or skip 0))
949 (gud-marker-filter 947 (gud-marker-filter #'gud-gdb-fetch-lines-filter))
950 `(lambda (string)
951 (gud-gdb-fetch-lines-filter string ',gud-marker-filter))))
952 ;; Issue the command to GDB. 948 ;; Issue the command to GDB.
953 (gud-basic-call command) 949 (gud-basic-call command)
954 ;; Slurp the output. 950 ;; Slurp the output.
@@ -1919,7 +1915,7 @@ extension EXTN. Normally EXTN is given as the regular expression
1919;; in petticoat junction. 1915;; in petticoat junction.
1920(defun gud-jdb-skip-block () 1916(defun gud-jdb-skip-block ()
1921 1917
1922 ;; Find the begining of the block. 1918 ;; Find the beginning of the block.
1923 (while 1919 (while
1924 (not (eq (following-char) ?{)) 1920 (not (eq (following-char) ?{))
1925 1921
@@ -1936,7 +1932,7 @@ extension EXTN. Normally EXTN is given as the regular expression
1936 (gud-jdb-skip-character-literal)) 1932 (gud-jdb-skip-character-literal))
1937 (t (forward-char)))) 1933 (t (forward-char))))
1938 1934
1939 ;; Now at the begining of the block. 1935 ;; Now at the beginning of the block.
1940 (forward-char) 1936 (forward-char)
1941 1937
1942 ;; Skip over the body of the block as well as the final brace. 1938 ;; Skip over the body of the block as well as the final brace.
@@ -3422,7 +3418,7 @@ With arg, dereference expr if ARG is positive, otherwise do not dereference."
3422 ((xdb pdb) (concat "p " expr)) 3418 ((xdb pdb) (concat "p " expr))
3423 (sdb (concat expr "/")))) 3419 (sdb (concat expr "/"))))
3424 3420
3425(declare-function gdb-input "gdb-mi" (item)) 3421(declare-function gdb-input "gdb-mi" (command handler))
3426(declare-function tooltip-expr-to-print "tooltip" (event)) 3422(declare-function tooltip-expr-to-print "tooltip" (event))
3427(declare-function tooltip-event-buffer "tooltip" (event)) 3423(declare-function tooltip-event-buffer "tooltip" (event))
3428 3424
@@ -3468,12 +3464,12 @@ so they have been disabled."))
3468 (if (eq gud-minor-mode 'gdbmi) 3464 (if (eq gud-minor-mode 'gdbmi)
3469 (if gdb-macro-info 3465 (if gdb-macro-info
3470 (gdb-input 3466 (gdb-input
3471 (list (concat 3467 (concat
3472 "server macro expand " expr "\n") 3468 "server macro expand " expr "\n")
3473 `(lambda () (gdb-tooltip-print-1 ,expr)))) 3469 `(lambda () (gdb-tooltip-print-1 ,expr)))
3474 (gdb-input 3470 (gdb-input
3475 (list (concat cmd "\n") 3471 (concat cmd "\n")
3476 `(lambda () (gdb-tooltip-print ,expr))))) 3472 `(lambda () (gdb-tooltip-print ,expr))))
3477 (setq gud-tooltip-original-filter (process-filter process)) 3473 (setq gud-tooltip-original-filter (process-filter process))
3478 (set-process-filter process 'gud-tooltip-process-output) 3474 (set-process-filter process 'gud-tooltip-process-output)
3479 (gud-basic-call cmd)) 3475 (gud-basic-call cmd))
diff --git a/lisp/progmodes/hideif.el b/lisp/progmodes/hideif.el
index 374a45acec6..82961376669 100644
--- a/lisp/progmodes/hideif.el
+++ b/lisp/progmodes/hideif.el
@@ -822,7 +822,7 @@ Point is left unchanged."
822 822
823(defun hif-possibly-hide () 823(defun hif-possibly-hide ()
824 "Called at #ifX expression, this hides those parts that should be hidden. 824 "Called at #ifX expression, this hides those parts that should be hidden.
825It uses the judgement of `hide-ifdef-evaluator'." 825It uses the judgment of `hide-ifdef-evaluator'."
826 ;; (message "hif-possibly-hide") (sit-for 1) 826 ;; (message "hif-possibly-hide") (sit-for 1)
827 (let ((test (hif-canonicalize)) 827 (let ((test (hif-canonicalize))
828 (range (hif-find-range))) 828 (range (hif-find-range)))
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el
index d8715599d74..6ce415b563d 100644
--- a/lisp/progmodes/idlwave.el
+++ b/lisp/progmodes/idlwave.el
@@ -2464,7 +2464,7 @@ If prefix ARG < 0 then move forward to enclosing block end."
2464(defun idlwave-down-block (&optional arg) 2464(defun idlwave-down-block (&optional arg)
2465 "Go down a block. 2465 "Go down a block.
2466With ARG: ARG >= 0 go forwards, ARG < 0 go backwards. 2466With ARG: ARG >= 0 go forwards, ARG < 0 go backwards.
2467Returns non-nil if successfull." 2467Returns non-nil if successful."
2468 (interactive "p") 2468 (interactive "p")
2469 (let (status) 2469 (let (status)
2470 (if (< arg 0) 2470 (if (< arg 0)
@@ -7866,7 +7866,7 @@ itself."
7866 "Display online help about the completion at point." 7866 "Display online help about the completion at point."
7867 (interactive "eP") 7867 (interactive "eP")
7868 ;; Restore last-command for next command, to make 7868 ;; Restore last-command for next command, to make
7869 ;; scrolling/cancelling of completions work. 7869 ;; scrolling/canceling of completions work.
7870 (setq this-command last-command) 7870 (setq this-command last-command)
7871 (idlwave-do-mouse-completion-help ev)) 7871 (idlwave-do-mouse-completion-help ev))
7872 7872
diff --git a/lisp/progmodes/inf-lisp.el b/lisp/progmodes/inf-lisp.el
index 1328e303d45..dd24aeea9a3 100644
--- a/lisp/progmodes/inf-lisp.el
+++ b/lisp/progmodes/inf-lisp.el
@@ -36,7 +36,7 @@
36;; This makes these modes easier to use. 36;; This makes these modes easier to use.
37 37
38;; For documentation on the functionality provided by comint mode, and 38;; For documentation on the functionality provided by comint mode, and
39;; the hooks available for customising it, see the file comint.el. 39;; the hooks available for customizing it, see the file comint.el.
40;; For further information on inferior-lisp mode, see the comments below. 40;; For further information on inferior-lisp mode, see the comments below.
41 41
42;; Needs fixin: 42;; Needs fixin:
diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el
index 94a9c250fee..f0c86265232 100644
--- a/lisp/progmodes/js.el
+++ b/lisp/progmodes/js.el
@@ -3000,7 +3000,7 @@ browser, respectively."
3000 '(js> ((fifth hitab) "selectedTab") (fourth hitab)) 3000 '(js> ((fifth hitab) "selectedTab") (fourth hitab))
3001 cmds))) 3001 cmds)))
3002 3002
3003 ;; Hilighting whole window 3003 ;; Highlighting whole window
3004 ((third hitab) 3004 ((third hitab)
3005 (push '(js! ((third hitab) "document" 3005 (push '(js! ((third hitab) "document"
3006 "documentElement" "setAttribute") 3006 "documentElement" "setAttribute")
diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el
index c1a87a9d033..024744957c6 100644
--- a/lisp/progmodes/make-mode.el
+++ b/lisp/progmodes/make-mode.el
@@ -315,25 +315,32 @@ not be enclosed in { } or ( )."
315 "List of keywords understood by automake.") 315 "List of keywords understood by automake.")
316 316
317(defconst makefile-gmake-statements 317(defconst makefile-gmake-statements
318 `("-sinclude" "sinclude" "vpath" ; makefile-makepp-statements takes rest 318 `("-sinclude" "sinclude" ; makefile-makepp-statements takes rest
319 "ifdef" "ifndef" "ifeq" "ifneq" "-include" "define" "endef" "export" 319 "ifdef" "ifndef" "ifeq" "ifneq" "-include" "define" "endef" "export"
320 "override define" "override" "unexport" 320 "override define" "override" "unexport" "vpath"
321 ,@(cdr makefile-automake-statements)) 321 ,@(cdr makefile-automake-statements))
322 "List of keywords understood by gmake.") 322 "List of keywords understood by gmake.")
323 323
324;; These are even more silly, because you can have more spaces in between.
325(defconst makefile-makepp-statements 324(defconst makefile-makepp-statements
326 `("and ifdef" "and ifndef" "and ifeq" "and ifneq" "and ifperl" 325 `(t ; - alternately means _
327 "and ifmakeperl" "and ifsys" "and ifnsys" "build_cache" "build_check" 326 ;; todo: take if* out of these lists, and let the negation regexp do it all
327 "ifperl" "ifmakeperl" "ifsys" "ifnsys" "iftrue" "ifntrue"
328 "and ifdef" "and ifndef" "and ifeq" "and ifneq" "and ifperl"
329 "and ifmakeperl" "and ifsys" "and ifnsys" "and iftrue" "and ifntrue"
328 "else ifdef" "else ifndef" "else ifeq" "else ifneq" "else ifperl" 330 "else ifdef" "else ifndef" "else ifeq" "else ifneq" "else ifperl"
329 "else ifmakeperl" "else ifsys" "else ifnsys" "enddef" "global" 331 "else ifmakeperl" "else ifsys" "else ifnsys" "else iftrue" "else ifntrue"
330 "load_makefile" "ifperl" "ifmakeperl" "ifsys" "ifnsys" "_include" 332 "or ifdef" "or ifndef" "or ifeq" "or ifneq" "or ifperl"
331 "makeperl" "makesub" "no_implicit_load" "perl" "perl-begin" "perl_begin" 333 "or ifmakeperl" "or ifsys" "or ifnsys" "or iftrue" "or ifntrue"
332 "perl-end" "perl_end" "prebuild" "or ifdef" "or ifndef" "or ifeq" 334
333 "or ifneq" "or ifperl" "or ifmakeperl" "or ifsys" "or ifnsys" 335 "autoload" "build-cache" "build-check" "enddef" "export define"
334 "override export" "override global" "register_command_parser" 336 "global" "global build-cache" "global build-check" "global define"
335 "register_scanner" "repository" "runtime" "signature" "sub" 337 "global signature" "global override signature" "load-makefile"
336 ,@(nthcdr 3 makefile-gmake-statements)) 338 "make" "makeperl" "makesub" "no-implicit-load" "perl" "perl-begin"
339 "perl-end" "prebuild" "override export" "override global" "register-parser"
340 "register-command-parser" "register-input-suffix"
341 "register-scanner" "repository" "runtime" "signature" "sub"
342
343 ,@(nthcdr 2 makefile-gmake-statements))
337 "List of keywords understood by gmake.") 344 "List of keywords understood by gmake.")
338 345
339(defconst makefile-bsdmake-statements 346(defconst makefile-bsdmake-statements
@@ -372,7 +379,12 @@ not be enclosed in { } or ( )."
372 379
373 ;; Fontify conditionals and includes. 380 ;; Fontify conditionals and includes.
374 (,(concat "^\\(?: [ \t]*\\)?" 381 (,(concat "^\\(?: [ \t]*\\)?"
375 (regexp-opt keywords t) 382 (replace-regexp-in-string
383 " " "[ \t]+"
384 (if (eq (car keywords) t)
385 (replace-regexp-in-string "-" "[_-]"
386 (regexp-opt (cdr keywords) t))
387 (regexp-opt keywords t)))
376 "\\>[ \t]*\\([^: \t\n#]*\\)") 388 "\\>[ \t]*\\([^: \t\n#]*\\)")
377 (1 font-lock-keyword-face) (2 font-lock-variable-name-face)) 389 (1 font-lock-keyword-face) (2 font-lock-variable-name-face))
378 390
@@ -436,7 +448,7 @@ not be enclosed in { } or ( )."
436 makefile-var-use-regex 448 makefile-var-use-regex
437 makefile-makepp-statements 449 makefile-makepp-statements
438 nil 450 nil
439 "^\\(?: [ \t]*\\)?\\(?:and[ \t]+\\|else[ \t]+\\|or[ \t]+\\)?if\\(n\\)\\(?:def\\|eq\\|sys\\)\\>" 451 "^\\(?: [ \t]*\\)?\\(?:and[ \t]+\\|else[ \t]+\\|or[ \t]+\\)?if\\(n\\)\\(?:def\\|eq\\|sys\\|true\\)\\>"
440 452
441 '("[^$]\\(\\$[({]\\(?:output\\|stem\\|target\\)s?\\_>.*?[})]\\)" 453 '("[^$]\\(\\$[({]\\(?:output\\|stem\\|target\\)s?\\_>.*?[})]\\)"
442 1 'makefile-targets append) 454 1 'makefile-targets append)
@@ -447,17 +459,17 @@ not be enclosed in { } or ( )."
447 (2 font-lock-keyword-face t) 459 (2 font-lock-keyword-face t)
448 (3 font-lock-variable-name-face t)) 460 (3 font-lock-variable-name-face t))
449 461
450 ;; $(function ...) $((function ...)) ${function ...} ${{function ...}} 462 ;; $(function ...) $((function ...)) ${...} ${{...}} $[...] $[[...]]
451 '("[^$]\\$\\(?:((?\\|{{?\\)\\([-a-zA-Z0-9_.]+\\s \\)" 463 '("[^$]\\$\\(?:((?\\|{{?\\|\\[\\[?\\)\\([-a-zA-Z0-9_.]+\\s \\)"
452 1 font-lock-function-name-face prepend) 464 1 font-lock-function-name-face prepend)
453 465
454 ;; $(shell ...) $((shell ...)) ${shell ...} ${{shell ...}} 466 ;; $(shell ...) $((shell ...)) ${...} ${{...}} $[...] $[[...]]
455 '("[^$]\\$\\(((?\\|{{?\\)shell\\(?:[-_]\\(?:global[-_]\\)?once\\)?[ \t]+" 467 '("[^$]\\$\\(((?\\|{{?\\|\\[\\[?\\)shell\\(?:[-_]\\(?:global[-_]\\)?once\\)?[ \t]+"
456 makefile-match-function-end nil nil 468 makefile-match-function-end nil nil
457 (1 'makefile-shell prepend t)) 469 (1 'makefile-shell prepend t))
458 470
459 ;; $(perl ...) $((perl ...)) ${perl ...} ${{perl ...}} 471 ;; $(perl ...) $((perl ...)) ${...} ${{...}} $[...] $[[...]]
460 '("[^$]\\$\\(((?\\|{{?\\)makeperl[ \t]+" 472 '("[^$]\\$\\(((?\\|{{?\\|\\[\\[?\\)makeperl[ \t]+"
461 makefile-match-function-end nil nil 473 makefile-match-function-end nil nil
462 (1 'makefile-makepp-perl prepend t)) 474 (1 'makefile-makepp-perl prepend t))
463 '("[^$]\\$\\(((?\\|{{?\\)perl[ \t]+" 475 '("[^$]\\$\\(((?\\|{{?\\)perl[ \t]+"
@@ -1688,8 +1700,10 @@ The anchor must have matched the opening parens in the first group."
1688 ;; FIXME forward-sexp or somesuch would be better? 1700 ;; FIXME forward-sexp or somesuch would be better?
1689 (if (setq s (cond ((string= s "(") ")") 1701 (if (setq s (cond ((string= s "(") ")")
1690 ((string= s "{") "}") 1702 ((string= s "{") "}")
1703 ((string= s "[") "]")
1691 ((string= s "((") "))") 1704 ((string= s "((") "))")
1692 ((string= s "{{") "}}"))) 1705 ((string= s "{{") "}}")
1706 ((string= s "[[") "]]")))
1693 (re-search-forward (concat "\\(.*\\)[ \t]*" s) (line-end-position) t)))) 1707 (re-search-forward (concat "\\(.*\\)[ \t]*" s) (line-end-position) t))))
1694 1708
1695(defun makefile-match-dependency (bound) 1709(defun makefile-match-dependency (bound)
diff --git a/lisp/progmodes/pascal.el b/lisp/progmodes/pascal.el
index b1502adbeb1..2db4309d9e0 100644
--- a/lisp/progmodes/pascal.el
+++ b/lisp/progmodes/pascal.el
@@ -786,6 +786,7 @@ on the line which ends a function or procedure named NAME."
786 (if (looking-at "[ \t]+$") 786 (if (looking-at "[ \t]+$")
787 (skip-chars-forward " \t")))) 787 (skip-chars-forward " \t"))))
788 788
789(defvar ind) ;Used via `eval' in pascal-indent-alist.
789(defun pascal-indent-line () 790(defun pascal-indent-line ()
790 "Indent current line as a Pascal statement." 791 "Indent current line as a Pascal statement."
791 (let* ((indent-str (pascal-calculate-indent)) 792 (let* ((indent-str (pascal-calculate-indent))
diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el
index 5b229cc0c24..0efc2ca231b 100644
--- a/lisp/progmodes/prolog.el
+++ b/lisp/progmodes/prolog.el
@@ -147,9 +147,9 @@
147;; o Introduced three new customizable variables: electric colon 147;; o Introduced three new customizable variables: electric colon
148;; (`prolog-electric-colon-flag', default nil), electric dash 148;; (`prolog-electric-colon-flag', default nil), electric dash
149;; (`prolog-electric-dash-flag', default nil), and a possibility 149;; (`prolog-electric-dash-flag', default nil), and a possibility
150;; to prevent the predicate template insertion from adding commata 150;; to prevent the predicate template insertion from adding commas
151;; (`prolog-electric-dot-full-predicate-template', defaults to t 151;; (`prolog-electric-dot-full-predicate-template', defaults to t
152;; since it seems quicker to me to just type those commata). A 152;; since it seems quicker to me to just type those commas). A
153;; trivial adaptation of a patch by Markus Triska. 153;; trivial adaptation of a patch by Markus Triska.
154;; o Improved the behavior of electric if-then-else to only skip 154;; o Improved the behavior of electric if-then-else to only skip
155;; forward if the parenthesis/semicolon is preceded by 155;; forward if the parenthesis/semicolon is preceded by
@@ -512,7 +512,7 @@ It does not apply in strings and comments."
512(defcustom prolog-electric-dot-full-predicate-template nil 512(defcustom prolog-electric-dot-full-predicate-template nil
513 "*If nil, electric dot inserts only the current predicate's name and `(' 513 "*If nil, electric dot inserts only the current predicate's name and `('
514for recursive calls or new clause heads. Non-nil means to also 514for recursive calls or new clause heads. Non-nil means to also
515insert enough commata to cover the predicate's arity and `)', 515insert enough commas to cover the predicate's arity and `)',
516and dot and newline for recursive calls." 516and dot and newline for recursive calls."
517 :group 'prolog-keyboard 517 :group 'prolog-keyboard
518 :type 'boolean) 518 :type 'boolean)
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index fbf7c3c42f7..6081d8e838b 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -2343,7 +2343,7 @@ Interactively, prompt for the name with completion."
2343;;;; Bicycle Repair Man support 2343;;;; Bicycle Repair Man support
2344 2344
2345(autoload 'pymacs-load "pymacs" nil t) 2345(autoload 'pymacs-load "pymacs" nil t)
2346(autoload 'brm-init "bikemacs") 2346(autoload 'brm-init "bikeemacs")
2347(defvar brm-menu) 2347(defvar brm-menu)
2348 2348
2349;; I'm not sure how useful BRM really is, and it's certainly dangerous 2349;; I'm not sure how useful BRM really is, and it's certainly dangerous
diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el
index 03e095b6bfc..60ba768a80e 100644
--- a/lisp/progmodes/sql.el
+++ b/lisp/progmodes/sql.el
@@ -4224,7 +4224,7 @@ The default comes from `process-coding-system-alist' and
4224 "^\\(.+\\) (hex ..)$" 4224 "^\\(.+\\) (hex ..)$"
4225 "SET \\1") 4225 "SET \\1")
4226 4226
4227 ;; FEDDBACK ON for 99 or more rows 4227 ;; FEEDBACK ON for 99 or more rows
4228 ;; feedback OFF 4228 ;; feedback OFF
4229 (sql-redirect-value 4229 (sql-redirect-value
4230 sqlbuf 4230 sqlbuf
diff --git a/lisp/progmodes/vera-mode.el b/lisp/progmodes/vera-mode.el
index b02324871ff..434984c8bf1 100644
--- a/lisp/progmodes/vera-mode.el
+++ b/lisp/progmodes/vera-mode.el
@@ -427,7 +427,7 @@ Key bindings:
427 "icompare" "insert" "inst_get_at_least" "inst_get_auto_bin_max" 427 "icompare" "insert" "inst_get_at_least" "inst_get_auto_bin_max"
428 "inst_get_collect" "inst_get_cov_weight" "inst_get_coverage_goal" 428 "inst_get_collect" "inst_get_cov_weight" "inst_get_coverage_goal"
429 "inst_getcross_bin_max" "inst_query" "inst_set_at_least" 429 "inst_getcross_bin_max" "inst_query" "inst_set_at_least"
430 "inst_set_auto_bin_max" "inst_set_bin_activiation" "inst_set_collect" 430 "inst_set_auto_bin_max" "inst_set_bin_activation" "inst_set_collect"
431 "inst_set_cov_weight" "inst_set_coverage_goal" "inst_set_cross_bin_max" 431 "inst_set_cov_weight" "inst_set_coverage_goal" "inst_set_cross_bin_max"
432 "itoa" 432 "itoa"
433 "last" "last_index" "len" "load" 433 "last" "last_index" "len" "load"
@@ -438,7 +438,7 @@ Key bindings:
438 "push_front" "putc" 438 "push_front" "putc"
439 "query" "query_str" 439 "query" "query_str"
440 "rand_mode" "randomize" "reserve" "reverse" "rsort" 440 "rand_mode" "randomize" "reserve" "reverse" "rsort"
441 "search" "set_at_least" "set_auto_bin_max" "set_bin_activiation" 441 "search" "set_at_least" "set_auto_bin_max" "set_bin_activation"
442 "set_cov_weight" "set_coverage_goal" "set_cross_bin_max" "set_name" "size" 442 "set_cov_weight" "set_coverage_goal" "set_cross_bin_max" "set_name" "size"
443 "sort" "substr" "sum" 443 "sort" "substr" "sum"
444 "thismatch" "tolower" "toupper" 444 "thismatch" "tolower" "toupper"
diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el
index 3ae66a477e8..52e7b6e2429 100644
--- a/lisp/progmodes/verilog-mode.el
+++ b/lisp/progmodes/verilog-mode.el
@@ -981,7 +981,7 @@ of each Verilog file that requires it, rather than being set globally."
981 "*If true, AUTORESET will reset those signals which were 981 "*If true, AUTORESET will reset those signals which were
982assigned with blocking assignments (=) even in a block with 982assigned with blocking assignments (=) even in a block with
983non-blocking assignments (<=). 983non-blocking assignments (<=).
984 984
985If nil, all blocking assigned signals are ignored when any 985If nil, all blocking assigned signals are ignored when any
986non-blocking assignment is in the AUTORESET block. This allows 986non-blocking assignment is in the AUTORESET block. This allows
987blocking assignments to be used for temporary values and not have 987blocking assignments to be used for temporary values and not have
@@ -2011,7 +2011,7 @@ find the errors."
2011 "`uvm_component_utils" 2011 "`uvm_component_utils"
2012 "`uvm_create" 2012 "`uvm_create"
2013 "`uvm_create_on" 2013 "`uvm_create_on"
2014 "`uvm_create_seq" ;; Undocumented in 1.1 2014 "`uvm_create_seq" ;; Undocumented in 1.1
2015 "`uvm_declare_p_sequencer" 2015 "`uvm_declare_p_sequencer"
2016 "`uvm_declare_sequence_lib" ;; Deprecated in 1.1 2016 "`uvm_declare_sequence_lib" ;; Deprecated in 1.1
2017 "`uvm_do" 2017 "`uvm_do"
@@ -7505,7 +7505,7 @@ Signals must be in standard (base vector) form."
7505 (nreverse out-list))) 7505 (nreverse out-list)))
7506 7506
7507(defun verilog-signals-combine-bus (in-list) 7507(defun verilog-signals-combine-bus (in-list)
7508 "Return a list of signals in IN-LIST, with busses combined. 7508 "Return a list of signals in IN-LIST, with buses combined.
7509Duplicate signals are also removed. For example A[2] and A[1] become A[2:1]." 7509Duplicate signals are also removed. For example A[2] and A[1] become A[2:1]."
7510 (let (combo buswarn 7510 (let (combo buswarn
7511 out-list 7511 out-list
@@ -9907,7 +9907,7 @@ If optional WHITESPACE true, ignore whitespace."
9907 (p2 (with-current-buffer b2 (goto-char (point-min)))) 9907 (p2 (with-current-buffer b2 (goto-char (point-min))))
9908 (maxp1 (with-current-buffer b1 (point-max))) 9908 (maxp1 (with-current-buffer b1 (point-max)))
9909 (maxp2 (with-current-buffer b2 (point-max))) 9909 (maxp2 (with-current-buffer b2 (point-max)))
9910 (op1 -1) (op2 -1) 9910 (op1 -1) (op2 -1)
9911 progress size) 9911 progress size)
9912 (while (not (and (eq p1 op1) (eq p2 op2))) 9912 (while (not (and (eq p1 op1) (eq p2 op2)))
9913 ;; If both windows have whitespace optionally skip over it. 9913 ;; If both windows have whitespace optionally skip over it.
@@ -10100,7 +10100,7 @@ instantiating the resulting module. Long lines are split based
10100on the `fill-column', see \\[set-fill-column]. 10100on the `fill-column', see \\[set-fill-column].
10101 10101
10102Limitations: 10102Limitations:
10103 Concatenation and outputting partial busses is not supported. 10103 Concatenation and outputting partial buses is not supported.
10104 10104
10105 Typedefs must match `verilog-typedef-regexp', which is disabled by default. 10105 Typedefs must match `verilog-typedef-regexp', which is disabled by default.
10106 10106
@@ -10932,7 +10932,7 @@ Typing \\[verilog-auto] will make this into:
10932(defun verilog-auto-logic () 10932(defun verilog-auto-logic ()
10933 "Expand AUTOLOGIC statements, as part of \\[verilog-auto]. 10933 "Expand AUTOLOGIC statements, as part of \\[verilog-auto].
10934Make wire statements using the SystemVerilog logic keyword. 10934Make wire statements using the SystemVerilog logic keyword.
10935This is currently equivelent to: 10935This is currently equivalent to:
10936 10936
10937 /*AUTOWIRE*/ 10937 /*AUTOWIRE*/
10938 10938
@@ -10958,7 +10958,7 @@ the datatype of the declarations.
10958 10958
10959Limitations: 10959Limitations:
10960 This ONLY detects outputs of AUTOINSTants (see `verilog-read-sub-decls'), 10960 This ONLY detects outputs of AUTOINSTants (see `verilog-read-sub-decls'),
10961 and all busses must have widths, such as those from AUTOINST, or using [] 10961 and all buses must have widths, such as those from AUTOINST, or using []
10962 in AUTO_TEMPLATEs. 10962 in AUTO_TEMPLATEs.
10963 10963
10964 This does NOT work on memories or SystemVerilog .name connections, 10964 This does NOT work on memories or SystemVerilog .name connections,
@@ -11315,7 +11315,7 @@ Limitations:
11315 If placed inside the parenthesis of a module declaration, it creates 11315 If placed inside the parenthesis of a module declaration, it creates
11316 Verilog 2001 style, else uses Verilog 1995 style. 11316 Verilog 2001 style, else uses Verilog 1995 style.
11317 11317
11318 Concatenation and outputting partial busses is not supported. 11318 Concatenation and outputting partial buses is not supported.
11319 11319
11320 Module names must be resolvable to filenames. See `verilog-auto-inst'. 11320 Module names must be resolvable to filenames. See `verilog-auto-inst'.
11321 11321
@@ -11439,7 +11439,7 @@ Limitations:
11439 If placed inside the parenthesis of a module declaration, it creates 11439 If placed inside the parenthesis of a module declaration, it creates
11440 Verilog 2001 style, else uses Verilog 1995 style. 11440 Verilog 2001 style, else uses Verilog 1995 style.
11441 11441
11442 Concatenation and outputting partial busses is not supported. 11442 Concatenation and outputting partial buses is not supported.
11443 11443
11444 Module names must be resolvable to filenames. See `verilog-auto-inst'. 11444 Module names must be resolvable to filenames. See `verilog-auto-inst'.
11445 11445
@@ -11490,7 +11490,7 @@ Limitations:
11490 If placed inside the parenthesis of a module declaration, it creates 11490 If placed inside the parenthesis of a module declaration, it creates
11491 Verilog 2001 style, else uses Verilog 1995 style. 11491 Verilog 2001 style, else uses Verilog 1995 style.
11492 11492
11493 Concatenation and outputting partial busses is not supported. 11493 Concatenation and outputting partial buses is not supported.
11494 11494
11495 Module names must be resolvable to filenames. See `verilog-auto-inst'. 11495 Module names must be resolvable to filenames. See `verilog-auto-inst'.
11496 11496
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el
index 3a94601768d..deac85581d2 100644
--- a/lisp/progmodes/vhdl-mode.el
+++ b/lisp/progmodes/vhdl-mode.el
@@ -1714,7 +1714,7 @@ an absolute path (i.e. all caches can be stored in one global directory)."
1714 1714
1715 1715
1716(defgroup vhdl-menu nil 1716(defgroup vhdl-menu nil
1717 "Customizations for menues." 1717 "Customizations for menus."
1718 :group 'vhdl) 1718 :group 'vhdl)
1719 1719
1720(defcustom vhdl-index-menu nil 1720(defcustom vhdl-index-menu nil
@@ -1844,7 +1844,7 @@ NOTE: Activate the new setting in a VHDL buffer by using the menu entry
1844;; Internal variables 1844;; Internal variables
1845 1845
1846(defvar vhdl-menu-max-size 20 1846(defvar vhdl-menu-max-size 20
1847 "*Specifies the maximum size of a menu before splitting it into submenues.") 1847 "*Specifies the maximum size of a menu before splitting it into submenus.")
1848 1848
1849(defvar vhdl-progress-interval 1 1849(defvar vhdl-progress-interval 1
1850 "*Interval used to update progress status during long operations. 1850 "*Interval used to update progress status during long operations.
@@ -2468,7 +2468,7 @@ conversion."
2468 (goto-char marker)) 2468 (goto-char marker))
2469 2469
2470(defun vhdl-menu-split (list title) 2470(defun vhdl-menu-split (list title)
2471 "Split menu LIST into several submenues, if number of 2471 "Split menu LIST into several submenus, if number of
2472elements > `vhdl-menu-max-size'." 2472elements > `vhdl-menu-max-size'."
2473 (if (> (length list) vhdl-menu-max-size) 2473 (if (> (length list) vhdl-menu-max-size)
2474 (let ((remain list) 2474 (let ((remain list)
@@ -4266,7 +4266,7 @@ Usage:
4266 4266
4267 CODE BEAUTIFICATION: 4267 CODE BEAUTIFICATION:
4268 `C-c M-b' and `C-c C-b' beautify the code of a region or of the entire 4268 `C-c M-b' and `C-c C-b' beautify the code of a region or of the entire
4269 buffer respectively. This inludes indentation, alignment, and case 4269 buffer respectively. This includes indentation, alignment, and case
4270 fixing. Code beautification can also be run non-interactively using the 4270 fixing. Code beautification can also be run non-interactively using the
4271 command: 4271 command:
4272 4272
@@ -10812,7 +10812,7 @@ but not if inside a comment or quote."
10812 10812
10813(defvar vhdl-port-list nil 10813(defvar vhdl-port-list nil
10814 "Variable to hold last port map parsed.") 10814 "Variable to hold last port map parsed.")
10815;; structure: (parenthesised expression means list of such entries) 10815;; structure: (parenthesized expression means list of such entries)
10816;; (ent-name 10816;; (ent-name
10817;; ((generic-names) generic-type generic-init generic-comment group-comment) 10817;; ((generic-names) generic-type generic-init generic-comment group-comment)
10818;; ((port-names) port-object port-direct port-type port-comment group-comment) 10818;; ((port-names) port-object port-direct port-type port-comment group-comment)
@@ -11660,7 +11660,7 @@ reflected in a subsequent paste operation."
11660 11660
11661(defvar vhdl-subprog-list nil 11661(defvar vhdl-subprog-list nil
11662 "Variable to hold last subprogram interface parsed.") 11662 "Variable to hold last subprogram interface parsed.")
11663;; structure: (parenthesised expression means list of such entries) 11663;; structure: (parenthesized expression means list of such entries)
11664;; (subprog-name kind 11664;; (subprog-name kind
11665;; ((names) object direct type init comment group-comment) 11665;; ((names) object direct type init comment group-comment)
11666;; return-type return-comment group-comment) 11666;; return-type return-comment group-comment)
@@ -12971,7 +12971,7 @@ This does background highlighting of translate-off regions.")
12971(defvar vhdl-entity-alist nil 12971(defvar vhdl-entity-alist nil
12972 "Cache with entities and corresponding architectures for each 12972 "Cache with entities and corresponding architectures for each
12973project/directory.") 12973project/directory.")
12974;; structure: (parenthesised expression means list of such entries) 12974;; structure: (parenthesized expression means list of such entries)
12975;; (cache-key 12975;; (cache-key
12976;; (ent-key ent-name ent-file ent-line 12976;; (ent-key ent-name ent-file ent-line
12977;; (arch-key arch-name arch-file arch-line 12977;; (arch-key arch-name arch-file arch-line
@@ -12982,7 +12982,7 @@ project/directory.")
12982 12982
12983(defvar vhdl-config-alist nil 12983(defvar vhdl-config-alist nil
12984 "Cache with configurations for each project/directory.") 12984 "Cache with configurations for each project/directory.")
12985;; structure: (parenthesised expression means list of such entries) 12985;; structure: (parenthesized expression means list of such entries)
12986;; (cache-key 12986;; (cache-key
12987;; (conf-key conf-name conf-file conf-line ent-key arch-key 12987;; (conf-key conf-name conf-file conf-line ent-key arch-key
12988;; (inst-key inst-comp-name inst-ent-key inst-arch-key 12988;; (inst-key inst-comp-name inst-ent-key inst-arch-key
@@ -12991,7 +12991,7 @@ project/directory.")
12991 12991
12992(defvar vhdl-package-alist nil 12992(defvar vhdl-package-alist nil
12993 "Cache with packages for each project/directory.") 12993 "Cache with packages for each project/directory.")
12994;; structure: (parenthesised expression means list of such entries) 12994;; structure: (parenthesized expression means list of such entries)
12995;; (cache-key 12995;; (cache-key
12996;; (pack-key pack-name pack-file pack-line 12996;; (pack-key pack-name pack-file pack-line
12997;; (comp-key comp-name comp-file comp-line) 12997;; (comp-key comp-name comp-file comp-line)
@@ -13003,19 +13003,19 @@ project/directory.")
13003 13003
13004(defvar vhdl-ent-inst-alist nil 13004(defvar vhdl-ent-inst-alist nil
13005 "Cache with instantiated entities for each project/directory.") 13005 "Cache with instantiated entities for each project/directory.")
13006;; structure: (parenthesised expression means list of such entries) 13006;; structure: (parenthesized expression means list of such entries)
13007;; (cache-key (inst-ent-key)) 13007;; (cache-key (inst-ent-key))
13008 13008
13009(defvar vhdl-file-alist nil 13009(defvar vhdl-file-alist nil
13010 "Cache with design units in each file for each project/directory.") 13010 "Cache with design units in each file for each project/directory.")
13011;; structure: (parenthesised expression means list of such entries) 13011;; structure: (parenthesized expression means list of such entries)
13012;; (cache-key 13012;; (cache-key
13013;; (file-name (ent-list) (arch-list) (arch-ent-list) (conf-list) 13013;; (file-name (ent-list) (arch-list) (arch-ent-list) (conf-list)
13014;; (pack-list) (pack-body-list) (inst-list) (inst-ent-list)) 13014;; (pack-list) (pack-body-list) (inst-list) (inst-ent-list))
13015 13015
13016(defvar vhdl-directory-alist nil 13016(defvar vhdl-directory-alist nil
13017 "Cache with source directories for each project.") 13017 "Cache with source directories for each project.")
13018;; structure: (parenthesised expression means list of such entries) 13018;; structure: (parenthesized expression means list of such entries)
13019;; (cache-key (directory)) 13019;; (cache-key (directory))
13020 13020
13021(defvar vhdl-speedbar-shown-unit-alist nil 13021(defvar vhdl-speedbar-shown-unit-alist nil
@@ -13655,7 +13655,7 @@ of PROJECT."
13655 (vhdl-speedbar-update-current-unit) 13655 (vhdl-speedbar-update-current-unit)
13656 (when updated (message "Updating hierarchy...done"))))) 13656 (when updated (message "Updating hierarchy...done")))))
13657 13657
13658;; structure (parenthesised expression means list of such entries) 13658;; structure (parenthesized expression means list of such entries)
13659;; (inst-key inst-file-marker comp-ent-key comp-ent-file-marker 13659;; (inst-key inst-file-marker comp-ent-key comp-ent-file-marker
13660;; comp-arch-key comp-arch-file-marker comp-conf-key comp-conf-file-marker 13660;; comp-arch-key comp-arch-file-marker comp-conf-key comp-conf-file-marker
13661;; comp-lib-name level) 13661;; comp-lib-name level)
diff --git a/lisp/ps-mule.el b/lisp/ps-mule.el
index c8bdc271f5f..db5b57f8585 100644
--- a/lisp/ps-mule.el
+++ b/lisp/ps-mule.el
@@ -932,7 +932,7 @@ the sequence."
932 (list ps-mule-bitmap-prologue))) 932 (list ps-mule-bitmap-prologue)))
933 933
934(defun ps-mule-generate-bitmap-font (font-spec size relative-compose 934(defun ps-mule-generate-bitmap-font (font-spec size relative-compose
935 baselie-offset bbx) 935 baseline-offset bbx)
936 (let* ((id (ps-mule-font-spec-id font-spec)) 936 (let* ((id (ps-mule-font-spec-id font-spec))
937 (bytes (ps-mule-font-spec-bytes font-spec)) 937 (bytes (ps-mule-font-spec-bytes font-spec))
938 output-list) 938 output-list)
@@ -941,7 +941,7 @@ the sequence."
941 (list (format "/E%02X [ 0 1 255 {pop /.notdef} for ] def\n" id) 941 (list (format "/E%02X [ 0 1 255 {pop /.notdef} for ] def\n" id)
942 (format "%%%% %s\n" (ps-mule-font-spec-name font-spec)) 942 (format "%%%% %s\n" (ps-mule-font-spec-name font-spec))
943 (format "/F%02X %f %S %d E%02X NBF\n" id size 943 (format "/F%02X %f %S %d E%02X NBF\n" id size
944 relative-compose baselie-offset id))) 944 relative-compose baseline-offset id)))
945 (setq output-list 945 (setq output-list
946 (list (list (format "/E%02X [ 0 1 255 { pop 0 } for ] def\n" id)) 946 (list (list (format "/E%02X [ 0 1 255 { pop 0 } for ] def\n" id))
947 (list (format "/V%02X [" id)) 947 (list (format "/V%02X [" id))
@@ -950,7 +950,7 @@ the sequence."
950 (format "/F%02X E%02X V%02X NPF\n" id id id)))) 950 (format "/F%02X E%02X V%02X NPF\n" id id id))))
951 (aset ps-mule-bitmap-font-record id 951 (aset ps-mule-bitmap-font-record id
952 (vector (= bytes 1) output-list 952 (vector (= bytes 1) output-list
953 size relative-compose baselie-offset bbx)) 953 size relative-compose baseline-offset bbx))
954 (if ps-mule-bitmap-dict-list 954 (if ps-mule-bitmap-dict-list
955 output-list 955 output-list
956 (setq ps-mule-bitmap-dict-list (list "/BitmapDict <<\n" ">> def\n")) 956 (setq ps-mule-bitmap-dict-list (list "/BitmapDict <<\n" ">> def\n"))
diff --git a/lisp/ps-print.el b/lisp/ps-print.el
index cb19197d16d..da804d99ae0 100644
--- a/lisp/ps-print.el
+++ b/lisp/ps-print.el
@@ -6658,7 +6658,7 @@ If FACE is not a valid face name, use default face."
6658;; But autoload them here to make the separation invisible. 6658;; But autoload them here to make the separation invisible.
6659 6659
6660;;;### (autoloads (ps-mule-end-job ps-mule-begin-job ps-mule-initialize 6660;;;### (autoloads (ps-mule-end-job ps-mule-begin-job ps-mule-initialize
6661;;;;;; ps-multibyte-buffer) "ps-mule" "ps-mule.el" "98fcbceecff2ac603ba35672b99b5278") 6661;;;;;; ps-multibyte-buffer) "ps-mule" "ps-mule.el" "01641c7c3af4e45e1c3afeb75a73120c")
6662;;; Generated autoloads from ps-mule.el 6662;;; Generated autoloads from ps-mule.el
6663 6663
6664(defvar ps-multibyte-buffer nil "\ 6664(defvar ps-multibyte-buffer nil "\
diff --git a/lisp/reveal.el b/lisp/reveal.el
index ea46cfd1dd3..8b4ac22a717 100644
--- a/lisp/reveal.el
+++ b/lisp/reveal.el
@@ -106,7 +106,7 @@ Each element has the form (WINDOW . OVERLAY).")
106 (let ((inv (overlay-get ol 'invisible)) open) 106 (let ((inv (overlay-get ol 'invisible)) open)
107 (when (and inv 107 (when (and inv
108 ;; There's an `invisible' property. Make sure it's 108 ;; There's an `invisible' property. Make sure it's
109 ;; actually invisible, and ellipsised. 109 ;; actually invisible, and ellipsized.
110 (and (consp buffer-invisibility-spec) 110 (and (consp buffer-invisibility-spec)
111 (cdr (assq inv buffer-invisibility-spec))) 111 (cdr (assq inv buffer-invisibility-spec)))
112 (or (setq open 112 (or (setq open
@@ -189,12 +189,12 @@ Each element has the form (WINDOW . OVERLAY).")
189 189
190;;;###autoload 190;;;###autoload
191(define-minor-mode reveal-mode 191(define-minor-mode reveal-mode
192 "Toggle decloaking of invisible text near point (Reveal mode). 192 "Toggle uncloaking of invisible text near point (Reveal mode).
193With a prefix argument ARG, enable Reveal mode if ARG is 193With a prefix argument ARG, enable Reveal mode if ARG is
194positive, and disable it otherwise. If called from Lisp, enable 194positive, and disable it otherwise. If called from Lisp, enable
195Reveal mode if ARG is omitted or nil. 195Reveal mode if ARG is omitted or nil.
196 196
197Reveral mode is a buffer-local minor mode. When enabled, it 197Reveal mode is a buffer-local minor mode. When enabled, it
198reveals invisible text around point." 198reveals invisible text around point."
199 :group 'reveal 199 :group 'reveal
200 :lighter (global-reveal-mode nil " Reveal") 200 :lighter (global-reveal-mode nil " Reveal")
diff --git a/lisp/server.el b/lisp/server.el
index e02f63a8268..edd8f2afa93 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -307,11 +307,13 @@ Updates `server-clients'."
307 307
308 (setq server-clients (delq proc server-clients)) 308 (setq server-clients (delq proc server-clients))
309 309
310 ;; Delete the client's tty. 310 ;; Delete the client's tty, except on Windows (both GUI and console),
311 (let ((terminal (process-get proc 'terminal))) 311 ;; where there's only one terminal and does not make sense to delete it.
312 ;; Only delete the terminal if it is non-nil. 312 (unless (eq system-type 'windows-nt)
313 (when (and terminal (eq (terminal-live-p terminal) t)) 313 (let ((terminal (process-get proc 'terminal)))
314 (delete-terminal terminal))) 314 ;; Only delete the terminal if it is non-nil.
315 (when (and terminal (eq (terminal-live-p terminal) t))
316 (delete-terminal terminal))))
315 317
316 ;; Delete the client's process. 318 ;; Delete the client's process.
317 (if (eq (process-status proc) 'open) 319 (if (eq (process-status proc) 'open)
@@ -1035,7 +1037,11 @@ The following commands are accepted by the client:
1035 (setq tty-name (pop args-left) 1037 (setq tty-name (pop args-left)
1036 tty-type (pop args-left) 1038 tty-type (pop args-left)
1037 dontkill (or dontkill 1039 dontkill (or dontkill
1038 (not use-current-frame)))) 1040 (not use-current-frame)))
1041 ;; On Windows, emacsclient always asks for a tty frame.
1042 ;; If running a GUI server, force the frame type to GUI.
1043 (when (eq window-system 'w32)
1044 (push "-window-system" args-left)))
1039 1045
1040 ;; -position LINE[:COLUMN]: Set point to the given 1046 ;; -position LINE[:COLUMN]: Set point to the given
1041 ;; position in the next file. 1047 ;; position in the next file.
diff --git a/lisp/ses.el b/lisp/ses.el
index 6c9d0a7a50d..d5947472c1a 100644
--- a/lisp/ses.el
+++ b/lisp/ses.el
@@ -327,7 +327,7 @@ need to be recalculated.")
327 327
328(defvar ses-call-printer-return nil 328(defvar ses-call-printer-return nil
329 "Set to t if last cell printer invoked by `ses-call-printer' requested 329 "Set to t if last cell printer invoked by `ses-call-printer' requested
330left-justification of the result. Set to error-signal if ses-call-printer 330left-justification of the result. Set to error-signal if `ses-call-printer'
331encountered an error during printing. Otherwise nil.") 331encountered an error during printing. Otherwise nil.")
332 332
333(defvar ses-start-time nil 333(defvar ses-start-time nil
@@ -394,7 +394,7 @@ functions refer to its value."
394 val))))) 394 val)))))
395 395
396(defmacro ses-cell-property-get (property-name row &optional col) 396(defmacro ses-cell-property-get (property-name row &optional col)
397 "Get property named PROPERTY-NAME From a CELL or a pair (ROW,COL). 397 "Get property named PROPERTY-NAME from a CELL or a pair (ROW,COL).
398 398
399When COL is omitted, CELL=ROW is a cell object. When COL is 399When COL is omitted, CELL=ROW is a cell object. When COL is
400present ROW and COL are the integer coordinates of the cell of 400present ROW and COL are the integer coordinates of the cell of
@@ -490,8 +490,8 @@ PROPERTY-NAME."
490 `(aref ses--col-printers ,col)) 490 `(aref ses--col-printers ,col))
491 491
492(defmacro ses-sym-rowcol (sym) 492(defmacro ses-sym-rowcol (sym)
493 "From a cell-symbol SYM, gets the cons (row . col). A1 => (0 . 0). Result 493 "From a cell-symbol SYM, gets the cons (row . col). A1 => (0 . 0).
494is nil if SYM is not a symbol that names a cell." 494Result is nil if SYM is not a symbol that names a cell."
495 `(and (symbolp ,sym) (get ,sym 'ses-cell))) 495 `(and (symbolp ,sym) (get ,sym 'ses-cell)))
496 496
497(defmacro ses-cell (sym value formula printer references) 497(defmacro ses-cell (sym value formula printer references)
@@ -625,7 +625,7 @@ is a vector--if a symbol, the new vector is assigned as the symbol's value."
625 (delete-region pos (point)))) 625 (delete-region pos (point))))
626 626
627(defun ses-printer-validate (printer) 627(defun ses-printer-validate (printer)
628 "Signals an error if PRINTER is not a valid SES cell printer." 628 "Signal an error if PRINTER is not a valid SES cell printer."
629 (or (not printer) 629 (or (not printer)
630 (stringp printer) 630 (stringp printer)
631 (functionp printer) 631 (functionp printer)
@@ -642,7 +642,7 @@ checking that it is a valid printer function."
642 (add-to-list 'ses-read-printer-history (prin1-to-string printer)))) 642 (add-to-list 'ses-read-printer-history (prin1-to-string printer))))
643 643
644(defun ses-formula-record (formula) 644(defun ses-formula-record (formula)
645 "If FORMULA is of the form 'symbol, adds it to the list of symbolic formulas 645 "If FORMULA is of the form 'symbol, add it to the list of symbolic formulas
646for this spreadsheet." 646for this spreadsheet."
647 (when (and (eq (car-safe formula) 'quote) 647 (when (and (eq (car-safe formula) 'quote)
648 (symbolp (cadr formula))) 648 (symbolp (cadr formula)))
@@ -691,7 +691,7 @@ for this spreadsheet."
691 buffer-undo-list)) 691 buffer-undo-list))
692 692
693(defun ses-reset-header-string () 693(defun ses-reset-header-string ()
694 "Flags the header string for update. Upon undo, the header string will be 694 "Flag the header string for update. Upon undo, the header string will be
695updated again." 695updated again."
696 (push '(apply ses-reset-header-string) buffer-undo-list) 696 (push '(apply ses-reset-header-string) buffer-undo-list)
697 (setq ses--header-hscroll -1)) 697 (setq ses--header-hscroll -1))
@@ -727,7 +727,7 @@ cell (ROW,COL). This is undoable. The cell's data will be updated through
727 nil) ; Make coverage-tester happy. 727 nil) ; Make coverage-tester happy.
728 728
729(defun ses-cell-set-formula (row col formula) 729(defun ses-cell-set-formula (row col formula)
730 "Store a new formula for (ROW . COL) and enqueues the cell for 730 "Store a new formula for (ROW . COL) and enqueue the cell for
731recalculation via `post-command-hook'. Updates the reference lists for the 731recalculation via `post-command-hook'. Updates the reference lists for the
732cells that this cell refers to. Does not update cell value or reprint the 732cells that this cell refers to. Does not update cell value or reprint the
733cell. To avoid inconsistencies, this function is not interruptible, which 733cell. To avoid inconsistencies, this function is not interruptible, which
@@ -812,9 +812,9 @@ means Emacs will crash if FORMULA contains a circular list."
812 errors))))) 812 errors)))))
813 (if errors 813 (if errors
814 (warn "---------------------------------------------------------------- 814 (warn "----------------------------------------------------------------
815Some reference where corrupted. 815Some references were corrupted.
816 816
817The following is a list of where each element ELT is such 817The following is a list where each element ELT is such
818that (car ELT) is the reference of cell CELL with corruption, 818that (car ELT) is the reference of cell CELL with corruption,
819and (cdr ELT) is a property list where 819and (cdr ELT) is a property list where
820 820
@@ -922,8 +922,7 @@ the old and FORCE is nil."
922 (ses-cell-set-formula row col nil)) 922 (ses-cell-set-formula row col nil))
923 923
924(defcustom ses-self-reference-early-detection nil 924(defcustom ses-self-reference-early-detection nil
925 "True if cycle detection is early for cells that refer to 925 "True if cycle detection is early for cells that refer to themselves."
926themselves."
927 :type 'boolean 926 :type 'boolean
928 :group 'ses) 927 :group 'ses)
929 928
@@ -989,7 +988,7 @@ if the cell's value is unchanged and FORCE is nil."
989;;---------------------------------------------------------------------------- 988;;----------------------------------------------------------------------------
990 989
991(defun ses-in-print-area () 990(defun ses-in-print-area ()
992 "Returns t if point is in print area of spreadsheet." 991 "Return t if point is in print area of spreadsheet."
993 (<= (point) ses--data-marker)) 992 (<= (point) ses--data-marker))
994 993
995;; We turn off point-motion-hooks and explicitly position the cursor, in case 994;; We turn off point-motion-hooks and explicitly position the cursor, in case
@@ -1011,7 +1010,7 @@ if the cell's value is unchanged and FORCE is nil."
1011 (forward-char)))) 1010 (forward-char))))
1012 1011
1013(defun ses-set-curcell () 1012(defun ses-set-curcell ()
1014 "Sets `ses--curcell' to the current cell symbol, or a cons (BEG,END) for a 1013 "Set `ses--curcell' to the current cell symbol, or a cons (BEG,END) for a
1015region, or nil if cursor is not at a cell." 1014region, or nil if cursor is not at a cell."
1016 (if (or (not mark-active) 1015 (if (or (not mark-active)
1017 deactivate-mark 1016 deactivate-mark
@@ -1030,10 +1029,10 @@ region, or nil if cursor is not at a cell."
1030 nil) 1029 nil)
1031 1030
1032(defun ses-check-curcell (&rest args) 1031(defun ses-check-curcell (&rest args)
1033 "Signal an error if ses--curcell is inappropriate. The end marker is 1032 "Signal an error if `ses--curcell' is inappropriate.
1034appropriate if some argument is 'end. A range is appropriate if some 1033The end marker is appropriate if some argument is 'end.
1035argument is 'range. A single cell is appropriate unless some argument is 1034A range is appropriate if some argument is 'range.
1036'needrange." 1035A single cell is appropriate unless some argument is 'needrange."
1037 (if (eq ses--curcell t) 1036 (if (eq ses--curcell t)
1038 ;; curcell recalculation was postponed, but user typed ahead. 1037 ;; curcell recalculation was postponed, but user typed ahead.
1039 (ses-set-curcell)) 1038 (ses-set-curcell))
@@ -1168,7 +1167,7 @@ preceding cell has spilled over."
1168 sig))) 1167 sig)))
1169 1168
1170(defun ses-call-printer (printer &optional value) 1169(defun ses-call-printer (printer &optional value)
1171 "Invokes PRINTER (a string or parenthesized string or function-symbol or 1170 "Invoke PRINTER (a string or parenthesized string or function-symbol or
1172lambda of one argument) on VALUE. Result is the printed cell as a string. 1171lambda of one argument) on VALUE. Result is the printed cell as a string.
1173The variable `ses-call-printer-return' is set to t if the printer used 1172The variable `ses-call-printer-return' is set to t if the printer used
1174parenthesis to request left-justification, or the error-signal if the 1173parenthesis to request left-justification, or the error-signal if the
@@ -1200,7 +1199,7 @@ printer signaled one (and \"%s\" is used as the default printer), else nil."
1200(defun ses-adjust-print-width (col change) 1199(defun ses-adjust-print-width (col change)
1201 "Insert CHANGE spaces in front of column COL, or at end of line if 1200 "Insert CHANGE spaces in front of column COL, or at end of line if
1202COL=NUMCOLS. Deletes characters if CHANGE < 0. Caller should bind 1201COL=NUMCOLS. Deletes characters if CHANGE < 0. Caller should bind
1203inhibit-quit to t." 1202`inhibit-quit' to t."
1204 (let ((inhibit-read-only t) 1203 (let ((inhibit-read-only t)
1205 (blank (if (> change 0) (make-string change ?\s))) 1204 (blank (if (> change 0) (make-string change ?\s)))
1206 (at-end (= col ses--numcols))) 1205 (at-end (= col ses--numcols)))
@@ -1219,9 +1218,9 @@ inhibit-quit to t."
1219 (delete-char (- change)))))) 1218 (delete-char (- change))))))
1220 1219
1221(defun ses-print-cell-new-width (row col) 1220(defun ses-print-cell-new-width (row col)
1222 "Same as ses-print-cell, except if the cell's value is *skip*, the preceding 1221 "Same as `ses-print-cell', except if the cell's value is *skip*,
1223nonskipped cell is reprinted. This function is used when the width of 1222the preceding nonskipped cell is reprinted. This function is used
1224cell (ROW,COL) has changed." 1223when the width of cell (ROW,COL) has changed."
1225 (if (not (eq (ses-cell-value row col) '*skip*)) 1224 (if (not (eq (ses-cell-value row col) '*skip*))
1226 (ses-print-cell row col) 1225 (ses-print-cell row col)
1227 ;;Cell was skipped over - reprint previous 1226 ;;Cell was skipped over - reprint previous
@@ -1344,7 +1343,7 @@ Newlines in the data are escaped."
1344;;---------------------------------------------------------------------------- 1343;;----------------------------------------------------------------------------
1345 1344
1346(defun ses-formula-references (formula &optional result-so-far) 1345(defun ses-formula-references (formula &optional result-so-far)
1347 "Produce a list of symbols for cells that this formula's value 1346 "Produce a list of symbols for cells that this FORMULA's value
1348refers to. For recursive calls, RESULT-SO-FAR is the list being 1347refers to. For recursive calls, RESULT-SO-FAR is the list being
1349constructed, or t to get a wrong-type-argument error when the 1348constructed, or t to get a wrong-type-argument error when the
1350first reference is found." 1349first reference is found."
@@ -1389,8 +1388,8 @@ by (ROWINCR,COLINCR)."
1389 1388
1390(defun ses-relocate-formula (formula startrow startcol rowincr colincr) 1389(defun ses-relocate-formula (formula startrow startcol rowincr colincr)
1391 "Produce a copy of FORMULA where all symbols that refer to cells in row 1390 "Produce a copy of FORMULA where all symbols that refer to cells in row
1392STARTROW or above and col STARTCOL or above are altered by adding ROWINCR 1391STARTROW or above, and col STARTCOL or above, are altered by adding ROWINCR
1393and COLINCR. STARTROW and STARTCOL are 0-based. Example: 1392and COLINCR. STARTROW and STARTCOL are 0-based. Example:
1394 (ses-relocate-formula '(+ A1 B2 D3) 1 2 1 -1) 1393 (ses-relocate-formula '(+ A1 B2 D3) 1 2 1 -1)
1395 => (+ A1 B2 C4) 1394 => (+ A1 B2 C4)
1396If ROWINCR or COLINCR is negative, references to cells being deleted are 1395If ROWINCR or COLINCR is negative, references to cells being deleted are
@@ -1618,7 +1617,8 @@ to each symbol."
1618 (makunbound sym))) 1617 (makunbound sym)))
1619 1618
1620(defun ses-aset-with-undo (array idx newval) 1619(defun ses-aset-with-undo (array idx newval)
1621 "Like aset, but undoable. Result is t if element has changed" 1620 "Like `aset', but undoable.
1621Result is t if element has changed."
1622 (unless (equal (aref array idx) newval) 1622 (unless (equal (aref array idx) newval)
1623 (push `(apply ses-aset-with-undo ,array ,idx 1623 (push `(apply ses-aset-with-undo ,array ,idx
1624 ,(aref array idx)) buffer-undo-list) 1624 ,(aref array idx)) buffer-undo-list)
@@ -1631,8 +1631,8 @@ to each symbol."
1631;;---------------------------------------------------------------------------- 1631;;----------------------------------------------------------------------------
1632 1632
1633(defun ses-load () 1633(defun ses-load ()
1634 "Parse the current buffer and sets up buffer-local variables. Does not 1634 "Parse the current buffer and set up buffer-local variables.
1635execute cell formulas or print functions." 1635Does not execute cell formulas or print functions."
1636 (widen) 1636 (widen)
1637 ;; Read our global parameters, which should be a 3-element list. 1637 ;; Read our global parameters, which should be a 3-element list.
1638 (goto-char (point-max)) 1638 (goto-char (point-max))
@@ -2082,8 +2082,7 @@ to are recalculated first."
2082 (ses-jump-safe startcell))) 2082 (ses-jump-safe startcell)))
2083 2083
2084(defun ses-truncate-cell () 2084(defun ses-truncate-cell ()
2085 "Reprint current cell, but without spillover into any following blank 2085 "Reprint current cell, but without spillover into any following blank cells."
2086cells."
2087 (interactive "*") 2086 (interactive "*")
2088 (ses-check-curcell) 2087 (ses-check-curcell)
2089 (let* ((rowcol (ses-sym-rowcol ses--curcell)) 2088 (let* ((rowcol (ses-sym-rowcol ses--curcell))
@@ -2273,7 +2272,7 @@ cells."
2273 2272
2274(defun ses-read-printer (prompt default) 2273(defun ses-read-printer (prompt default)
2275 "Common code for `ses-read-cell-printer', `ses-read-column-printer', and `ses-read-default-printer'. 2274 "Common code for `ses-read-cell-printer', `ses-read-column-printer', and `ses-read-default-printer'.
2276PROMPT should end with \": \". Result is t if operation was cancelled." 2275PROMPT should end with \": \". Result is t if operation was canceled."
2277 (barf-if-buffer-read-only) 2276 (barf-if-buffer-read-only)
2278 (if (eq default t) 2277 (if (eq default t)
2279 (setq default "") 2278 (setq default "")
@@ -2331,8 +2330,8 @@ right-justified) or a list of one string (will be left-justified)."
2331 (ses-print-cell row col)))) 2330 (ses-print-cell row col))))
2332 2331
2333(defun ses-read-column-printer (col newval) 2332(defun ses-read-column-printer (col newval)
2334 "Set the printer function for the current column. See 2333 "Set the printer function for the current column.
2335`ses-read-cell-printer' for input forms." 2334See `ses-read-cell-printer' for input forms."
2336 (interactive 2335 (interactive
2337 (let ((col (cdr (ses-sym-rowcol ses--curcell)))) 2336 (let ((col (cdr (ses-sym-rowcol ses--curcell))))
2338 (ses-check-curcell) 2337 (ses-check-curcell)
@@ -2348,8 +2347,8 @@ right-justified) or a list of one string (will be left-justified)."
2348 (ses-print-cell row col))))) 2347 (ses-print-cell row col)))))
2349 2348
2350(defun ses-read-default-printer (newval) 2349(defun ses-read-default-printer (newval)
2351 "Set the default printer function for cells that have no other. See 2350 "Set the default printer function for cells that have no other.
2352`ses-read-cell-printer' for input forms." 2351See `ses-read-cell-printer' for input forms."
2353 (interactive 2352 (interactive
2354 (list (ses-read-printer "Default printer: " ses--default-printer))) 2353 (list (ses-read-printer "Default printer: " ses--default-printer)))
2355 (unless (eq newval t) 2354 (unless (eq newval t)
@@ -2363,8 +2362,8 @@ right-justified) or a list of one string (will be left-justified)."
2363;;---------------------------------------------------------------------------- 2362;;----------------------------------------------------------------------------
2364 2363
2365(defun ses-insert-row (count) 2364(defun ses-insert-row (count)
2366 "Insert a new row before the current one. With prefix, insert COUNT rows 2365 "Insert a new row before the current one.
2367before current one." 2366With prefix, insert COUNT rows before current one."
2368 (interactive "*p") 2367 (interactive "*p")
2369 (ses-check-curcell 'end) 2368 (ses-check-curcell 'end)
2370 (or (> count 0) (signal 'args-out-of-range nil)) 2369 (or (> count 0) (signal 'args-out-of-range nil))
@@ -2416,8 +2415,8 @@ before current one."
2416 (ses-goto-print (1- ses--numrows) 0))) 2415 (ses-goto-print (1- ses--numrows) 0)))
2417 2416
2418(defun ses-delete-row (count) 2417(defun ses-delete-row (count)
2419 "Delete the current row. With prefix, Deletes COUNT rows starting from the 2418 "Delete the current row.
2420current one." 2419With prefix, deletes COUNT rows starting from the current one."
2421 (interactive "*p") 2420 (interactive "*p")
2422 (ses-check-curcell) 2421 (ses-check-curcell)
2423 (or (> count 0) (signal 'args-out-of-range nil)) 2422 (or (> count 0) (signal 'args-out-of-range nil))
@@ -2509,8 +2508,8 @@ If COL is specified, the new column(s) get the specified WIDTH and PRINTER
2509 (ses-jump-safe ses--curcell)) 2508 (ses-jump-safe ses--curcell))
2510 2509
2511(defun ses-delete-column (count) 2510(defun ses-delete-column (count)
2512 "Delete the current column. With prefix, Deletes COUNT columns starting 2511 "Delete the current column.
2513from the current one." 2512With prefix, deletes COUNT columns starting from the current one."
2514 (interactive "*p") 2513 (interactive "*p")
2515 (ses-check-curcell) 2514 (ses-check-curcell)
2516 (or (> count 0) (signal 'args-out-of-range nil)) 2515 (or (> count 0) (signal 'args-out-of-range nil))
@@ -2584,7 +2583,7 @@ inserts a new row if at bottom of print area. Repeat COUNT times."
2584 (forward-char))) 2583 (forward-char)))
2585 2584
2586(defun ses-append-row-jump-first-column () 2585(defun ses-append-row-jump-first-column ()
2587 "Insert a new row after current one and jumps to its first column." 2586 "Insert a new row after current one and jump to its first column."
2588 (interactive "*") 2587 (interactive "*")
2589 (ses-check-curcell) 2588 (ses-check-curcell)
2590 (ses-begin-change) 2589 (ses-begin-change)
@@ -2687,8 +2686,8 @@ the corresponding data cell."
2687 line) 2686 line)
2688 2687
2689(defun ses-kill-override (beg end) 2688(defun ses-kill-override (beg end)
2690 "Generic override for any commands that kill text. We clear the killed 2689 "Generic override for any commands that kill text.
2691cells instead of deleting them." 2690We clear the killed cells instead of deleting them."
2692 (interactive "r") 2691 (interactive "r")
2693 (ses-check-curcell 'needrange) 2692 (ses-check-curcell 'needrange)
2694 ;; For some reason, the text-read-only error is not caught by `delete-region', 2693 ;; For some reason, the text-read-only error is not caught by `delete-region',
@@ -2749,9 +2748,9 @@ as symbols."
2749 2748
2750(defun ses-yank-pop (arg) 2749(defun ses-yank-pop (arg)
2751 "Replace just-yanked stretch of killed text with a different stretch. 2750 "Replace just-yanked stretch of killed text with a different stretch.
2752This command is allowed only immediately after a `yank' or a `yank-pop', when 2751This command is allowed only immediately after a `yank' or a `yank-pop',
2753the region contains a stretch of reinserted previously-killed text. We 2752when the region contains a stretch of reinserted previously-killed text.
2754replace it with a different stretch of killed text. 2753We replace it with a different stretch of killed text.
2755 Unlike standard `yank-pop', this function uses `undo' to delete the 2754 Unlike standard `yank-pop', this function uses `undo' to delete the
2756previous insertion." 2755previous insertion."
2757 (interactive "*p") 2756 (interactive "*p")
@@ -2765,7 +2764,7 @@ previous insertion."
2765 (setq this-command 'yank)) 2764 (setq this-command 'yank))
2766 2765
2767(defun ses-yank-cells (text arg) 2766(defun ses-yank-cells (text arg)
2768 "If the TEXT has a proper set of 'ses attributes, inserts the text as 2767 "If the TEXT has a proper set of 'ses attributes, insert the text as
2769cells, else return nil. The cells are reprinted--the supplied text is 2768cells, else return nil. The cells are reprinted--the supplied text is
2770ignored because the column widths, default printer, etc. at yank time might 2769ignored because the column widths, default printer, etc. at yank time might
2771be different from those at kill-time. ARG is a list to indicate that 2770be different from those at kill-time. ARG is a list to indicate that
@@ -2848,8 +2847,8 @@ cons of ROW and COL). Treat plain symbols as strings unless ARG is a list."
2848 (ses-cell-set-formula row col val)))) 2847 (ses-cell-set-formula row col val))))
2849 2848
2850(defun ses-yank-tsf (text arg) 2849(defun ses-yank-tsf (text arg)
2851 "If TEXT contains tabs and/or newlines, treats the tabs as 2850 "If TEXT contains tabs and/or newlines, treat the tabs as
2852column-separators and the newlines as row-separators and inserts the text as 2851column-separators and the newlines as row-separators and insert the text as
2853cell formulas--else return nil. Treat plain symbols as strings unless ARG 2852cell formulas--else return nil. Treat plain symbols as strings unless ARG
2854is a list. Ignore a final newline." 2853is a list. Ignore a final newline."
2855 (if (or (not (string-match "[\t\n]" text)) 2854 (if (or (not (string-match "[\t\n]" text))
@@ -2887,8 +2886,8 @@ is a list. Ignore a final newline."
2887 t))) 2886 t)))
2888 2887
2889(defun ses-yank-resize (needrows needcols) 2888(defun ses-yank-resize (needrows needcols)
2890 "If this yank will require inserting rows and/or columns, asks for 2889 "If this yank will require inserting rows and/or columns, ask for
2891confirmation and then inserts them. Result is (row,col) for top left of yank 2890confirmation and then insert them. Result is (row,col) for top left of yank
2892spot, or error signal if user requests cancel." 2891spot, or error signal if user requests cancel."
2893 (ses-begin-change) 2892 (ses-begin-change)
2894 (let ((rowcol (if ses--curcell 2893 (let ((rowcol (if ses--curcell
@@ -2931,9 +2930,9 @@ newlines between rows. Result is placed in kill ring."
2931 (ses-export-tab t)) 2930 (ses-export-tab t))
2932 2931
2933(defun ses-export-tab (want-formulas) 2932(defun ses-export-tab (want-formulas)
2934 "Export the current range with tabs between columns and newlines between 2933 "Export the current range with tabs between columns and newlines between rows.
2935rows. Result is placed in kill ring. The export is values unless 2934Result is placed in kill ring. The export is values unless WANT-FORMULAS
2936WANT-FORMULAS is non-nil. Newlines and tabs in the export text are escaped." 2935is non-nil. Newlines and tabs in the export text are escaped."
2937 (ses-check-curcell 'needrange) 2936 (ses-check-curcell 'needrange)
2938 (let ((print-escape-newlines t) 2937 (let ((print-escape-newlines t)
2939 result item) 2938 result item)
@@ -2992,7 +2991,7 @@ The top row is row 1. Selecting row 0 displays the default header row."
2992 (ses-reset-header-string)) 2991 (ses-reset-header-string))
2993 2992
2994(defun ses-mark-row () 2993(defun ses-mark-row ()
2995 "Marks the entirety of current row as a range." 2994 "Mark the entirety of current row as a range."
2996 (interactive) 2995 (interactive)
2997 (ses-check-curcell 'range) 2996 (ses-check-curcell 'range)
2998 (let ((row (car (ses-sym-rowcol (or (car-safe ses--curcell) ses--curcell))))) 2997 (let ((row (car (ses-sym-rowcol (or (car-safe ses--curcell) ses--curcell)))))
@@ -3002,7 +3001,7 @@ The top row is row 1. Selecting row 0 displays the default header row."
3002 (ses-goto-print row 0))) 3001 (ses-goto-print row 0)))
3003 3002
3004(defun ses-mark-column () 3003(defun ses-mark-column ()
3005 "Marks the entirety of current column as a range." 3004 "Mark the entirety of current column as a range."
3006 (interactive) 3005 (interactive)
3007 (ses-check-curcell 'range) 3006 (ses-check-curcell 'range)
3008 (let ((col (cdr (ses-sym-rowcol (or (car-safe ses--curcell) ses--curcell)))) 3007 (let ((col (cdr (ses-sym-rowcol (or (car-safe ses--curcell) ses--curcell))))
@@ -3046,13 +3045,14 @@ The top row is row 1. Selecting row 0 displays the default header row."
3046 (ses-goto-print row col))))) 3045 (ses-goto-print row col)))))
3047 3046
3048(defun ses-renarrow-buffer () 3047(defun ses-renarrow-buffer ()
3049 "Narrow the buffer so only the print area is visible. Use after \\[widen]." 3048 "Narrow the buffer so only the print area is visible.
3049Use after \\[widen]."
3050 (interactive) 3050 (interactive)
3051 (setq ses--deferred-narrow t)) 3051 (setq ses--deferred-narrow t))
3052 3052
3053(defun ses-sort-column (sorter &optional reverse) 3053(defun ses-sort-column (sorter &optional reverse)
3054 "Sorts the range by a specified column. With prefix, sorts in 3054 "Sort the range by a specified column.
3055REVERSE order." 3055With prefix, sorts in REVERSE order."
3056 (interactive "*sSort column: \nP") 3056 (interactive "*sSort column: \nP")
3057 (ses-check-curcell 'needrange) 3057 (ses-check-curcell 'needrange)
3058 (let ((min (ses-sym-rowcol (car ses--curcell))) 3058 (let ((min (ses-sym-rowcol (car ses--curcell)))
@@ -3103,7 +3103,7 @@ REVERSE order."
3103 (ses-sort-column (ses-column-letter col) reverse)))) 3103 (ses-sort-column (ses-column-letter col) reverse))))
3104 3104
3105(defun ses-insert-range () 3105(defun ses-insert-range ()
3106 "Inserts into minibuffer the list of cells currently highlighted in the 3106 "Insert into minibuffer the list of cells currently highlighted in the
3107spreadsheet." 3107spreadsheet."
3108 (interactive "*") 3108 (interactive "*")
3109 (let (x) 3109 (let (x)
@@ -3115,7 +3115,7 @@ spreadsheet."
3115 (insert (substring (prin1-to-string (nreverse x)) 1 -1)))) 3115 (insert (substring (prin1-to-string (nreverse x)) 1 -1))))
3116 3116
3117(defun ses-insert-ses-range () 3117(defun ses-insert-ses-range ()
3118 "Inserts \"(ses-range x y)\" in the minibuffer to represent the currently 3118 "Insert \"(ses-range x y)\" in the minibuffer to represent the currently
3119highlighted range in the spreadsheet." 3119highlighted range in the spreadsheet."
3120 (interactive "*") 3120 (interactive "*")
3121 (let (x) 3121 (let (x)
@@ -3145,7 +3145,7 @@ highlighted range in the spreadsheet."
3145;;---------------------------------------------------------------------------- 3145;;----------------------------------------------------------------------------
3146 3146
3147(defun ses-safe-printer (printer) 3147(defun ses-safe-printer (printer)
3148 "Returns PRINTER if safe, or the substitute printer `ses-unsafe' otherwise." 3148 "Return PRINTER if safe, or the substitute printer `ses-unsafe' otherwise."
3149 (if (or (stringp printer) 3149 (if (or (stringp printer)
3150 (stringp (car-safe printer)) 3150 (stringp (car-safe printer))
3151 (not printer) 3151 (not printer)
@@ -3154,16 +3154,16 @@ highlighted range in the spreadsheet."
3154 'ses-unsafe)) 3154 'ses-unsafe))
3155 3155
3156(defun ses-safe-formula (formula) 3156(defun ses-safe-formula (formula)
3157 "Returns FORMULA if safe, or the substitute formula *unsafe* otherwise." 3157 "Return FORMULA if safe, or the substitute formula *unsafe* otherwise."
3158 (if (ses-warn-unsafe formula 'unsafep) 3158 (if (ses-warn-unsafe formula 'unsafep)
3159 formula 3159 formula
3160 `(ses-unsafe ',formula))) 3160 `(ses-unsafe ',formula)))
3161 3161
3162(defun ses-warn-unsafe (formula checker) 3162(defun ses-warn-unsafe (formula checker)
3163 "Applies CHECKER to FORMULA. If result is non-nil, asks user for 3163 "Apply CHECKER to FORMULA.
3164confirmation about FORMULA, which might be unsafe. Returns t if formula 3164If result is non-nil, asks user for confirmation about FORMULA,
3165is safe or user allows execution anyway. Always returns t if 3165which might be unsafe. Returns t if formula is safe or user allows
3166`safe-functions' is t." 3166execution anyway. Always returns t if `safe-functions' is t."
3167 (if (eq safe-functions t) 3167 (if (eq safe-functions t)
3168 t 3168 t
3169 (setq checker (funcall checker formula)) 3169 (setq checker (funcall checker formula))
@@ -3178,13 +3178,13 @@ is safe or user allows execution anyway. Always returns t if
3178;;---------------------------------------------------------------------------- 3178;;----------------------------------------------------------------------------
3179 3179
3180(defun ses--clean-! (&rest x) 3180(defun ses--clean-! (&rest x)
3181 "Clean by delq list X from any occurrence of `nil' or `*skip*'." 3181 "Clean by `delq' list X from any occurrence of `nil' or `*skip*'."
3182 (delq nil (delq '*skip* x))) 3182 (delq nil (delq '*skip* x)))
3183 3183
3184(defun ses--clean-_ (x y) 3184(defun ses--clean-_ (x y)
3185 "Clean list X by replacing by Y any occurrence of `nil' or `*skip*'. 3185 "Clean list X by replacing by Y any occurrence of `nil' or `*skip*'.
3186 3186
3187This will change X by making setcar on its cons cells." 3187This will change X by making `setcar' on its cons cells."
3188 (let ((ret x) ret-elt) 3188 (let ((ret x) ret-elt)
3189 (while ret 3189 (while ret
3190 (setq ret-elt (car ret)) 3190 (setq ret-elt (car ret))
@@ -3194,7 +3194,7 @@ This will change X by making setcar on its cons cells."
3194 x) 3194 x)
3195 3195
3196(defmacro ses-range (from to &rest rest) 3196(defmacro ses-range (from to &rest rest)
3197 "Expands to a list of cell-symbols for the range going from 3197 "Expand to a list of cell-symbols for the range going from
3198FROM up to TO. The range automatically expands to include any 3198FROM up to TO. The range automatically expands to include any
3199new row or column inserted into its middle. The SES library code 3199new row or column inserted into its middle. The SES library code
3200specifically looks for the symbol `ses-range', so don't create an 3200specifically looks for the symbol `ses-range', so don't create an
@@ -3207,8 +3207,8 @@ In the sequel we assume that cells A1, B1, A2 B2 have respective values
32071 2 3 and 4. 32071 2 3 and 4.
3208 3208
3209Readout direction is specified by a `>v', '`>^', `<v', `<^', 3209Readout direction is specified by a `>v', '`>^', `<v', `<^',
3210`v>', `v<', `^>', `^<' flag. For historical reasons, in absence 3210`v>', `v<', `^>', `^<' flag. For historical reasons, in absence
3211of such a flag, a default direction of `^<' is assumed. This 3211of such a flag, a default direction of `^<' is assumed. This
3212way `(ses-range A1 B2 ^>)' will evaluate to `(1 3 2 4)', 3212way `(ses-range A1 B2 ^>)' will evaluate to `(1 3 2 4)',
3213while `(ses-range A1 B2 >^)' will evaluate to (3 4 1 2). 3213while `(ses-range A1 B2 >^)' will evaluate to (3 4 1 2).
3214 3214
@@ -3221,18 +3221,18 @@ If the range is one column, then `v' can be used as a shorthand to
3221A `!' flag will remove all cells whose value is nil or `*skip*'. 3221A `!' flag will remove all cells whose value is nil or `*skip*'.
3222 3222
3223A `_' flag will replace nil or `*skip*' by the value following 3223A `_' flag will replace nil or `*skip*' by the value following
3224the `_' flag. If the `_' flag is the last argument, then they are 3224the `_' flag. If the `_' flag is the last argument, then they are
3225replaced by integer 0. 3225replaced by integer 0.
3226 3226
3227A `*', `*1' or `*2' flag will vectorize the range in the sense of 3227A `*', `*1' or `*2' flag will vectorize the range in the sense of
3228Calc. See info node `(Calc) Top'. Flag `*' will output either a 3228Calc. See info node `(Calc) Top'. Flag `*' will output either a
3229vector or a matrix depending on the number of rows, `*1' will 3229vector or a matrix depending on the number of rows, `*1' will
3230flatten the result to a one row vector, and `*2' will make a 3230flatten the result to a one row vector, and `*2' will make a
3231matrix whatever the number of rows. 3231matrix whatever the number of rows.
3232 3232
3233Warning: interaction with Calc is experimental and may produce 3233Warning: interaction with Calc is experimental and may produce
3234confusing results if you are not aware of Calc data format. Use 3234confusing results if you are not aware of Calc data format.
3235`math-format-value' as a printer for Calc objects." 3235Use `math-format-value' as a printer for Calc objects."
3236 (let (result-row 3236 (let (result-row
3237 result 3237 result
3238 (prev-row -1) 3238 (prev-row -1)
@@ -3319,10 +3319,10 @@ are ignored. Result is always floating-point, even if all args are integers."
3319 (/ (float (apply '+ list)) (length list))) 3319 (/ (float (apply '+ list)) (length list)))
3320 3320
3321(defmacro ses-select (fromrange test torange) 3321(defmacro ses-select (fromrange test torange)
3322 "Select cells in FROMRANGE that are `equal' to TEST. For each match, return 3322 "Select cells in FROMRANGE that are `equal' to TEST.
3323the corresponding cell from TORANGE. The ranges are macroexpanded but not 3323For each match, return the corresponding cell from TORANGE.
3324evaluated so they should be either (ses-range BEG END) or (list ...). The 3324The ranges are macroexpanded but not evaluated so they should be
3325TEST is evaluated." 3325either (ses-range BEG END) or (list ...). The TEST is evaluated."
3326 (setq fromrange (cdr (macroexpand fromrange)) 3326 (setq fromrange (cdr (macroexpand fromrange))
3327 torange (cdr (macroexpand torange)) 3327 torange (cdr (macroexpand torange))
3328 test (eval test)) 3328 test (eval test))
@@ -3352,9 +3352,10 @@ TEST is evaluated."
3352(defvar col) 3352(defvar col)
3353 3353
3354(defun ses-center (value &optional span fill) 3354(defun ses-center (value &optional span fill)
3355 "Print VALUE, centered within column. FILL is the fill character for 3355 "Print VALUE, centered within column.
3356centering (default = space). SPAN indicates how many additional rightward 3356FILL is the fill character for centering (default = space).
3357columns to include in width (default = 0)." 3357SPAN indicates how many additional rightward columns to include
3358in width (default = 0)."
3358 (let ((printer (or (ses-col-printer col) ses--default-printer)) 3359 (let ((printer (or (ses-col-printer col) ses--default-printer))
3359 (width (ses-col-width col)) 3360 (width (ses-col-width col))
3360 half) 3361 half)
@@ -3373,8 +3374,8 @@ columns to include in width (default = 0)."
3373 3374
3374(defun ses-center-span (value &optional fill) 3375(defun ses-center-span (value &optional fill)
3375 "Print VALUE, centered within the span that starts in the current column 3376 "Print VALUE, centered within the span that starts in the current column
3376and continues until the next nonblank column. FILL specifies the fill 3377and continues until the next nonblank column.
3377character (default = space)." 3378FILL specifies the fill character (default = space)."
3378 (let ((end (1+ col))) 3379 (let ((end (1+ col)))
3379 (while (and (< end ses--numcols) 3380 (while (and (< end ses--numcols)
3380 (memq (ses-cell-value row end) '(nil *skip*))) 3381 (memq (ses-cell-value row end) '(nil *skip*)))
@@ -3382,8 +3383,8 @@ character (default = space)."
3382 (ses-center value (- end col 1) fill))) 3383 (ses-center value (- end col 1) fill)))
3383 3384
3384(defun ses-dashfill (value &optional span) 3385(defun ses-dashfill (value &optional span)
3385 "Print VALUE centered using dashes. SPAN indicates how many rightward 3386 "Print VALUE centered using dashes.
3386columns to include in width (default = 0)." 3387SPAN indicates how many rightward columns to include in width (default = 0)."
3387 (ses-center value span ?-)) 3388 (ses-center value span ?-))
3388 3389
3389(defun ses-dashfill-span (value) 3390(defun ses-dashfill-span (value)
@@ -3397,7 +3398,7 @@ current column and continues until the next nonblank column."
3397 (ses-center-span value ?~)) 3398 (ses-center-span value ?~))
3398 3399
3399(defun ses-unsafe (value) 3400(defun ses-unsafe (value)
3400 "Substitute for an unsafe formula or printer" 3401 "Substitute for an unsafe formula or printer."
3401 (error "Unsafe formula or printer")) 3402 (error "Unsafe formula or printer"))
3402 3403
3403;;All standard printers are safe, including ses-unsafe! 3404;;All standard printers are safe, including ses-unsafe!
diff --git a/lisp/shell.el b/lisp/shell.el
index 47119e6769c..fdfc8b3cf19 100644
--- a/lisp/shell.el
+++ b/lisp/shell.el
@@ -35,7 +35,7 @@
35;; This makes these modes easier to use. 35;; This makes these modes easier to use.
36 36
37;; For documentation on the functionality provided by comint mode, and 37;; For documentation on the functionality provided by comint mode, and
38;; the hooks available for customising it, see the file comint.el. 38;; the hooks available for customizing it, see the file comint.el.
39;; For further information on shell mode, see the comments below. 39;; For further information on shell mode, see the comments below.
40 40
41;; Needs fixin: 41;; Needs fixin:
diff --git a/lisp/simple.el b/lisp/simple.el
index 1dc866cf64d..b7165c9f6a9 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -1052,16 +1052,23 @@ In addition, with prefix argument, show details about that character
1052in *Help* buffer. See also the command `describe-char'." 1052in *Help* buffer. See also the command `describe-char'."
1053 (interactive "P") 1053 (interactive "P")
1054 (let* ((char (following-char)) 1054 (let* ((char (following-char))
1055 ;; If the character is one of LRE, LRO, RLE, RLO, it will 1055 (bidi-fixer
1056 ;; start a directional embedding, which could completely 1056 (cond ((memq char '(?\x202a ?\x202b ?\x202d ?\x202e))
1057 ;; disrupt the rest of the line (e.g., RLO will display the 1057 ;; If the character is one of LRE, LRO, RLE, RLO, it
1058 ;; rest of the line right-to-left). So we put an invisible 1058 ;; will start a directional embedding, which could
1059 ;; PDF character after these characters, to end the 1059 ;; completely disrupt the rest of the line (e.g., RLO
1060 ;; embedding, which eliminates any effects on the rest of the 1060 ;; will display the rest of the line right-to-left).
1061 ;; line. 1061 ;; So we put an invisible PDF character after these
1062 (pdf (if (memq char '(?\x202a ?\x202b ?\x202d ?\x202e)) 1062 ;; characters, to end the embedding, which eliminates
1063 (propertize (string ?\x202c) 'invisible t) 1063 ;; any effects on the rest of the line.
1064 "")) 1064 (propertize (string ?\x202c) 'invisible t))
1065 ;; Strong right-to-left characters cause reordering of
1066 ;; the following numerical characters which show the
1067 ;; codepoint, so append LRM to countermand that.
1068 ((memq (get-char-code-property char 'bidi-class) '(R AL))
1069 (propertize (string ?\x200e) 'invisible t))
1070 (t
1071 "")))
1065 (beg (point-min)) 1072 (beg (point-min))
1066 (end (point-max)) 1073 (end (point-max))
1067 (pos (point)) 1074 (pos (point))
@@ -1125,14 +1132,15 @@ in *Help* buffer. See also the command `describe-char'."
1125 (if (< char 256) 1132 (if (< char 256)
1126 (single-key-description char) 1133 (single-key-description char)
1127 (buffer-substring-no-properties (point) (1+ (point)))) 1134 (buffer-substring-no-properties (point) (1+ (point))))
1128 pdf encoding-msg pos total percent beg end col hscroll) 1135 bidi-fixer
1136 encoding-msg pos total percent beg end col hscroll)
1129 (message "Char: %s%s %s point=%d of %d (%d%%) column=%d%s" 1137 (message "Char: %s%s %s point=%d of %d (%d%%) column=%d%s"
1130 (if enable-multibyte-characters 1138 (if enable-multibyte-characters
1131 (if (< char 128) 1139 (if (< char 128)
1132 (single-key-description char) 1140 (single-key-description char)
1133 (buffer-substring-no-properties (point) (1+ (point)))) 1141 (buffer-substring-no-properties (point) (1+ (point))))
1134 (single-key-description char)) 1142 (single-key-description char))
1135 pdf encoding-msg pos total percent col hscroll)))))) 1143 bidi-fixer encoding-msg pos total percent col hscroll))))))
1136 1144
1137;; Initialize read-expression-map. It is defined at C level. 1145;; Initialize read-expression-map. It is defined at C level.
1138(let ((m (make-sparse-keymap))) 1146(let ((m (make-sparse-keymap)))
@@ -1217,11 +1225,11 @@ this command arranges for all errors to enter the debugger."
1217 (push (eval eval-expression-arg lexical-binding) values) 1225 (push (eval eval-expression-arg lexical-binding) values)
1218 (let ((old-value (make-symbol "t")) new-value) 1226 (let ((old-value (make-symbol "t")) new-value)
1219 ;; Bind debug-on-error to something unique so that we can 1227 ;; Bind debug-on-error to something unique so that we can
1220 ;; detect when evaled code changes it. 1228 ;; detect when evalled code changes it.
1221 (let ((debug-on-error old-value)) 1229 (let ((debug-on-error old-value))
1222 (push (eval eval-expression-arg lexical-binding) values) 1230 (push (eval eval-expression-arg lexical-binding) values)
1223 (setq new-value debug-on-error)) 1231 (setq new-value debug-on-error))
1224 ;; If evaled code has changed the value of debug-on-error, 1232 ;; If evalled code has changed the value of debug-on-error,
1225 ;; propagate that change to the global binding. 1233 ;; propagate that change to the global binding.
1226 (unless (eq old-value new-value) 1234 (unless (eq old-value new-value)
1227 (setq debug-on-error new-value)))) 1235 (setq debug-on-error new-value))))
@@ -1582,7 +1590,7 @@ by the new completion."
1582 n) 1590 n)
1583 ;; next-matching-history-element always puts us at (point-min). 1591 ;; next-matching-history-element always puts us at (point-min).
1584 ;; Move to the position we were at before changing the buffer contents. 1592 ;; Move to the position we were at before changing the buffer contents.
1585 ;; This is still sensical, because the text before point has not changed. 1593 ;; This is still sensible, because the text before point has not changed.
1586 (goto-char point-at-start))) 1594 (goto-char point-at-start)))
1587 1595
1588(defun previous-complete-history-element (n) 1596(defun previous-complete-history-element (n)
@@ -2907,11 +2915,11 @@ These commands include \\[set-mark-command] and \\[start-kbd-macro]."
2907 2915
2908(defvar filter-buffer-substring-functions nil 2916(defvar filter-buffer-substring-functions nil
2909 "Wrapper hook around `filter-buffer-substring'. 2917 "Wrapper hook around `filter-buffer-substring'.
2910The functions on this special hook are called with 4 arguments: 2918The functions on this special hook are called with four arguments:
2911 NEXT-FUN BEG END DELETE 2919 NEXT-FUN BEG END DELETE
2912NEXT-FUN is a function of 3 arguments (BEG END DELETE) 2920NEXT-FUN is a function of three arguments (BEG END DELETE)
2913that performs the default operation. The other 3 arguments are like 2921that performs the default operation. The other three arguments
2914the ones passed to `filter-buffer-substring'.") 2922are like the ones passed to `filter-buffer-substring'.")
2915 2923
2916(defvar buffer-substring-filters nil 2924(defvar buffer-substring-filters nil
2917 "List of filter functions for `filter-buffer-substring'. 2925 "List of filter functions for `filter-buffer-substring'.
@@ -4721,7 +4729,7 @@ To ignore intangibility, bind `inhibit-point-motion-hooks' to t."
4721 (let ((line-move-visual nil)) 4729 (let ((line-move-visual nil))
4722 (line-move (1- arg) t))) 4730 (line-move (1- arg) t)))
4723 4731
4724 ;; Move to beginning-of-line, ignoring fields and invisibles. 4732 ;; Move to beginning-of-line, ignoring fields and invisible text.
4725 (skip-chars-backward "^\n") 4733 (skip-chars-backward "^\n")
4726 (while (and (not (bobp)) (invisible-p (1- (point)))) 4734 (while (and (not (bobp)) (invisible-p (1- (point))))
4727 (goto-char (previous-char-property-change (point))) 4735 (goto-char (previous-char-property-change (point)))
@@ -5704,7 +5712,7 @@ At top-level, as an editor command, this simply beeps."
5704(defvar buffer-quit-function nil 5712(defvar buffer-quit-function nil
5705 "Function to call to \"quit\" the current buffer, or nil if none. 5713 "Function to call to \"quit\" the current buffer, or nil if none.
5706\\[keyboard-escape-quit] calls this function when its more local actions 5714\\[keyboard-escape-quit] calls this function when its more local actions
5707\(such as cancelling a prefix argument, minibuffer or region) do not apply.") 5715\(such as canceling a prefix argument, minibuffer or region) do not apply.")
5708 5716
5709(defun keyboard-escape-quit () 5717(defun keyboard-escape-quit ()
5710 "Exit the current \"mode\" (in a generalized sense of the word). 5718 "Exit the current \"mode\" (in a generalized sense of the word).
@@ -6015,7 +6023,7 @@ of the text to replace. If END is nil, point is used instead.")
6015 6023
6016(defvar completion-list-insert-choice-function #'completion--replace 6024(defvar completion-list-insert-choice-function #'completion--replace
6017 "Function to use to insert the text chosen in *Completions*. 6025 "Function to use to insert the text chosen in *Completions*.
6018Called with 3 arguments (BEG END TEXT), it should replace the text 6026Called with three arguments (BEG END TEXT), it should replace the text
6019between BEG and END with TEXT. Expected to be set buffer-locally 6027between BEG and END with TEXT. Expected to be set buffer-locally
6020in the *Completions* buffer.") 6028in the *Completions* buffer.")
6021 6029
@@ -6209,7 +6217,7 @@ BASE-POSITION, says where to insert the completion."
6209 choice buffer base-position nil) 6217 choice buffer base-position nil)
6210 ;; This remove-text-properties should be unnecessary since `choice' 6218 ;; This remove-text-properties should be unnecessary since `choice'
6211 ;; comes from buffer-substring-no-properties. 6219 ;; comes from buffer-substring-no-properties.
6212 ;;(remove-text-properties 0 (lenth choice) '(mouse-face nil) choice) 6220 ;;(remove-text-properties 0 (length choice) '(mouse-face nil) choice)
6213 ;; Insert the completion into the buffer where it was requested. 6221 ;; Insert the completion into the buffer where it was requested.
6214 (funcall (or insert-function completion-list-insert-choice-function) 6222 (funcall (or insert-function completion-list-insert-choice-function)
6215 (or (car base-position) (point)) 6223 (or (car base-position) (point))
diff --git a/lisp/speedbar.el b/lisp/speedbar.el
index b8a734784be..efe7832aca6 100644
--- a/lisp/speedbar.el
+++ b/lisp/speedbar.el
@@ -696,7 +696,7 @@ function `speedbar-extension-list-to-regex'.")
696 (append '(".[ch]\\(\\+\\+\\|pp\\|c\\|h\\|xx\\)?" ".tex\\(i\\(nfo\\)?\\)?" 696 (append '(".[ch]\\(\\+\\+\\|pp\\|c\\|h\\|xx\\)?" ".tex\\(i\\(nfo\\)?\\)?"
697 ".el" ".emacs" ".l" ".lsp" ".p" ".java" ".js" ".f\\(90\\|77\\|or\\)?") 697 ".el" ".emacs" ".l" ".lsp" ".p" ".java" ".js" ".f\\(90\\|77\\|or\\)?")
698 (if speedbar-use-imenu-flag 698 (if speedbar-use-imenu-flag
699 '(".ada" ".p[lm]" ".tcl" ".m" ".scm" ".pm" ".py" ".g" 699 '(".ad[abs]" ".p[lm]" ".tcl" ".m" ".scm" ".pm" ".py" ".g"
700 ;; html is not supported by default, but an imenu tags package 700 ;; html is not supported by default, but an imenu tags package
701 ;; is available. Also, html files are nice to be able to see. 701 ;; is available. Also, html files are nice to be able to see.
702 ".s?html" 702 ".s?html"
@@ -1862,7 +1862,7 @@ of the special mode functions."
1862 (if (not v) 1862 (if (not v)
1863 (setq speedbar-special-mode-expansion-list t) 1863 (setq speedbar-special-mode-expansion-list t)
1864 ;; If it is autoloaded, we need to load it now so that 1864 ;; If it is autoloaded, we need to load it now so that
1865 ;; we have access to the varialbe -speedbar-menu-items. 1865 ;; we have access to the variable -speedbar-menu-items.
1866 ;; Is this XEmacs safe? 1866 ;; Is this XEmacs safe?
1867 (let ((sf (symbol-function v))) 1867 (let ((sf (symbol-function v)))
1868 (if (and (listp sf) (eq (car sf) 'autoload)) 1868 (if (and (listp sf) (eq (car sf) 'autoload))
diff --git a/lisp/term.el b/lisp/term.el
index 484bc36363e..47cda9beeed 100644
--- a/lisp/term.el
+++ b/lisp/term.el
@@ -37,8 +37,8 @@
37;; -------------------------------------- 37;; --------------------------------------
38;; 38;;
39;; While the message passing and the colorization surely introduce some 39;; While the message passing and the colorization surely introduce some
40;; overhead this has became so small that IMHO is surely outweighted by 40;; overhead this has became so small that IMHO it is surely outweighed by
41;; the benefits you get but, as usual, YMMV 41;; the benefits you get but, as usual, YMMV.
42;; 42;;
43;; Important caveat, when deciding the cursor/'gray keys' keycodes I had to 43;; Important caveat, when deciding the cursor/'gray keys' keycodes I had to
44;; make a choice: on my Linux box this choice allows me to run all the 44;; make a choice: on my Linux box this choice allows me to run all the
diff --git a/lisp/term/ns-win.el b/lisp/term/ns-win.el
index b639af7cda0..df0ddd7de8b 100644
--- a/lisp/term/ns-win.el
+++ b/lisp/term/ns-win.el
@@ -702,19 +702,24 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.")
702 702
703;;;; Pasteboard support. 703;;;; Pasteboard support.
704 704
705(declare-function ns-get-cut-buffer-internal "nsselect.m" (buffer)) 705(declare-function ns-get-selection-internal "nsselect.m" (buffer))
706(declare-function ns-store-selection-internal "nsselect.m" (buffer string))
707
708(define-obsolete-function-alias 'ns-get-cut-buffer-internal
709 'ns-get-selection-internal "24.1")
710(define-obsolete-function-alias 'ns-store-cut-buffer-internal
711 'ns-store-selection-internal "24.1")
712
706 713
707(defun ns-get-pasteboard () 714(defun ns-get-pasteboard ()
708 "Returns the value of the pasteboard." 715 "Returns the value of the pasteboard."
709 (ns-get-cut-buffer-internal 'CLIPBOARD)) 716 (ns-get-selection-internal 'CLIPBOARD))
710
711(declare-function ns-store-cut-buffer-internal "nsselect.m" (buffer string))
712 717
713(defun ns-set-pasteboard (string) 718(defun ns-set-pasteboard (string)
714 "Store STRING into the pasteboard of the Nextstep display server." 719 "Store STRING into the pasteboard of the Nextstep display server."
715 ;; Check the data type of STRING. 720 ;; Check the data type of STRING.
716 (if (not (stringp string)) (error "Nonstring given to pasteboard")) 721 (if (not (stringp string)) (error "Nonstring given to pasteboard"))
717 (ns-store-cut-buffer-internal 'CLIPBOARD string)) 722 (ns-store-selection-internal 'CLIPBOARD string))
718 723
719;; We keep track of the last text selected here, so we can check the 724;; We keep track of the last text selected here, so we can check the
720;; current selection against it, and avoid passing back our own text 725;; current selection against it, and avoid passing back our own text
@@ -742,11 +747,11 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.")
742(defun ns-copy-including-secondary () 747(defun ns-copy-including-secondary ()
743 (interactive) 748 (interactive)
744 (call-interactively 'kill-ring-save) 749 (call-interactively 'kill-ring-save)
745 (ns-store-cut-buffer-internal 'SECONDARY 750 (ns-store-selection-internal 'SECONDARY
746 (buffer-substring (point) (mark t)))) 751 (buffer-substring (point) (mark t))))
747(defun ns-paste-secondary () 752(defun ns-paste-secondary ()
748 (interactive) 753 (interactive)
749 (insert (ns-get-cut-buffer-internal 'SECONDARY))) 754 (insert (ns-get-selection-internal 'SECONDARY)))
750 755
751 756
752;;;; Scrollbar handling. 757;;;; Scrollbar handling.
diff --git a/lisp/term/rxvt.el b/lisp/term/rxvt.el
index c784892ce6b..c64dc0e7a19 100644
--- a/lisp/term/rxvt.el
+++ b/lisp/term/rxvt.el
@@ -228,7 +228,7 @@ for the currently selected frame."
228 ;; 216 non-gray colors first 228 ;; 216 non-gray colors first
229 (let ((r 0) (g 0) (b 0)) 229 (let ((r 0) (g 0) (b 0))
230 (while (> ncolors 24) 230 (while (> ncolors 24)
231 ;; This and other formulae taken from 256colres.pl and 231 ;; This and other formulas taken from 256colres.pl and
232 ;; 88colres.pl in the xterm distribution. 232 ;; 88colres.pl in the xterm distribution.
233 (tty-color-define (format "color-%d" (- 256 ncolors)) 233 (tty-color-define (format "color-%d" (- 256 ncolors))
234 (- 256 ncolors) 234 (- 256 ncolors)
diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el
index 05e18ed24a0..ac0f833da63 100644
--- a/lisp/term/x-win.el
+++ b/lisp/term/x-win.el
@@ -126,7 +126,7 @@ a file in the home directory."
126 126
127(defun emacs-session-save () 127(defun emacs-session-save ()
128 "This function is called when the window system is shutting down. 128 "This function is called when the window system is shutting down.
129If this function returns non-nil, the window system shutdown is cancelled. 129If this function returns non-nil, the window system shutdown is canceled.
130 130
131When a session manager tells Emacs that the window system is shutting 131When a session manager tells Emacs that the window system is shutting
132down, this function is called. It calls the functions in the hook 132down, this function is called. It calls the functions in the hook
diff --git a/lisp/term/xterm.el b/lisp/term/xterm.el
index c2856660ea8..f9d11cb2685 100644
--- a/lisp/term/xterm.el
+++ b/lisp/term/xterm.el
@@ -637,7 +637,7 @@ versions of xterm."
637 ;; 216 non-gray colors first 637 ;; 216 non-gray colors first
638 (let ((r 0) (g 0) (b 0)) 638 (let ((r 0) (g 0) (b 0))
639 (while (> ncolors 24) 639 (while (> ncolors 24)
640 ;; This and other formulae taken from 256colres.pl and 640 ;; This and other formulas taken from 256colres.pl and
641 ;; 88colres.pl in the xterm distribution. 641 ;; 88colres.pl in the xterm distribution.
642 (tty-color-define (format "color-%d" (- 256 ncolors)) 642 (tty-color-define (format "color-%d" (- 256 ncolors))
643 (- 256 ncolors) 643 (- 256 ncolors)
diff --git a/lisp/textmodes/artist.el b/lisp/textmodes/artist.el
index 0efabc2135a..2e90a4bf241 100644
--- a/lisp/textmodes/artist.el
+++ b/lisp/textmodes/artist.el
@@ -3960,11 +3960,11 @@ The 2-point shape SHAPE is drawn from X1, Y1 to X2, Y2."
3960;; Implementation note: This really should honor the interval-fn entry 3960;; Implementation note: This really should honor the interval-fn entry
3961;; in the master table, `artist-mt', which would mean leaving a timer 3961;; in the master table, `artist-mt', which would mean leaving a timer
3962;; that calls `draw-fn' every now and then. That timer would then have 3962;; that calls `draw-fn' every now and then. That timer would then have
3963;; to be cancelled and reinstalled whenever the user moves the cursor. 3963;; to be canceled and reinstalled whenever the user moves the cursor.
3964;; This could be done, but what if the user suddenly switches to another 3964;; This could be done, but what if the user suddenly switches to another
3965;; drawing mode, or even kills the buffer! In the mouse case, it is much 3965;; drawing mode, or even kills the buffer! In the mouse case, it is much
3966;; simpler: when at the end of `artist-mouse-draw-continously', the 3966;; simpler: when at the end of `artist-mouse-draw-continously', the
3967;; user has released the button, so the timer will always be cancelled 3967;; user has released the button, so the timer will always be canceled
3968;; at that point. 3968;; at that point.
3969(defun artist-key-draw-continously (x y) 3969(defun artist-key-draw-continously (x y)
3970 "Draw current continuous shape at X,Y." 3970 "Draw current continuous shape at X,Y."
@@ -4455,7 +4455,7 @@ If N is negative, move backward."
4455 "Set current fill character to be C." 4455 "Set current fill character to be C."
4456 (interactive "cType fill char (type RET to turn off): ") 4456 (interactive "cType fill char (type RET to turn off): ")
4457 (cond ((eq c ?\r) (setq artist-fill-char-set nil) 4457 (cond ((eq c ?\r) (setq artist-fill-char-set nil)
4458 (message "Fill cancelled")) 4458 (message "Fill canceled"))
4459 (t (setq artist-fill-char-set t) 4459 (t (setq artist-fill-char-set t)
4460 (setq artist-fill-char c) 4460 (setq artist-fill-char c)
4461 (message "Fill set to \"%c\"" c)))) 4461 (message "Fill set to \"%c\"" c))))
@@ -5589,7 +5589,7 @@ The event, EV, is the mouse event."
5589;; of drawing mode. 5589;; of drawing mode.
5590;; 5590;;
5591;; You should provide these functions. You might think that 5591;; You should provide these functions. You might think that
5592;; only you is using your type of mode, so noone will be able 5592;; only you is using your type of mode, so no one will be able
5593;; to switch to another operation of the same type of mode, 5593;; to switch to another operation of the same type of mode,
5594;; but someone else might base a new drawing mode upon your 5594;; but someone else might base a new drawing mode upon your
5595;; work. 5595;; work.
diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el
index b8614b16f82..610b0c71357 100644
--- a/lisp/textmodes/fill.el
+++ b/lisp/textmodes/fill.el
@@ -82,7 +82,7 @@ reinserts the fill prefix in each resulting line."
82 (setq fill-prefix nil))) 82 (setq fill-prefix nil)))
83 (if fill-prefix 83 (if fill-prefix
84 (message "fill-prefix: \"%s\"" fill-prefix) 84 (message "fill-prefix: \"%s\"" fill-prefix)
85 (message "fill-prefix cancelled"))) 85 (message "fill-prefix canceled")))
86 86
87(defcustom adaptive-fill-mode t 87(defcustom adaptive-fill-mode t
88 "Non-nil means determine a paragraph's fill prefix from its text." 88 "Non-nil means determine a paragraph's fill prefix from its text."
@@ -383,7 +383,7 @@ and `fill-nobreak-invisible'."
383 "Char-table of characters that don't use space between words.") 383 "Char-table of characters that don't use space between words.")
384 384
385(progn 385(progn
386 ;; Register `kinsoku' for scripts HAN, KANA, BOPOMPFO, and CJK-MISS. 386 ;; Register `kinsoku' for scripts HAN, KANA, BOPOMOFO, and CJK-MISC.
387 ;; Also tell that they don't use space between words. 387 ;; Also tell that they don't use space between words.
388 (map-char-table 388 (map-char-table
389 #'(lambda (key val) 389 #'(lambda (key val)
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index d0967d63740..ba7b84fe1dd 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -2499,7 +2499,7 @@ scrolling the current window. Leave the new window selected."
2499 ;; hidden by new window, scroll it to just below new win 2499 ;; hidden by new window, scroll it to just below new win
2500 ;; otherwise set top line of other win so it doesn't scroll. 2500 ;; otherwise set top line of other win so it doesn't scroll.
2501 (if (< oldot top) (setq top oldot)) 2501 (if (< oldot top) (setq top oldot))
2502 ;; if frame is unsplitable, temporarily disable that... 2502 ;; if frame is unsplittable, temporarily disable that...
2503 (if (cdr (assq 'unsplittable (frame-parameters (selected-frame)))) 2503 (if (cdr (assq 'unsplittable (frame-parameters (selected-frame))))
2504 (let ((frame (selected-frame))) 2504 (let ((frame (selected-frame)))
2505 (modify-frame-parameters frame '((unsplittable . nil))) 2505 (modify-frame-parameters frame '((unsplittable . nil)))
@@ -3979,7 +3979,7 @@ Both should not be used to define a buffer-local dictionary."
3979; LocalWords: AMStex hspace includeonly nocite epsfig displaymath eqnarray reg 3979; LocalWords: AMStex hspace includeonly nocite epsfig displaymath eqnarray reg
3980; LocalWords: minipage modeline pers dict unhighlight buf grep sync prev inc 3980; LocalWords: minipage modeline pers dict unhighlight buf grep sync prev inc
3981; LocalWords: fn oldot NB AIX msg init read's bufs pt cmd Quinlan eg 3981; LocalWords: fn oldot NB AIX msg init read's bufs pt cmd Quinlan eg
3982; LocalWords: uuencoded unidiff sc nn VM SGML eval IspellPersDict unsplitable 3982; LocalWords: uuencoded unidiff sc nn VM SGML eval IspellPersDict
3983; LocalWords: lns XEmacs HTML casechars Multibyte 3983; LocalWords: lns XEmacs HTML casechars Multibyte
3984 3984
3985;;; ispell.el ends here 3985;;; ispell.el ends here
diff --git a/lisp/textmodes/picture.el b/lisp/textmodes/picture.el
index 678d48758da..3356ce195f2 100644
--- a/lisp/textmodes/picture.el
+++ b/lisp/textmodes/picture.el
@@ -742,7 +742,7 @@ by supplying an argument.
742Entry to this mode calls the value of `picture-mode-hook' if non-nil. 742Entry to this mode calls the value of `picture-mode-hook' if non-nil.
743 743
744Note that Picture mode commands will work outside of Picture mode, but 744Note that Picture mode commands will work outside of Picture mode, but
745they are not defaultly assigned to keys." 745they are not by default assigned to keys."
746 (interactive) 746 (interactive)
747 (if (eq major-mode 'picture-mode) 747 (if (eq major-mode 'picture-mode)
748 (error "You are already editing a picture") 748 (error "You are already editing a picture")
diff --git a/lisp/textmodes/reftex-dcr.el b/lisp/textmodes/reftex-dcr.el
index ff6ffffc382..2aecc34e2b0 100644
--- a/lisp/textmodes/reftex-dcr.el
+++ b/lisp/textmodes/reftex-dcr.el
@@ -212,7 +212,7 @@ to the functions `reftex-view-cr-cite' and `reftex-view-cr-ref'."
212 (add-hook 'pre-command-hook 'reftex-highlight-shall-die) 212 (add-hook 'pre-command-hook 'reftex-highlight-shall-die)
213 213
214 (when (eq how 'tmp-window) 214 (when (eq how 'tmp-window)
215 ;; Resize window and arrange restauration 215 ;; Resize window and arrange restoration
216 (shrink-window (1- (- (window-height) 9))) 216 (shrink-window (1- (- (window-height) 9)))
217 (recenter '(4)) 217 (recenter '(4))
218 (add-hook 'pre-command-hook 'reftex-restore-window-conf)) 218 (add-hook 'pre-command-hook 'reftex-restore-window-conf))
diff --git a/lisp/textmodes/remember.el b/lisp/textmodes/remember.el
index 07a4fae9c30..c184a90dfc2 100644
--- a/lisp/textmodes/remember.el
+++ b/lisp/textmodes/remember.el
@@ -474,7 +474,7 @@ If this is nil, then `diary-file' will be used instead."
474 (replace-match 474 (replace-match
475 (let ((style (if (boundp 'calendar-date-style) 475 (let ((style (if (boundp 'calendar-date-style)
476 calendar-date-style 476 calendar-date-style
477 ;; Don't complain about obsoleteness. 477 ;; Don't complain about obsolescence.
478 (if (with-no-warnings european-calendar-style) 478 (if (with-no-warnings european-calendar-style)
479 'european 479 'european
480 'american)))) 480 'american))))
diff --git a/lisp/textmodes/rst.el b/lisp/textmodes/rst.el
index 64dffe78d50..f2dba1575c2 100644
--- a/lisp/textmodes/rst.el
+++ b/lisp/textmodes/rst.el
@@ -243,7 +243,7 @@
243 (define-key map [(control ?=)] 'rst-adjust) ;; (Does not work on the Mac OSX.) 243 (define-key map [(control ?=)] 'rst-adjust) ;; (Does not work on the Mac OSX.)
244 ;; Display the hierarchy of decorations implied by the current document contents. 244 ;; Display the hierarchy of decorations implied by the current document contents.
245 (define-key map [(control c) (control h)] 'rst-display-decorations-hierarchy) 245 (define-key map [(control c) (control h)] 'rst-display-decorations-hierarchy)
246 ;; Homogeneize the decorations in the document. 246 ;; Homogenize the decorations in the document.
247 (define-key map [(control c) (control s)] 'rst-straighten-decorations) 247 (define-key map [(control c) (control s)] 'rst-straighten-decorations)
248;; (define-key map [(control c) (control s)] 'rst-straighten-deco-spacing) 248;; (define-key map [(control c) (control s)] 'rst-straighten-deco-spacing)
249 249
diff --git a/lisp/textmodes/table.el b/lisp/textmodes/table.el
index 65f6d98ef79..6f9e592d8ed 100644
--- a/lisp/textmodes/table.el
+++ b/lisp/textmodes/table.el
@@ -345,7 +345,7 @@
345;; Above code is well known ~/.emacs idiom for customizing a mode 345;; Above code is well known ~/.emacs idiom for customizing a mode
346;; specific keymap however it does not work for this package. This is 346;; specific keymap however it does not work for this package. This is
347;; because there is no table mode in effect. This package does not 347;; because there is no table mode in effect. This package does not
348;; use a local map therefor you must modify `table-cell-map' 348;; use a local map therefore you must modify `table-cell-map'
349;; explicitly. The correct way of achieving above task is: 349;; explicitly. The correct way of achieving above task is:
350;; 350;;
351;; (add-hook 'table-cell-map-hook 351;; (add-hook 'table-cell-map-hook
@@ -2155,7 +2155,7 @@ specified."
2155(defun table-shorten-cell (n) 2155(defun table-shorten-cell (n)
2156 "Shorten the current cell by N lines by shrinking the cell vertically. 2156 "Shorten the current cell by N lines by shrinking the cell vertically.
2157Shortening is done by removing blank lines from the bottom of the cell 2157Shortening is done by removing blank lines from the bottom of the cell
2158and possibly from the top of the cell as well. Therefor, the cell 2158and possibly from the top of the cell as well. Therefore, the cell
2159must have some bottom/top blank lines to be shorten effectively. This 2159must have some bottom/top blank lines to be shorten effectively. This
2160is applicable to all the cells aligned horizontally with the current 2160is applicable to all the cells aligned horizontally with the current
2161one because they are also shortened in order to keep the rectangular 2161one because they are also shortened in order to keep the rectangular
@@ -4293,7 +4293,7 @@ cache buffer into the designated cell in the table buffer."
4293 (car (table--get-coordinate (cdr (table--horizontal-cell-list nil t)))) 4293 (car (table--get-coordinate (cdr (table--horizontal-cell-list nil t))))
4294 (1+ (cdr (table--get-coordinate (cdr (table--vertical-cell-list nil t)))))))) 4294 (1+ (cdr (table--get-coordinate (cdr (table--vertical-cell-list nil t))))))))
4295 4295
4296(defun table-call-interactively (function &optional recoard-flag keys) 4296(defun table-call-interactively (function &optional record-flag keys)
4297 "Call FUNCTION, or a table version of it if applicable. 4297 "Call FUNCTION, or a table version of it if applicable.
4298See `call-interactively' for full description of the arguments." 4298See `call-interactively' for full description of the arguments."
4299 (let ((table-func (intern-soft (format "*table--cell-%s" function)))) 4299 (let ((table-func (intern-soft (format "*table--cell-%s" function))))
@@ -4301,7 +4301,7 @@ See `call-interactively' for full description of the arguments."
4301 (if (and table-func 4301 (if (and table-func
4302 (table--point-in-cell-p)) 4302 (table--point-in-cell-p))
4303 table-func 4303 table-func
4304 function) recoard-flag keys))) 4304 function) record-flag keys)))
4305 4305
4306(defun table-funcall (function &rest arguments) 4306(defun table-funcall (function &rest arguments)
4307 "Call FUNCTION, or a table version of it if applicable. 4307 "Call FUNCTION, or a table version of it if applicable.
diff --git a/lisp/textmodes/texinfmt.el b/lisp/textmodes/texinfmt.el
index a337d6f9f40..b186b02851d 100644
--- a/lisp/textmodes/texinfmt.el
+++ b/lisp/textmodes/texinfmt.el
@@ -2088,11 +2088,11 @@ This command is executed when texinfmt sees @item inside @multitable."
2088 (table-entry-height 0) 2088 (table-entry-height 0)
2089 ;; unformatted row looks like: A1 @tab A2 @tab A3 2089 ;; unformatted row looks like: A1 @tab A2 @tab A3
2090 ;; extract-row command deletes the source line in the table. 2090 ;; extract-row command deletes the source line in the table.
2091 (unformated-row (texinfo-multitable-extract-row))) 2091 (unformatted-row (texinfo-multitable-extract-row)))
2092 ;; Use a temporary buffer 2092 ;; Use a temporary buffer
2093 (set-buffer (get-buffer-create texinfo-multitable-buffer-name)) 2093 (set-buffer (get-buffer-create texinfo-multitable-buffer-name))
2094 (delete-region (point-min) (point-max)) 2094 (delete-region (point-min) (point-max))
2095 (insert unformated-row) 2095 (insert unformatted-row)
2096 (goto-char (point-min)) 2096 (goto-char (point-min))
2097;; 1. Check for correct number of @tab in line. 2097;; 1. Check for correct number of @tab in line.
2098 (let ((tab-number 1)) ; one @tab between two columns 2098 (let ((tab-number 1)) ; one @tab between two columns
diff --git a/lisp/textmodes/texnfo-upd.el b/lisp/textmodes/texnfo-upd.el
index 047bba72ccd..69d68a76d4b 100644
--- a/lisp/textmodes/texnfo-upd.el
+++ b/lisp/textmodes/texnfo-upd.el
@@ -23,7 +23,9 @@
23 23
24;;; Commentary: 24;;; Commentary:
25 25
26;; Known bug: update commands fail to ignore @ignore. 26;; Known bug: update commands fail to ignore @ignore, and fail to DTRT
27;; with the @if... directives (so expect trouble when the manual uses
28;; different @node lines or @menu items in @iftex and in @ifnottex).
27 29
28;; Summary: how to use the updating commands 30;; Summary: how to use the updating commands
29 31
@@ -37,6 +39,16 @@
37;; With a prefix argument, the `texinfo-update-node' and 39;; With a prefix argument, the `texinfo-update-node' and
38;; `texinfo-make-menu' functions do their jobs in the region. 40;; `texinfo-make-menu' functions do their jobs in the region.
39;; 41;;
42;; Important note: We do NOT recommend use of these commands to update
43;; the `Next', `Previous' and `Up' pointers on @node lines. Most
44;; manuals, including those whose Texinfo files adhere to the strucure
45;; described below, don't need these pointers, because makeinfo will
46;; generate them automatically (see the node "makeinfo Pointer
47;; Creation" in the Texinfo manual). By contrast, due to known bugs
48;; described above, texinfo-update-node etc. could produce incorrect
49;; pointers, and thus make a perfectly valid Texinfo file into an
50;; invalid one. You _have_ been warned!
51;;
40;; In brief, the functions for creating or updating nodes and menus, are: 52;; In brief, the functions for creating or updating nodes and menus, are:
41;; 53;;
42;; texinfo-update-node (&optional beginning end) 54;; texinfo-update-node (&optional beginning end)
@@ -89,6 +101,16 @@
89;; It does not matter whether the `@node' line has pre-existing 101;; It does not matter whether the `@node' line has pre-existing
90;; `Next', `Previous', or `Up' pointers in it. They are removed. 102;; `Next', `Previous', or `Up' pointers in it. They are removed.
91 103
104;; Warning: Since the pre-existing pointers are replaced with the ones
105;; computed by `texinfo-update-node', and since this function has
106;; known bugs with the more advanced Texinfo features (see above), it
107;; could produce an invalid Texinfo file. You are well advised not to
108;; use this function, except if you know what you are doing and
109;; exercise extreme caution. Keep in mind that most manuals do not
110;; need the `Next', `Previous', and `Up' pointers to be present on the
111;; @node lines; makeinfo will automatically generate them when it
112;; produces the Info or HTML versions of the manual.
113
92;; The `texinfo-every-node-update' function runs `texinfo-update-node' 114;; The `texinfo-every-node-update' function runs `texinfo-update-node'
93;; on the whole buffer. 115;; on the whole buffer.
94 116
@@ -119,12 +141,15 @@
119;; on the whole buffer. 141;; on the whole buffer.
120 142
121;; The `texinfo-master-menu' function creates an extended menu located 143;; The `texinfo-master-menu' function creates an extended menu located
122;; after the top node. (The file must have a top node.) The function 144;; after the top node. (The file must have a top node.) This
123;; first updates all the regular menus in the buffer (incorporating the 145;; function works only on Texinfo files all of whose menus are
124;; descriptions from pre-existing menus), and then constructs a master 146;; present in a single file; use `texinfo-multiple-files-update' for
125;; menu that includes every entry from every other menu. (However, the 147;; multi-file manuals. The function constructs a master menu that
126;; function cannot update an already existing master menu; if one 148;; includes every entry from every other menu. Use this command to
127;; exists, it must be removed before calling the function.) 149;; create or update the @detailmenu menu after you've created or
150;; updated all the menus in the file, including the menu in the Top
151;; node, using the `texinfo-make-menu' or the `texinfo-all-menus-update'
152;; command.
128 153
129;; The `texinfo-indent-menu-description' function indents every 154;; The `texinfo-indent-menu-description' function indents every
130;; description in the menu following point, to the specified column. 155;; description in the menu following point, to the specified column.
@@ -142,7 +167,7 @@
142;; as node names in pre-existing `@node' lines that lack names. 167;; as node names in pre-existing `@node' lines that lack names.
143;; 168;;
144;; Since node names should be more concise than section or chapter 169;; Since node names should be more concise than section or chapter
145;; titles, node names so inserted will need to be edited manually. 170;; titles, you will usually want to manually edit node names so inserted.
146 171
147 172
148;;; Code: 173;;; Code:
@@ -330,8 +355,13 @@ at the level specified by LEVEL. Point is left at the end of menu."
330 "Update every regular menu in a Texinfo file. 355 "Update every regular menu in a Texinfo file.
331Update pre-existing master menu, if there is one. 356Update pre-existing master menu, if there is one.
332 357
358Only single-file manuals are supported by this function. For
359multi-file manuals, use `texinfo-multiple-files-update'.
360
333If called with a non-nil argument, this function first updates all the 361If called with a non-nil argument, this function first updates all the
334nodes in the buffer before updating the menus. 362nodes in the buffer before updating the menus. Do NOT invoke this
363command with an argument if your Texinfo file uses @node lines without
364the `Next', `Previous', and `Up' pointers!
335 365
336Indents the first line of descriptions, and leaves trailing whitespace 366Indents the first line of descriptions, and leaves trailing whitespace
337in a menu that lacks descriptions, so descriptions will format well. 367in a menu that lacks descriptions, so descriptions will format well.
@@ -843,20 +873,35 @@ second and subsequent lines of a multi-line description."
843 873
844(defun texinfo-master-menu (update-all-nodes-menus-p) 874(defun texinfo-master-menu (update-all-nodes-menus-p)
845 "Make a master menu for a whole Texinfo file. 875 "Make a master menu for a whole Texinfo file.
846Non-nil argument (prefix, if interactive) means first update all 876Remove pre-existing master menu, if there is one.
847existing nodes and menus. Remove pre-existing master menu, if there is one. 877
848 878This function supports only single-file manuals. For multi-file
849This function creates a master menu that follows the top node. The 879manuals, use `texinfo-multiple-files-update'.
850master menu includes every entry from all the other menus. It 880
851replaces any existing ordinary menu that follows the top node. 881This function creates or updates the @detailmenu section of a
852 882master menu that follows the Top node. It replaces any existing
853If called with a non-nil argument, this function first updates all the 883detailed menu that follows the top node. The detailed menu
854menus in the buffer (incorporating descriptions from pre-existing 884includes every entry from all the other menus. By default, the
855menus) before it constructs the master menu. 885existing menus, including the menu in the Top node, are not
856 886updated according to the buffer contents, so all the menus should
857The function removes the detailed part of an already existing master 887be updated first using `texinfo-make-menu' or
858menu. This action depends on the pre-existing master menu using the 888`texinfo-all-menus-update', which see. Alternatively, invoke
859standard `texinfo-master-menu-header'. 889this function with a prefix argument, see below.
890
891Non-nil, non-numeric argument (C-u prefix, if interactive) means
892first update all existing menus in the buffer (incorporating
893descriptions from pre-existing menus) before it constructs the
894master menu. If the argument is numeric (e.g., \"C-u 2\"),
895update all existing nodes as well, by calling
896\`texinfo-update-node' on the entire file. Warning: do NOT
897invoke with a numeric argument if your Texinfo file uses @node
898lines without the `Next', `Previous', `Up' pointers, as the
899result could be an invalid Texinfo file!
900
901The function removes and recreates the detailed part of an already
902existing master menu. This action assumes that the pre-existing
903master menu uses the standard `texinfo-master-menu-header' for the
904detailed menu.
860 905
861The master menu has the following format, which is adapted from the 906The master menu has the following format, which is adapted from the
862recommendation in the Texinfo Manual: 907recommendation in the Texinfo Manual:
@@ -909,10 +954,11 @@ section titles are often too short to explain a node well."
909 954
910 (if update-all-nodes-menus-p 955 (if update-all-nodes-menus-p
911 (progn 956 (progn
912 (message "Making a master menu in %s ...first updating all nodes... " 957 (when (numberp update-all-nodes-menus-p)
913 (buffer-name)) 958 (message
914 (texinfo-update-node (point-min) (point-max)) 959 "Making a master menu in %s ...first updating all nodes... "
915 960 (buffer-name))
961 (texinfo-update-node (point-min) (point-max)))
916 (message "Updating all menus in %s ... " (buffer-name)) 962 (message "Updating all menus in %s ... " (buffer-name))
917 (texinfo-make-menu (point-min) (point-max)))) 963 (texinfo-make-menu (point-min) (point-max))))
918 964
@@ -978,7 +1024,7 @@ However, there does not need to be a title field."
978 (let ((first-chapter 1024 (let ((first-chapter
979 (save-excursion (re-search-forward "^@node\\|^@include") (point)))) 1025 (save-excursion (re-search-forward "^@node\\|^@include") (point))))
980 (unless (re-search-forward "^@menu" first-chapter t) 1026 (unless (re-search-forward "^@menu" first-chapter t)
981 (error "Buffer lacks ordinary `Top' menu in which to insert master"))) 1027 (error "Buffer lacks a menu in its first node; create it, then run me again")))
982 (beginning-of-line) 1028 (beginning-of-line)
983 (delete-region ; buffer must have ordinary top menu 1029 (delete-region ; buffer must have ordinary top menu
984 (point) 1030 (point)
@@ -1119,7 +1165,7 @@ error if the node is not the top node and a section is not found."
1119 "texinfo-specific-section-type: Chapter or section not found")))))) 1165 "texinfo-specific-section-type: Chapter or section not found"))))))
1120 1166
1121(defun texinfo-hierarchic-level () 1167(defun texinfo-hierarchic-level ()
1122 "Return the general hierarchal level of the next node in a texinfo file. 1168 "Return the general hierarchical level of the next node in a texinfo file.
1123Thus, a subheading or appendixsubsec is of type subsection." 1169Thus, a subheading or appendixsubsec is of type subsection."
1124 (let ((case-fold-search t)) 1170 (let ((case-fold-search t))
1125 (cadr (assoc 1171 (cadr (assoc
@@ -1207,6 +1253,11 @@ end of that region; it limits the search."
1207 "Without any prefix argument, update the node in which point is located. 1253 "Without any prefix argument, update the node in which point is located.
1208Interactively, a prefix argument means to operate on the region. 1254Interactively, a prefix argument means to operate on the region.
1209 1255
1256Warning: do NOT use this function if your Texinfo file uses @node
1257lines without the `Next', `Previous', `Up' pointers, because the
1258result could be an invalid Texinfo file due to known deficiencies
1259in this command: it does not support @ignore and @if* directives.
1260
1210The functions for creating or updating nodes and menus, and their 1261The functions for creating or updating nodes and menus, and their
1211keybindings, are: 1262keybindings, are:
1212 1263
@@ -1246,7 +1297,12 @@ which menu descriptions are indented. Its default value is 32."
1246 (message "Done...nodes updated in region. You may save the buffer.")))))) 1297 (message "Done...nodes updated in region. You may save the buffer."))))))
1247 1298
1248(defun texinfo-every-node-update () 1299(defun texinfo-every-node-update ()
1249 "Update every node in a Texinfo file." 1300 "Update every node in a Texinfo file.
1301
1302Warning: do NOT use this function if your Texinfo file uses @node
1303lines without the `Next', `Previous', `Up' pointers, because the
1304result could be an invalid Texinfo file due to known deficiencies
1305in this command: it does not support @ignore and @if* directives."
1250 (interactive) 1306 (interactive)
1251 (save-excursion 1307 (save-excursion
1252 (texinfo-update-node (point-min) (point-max)) 1308 (texinfo-update-node (point-min) (point-max))
@@ -1934,7 +1990,11 @@ With optional UPDATE-EVERYTHING argument (numeric prefix arg, if
1934interactive), update all the menus and all the `Next', `Previous', and 1990interactive), update all the menus and all the `Next', `Previous', and
1935`Up' pointers of all the files included in OUTER-FILE before inserting 1991`Up' pointers of all the files included in OUTER-FILE before inserting
1936a master menu in OUTER-FILE. Also, update the `Top' level node 1992a master menu in OUTER-FILE. Also, update the `Top' level node
1937pointers of OUTER-FILE. 1993pointers of OUTER-FILE. Do NOT invoke this command with a numeric prefix
1994arg, if your files use @node lines without the `Next', `Previous', `Up'
1995pointers, because this could produce invalid Texinfo files due to known
1996deficiencies in `texinfo-update-node': it does not support the @ignore
1997and @if... directives.
1938 1998
1939Notes: 1999Notes:
1940 2000
diff --git a/lisp/time.el b/lisp/time.el
index ac4a011bdf8..4955b177545 100644
--- a/lisp/time.el
+++ b/lisp/time.el
@@ -369,7 +369,7 @@ would give mode line times like `94/12/30 21:07:48 (UTC)'."
369 nil))) 369 nil)))
370 370
371(with-no-warnings 371(with-no-warnings
372 ;; Warnings are suppresed to avoid "global/dynamic var `X' lacks a prefix". 372 ;; Warnings are suppressed to avoid "global/dynamic var `X' lacks a prefix".
373 (defvar now) 373 (defvar now)
374 (defvar time) 374 (defvar time)
375 (defvar load) 375 (defvar load)
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog
index 48d2caf35f4..db28770ad0e 100644
--- a/lisp/url/ChangeLog
+++ b/lisp/url/ChangeLog
@@ -1673,7 +1673,7 @@
1673 (url-dav-process-DAV:activelock) 1673 (url-dav-process-DAV:activelock)
1674 (url-dav-process-DAV:lockdiscovery): Can now correctly parse 1674 (url-dav-process-DAV:lockdiscovery): Can now correctly parse
1675 DAV:lockdiscovery nodes, so that we can find out who has a 1675 DAV:lockdiscovery nodes, so that we can find out who has a
1676 resource locked and properly parse the reponse to a LOCK request. 1676 resource locked and properly parse the response to a LOCK request.
1677 (url-dav-process-DAV:status): Now parses out the numeric status 1677 (url-dav-process-DAV:status): Now parses out the numeric status
1678 from the HTTP response line. 1678 from the HTTP response line.
1679 (url-dav-process-response): New function to handle all the 1679 (url-dav-process-response): New function to handle all the
@@ -2448,7 +2448,7 @@
2448 * lisp/url-nfs.el (url-nfs-create-wrapper): New function to create 2448 * lisp/url-nfs.el (url-nfs-create-wrapper): New function to create
2449 wrappers onto the appropriate file-based URLs for file-name-handlers. 2449 wrappers onto the appropriate file-based URLs for file-name-handlers.
2450 2450
2451 * lisp/url-ftp.el: Moved the FTP stuff into it's own file - it 2451 * lisp/url-ftp.el: Moved the FTP stuff into its own file - it
2452 might get messy with file-name-handlers and things. 2452 might get messy with file-name-handlers and things.
2453 2453
2454 * lisp/url-http.el (url-http-clean-headers): Fix problem when 2454 * lisp/url-http.el (url-http-clean-headers): Fix problem when
diff --git a/lisp/url/url-cookie.el b/lisp/url/url-cookie.el
index f8417791ce5..746a4dc77b5 100644
--- a/lisp/url/url-cookie.el
+++ b/lisp/url/url-cookie.el
@@ -316,7 +316,7 @@ telling Microsoft that."
316 (set (if (> trusted untrusted) 'untrusted 'trusted) nil)) 316 (set (if (> trusted untrusted) 'untrusted 'trusted) nil))
317 (cond 317 (cond
318 (untrusted 318 (untrusted
319 ;; The site was explicity marked as untrusted by the user. 319 ;; The site was explicitly marked as untrusted by the user.
320 nil) 320 nil)
321 ((or (eq url-privacy-level 'paranoid) 321 ((or (eq url-privacy-level 'paranoid)
322 (and (listp url-privacy-level) (memq 'cookies url-privacy-level))) 322 (and (listp url-privacy-level) (memq 'cookies url-privacy-level)))
diff --git a/lisp/url/url-gw.el b/lisp/url/url-gw.el
index 7d80f2f6725..a3a384b7a90 100644
--- a/lisp/url/url-gw.el
+++ b/lisp/url/url-gw.el
@@ -72,12 +72,12 @@ This list will be executed as a command after logging in via telnet."
72 :group 'url-gateway) 72 :group 'url-gateway)
73 73
74(defcustom url-gateway-telnet-login-prompt "^\r*.?login:" 74(defcustom url-gateway-telnet-login-prompt "^\r*.?login:"
75 "Prompt that tells us we should send our username when loggin in w/telnet." 75 "Prompt that tells us we should send our username when logging in w/telnet."
76 :type 'regexp 76 :type 'regexp
77 :group 'url-gateway) 77 :group 'url-gateway)
78 78
79(defcustom url-gateway-telnet-password-prompt "^\r*.?password:" 79(defcustom url-gateway-telnet-password-prompt "^\r*.?password:"
80 "Prompt that tells us we should send our password when loggin in w/telnet." 80 "Prompt that tells us we should send our password when logging in w/telnet."
81 :type 'regexp 81 :type 'regexp
82 :group 'url-gateway) 82 :group 'url-gateway)
83 83
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el
index a9ff042d681..9b9bdb6416e 100644
--- a/lisp/url/url-http.el
+++ b/lisp/url/url-http.el
@@ -237,12 +237,12 @@ request.")
237 (if proxy-auth 237 (if proxy-auth
238 (setq proxy-auth (concat "Proxy-Authorization: " proxy-auth "\r\n"))) 238 (setq proxy-auth (concat "Proxy-Authorization: " proxy-auth "\r\n")))
239 239
240 ;; Protection against stupid values in the referer 240 ;; Protection against stupid values in the referrer
241 (if (and ref-url (stringp ref-url) (or (string= ref-url "file:nil") 241 (if (and ref-url (stringp ref-url) (or (string= ref-url "file:nil")
242 (string= ref-url ""))) 242 (string= ref-url "")))
243 (setq ref-url nil)) 243 (setq ref-url nil))
244 244
245 ;; We do not want to expose the referer if the user is paranoid. 245 ;; We do not want to expose the referrer if the user is paranoid.
246 (if (or (memq url-privacy-level '(low high paranoid)) 246 (if (or (memq url-privacy-level '(low high paranoid))
247 (and (listp url-privacy-level) 247 (and (listp url-privacy-level)
248 (memq 'lastloc url-privacy-level))) 248 (memq 'lastloc url-privacy-level)))
diff --git a/lisp/url/url-vars.el b/lisp/url/url-vars.el
index cfb98c6937e..19e0b621d87 100644
--- a/lisp/url/url-vars.el
+++ b/lisp/url/url-vars.el
@@ -62,7 +62,6 @@
62(mapc 'make-variable-buffer-local 62(mapc 'make-variable-buffer-local
63 '( 63 '(
64 url-current-object 64 url-current-object
65 url-current-referer
66 url-current-mime-headers 65 url-current-mime-headers
67 )) 66 ))
68 67
diff --git a/lisp/vc/ediff-init.el b/lisp/vc/ediff-init.el
index 787a8b7c0f1..d3db66a9e2a 100644
--- a/lisp/vc/ediff-init.el
+++ b/lisp/vc/ediff-init.el
@@ -370,7 +370,7 @@ It needs to be killed when we quit the session.")
370 this-command))) 370 this-command)))
371 371
372(defgroup ediff-highlighting nil 372(defgroup ediff-highlighting nil
373 "Hilighting of difference regions in Ediff." 373 "Highlighting of difference regions in Ediff."
374 :prefix "ediff-" 374 :prefix "ediff-"
375 :group 'ediff) 375 :group 'ediff)
376 376
diff --git a/lisp/vc/ediff-ptch.el b/lisp/vc/ediff-ptch.el
index ef273c610fe..6563dca5ec6 100644
--- a/lisp/vc/ediff-ptch.el
+++ b/lisp/vc/ediff-ptch.el
@@ -373,7 +373,7 @@ other files, enter /dev/null
373 (concat actual-dir (cdr proposed-file-names))))) 373 (concat actual-dir (cdr proposed-file-names)))))
374 )) 374 ))
375 ediff-patch-map) 375 ediff-patch-map)
376 ;; Check for the existing files in each pair and discard the nonexisting 376 ;; Check for the existing files in each pair and discard the nonexistent
377 ;; ones. If both exist, ask the user. 377 ;; ones. If both exist, ask the user.
378 (mapcar (lambda (session-info) 378 (mapcar (lambda (session-info)
379 (let* ((file1 (car (ediff-get-session-objA-name session-info))) 379 (let* ((file1 (car (ediff-get-session-objA-name session-info)))
diff --git a/lisp/vc/emerge.el b/lisp/vc/emerge.el
index 3ba5bcdb90a..bc4b0725c4e 100644
--- a/lisp/vc/emerge.el
+++ b/lisp/vc/emerge.el
@@ -1754,7 +1754,7 @@ to the left margin, if they are in windows."
1754;; If there are min-lines lines above and below the region, then don't do 1754;; If there are min-lines lines above and below the region, then don't do
1755;; anything. 1755;; anything.
1756;; If not, recenter the region to make it so. 1756;; If not, recenter the region to make it so.
1757;; If that isn't possible, remove context lines balancedly from top and bottom 1757;; If that isn't possible, remove context lines evenly from top and bottom
1758;; so the entire region shows. 1758;; so the entire region shows.
1759;; If that isn't possible, show the top of the region. 1759;; If that isn't possible, show the top of the region.
1760;; BEG must be at the beginning of a line. 1760;; BEG must be at the beginning of a line.
diff --git a/lisp/vc/pcvs.el b/lisp/vc/pcvs.el
index 256719d4c84..9a8be04fc38 100644
--- a/lisp/vc/pcvs.el
+++ b/lisp/vc/pcvs.el
@@ -322,7 +322,7 @@ The argument is added (or not) to the list of FLAGS and is constructed
322by appending the branch to ARG which defaults to \"-r\". 322by appending the branch to ARG which defaults to \"-r\".
323Since the `cvs-secondary-branch-prefix' is only active if the primary 323Since the `cvs-secondary-branch-prefix' is only active if the primary
324prefix is active, it is important to read the secondary prefix before 324prefix is active, it is important to read the secondary prefix before
325the primay since reading the primary can deactivate it." 325the primary since reading the primary can deactivate it."
326 (let ((branch (and (cvs-prefix-get 'cvs-branch-prefix 'read-only) 326 (let ((branch (and (cvs-prefix-get 'cvs-branch-prefix 'read-only)
327 (cvs-prefix-get 'cvs-secondary-branch-prefix)))) 327 (cvs-prefix-get 'cvs-secondary-branch-prefix))))
328 (if branch (cons (concat (or arg "-r") branch) flags) flags))) 328 (if branch (cons (concat (or arg "-r") branch) flags) flags)))
diff --git a/lisp/vc/vc-bzr.el b/lisp/vc/vc-bzr.el
index c5c0ce73b3a..508420f026a 100644
--- a/lisp/vc/vc-bzr.el
+++ b/lisp/vc/vc-bzr.el
@@ -764,7 +764,10 @@ REV non-nil gets an error."
764 764
765(defun vc-bzr-rename-file (old new) 765(defun vc-bzr-rename-file (old new)
766 "Rename file from OLD to NEW using `bzr mv'." 766 "Rename file from OLD to NEW using `bzr mv'."
767 (vc-bzr-command "mv" nil 0 new old)) 767 (setq old (expand-file-name old))
768 (setq new (expand-file-name new))
769 (vc-bzr-command "mv" nil 0 new old)
770 (message "Renamed %s => %s" old new))
768 771
769(defvar vc-bzr-annotation-table nil 772(defvar vc-bzr-annotation-table nil
770 "Internal use.") 773 "Internal use.")
diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el
index d4b631a1d1b..f14b8830d43 100644
--- a/lisp/vc/vc-dir.el
+++ b/lisp/vc/vc-dir.el
@@ -534,57 +534,71 @@ If a prefix argument is given, move by that many lines."
534 (save-excursion 534 (save-excursion
535 (goto-char (region-beginning)) 535 (goto-char (region-beginning))
536 (while (<= (line-number-at-pos) lastl) 536 (while (<= (line-number-at-pos) lastl)
537 (funcall mark-unmark-function)))) 537 (condition-case nil
538 (funcall mark-unmark-function)
539 ;; `vc-dir-mark-file' signals an error if we try marking
540 ;; a directory containing marked files in its tree, or a
541 ;; file in a marked directory tree. Just continue.
542 (error (vc-dir-next-line 1))))))
538 (funcall mark-unmark-function))) 543 (funcall mark-unmark-function)))
539 544
540(defun vc-dir-parent-marked-p (arg) 545(defun vc-dir-parent-marked-p (arg)
541 ;; Return nil if none of the parent directories of arg is marked. 546 ;; Non-nil iff a parent directory of arg is marked.
547 ;; Return value, if non-nil is the `ewoc-data' for the marked parent.
542 (let* ((argdir (vc-dir-node-directory arg)) 548 (let* ((argdir (vc-dir-node-directory arg))
543 (arglen (length argdir)) 549 (arglen (length argdir))
544 (crt arg) 550 (crt arg)
545 data dir) 551 (found nil))
546 ;; Go through the predecessors, checking if any directory that is 552 ;; Go through the predecessors, checking if any directory that is
547 ;; a parent is marked. 553 ;; a parent is marked.
548 (while (setq crt (ewoc-prev vc-ewoc crt)) 554 (while (and (null found)
549 (setq data (ewoc-data crt)) 555 (setq crt (ewoc-prev vc-ewoc crt)))
550 (setq dir (vc-dir-node-directory crt)) 556 (let ((data (ewoc-data crt))
551 (when (and (vc-dir-fileinfo->directory data) 557 (dir (vc-dir-node-directory crt)))
552 (vc-string-prefix-p dir argdir)) 558 (and (vc-dir-fileinfo->directory data)
553 (when (vc-dir-fileinfo->marked data) 559 (vc-string-prefix-p dir argdir)
554 (error "Cannot mark `%s', parent directory `%s' marked" 560 (vc-dir-fileinfo->marked data)
555 (vc-dir-fileinfo->name (ewoc-data arg)) 561 (setq found data))))
556 (vc-dir-fileinfo->name data))))) 562 found))
557 nil))
558 563
559(defun vc-dir-children-marked-p (arg) 564(defun vc-dir-children-marked-p (arg)
560 ;; Return nil if none of the children of arg is marked. 565 ;; Non-nil iff a child of ARG is marked.
566 ;; Return value, if non-nil, is the `ewoc-data' for the marked child.
561 (let* ((argdir-re (concat "\\`" (regexp-quote (vc-dir-node-directory arg)))) 567 (let* ((argdir-re (concat "\\`" (regexp-quote (vc-dir-node-directory arg))))
562 (is-child t) 568 (is-child t)
563 (crt arg) 569 (crt arg)
564 data dir) 570 (found nil))
565 (while (and is-child (setq crt (ewoc-next vc-ewoc crt))) 571 (while (and is-child
566 (setq data (ewoc-data crt)) 572 (null found)
567 (setq dir (vc-dir-node-directory crt)) 573 (setq crt (ewoc-next vc-ewoc crt)))
568 (if (string-match argdir-re dir) 574 (let ((data (ewoc-data crt))
569 (when (vc-dir-fileinfo->marked data) 575 (dir (vc-dir-node-directory crt)))
570 (error "Cannot mark `%s', child `%s' marked" 576 (if (string-match argdir-re dir)
571 (vc-dir-fileinfo->name (ewoc-data arg)) 577 (if (vc-dir-fileinfo->marked data)
572 (vc-dir-fileinfo->name data))) 578 (setq found data))
573 ;; We are done, we got to an entry that is not a child of `arg'. 579 ;; We are done, we got to an entry that is not a child of `arg'.
574 (setq is-child nil))) 580 (setq is-child nil))))
575 nil)) 581 found))
576 582
577(defun vc-dir-mark-file (&optional arg) 583(defun vc-dir-mark-file (&optional arg)
578 ;; Mark ARG or the current file and move to the next line. 584 ;; Mark ARG or the current file and move to the next line.
579 (let* ((crt (or arg (ewoc-locate vc-ewoc))) 585 (let* ((crt (or arg (ewoc-locate vc-ewoc)))
580 (file (ewoc-data crt)) 586 (file (ewoc-data crt))
581 (isdir (vc-dir-fileinfo->directory file))) 587 (isdir (vc-dir-fileinfo->directory file))
582 (when (or (and isdir (not (vc-dir-children-marked-p crt))) 588 ;; Forbid marking a directory containing marked files in its
583 (and (not isdir) (not (vc-dir-parent-marked-p crt)))) 589 ;; tree, or a file in a marked directory tree.
584 (setf (vc-dir-fileinfo->marked file) t) 590 (conflict (if isdir
585 (ewoc-invalidate vc-ewoc crt) 591 (vc-dir-children-marked-p crt)
586 (unless (or arg (mouse-event-p last-command-event)) 592 (vc-dir-parent-marked-p crt))))
587 (vc-dir-next-line 1))))) 593 (when conflict
594 (error (if isdir
595 "File `%s' in this directory is already marked"
596 "Parent directory `%s' is already marked")
597 (vc-dir-fileinfo->name conflict)))
598 (setf (vc-dir-fileinfo->marked file) t)
599 (ewoc-invalidate vc-ewoc crt)
600 (unless (or arg (mouse-event-p last-command-event))
601 (vc-dir-next-line 1))))
588 602
589(defun vc-dir-mark () 603(defun vc-dir-mark ()
590 "Mark the current file or all files in the region. 604 "Mark the current file or all files in the region.
@@ -621,19 +635,19 @@ share the same state."
621 (setf (vc-dir-fileinfo->marked filearg) t) 635 (setf (vc-dir-fileinfo->marked filearg) t)
622 t)) 636 t))
623 vc-ewoc)) 637 vc-ewoc))
624 (let ((data (ewoc-data (ewoc-locate vc-ewoc)))) 638 (let* ((crt (ewoc-locate vc-ewoc))
639 (data (ewoc-data crt)))
625 (if (vc-dir-fileinfo->directory data) 640 (if (vc-dir-fileinfo->directory data)
626 ;; It's a directory, mark child files. 641 ;; It's a directory, mark child files.
627 (let ((crt (ewoc-locate vc-ewoc))) 642 (let (crt-data)
628 (unless (vc-dir-children-marked-p crt) 643 (while (and (setq crt (ewoc-next vc-ewoc crt))
629 (while (setq crt (ewoc-next vc-ewoc crt)) 644 (setq crt-data (ewoc-data crt))
630 (let ((crt-data (ewoc-data crt))) 645 (not (vc-dir-fileinfo->directory crt-data)))
631 (unless (vc-dir-fileinfo->directory crt-data) 646 (setf (vc-dir-fileinfo->marked crt-data) t)
632 (setf (vc-dir-fileinfo->marked crt-data) t) 647 (ewoc-invalidate vc-ewoc crt)))
633 (ewoc-invalidate vc-ewoc crt))))))
634 ;; It's a file 648 ;; It's a file
635 (let ((state (vc-dir-fileinfo->state data)) 649 (let ((state (vc-dir-fileinfo->state data)))
636 (crt (ewoc-nth vc-ewoc 0))) 650 (setq crt (ewoc-nth vc-ewoc 0))
637 (while crt 651 (while crt
638 (let ((crt-data (ewoc-data crt))) 652 (let ((crt-data (ewoc-data crt)))
639 (when (and (not (vc-dir-fileinfo->marked crt-data)) 653 (when (and (not (vc-dir-fileinfo->marked crt-data))
diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el
index 0516abbf024..7b90536a31b 100644
--- a/lisp/vc/vc-hg.el
+++ b/lisp/vc/vc-hg.el
@@ -216,7 +216,7 @@ highlighting the Log View buffer."
216 ((eq state ?R) 'removed) 216 ((eq state ?R) 'removed)
217 ((eq state ?!) 'missing) 217 ((eq state ?!) 'missing)
218 ((eq state ??) 'unregistered) 218 ((eq state ??) 'unregistered)
219 ((eq state ?C) 'up-to-date) ;; Older mercurials use this 219 ((eq state ?C) 'up-to-date) ;; Older mercurial versions use this.
220 (t 'up-to-date))))))) 220 (t 'up-to-date)))))))
221 221
222(defun vc-hg-working-revision (file) 222(defun vc-hg-working-revision (file)
diff --git a/lisp/vc/vc-hooks.el b/lisp/vc/vc-hooks.el
index 148f6cde930..c9e30772318 100644
--- a/lisp/vc/vc-hooks.el
+++ b/lisp/vc/vc-hooks.el
@@ -114,9 +114,9 @@ Otherwise, not displayed."
114 :group 'vc) 114 :group 'vc)
115 115
116(defcustom vc-keep-workfiles t 116(defcustom vc-keep-workfiles t
117 "If non-nil, don't delete working files after registering changes. 117 "Whether to keep work files on disk after commits, on a locking VCS.
118If the back-end is CVS, workfiles are always kept, regardless of the 118This variable has no effect on modern merging-based version
119value of this flag." 119control systems."
120 :type 'boolean 120 :type 'boolean
121 :group 'vc) 121 :group 'vc)
122 122
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index eea1a992094..87e8901e33a 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -951,13 +951,13 @@ Within directories, only files already under version control are noticed."
951(defun vc-deduce-fileset (&optional observer allow-unregistered 951(defun vc-deduce-fileset (&optional observer allow-unregistered
952 state-model-only-files) 952 state-model-only-files)
953 "Deduce a set of files and a backend to which to apply an operation. 953 "Deduce a set of files and a backend to which to apply an operation.
954
955Return (BACKEND FILESET FILESET-ONLY-FILES STATE CHECKOUT-MODEL). 954Return (BACKEND FILESET FILESET-ONLY-FILES STATE CHECKOUT-MODEL).
956If we're in VC-dir mode, the fileset is the list of marked files. 955
957Otherwise, if we're looking at a buffer visiting a version-controlled file, 956If we're in VC-dir mode, FILESET is the list of marked files.
958the fileset is a singleton containing this file. 957Otherwise, if in a buffer visiting a version-controlled file,
959If none of these conditions is met, but ALLOW_UNREGISTERED is on and the 958FILESET is a single-file fileset containing that file.
960visited file is not registered, return a singleton fileset containing it. 959Otherwise, if ALLOW-UNREGISTERED is non-nil and the visited file
960is unregistered, FILESET is a single-file fileset containing it.
961Otherwise, throw an error. 961Otherwise, throw an error.
962 962
963STATE-MODEL-ONLY-FILES if non-nil, means that the caller needs 963STATE-MODEL-ONLY-FILES if non-nil, means that the caller needs
@@ -1048,34 +1048,27 @@ current buffer."
1048;;;###autoload 1048;;;###autoload
1049(defun vc-next-action (verbose) 1049(defun vc-next-action (verbose)
1050 "Do the next logical version control operation on the current fileset. 1050 "Do the next logical version control operation on the current fileset.
1051This requires that all files in the fileset be in the same state. 1051This requires that all files in the current VC fileset be in the
1052 1052same state. If not, signal an error.
1053For locking systems: 1053
1054 If every file is not already registered, this registers each for version 1054For merging-based version control systems:
1055control. 1055 If every file in the VC fileset is not registered for version
1056 If every file is registered and not locked by anyone, this checks out 1056 control, register the fileset (but don't commit).
1057a writable and locked file of each ready for editing. 1057 If every work file in the VC fileset is added or changed, pop
1058 If every file is checked out and locked by the calling user, this 1058 up a *vc-log* buffer to commit the fileset.
1059first checks to see if each file has changed since checkout. If not, 1059 For a centralized version control system, if any work file in
1060it performs a revert on that file. 1060 the VC fileset is out of date, offer to update the fileset.
1061 If every file has been changed, this pops up a buffer for entry 1061
1062of a log message; when the message has been entered, it checks in the 1062For old-style locking-based version control systems, like RCS:
1063resulting changes along with the log message as change commentary. If 1063 If every file is not registered, register the file(s).
1064the variable `vc-keep-workfiles' is non-nil (which is its default), a 1064 If every file is registered and unlocked, check out (lock)
1065read-only copy of each changed file is left in place afterwards. 1065 the file(s) for editing.
1066 If the affected file is registered and locked by someone else, you are 1066 If every file is locked by you and has changes, pop up a
1067given the option to steal the lock(s). 1067 *vc-log* buffer to check in the changes. If the variable
1068 1068 `vc-keep-workfiles' is non-nil (the default), leave a
1069For merging systems: 1069 read-only copy of each changed file after checking in.
1070 If every file is not already registered, this registers each one for version 1070 If every file is locked by you and unchanged, unlock them.
1071control. This does an add, but not a commit. 1071 If every file is locked by someone else, offer to steal the lock."
1072 If every file is added but not committed, each one is committed.
1073 If every working file is changed, but the corresponding repository file is
1074unchanged, this pops up a buffer for entry of a log message; when the
1075message has been entered, it checks in the resulting changes along
1076with the logmessage as change commentary. A writable file is retained.
1077 If the repository file is changed, you are asked if you want to
1078merge in the changes into your working copy."
1079 (interactive "P") 1072 (interactive "P")
1080 (let* ((vc-fileset (vc-deduce-fileset nil t 'state-model-only-files)) 1073 (let* ((vc-fileset (vc-deduce-fileset nil t 'state-model-only-files))
1081 (backend (car vc-fileset)) 1074 (backend (car vc-fileset))
diff --git a/lisp/vcursor.el b/lisp/vcursor.el
index d4fc35920a9..b8673f2049f 100644
--- a/lisp/vcursor.el
+++ b/lisp/vcursor.el
@@ -223,7 +223,7 @@
223;; automatically for a PC if Oemacs is detected. This set uses separate 223;; automatically for a PC if Oemacs is detected. This set uses separate
224;; control, shift and meta keys with function keys 1 to 10. In 224;; control, shift and meta keys with function keys 1 to 10. In
225;; particular, movement keys are concentrated on f5 to f8 with (in 225;; particular, movement keys are concentrated on f5 to f8 with (in
226;; increasing order of distance travelled) C-, M- and S- as prefixes. 226;; increasing order of distance traveled) C-, M- and S- as prefixes.
227;; See the actual bindings below (search for C-f1). This is because the 227;; See the actual bindings below (search for C-f1). This is because the
228;; C-S- prefix is represented by weird key sequences and the set is 228;; C-S- prefix is represented by weird key sequences and the set is
229;; incomplete; if you don't mind that, some hints are given in comments 229;; incomplete; if you don't mind that, some hints are given in comments
diff --git a/lisp/view.el b/lisp/view.el
index a5349445964..0d8ad3336f9 100644
--- a/lisp/view.el
+++ b/lisp/view.el
@@ -481,7 +481,7 @@ Entry to view-mode runs the normal hook `view-mode-hook'."
481 ;; sets view-read-only to t as a buffer-local variable 481 ;; sets view-read-only to t as a buffer-local variable
482 ;; after exiting View mode. That arranges that the next toggle-read-only 482 ;; after exiting View mode. That arranges that the next toggle-read-only
483 ;; will reenable View mode. 483 ;; will reenable View mode.
484 ;; Cancelling View mode in any other way should cancel that, too, 484 ;; Canceling View mode in any other way should cancel that, too,
485 ;; so that View mode stays off if toggle-read-only is called. 485 ;; so that View mode stays off if toggle-read-only is called.
486 (if (local-variable-p 'view-read-only) 486 (if (local-variable-p 'view-read-only)
487 (kill-local-variable 'view-read-only)) 487 (kill-local-variable 'view-read-only))
@@ -496,7 +496,7 @@ Entry to view-mode runs the normal hook `view-mode-hook'."
496 "Update `view-return-to-alist' of buffer BUFFER. 496 "Update `view-return-to-alist' of buffer BUFFER.
497Remove from `view-return-to-alist' all entries referencing dead 497Remove from `view-return-to-alist' all entries referencing dead
498windows. Optional argument ITEM non-nil means add ITEM to 498windows. Optional argument ITEM non-nil means add ITEM to
499`view-return-to-alist' after purging. For a decsription of items 499`view-return-to-alist' after purging. For a description of items
500that can be added see the RETURN-TO-ALIST argument of the 500that can be added see the RETURN-TO-ALIST argument of the
501function `view-mode-exit'. If `view-return-to-alist' contains an 501function `view-mode-exit'. If `view-return-to-alist' contains an
502entry for the selected window, purge that entry from 502entry for the selected window, purge that entry from
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 8c4df9fc9cf..07eccaff4fb 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -295,10 +295,10 @@ minibuffer."
295 (error "Canceled")) 295 (error "Canceled"))
296 value)))) 296 value))))
297 297
298(defun widget-remove-if (predictate list) 298(defun widget-remove-if (predicate list)
299 (let (result (tail list)) 299 (let (result (tail list))
300 (while tail 300 (while tail
301 (or (funcall predictate (car tail)) 301 (or (funcall predicate (car tail))
302 (setq result (cons (car tail) result))) 302 (setq result (cons (car tail) result)))
303 (setq tail (cdr tail))) 303 (setq tail (cdr tail)))
304 (nreverse result))) 304 (nreverse result)))
@@ -577,7 +577,7 @@ This is only meaningful for radio buttons or checkboxes in a list."
577 "Map FUNCTION over the buttons in BUFFER. 577 "Map FUNCTION over the buttons in BUFFER.
578FUNCTION is called with the arguments WIDGET and MAPARG. 578FUNCTION is called with the arguments WIDGET and MAPARG.
579 579
580If FUNCTION returns non-nil, the walk is cancelled. 580If FUNCTION returns non-nil, the walk is canceled.
581 581
582The arguments MAPARG, and BUFFER default to nil and (current-buffer), 582The arguments MAPARG, and BUFFER default to nil and (current-buffer),
583respectively." 583respectively."
diff --git a/lisp/window.el b/lisp/window.el
index 69276a839bd..0014d85a816 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -296,7 +296,7 @@ is unpredictable."
296 "Return first window on FRAME with PARAMETER non-nil. 296 "Return first window on FRAME with PARAMETER non-nil.
297FRAME defaults to the selected frame. Optional argument VALUE 297FRAME defaults to the selected frame. Optional argument VALUE
298non-nil means only return a window whose window-parameter value 298non-nil means only return a window whose window-parameter value
299for PARAMETER equals VALUE \(comparison is done with `equal'). 299for PARAMETER equals VALUE (comparison is done with `equal').
300Optional argument ANY non-nil means consider internal windows 300Optional argument ANY non-nil means consider internal windows
301too." 301too."
302 (let (this-value windows) 302 (let (this-value windows)
@@ -312,7 +312,7 @@ too."
312(defun window-atom-root (&optional window) 312(defun window-atom-root (&optional window)
313 "Return root of atomic window WINDOW is a part of. 313 "Return root of atomic window WINDOW is a part of.
314WINDOW can be any window and defaults to the selected one. 314WINDOW can be any window and defaults to the selected one.
315Return nil if WINDOW is not part of a atomic window." 315Return nil if WINDOW is not part of an atomic window."
316 (setq window (window-normalize-window window)) 316 (setq window (window-normalize-window window))
317 (let (root) 317 (let (root)
318 (while (and window (window-parameter window 'window-atom)) 318 (while (and window (window-parameter window 'window-atom))
@@ -380,7 +380,7 @@ Otherwise, top and bottom side windows are full width."
380(defcustom window-sides-slots '(nil nil nil nil) 380(defcustom window-sides-slots '(nil nil nil nil)
381 "Maximum number of side window slots. 381 "Maximum number of side window slots.
382The value is a list of four elements specifying the number of 382The value is a list of four elements specifying the number of
383side window slots on \(in this order) the left, top, right and 383side window slots on (in this order) the left, top, right and
384bottom side of each frame. If an element is a number, this means 384bottom side of each frame. If an element is a number, this means
385to display at most that many side windows on the corresponding 385to display at most that many side windows on the corresponding
386side. If an element is nil, this means there's no bound on the 386side. If an element is nil, this means there's no bound on the
@@ -504,7 +504,7 @@ If the value is `width', then only the window's width is fixed.
504Any other non-nil value fixes both the width and the height. 504Any other non-nil value fixes both the width and the height.
505 505
506Emacs won't change the size of any window displaying that buffer, 506Emacs won't change the size of any window displaying that buffer,
507unless it has no other choice \(like when deleting a neighboring 507unless it has no other choice (like when deleting a neighboring
508window).") 508window).")
509(make-variable-buffer-local 'window-size-fixed) 509(make-variable-buffer-local 'window-size-fixed)
510 510
@@ -749,7 +749,7 @@ Optional argument NOUP non-nil means don't go up in the window
749tree but try to enlarge windows within WINDOW's combination only. 749tree but try to enlarge windows within WINDOW's combination only.
750 750
751Optional argument NODOWN non-nil means don't check whether WINDOW 751Optional argument NODOWN non-nil means don't check whether WINDOW
752itself \(and its child windows) can be shrunk; check only whether 752itself (and its child windows) can be shrunk; check only whether
753at least one other window can be enlarged appropriately." 753at least one other window can be enlarged appropriately."
754 (setq window (window-normalize-window window)) 754 (setq window (window-normalize-window window))
755 (let ((size (window-total-size window horizontal)) 755 (let ((size (window-total-size window horizontal))
@@ -831,7 +831,7 @@ tree but try to obtain the entire space from windows within
831WINDOW's combination. 831WINDOW's combination.
832 832
833Optional argument NODOWN non-nil means do not check whether 833Optional argument NODOWN non-nil means do not check whether
834WINDOW itself \(and its child windows) can be enlarged; check 834WINDOW itself (and its child windows) can be enlarged; check
835only whether other windows can be shrunk appropriately." 835only whether other windows can be shrunk appropriately."
836 (setq window (window-normalize-window window)) 836 (setq window (window-normalize-window window))
837 (if (and (not (window--size-ignore window ignore)) 837 (if (and (not (window--size-ignore window ignore))
@@ -1211,7 +1211,7 @@ More precisely, cycle through all windows calling the function
1211PREDICATE on each one of them with the window as its sole 1211PREDICATE on each one of them with the window as its sole
1212argument. Return the first window for which PREDICATE returns 1212argument. Return the first window for which PREDICATE returns
1213non-nil. Windows are scanned starting with the window following 1213non-nil. Windows are scanned starting with the window following
1214the selcted window. If no window satisfies PREDICATE, return 1214the selected window. If no window satisfies PREDICATE, return
1215DEFAULT. 1215DEFAULT.
1216 1216
1217MINIBUF t means include the minibuffer window even if the 1217MINIBUF t means include the minibuffer window even if the
@@ -1418,7 +1418,7 @@ windows."
1418;; window and is currently used, for example, by ispell.el. 1418;; window and is currently used, for example, by ispell.el.
1419(defun window--resize-mini-window (window delta) 1419(defun window--resize-mini-window (window delta)
1420 "Resize minibuffer window WINDOW by DELTA lines. 1420 "Resize minibuffer window WINDOW by DELTA lines.
1421If WINDOW cannot be resized by DELTA lines make it as large \(or 1421If WINDOW cannot be resized by DELTA lines make it as large (or
1422as small) as possible but don't signal an error." 1422as small) as possible but don't signal an error."
1423 (when (window-minibuffer-p window) 1423 (when (window-minibuffer-p window)
1424 (let* ((frame (window-frame window)) 1424 (let* ((frame (window-frame window))
@@ -1513,12 +1513,12 @@ instead."
1513 "Recursively set new normal height of child windows of window PARENT. 1513 "Recursively set new normal height of child windows of window PARENT.
1514HORIZONTAL non-nil means set the new normal width of these 1514HORIZONTAL non-nil means set the new normal width of these
1515windows. WINDOW specifies a child window of PARENT that has been 1515windows. WINDOW specifies a child window of PARENT that has been
1516resized by THIS-DELTA lines \(columns). 1516resized by THIS-DELTA lines (columns).
1517 1517
1518Optional argument TRAIL either 'before or 'after means set values 1518Optional argument TRAIL either 'before or 'after means set values
1519for windows before or after WINDOW only. Optional argument 1519for windows before or after WINDOW only. Optional argument
1520OTHER-DELTA a number specifies that this many lines \(columns) 1520OTHER-DELTA a number specifies that this many lines (columns)
1521have been obtained from \(or returned to) an ancestor window of 1521have been obtained from (or returned to) an ancestor window of
1522PARENT in order to resize WINDOW." 1522PARENT in order to resize WINDOW."
1523 (let* ((delta-normal 1523 (let* ((delta-normal
1524 (if (and (= (- this-delta) (window-total-size window horizontal)) 1524 (if (and (= (- this-delta) (window-total-size window horizontal))
@@ -2190,7 +2190,7 @@ for a horizontal split, and t for a vertical split. EDGES gives
2190the combined size and position of the child windows in the split, 2190the combined size and position of the child windows in the split,
2191and the rest of the elements are the child windows in the split. 2191and the rest of the elements are the child windows in the split.
2192Each of the child windows may again be a window or a list 2192Each of the child windows may again be a window or a list
2193representing a window split, and so on. EDGES is a list \(LEFT 2193representing a window split, and so on. EDGES is a list (LEFT
2194TOP RIGHT BOTTOM) as returned by `window-edges'." 2194TOP RIGHT BOTTOM) as returned by `window-edges'."
2195 (setq frame (window-normalize-frame frame)) 2195 (setq frame (window-normalize-frame frame))
2196 (window--subtree (frame-root-window frame) t)) 2196 (window--subtree (frame-root-window frame) t))
@@ -2204,9 +2204,9 @@ skip -COUNT windows backwards. COUNT zero means do not skip any
2204window, so select the selected window. In an interactive call, 2204window, so select the selected window. In an interactive call,
2205COUNT is the numeric prefix argument. Return nil. 2205COUNT is the numeric prefix argument. Return nil.
2206 2206
2207If the `other-window' parameter of WINDOW is a function and 2207If the `other-window' parameter of the selected window is a
2208`ignore-window-parameters' is nil, call that function with the 2208function and `ignore-window-parameters' is nil, call that
2209arguments COUNT and ALL-FRAMES. 2209function with the arguments COUNT and ALL-FRAMES.
2210 2210
2211This function does not select a window whose `no-other-window' 2211This function does not select a window whose `no-other-window'
2212window parameter is non-nil. 2212window parameter is non-nil.
@@ -2430,7 +2430,7 @@ the value returned by that function.
2430Otherwise, if WINDOW is part of an atomic window, call this 2430Otherwise, if WINDOW is part of an atomic window, call this
2431function with the root of the atomic window as its argument. If 2431function with the root of the atomic window as its argument. If
2432WINDOW is a non-side window, make WINDOW the only non-side window 2432WINDOW is a non-side window, make WINDOW the only non-side window
2433on the frame. Side windows are not deleted. If WINDOW is a side 2433on the frame. Side windows are not deleted. If WINDOW is a side
2434window signal an error." 2434window signal an error."
2435 (interactive) 2435 (interactive)
2436 (setq window (window-normalize-window window)) 2436 (setq window (window-normalize-window window))
@@ -2455,7 +2455,7 @@ window signal an error."
2455 (throw 'done (delete-other-windows atom-root))) 2455 (throw 'done (delete-other-windows atom-root)))
2456 ((eq window-side 'none) 2456 ((eq window-side 'none)
2457 ;; Set side-main to the major non-side window. 2457 ;; Set side-main to the major non-side window.
2458 (setq side-main (window-with-parameter 'window-side 'none nil t))) 2458 (setq side-main (window-with-parameter 'window-side 'none frame t)))
2459 ((memq window-side window-sides) 2459 ((memq window-side window-sides)
2460 (error "Cannot make side window the only window"))) 2460 (error "Cannot make side window the only window")))
2461 ;; If WINDOW is the main non-side window, do nothing. 2461 ;; If WINDOW is the main non-side window, do nothing.
@@ -2938,9 +2938,9 @@ With prefix argument KILL non-nil, kill the buffer instead of
2938burying it. 2938burying it.
2939 2939
2940According to information stored in WINDOW's `quit-restore' window 2940According to information stored in WINDOW's `quit-restore' window
2941parameter either \(1) delete WINDOW and its frame, \(2) delete 2941parameter either (1) delete WINDOW and its frame, (2) delete
2942WINDOW, \(3) restore the buffer previously displayed in WINDOW, 2942WINDOW, (3) restore the buffer previously displayed in WINDOW,
2943or \(4) make WINDOW display some other buffer than the present 2943or (4) make WINDOW display some other buffer than the present
2944one. If non-nil, reset `quit-restore' parameter to nil." 2944one. If non-nil, reset `quit-restore' parameter to nil."
2945 (interactive "P") 2945 (interactive "P")
2946 (setq window (window-normalize-window window t)) 2946 (setq window (window-normalize-window window t))
@@ -3047,14 +3047,14 @@ WINDOW's size. Interactively, SIZE is the prefix argument.
3047Optional third argument SIDE nil (or `below') specifies that the 3047Optional third argument SIDE nil (or `below') specifies that the
3048new window shall be located below WINDOW. SIDE `above' means the 3048new window shall be located below WINDOW. SIDE `above' means the
3049new window shall be located above WINDOW. In both cases SIZE 3049new window shall be located above WINDOW. In both cases SIZE
3050specifies the new number of lines for WINDOW \(or the new window 3050specifies the new number of lines for WINDOW (or the new window
3051if SIZE is negative) including space reserved for the mode and/or 3051if SIZE is negative) including space reserved for the mode and/or
3052header line. 3052header line.
3053 3053
3054SIDE t (or `right') specifies that the new window shall be 3054SIDE t (or `right') specifies that the new window shall be
3055located on the right side of WINDOW. SIDE `left' means the new 3055located on the right side of WINDOW. SIDE `left' means the new
3056window shall be located on the left of WINDOW. In both cases 3056window shall be located on the left of WINDOW. In both cases
3057SIZE specifies the new number of columns for WINDOW \(or the new 3057SIZE specifies the new number of columns for WINDOW (or the new
3058window provided SIZE is negative) including space reserved for 3058window provided SIZE is negative) including space reserved for
3059fringes and the scrollbar or a divider column. Any other non-nil 3059fringes and the scrollbar or a divider column. Any other non-nil
3060value for SIDE is currently handled like t (or `right'). 3060value for SIDE is currently handled like t (or `right').
@@ -3604,7 +3604,7 @@ specific buffers."
3604 (with-current-buffer (window-buffer window) 3604 (with-current-buffer (window-buffer window)
3605 (let ((point (window-point-1 window)) 3605 (let ((point (window-point-1 window))
3606 (start (window-start window)) 3606 (start (window-start window))
3607 (mark (mark))) 3607 (mark (mark t)))
3608 `((buffer 3608 `((buffer
3609 ,(buffer-name buffer) 3609 ,(buffer-name buffer)
3610 (selected . ,selected) 3610 (selected . ,selected)
@@ -3713,7 +3713,7 @@ value can be also stored on disk and read back in a new session."
3713 (if (window-sizable-p window (- size) horizontal 'safe) 3713 (if (window-sizable-p window (- size) horizontal 'safe)
3714 (let* ((window-combination-limit 3714 (let* ((window-combination-limit
3715 (assq 'combination-limit item))) 3715 (assq 'combination-limit item)))
3716 ;; We must inherit the combiantion limit, otherwise 3716 ;; We must inherit the combination limit, otherwise
3717 ;; we might mess up handling of atomic and side 3717 ;; we might mess up handling of atomic and side
3718 ;; window. 3718 ;; window.
3719 (setq new (split-window window size horizontal))) 3719 (setq new (split-window window size horizontal)))
@@ -3870,10 +3870,10 @@ windows can get as small as `window-safe-min-height' and
3870(defun display-buffer-record-window (type window buffer) 3870(defun display-buffer-record-window (type window buffer)
3871 "Record information for window used by `display-buffer'. 3871 "Record information for window used by `display-buffer'.
3872TYPE specifies the type of the calling operation and must be one 3872TYPE specifies the type of the calling operation and must be one
3873of the symbols 'reuse \(when WINDOW existed already and was 3873of the symbols 'reuse (when WINDOW existed already and was
3874reused for displaying BUFFER), 'window \(when WINDOW was created 3874reused for displaying BUFFER), 'window (when WINDOW was created
3875on an already existing frame), or 'frame \(when WINDOW was 3875on an already existing frame), or 'frame (when WINDOW was
3876created on a new frame). WINDOW is the window used for or created 3876created on a new frame). WINDOW is the window used for or created
3877by the `display-buffer' routines. BUFFER is the buffer that 3877by the `display-buffer' routines. BUFFER is the buffer that
3878shall be displayed. 3878shall be displayed.
3879 3879
@@ -3968,7 +3968,7 @@ the buffer as first, and nil as second argument.
3968 3968
3969Alternatively, an element of this list can be specified as 3969Alternatively, an element of this list can be specified as
3970\(BUFFER-NAME FRAME-PARAMETERS), where BUFFER-NAME is a buffer 3970\(BUFFER-NAME FRAME-PARAMETERS), where BUFFER-NAME is a buffer
3971name and FRAME-PARAMETERS an alist of \(PARAMETER . VALUE) pairs. 3971name and FRAME-PARAMETERS an alist of (PARAMETER . VALUE) pairs.
3972`special-display-popup-frame' will interpret such pairs as frame 3972`special-display-popup-frame' will interpret such pairs as frame
3973parameters when it creates a special frame, overriding the 3973parameters when it creates a special frame, overriding the
3974corresponding values from `special-display-frame-alist'. 3974corresponding values from `special-display-frame-alist'.
@@ -4044,7 +4044,7 @@ name matches REGEXP, overriding the corresponding values from
4044 4044
4045As a special case, if FRAME-PARAMETERS contains (same-window . t) 4045As a special case, if FRAME-PARAMETERS contains (same-window . t)
4046`special-display-popup-frame' displays buffers matching REGEXP in 4046`special-display-popup-frame' displays buffers matching REGEXP in
4047the selected window. \(same-frame . t) in FRAME-PARAMETERS means 4047the selected window. (same-frame . t) in FRAME-PARAMETERS means
4048to display such buffers in a window on the selected frame. 4048to display such buffers in a window on the selected frame.
4049 4049
4050If `special-display-function' specifies some other function than 4050If `special-display-function' specifies some other function than
@@ -4139,8 +4139,8 @@ Optional argument ARGS is a list specifying additional
4139information. 4139information.
4140 4140
4141If ARGS is an alist, use it as a list of frame parameters. If 4141If ARGS is an alist, use it as a list of frame parameters. If
4142these parameters contain \(same-window . t), display BUFFER in 4142these parameters contain (same-window . t), display BUFFER in
4143the selected window. If they contain \(same-frame . t), display 4143the selected window. If they contain (same-frame . t), display
4144BUFFER in a window of the selected frame. 4144BUFFER in a window of the selected frame.
4145 4145
4146If ARGS is a list whose car is a symbol, use (car ARGS) as a 4146If ARGS is a list whose car is a symbol, use (car ARGS) as a
@@ -4234,7 +4234,7 @@ See also `same-window-buffer-names'."
4234 "Return non-nil if a buffer named BUFFER-NAME would be shown in the \"same\" window. 4234 "Return non-nil if a buffer named BUFFER-NAME would be shown in the \"same\" window.
4235This function returns non-nil if `display-buffer' or 4235This function returns non-nil if `display-buffer' or
4236`pop-to-buffer' would show a buffer named BUFFER-NAME in the 4236`pop-to-buffer' would show a buffer named BUFFER-NAME in the
4237selected rather than \(as usual\) some other window. See 4237selected rather than (as usual) some other window. See
4238`same-window-buffer-names' and `same-window-regexps'." 4238`same-window-buffer-names' and `same-window-regexps'."
4239 (cond 4239 (cond
4240 ((not (stringp buffer-name))) 4240 ((not (stringp buffer-name)))
@@ -4396,11 +4396,11 @@ the largest or least recently used window. To change the default
4396customize the option `split-window-preferred-function'. 4396customize the option `split-window-preferred-function'.
4397 4397
4398You can enforce this function to not split WINDOW horizontally, 4398You can enforce this function to not split WINDOW horizontally,
4399by setting \(or binding) the variable `split-width-threshold' to 4399by setting (or binding) the variable `split-width-threshold' to
4400nil. If, in addition, you set `split-height-threshold' to zero, 4400nil. If, in addition, you set `split-height-threshold' to zero,
4401chances increase that this function does split WINDOW vertically. 4401chances increase that this function does split WINDOW vertically.
4402 4402
4403In order to not split WINDOW vertically, set \(or bind) the 4403In order to not split WINDOW vertically, set (or bind) the
4404variable `split-height-threshold' to nil. Additionally, you can 4404variable `split-height-threshold' to nil. Additionally, you can
4405set `split-width-threshold' to zero to make a horizontal split 4405set `split-width-threshold' to zero to make a horizontal split
4406more likely to occur. 4406more likely to occur.
@@ -4526,19 +4526,6 @@ Return WINDOW."
4526The actual non-nil value of this variable will be copied to the 4526The actual non-nil value of this variable will be copied to the
4527`window-dedicated-p' flag.") 4527`window-dedicated-p' flag.")
4528 4528
4529(defun window-normalize-buffer-to-display (buffer-or-name)
4530 "Normalize BUFFER-OR-NAME argument for buffer display functions.
4531If BUFFER-OR-NAME is nil, return the current buffer. Else, if a
4532buffer specified by BUFFER-OR-NAME exists, return that buffer.
4533If no such buffer exists, create a buffer with the name
4534BUFFER-OR-NAME and return that buffer."
4535 (if buffer-or-name
4536 (or (get-buffer buffer-or-name)
4537 (let ((buffer (get-buffer-create buffer-or-name)))
4538 (set-buffer-major-mode buffer)
4539 buffer))
4540 (current-buffer)))
4541
4542(defconst display-buffer--action-function-custom-type 4529(defconst display-buffer--action-function-custom-type
4543 '(choice :tag "Function" 4530 '(choice :tag "Function"
4544 (const :tag "--" ignore) ; default for insertion 4531 (const :tag "--" ignore) ; default for insertion
@@ -4565,7 +4552,7 @@ BUFFER-OR-NAME and return that buffer."
4565(defvar display-buffer-overriding-action '(nil . nil) 4552(defvar display-buffer-overriding-action '(nil . nil)
4566 "Overriding action to perform to display a buffer. 4553 "Overriding action to perform to display a buffer.
4567It should be a cons cell (FUNCTION . ALIST), where FUNCTION is a 4554It should be a cons cell (FUNCTION . ALIST), where FUNCTION is a
4568function or a list of functions. Each function should accept 2 4555function or a list of functions. Each function should accept two
4569arguments: a buffer to display and an alist similar to ALIST. 4556arguments: a buffer to display and an alist similar to ALIST.
4570See `display-buffer' for details.") 4557See `display-buffer' for details.")
4571(put 'display-buffer-overriding-action 'risky-local-variable t) 4558(put 'display-buffer-overriding-action 'risky-local-variable t)
@@ -4579,7 +4566,7 @@ This is a list of elements (CONDITION . ACTION), where:
4579 4566
4580 ACTION is a cons cell (FUNCTION . ALIST), where FUNCTION is a 4567 ACTION is a cons cell (FUNCTION . ALIST), where FUNCTION is a
4581 function or a list of functions. Each such function should 4568 function or a list of functions. Each such function should
4582 accept 2 arguments: a buffer to display and an alist of the 4569 accept two arguments: a buffer to display and an alist of the
4583 same form as ALIST. See `display-buffer' for details." 4570 same form as ALIST. See `display-buffer' for details."
4584 :type `(alist :key-type 4571 :type `(alist :key-type
4585 (choice :tag "Condition" 4572 (choice :tag "Condition"
@@ -4593,7 +4580,7 @@ This is a list of elements (CONDITION . ACTION), where:
4593(defcustom display-buffer-base-action '(nil . nil) 4580(defcustom display-buffer-base-action '(nil . nil)
4594 "User-specified default action for `display-buffer'. 4581 "User-specified default action for `display-buffer'.
4595It should be a cons cell (FUNCTION . ALIST), where FUNCTION is a 4582It should be a cons cell (FUNCTION . ALIST), where FUNCTION is a
4596function or a list of functions. Each function should accept 2 4583function or a list of functions. Each function should accept two
4597arguments: a buffer to display and an alist similar to ALIST. 4584arguments: a buffer to display and an alist similar to ALIST.
4598See `display-buffer' for details." 4585See `display-buffer' for details."
4599 :type display-buffer--action-custom-type 4586 :type display-buffer--action-custom-type
@@ -4640,7 +4627,7 @@ specified, e.g. by the user options `display-buffer-alist' or
4640 "A `display-buffer' action for displaying in another frame.") 4627 "A `display-buffer' action for displaying in another frame.")
4641(put 'display-buffer--other-frame-action 'risky-local-variable t) 4628(put 'display-buffer--other-frame-action 'risky-local-variable t)
4642 4629
4643(defun display-buffer (&optional buffer-or-name action frame) 4630(defun display-buffer (buffer-or-name &optional action frame)
4644 "Display BUFFER-OR-NAME in some window, without selecting it. 4631 "Display BUFFER-OR-NAME in some window, without selecting it.
4645BUFFER-OR-NAME must be a buffer or the name of an existing 4632BUFFER-OR-NAME must be a buffer or the name of an existing
4646buffer. Return the window chosen for displaying BUFFER-OR-NAME, 4633buffer. Return the window chosen for displaying BUFFER-OR-NAME,
@@ -4648,8 +4635,8 @@ or nil if no such window is found.
4648 4635
4649Optional argument ACTION should have the form (FUNCTION . ALIST). 4636Optional argument ACTION should have the form (FUNCTION . ALIST).
4650FUNCTION is either a function or a list of functions. Each such 4637FUNCTION is either a function or a list of functions. Each such
4651function is called with 2 arguments: the buffer to display and an 4638function is called with two arguments: the buffer to display and
4652alist. It should either display the buffer and return the 4639an alist. It should either display the buffer and return the
4653window, or return nil if unable to display the buffer. 4640window, or return nil if unable to display the buffer.
4654 4641
4655The `display-buffer' function builds a function list and an alist 4642The `display-buffer' function builds a function list and an alist
@@ -4688,7 +4675,9 @@ search for a window that is already displaying the buffer. See
4688`display-buffer-reuse-window'." 4675`display-buffer-reuse-window'."
4689 (interactive (list (read-buffer "Display buffer: " (other-buffer)) 4676 (interactive (list (read-buffer "Display buffer: " (other-buffer))
4690 (if current-prefix-arg t))) 4677 (if current-prefix-arg t)))
4691 (let ((buffer (window-normalize-buffer-to-display buffer-or-name)) 4678 (let ((buffer (if (bufferp buffer-or-name)
4679 buffer-or-name
4680 (get-buffer buffer-or-name)))
4692 ;; Handle the old form of the first argument. 4681 ;; Handle the old form of the first argument.
4693 (inhibit-same-window (and action (not (listp action))))) 4682 (inhibit-same-window (and action (not (listp action)))))
4694 (unless (listp action) (setq action nil)) 4683 (unless (listp action) (setq action nil))
@@ -4996,7 +4985,7 @@ minibuffer. The variable `confirm-nonexistent-file-or-buffer'
4996determines whether to request confirmation before creating a new 4985determines whether to request confirmation before creating a new
4997buffer. 4986buffer.
4998 4987
4999BUFFER-OR-NAME may be a buffer, a string \(a buffer name), or 4988BUFFER-OR-NAME may be a buffer, a string (a buffer name), or
5000nil. If BUFFER-OR-NAME is a string that does not identify an 4989nil. If BUFFER-OR-NAME is a string that does not identify an
5001existing buffer, create a buffer with that name. If 4990existing buffer, create a buffer with that name. If
5002BUFFER-OR-NAME is nil, switch to the buffer returned by 4991BUFFER-OR-NAME is nil, switch to the buffer returned by
@@ -5036,7 +5025,7 @@ Return the buffer switched to."
5036 5025
5037(defun switch-to-buffer-other-window (buffer-or-name &optional norecord) 5026(defun switch-to-buffer-other-window (buffer-or-name &optional norecord)
5038 "Select the buffer specified by BUFFER-OR-NAME in another window. 5027 "Select the buffer specified by BUFFER-OR-NAME in another window.
5039BUFFER-OR-NAME may be a buffer, a string \(a buffer name), or 5028BUFFER-OR-NAME may be a buffer, a string (a buffer name), or
5040nil. Return the buffer switched to. 5029nil. Return the buffer switched to.
5041 5030
5042If called interactively, prompt for the buffer name using the 5031If called interactively, prompt for the buffer name using the
@@ -5060,7 +5049,7 @@ documentation for additional customization information."
5060 5049
5061(defun switch-to-buffer-other-frame (buffer-or-name &optional norecord) 5050(defun switch-to-buffer-other-frame (buffer-or-name &optional norecord)
5062 "Switch to buffer BUFFER-OR-NAME in another frame. 5051 "Switch to buffer BUFFER-OR-NAME in another frame.
5063BUFFER-OR-NAME may be a buffer, a string \(a buffer name), or 5052BUFFER-OR-NAME may be a buffer, a string (a buffer name), or
5064nil. Return the buffer switched to. 5053nil. Return the buffer switched to.
5065 5054
5066If called interactively, prompt for the buffer name using the 5055If called interactively, prompt for the buffer name using the
@@ -5169,7 +5158,7 @@ WINDOW can be any live window and defaults to the selected one.
5169Optional argument MAX-HEIGHT specifies the maximum height of 5158Optional argument MAX-HEIGHT specifies the maximum height of
5170WINDOW and defaults to the height of WINDOW's frame. Optional 5159WINDOW and defaults to the height of WINDOW's frame. Optional
5171argument MIN-HEIGHT specifies the minimum height of WINDOW and 5160argument MIN-HEIGHT specifies the minimum height of WINDOW and
5172defaults to `window-min-height'. Both, MAX-HEIGHT and MIN-HEIGHT 5161defaults to `window-min-height'. Both MAX-HEIGHT and MIN-HEIGHT
5173are specified in lines and include the mode line and header line, 5162are specified in lines and include the mode line and header line,
5174if any. 5163if any.
5175 5164
@@ -5234,7 +5223,7 @@ WINDOW was scrolled."
5234 ;; This `condition-case' shouldn't be necessary, but who knows? 5223 ;; This `condition-case' shouldn't be necessary, but who knows?
5235 (condition-case nil 5224 (condition-case nil
5236 (if (zerop delta) 5225 (if (zerop delta)
5237 ;; Return zero if DELTA became zero in the proces. 5226 ;; Return zero if DELTA became zero in the process.
5238 0 5227 0
5239 ;; Don't try to redisplay with the cursor at the end on its 5228 ;; Don't try to redisplay with the cursor at the end on its
5240 ;; own line--that would force a scroll and spoil things. 5229 ;; own line--that would force a scroll and spoil things.
@@ -5332,7 +5321,7 @@ A list of elements with possible values `top', `middle', `bottom',
5332integer or float numbers that define the cycling order for 5321integer or float numbers that define the cycling order for
5333the command `recenter-top-bottom'. 5322the command `recenter-top-bottom'.
5334 5323
5335Top and bottom destinations are `scroll-margin' lines the from true 5324Top and bottom destinations are `scroll-margin' lines from the true
5336window top and bottom. Middle redraws the frame and centers point 5325window top and bottom. Middle redraws the frame and centers point
5337vertically within the window. Integer number moves current line to 5326vertically within the window. Integer number moves current line to
5338the specified absolute window-line. Float number between 0.0 and 1.0 5327the specified absolute window-line. Float number between 0.0 and 1.0
@@ -5571,9 +5560,9 @@ With arg N, put point N/10 of the way from the true end."
5571 5560
5572(defvar mouse-autoselect-window-state nil 5561(defvar mouse-autoselect-window-state nil
5573 "When non-nil, special state of delayed window autoselection. 5562 "When non-nil, special state of delayed window autoselection.
5574Possible values are `suspend' \(suspend autoselection after a menu or 5563Possible values are `suspend' (suspend autoselection after a menu or
5575scrollbar interaction\) and `select' \(the next invocation of 5564scrollbar interaction) and `select' (the next invocation of
5576'handle-select-window' shall select the window immediately\).") 5565`handle-select-window' shall select the window immediately).")
5577 5566
5578(defun mouse-autoselect-window-cancel (&optional force) 5567(defun mouse-autoselect-window-cancel (&optional force)
5579 "Cancel delayed window autoselection. 5568 "Cancel delayed window autoselection.
@@ -5610,8 +5599,8 @@ means suspend autoselection."
5610(defun mouse-autoselect-window-select () 5599(defun mouse-autoselect-window-select ()
5611 "Select window with delayed window autoselection. 5600 "Select window with delayed window autoselection.
5612If the mouse position has stabilized in a non-selected window, select 5601If the mouse position has stabilized in a non-selected window, select
5613that window. The minibuffer window is selected only if the minibuffer is 5602that window. The minibuffer window is selected only if the minibuffer
5614active. This function is run by `mouse-autoselect-window-timer'." 5603is active. This function is run by `mouse-autoselect-window-timer'."
5615 (ignore-errors 5604 (ignore-errors
5616 (let* ((mouse-position (mouse-position)) 5605 (let* ((mouse-position (mouse-position))
5617 (window 5606 (window