aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorMiles Bader2006-10-03 05:04:21 +0000
committerMiles Bader2006-10-03 05:04:21 +0000
commitf3bbbd11451643c49997116d639612ae434dcaa0 (patch)
tree6ce54c0dbf43746478357847960e9621fe3a5719 /lisp
parent84356ba74da100da043fea790d1253b2d92e9110 (diff)
parent670992917f2ee196a667797e4c3806d89c0f6d61 (diff)
downloademacs-f3bbbd11451643c49997116d639612ae434dcaa0.tar.gz
emacs-f3bbbd11451643c49997116d639612ae434dcaa0.zip
Merge from emacs--devo--0
Patches applied: * emacs--devo--0 (patch 447-459) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 141-144) - Merge from emacs--devo--0 - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-115
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog343
-rw-r--r--lisp/add-log.el2
-rw-r--r--lisp/allout.el59
-rw-r--r--lisp/calc/calc-lang.el55
-rw-r--r--lisp/calendar/appt.el4
-rw-r--r--lisp/calendar/calendar.el43
-rw-r--r--lisp/comint.el5
-rw-r--r--lisp/cus-edit.el22
-rw-r--r--lisp/custom.el4
-rw-r--r--lisp/delim-col.el4
-rw-r--r--lisp/dired.el66
-rw-r--r--lisp/emacs-lisp/cl-macs.el16
-rw-r--r--lisp/emacs-lisp/cl.el4
-rw-r--r--lisp/emacs-lisp/find-func.el2
-rw-r--r--lisp/emacs-lisp/timer.el6
-rw-r--r--lisp/ffap.el2
-rw-r--r--lisp/files.el26
-rw-r--r--lisp/font-lock.el37
-rw-r--r--lisp/frame.el2
-rw-r--r--lisp/gnus/ChangeLog13
-rw-r--r--lisp/gnus/gmm-utils.el2
-rw-r--r--lisp/gnus/gnus-demon.el7
-rw-r--r--lisp/gnus/gnus-draft.el1
-rw-r--r--lisp/gnus/mm-util.el4
-rw-r--r--lisp/help.el24
-rw-r--r--lisp/ibuf-ext.el12
-rw-r--r--lisp/icomplete.el11
-rw-r--r--lisp/ido.el8
-rw-r--r--lisp/isearch.el38
-rw-r--r--lisp/jit-lock.el10
-rw-r--r--lisp/lpr.el2
-rw-r--r--lisp/mail/smtpmail.el8
-rw-r--r--lisp/mh-e/ChangeLog15
-rw-r--r--lisp/mh-e/mh-comp.el2
-rw-r--r--lisp/mh-e/mh-junk.el5
-rw-r--r--lisp/mouse.el2
-rw-r--r--lisp/pcvs.el12
-rw-r--r--lisp/printing.el6
-rw-r--r--lisp/progmodes/compile.el28
-rw-r--r--lisp/progmodes/cperl-mode.el6
-rw-r--r--lisp/progmodes/ebnf2ps.el225
-rw-r--r--lisp/progmodes/make-mode.el4
-rw-r--r--lisp/progmodes/sh-script.el65
-rw-r--r--lisp/ps-print.el2
-rw-r--r--lisp/ses.el101
-rw-r--r--lisp/simple.el59
-rw-r--r--lisp/startup.el12
-rw-r--r--lisp/subr.el54
-rw-r--r--lisp/textmodes/ispell.el5
-rw-r--r--lisp/textmodes/org.el6
-rw-r--r--lisp/url/ChangeLog6
-rw-r--r--lisp/url/url-dav.el73
-rw-r--r--lisp/url/url-http.el24
-rw-r--r--lisp/wid-edit.el16
-rw-r--r--lisp/woman.el32
55 files changed, 1114 insertions, 488 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 42ef944476b..49d677c8cfc 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,12 +1,344 @@
12006-10-03 Denis St,A|(Bnkel <dstuenkel@googlemail.com> (tiny change)
2
3 * ibuf-ext.el (eval, view-and-eval) <define-ibuffer-op>:
4 Use the interactive spec of `eval-expression'.
5
62006-10-02 Michael Welsh Duggan <md5i@cs.cmu.edu>
7
8 * progmodes/sh-script.el (sh-prev-thing): Fix last change.
9
102006-10-02 MIYOSHI Masanori <miyoshi@meadowy.org> (tiny change)
11
12 * mail/smtpmail.el (smtpmail-try-auth-methods): Fix typo in
13 2006-09-28 commit.
14
152006-10-02 Kenichi Handa <handa@m17n.org>
16
17 * international/code-pages.el (iso-8859-6): Table fixed.
18
192006-10-01 Chris Moore <christopher.ian.moore@gmail.com> (tiny change)
20
21 * dired.el (dired-build-subdir-alist): Fix previous change.
22
232006-10-01 Johan Bockg,Ae(Brd <bojohan+mail@dd.chalmers.se>
24
25 * simple.el (undo-elt-crosses-region): Fix the inequalities.
26
272006-10-01 Stefan Monnier <monnier@iro.umontreal.ca>
28
29 * emacs-lisp/find-func.el (find-function-regexp): Don't match
30 "define-button-type".
31
32 * pcvs.el (cvs-update-header): Fix handling of extra newlines so that
33 they don't keep accumulating.
34
352006-10-01 Bob Rogers <rogers-emacs@rgrjr.dyndns.org> (tiny change)
36
37 * ffap.el (ffap-rfc-path): Change the address of the RFC
38 repository to ftp.rfc-editor.org, as ds.internic.net seems to be gone.
39
402006-10-01 Stephen Berman <Stephen.Berman@gmx.net>
41
42 * allout.el (allout-expose-topic): Rectify implementation of "+"
43 spec, so that bodies are not exposed with headlines.
44
452006-10-01 Ken Manheimer <ken.manheimer@gmail.com>
46
47 * allout.el (allout-current-depth): Do aberrent check only at or
48 below doublecheck depth.
49 (allout-chart-subtree): Make it explicit that LEVELS being nil
50 means unlimited depth. Drop undocumented support for LEVELS value
51 t meaning unlimited depth. (This is consistent with
52 allout-chart-to-reveal, but contrary to allout-show-children,
53 which needs to use nil to default to depth of 1.)
54 (allout-goto-prefix-doublechecked): Wrap long docstring line.
55 (allout-chart-to-reveal): Be explicit in docstring about meaning
56 of nil LEVELS, and drop support for LEVELS value t.
57 (allout-show-children): Translate the level spec used by this
58 routine to that used by allout-chart-subtree and
59 allout-chart-to-reveal.
60 (allout-show-to-offshoot): Retry once when stuck, after opening
61 subtree - improvements in discontinuity handling likely will
62 enable progress.
63
642006-09-30 Chong Yidong <cyd@stupidchicken.com>
65
66 * wid-edit.el (widget-button-click-moves-point): New variable.
67 (widget-button-click): If widget-button-click-moves-point is
68 non-nil, set point after performing the button action
69
70 * cus-edit.el (custom-mode): Set widget-button-click-moves-point.
71
722006-09-30 Martin Rudalics <rudalics@gmx.at>
73
74 * files.el (find-file-existing): Modify to not allow wildcards.
75
762006-09-30 Johan Bockg,Ae(Brd <bojohan@dd.chalmers.se>
77
78 * simple.el (undo-more): When undo information for the region is
79 exhausted, say "No further undo information FOR REGION".
80
812006-09-30 Michael Welsh Duggan <md5i@cs.cmu.edu>
82
83 * progmodes/sh-script.el (sh-prev-thing):
84 Take `sh-leading-keywords' into account.
85
862006-09-29 Glenn Morris <rgm@gnu.org>
87
88 * custom.el (defcustom): Doc fix.
89
90 * calendar/calendar.el (european-calendar-style):
91 Call european-calendar or american-calendar as needed when set.
92 (diary-view-entries, list-calendar-holidays): Move autoloads
93 before use.
94
952006-09-29 Juri Linkov <juri@jurta.org>
96
97 * progmodes/cperl-mode.el (cperl-after-expr-p): Don't move point
98 to nil if there is no previous property change.
99
1002006-09-26 Micha,Ak(Bl Cadilhac <michael.cadilhac@lrde.org>
101
102 * cus-edit.el (custom-save-all): Switch to emacs-lisp mode before
103 saving anything to be sure that `forward-sexp' behaves correctly.
104
1052006-09-29 Chong Yidong <cyd@stupidchicken.com>
106
107 * simple.el (line-move-finish): Ignore field boundaries if the
108 initial and final points have the same `field' property.
109
1102006-09-29 Kim F. Storm <storm@cua.dk>
111
112 * ido.el (ido-file-internal): Only bind minibuffer-completing-file-name
113 to t while calling ido-read-internal.
114
1152006-09-29 Carsten Dominik <dominik@science.uva.nl>
116
117 * textmodes/org.el (org-file-remote-p): Get regexp from list.
118 (org-archive-subtree): Remove erraneous `]' from character list.
119
1202006-09-28 Jonathan Yavner <jyavner@member.fsf.org>
121
122 * ses.el (ses-in-print-area, ses-goto-data, ses-load)
123 (ses-reconstruct-all): Make undo of "insert row" work by keeping
124 markers for data-area and parameters-area.
125
1262006-09-28 Stefan Monnier <monnier@iro.umontreal.ca>
127
128 * progmodes/make-mode.el (makefile-mode): Don't disable jit-lock.
129
130 * font-lock.el (font-lock-after-change-function): Refontify next line
131 as well if end is at BOL.
132 (font-lock-extend-jit-lock-region-after-change): Be more careful to
133 only extend the region as much as needed.
134
1352006-09-28 Richard Stallman <rms@gnu.org>
136
137 * comint.el (comint-mode): Bind font-lock-defaults non-nil.
138
139 * subr.el (insert-for-yank-1): Handle `font-lock-face' specially.
140
141 * international/mule.el (after-insert-file-set-coding):
142 If VISIT, don't let set-buffer-multibyte make undo info.
143
1442006-09-28 Osamu Yamane <yamane@green.ocn.ne.jp> (tiny change)
145
146 * mail/smtpmail.el (smtpmail-try-auth-methods): Do not break long
147 lines in base64-encoded authentication response.
148
1492006-09-26 Vinicius Jose Latorre <viniciusjl@ig.com.br>
150
151 * progmode/ebnf2ps.el: Doc fix. Implement arrow spacing and scaling.
152 (ebnf-version): New version 4.3.
153 (ebnf-arrow-extra-width, ebnf-arrow-scale): New options.
154 (ebnf-prologue): Adjust PostScript programming.
155 (ebnf-begin-file, ebnf-insert-ebnf-prologue, ebnf-terminal-dimension1)
156 (ebnf-repeat-dimension, ebnf-except-dimension): Adjust code.
157
1582006-09-26 Stefan Monnier <monnier@iro.umontreal.ca>
159
160 * jit-lock.el (jit-lock-force-redisplay): Rename from
161 jit-lock-fontify-again, and undo the mistaken change I've just done.
162
163 * jit-lock.el (jit-lock-fontify-now): Don't fontify the empty text.
164 (jit-lock-fontify-again): Don't refontify text that's not displayed.
165
1662006-09-26 Kenichi Handa <handa@m17n.org>
167
168 * startup.el (display-splash-screen): Allow a prefix argument.
169
1702006-09-25 Jason Rumney <jasonr@gnu.org>
171
172 * subr.el (shell-quote-argument): Use DOS logic for Windows
173 shells with DOS semantics.
174
1752006-09-24 Richard Stallman <rms@gnu.org>
176
177 * progmodes/compile.el (compilation-goto-locus-delete-o): New fn.
178 (compilation-goto-locus): Use compilation-goto-locus-delete-o
179 to delete the overlay. Put it on pre-command-hook.
180
181 * emacs-lisp/timer.el (timer-max-repeats): Doc fix.
182
183 * startup.el (fancy-splash-screens, normal-splash-screen):
184 Call the splash buffer *About GNU Emacs*.
185
186 * simple.el (next-error-highlight, next-error-highlight-no-select):
187 Default to 0.5.
188 (yank-excluded-properties): Add `fontified'.
189
190 * font-lock.el (font-lock-compile-keywords): Allow value of
191 syntax-begin-function to enable paren-column-0 highlighting.
192
1932006-09-24 Chris Moore <christopher.ian.moore@gmail.com> (tiny change)
194
195 * dired.el (dired-build-subdir-alist): When file ends in colon,
196 don't exit the loop, just disregard that file.
197
1982006-09-24 Chong Yidong <cyd@stupidchicken.com>
199
200 * simple.el (line-move-finish): Handle corner case for fields in
201 continued lines.
202 (line-move-1): Remove flawed test for that case.
203
2042006-09-24 Ken Manheimer <ken.manheimer@gmail.com>
205
206 * icomplete.el (icomplete-simple-completing-p): Use the correct
207 name for the new variable, `icomplete-with-completion-tables'.
208 (file local variables): Remove superfluous setting.
209
2102006-09-23 Jeff Miller <jmiller@cablespeed.com> (tiny change)
211
212 * calendar/appt.el (appt-check): Fix typo for appointments just
213 after midnight.
214
2152006-09-23 Chong Yidong <cyd@stupidchicken.com>
216
217 * help.el (describe-key-briefly, describe-key): Don't expect an
218 extra up event if a down-event is generated by a popup menu.
219
2202006-09-23 Michal Nazarewicz <mnazarewicz@gmail.com> (tiny change)
221
222 * textmodes/ispell.el (ispell-change-dictionary): Don't check the
223 local dictionary when changing the global dictionary.
224
2252006-09-23 Ken Manheimer <ken.manheimer@gmail.com>
226
227 * icomplete.el (icomplete-with-completion-tables): List of
228 specialized completion tables with which icomplete should
229 operate. Include the new `internal-complete-buffer', so icomplete
230 works with interactive buffer-selection.
231 (icomplete-simple-completing-p): Add acceptance of specialized
232 completion tables listed in icomplete-with-completion-tables.
233
2342006-09-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
235
236 * frame.el (focus-follows-mouse): Set default to nil on Mac.
237
238 * startup.el (command-line): Use `custom-reevaluate-setting' for
239 `focus-follows-mouse'.
240
2412006-09-22 Richard Stallman <rms@gnu.org>
242
243 * cus-edit.el (custom-buffer-create-internal): In `emacs -q',
244 explain why Save is not available.
245
2462006-09-22 Juanma Barranquero <lekktu@gmail.com>
247
248 * woman.el (woman0-so): Use `let*', not `let'.
249 (woman-horizontal-line): Remove unbalanced parenthesis.
250
2512006-09-22 Stefan Monnier <monnier@iro.umontreal.ca>
252
253 * woman.el: Make sure all the end-of-region markers we use have
254 a non-nil insertion-type.
255 (woman0-so): Move things around so we can use copy-marker.
256 (woman0-roff-buffer, woman2-process-escapes-to-eol, woman2-roff-buffer):
257 Adjust marker type.
258 (woman2-process-escapes): Check marker type.
259 (woman-horizontal-line): Dispense with the use of a marker.
260
2612006-09-22 Jay Belanger <belanger@truman.edu>
262
263 * calc/calc-lang.el: Add Greek letters to math-variable-table
264 property of tex.
265
2662006-09-22 Chong Yidong <cyd@stupidchicken.com>
267
268 * files.el (save-some-buffers-action-alist): Display diff in
269 view-mode.
270
2712006-09-22 Masatake YAMATO <jet@gyve.org>
272
273 * add-log.el (add-log-current-defun): Use `forward-sexp'
274 instead of `forward-word' to pick c++::symbol.
275 Reported by Herbert Euler <herberteuler@hotmail.com>.
276
2772006-09-22 Kenichi Handa <handa@m17n.org>
278
279 * bindings.el: Fix setting self-insert-command for multibyte
280 characters in global-map.
281
2822006-09-21 David Kastrup <dak@gnu.org>
283
284 * mouse.el (mouse-posn-property): Fix typo for `event-start' in
285 doc string.
286
2872006-09-21 Kim F. Storm <storm@cua.dk>
288
289 * emacs-lisp/cl.el (pushnew-internal): Remove defvar.
290 (pushnew): Fix last change.
291
2922006-09-21 Kenichi Handa <handa@m17n.org>
293
294 * language/european.el ("Latin-1"): Add windows-1252 to
295 coding-priority.
296 ("German"): Likewise.
297
2982006-09-21 Kim F. Storm <storm@cua.dk>
299
300 * emacs-lisp/cl-macs.el (member*): Use memql instead of complex code.
301 Suggested by Miles Bader.
302
303 * emacs-lisp/cl.el (pushnew): Rework 2006-09-10 change. Use memql
304 instead of add-to-list in the simple case.
305
3062006-09-20 Kenichi Handa <handa@m17n.org>
307
308 * isearch.el (isearch-process-search-char): Cancel the previous
309 change.
310 (isearch-search-string): New function.
311 (isearch-search): Use isearch-search-string.
312 (isearch-lazy-highlight-search): Likewise.
313
3142006-09-20 Vinicius Jose Latorre <viniciusjl@ig.com.br>
315
316 * lpr.el (lpr-page-header-switches): Insert `*' at beginning of doc
317 string to become an option.
318
3192006-09-20 Stefan Monnier <monnier@iro.umontreal.ca>
320
321 * files.el (find-buffer-visiting): Don't get fooled by a nil inode.
322
3232006-09-20 Kim F. Storm <storm@cua.dk>
324
325 * simple.el (line-move-partial): Call pos-visible-in-window-p with
326 position t instead of trying both window-end and window-end - 1.
327
3282006-09-20 Carsten Dominik <dominik@science.uva.nl>
329
330 * textmodes/org.el (org-scan-tags): Find end of subtrees also in
331 hidden trees.
332
12006-09-20 David Kastrup <dak@gnu.org> 3332006-09-20 David Kastrup <dak@gnu.org>
2 334
3 * mouse.el (mouse-posn-property): Improve doc string. 335 * mouse.el (mouse-posn-property): Improve doc string.
4 (mouse-on-link-p): Change buffers for function calls on links. 336 (mouse-on-link-p): Change buffers for function calls on links.
5 337
6 * menu-bar.el (clipboard-yank): bomb out in interactive use if 338 * menu-bar.el (clipboard-yank): Bomb out in interactive use if
7 buffer is read-only. 339 buffer is read-only.
8 340
92006-09-18 Ken Manheimer <ken.manheimer@gmail.com> 3412006-09-20 Ken Manheimer <ken.manheimer@gmail.com>
10 342
11 * allout.el (allout-unprotected): Let inhibit-read-only only when 343 * allout.el (allout-unprotected): Let inhibit-read-only only when
12 buffer-read-only isn't set. 344 buffer-read-only isn't set.
@@ -17,16 +349,15 @@
17 rather than allout-exposure-changed-hook, as a stronger assertion. 349 rather than allout-exposure-changed-hook, as a stronger assertion.
18 (allout-keybindings-list): Add bindings for 350 (allout-keybindings-list): Add bindings for
19 allout-copy-line-as-kill and allout-copy-topic-as-kill. 351 allout-copy-line-as-kill and allout-copy-topic-as-kill.
20 (allout-copy-line-as-kill, allout-copy-topic-as-kill): copy 352 (allout-copy-line-as-kill, allout-copy-topic-as-kill):
21 wrappers for allout-kill-line and allout-kill-topic. 353 Copy wrappers for allout-kill-line and allout-kill-topic.
22 (allout-listify-exposed): Position correctly to accumulate lines. 354 (allout-listify-exposed): Position correctly to accumulate lines.
23 355
242006-09-19 Chong Yidong <cyd@stupidchicken.com> 3562006-09-19 Chong Yidong <cyd@stupidchicken.com>
25 357
26 * simple.el (line-move-1): Escape field boundaries occurring 358 * simple.el (line-move-1): Escape field boundaries occurring
27 exactly at point. Update goal column if constrained to a field. 359 exactly at point. Update goal column if constrained to a field.
28 (line-move-finish): Escape field boundaries occurring exactly at 360 (line-move-finish): Escape field boundaries occurring exactly at point.
29 point.
30 361
312006-09-19 Stefan Monnier <monnier@iro.umontreal.ca> 3622006-09-19 Stefan Monnier <monnier@iro.umontreal.ca>
32 363
diff --git a/lisp/add-log.el b/lisp/add-log.el
index 393a696d3f1..d60f920244a 100644
--- a/lisp/add-log.el
+++ b/lisp/add-log.el
@@ -914,7 +914,7 @@ Has a preference of looking backwards."
914 ;; Include certain keywords if they 914 ;; Include certain keywords if they
915 ;; precede the name. 915 ;; precede the name.
916 (setq middle (point)) 916 (setq middle (point))
917 (forward-word -1) 917 (forward-sexp -1)
918 ;; Is this C++ method? 918 ;; Is this C++ method?
919 (when (and (< 2 middle) 919 (when (and (< 2 middle)
920 (string= (buffer-substring (- middle 2) 920 (string= (buffer-substring (- middle 2)
diff --git a/lisp/allout.el b/lisp/allout.el
index 2d7a4777df3..5f59e5e0103 100644
--- a/lisp/allout.el
+++ b/lisp/allout.el
@@ -2202,8 +2202,9 @@ Actually, returns prefix beginning point."
2202 (save-excursion 2202 (save-excursion
2203 (allout-beginning-of-current-line) 2203 (allout-beginning-of-current-line)
2204 (and (looking-at allout-regexp) 2204 (and (looking-at allout-regexp)
2205 (not (allout-aberrant-container-p)) 2205 (allout-prefix-data)
2206 (allout-prefix-data)))) 2206 (or (> allout-recent-depth allout-doublecheck-at-and-shallower)
2207 (not (allout-aberrant-container-p))))))
2207;;;_ > allout-on-heading-p () 2208;;;_ > allout-on-heading-p ()
2208(defalias 'allout-on-heading-p 'allout-on-current-heading-p) 2209(defalias 'allout-on-heading-p 'allout-on-current-heading-p)
2209;;;_ > allout-e-o-prefix-p () 2210;;;_ > allout-e-o-prefix-p ()
@@ -2329,7 +2330,7 @@ If less than this depth, ascend to that depth and count..."
2329 2330
2330 (save-excursion 2331 (save-excursion
2331 (cond ((and depth (<= depth 0) 0)) 2332 (cond ((and depth (<= depth 0) 0))
2332 ((or (not depth) (= depth (allout-depth))) 2333 ((or (null depth) (= depth (allout-depth)))
2333 (let ((index 1)) 2334 (let ((index 1))
2334 (while (allout-previous-sibling allout-recent-depth nil) 2335 (while (allout-previous-sibling allout-recent-depth nil)
2335 (setq index (1+ index))) 2336 (setq index (1+ index)))
@@ -2505,13 +2506,13 @@ We skip anomolous low-level topics, a la `allout-aberrant-container-p'."
2505(defun allout-chart-subtree (&optional levels visible orig-depth prev-depth) 2506(defun allout-chart-subtree (&optional levels visible orig-depth prev-depth)
2506 "Produce a location \"chart\" of subtopics of the containing topic. 2507 "Produce a location \"chart\" of subtopics of the containing topic.
2507 2508
2508Optional argument LEVELS specifies the depth \(relative to start 2509Optional argument LEVELS specifies a depth limit \(relative to start
2509depth) for the chart. 2510depth) for the chart. Null LEVELS means no limit.
2510 2511
2511When optional argument VISIBLE is non-nil, the chart includes 2512When optional argument VISIBLE is non-nil, the chart includes
2512only the visible subelements of the charted subjects. 2513only the visible subelements of the charted subjects.
2513 2514
2514The remaining optional args are not for internal use by the function. 2515The remaining optional args are for internal use by the function.
2515 2516
2516Point is left at the end of the subtree. 2517Point is left at the end of the subtree.
2517 2518
@@ -2618,16 +2619,19 @@ for an explanation of charts."
2618 2619
2619 "Return a flat list of hidden points in subtree CHART, up to DEPTH. 2620 "Return a flat list of hidden points in subtree CHART, up to DEPTH.
2620 2621
2622If DEPTH is nil, include hidden points at any depth.
2623
2621Note that point can be left at any of the points on chart, or at the 2624Note that point can be left at any of the points on chart, or at the
2622start point." 2625start point."
2623 2626
2624 (let (result here) 2627 (let (result here)
2625 (while (and (or (eq depth t) (> depth 0)) 2628 (while (and (or (null depth) (> depth 0))
2626 chart) 2629 chart)
2627 (setq here (car chart)) 2630 (setq here (car chart))
2628 (if (listp here) 2631 (if (listp here)
2629 (let ((further (allout-chart-to-reveal here (or (eq depth t) 2632 (let ((further (allout-chart-to-reveal here (if (null depth)
2630 (1- depth))))) 2633 depth
2634 (1- depth)))))
2631 ;; We're on the start of a subtree - recurse with it, if there's 2635 ;; We're on the start of a subtree - recurse with it, if there's
2632 ;; more depth to go: 2636 ;; more depth to go:
2633 (if further (setq result (append further result))) 2637 (if further (setq result (append further result)))
@@ -2697,7 +2701,10 @@ Returns the point at the beginning of the prefix, or nil if none."
2697(defun allout-goto-prefix-doublechecked () 2701(defun allout-goto-prefix-doublechecked ()
2698 "Put point at beginning of immediately containing outline topic. 2702 "Put point at beginning of immediately containing outline topic.
2699 2703
2700Like `allout-goto-prefix', but shallow topics \(according to `allout-doublecheck-at-and-shallower') are checked and disqualified for child containment discontinuity, according to `allout-aberrant-container-p'." 2704Like `allout-goto-prefix', but shallow topics \(according to
2705`allout-doublecheck-at-and-shallower') are checked and
2706disqualified for child containment discontinuity, according to
2707`allout-aberrant-container-p'."
2701 (allout-goto-prefix) 2708 (allout-goto-prefix)
2702 (if (and (<= allout-recent-depth allout-doublecheck-at-and-shallower) 2709 (if (and (<= allout-recent-depth allout-doublecheck-at-and-shallower)
2703 (allout-aberrant-container-p)) 2710 (allout-aberrant-container-p))
@@ -4620,8 +4627,13 @@ point of non-opened subtree?)"
4620 (allout-beginning-of-current-line) 4627 (allout-beginning-of-current-line)
4621 (save-restriction 4628 (save-restriction
4622 (let* (depth 4629 (let* (depth
4623 (chart (allout-chart-subtree (or level 1))) 4630 ;; translate the level spec for this routine to the ones
4624 (to-reveal (or (allout-chart-to-reveal chart (or level 1)) 4631 ;; used by -chart-subtree and -chart-to-reveal:
4632 (chart-level (cond ((not level) 1)
4633 ((eq level t) nil)
4634 (t level)))
4635 (chart (allout-chart-subtree chart-level))
4636 (to-reveal (or (allout-chart-to-reveal chart chart-level)
4625 ;; interactive, show discontinuous children: 4637 ;; interactive, show discontinuous children:
4626 (and chart 4638 (and chart
4627 (interactive-p) 4639 (interactive-p)
@@ -4672,22 +4684,22 @@ Useful for coherently exposing to a random point in a hidden region."
4672 (orig-pt (point)) 4684 (orig-pt (point))
4673 (orig-pref (allout-goto-prefix-doublechecked)) 4685 (orig-pref (allout-goto-prefix-doublechecked))
4674 (last-at (point)) 4686 (last-at (point))
4675 bag-it) 4687 (bag-it 0))
4676 (while (or bag-it (allout-hidden-p)) 4688 (while (or (> bag-it 1) (allout-hidden-p))
4677 (while (allout-hidden-p) 4689 (while (allout-hidden-p)
4678 (move-beginning-of-line 1) 4690 (move-beginning-of-line 1)
4679 (if (allout-hidden-p) (forward-char -1))) 4691 (if (allout-hidden-p) (forward-char -1)))
4680 (if (= last-at (setq last-at (point))) 4692 (if (= last-at (setq last-at (point)))
4681 ;; Oops, we're not making any progress! Show the current 4693 ;; Oops, we're not making any progress! Show the current topic
4682 ;; topic completely, and bag this try. 4694 ;; completely, and try one more time here, if we haven't already.
4683 (progn (beginning-of-line) 4695 (progn (beginning-of-line)
4684 (allout-show-current-subtree) 4696 (allout-show-current-subtree)
4685 (goto-char orig-pt) 4697 (goto-char orig-pt)
4686 (setq bag-it t) 4698 (setq bag-it (1+ bag-it))
4687 (beep) 4699 (if (> bag-it 1)
4688 (message "%s: %s" 4700 (error "allout-show-to-offshoot: %s"
4689 "allout-show-to-offshoot: " 4701 "Stumped by aberrant nesting.")))
4690 "Aberrant nesting encountered.")) 4702 (if (> bag-it 0) (setq bag-it 0))
4691 (allout-show-children) 4703 (allout-show-children)
4692 (goto-char orig-pref))) 4704 (goto-char orig-pref)))
4693 (goto-char orig-pt))) 4705 (goto-char orig-pt)))
@@ -4895,7 +4907,10 @@ Examples:
4895 (cond ((eq curr-elem '*) (allout-show-current-subtree) 4907 (cond ((eq curr-elem '*) (allout-show-current-subtree)
4896 (if (> allout-recent-end-of-subtree max-pos) 4908 (if (> allout-recent-end-of-subtree max-pos)
4897 (setq max-pos allout-recent-end-of-subtree))) 4909 (setq max-pos allout-recent-end-of-subtree)))
4898 ((eq curr-elem '+) (allout-show-current-branches) 4910 ((eq curr-elem '+)
4911 (if (not (allout-hidden-p))
4912 (save-excursion (allout-hide-current-subtree t)))
4913 (allout-show-current-branches)
4899 (if (> allout-recent-end-of-subtree max-pos) 4914 (if (> allout-recent-end-of-subtree max-pos)
4900 (setq max-pos allout-recent-end-of-subtree))) 4915 (setq max-pos allout-recent-end-of-subtree)))
4901 ((eq curr-elem '-) (allout-show-current-entry)) 4916 ((eq curr-elem '-) (allout-show-current-entry))
diff --git a/lisp/calc/calc-lang.el b/lisp/calc/calc-lang.el
index c7f92a13847..07bc0e247f7 100644
--- a/lisp/calc/calc-lang.el
+++ b/lisp/calc/calc-lang.el
@@ -409,13 +409,54 @@
409 ( \\mu . calcFunc-moebius ))) 409 ( \\mu . calcFunc-moebius )))
410 410
411(put 'tex 'math-variable-table 411(put 'tex 'math-variable-table
412 '( ( \\pi . var-pi ) 412 '(
413 ( \\infty . var-inf ) 413 ;; The Greek letters
414 ( \\infty . var-uinf ) 414 ( \\alpha . var-alpha )
415 ( \\phi . var-phi ) 415 ( \\beta . var-beta )
416 ( \\gamma . var-gamma ) 416 ( \\gamma . var-gamma )
417 ( \\sum . (math-parse-tex-sum calcFunc-sum) ) 417 ( \\Gamma . var-Gamma )
418 ( \\prod . (math-parse-tex-sum calcFunc-prod) ))) 418 ( \\delta . var-delta )
419 ( \\Delta . var-Delta )
420 ( \\epsilon . var-epsilon )
421 ( \\varepsilon . var-varepsilon)
422 ( \\zeta . var-zeta )
423 ( \\eta . var-eta )
424 ( \\theta . var-theta )
425 ( \\vartheta . var-vartheta )
426 ( \\Theta . var-Theta )
427 ( \\iota . var-iota )
428 ( \\kappa . var-kappa )
429 ( \\lambda . var-lambda )
430 ( \\Lambda . var-Lambda )
431 ( \\mu . var-mu )
432 ( \\nu . var-nu )
433 ( \\xi . var-xi )
434 ( \\Xi . var-Xi )
435 ( \\pi . var-pi )
436 ( \\varpi . var-varpi )
437 ( \\Pi . var-Pi )
438 ( \\rho . var-rho )
439 ( \\varrho . var-varrho )
440 ( \\sigma . var-sigma )
441 ( \\sigma . var-varsigma )
442 ( \\Sigma . var-Sigma )
443 ( \\tau . var-tau )
444 ( \\upsilon . var-upsilon )
445 ( \\Upsilon . var-Upsilon )
446 ( \\phi . var-phi )
447 ( \\varphi . var-varphi )
448 ( \\Phi . var-Phi )
449 ( \\chi . var-chi )
450 ( \\psi . var-psi )
451 ( \\Psi . var-Psi )
452 ( \\omega . var-omega )
453 ( \\Omega . var-Omega )
454 ;; Others
455 ( \\ell . var-ell )
456 ( \\infty . var-inf )
457 ( \\infty . var-uinf )
458 ( \\sum . (math-parse-tex-sum calcFunc-sum) )
459 ( \\prod . (math-parse-tex-sum calcFunc-prod) )))
419 460
420(put 'tex 'math-complex-format 'i) 461(put 'tex 'math-complex-format 'i)
421 462
diff --git a/lisp/calendar/appt.el b/lisp/calendar/appt.el
index 29e6fe56b6e..892c76bba0c 100644
--- a/lisp/calendar/appt.el
+++ b/lisp/calendar/appt.el
@@ -394,8 +394,8 @@ displayed in a window:
394 (if (and (< appt-comp-time appt-message-warning-time) 394 (if (and (< appt-comp-time appt-message-warning-time)
395 (> (+ cur-comp-time appt-message-warning-time) 395 (> (+ cur-comp-time appt-message-warning-time)
396 appt-max-time)) 396 appt-max-time))
397 (setq min-to-app (+ (- (1+ appt-max-time) cur-comp-time)) 397 (setq min-to-app (+ (- (1+ appt-max-time) cur-comp-time)
398 appt-comp-time)) 398 appt-comp-time)))
399 399
400 ;; issue warning if the appointment time is 400 ;; issue warning if the appointment time is
401 ;; within appt-message-warning time 401 ;; within appt-message-warning time
diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el
index 38bcc887ec0..6fc18d05837 100644
--- a/lisp/calendar/calendar.el
+++ b/lisp/calendar/calendar.el
@@ -568,11 +568,20 @@ are
568 568
569Names can be capitalized or not, written in full (as specified by the 569Names can be capitalized or not, written in full (as specified by the
570variable `calendar-day-name-array'), or abbreviated (as specified by 570variable `calendar-day-name-array'), or abbreviated (as specified by
571`calendar-day-abbrev-array') with or without a period. To take effect, 571`calendar-day-abbrev-array') with or without a period.
572this variable should be set before the calendar package and its associates 572
573are loaded. Otherwise, use one of the functions `european-calendar' or 573Setting this variable directly does not take effect (if the
574`american-calendar' to force the appropriate update." 574calendar package is already loaded). Rather, use either
575\\[customize] or the functions `european-calendar' and
576`american-calendar'."
575 :type 'boolean 577 :type 'boolean
578 ;; Without :initialize (require 'calendar) throws an error because
579 ;; american-calendar is undefined at this point.
580 :initialize 'custom-initialize-default
581 :set (lambda (symbol value)
582 (if value
583 (european-calendar)
584 (american-calendar)))
576 :group 'diary) 585 :group 'diary)
577 586
578;;;###autoload 587;;;###autoload
@@ -1582,6 +1591,19 @@ See the documentation of that function for more information."
1582 (calendar-only-one-frame-setup arg)) 1591 (calendar-only-one-frame-setup arg))
1583 (t (calendar-basic-setup arg)))) 1592 (t (calendar-basic-setup arg))))
1584 1593
1594(autoload 'diary-view-entries "diary-lib"
1595 "Prepare and display a buffer with diary entries.
1596Searches your diary file for entries that match ARG days starting with
1597the date indicated by the cursor position in the displayed three-month
1598calendar."
1599 t)
1600
1601(autoload 'list-calendar-holidays "holidays"
1602 "Create a buffer containing the holidays for the current calendar window.
1603The holidays are those in the list `calendar-notable-days'. Returns t if any
1604holidays are found, nil if not."
1605 t)
1606
1585(defun calendar-basic-setup (&optional arg) 1607(defun calendar-basic-setup (&optional arg)
1586 "Display a three-month calendar in another window. 1608 "Display a three-month calendar in another window.
1587The three months appear side by side, with the current month in the middle 1609The three months appear side by side, with the current month in the middle
@@ -1649,13 +1671,6 @@ to be replaced by asterisks to highlight it whenever it is in the window."
1649 (list-calendar-holidays))) 1671 (list-calendar-holidays)))
1650 (run-hooks 'initial-calendar-window-hook)) 1672 (run-hooks 'initial-calendar-window-hook))
1651 1673
1652(autoload 'diary-view-entries "diary-lib"
1653 "Prepare and display a buffer with diary entries.
1654Searches your diary file for entries that match ARG days starting with
1655the date indicated by the cursor position in the displayed three-month
1656calendar."
1657 t)
1658
1659(autoload 'view-other-diary-entries "diary-lib" 1674(autoload 'view-other-diary-entries "diary-lib"
1660 "Prepare and display buffer of diary entries from an alternative diary file. 1675 "Prepare and display buffer of diary entries from an alternative diary file.
1661Searches for entries that match ARG days, starting with the date indicated 1676Searches for entries that match ARG days, starting with the date indicated
@@ -1930,12 +1945,6 @@ to the date indicated by point."
1930to the date indicated by point." 1945to the date indicated by point."
1931 t) 1946 t)
1932 1947
1933(autoload 'list-calendar-holidays "holidays"
1934 "Create a buffer containing the holidays for the current calendar window.
1935The holidays are those in the list `calendar-notable-days'. Returns t if any
1936holidays are found, nil if not."
1937 t)
1938
1939(autoload 'cal-tex-cursor-month "cal-tex" 1948(autoload 'cal-tex-cursor-month "cal-tex"
1940 "Make a buffer with LaTeX commands for the month cursor is on. 1949 "Make a buffer with LaTeX commands for the month cursor is on.
1941Optional prefix argument specifies number of months to be produced. 1950Optional prefix argument specifies number of months to be produced.
diff --git a/lisp/comint.el b/lisp/comint.el
index 5e223ef8f18..48b747065b5 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -650,7 +650,10 @@ Entry to this mode runs the hooks on `comint-mode-hook'."
650 (make-local-variable 'comint-process-echoes) 650 (make-local-variable 'comint-process-echoes)
651 (make-local-variable 'comint-file-name-chars) 651 (make-local-variable 'comint-file-name-chars)
652 (make-local-variable 'comint-file-name-quote-list) 652 (make-local-variable 'comint-file-name-quote-list)
653 (set (make-local-variable 'comint-accum-marker) (make-marker)) 653 (make-local-variable 'comint-accum-marker)
654 (setq comint-accum-marker (make-marker))
655 (make-local-variable 'font-lock-defaults)
656 (setq font-lock-defaults '(nil))
654 (add-hook 'change-major-mode-hook 'font-lock-defontify nil t) 657 (add-hook 'change-major-mode-hook 'font-lock-defontify nil t)
655 ;; This behavior is not useful in comint buffers, and is annoying 658 ;; This behavior is not useful in comint buffers, and is annoying
656 (set (make-local-variable 'next-line-add-newlines) nil)) 659 (set (make-local-variable 'next-line-add-newlines) nil))
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index 70552c604b7..ab3f7ec2b92 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -1521,13 +1521,18 @@ Otherwise use brackets."
1521 (widget-insert description)) 1521 (widget-insert description))
1522 (widget-insert (format ". 1522 (widget-insert (format ".
1523%s buttons; type RET or click mouse-1 to actuate one. 1523%s buttons; type RET or click mouse-1 to actuate one.
1524Editing a setting changes only the text in the buffer. 1524Editing a setting changes only the text in the buffer."
1525Use the setting's State button to set it or save changes in it.
1526Saving a change normally works by editing your Emacs init file.
1527See "
1528 (if custom-raised-buttons 1525 (if custom-raised-buttons
1529 "`Raised' text indicates" 1526 "`Raised' text indicates"
1530 "Square brackets indicate"))) 1527 "Square brackets indicate")))
1528 (if init-file-user
1529 (widget-insert "
1530Use the setting's State button to set it or save changes in it.
1531Saving a change normally works by editing your Emacs init file.")
1532 (widget-insert "
1533\nSince you started Emacs with `-q', which inhibits use of the
1534Emacs init file, you cannot save settings into the Emacs init file."))
1535 (widget-insert "\nSee ")
1531 (widget-create 'custom-manual 1536 (widget-create 'custom-manual
1532 :tag "Custom file" 1537 :tag "Custom file"
1533 "(emacs)Saving Customizations") 1538 "(emacs)Saving Customizations")
@@ -4152,6 +4157,8 @@ if only the first line of the docstring is shown."))
4152 recentf-exclude))) 4157 recentf-exclude)))
4153 (old-buffer (find-buffer-visiting filename))) 4158 (old-buffer (find-buffer-visiting filename)))
4154 (with-current-buffer (or old-buffer (find-file-noselect filename)) 4159 (with-current-buffer (or old-buffer (find-file-noselect filename))
4160 (unless (eq major-mode 'emacs-lisp-mode)
4161 (emacs-lisp-mode))
4155 (let ((inhibit-read-only t)) 4162 (let ((inhibit-read-only t))
4156 (custom-save-variables) 4163 (custom-save-variables)
4157 (custom-save-faces)) 4164 (custom-save-faces))
@@ -4548,6 +4555,13 @@ if that value is non-nil."
4548 (setq widget-documentation-face 'custom-documentation) 4555 (setq widget-documentation-face 'custom-documentation)
4549 (make-local-variable 'widget-button-face) 4556 (make-local-variable 'widget-button-face)
4550 (setq widget-button-face custom-button) 4557 (setq widget-button-face custom-button)
4558
4559 ;; We need this because of the "More" button on docstrings.
4560 ;; Otherwise clicking on "More" can push point offscreen, which
4561 ;; causes the window to recenter on point, which pushes the
4562 ;; newly-revealed docstring offscreen; which is annoying. -- cyd.
4563 (set (make-local-variable 'widget-button-click-moves-point) t)
4564
4551 (set (make-local-variable 'widget-button-pressed-face) custom-button-pressed) 4565 (set (make-local-variable 'widget-button-pressed-face) custom-button-pressed)
4552 (set (make-local-variable 'widget-mouse-face) custom-button-mouse) 4566 (set (make-local-variable 'widget-mouse-face) custom-button-mouse)
4553 4567
diff --git a/lisp/custom.el b/lisp/custom.el
index 104e63126f0..e69e233614a 100644
--- a/lisp/custom.el
+++ b/lisp/custom.el
@@ -210,11 +210,11 @@ The following keywords are meaningful:
210 `custom-initialize-reset'. 210 `custom-initialize-reset'.
211:set VALUE should be a function to set the value of the symbol. 211:set VALUE should be a function to set the value of the symbol.
212 It takes two arguments, the symbol to set and the value to 212 It takes two arguments, the symbol to set and the value to
213 give it. The default choice of function is `custom-set-default'. 213 give it. The default choice of function is `set-default'.
214:get VALUE should be a function to extract the value of symbol. 214:get VALUE should be a function to extract the value of symbol.
215 The function takes one argument, a symbol, and should return 215 The function takes one argument, a symbol, and should return
216 the current value for that symbol. The default choice of function 216 the current value for that symbol. The default choice of function
217 is `custom-default-value'. 217 is `default-value'.
218:require 218:require
219 VALUE should be a feature symbol. If you save a value 219 VALUE should be a feature symbol. If you save a value
220 for this option, then when your `.emacs' file loads the value, 220 for this option, then when your `.emacs' file loads the value,
diff --git a/lisp/delim-col.el b/lisp/delim-col.el
index 7433c728405..b89e979ff0b 100644
--- a/lisp/delim-col.el
+++ b/lisp/delim-col.el
@@ -5,10 +5,10 @@
5 5
6;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> 6;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
7;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> 7;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
8;; Time-stamp: <2006-02-06 13:37:10 ttn> 8;; Time-stamp: <2006/09/15 17:35:06 vinicius>
9;; Version: 2.1 9;; Version: 2.1
10;; Keywords: internal 10;; Keywords: internal
11;; X-URL: http://www.cpqd.com.br/~vinicius/emacs/ 11;; X-URL: http://www.emacswiki.org/cgi-bin/wiki/ViniciusJoseLatorre
12 12
13;; This file is part of GNU Emacs. 13;; This file is part of GNU Emacs.
14 14
diff --git a/lisp/dired.el b/lisp/dired.el
index 2974b386d0b..491ef261c11 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -2204,40 +2204,40 @@ instead of `dired-actual-switches'."
2204 (concat "\\`" (match-string 1 default-directory))))) 2204 (concat "\\`" (match-string 1 default-directory)))))
2205 (goto-char (point-min)) 2205 (goto-char (point-min))
2206 (setq dired-subdir-alist nil) 2206 (setq dired-subdir-alist nil)
2207 (while (and (re-search-forward dired-subdir-regexp nil t) 2207 (while (re-search-forward dired-subdir-regexp nil t)
2208 ;; Avoid taking a file name ending in a colon 2208 ;; Avoid taking a file name ending in a colon
2209 ;; as a subdir name. 2209 ;; as a subdir name.
2210 (not (save-excursion 2210 (unless (save-excursion
2211 (goto-char (match-beginning 0)) 2211 (goto-char (match-beginning 0))
2212 (beginning-of-line) 2212 (beginning-of-line)
2213 (forward-char 2) 2213 (forward-char 2)
2214 (save-match-data (looking-at dired-re-perms))))) 2214 (save-match-data (looking-at dired-re-perms)))
2215 (save-excursion 2215 (save-excursion
2216 (goto-char (match-beginning 1)) 2216 (goto-char (match-beginning 1))
2217 (setq new-dir-name 2217 (setq new-dir-name
2218 (buffer-substring-no-properties (point) (match-end 1)) 2218 (buffer-substring-no-properties (point) (match-end 1))
2219 new-dir-name 2219 new-dir-name
2220 (save-match-data 2220 (save-match-data
2221 (if (and R-ftp-base-dir-regex 2221 (if (and R-ftp-base-dir-regex
2222 (not (string= new-dir-name default-directory)) 2222 (not (string= new-dir-name default-directory))
2223 (string-match R-ftp-base-dir-regex new-dir-name)) 2223 (string-match R-ftp-base-dir-regex new-dir-name))
2224 (concat default-directory 2224 (concat default-directory
2225 (substring new-dir-name (match-end 0))) 2225 (substring new-dir-name (match-end 0)))
2226 (expand-file-name new-dir-name)))) 2226 (expand-file-name new-dir-name))))
2227 (delete-region (point) (match-end 1)) 2227 (delete-region (point) (match-end 1))
2228 (insert new-dir-name)) 2228 (insert new-dir-name))
2229 (setq count (1+ count)) 2229 (setq count (1+ count))
2230 (dired-alist-add-1 new-dir-name 2230 (dired-alist-add-1 new-dir-name
2231 ;; Place a sub directory boundary between lines. 2231 ;; Place a sub directory boundary between lines.
2232 (save-excursion 2232 (save-excursion
2233 (goto-char (match-beginning 0)) 2233 (goto-char (match-beginning 0))
2234 (beginning-of-line) 2234 (beginning-of-line)
2235 (point-marker)))) 2235 (point-marker)))))
2236 (if (and (> count 1) (interactive-p)) 2236 (if (and (> count 1) (interactive-p))
2237 (message "Buffer includes %d directories" count)) 2237 (message "Buffer includes %d directories" count)))
2238 ;; We don't need to sort it because it is in buffer order per 2238 ;; We don't need to sort it because it is in buffer order per
2239 ;; constructionem. Return new alist: 2239 ;; constructionem. Return new alist:
2240 dired-subdir-alist))) 2240 dired-subdir-alist))
2241 2241
2242(defun dired-alist-add-1 (dir new-marker) 2242(defun dired-alist-add-1 (dir new-marker)
2243 ;; Add new DIR at NEW-MARKER. Don't sort. 2243 ;; Add new DIR at NEW-MARKER. Don't sort.
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index 45ec97b3281..ab3bfeccfb3 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -2578,21 +2578,7 @@ surrounded by (block NAME ...).
2578 (cl-const-expr-val (nth 1 keys))))) 2578 (cl-const-expr-val (nth 1 keys)))))
2579 (cond ((eq test 'eq) (list 'memq a list)) 2579 (cond ((eq test 'eq) (list 'memq a list))
2580 ((eq test 'equal) (list 'member a list)) 2580 ((eq test 'equal) (list 'member a list))
2581 ((or (null keys) (eq test 'eql)) 2581 ((or (null keys) (eq test 'eql)) (list 'memql a list))
2582 (if (eq (cl-const-expr-p a) t)
2583 (list (if (floatp-safe (cl-const-expr-val a)) 'member 'memq)
2584 a list)
2585 (if (eq (cl-const-expr-p list) t)
2586 (let ((p (cl-const-expr-val list)) (mb nil) (mq nil))
2587 (if (not (cdr p))
2588 (and p (list 'eql a (list 'quote (car p))))
2589 (while p
2590 (if (floatp-safe (car p)) (setq mb t)
2591 (or (integerp (car p)) (symbolp (car p)) (setq mq t)))
2592 (setq p (cdr p)))
2593 (if (not mb) (list 'memq a list)
2594 (if (not mq) (list 'member a list) form))))
2595 form)))
2596 (t form)))) 2582 (t form))))
2597 2583
2598(define-compiler-macro assoc* (&whole form a list &rest keys) 2584(define-compiler-macro assoc* (&whole form a list &rest keys)
diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el
index 53bec05ddc3..3399f7e7b20 100644
--- a/lisp/emacs-lisp/cl.el
+++ b/lisp/emacs-lisp/cl.el
@@ -159,9 +159,7 @@ an element already on the list.
159\n(fn X PLACE [KEYWORD VALUE]...)" 159\n(fn X PLACE [KEYWORD VALUE]...)"
160 (if (symbolp place) 160 (if (symbolp place)
161 (if (null keys) 161 (if (null keys)
162 `(let ((pushnew-internal ,place)) 162 `(if (memql ,x ,place) ,place (setq ,place (cons ,x ,place)))
163 (add-to-list 'pushnew-internal ,x nil 'eql)
164 (setq ,place pushnew-internal))
165 (list 'setq place (list* 'adjoin x place keys))) 163 (list 'setq place (list* 'adjoin x place keys)))
166 (list* 'callf2 'adjoin x place keys))) 164 (list* 'callf2 'adjoin x place keys)))
167 165
diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el
index 50b7d8dc9ef..42c5d3183e7 100644
--- a/lisp/emacs-lisp/find-func.el
+++ b/lisp/emacs-lisp/find-func.el
@@ -64,7 +64,7 @@
64 (concat 64 (concat
65 "^\\s-*(\\(def\\(ine-skeleton\\|ine-generic-mode\\|ine-derived-mode\\|\ 65 "^\\s-*(\\(def\\(ine-skeleton\\|ine-generic-mode\\|ine-derived-mode\\|\
66ine\\(?:-global\\)?-minor-mode\\|ine-compilation-mode\\|un-cvs-mode\\|\ 66ine\\(?:-global\\)?-minor-mode\\|ine-compilation-mode\\|un-cvs-mode\\|\
67foo\\|[^cfgv]\\(\\w\\|\\s_\\)+\\*?\\)\\|easy-mmode-define-[a-z-]+\\|easy-menu-define\\|\ 67foo\\|[^icfgv]\\(\\w\\|\\s_\\)+\\*?\\)\\|easy-mmode-define-[a-z-]+\\|easy-menu-define\\|\
68menu-bar-make-toggle\\)" 68menu-bar-make-toggle\\)"
69 find-function-space-re 69 find-function-space-re
70 "\\('\\|\(quote \\)?%s\\(\\s-\\|$\\|\(\\|\)\\)") 70 "\\('\\|\(quote \\)?%s\\(\\s-\\|$\\|\(\\|\)\\)")
diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el
index 54c5aff305a..0c66a207351 100644
--- a/lisp/emacs-lisp/timer.el
+++ b/lisp/emacs-lisp/timer.el
@@ -300,7 +300,11 @@ and idle timers such as are scheduled by `run-with-idle-timer'."
300 "Third-to-last timer that was run.") 300 "Third-to-last timer that was run.")
301 301
302(defvar timer-max-repeats 10 302(defvar timer-max-repeats 10
303 "*Maximum number of times to repeat a timer, if real time jumps.") 303 "*Maximum number of times to repeat a timer, if many repeats are delayed.
304Timer invocations can be delayed because Emacs is suspended or busy,
305or because the system's time changes. If such an occurrence makes it
306appear that many invocations are overdue, this variable controls
307how many will really happen.")
304 308
305(defun timer-until (timer time) 309(defun timer-until (timer time)
306 "Calculate number of seconds from when TIMER will run, until TIME. 310 "Calculate number of seconds from when TIMER will run, until TIME.
diff --git a/lisp/ffap.el b/lisp/ffap.el
index 5ff63bfdec2..bd0c213ba6e 100644
--- a/lisp/ffap.el
+++ b/lisp/ffap.el
@@ -954,7 +954,7 @@ If t, `ffap-tex-init' will initialize this when needed.")
954 (substring name 2)))) 954 (substring name 2))))
955 955
956(defvar ffap-rfc-path 956(defvar ffap-rfc-path
957 (concat (ffap-host-to-filename "ds.internic.net") "/rfc/rfc%s.txt")) 957 (concat (ffap-host-to-filename "ftp.rfc-editor.org") "/in-notes/rfc%s.txt"))
958 958
959(defun ffap-rfc (name) 959(defun ffap-rfc (name)
960 (format ffap-rfc-path 960 (format ffap-rfc-path
diff --git a/lisp/files.el b/lisp/files.el
index 642bd2d9372..3e2cf2ee92d 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -1117,13 +1117,15 @@ expand wildcards (if any) and visit multiple files."
1117 (mapcar 'switch-to-buffer (cdr value)))) 1117 (mapcar 'switch-to-buffer (cdr value))))
1118 (switch-to-buffer-other-frame value)))) 1118 (switch-to-buffer-other-frame value))))
1119 1119
1120(defun find-file-existing (filename &optional wildcards) 1120(defun find-file-existing (filename)
1121 "Edit the existing file FILENAME. 1121 "Edit the existing file FILENAME.
1122Like \\[find-file] but only allow a file that exists." 1122Like \\[find-file] but only allow a file that exists, and do not allow
1123 (interactive (find-file-read-args "Find existing file: " t)) 1123file names with wildcards."
1124 (unless (file-exists-p filename) (error "%s does not exist" filename)) 1124 (interactive (nbutlast (find-file-read-args "Find existing file: " t)))
1125 (find-file filename wildcards) 1125 (if (and (not (interactive-p)) (not (file-exists-p filename)))
1126 (current-buffer)) 1126 (error "%s does not exist" filename)
1127 (find-file filename)
1128 (current-buffer)))
1127 1129
1128(defun find-file-read-only (filename &optional wildcards) 1130(defun find-file-read-only (filename &optional wildcards)
1129 "Edit file FILENAME but don't allow changes. 1131 "Edit file FILENAME but don't allow changes.
@@ -1365,7 +1367,7 @@ If there is no such live buffer, return nil."
1365 (number (nthcdr 10 attributes)) 1367 (number (nthcdr 10 attributes))
1366 (list (buffer-list)) found) 1368 (list (buffer-list)) found)
1367 (and buffer-file-numbers-unique 1369 (and buffer-file-numbers-unique
1368 number 1370 (car-safe number) ;Make sure the inode is not just nil.
1369 (while (and (not found) list) 1371 (while (and (not found) list)
1370 (with-current-buffer (car list) 1372 (with-current-buffer (car list)
1371 (if (and buffer-file-name 1373 (if (and buffer-file-name
@@ -3729,7 +3731,13 @@ This requires the external program `diff' to be in your `exec-path'."
3729 ;; Return nil to ask about BUF again. 3731 ;; Return nil to ask about BUF again.
3730 nil) 3732 nil)
3731 "view this file") 3733 "view this file")
3732 (?d diff-buffer-with-file 3734 (?d (lambda (buf)
3735 (save-window-excursion
3736 (diff-buffer-with-file buf))
3737 (view-buffer (get-buffer-create "*Diff*")
3738 (lambda (ignore) (exit-recursive-edit)))
3739 (recursive-edit)
3740 nil)
3733 "view changes in file")) 3741 "view changes in file"))
3734 "ACTION-ALIST argument used in call to `map-y-or-n-p'.") 3742 "ACTION-ALIST argument used in call to `map-y-or-n-p'.")
3735 3743
diff --git a/lisp/font-lock.el b/lisp/font-lock.el
index 60a4b3c00b1..1bae9cba362 100644
--- a/lisp/font-lock.el
+++ b/lisp/font-lock.el
@@ -1168,7 +1168,12 @@ what properties to clear before refontifying a region.")
1168 ;; number of lines. 1168 ;; number of lines.
1169 ;; (setq beg (progn (goto-char beg) (line-beginning-position)) 1169 ;; (setq beg (progn (goto-char beg) (line-beginning-position))
1170 ;; end (progn (goto-char end) (line-beginning-position 2))) 1170 ;; end (progn (goto-char end) (line-beginning-position 2)))
1171 ) 1171 (unless (eq end (point-max))
1172 ;; Rounding up to a whole number of lines should include the
1173 ;; line right after `end'. Typical case: the first char of
1174 ;; the line was deleted. Or a \n was inserted in the middle
1175 ;; of a line.
1176 (setq end (1+ end))))
1172 (font-lock-fontify-region beg end))))) 1177 (font-lock-fontify-region beg end)))))
1173 1178
1174(defvar jit-lock-start) (defvar jit-lock-end) 1179(defvar jit-lock-start) (defvar jit-lock-end)
@@ -1205,9 +1210,17 @@ This function does 2 things:
1205 (setq beg (or (previous-single-property-change 1210 (setq beg (or (previous-single-property-change
1206 beg 'font-lock-multiline) 1211 beg 'font-lock-multiline)
1207 (point-min)))) 1212 (point-min))))
1208 (setq end (or (text-property-any end (point-max) 1213 (when (< end (point-max))
1209 'font-lock-multiline nil) 1214 (setq end
1210 (point-max))) 1215 (if (get-text-property end 'font-lock-multiline)
1216 (or (text-property-any end (point-max)
1217 'font-lock-multiline nil)
1218 (point-max))
1219 ;; Rounding up to a whole number of lines should include the
1220 ;; line right after `end'. Typical case: the first char of
1221 ;; the line was deleted. Or a \n was inserted in the middle
1222 ;; of a line.
1223 (1+ end))))
1211 ;; Finally, pre-enlarge the region to a whole number of lines, to try 1224 ;; Finally, pre-enlarge the region to a whole number of lines, to try
1212 ;; and anticipate what font-lock-default-fontify-region will do, so as to 1225 ;; and anticipate what font-lock-default-fontify-region will do, so as to
1213 ;; avoid double-redisplay. 1226 ;; avoid double-redisplay.
@@ -1217,11 +1230,11 @@ This function does 2 things:
1217 (when (memq 'font-lock-extend-region-wholelines 1230 (when (memq 'font-lock-extend-region-wholelines
1218 font-lock-extend-region-functions) 1231 font-lock-extend-region-functions)
1219 (goto-char beg) 1232 (goto-char beg)
1220 (forward-line 0) 1233 (setq jit-lock-start (min jit-lock-start (line-beginning-position)))
1221 (setq jit-lock-start (min jit-lock-start (point)))
1222 (goto-char end) 1234 (goto-char end)
1223 (forward-line 1) 1235 (setq jit-lock-end
1224 (setq jit-lock-end (max jit-lock-end (point))))))) 1236 (max jit-lock-end
1237 (if (bolp) (point) (line-beginning-position 2))))))))
1225 1238
1226(defun font-lock-fontify-block (&optional arg) 1239(defun font-lock-fontify-block (&optional arg)
1227 "Fontify some lines the way `font-lock-fontify-buffer' would. 1240 "Fontify some lines the way `font-lock-fontify-buffer' would.
@@ -1646,9 +1659,11 @@ If SYNTACTIC-KEYWORDS is non-nil, it means these keywords are used for
1646 (cons t (cons keywords 1659 (cons t (cons keywords
1647 (mapcar 'font-lock-compile-keyword keywords)))) 1660 (mapcar 'font-lock-compile-keyword keywords))))
1648 (if (and (not syntactic-keywords) 1661 (if (and (not syntactic-keywords)
1649 (eq (or syntax-begin-function 1662 (let ((beg-function
1650 font-lock-beginning-of-syntax-function) 1663 (or font-lock-beginning-of-syntax-function
1651 'beginning-of-defun) 1664 syntax-begin-function)))
1665 (or (eq beg-function 'beginning-of-defun)
1666 (get beg-function 'font-lock-syntax-paren-check)))
1652 (not beginning-of-defun-function)) 1667 (not beginning-of-defun-function))
1653 ;; Try to detect when a string or comment contains something that 1668 ;; Try to detect when a string or comment contains something that
1654 ;; looks like a defun and would thus confuse font-lock. 1669 ;; looks like a defun and would thus confuse font-lock.
diff --git a/lisp/frame.el b/lisp/frame.el
index 8f7fdf1fd5c..9aba8c54089 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -681,7 +681,7 @@ the user during startup."
681 (nreverse frame-initial-geometry-arguments)) 681 (nreverse frame-initial-geometry-arguments))
682 (cdr param-list)) 682 (cdr param-list))
683 683
684(defcustom focus-follows-mouse t 684(defcustom focus-follows-mouse (not (eq window-system 'mac))
685 "*Non-nil if window system changes focus when you move the mouse. 685 "*Non-nil if window system changes focus when you move the mouse.
686You should set this variable to tell Emacs how your window manager 686You should set this variable to tell Emacs how your window manager
687handles focus, since there is no way in general for Emacs to find out 687handles focus, since there is no way in general for Emacs to find out
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index dbd88f32180..ad3c6ad919e 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,16 @@
12006-09-28 Reiner Steib <Reiner.Steib@gmx.de>
2
3 * gmm-utils.el (gmm): Adjust custom version.
4
5 * mm-util.el (mm-charset-override-alist, mm-charset-eval-alist): Adjust
6 custom version.
7
8 * gnus-draft.el (gnus-draft-mode): Don't call `mml-mode'.
9
102006-09-25 Chong Yidong <cyd@stupidchicken.com>
11
12 * gnus-demon.el (gnus-demon): Use with-local-quit to avoid hangs.
13
12006-09-19 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de> 142006-09-19 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
2 15
3 * nnslashdot.el (nnslashdot-request-article): Update end-of-article 16 * nnslashdot.el (nnslashdot-request-article): Update end-of-article
diff --git a/lisp/gnus/gmm-utils.el b/lisp/gnus/gmm-utils.el
index f314d0e81d7..e773aa3bfac 100644
--- a/lisp/gnus/gmm-utils.el
+++ b/lisp/gnus/gmm-utils.el
@@ -35,7 +35,7 @@
35(defgroup gmm nil 35(defgroup gmm nil
36 "Utility functions for Gnus, Message and MML" 36 "Utility functions for Gnus, Message and MML"
37 :prefix "gmm-" 37 :prefix "gmm-"
38 :version "23.0" ;; No Gnus 38 :version "22.1" ;; Gnus 5.10.9
39 :group 'lisp) 39 :group 'lisp)
40 40
41;; Helper functions from `gnus-utils.el': gmm-verbose, gmm-message, gmm-error 41;; Helper functions from `gnus-utils.el': gmm-verbose, gmm-message, gmm-error
diff --git a/lisp/gnus/gnus-demon.el b/lisp/gnus/gnus-demon.el
index 8df3a3b0e70..bf35f1ddee7 100644
--- a/lisp/gnus/gnus-demon.el
+++ b/lisp/gnus/gnus-demon.el
@@ -218,7 +218,7 @@ time Emacs has been idle for IDLE `gnus-demon-timestep's."
218 (< idle gnus-demon-idle-time)) ; Idle timed out. 218 (< idle gnus-demon-idle-time)) ; Idle timed out.
219 (t (< 0 gnus-demon-idle-time)))) ; Or just need to be idle. 219 (t (< 0 gnus-demon-idle-time)))) ; Or just need to be idle.
220 ;; So we call the handler. 220 ;; So we call the handler.
221 (progn 221 (with-local-quit
222 (ignore-errors (funcall (car handler))) 222 (ignore-errors (funcall (car handler)))
223 ;; And reset the timer. 223 ;; And reset the timer.
224 (setcar (nthcdr 1 handler) 224 (setcar (nthcdr 1 handler)
@@ -232,14 +232,15 @@ time Emacs has been idle for IDLE `gnus-demon-timestep's."
232 (gnus-demon-is-idle-p)) 232 (gnus-demon-is-idle-p))
233 ;; We want to call this handler each and every time that 233 ;; We want to call this handler each and every time that
234 ;; Emacs is idle. 234 ;; Emacs is idle.
235 (ignore-errors (funcall (car handler)))) 235 (with-local-quit
236 (ignore-errors (funcall (car handler)))))
236 (t 237 (t
237 ;; We want to call this handler only if Emacs has been idle 238 ;; We want to call this handler only if Emacs has been idle
238 ;; for a specified number of timesteps. 239 ;; for a specified number of timesteps.
239 (and (not (memq (car handler) gnus-demon-idle-has-been-called)) 240 (and (not (memq (car handler) gnus-demon-idle-has-been-called))
240 (< idle gnus-demon-idle-time) 241 (< idle gnus-demon-idle-time)
241 (gnus-demon-is-idle-p) 242 (gnus-demon-is-idle-p)
242 (progn 243 (with-local-quit
243 (ignore-errors (funcall (car handler))) 244 (ignore-errors (funcall (car handler)))
244 ;; Make sure the handler won't be called once more in 245 ;; Make sure the handler won't be called once more in
245 ;; this idle-cycle. 246 ;; this idle-cycle.
diff --git a/lisp/gnus/gnus-draft.el b/lisp/gnus/gnus-draft.el
index 125e5bebd49..013be410632 100644
--- a/lisp/gnus/gnus-draft.el
+++ b/lisp/gnus/gnus-draft.el
@@ -76,7 +76,6 @@
76 (when (gnus-visual-p 'draft-menu 'menu) 76 (when (gnus-visual-p 'draft-menu 'menu)
77 (gnus-draft-make-menu-bar)) 77 (gnus-draft-make-menu-bar))
78 (gnus-add-minor-mode 'gnus-draft-mode " Draft" gnus-draft-mode-map) 78 (gnus-add-minor-mode 'gnus-draft-mode " Draft" gnus-draft-mode-map)
79 (mml-mode)
80 (gnus-run-hooks 'gnus-draft-mode-hook)))) 79 (gnus-run-hooks 'gnus-draft-mode-hook))))
81 80
82;;; Commands 81;;; Commands
diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el
index 22bbecf7e39..8778d0a4b57 100644
--- a/lisp/gnus/mm-util.el
+++ b/lisp/gnus/mm-util.el
@@ -253,7 +253,7 @@ superset of iso-8859-1."
253 :tag "Other options" 253 :tag "Other options"
254 (cons (symbol :tag "From charset") 254 (cons (symbol :tag "From charset")
255 (symbol :tag "To charset")))) 255 (symbol :tag "To charset"))))
256 :version "23.0" ;; No Gnus 256 :version "22.1" ;; Gnus 5.10.9
257 :group 'mime) 257 :group 'mime)
258 258
259(defcustom mm-charset-eval-alist 259(defcustom mm-charset-eval-alist
@@ -270,7 +270,7 @@ If an article is encoded in an unknown CHARSET, FORM is
270evaluated. This allows to load additional libraries providing 270evaluated. This allows to load additional libraries providing
271charsets on demand. If supported by your Emacs version, you 271charsets on demand. If supported by your Emacs version, you
272could use `autoload-coding-system' here." 272could use `autoload-coding-system' here."
273 :version "23.0" ;; No Gnus 273 :version "22.1" ;; Gnus 5.10.9
274 :type '(list (set :inline t 274 :type '(list (set :inline t
275 (const (windows-1250 . (mm-codepage-setup 1250 t))) 275 (const (windows-1250 . (mm-codepage-setup 1250 t)))
276 (const (windows-1251 . (mm-codepage-setup 1251 t))) 276 (const (windows-1251 . (mm-codepage-setup 1251 t)))
diff --git a/lisp/help.el b/lisp/help.el
index fafe6e57ed0..b79e028b633 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -571,11 +571,9 @@ temporarily enables it to allow getting help on disabled items and buttons."
571 ;; down-events on scroll bars and mode lines: the actual 571 ;; down-events on scroll bars and mode lines: the actual
572 ;; event then is in the second element of the vector. 572 ;; event then is in the second element of the vector.
573 (and (vectorp key) 573 (and (vectorp key)
574 (or (and (eventp (aref key 0)) 574 (let ((last-idx (1- (length key))))
575 (memq 'down (event-modifiers (aref key 0)))) 575 (and (eventp (aref key last-idx))
576 (and (> (length key) 1) 576 (memq 'down (event-modifiers (aref key last-idx)))))
577 (eventp (aref key 1))
578 (memq 'down (event-modifiers (aref key 1)))))
579 (read-event)) 577 (read-event))
580 (list 578 (list
581 key 579 key
@@ -643,11 +641,21 @@ temporarily enables it to allow getting help on disabled items and buttons."
643 (list 641 (list
644 key 642 key
645 (prefix-numeric-value current-prefix-arg) 643 (prefix-numeric-value current-prefix-arg)
646 ;; If KEY is a down-event, read the corresponding up-event 644 ;; If KEY is a down-event, read and discard the
647 ;; and use it as the third argument. 645 ;; corresponding up-event. Note that there are also
646 ;; down-events on scroll bars and mode lines: the actual
647 ;; event then is in the second element of the vector.
648 (and (vectorp key) 648 (and (vectorp key)
649 (let ((last-idx (1- (length key))))
650 (and (eventp (aref key last-idx))
651 (memq 'down (event-modifiers (aref key last-idx)))))
649 (or (and (eventp (aref key 0)) 652 (or (and (eventp (aref key 0))
650 (memq 'down (event-modifiers (aref key 0)))) 653 (memq 'down (event-modifiers (aref key 0)))
654 ;; However, for the C-down-mouse-2 popup
655 ;; menu, there is no subsequent up-event. In
656 ;; this case, the up-event is the next
657 ;; element in the supplied vector.
658 (= (length key) 1))
651 (and (> (length key) 1) 659 (and (> (length key) 1)
652 (eventp (aref key 1)) 660 (eventp (aref key 1))
653 (memq 'down (event-modifiers (aref key 1))))) 661 (memq 'down (event-modifiers (aref key 1)))))
diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el
index 292e158c097..4ab7b9eda41 100644
--- a/lisp/ibuf-ext.el
+++ b/lisp/ibuf-ext.el
@@ -370,7 +370,11 @@ With numeric ARG, enable auto-update if and only if ARG is positive."
370 "Evaluate FORM in each of the buffers. 370 "Evaluate FORM in each of the buffers.
371Does not display the buffer during evaluation. See 371Does not display the buffer during evaluation. See
372`ibuffer-do-view-and-eval' for that." 372`ibuffer-do-view-and-eval' for that."
373 (:interactive "xEval in buffers (form): " 373 (:interactive
374 (list
375 (read-from-minibuffer
376 "Eval in buffers (form): "
377 nil read-expression-map t 'read-expression-history))
374 :opstring "evaluated in" 378 :opstring "evaluated in"
375 :modifier-p :maybe) 379 :modifier-p :maybe)
376 (eval form)) 380 (eval form))
@@ -379,7 +383,11 @@ Does not display the buffer during evaluation. See
379(define-ibuffer-op view-and-eval (form) 383(define-ibuffer-op view-and-eval (form)
380 "Evaluate FORM while displaying each of the marked buffers. 384 "Evaluate FORM while displaying each of the marked buffers.
381To evaluate a form without viewing the buffer, see `ibuffer-do-eval'." 385To evaluate a form without viewing the buffer, see `ibuffer-do-eval'."
382 (:interactive "xEval viewing buffers (form): " 386 (:interactive
387 (list
388 (read-from-minibuffer
389 "Eval viewing in buffers (form): "
390 nil read-expression-map t 'read-expression-history))
383 :opstring "evaluated in" 391 :opstring "evaluated in"
384 :complex t 392 :complex t
385 :modifier-p :maybe) 393 :modifier-p :maybe)
diff --git a/lisp/icomplete.el b/lisp/icomplete.el
index f53ef7c91d1..6687c13275b 100644
--- a/lisp/icomplete.el
+++ b/lisp/icomplete.el
@@ -157,6 +157,12 @@ is minibuffer."
157 (< (length x) (length y)))) 157 (< (length x) (length y))))
158 ", ") 158 ", ")
159 ">")))))) 159 ">"))))))
160;;;_ = icomplete-with-completion-tables
161(defvar icomplete-with-completion-tables '(internal-complete-buffer)
162 "Specialized completion tables with which icomplete should operate.
163
164Icomplete does not operate with any specialized completion tables
165except those on this list.")
160 166
161;;;_ > icomplete-mode (&optional prefix) 167;;;_ > icomplete-mode (&optional prefix)
162;;;###autoload 168;;;###autoload
@@ -184,8 +190,9 @@ Conditions are:
184 (and (window-minibuffer-p (selected-window)) 190 (and (window-minibuffer-p (selected-window))
185 (not executing-kbd-macro) 191 (not executing-kbd-macro)
186 minibuffer-completion-table 192 minibuffer-completion-table
187 ;; (or minibuffer-completing-file-name 193 (or (not (functionp minibuffer-completion-table))
188 (not (functionp minibuffer-completion-table)))) ;; ) 194 (member minibuffer-completion-table
195 icomplete-with-completion-tables))))
189 196
190;;;_ > icomplete-minibuffer-setup () 197;;;_ > icomplete-minibuffer-setup ()
191(defun icomplete-minibuffer-setup () 198(defun icomplete-minibuffer-setup ()
diff --git a/lisp/ido.el b/lisp/ido.el
index 432347717f5..b68a4622ef8 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -2224,7 +2224,6 @@ If INITIAL is non-nil, it specifies the initial input string."
2224 (let ((ido-current-directory (ido-expand-directory default)) 2224 (let ((ido-current-directory (ido-expand-directory default))
2225 (ido-context-switch-command switch-cmd) 2225 (ido-context-switch-command switch-cmd)
2226 ido-directory-nonreadable ido-directory-too-big 2226 ido-directory-nonreadable ido-directory-too-big
2227 (minibuffer-completing-file-name t)
2228 filename) 2227 filename)
2229 2228
2230 (if (or (not ido-mode) (ido-is-slow-ftp-host)) 2229 (if (or (not ido-mode) (ido-is-slow-ftp-host))
@@ -2268,9 +2267,10 @@ If INITIAL is non-nil, it specifies the initial input string."
2268 2267
2269 (unless filename 2268 (unless filename
2270 (setq ido-saved-vc-hb vc-handled-backends) 2269 (setq ido-saved-vc-hb vc-handled-backends)
2271 (setq filename (ido-read-internal item 2270 (let ((minibuffer-completing-file-name t))
2272 (or prompt "Find file: ") 2271 (setq filename (ido-read-internal item
2273 'ido-file-history nil nil initial))) 2272 (or prompt "Find file: ")
2273 'ido-file-history nil nil initial))))
2274 2274
2275 ;; Choose the file name: either the text typed in, or the head 2275 ;; Choose the file name: either the text typed in, or the head
2276 ;; of the list of matches 2276 ;; of the list of matches
diff --git a/lisp/isearch.el b/lisp/isearch.el
index b3455b13ab8..0d253211da4 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -1803,8 +1803,6 @@ Isearch mode."
1803 ((eq char ?|) (isearch-fallback t nil t))) 1803 ((eq char ?|) (isearch-fallback t nil t)))
1804 1804
1805 ;; Append the char to the search string, update the message and re-search. 1805 ;; Append the char to the search string, update the message and re-search.
1806 (if (char-table-p translation-table-for-input)
1807 (setq char (or (aref translation-table-for-input char) char)))
1808 (isearch-process-search-string 1806 (isearch-process-search-string
1809 (char-to-string char) 1807 (char-to-string char)
1810 (if (>= char ?\200) 1808 (if (>= char ?\200)
@@ -1989,6 +1987,36 @@ Can be changed via `isearch-search-fun-function' for special needs."
1989 (t 1987 (t
1990 (if isearch-forward 'search-forward 'search-backward))))) 1988 (if isearch-forward 'search-forward 'search-backward)))))
1991 1989
1990(defun isearch-search-string (string bound noerror)
1991 ;; Search for the first occurance of STRING or its translation. If
1992 ;; found, move point to the end of the occurance, update
1993 ;; isearch-match-beg and isearch-match-end, and return point.
1994 (let ((func (isearch-search-fun))
1995 (len (length string))
1996 pos1 pos2)
1997 (setq pos1 (save-excursion (funcall func string bound noerror)))
1998 (if (and (char-table-p translation-table-for-input)
1999 (> (string-bytes string) len))
2000 (let (translated match-data)
2001 (dotimes (i len)
2002 (let ((x (aref translation-table-for-input (aref string i))))
2003 (when x
2004 (or translated (setq translated (copy-sequence string)))
2005 (aset translated i x))))
2006 (when translated
2007 (save-match-data
2008 (save-excursion
2009 (if (setq pos2 (funcall func translated bound noerror))
2010 (setq match-data (match-data t)))))
2011 (when (and pos2
2012 (or (not pos1)
2013 (if isearch-forward (< pos2 pos1) (> pos2 pos1))))
2014 (setq pos1 pos2)
2015 (set-match-data match-data)))))
2016 (if pos1
2017 (goto-char pos1))
2018 pos1))
2019
1992(defun isearch-search () 2020(defun isearch-search ()
1993 ;; Do the search with the current search string. 2021 ;; Do the search with the current search string.
1994 (isearch-message nil t) 2022 (isearch-message nil t)
@@ -2004,9 +2032,7 @@ Can be changed via `isearch-search-fun-function' for special needs."
2004 (setq isearch-error nil) 2032 (setq isearch-error nil)
2005 (while retry 2033 (while retry
2006 (setq isearch-success 2034 (setq isearch-success
2007 (funcall 2035 (isearch-search-string isearch-string nil t))
2008 (isearch-search-fun)
2009 isearch-string nil t))
2010 ;; Clear RETRY unless we matched some invisible text 2036 ;; Clear RETRY unless we matched some invisible text
2011 ;; and we aren't supposed to do that. 2037 ;; and we aren't supposed to do that.
2012 (if (or (eq search-invisible t) 2038 (if (or (eq search-invisible t)
@@ -2349,7 +2375,7 @@ Attempt to do the search exactly the way the pending isearch would."
2349 (isearch-regexp isearch-lazy-highlight-regexp) 2375 (isearch-regexp isearch-lazy-highlight-regexp)
2350 (search-spaces-regexp search-whitespace-regexp)) 2376 (search-spaces-regexp search-whitespace-regexp))
2351 (condition-case nil 2377 (condition-case nil
2352 (funcall (isearch-search-fun) 2378 (isearch-search-string
2353 isearch-lazy-highlight-last-string 2379 isearch-lazy-highlight-last-string
2354 (if isearch-forward 2380 (if isearch-forward
2355 (min (or isearch-lazy-highlight-end-limit (point-max)) 2381 (min (or isearch-lazy-highlight-end-limit (point-max))
diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el
index 4cbc7da4511..e049579d463 100644
--- a/lisp/jit-lock.el
+++ b/lisp/jit-lock.el
@@ -349,7 +349,7 @@ Defaults to the whole buffer. END can be out of bounds."
349 ;; Fontify chunks beginning at START. The end of a 349 ;; Fontify chunks beginning at START. The end of a
350 ;; chunk is either `end', or the start of a region 350 ;; chunk is either `end', or the start of a region
351 ;; before `end' that has already been fontified. 351 ;; before `end' that has already been fontified.
352 (while start 352 (while (and start (< start end))
353 ;; Determine the end of this chunk. 353 ;; Determine the end of this chunk.
354 (setq next (or (text-property-any start end 'fontified t) 354 (setq next (or (text-property-any start end 'fontified t)
355 end)) 355 end))
@@ -397,16 +397,18 @@ Defaults to the whole buffer. END can be out of bounds."
397 ;; eagerly extend the refontified region with 397 ;; eagerly extend the refontified region with
398 ;; jit-lock-after-change-extend-region-functions. 398 ;; jit-lock-after-change-extend-region-functions.
399 (when (< start orig-start) 399 (when (< start orig-start)
400 (run-with-timer 0 nil 'jit-lock-fontify-again 400 (run-with-timer 0 nil 'jit-lock-force-redisplay
401 (current-buffer) start orig-start)) 401 (current-buffer) start orig-start))
402 402
403 ;; Find the start of the next chunk, if any. 403 ;; Find the start of the next chunk, if any.
404 (setq start (text-property-any next end 'fontified nil)))))))) 404 (setq start (text-property-any next end 'fontified nil))))))))
405 405
406(defun jit-lock-fontify-again (buf start end) 406(defun jit-lock-force-redisplay (buf start end)
407 "Fontify in buffer BUF from START to END." 407 "Force the display engine to re-render buffer BUF from START to END."
408 (with-current-buffer buf 408 (with-current-buffer buf
409 (with-buffer-prepared-for-jit-lock 409 (with-buffer-prepared-for-jit-lock
410 ;; Don't cause refontification (it's already been done), but just do
411 ;; some random buffer change, so as to force redisplay.
410 (put-text-property start end 'fontified t)))) 412 (put-text-property start end 'fontified t))))
411 413
412 414
diff --git a/lisp/lpr.el b/lisp/lpr.el
index dd39eb24349..2c2e8c872c4 100644
--- a/lisp/lpr.el
+++ b/lisp/lpr.el
@@ -141,7 +141,7 @@ See definition of `print-region-1' for calling conventions."
141;; Berkeley systems support -F, and GNU pr supports both -f and -F, 141;; Berkeley systems support -F, and GNU pr supports both -f and -F,
142;; So it looks like -F is a better default. 142;; So it looks like -F is a better default.
143(defcustom lpr-page-header-switches '("-h %s" "-F") 143(defcustom lpr-page-header-switches '("-h %s" "-F")
144 "List of strings to use as options for the page-header-generating program. 144 "*List of strings to use as options for the page-header-generating program.
145If `%s' appears in one of the strings, it is substituted by the page title. 145If `%s' appears in one of the strings, it is substituted by the page title.
146The variable `lpr-page-header-program' specifies the program to use." 146The variable `lpr-page-header-program' specifies the program to use."
147 :type '(repeat string) 147 :type '(repeat string)
diff --git a/lisp/mail/smtpmail.el b/lisp/mail/smtpmail.el
index 3fc0477a0a0..9557844a32a 100644
--- a/lisp/mail/smtpmail.el
+++ b/lisp/mail/smtpmail.el
@@ -541,7 +541,7 @@ This is relative to `smtpmail-queue-dir'.")
541 (decoded (base64-decode-string challenge)) 541 (decoded (base64-decode-string challenge))
542 (hash (rfc2104-hash 'md5 64 16 passwd decoded)) 542 (hash (rfc2104-hash 'md5 64 16 passwd decoded))
543 (response (concat (smtpmail-cred-user cred) " " hash)) 543 (response (concat (smtpmail-cred-user cred) " " hash))
544 (encoded (base64-encode-string response))) 544 (encoded (base64-encode-string response t)))
545 (smtpmail-send-command process (format "%s" encoded)) 545 (smtpmail-send-command process (format "%s" encoded))
546 (if (or (null (car (setq ret (smtpmail-read-response process)))) 546 (if (or (null (car (setq ret (smtpmail-read-response process))))
547 (not (integerp (car ret))) 547 (not (integerp (car ret)))
@@ -554,12 +554,12 @@ This is relative to `smtpmail-queue-dir'.")
554 (>= (car ret) 400)) 554 (>= (car ret) 400))
555 (throw 'done nil)) 555 (throw 'done nil))
556 (smtpmail-send-command 556 (smtpmail-send-command
557 process (base64-encode-string (smtpmail-cred-user cred))) 557 process (base64-encode-string (smtpmail-cred-user cred) t))
558 (if (or (null (car (setq ret (smtpmail-read-response process)))) 558 (if (or (null (car (setq ret (smtpmail-read-response process))))
559 (not (integerp (car ret))) 559 (not (integerp (car ret)))
560 (>= (car ret) 400)) 560 (>= (car ret) 400))
561 (throw 'done nil)) 561 (throw 'done nil))
562 (smtpmail-send-command process (base64-encode-string passwd)) 562 (smtpmail-send-command process (base64-encode-string passwd t))
563 (if (or (null (car (setq ret (smtpmail-read-response process)))) 563 (if (or (null (car (setq ret (smtpmail-read-response process))))
564 (not (integerp (car ret))) 564 (not (integerp (car ret)))
565 (>= (car ret) 400)) 565 (>= (car ret) 400))
@@ -576,7 +576,7 @@ This is relative to `smtpmail-queue-dir'.")
576 (concat "\0" 576 (concat "\0"
577 (smtpmail-cred-user cred) 577 (smtpmail-cred-user cred)
578 "\0" 578 "\0"
579 passwd)))) 579 passwd) t)))
580 (if (or (null (car (setq ret (smtpmail-read-response process)))) 580 (if (or (null (car (setq ret (smtpmail-read-response process))))
581 (not (integerp (car ret))) 581 (not (integerp (car ret)))
582 (not (equal (car ret) 235))) 582 (not (equal (car ret) 235)))
diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog
index a49e3b2a4a3..76875b2849b 100644
--- a/lisp/mh-e/ChangeLog
+++ b/lisp/mh-e/ChangeLog
@@ -1,3 +1,18 @@
12006-09-25 Stephen Gildea <gildea@stop.mail-abuse.org>
2
3 * mh-junk.el (mh-spamassassin-whitelist): Add two missing
4 quotation marks, so that the last two arguments of sa-learn
5 are separated properly (closes SF #1565460).
6
7 * (mh-spamassassin-blacklist): In example .procmailrc, add
8 PATH element to find mhparam on Debian.
9
102006-09-24 Stephen Gildea <gildea@stop.mail-abuse.org>
11
12 * mh-comp.el (mh-send-args): Initialize to "" instead of nil
13 so that we always have a valid string for split-string even if
14 nothing is added in mh-send-letter (closes SF #1564742).
15
12006-07-03 Bill Wohler <wohler@newt.com> 162006-07-03 Bill Wohler <wohler@newt.com>
2 17
3 Release MH-E version 8.0.2. 18 Release MH-E version 8.0.2.
diff --git a/lisp/mh-e/mh-comp.el b/lisp/mh-e/mh-comp.el
index 7156b0cf318..a967a2c8d9e 100644
--- a/lisp/mh-e/mh-comp.el
+++ b/lisp/mh-e/mh-comp.el
@@ -127,7 +127,7 @@ Used by the \\[mh-edit-again] and \\[mh-extract-rejected-mail] commands.")
127 (make-syntax-table text-mode-syntax-table)) 127 (make-syntax-table text-mode-syntax-table))
128 (modify-syntax-entry ?% "." mh-letter-mode-syntax-table)) 128 (modify-syntax-entry ?% "." mh-letter-mode-syntax-table))
129 129
130(defvar mh-send-args nil 130(defvar mh-send-args ""
131 "Extra args to pass to \"send\" command.") 131 "Extra args to pass to \"send\" command.")
132 132
133(defvar mh-annotate-char nil 133(defvar mh-annotate-char nil
diff --git a/lisp/mh-e/mh-junk.el b/lisp/mh-e/mh-junk.el
index 9d02db0dc11..67f267d672f 100644
--- a/lisp/mh-e/mh-junk.el
+++ b/lisp/mh-e/mh-junk.el
@@ -115,6 +115,9 @@ http://spamassassin.org/.
115To use SpamAssassin, add the following recipes to 115To use SpamAssassin, add the following recipes to
116\".procmailrc\": 116\".procmailrc\":
117 117
118 # Append to $PATH the location of mhparam in some distros.
119 PATH=$PATH:/usr/bin/mh
120
118 MAILDIR=$HOME/`mhparam Path` 121 MAILDIR=$HOME/`mhparam Path`
119 122
120 # Fight spam with SpamAssassin. 123 # Fight spam with SpamAssassin.
@@ -244,7 +247,7 @@ See `mh-spamassassin-blacklist' for more information."
244 (when mh-sa-learn-executable 247 (when mh-sa-learn-executable
245 (message "Recategorizing this message as ham...") 248 (message "Recategorizing this message as ham...")
246 (call-process mh-sa-learn-executable msg-file mh-temp-buffer nil 249 (call-process mh-sa-learn-executable msg-file mh-temp-buffer nil
247 "--single" "--ham" "--local --no-rebuild")) 250 "--single" "--ham" "--local" "--no-rebuild"))
248 (message "Whitelisting message %d..." msg) 251 (message "Whitelisting message %d..." msg)
249 (setq from 252 (setq from
250 (car (mh-funcall-if-exists 253 (car (mh-funcall-if-exists
diff --git a/lisp/mouse.el b/lisp/mouse.el
index 18b16c6460d..0b6cccd86c6 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -778,7 +778,7 @@ If the click is in the echo area, display the `*Messages*' buffer."
778(defun mouse-posn-property (pos property) 778(defun mouse-posn-property (pos property)
779 "Look for a property at click position. 779 "Look for a property at click position.
780POS may be either a buffer position or a click position like 780POS may be either a buffer position or a click position like
781those returned from `start-event'. If the click position is on 781those returned from `event-start'. If the click position is on
782a string, the text property PROPERTY is examined. 782a string, the text property PROPERTY is examined.
783If this is nil or the click is not on a string, then 783If this is nil or the click is not on a string, then
784the corresponding buffer position is searched for PROPERTY. 784the corresponding buffer position is searched for PROPERTY.
diff --git a/lisp/pcvs.el b/lisp/pcvs.el
index a9105227bfd..1f2bad13dcd 100644
--- a/lisp/pcvs.el
+++ b/lisp/pcvs.el
@@ -618,7 +618,6 @@ If non-nil, NEW means to create a new buffer no matter what."
618 (str (car hf)) 618 (str (car hf))
619 (done "") 619 (done "")
620 (tin (ewoc-nth cvs-cookies 0))) 620 (tin (ewoc-nth cvs-cookies 0)))
621 (if (eq (length str) 2) (setq str ""))
622 ;; look for the first *real* fileinfo (to determine emptyness) 621 ;; look for the first *real* fileinfo (to determine emptyness)
623 (while 622 (while
624 (and tin 623 (and tin
@@ -626,14 +625,17 @@ If non-nil, NEW means to create a new buffer no matter what."
626 '(MESSAGE DIRCHANGE))) 625 '(MESSAGE DIRCHANGE)))
627 (setq tin (ewoc-next cvs-cookies tin))) 626 (setq tin (ewoc-next cvs-cookies tin)))
628 (if add 627 (if add
629 (setq str (concat "-- Running " cmd " ...\n" str)) 628 (progn
629 ;; Remove the default empty line, if applicable.
630 (if (not (string-match "." str)) (setq str "\n"))
631 (setq str (concat "-- Running " cmd " ...\n" str)))
630 (if (not (string-match 632 (if (not (string-match
631 (concat "^-- Running " (regexp-quote cmd) " \\.\\.\\.\n") str)) 633 (concat "^-- Running " (regexp-quote cmd) " \\.\\.\\.\n") str))
632 (error "Internal PCL-CVS error while removing message") 634 (error "Internal PCL-CVS error while removing message")
633 (setq str (replace-match "" t t str)) 635 (setq str (replace-match "" t t str))
634 (if (zerop (length str)) (setq str "\n")) 636 ;; Re-add the default empty line, if applicable.
635 (setq done (concat "-- last cmd: " cmd " --")))) 637 (if (not (string-match "." str)) (setq str "\n\n"))
636 (setq str (concat str "\n") done (concat done "\n")) 638 (setq done (concat "-- last cmd: " cmd " --\n"))))
637 ;; set the new header and footer 639 ;; set the new header and footer
638 (ewoc-set-hf cvs-cookies 640 (ewoc-set-hf cvs-cookies
639 str (concat "\n--------------------- " 641 str (concat "\n--------------------- "
diff --git a/lisp/printing.el b/lisp/printing.el
index 94be3dfbfab..18252155e49 100644
--- a/lisp/printing.el
+++ b/lisp/printing.el
@@ -5,10 +5,10 @@
5 5
6;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> 6;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
7;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> 7;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
8;; Time-stamp: <2006-02-06 15:06:40 ttn> 8;; Time-stamp: <2006/09/15 18:53:14 vinicius>
9;; Keywords: wp, print, PostScript 9;; Keywords: wp, print, PostScript
10;; Version: 6.8.4 10;; Version: 6.8.4
11;; X-URL: http://www.cpqd.com.br/~vinicius/emacs/ 11;; X-URL: http://www.emacswiki.org/cgi-bin/wiki/ViniciusJoseLatorre
12 12
13(defconst pr-version "6.8.4" 13(defconst pr-version "6.8.4"
14 "printing.el, v 6.8.4 <2005/06/11 vinicius> 14 "printing.el, v 6.8.4 <2005/06/11 vinicius>
@@ -2799,7 +2799,7 @@ See `pr-ps-printer-alist'.")
2799 2799
2800 2800
2801(defalias 'pr-get-symbol 2801(defalias 'pr-get-symbol
2802 (if (fboundp 'easy-menu-intern) 2802 (if (fboundp 'easy-menu-intern) ; hacked from easymenu.el
2803 'easy-menu-intern 2803 'easy-menu-intern
2804 (lambda (s) (if (stringp s) (intern s) s)))) 2804 (lambda (s) (if (stringp s) (intern s) s))))
2805 2805
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index e6a6a8ed9c5..7d9ce41229c 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -1784,17 +1784,31 @@ and overlay is highlighted between MK and END-MK."
1784 (current-buffer))) 1784 (current-buffer)))
1785 (move-overlay compilation-highlight-overlay 1785 (move-overlay compilation-highlight-overlay
1786 (point) end (current-buffer))) 1786 (point) end (current-buffer)))
1787 (if (numberp next-error-highlight) 1787 (if (or (eq next-error-highlight t)
1788 (setq next-error-highlight-timer 1788 (numberp next-error-highlight))
1789 (run-at-time next-error-highlight nil 'delete-overlay 1789 ;; We want highlighting: delete overlay on next input.
1790 compilation-highlight-overlay))) 1790 (add-hook 'pre-command-hook
1791 (if (not (or (eq next-error-highlight t) 1791 'compilation-goto-locus-delete-o)
1792 (numberp next-error-highlight))) 1792 ;; We don't want highlighting: delete overlay now.
1793 (delete-overlay compilation-highlight-overlay)))))) 1793 (delete-overlay compilation-highlight-overlay))
1794 ;; We want highlighting for a limited time:
1795 ;; set up a timer to delete it.
1796 (when (numberp next-error-highlight)
1797 (setq next-error-highlight-timer
1798 (run-at-time next-error-highlight nil
1799 'compilation-goto-locus-delete-o)))))))
1794 (when (and (eq next-error-highlight 'fringe-arrow)) 1800 (when (and (eq next-error-highlight 'fringe-arrow))
1801 ;; We want a fringe arrow (instead of highlighting).
1795 (setq next-error-overlay-arrow-position 1802 (setq next-error-overlay-arrow-position
1796 (copy-marker (line-beginning-position)))))) 1803 (copy-marker (line-beginning-position))))))
1797 1804
1805(defun compilation-goto-locus-delete-o ()
1806 (delete-overlay compilation-highlight-overlay)
1807 ;; Get rid of timer and hook that would try to do this again.
1808 (if (timerp next-error-highlight-timer)
1809 (cancel-timer next-error-highlight-timer))
1810 (remove-hook 'pre-command-hook
1811 'compilation-goto-locus-delete-o))
1798 1812
1799(defun compilation-find-file (marker filename directory &rest formats) 1813(defun compilation-find-file (marker filename directory &rest formats)
1800 "Find a buffer for file FILENAME. 1814 "Find a buffer for file FILENAME.
diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el
index ad44753f352..69f4549a0bf 100644
--- a/lisp/progmodes/cperl-mode.el
+++ b/lisp/progmodes/cperl-mode.el
@@ -3914,12 +3914,14 @@ CHARS is a string that contains good characters to have before us (however,
3914 (if (get-text-property (point) 'here-doc-group) 3914 (if (get-text-property (point) 'here-doc-group)
3915 (progn 3915 (progn
3916 (goto-char 3916 (goto-char
3917 (previous-single-property-change (point) 'here-doc-group)) 3917 (or (previous-single-property-change (point) 'here-doc-group)
3918 (point)))
3918 (beginning-of-line 0))) 3919 (beginning-of-line 0)))
3919 (if (get-text-property (point) 'in-pod) 3920 (if (get-text-property (point) 'in-pod)
3920 (progn 3921 (progn
3921 (goto-char 3922 (goto-char
3922 (previous-single-property-change (point) 'in-pod)) 3923 (or (previous-single-property-change (point) 'in-pod)
3924 (point)))
3923 (beginning-of-line 0))) 3925 (beginning-of-line 0)))
3924 (if (looking-at "^[ \t]*\\(#\\|$\\)") nil ; Only comment, skip 3926 (if (looking-at "^[ \t]*\\(#\\|$\\)") nil ; Only comment, skip
3925 ;; Else: last iteration, or a label 3927 ;; Else: last iteration, or a label
diff --git a/lisp/progmodes/ebnf2ps.el b/lisp/progmodes/ebnf2ps.el
index bce4381c614..9f27c8a60f1 100644
--- a/lisp/progmodes/ebnf2ps.el
+++ b/lisp/progmodes/ebnf2ps.el
@@ -5,10 +5,10 @@
5 5
6;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> 6;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
7;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br> 7;; Maintainer: Vinicius Jose Latorre <viniciusjl@ig.com.br>
8;; Time-stamp: <2005-09-18 07:27:20 deego> 8;; Time-stamp: <2006/09/26 21:49:46 vinicius>
9;; Keywords: wp, ebnf, PostScript 9;; Keywords: wp, ebnf, PostScript
10;; Version: 4.2 10;; Version: 4.3
11;; X-URL: http://www.cpqd.com.br/~vinicius/emacs/ 11;; X-URL: http://www.emacswiki.org/cgi-bin/wiki/ViniciusJoseLatorre
12 12
13;; This file is part of GNU Emacs. 13;; This file is part of GNU Emacs.
14 14
@@ -27,8 +27,8 @@
27;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 27;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
28;; Boston, MA 02110-1301, USA. 28;; Boston, MA 02110-1301, USA.
29 29
30(defconst ebnf-version "4.2" 30(defconst ebnf-version "4.3"
31 "ebnf2ps.el, v 4.2 <2004/04/04 vinicius> 31 "ebnf2ps.el, v 4.3 <2006/09/26 vinicius>
32 32
33Vinicius's last change version. When reporting bugs, please also 33Vinicius's last change version. When reporting bugs, please also
34report the version of Emacs, if any, that ebnf2ps was running with. 34report the version of Emacs, if any, that ebnf2ps was running with.
@@ -73,18 +73,18 @@ Please send all bug fixes and enhancements to
73;; ebnf2ps provides the following commands for generating PostScript syntactic 73;; ebnf2ps provides the following commands for generating PostScript syntactic
74;; chart images of Emacs buffers: 74;; chart images of Emacs buffers:
75;; 75;;
76;; ebnf-print-directory 76;; ebnf-print-directory
77;; ebnf-print-file 77;; ebnf-print-file
78;; ebnf-print-buffer 78;; ebnf-print-buffer
79;; ebnf-print-region 79;; ebnf-print-region
80;; ebnf-spool-directory 80;; ebnf-spool-directory
81;; ebnf-spool-file 81;; ebnf-spool-file
82;; ebnf-spool-buffer 82;; ebnf-spool-buffer
83;; ebnf-spool-region 83;; ebnf-spool-region
84;; ebnf-eps-directory 84;; ebnf-eps-directory
85;; ebnf-eps-file 85;; ebnf-eps-file
86;; ebnf-eps-buffer 86;; ebnf-eps-buffer
87;; ebnf-eps-region 87;; ebnf-eps-region
88;; 88;;
89;; These commands all perform essentially the same function: they generate 89;; These commands all perform essentially the same function: they generate
90;; PostScript syntactic chart images suitable for printing on a PostScript 90;; PostScript syntactic chart images suitable for printing on a PostScript
@@ -94,14 +94,14 @@ Please send all bug fixes and enhancements to
94;; The word "print", "spool" and "eps" in the command name determines when the 94;; The word "print", "spool" and "eps" in the command name determines when the
95;; PostScript image is sent to the printer (or file): 95;; PostScript image is sent to the printer (or file):
96;; 96;;
97;; print - The PostScript image is immediately sent to the printer; 97;; print - The PostScript image is immediately sent to the printer;
98;; 98;;
99;; spool - The PostScript image is saved temporarily in an Emacs buffer. 99;; spool - The PostScript image is saved temporarily in an Emacs buffer.
100;; Many images may be spooled locally before printing them. To 100;; Many images may be spooled locally before printing them. To
101;; send the spooled images to the printer, use the command 101;; send the spooled images to the printer, use the command
102;; `ebnf-despool'. 102;; `ebnf-despool'.
103;; 103;;
104;; eps - The PostScript image is immediately sent to a EPS file. 104;; eps - The PostScript image is immediately sent to a EPS file.
105;; 105;;
106;; The spooling mechanism is the same as used by ps-print and was designed for 106;; The spooling mechanism is the same as used by ps-print and was designed for
107;; printing lots of small files to save paper that would otherwise be wasted on 107;; printing lots of small files to save paper that would otherwise be wasted on
@@ -120,22 +120,22 @@ Please send all bug fixes and enhancements to
120;; The word "directory", "file", "buffer" or "region" in the command name 120;; The word "directory", "file", "buffer" or "region" in the command name
121;; determines how much of the buffer is printed: 121;; determines how much of the buffer is printed:
122;; 122;;
123;; directory - Read files in the directory and print them. 123;; directory - Read files in the directory and print them.
124;; 124;;
125;; file - Read file and print it. 125;; file - Read file and print it.
126;; 126;;
127;; buffer - Print the entire buffer. 127;; buffer - Print the entire buffer.
128;; 128;;
129;; region - Print just the current region. 129;; region - Print just the current region.
130;; 130;;
131;; Two ebnf- command examples: 131;; Two ebnf- command examples:
132;; 132;;
133;; ebnf-print-buffer - translate and print the entire buffer, and send it 133;; ebnf-print-buffer - translate and print the entire buffer, and send it
134;; immediately to the printer. 134;; immediately to the printer.
135;; 135;;
136;; ebnf-spool-region - translate and print just the current region, and 136;; ebnf-spool-region - translate and print just the current region, and
137;; spool the image in Emacs to send to the printer 137;; spool the image in Emacs to send to the printer
138;; later. 138;; later.
139;; 139;;
140;; Note that `ebnf-eps-directory', `ebnf-eps-file', `ebnf-eps-buffer' and 140;; Note that `ebnf-eps-directory', `ebnf-eps-file', `ebnf-eps-buffer' and
141;; `ebnf-eps-region' never spool the EPS image, so they don't use the ps-print 141;; `ebnf-eps-region' never spool the EPS image, so they don't use the ps-print
@@ -148,13 +148,13 @@ Please send all bug fixes and enhancements to
148;; 148;;
149;; To translate and print your buffer, type 149;; To translate and print your buffer, type
150;; 150;;
151;; M-x ebnf-print-buffer 151;; M-x ebnf-print-buffer
152;; 152;;
153;; or substitute one of the other four ebnf- commands. The command will 153;; or substitute one of the other four ebnf- commands. The command will
154;; generate the PostScript image and print or spool it as specified. By giving 154;; generate the PostScript image and print or spool it as specified. By giving
155;; the command a prefix argument 155;; the command a prefix argument
156;; 156;;
157;; C-u M-x ebnf-print-buffer 157;; C-u M-x ebnf-print-buffer
158;; 158;;
159;; it will save the PostScript image to a file instead of sending it to the 159;; it will save the PostScript image to a file instead of sending it to the
160;; printer; you will be prompted for the name of the file to save the image to. 160;; printer; you will be prompted for the name of the file to save the image to.
@@ -162,7 +162,7 @@ Please send all bug fixes and enhancements to
162;; you may save the spooled images to a file by giving a prefix argument to 162;; you may save the spooled images to a file by giving a prefix argument to
163;; `ebnf-despool': 163;; `ebnf-despool':
164;; 164;;
165;; C-u M-x ebnf-despool 165;; C-u M-x ebnf-despool
166;; 166;;
167;; When invoked this way, `ebnf-despool' will prompt you for the name of the 167;; When invoked this way, `ebnf-despool' will prompt you for the name of the
168;; file to save to. 168;; file to save to.
@@ -172,9 +172,9 @@ Please send all bug fixes and enhancements to
172;; 172;;
173;; Any of the `ebnf-' commands can be bound to keys. Here are some examples: 173;; Any of the `ebnf-' commands can be bound to keys. Here are some examples:
174;; 174;;
175;; (global-set-key 'f22 'ebnf-print-buffer) ;f22 is prsc 175;; (global-set-key 'f22 'ebnf-print-buffer) ;f22 is prsc
176;; (global-set-key '(shift f22) 'ebnf-print-region) 176;; (global-set-key '(shift f22) 'ebnf-print-region)
177;; (global-set-key '(control f22) 'ebnf-despool) 177;; (global-set-key '(control f22) 'ebnf-despool)
178;; 178;;
179;; 179;;
180;; Invoking Ebnf2ps in Batch 180;; Invoking Ebnf2ps in Batch
@@ -523,14 +523,14 @@ Please send all bug fixes and enhancements to
523;; 523;;
524;; The following table summarizes the results: 524;; The following table summarizes the results:
525;; 525;;
526;; EPS FILE NAME NO SORT ASCENDING SORT DESCENDING SORT 526;; EPS FILE NAME NO SORT ASCENDING SORT DESCENDING SORT
527;; ebnf--AA.eps A C A C C A 527;; ebnf--AA.eps A C A C C A
528;; ebnf--BB.eps C B B C C B 528;; ebnf--BB.eps C B B C C B
529;; ebnf--CC.eps A C B F A B C F F C B A 529;; ebnf--CC.eps A C B F A B C F F C B A
530;; ebnf--D.eps D D D 530;; ebnf--D.eps D D D
531;; ebnf--E.eps E E E 531;; ebnf--E.eps E E E
532;; ebnf--G.eps G G G 532;; ebnf--G.eps G G G
533;; ebnf--Z.eps Z Z Z 533;; ebnf--Z.eps Z Z Z
534;; 534;;
535;; As you can see if EPS actions is not used, each single production is 535;; As you can see if EPS actions is not used, each single production is
536;; generated per EPS file. To avoid overriding EPS files, use names in ;[ that 536;; generated per EPS file. To avoid overriding EPS files, use names in ;[ that
@@ -692,6 +692,11 @@ Please send all bug fixes and enhancements to
692;; 692;;
693;; `ebnf-line-color' Specify flow line color. 693;; `ebnf-line-color' Specify flow line color.
694;; 694;;
695;; `ebnf-arrow-extra-width' Specify extra width for arrow shape
696;; drawing.
697;;
698;; `ebnf-arrow-scale' Specify the arrow scale.
699;;
695;; `ebnf-user-arrow' Specify a sexp for user arrow shape (a 700;; `ebnf-user-arrow' Specify a sexp for user arrow shape (a
696;; PostScript code). 701;; PostScript code).
697;; 702;;
@@ -824,6 +829,8 @@ Please send all bug fixes and enhancements to
824;; entry is the vertical position used to know where it should 829;; entry is the vertical position used to know where it should
825;; be drawn the flow line in the current element. 830;; be drawn the flow line in the current element.
826;; 831;;
832;; extra is given by `ebnf-arrow-extra-width'.
833;;
827;; 834;;
828;; * SPECIAL, TERMINAL and NON-TERMINAL 835;; * SPECIAL, TERMINAL and NON-TERMINAL
829;; 836;;
@@ -835,17 +842,17 @@ Please send all bug fixes and enhancements to
835;; : | : : | : } font height / 2 } 842;; : | : : | : } font height / 2 }
836;; : +==============+...:............................... 843;; : +==============+...:...............................
837;; : : : : : : 844;; : : : : : :
838;; : : : : : :...................... 845;; : : : : : :.........................
839;; : : : : : } font height } 846;; : : : : : } font height }
840;; : : : : :....... } 847;; : : : : :....... }
841;; : : : : } font height / 2 } 848;; : : : : } font height / 2 }
842;; : : : :........... } 849;; : : : :........... }
843;; : : : } text width } width 850;; : : : } text width } width
844;; : : :.................. } 851;; : : :.................. }
845;; : : } font height / 2 } 852;; : : } font height / 2 }
846;; : :...................... } 853;; : :...................... }
847;; : } font height } 854;; : } font height + extra }
848;; :............................................. 855;; :.................................................
849;; 856;;
850;; 857;;
851;; * OPTIONAL 858;; * OPTIONAL
@@ -976,21 +983,21 @@ Please send all bug fixes and enhancements to
976;; : | : : : : | : } font height / 2 } 983;; : | : : : : | : } font height / 2 }
977;; : +================+...:............................... 984;; : +================+...:...............................
978;; : : : : : : : : 985;; : : : : : : : :
979;; : : : : : : : :...................... 986;; : : : : : : : :..........................
980;; : : : : : : : } font height } 987;; : : : : : : : } font height }
981;; : : : : : : :....... } 988;; : : : : : : :....... }
982;; : : : : : : } font height / 2 } 989;; : : : : : : } font height / 2 }
983;; : : : : : :........... } 990;; : : : : : :........... }
984;; : : : : : } X width } 991;; : : : : : } X width }
985;; : : : : :............... } 992;; : : : : :............... }
986;; : : : : } font height / 2 } width 993;; : : : : } font height / 2 } width
987;; : : : :.................. } 994;; : : : :.................. }
988;; : : : } text width } 995;; : : : } text width }
989;; : : :..................... } 996;; : : :..................... }
990;; : : } font height / 2 } 997;; : : } font height / 2 }
991;; : :........................ } 998;; : :........................ }
992;; : } font height } 999;; : } font height + extra }
993;; :............................................... 1000;; :...................................................
994;; 1001;;
995;; 1002;;
996;; * EXCEPT 1003;; * EXCEPT
@@ -1003,21 +1010,21 @@ Please send all bug fixes and enhancements to
1003;; : | : : : : | : } font height / 2 } 1010;; : | : : : : | : } font height / 2 }
1004;; : +==================+...:............................... 1011;; : +==================+...:...............................
1005;; : : : : : : : : 1012;; : : : : : : : :
1006;; : : : : : : : :...................... 1013;; : : : : : : : :..........................
1007;; : : : : : : : } font height } 1014;; : : : : : : : } font height }
1008;; : : : : : : :....... } 1015;; : : : : : : :....... }
1009;; : : : : : : } font height / 2 } 1016;; : : : : : : } font height / 2 }
1010;; : : : : : :........... } 1017;; : : : : : :........... }
1011;; : : : : : } Y width } 1018;; : : : : : } Y width }
1012;; : : : : :............... } 1019;; : : : : :............... }
1013;; : : : : } font height } width 1020;; : : : : } font height } width
1014;; : : : :................... } 1021;; : : : :................... }
1015;; : : : } X width } 1022;; : : : } X width }
1016;; : : :....................... } 1023;; : : :....................... }
1017;; : : } font height / 2 } 1024;; : : } font height / 2 }
1018;; : :.......................... } 1025;; : :.......................... }
1019;; : } font height } 1026;; : } font height + extra }
1020;; :................................................. 1027;; :.....................................................
1021;; 1028;;
1022;; NOTE: If Y element is empty, it's draw nothing at Y place. 1029;; NOTE: If Y element is empty, it's draw nothing at Y place.
1023;; 1030;;
@@ -1089,7 +1096,8 @@ Please send all bug fixes and enhancements to
1089;; ---------------- 1096;; ----------------
1090;; 1097;;
1091;; Thanks to Drew Adams <drew.adams@oracle.com> for suggestions: 1098;; Thanks to Drew Adams <drew.adams@oracle.com> for suggestions:
1092;; - `ebnf-production-name-p', `ebnf-stop-on-error', 1099;; - `ebnf-arrow-extra-width', `ebnf-arrow-scale',
1100;; `ebnf-production-name-p', `ebnf-stop-on-error',
1093;; `ebnf-file-suffix-regexp'and `ebnf-special-show-delimiter' variables. 1101;; `ebnf-file-suffix-regexp'and `ebnf-special-show-delimiter' variables.
1094;; - `ebnf-delete-style', `ebnf-eps-file' and `ebnf-eps-directory' 1102;; - `ebnf-delete-style', `ebnf-eps-file' and `ebnf-eps-directory'
1095;; commands. 1103;; commands.
@@ -1911,6 +1919,29 @@ special."
1911 :group 'ebnf2ps) 1919 :group 'ebnf2ps)
1912 1920
1913 1921
1922(defcustom ebnf-arrow-extra-width
1923 (if (eq ebnf-arrow-shape 'none)
1924 0.0
1925 (* (sqrt 5.0) 0.65 ebnf-line-width))
1926 "*Specify extra width for arrow shape drawing.
1927
1928The extra width is used to avoid that the arrowhead and the terminal border
1929overlap. It depens on `ebnf-arrow-shape' and `ebnf-line-width'."
1930 :type 'number
1931 :version "22"
1932 :group 'ebnf-shape)
1933
1934
1935(defcustom ebnf-arrow-scale 1.0
1936 "*Specify the arrow scale.
1937
1938Values lower than 1.0, shrink the arrow.
1939Values greater than 1.0, expand the arrow."
1940 :type 'number
1941 :version "22"
1942 :group 'ebnf-shape)
1943
1944
1914(defcustom ebnf-debug-ps nil 1945(defcustom ebnf-debug-ps nil
1915 "*Non-nil means to generate PostScript debug procedures. 1946 "*Non-nil means to generate PostScript debug procedures.
1916 1947
@@ -2859,9 +2890,9 @@ See documentation for `ebnf-terminal-shape', `ebnf-non-terminal-shape' and
2859/HeightNT FontHeight FontHeight add def 2890/HeightNT FontHeight FontHeight add def
2860 2891
2861/T HeightT HeightNT add 0.5 mul def 2892/T HeightT HeightNT add 0.5 mul def
2862/hT T 0.5 mul def 2893/hT T 0.5 mul def
2863/hT2 hT 0.5 mul def 2894/hT2 hT 0.5 mul ArrowScale mul def
2864/hT4 hT 0.25 mul def 2895/hT4 hT 0.25 mul ArrowScale mul def
2865 2896
2866/Er 0.1 def % Error factor 2897/Er 0.1 def % Error factor
2867 2898
@@ -2947,6 +2978,7 @@ See documentation for `ebnf-terminal-shape', `ebnf-non-terminal-shape' and
2947 RA-vector ArrowShape get exec 2978 RA-vector ArrowShape get exec
2948 Gstroke 2979 Gstroke
2949 moveto 2980 moveto
2981 ExtraWidth 0 rmoveto
2950}def 2982}def
2951 2983
2952% rotation DrawArrow 2984% rotation DrawArrow
@@ -3245,7 +3277,7 @@ See documentation for `ebnf-terminal-shape', `ebnf-non-terminal-shape' and
3245% string width prepare-width |- string 3277% string width prepare-width |- string
3246/prepare-width 3278/prepare-width
3247{/width exch def 3279{/width exch def
3248 dup stringwidth pop space add space add width exch sub 0.5 mul 3280 dup stringwidth pop space add space add width exch sub ExtraWidth sub 0.5 mul
3249 /w exch def 3281 /w exch def
3250}def 3282}def
3251 3283
@@ -4877,7 +4909,6 @@ killed after process termination."
4877 (progn 4909 (progn
4878 ;; adjust creator comment 4910 ;; adjust creator comment
4879 (end-of-line) 4911 (end-of-line)
4880 (backward-char)
4881 (insert " & ebnf2ps v" ebnf-version) 4912 (insert " & ebnf2ps v" ebnf-version)
4882 ;; insert ebnf settings & engine 4913 ;; insert ebnf settings & engine
4883 (goto-char (point-max)) 4914 (goto-char (point-max))
@@ -5066,6 +5097,10 @@ killed after process termination."
5066 (format "/ShadowR %s def\n" 5097 (format "/ShadowR %s def\n"
5067 (ebnf-boolean ebnf-repeat-shadow)) 5098 (ebnf-boolean ebnf-repeat-shadow))
5068 ;; miscellaneous 5099 ;; miscellaneous
5100 (format "/ExtraWidth %s def\n"
5101 (ebnf-format-float ebnf-arrow-extra-width))
5102 (format "/ArrowScale %s def\n"
5103 (ebnf-format-float ebnf-arrow-scale))
5069 (format "/DefaultWidth %s def\n" 5104 (format "/DefaultWidth %s def\n"
5070 (ebnf-format-float ebnf-default-width)) 5105 (ebnf-format-float ebnf-default-width))
5071 (format "/LineWidth %s def\n" 5106 (format "/LineWidth %s def\n"
@@ -5152,7 +5187,7 @@ killed after process termination."
5152 (len (length (ebnf-node-name node)))) 5187 (len (length (ebnf-node-name node))))
5153 (ebnf-node-entry node (* height 0.5)) 5188 (ebnf-node-entry node (* height 0.5))
5154 (ebnf-node-height node height) 5189 (ebnf-node-height node height)
5155 (ebnf-node-width node (+ ebnf-basic-width space 5190 (ebnf-node-width node (+ ebnf-basic-width ebnf-arrow-extra-width space
5156 (* len font-width) 5191 (* len font-width)
5157 space ebnf-basic-width)))) 5192 space ebnf-basic-width))))
5158 5193
@@ -5173,6 +5208,7 @@ killed after process termination."
5173 ebnf-font-height-S) 5208 ebnf-font-height-S)
5174 ebnf-space-R ebnf-space-R)) 5209 ebnf-space-R ebnf-space-R))
5175 (ebnf-node-width repeat (+ (ebnf-node-width element) 5210 (ebnf-node-width repeat (+ (ebnf-node-width element)
5211 ebnf-arrow-extra-width
5176 ebnf-space-R ebnf-space-R ebnf-space-R 5212 ebnf-space-R ebnf-space-R ebnf-space-R
5177 ebnf-horizontal-space 5213 ebnf-horizontal-space
5178 (* (length times) ebnf-font-width-R))))) 5214 (* (length times) ebnf-font-width-R)))))
@@ -5194,6 +5230,7 @@ killed after process termination."
5194 ebnf-space-E ebnf-space-E)) 5230 ebnf-space-E ebnf-space-E))
5195 (ebnf-node-width except (+ (ebnf-node-width factor) 5231 (ebnf-node-width except (+ (ebnf-node-width factor)
5196 (ebnf-node-width element) 5232 (ebnf-node-width element)
5233 ebnf-arrow-extra-width
5197 ebnf-space-E ebnf-space-E 5234 ebnf-space-E ebnf-space-E
5198 ebnf-space-E ebnf-space-E 5235 ebnf-space-E ebnf-space-E
5199 ebnf-font-width-E 5236 ebnf-font-width-E
diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el
index 109455e9e61..c7341a9f871 100644
--- a/lisp/progmodes/make-mode.el
+++ b/lisp/progmodes/make-mode.el
@@ -836,8 +836,8 @@ Makefile mode can be configured by modifying the following variables:
836 nil nil 836 nil nil
837 ((?$ . ".")) 837 ((?$ . "."))
838 backward-paragraph 838 backward-paragraph
839 (font-lock-syntactic-keywords . makefile-font-lock-syntactic-keywords) 839 (font-lock-syntactic-keywords
840 (font-lock-support-mode))) ; JIT breaks on long series of continuation lines. 840 . makefile-font-lock-syntactic-keywords)))
841 841
842 ;; Add-log. 842 ;; Add-log.
843 (make-local-variable 'add-log-current-defun-function) 843 (make-local-variable 'add-log-current-defun-function)
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index a08f999f089..ba10393a89f 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -2472,34 +2472,43 @@ we go to the end of the previous line and do not check for continuations."
2472 (point)) 2472 (point))
2473 (skip-chars-backward " \t;") 2473 (skip-chars-backward " \t;")
2474 (unless (looking-at "\\s-*;;") 2474 (unless (looking-at "\\s-*;;")
2475 (skip-chars-backward "^)}];\"'`({[") 2475 (skip-chars-backward "^)}];\"'`({[")
2476 (setq c (char-before)))) 2476 (setq c (char-before)))
2477 (sh-debug "stopping at %d c is %s start=%d min-point=%d" 2477 (sh-debug "stopping at %d c is %s start=%d min-point=%d"
2478 (point) c start min-point) 2478 (point) c start min-point)
2479 (if (< (point) min-point) 2479 (if (< (point) min-point)
2480 (error "point %d < min-point %d" (point) min-point)) 2480 (error "point %d < min-point %d" (point) min-point))
2481 (cond 2481 (cond
2482 ((looking-at "\\s-*;;") 2482 ((looking-at "\\s-*;;")
2483 ;; (message "Found ;; !") 2483 ;; (message "Found ;; !")
2484 ";;") 2484 ";;")
2485 ((or (eq c ?\n) 2485 ((or (eq c ?\n)
2486 (eq c nil) 2486 (eq c nil)
2487 (eq c ?\;)) 2487 (eq c ?\;))
2488 (save-excursion 2488 (let (done kwd next
2489 ;; skip forward over white space newline and \ at eol 2489 (boundary (point)))
2490 (skip-chars-forward " \t\n\\\\") 2490 (skip-chars-forward " \t\n\\\\")
2491 (sh-debug "Now at %d start=%d" (point) start) 2491 (while (and (not done) (not (eobp)))
2492 (if (>= (point) start) 2492 (if next (setq boundary next))
2493 (progn 2493 ;; skip forward over white space newline and \ at eol
2494 (sh-debug "point: %d >= start: %d" (point) start) 2494 (sh-debug "Now at %d start=%d" (point) start)
2495 nil) 2495 (if (>= (point) start)
2496 (sh-get-word)) 2496 (progn
2497 )) 2497 (sh-debug "point: %d >= start: %d" (point) start)
2498 (t 2498 nil)
2499 ;; c -- return a string 2499 (setq kwd (sh-get-word))
2500 (char-to-string c) 2500 (unless (eobp) (forward-char 1))
2501 )) 2501 (if (member kwd (sh-feature sh-leading-keywords))
2502 ))) 2502 (setq next (point))
2503 (setq done t)))
2504 (skip-chars-forward " \t\n\\\\"))
2505 (goto-char boundary)
2506 kwd))
2507 (t
2508 ;; c -- return a string
2509 (char-to-string c)
2510 ))
2511 ))))
2503 2512
2504 2513
2505(defun sh-this-is-a-continuation () 2514(defun sh-this-is-a-continuation ()
diff --git a/lisp/ps-print.el b/lisp/ps-print.el
index 59605c22c5b..d072b905e4a 100644
--- a/lisp/ps-print.el
+++ b/lisp/ps-print.el
@@ -12,7 +12,7 @@
12;; Keywords: wp, print, PostScript 12;; Keywords: wp, print, PostScript
13;; Time-stamp: <2005/06/27 00:57:22 vinicius> 13;; Time-stamp: <2005/06/27 00:57:22 vinicius>
14;; Version: 6.6.7 14;; Version: 6.6.7
15;; X-URL: http://www.cpqd.com.br/~vinicius/emacs/ 15;; X-URL: http://www.emacswiki.org/cgi-bin/wiki/ViniciusJoseLatorre
16 16
17(defconst ps-print-version "6.6.7" 17(defconst ps-print-version "6.6.7"
18 "ps-print.el, v 6.6.7 <2005/06/27 vinicius> 18 "ps-print.el, v 6.6.7 <2005/06/27 vinicius>
diff --git a/lisp/ses.el b/lisp/ses.el
index fc594167187..85f6f8db378 100644
--- a/lisp/ses.el
+++ b/lisp/ses.el
@@ -237,13 +237,6 @@ Each function is called with ARG=1."
237 ses-initial-file-trailer) 237 ses-initial-file-trailer)
238 "The initial contents of an empty spreadsheet.") 238 "The initial contents of an empty spreadsheet.")
239 239
240(defconst ses-paramlines-plist
241 '(ses--col-widths 2 ses--col-printers 3 ses--default-printer 4
242 ses--header-row 5 ses--file-format 8 ses--numrows 9
243 ses--numcols 10)
244 "Offsets from last cell line to various parameter lines in the data area
245of a spreadsheet.")
246
247(defconst ses-box-prop '(:box (:line-width 2 :style released-button)) 240(defconst ses-box-prop '(:box (:line-width 2 :style released-button))
248 "Display properties to create a raised box for cells in the header line.") 241 "Display properties to create a raised box for cells in the header line.")
249 242
@@ -255,13 +248,19 @@ functions. None of these standard-printer functions is suitable for use as a
255column printer or a global-default printer because they invoke the column or 248column printer or a global-default printer because they invoke the column or
256default printer and then modify its output.") 249default printer and then modify its output.")
257 250
251
252;;----------------------------------------------------------------------------
253;; Local variables and constants
254;;----------------------------------------------------------------------------
255
258(eval-and-compile 256(eval-and-compile
259 (defconst ses-localvars 257 (defconst ses-localvars
260 '(ses--blank-line ses--cells ses--col-printers ses--col-widths ses--curcell 258 '(ses--blank-line ses--cells ses--col-printers ses--col-widths ses--curcell
261 ses--curcell-overlay ses--default-printer ses--deferred-narrow 259 ses--curcell-overlay ses--default-printer ses--deferred-narrow
262 ses--deferred-recalc ses--deferred-write ses--file-format 260 ses--deferred-recalc ses--deferred-write ses--file-format
263 ses--header-hscroll ses--header-row ses--header-string ses--linewidth 261 ses--header-hscroll ses--header-row ses--header-string ses--linewidth
264 ses--numcols ses--numrows ses--symbolic-formulas 262 ses--numcols ses--numrows ses--symbolic-formulas ses--data-marker
263 ses--params-marker
265 ;;Global variables that we override 264 ;;Global variables that we override
266 mode-line-process next-line-add-newlines transient-mark-mode) 265 mode-line-process next-line-add-newlines transient-mark-mode)
267 "Buffer-local variables used by SES.")) 266 "Buffer-local variables used by SES."))
@@ -272,6 +271,13 @@ default printer and then modify its output.")
272 (make-local-variable x) 271 (make-local-variable x)
273 (set x nil))) 272 (set x nil)))
274 273
274(defconst ses-paramlines-plist
275 '(ses--col-widths -5 ses--col-printers -4 ses--default-printer -3
276 ses--header-row -2 ses--file-format 1 ses--numrows 2
277 ses--numcols 3)
278 "Offsets from 'Global parameters' line to various parameter lines in the
279data area of a spreadsheet.")
280
275 281
276;; 282;;
277;; "Side-effect variables". They are set in one function, altered in 283;; "Side-effect variables". They are set in one function, altered in
@@ -408,6 +414,7 @@ for safety. This is a macro to prevent propagate-on-load viruses."
408 "Execute BODY repeatedly, with the variables `row' and `col' set to each 414 "Execute BODY repeatedly, with the variables `row' and `col' set to each
409cell in the range specified by CURCELL. The range is available in the 415cell in the range specified by CURCELL. The range is available in the
410variables `minrow', `maxrow', `mincol', and `maxcol'." 416variables `minrow', `maxrow', `mincol', and `maxcol'."
417 (declare (indent defun) (debug (form body)))
411 (let ((cur (make-symbol "cur")) 418 (let ((cur (make-symbol "cur"))
412 (min (make-symbol "min")) 419 (min (make-symbol "min"))
413 (max (make-symbol "max")) 420 (max (make-symbol "max"))
@@ -429,9 +436,6 @@ variables `minrow', `maxrow', `mincol', and `maxcol'."
429 (setq col (+ ,c mincol)) 436 (setq col (+ ,c mincol))
430 ,@body)))))) 437 ,@body))))))
431 438
432(put 'ses-dorange 'lisp-indent-function 'defun)
433(def-edebug-spec ses-dorange (form body))
434
435;;Support for coverage testing. 439;;Support for coverage testing.
436(defmacro 1value (form) 440(defmacro 1value (form)
437 "For code-coverage testing, indicate that FORM is expected to always have 441 "For code-coverage testing, indicate that FORM is expected to always have
@@ -650,7 +654,7 @@ the old and FORCE is nil."
650(defun ses-update-cells (list &optional force) 654(defun ses-update-cells (list &optional force)
651 "Recalculate cells in LIST, checking for dependency loops. Prints 655 "Recalculate cells in LIST, checking for dependency loops. Prints
652progress messages every second. Dependent cells are not recalculated 656progress messages every second. Dependent cells are not recalculated
653if the cell's value is unchanged if FORCE is nil." 657if the cell's value is unchanged and FORCE is nil."
654 (let ((ses--deferred-recalc list) 658 (let ((ses--deferred-recalc list)
655 (nextlist list) 659 (nextlist list)
656 (pos (point)) 660 (pos (point))
@@ -709,7 +713,7 @@ if the cell's value is unchanged if FORCE is nil."
709 713
710(defun ses-in-print-area () 714(defun ses-in-print-area ()
711 "Returns t if point is in print area of spreadsheet." 715 "Returns t if point is in print area of spreadsheet."
712 (eq (get-text-property (point) 'keymap) 'ses-mode-print-map)) 716 (<= (point) ses--data-marker))
713 717
714;;We turn off point-motion-hooks and explicitly position the cursor, in case 718;;We turn off point-motion-hooks and explicitly position the cursor, in case
715;;the intangible properties have gotten screwed up (e.g., when 719;;the intangible properties have gotten screwed up (e.g., when
@@ -953,14 +957,16 @@ is one of the symbols ses--col-widths, ses--col-printers,
953ses--default-printer, ses--numrows, or ses--numcols." 957ses--default-printer, ses--numrows, or ses--numcols."
954 (ses-widen) 958 (ses-widen)
955 (let ((inhibit-point-motion-hooks t)) ;In case intangible attrs are wrong 959 (let ((inhibit-point-motion-hooks t)) ;In case intangible attrs are wrong
956 (goto-char (point-min))
957 (if col 960 (if col
958 ;;It's a cell 961 ;;It's a cell
959 (forward-line (+ ses--numrows 2 (* def (1+ ses--numcols)) col)) 962 (progn
960 ;;Convert def-symbol to offset 963 (goto-char ses--data-marker)
961 (setq def (plist-get ses-paramlines-plist def)) 964 (forward-line (+ 1 (* def (1+ ses--numcols)) col)))
962 (or def (signal 'args-out-of-range nil)) 965 ;;Convert def-symbol to offset
963 (forward-line (+ (* ses--numrows (+ ses--numcols 2)) def))))) 966 (setq def (plist-get ses-paramlines-plist def))
967 (or def (signal 'args-out-of-range nil))
968 (goto-char ses--params-marker)
969 (forward-line def))))
964 970
965(defun ses-set-parameter (def value &optional elem) 971(defun ses-set-parameter (def value &optional elem)
966 "Set parameter DEF to VALUE (with undo) and write the value to the data area. 972 "Set parameter DEF to VALUE (with undo) and write the value to the data area.
@@ -1070,6 +1076,23 @@ or t to get a wrong-type-argument error when the first reference is found."
1070 )))) 1076 ))))
1071 result-so-far) 1077 result-so-far)
1072 1078
1079(defsubst ses-relocate-symbol (sym rowcol startrow startcol rowincr colincr)
1080 "Relocate one symbol SYM, whichs corresponds to ROWCOL (a cons of ROW and
1081COL). Cells starting at (STARTROW,STARTCOL) are being shifted
1082by (ROWINCR,COLINCR)."
1083 (let ((row (car rowcol))
1084 (col (cdr rowcol)))
1085 (if (or (< row startrow) (< col startcol))
1086 sym
1087 (setq row (+ row rowincr)
1088 col (+ col colincr))
1089 (if (and (>= row startrow) (>= col startcol)
1090 (< row ses--numrows) (< col ses--numcols))
1091 ;;Relocate this variable
1092 (ses-create-cell-symbol row col)
1093 ;;Delete reference to a deleted cell
1094 nil))))
1095
1073(defun ses-relocate-formula (formula startrow startcol rowincr colincr) 1096(defun ses-relocate-formula (formula startrow startcol rowincr colincr)
1074 "Produce a copy of FORMULA where all symbols that refer to cells in row 1097 "Produce a copy of FORMULA where all symbols that refer to cells in row
1075STARTROW or above and col STARTCOL or above are altered by adding ROWINCR 1098STARTROW or above and col STARTCOL or above are altered by adding ROWINCR
@@ -1114,23 +1137,6 @@ Sets `ses-relocate-return' to 'delete if cell-references were removed."
1114 result)))) 1137 result))))
1115 (nreverse result)))) 1138 (nreverse result))))
1116 1139
1117(defun ses-relocate-symbol (sym rowcol startrow startcol rowincr colincr)
1118 "Relocate one symbol SYM, whichs corresponds to ROWCOL (a cons of ROW and
1119COL). Cells starting at (STARTROW,STARTCOL) are being shifted
1120by (ROWINCR,COLINCR)."
1121 (let ((row (car rowcol))
1122 (col (cdr rowcol)))
1123 (if (or (< row startrow) (< col startcol))
1124 sym
1125 (setq row (+ row rowincr)
1126 col (+ col colincr))
1127 (if (and (>= row startrow) (>= col startcol)
1128 (< row ses--numrows) (< col ses--numcols))
1129 ;;Relocate this variable
1130 (ses-create-cell-symbol row col)
1131 ;;Delete reference to a deleted cell
1132 nil))))
1133
1134(defun ses-relocate-range (range startrow startcol rowincr colincr) 1140(defun ses-relocate-range (range startrow startcol rowincr colincr)
1135 "Relocate one RANGE, of the form '(ses-range min max). Cells starting 1141 "Relocate one RANGE, of the form '(ses-range min max). Cells starting
1136at (STARTROW,STARTCOL) are being shifted by (ROWINCR,COLINCR). Result is the 1142at (STARTROW,STARTCOL) are being shifted by (ROWINCR,COLINCR). Result is the
@@ -1337,6 +1343,7 @@ execute cell formulas or print functions."
1337 (goto-char (point-max)) 1343 (goto-char (point-max))
1338 (search-backward ";; Local Variables:\n" nil t) 1344 (search-backward ";; Local Variables:\n" nil t)
1339 (backward-list 1) 1345 (backward-list 1)
1346 (setq ses--params-marker (point-marker))
1340 (let ((params (condition-case nil (read (current-buffer)) (error nil)))) 1347 (let ((params (condition-case nil (read (current-buffer)) (error nil))))
1341 (or (and (= (safe-length params) 3) 1348 (or (and (= (safe-length params) 3)
1342 (numberp (car params)) 1349 (numberp (car params))
@@ -1366,7 +1373,9 @@ execute cell formulas or print functions."
1366 (forward-line ses--numrows) 1373 (forward-line ses--numrows)
1367 (or (looking-at ses-print-data-boundary) 1374 (or (looking-at ses-print-data-boundary)
1368 (error "Missing marker between print and data areas")) 1375 (error "Missing marker between print and data areas"))
1369 (forward-char (length ses-print-data-boundary)) 1376 (forward-char 1)
1377 (setq ses--data-marker (point-marker))
1378 (forward-char (1- (length ses-print-data-boundary)))
1370 ;;Initialize printer and symbol lists 1379 ;;Initialize printer and symbol lists
1371 (mapc 'ses-printer-record ses-standard-printer-functions) 1380 (mapc 'ses-printer-record ses-standard-printer-functions)
1372 (setq ses--symbolic-formulas nil) 1381 (setq ses--symbolic-formulas nil)
@@ -1573,10 +1582,7 @@ narrows the buffer now."
1573 ;;We're not allowed to narrow the buffer until after-find-file has 1582 ;;We're not allowed to narrow the buffer until after-find-file has
1574 ;;read the local variables at the end of the file. Now it's safe to 1583 ;;read the local variables at the end of the file. Now it's safe to
1575 ;;do the narrowing. 1584 ;;do the narrowing.
1576 (save-excursion 1585 (narrow-to-region (point-min) ses--data-marker)
1577 (goto-char (point-min))
1578 (forward-line ses--numrows)
1579 (narrow-to-region (point-min) (point)))
1580 (setq ses--deferred-narrow nil)) 1586 (setq ses--deferred-narrow nil))
1581 ;;Update the modeline 1587 ;;Update the modeline
1582 (let ((oldcell ses--curcell)) 1588 (let ((oldcell ses--curcell))
@@ -1803,11 +1809,17 @@ cells."
1803 (dotimes (row ses--numrows) 1809 (dotimes (row ses--numrows)
1804 (insert ses--blank-line)) 1810 (insert ses--blank-line))
1805 (insert ses-print-data-boundary) 1811 (insert ses-print-data-boundary)
1812 (backward-char (1- (length ses-print-data-boundary)))
1813 (setq ses--data-marker (point-marker))
1814 (forward-char (1- (length ses-print-data-boundary)))
1806 ;;Placeholders for cell data 1815 ;;Placeholders for cell data
1807 (insert (make-string (* ses--numrows (1+ ses--numcols)) ?\n)) 1816 (insert (make-string (* ses--numrows (1+ ses--numcols)) ?\n))
1808 ;;Placeholders for col-widths, col-printers, default-printer, header-row 1817 ;;Placeholders for col-widths, col-printers, default-printer, header-row
1809 (insert "\n\n\n\n") 1818 (insert "\n\n\n\n")
1810 (insert ses-initial-global-parameters)) 1819 (insert ses-initial-global-parameters)
1820 (backward-char (1- (length ses-initial-global-parameters)))
1821 (setq ses--params-marker (point-marker))
1822 (forward-char (1- (length ses-initial-global-parameters))))
1811 (ses-set-parameter 'ses--col-widths ses--col-widths) 1823 (ses-set-parameter 'ses--col-widths ses--col-widths)
1812 (ses-set-parameter 'ses--col-printers ses--col-printers) 1824 (ses-set-parameter 'ses--col-printers ses--col-printers)
1813 (ses-set-parameter 'ses--default-printer ses--default-printer) 1825 (ses-set-parameter 'ses--default-printer ses--default-printer)
@@ -2880,7 +2892,8 @@ TEST is evaluated."
2880 (cons 'list result))) 2892 (cons 'list result)))
2881 2893
2882;;All standard formulas are safe 2894;;All standard formulas are safe
2883(dolist (x '(ses-range ses-delete-blanks ses+ ses-average ses-select)) 2895(dolist (x '(ses-cell-value ses-range ses-delete-blanks ses+ ses-average
2896 ses-select))
2884 (put x 'side-effect-free t)) 2897 (put x 'side-effect-free t))
2885 2898
2886 2899
diff --git a/lisp/simple.el b/lisp/simple.el
index a289f87f4d9..55f476213fd 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -128,7 +128,7 @@ If no other buffer exists, the buffer `*scratch*' is returned."
128 :group 'next-error 128 :group 'next-error
129 :version "22.1") 129 :version "22.1")
130 130
131(defcustom next-error-highlight 0.1 131(defcustom next-error-highlight 0.5
132 "*Highlighting of locations in selected source buffers. 132 "*Highlighting of locations in selected source buffers.
133If number, highlight the locus in `next-error' face for given time in seconds. 133If number, highlight the locus in `next-error' face for given time in seconds.
134If t, highlight the locus indefinitely until some other locus replaces it. 134If t, highlight the locus indefinitely until some other locus replaces it.
@@ -141,8 +141,8 @@ If `fringe-arrow', indicate the locus by the fringe arrow."
141 :group 'next-error 141 :group 'next-error
142 :version "22.1") 142 :version "22.1")
143 143
144(defcustom next-error-highlight-no-select 0.1 144(defcustom next-error-highlight-no-select 0.5
145 "*Highlighting of locations in non-selected source buffers. 145 "*Highlighting of locations in `next-error-no-select'.
146If number, highlight the locus in `next-error' face for given time in seconds. 146If number, highlight the locus in `next-error' face for given time in seconds.
147If t, highlight the locus indefinitely until some other locus replaces it. 147If t, highlight the locus indefinitely until some other locus replaces it.
148If nil, don't highlight the locus in the source buffer. 148If nil, don't highlight the locus in the source buffer.
@@ -1501,8 +1501,7 @@ Call `undo-start' to get ready to undo recent changes,
1501then call `undo-more' one or more times to undo them." 1501then call `undo-more' one or more times to undo them."
1502 (or (listp pending-undo-list) 1502 (or (listp pending-undo-list)
1503 (error (concat "No further undo information" 1503 (error (concat "No further undo information"
1504 (and transient-mark-mode mark-active 1504 (and undo-in-region " for region"))))
1505 " for region"))))
1506 (let ((undo-in-progress t)) 1505 (let ((undo-in-progress t))
1507 (setq pending-undo-list (primitive-undo n pending-undo-list)) 1506 (setq pending-undo-list (primitive-undo n pending-undo-list))
1508 (if (null pending-undo-list) 1507 (if (null pending-undo-list)
@@ -1649,12 +1648,12 @@ is not *inside* the region START...END."
1649 ((null (car undo-elt)) 1648 ((null (car undo-elt))
1650 ;; (nil PROPERTY VALUE BEG . END) 1649 ;; (nil PROPERTY VALUE BEG . END)
1651 (let ((tail (nthcdr 3 undo-elt))) 1650 (let ((tail (nthcdr 3 undo-elt)))
1652 (not (or (< (car tail) end) 1651 (and (< (car tail) end)
1653 (> (cdr tail) start))))) 1652 (> (cdr tail) start))))
1654 ((integerp (car undo-elt)) 1653 ((integerp (car undo-elt))
1655 ;; (BEGIN . END) 1654 ;; (BEGIN . END)
1656 (not (or (< (car undo-elt) end) 1655 (and (< (car undo-elt) end)
1657 (> (cdr undo-elt) start)))))) 1656 (> (cdr undo-elt) start)))))
1658 1657
1659;; Return the first affected buffer position and the delta for an undo element 1658;; Return the first affected buffer position and the delta for an undo element
1660;; delta is defined as the change in subsequent buffer positions if we *did* 1659;; delta is defined as the change in subsequent buffer positions if we *did*
@@ -2659,7 +2658,7 @@ The argument is used for internal purposes; do not supply one."
2659;; This is actually used in subr.el but defcustom does not work there. 2658;; This is actually used in subr.el but defcustom does not work there.
2660(defcustom yank-excluded-properties 2659(defcustom yank-excluded-properties
2661 '(read-only invisible intangible field mouse-face help-echo local-map keymap 2660 '(read-only invisible intangible field mouse-face help-echo local-map keymap
2662 yank-handler follow-link) 2661 yank-handler follow-link fontified)
2663 "*Text properties to discard when yanking. 2662 "*Text properties to discard when yanking.
2664The value should be a list of text properties to discard or t, 2663The value should be a list of text properties to discard or t,
2665which means to discard all text properties." 2664which means to discard all text properties."
@@ -3496,11 +3495,9 @@ Outline mode sets this."
3496 (>= rbot (frame-char-height)) 3495 (>= rbot (frame-char-height))
3497 (<= ypos (- (frame-char-height)))) 3496 (<= ypos (- (frame-char-height))))
3498 (unless lh 3497 (unless lh
3499 (let* ((wend (window-end nil t)) 3498 (let ((wend (pos-visible-in-window-p t nil t)))
3500 (evis (or (pos-visible-in-window-p wend nil t) 3499 (setq rbot (nth 3 wend)
3501 (pos-visible-in-window-p (1- wend) nil t)))) 3500 vpos (nth 5 wend))))
3502 (setq rbot (nth 3 evis)
3503 vpos (nth 5 evis))))
3504 (cond 3501 (cond
3505 ;; If last line of window is fully visible, move forward. 3502 ;; If last line of window is fully visible, move forward.
3506 ((or (null rbot) (= rbot 0)) 3503 ((or (null rbot) (= rbot 0))
@@ -3606,15 +3603,6 @@ Outline mode sets this."
3606 (let ((inhibit-field-text-motion t)) 3603 (let ((inhibit-field-text-motion t))
3607 (setq line-end (line-end-position))) 3604 (setq line-end (line-end-position)))
3608 (goto-char (constrain-to-field line-end (point) t t)) 3605 (goto-char (constrain-to-field line-end (point) t t))
3609 ;; When moving a single line, update the goal-column
3610 ;; if we couldn't move to the end of line due to a
3611 ;; field boundary. Otherwise we'll get stuck at the
3612 ;; original position during the column motion in
3613 ;; line-move-finish.
3614 (and (/= line-end (point))
3615 (= orig-arg 1)
3616 (setq temporary-goal-column
3617 (max temporary-goal-column (current-column))))
3618 ;; If there's no invisibility here, move over the newline. 3606 ;; If there's no invisibility here, move over the newline.
3619 (cond 3607 (cond
3620 ((eobp) 3608 ((eobp)
@@ -3681,6 +3669,7 @@ Outline mode sets this."
3681 (setq repeat nil) 3669 (setq repeat nil)
3682 3670
3683 (let (new 3671 (let (new
3672 (old (point))
3684 (line-beg (save-excursion (beginning-of-line) (point))) 3673 (line-beg (save-excursion (beginning-of-line) (point)))
3685 (line-end 3674 (line-end
3686 ;; Compute the end of the line 3675 ;; Compute the end of the line
@@ -3695,6 +3684,17 @@ Outline mode sets this."
3695 3684
3696 ;; Move to the desired column. 3685 ;; Move to the desired column.
3697 (line-move-to-column column) 3686 (line-move-to-column column)
3687
3688 ;; Corner case: suppose we start out in a field boundary in
3689 ;; the middle of a continued line. When we get to
3690 ;; line-move-finish, point is at the start of a new *screen*
3691 ;; line but the same text line; then line-move-to-column would
3692 ;; move us backwards. Test using C-n with point on the "x" in
3693 ;; (insert "a" (propertize "x" 'field t) (make-string 89 ?y))
3694 (and forward
3695 (< (point) old)
3696 (goto-char old))
3697
3698 (setq new (point)) 3698 (setq new (point))
3699 3699
3700 ;; Process intangibility within a line. 3700 ;; Process intangibility within a line.
@@ -3734,8 +3734,15 @@ Outline mode sets this."
3734 (goto-char opoint) 3734 (goto-char opoint)
3735 (let ((inhibit-point-motion-hooks nil)) 3735 (let ((inhibit-point-motion-hooks nil))
3736 (goto-char 3736 (goto-char
3737 (constrain-to-field new opoint t t 3737 ;; Ignore field boundaries if the initial and final
3738 'inhibit-line-move-field-capture))) 3738 ;; positions have the same `field' property, even if the
3739 ;; fields are non-contiguous. This seems to be "nicer"
3740 ;; behavior in many situations.
3741 (if (eq (get-char-property new 'field)
3742 (get-char-property opoint 'field))
3743 new
3744 (constrain-to-field new opoint t t
3745 'inhibit-line-move-field-capture))))
3739 3746
3740 ;; If all this moved us to a different line, 3747 ;; If all this moved us to a different line,
3741 ;; retry everything within that new line. 3748 ;; retry everything within that new line.
diff --git a/lisp/startup.el b/lisp/startup.el
index 2b9dd02ab9b..ba740a721d5 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -779,6 +779,7 @@ or `CVS', and any subdirectory that contains a file named `.nosearch'."
779 (custom-reevaluate-setting 'mouse-wheel-up-event) 779 (custom-reevaluate-setting 'mouse-wheel-up-event)
780 (custom-reevaluate-setting 'file-name-shadow-mode) 780 (custom-reevaluate-setting 'file-name-shadow-mode)
781 (custom-reevaluate-setting 'send-mail-function) 781 (custom-reevaluate-setting 'send-mail-function)
782 (custom-reevaluate-setting 'focus-follows-mouse)
782 (custom-reevaluate-setting 'global-auto-composition-mode) 783 (custom-reevaluate-setting 'global-auto-composition-mode)
783 784
784 ;; Register default TTY colors for the case the terminal hasn't a 785 ;; Register default TTY colors for the case the terminal hasn't a
@@ -1392,7 +1393,7 @@ mouse."
1392 (if (or (window-minibuffer-p) 1393 (if (or (window-minibuffer-p)
1393 (window-dedicated-p (selected-window))) 1394 (window-dedicated-p (selected-window)))
1394 (pop-to-buffer (current-buffer)) 1395 (pop-to-buffer (current-buffer))
1395 (switch-to-buffer "GNU Emacs")) 1396 (switch-to-buffer "*About GNU Emacs*"))
1396 (setq buffer-read-only nil) 1397 (setq buffer-read-only nil)
1397 (erase-buffer) 1398 (erase-buffer)
1398 (if pure-space-overflow 1399 (if pure-space-overflow
@@ -1608,7 +1609,9 @@ Type \\[describe-distribution] for information on getting the latest version."))
1608 (error (pop-to-buffer (current-buffer)))))) 1609 (error (pop-to-buffer (current-buffer))))))
1609 ;; Unwind ... ensure splash buffer is killed 1610 ;; Unwind ... ensure splash buffer is killed
1610 (if hide-on-input 1611 (if hide-on-input
1611 (kill-buffer "GNU Emacs"))))) 1612 (kill-buffer "GNU Emacs")
1613 (switch-to-buffer "GNU Emacs")
1614 (rename-buffer "*About GNU Emacs*" t)))))
1612 1615
1613 1616
1614(defun startup-echo-area-message () 1617(defun startup-echo-area-message ()
@@ -1627,8 +1630,9 @@ Type \\[describe-distribution] for information on getting the latest version."))
1627(defun display-splash-screen (&optional hide-on-input) 1630(defun display-splash-screen (&optional hide-on-input)
1628 "Display splash screen according to display. 1631 "Display splash screen according to display.
1629Fancy splash screens are used on graphic displays, 1632Fancy splash screens are used on graphic displays,
1630normal otherwise." 1633normal otherwise.
1631 (interactive) 1634With a prefix argument, any user input hides the splash screen."
1635 (interactive "P")
1632 (if (use-fancy-splash-screens-p) 1636 (if (use-fancy-splash-screens-p)
1633 (fancy-splash-screens hide-on-input) 1637 (fancy-splash-screens hide-on-input)
1634 (normal-splash-screen hide-on-input))) 1638 (normal-splash-screen hide-on-input)))
diff --git a/lisp/subr.el b/lisp/subr.el
index b165e8e9ad3..0d0bf7c7cc3 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -2053,7 +2053,8 @@ a system-dependent default device name is used."
2053 2053
2054(defun shell-quote-argument (argument) 2054(defun shell-quote-argument (argument)
2055 "Quote an argument for passing as argument to an inferior shell." 2055 "Quote an argument for passing as argument to an inferior shell."
2056 (if (eq system-type 'ms-dos) 2056 (if (or (eq system-type 'ms-dos)
2057 (and (eq system-type 'windows-nt) (w32-shell-dos-semantics)))
2057 ;; Quote using double quotes, but escape any existing quotes in 2058 ;; Quote using double quotes, but escape any existing quotes in
2058 ;; the argument with backslashes. 2059 ;; the argument with backslashes.
2059 (let ((result "") 2060 (let ((result "")
@@ -2067,19 +2068,17 @@ a system-dependent default device name is used."
2067 "\\" (substring argument end (1+ end))) 2068 "\\" (substring argument end (1+ end)))
2068 start (1+ end)))) 2069 start (1+ end))))
2069 (concat "\"" result (substring argument start) "\"")) 2070 (concat "\"" result (substring argument start) "\""))
2070 (if (eq system-type 'windows-nt) 2071 (if (equal argument "")
2071 (concat "\"" argument "\"") 2072 "''"
2072 (if (equal argument "") 2073 ;; Quote everything except POSIX filename characters.
2073 "''" 2074 ;; This should be safe enough even for really weird shells.
2074 ;; Quote everything except POSIX filename characters. 2075 (let ((result "") (start 0) end)
2075 ;; This should be safe enough even for really weird shells. 2076 (while (string-match "[^-0-9a-zA-Z_./]" argument start)
2076 (let ((result "") (start 0) end) 2077 (setq end (match-beginning 0)
2077 (while (string-match "[^-0-9a-zA-Z_./]" argument start) 2078 result (concat result (substring argument start end)
2078 (setq end (match-beginning 0) 2079 "\\" (substring argument end (1+ end)))
2079 result (concat result (substring argument start end) 2080 start (1+ end)))
2080 "\\" (substring argument end (1+ end))) 2081 (concat result (substring argument start))))))
2081 start (1+ end)))
2082 (concat result (substring argument start)))))))
2083 2082
2084(defun string-or-null-p (object) 2083(defun string-or-null-p (object)
2085 "Return t if OBJECT is a string or nil. 2084 "Return t if OBJECT is a string or nil.
@@ -2168,11 +2167,32 @@ If UNDO is present and non-nil, it is a function that will be called
2168 (let* ((handler (and (stringp string) 2167 (let* ((handler (and (stringp string)
2169 (get-text-property 0 'yank-handler string))) 2168 (get-text-property 0 'yank-handler string)))
2170 (param (or (nth 1 handler) string)) 2169 (param (or (nth 1 handler) string))
2171 (opoint (point))) 2170 (opoint (point))
2171 end)
2172
2172 (setq yank-undo-function t) 2173 (setq yank-undo-function t)
2173 (if (nth 0 handler) ;; FUNCTION 2174 (if (nth 0 handler) ;; FUNCTION
2174 (funcall (car handler) param) 2175 (funcall (car handler) param)
2175 (insert param)) 2176 (insert param))
2177 (setq end (point))
2178
2179 ;; What should we do with `font-lock-face' properties?
2180 (if font-lock-defaults
2181 ;; No, just wipe them.
2182 (remove-list-of-text-properties opoint end '(font-lock-face))
2183 ;; Convert them to `face'.
2184 (save-excursion
2185 (goto-char opoint)
2186 (while (< (point) end)
2187 (let ((face (get-text-property (point) 'font-lock-face))
2188 run-end)
2189 (setq run-end
2190 (next-single-property-change (point) 'font-lock-face nil end))
2191 (when face
2192 (remove-text-properties (point) run-end '(font-lock-face nil))
2193 (put-text-property (point) run-end 'face face))
2194 (goto-char run-end)))))
2195
2176 (unless (nth 2 handler) ;; NOEXCLUDE 2196 (unless (nth 2 handler) ;; NOEXCLUDE
2177 (remove-yank-excluded-properties opoint (point))) 2197 (remove-yank-excluded-properties opoint (point)))
2178 (if (eq yank-undo-function t) ;; not set by FUNCTION 2198 (if (eq yank-undo-function t) ;; not set by FUNCTION
@@ -3106,8 +3126,8 @@ Usually the separator is \".\", but it can be any other string.")
3106 3126
3107(defvar version-regexp-alist 3127(defvar version-regexp-alist
3108 '(("^[-_+ ]?a\\(lpha\\)?$" . -3) 3128 '(("^[-_+ ]?a\\(lpha\\)?$" . -3)
3109 ("^[-_+]$" . -3) ; treat "1.2.3-20050920" and "1.2-3" as alpha releases 3129 ("^[-_+]$" . -3) ; treat "1.2.3-20050920" and "1.2-3" as alpha releases
3110 ("^[-_+ ]cvs$" . -3) ; treat "1.2.3-CVS" as alpha release 3130 ("^[-_+ ]cvs$" . -3) ; treat "1.2.3-CVS" as alpha release
3111 ("^[-_+ ]?b\\(eta\\)?$" . -2) 3131 ("^[-_+ ]?b\\(eta\\)?$" . -2)
3112 ("^[-_+ ]?\\(pre\\|rc\\)$" . -1)) 3132 ("^[-_+ ]?\\(pre\\|rc\\)$" . -1))
3113 "*Specify association between non-numeric version part and a priority. 3133 "*Specify association between non-numeric version part and a priority.
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 75b043af835..53cc61c48a2 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -2583,8 +2583,9 @@ By just answering RET you can find out what the current dictionary is."
2583 (cond ((equal dict "") 2583 (cond ((equal dict "")
2584 (ispell-internal-change-dictionary) 2584 (ispell-internal-change-dictionary)
2585 (message "Using %s dictionary" 2585 (message "Using %s dictionary"
2586 (or ispell-local-dictionary ispell-dictionary "default"))) 2586 (or (and (not arg) ispell-local-dictionary)
2587 ((equal dict (or ispell-local-dictionary 2587 ispell-dictionary "default")))
2588 ((equal dict (or (and (not arg) ispell-local-dictionary)
2588 ispell-dictionary "default")) 2589 ispell-dictionary "default"))
2589 ;; Specified dictionary is the default already. Could reload 2590 ;; Specified dictionary is the default already. Could reload
2590 ;; the dictionaries if needed. 2591 ;; the dictionaries if needed.
diff --git a/lisp/textmodes/org.el b/lisp/textmodes/org.el
index 64fbb0542ff..c8ecc3df63d 100644
--- a/lisp/textmodes/org.el
+++ b/lisp/textmodes/org.el
@@ -4569,7 +4569,7 @@ this heading. "
4569 ;; Make the subtree visible 4569 ;; Make the subtree visible
4570 (show-subtree) 4570 (show-subtree)
4571 (org-end-of-subtree t) 4571 (org-end-of-subtree t)
4572 (skip-chars-backward " \t\r\n]") 4572 (skip-chars-backward " \t\r\n")
4573 (and (looking-at "[ \t\r\n]*") 4573 (and (looking-at "[ \t\r\n]*")
4574 (replace-match "\n\n"))) 4574 (replace-match "\n\n")))
4575 ;; No specific heading, just go to end of file. 4575 ;; No specific heading, just go to end of file.
@@ -8660,7 +8660,7 @@ are included in the output."
8660 (push txt rtn)) 8660 (push txt rtn))
8661 ;; if we are to skip sublevels, jump to end of subtree 8661 ;; if we are to skip sublevels, jump to end of subtree
8662 (point) 8662 (point)
8663 (or org-tags-match-list-sublevels (org-end-of-subtree)))))) 8663 (or org-tags-match-list-sublevels (org-end-of-subtree t))))))
8664 (when (and (eq action 'sparse-tree) 8664 (when (and (eq action 'sparse-tree)
8665 (not org-sparse-tree-open-archived-trees)) 8665 (not org-sparse-tree-open-archived-trees))
8666 (org-hide-archived-subtrees (point-min) (point-max))) 8666 (org-hide-archived-subtrees (point-min) (point-max)))
@@ -9816,7 +9816,7 @@ on the system \"/user@host:\"."
9816 ((fboundp 'tramp-handle-file-remote-p) 9816 ((fboundp 'tramp-handle-file-remote-p)
9817 (tramp-handle-file-remote-p file)) 9817 (tramp-handle-file-remote-p file))
9818 ((and (boundp 'ange-ftp-name-format) 9818 ((and (boundp 'ange-ftp-name-format)
9819 (string-match ange-ftp-name-format file)) 9819 (string-match (car ange-ftp-name-format) file))
9820 t) 9820 t)
9821 (t nil))) 9821 (t nil)))
9822 9822
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog
index fdd735193c9..a6afb0ba20f 100644
--- a/lisp/url/ChangeLog
+++ b/lisp/url/ChangeLog
@@ -1,3 +1,9 @@
12006-09-20 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * url-dav.el (url-dav-file-attributes): Simplify.
4
5 * url-http.el (url-http-head-file-attributes): Add device "info".
6
12006-09-18 Michael Olson <mwolson@gnu.org> 72006-09-18 Michael Olson <mwolson@gnu.org>
2 8
3 * url-methods.el (url-scheme-register-proxy): Handle case where 9 * url-methods.el (url-scheme-register-proxy): Handle case where
diff --git a/lisp/url/url-dav.el b/lisp/url/url-dav.el
index 449d8a510b5..546d744558d 100644
--- a/lisp/url/url-dav.el
+++ b/lisp/url/url-dav.el
@@ -621,59 +621,56 @@ Returns t iff the lock was successfully released."
621(autoload 'url-http-head-file-attributes "url-http") 621(autoload 'url-http-head-file-attributes "url-http")
622 622
623(defun url-dav-file-attributes (url &optional id-format) 623(defun url-dav-file-attributes (url &optional id-format)
624 (let ((properties (cdar (url-dav-get-properties url))) 624 (let ((properties (cdar (url-dav-get-properties url))))
625 (attributes nil))
626 (if (and properties 625 (if (and properties
627 (url-dav-http-success-p (plist-get properties 'DAV:status))) 626 (url-dav-http-success-p (plist-get properties 'DAV:status)))
628 ;; We got a good DAV response back.. 627 ;; We got a good DAV response back..
629 (setq attributes 628 (list
630 (list 629 ;; t for directory, string for symbolic link, or nil
631 ;; t for directory, string for symbolic link, or nil 630 ;; Need to support DAV Bindings to figure out the
632 ;; Need to support DAV Bindings to figure out the 631 ;; symbolic link issues.
633 ;; symbolic link issues. 632 (if (memq 'DAV:collection (plist-get properties 'DAV:resourcetype)) t nil)
634 (if (memq 'DAV:collection (plist-get properties 'DAV:resourcetype)) t nil)
635 633
636 ;; Number of links to file... Needs DAV Bindings. 634 ;; Number of links to file... Needs DAV Bindings.
637 1 635 1
638 636
639 ;; File uid - no way to figure out? 637 ;; File uid - no way to figure out?
640 0 638 0
641 639
642 ;; File gid - no way to figure out? 640 ;; File gid - no way to figure out?
643 0 641 0
644 642
645 ;; Last access time - ??? 643 ;; Last access time - ???
646 nil 644 nil
647 645
648 ;; Last modification time 646 ;; Last modification time
649 (plist-get properties 'DAV:getlastmodified) 647 (plist-get properties 'DAV:getlastmodified)
650 648
651 ;; Last status change time... just reuse last-modified 649 ;; Last status change time... just reuse last-modified
652 ;; for now. 650 ;; for now.
653 (plist-get properties 'DAV:getlastmodified) 651 (plist-get properties 'DAV:getlastmodified)
654 652
655 ;; size in bytes 653 ;; size in bytes
656 (or (plist-get properties 'DAV:getcontentlength) 0) 654 (or (plist-get properties 'DAV:getcontentlength) 0)
657 655
658 ;; file modes as a string like `ls -l' 656 ;; file modes as a string like `ls -l'
659 ;; 657 ;;
660 ;; Should be able to build this up from the 658 ;; Should be able to build this up from the
661 ;; DAV:supportedlock attribute pretty easily. Getting 659 ;; DAV:supportedlock attribute pretty easily. Getting
662 ;; the group info could be impossible though. 660 ;; the group info could be impossible though.
663 (url-dav-file-attributes-mode-string properties) 661 (url-dav-file-attributes-mode-string properties)
664 662
665 ;; t iff file's gid would change if it were deleted & 663 ;; t iff file's gid would change if it were deleted &
666 ;; recreated. No way for us to know that thru DAV. 664 ;; recreated. No way for us to know that thru DAV.
667 nil 665 nil
668 666
669 ;; inode number - meaningless 667 ;; inode number - meaningless
670 nil 668 nil
671 669
672 ;; device number - meaningless 670 ;; device number - meaningless
673 nil)) 671 nil)
674 ;; Fall back to just the normal http way of doing things. 672 ;; Fall back to just the normal http way of doing things.
675 (setq attributes (url-http-head-file-attributes url id-format))) 673 (url-http-head-file-attributes url id-format))))
676 attributes))
677 674
678(defun url-dav-save-resource (url obj &optional content-type lock-token) 675(defun url-dav-save-resource (url obj &optional content-type lock-token)
679 "Save OBJ as URL using WebDAV. 676 "Save OBJ as URL using WebDAV.
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el
index a1d87e1bd31..1b8bc459f49 100644
--- a/lisp/url/url-http.el
+++ b/lisp/url/url-http.el
@@ -1151,19 +1151,19 @@ CBARGS as the arguments."
1151(defalias 'url-http-file-readable-p 'url-http-file-exists-p) 1151(defalias 'url-http-file-readable-p 'url-http-file-exists-p)
1152 1152
1153(defun url-http-head-file-attributes (url &optional id-format) 1153(defun url-http-head-file-attributes (url &optional id-format)
1154 (let ((buffer (url-http-head url)) 1154 (let ((buffer (url-http-head url)))
1155 (attributes nil))
1156 (when buffer 1155 (when buffer
1157 (setq attributes (make-list 11 nil)) 1156 (prog1
1158 (setf (nth 1 attributes) 1) ; Number of links to file 1157 (list
1159 (setf (nth 2 attributes) 0) ; file uid 1158 nil ;dir / link / normal file
1160 (setf (nth 3 attributes) 0) ; file gid 1159 1 ;number of links to file.
1161 (setf (nth 7 attributes) ; file size 1160 0 0 ;uid ; gid
1162 (url-http-symbol-value-in-buffer 'url-http-content-length 1161 nil nil nil ;atime ; mtime ; ctime
1163 buffer -1)) 1162 (url-http-symbol-value-in-buffer 'url-http-content-length
1164 (setf (nth 8 attributes) (eval-when-compile (make-string 10 ?-))) 1163 buffer -1)
1165 (kill-buffer buffer)) 1164 (eval-when-compile (make-string 10 ?-))
1166 attributes)) 1165 nil nil nil) ;whether gid would change ; inode ; device.
1166 (kill-buffer buffer)))))
1167 1167
1168;;;###autoload 1168;;;###autoload
1169(defun url-http-file-attributes (url &optional id-format) 1169(defun url-http-file-attributes (url &optional id-format)
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index ba7a9b4a0a1..bef49d71a00 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -912,6 +912,10 @@ Recommended as a parent keymap for modes using widgets.")
912;; backward-compatibility alias 912;; backward-compatibility alias
913(put 'widget-button-pressed-face 'face-alias 'widget-button-pressed) 913(put 'widget-button-pressed-face 'face-alias 'widget-button-pressed)
914 914
915(defvar widget-button-click-moves-point nil
916 "If non-nil, `widget-button-click' moves point to a button after invoking it.
917If nil, point returns to its original position after invoking a button.")
918
915(defun widget-button-click (event) 919(defun widget-button-click (event)
916 "Invoke the button that the mouse is pointing at." 920 "Invoke the button that the mouse is pointing at."
917 (interactive "e") 921 (interactive "e")
@@ -922,7 +926,8 @@ Recommended as a parent keymap for modes using widgets.")
922 (start (event-start event)) 926 (start (event-start event))
923 (button (get-char-property 927 (button (get-char-property
924 pos 'button (and (windowp (posn-window start)) 928 pos 'button (and (windowp (posn-window start))
925 (window-buffer (posn-window start)))))) 929 (window-buffer (posn-window start)))))
930 newpoint)
926 (when (or (null button) 931 (when (or (null button)
927 (catch 'button-press-cancelled 932 (catch 'button-press-cancelled
928 ;; Mouse click on a widget button. Do the following 933 ;; Mouse click on a widget button. Do the following
@@ -974,12 +979,15 @@ Recommended as a parent keymap for modes using widgets.")
974 979
975 ;; When mouse is released over the button, run 980 ;; When mouse is released over the button, run
976 ;; its action function. 981 ;; its action function.
977 (when (and pos 982 (when (and pos (eq (get-char-property pos 'button) button))
978 (eq (get-char-property pos 'button) button)) 983 (goto-char pos)
979 (widget-apply-action button event))) 984 (widget-apply-action button event)
985 (if widget-button-click-moves-point
986 (setq newpoint (point)))))
980 (overlay-put overlay 'face face) 987 (overlay-put overlay 'face face)
981 (overlay-put overlay 'mouse-face mouse-face)))) 988 (overlay-put overlay 'mouse-face mouse-face))))
982 989
990 (if newpoint (goto-char newpoint))
983 ;; This loses if the widget action switches windows. -- cyd 991 ;; This loses if the widget action switches windows. -- cyd
984 ;; (unless (pos-visible-in-window-p (widget-event-point event)) 992 ;; (unless (pos-visible-in-window-p (widget-event-point event))
985 ;; (mouse-set-point event) 993 ;; (mouse-set-point event)
diff --git a/lisp/woman.el b/lisp/woman.el
index 3ee3e3f98d6..13fa3147487 100644
--- a/lisp/woman.el
+++ b/lisp/woman.el
@@ -438,6 +438,7 @@
438 438
439(eval-when-compile ; to avoid compiler warnings 439(eval-when-compile ; to avoid compiler warnings
440 (require 'dired) 440 (require 'dired)
441 (require 'cl)
441 (require 'apropos)) 442 (require 'apropos))
442 443
443(defun woman-mapcan (fn x) 444(defun woman-mapcan (fn x)
@@ -2467,6 +2468,7 @@ Start at FROM and re-scan new text as appropriate."
2467 (woman0-search-regex 2468 (woman0-search-regex
2468 (concat woman0-search-regex-start woman0-search-regex-end)) 2469 (concat woman0-search-regex-start woman0-search-regex-end))
2469 woman0-rename-alist) 2470 woman0-rename-alist)
2471 (set-marker-insertion-type woman0-if-to t)
2470 (while (re-search-forward woman0-search-regex nil t) 2472 (while (re-search-forward woman0-search-regex nil t)
2471 (setq request (match-string 1)) 2473 (setq request (match-string 1))
2472 (cond ((string= request "ig") (woman0-ig)) 2474 (cond ((string= request "ig") (woman0-ig))
@@ -2540,7 +2542,7 @@ REQUEST is the invoking directive without the leading dot."
2540 ;; String delimiter can be any non-numeric character, 2542 ;; String delimiter can be any non-numeric character,
2541 ;; including a special character escape: 2543 ;; including a special character escape:
2542 (looking-at "\\(\\\\(..\\|[^0-9]\\)\\(.*\\)\\1\\(.*\\)\\1\\'")) 2544 (looking-at "\\(\\\\(..\\|[^0-9]\\)\\(.*\\)\\1\\(.*\\)\\1\\'"))
2543 (let ((end1 (copy-marker (match-end 2)))) ; end of first string 2545 (let ((end1 (copy-marker (match-end 2) t))) ; End of first string.
2544 ;; Delete 2nd and 3rd delimiters to avoid processing them: 2546 ;; Delete 2nd and 3rd delimiters to avoid processing them:
2545 (delete-region (match-end 3) woman0-if-to) 2547 (delete-region (match-end 3) woman0-if-to)
2546 (delete-region (match-end 2) (match-beginning 3)) 2548 (delete-region (match-end 2) (match-beginning 3))
@@ -2655,10 +2657,9 @@ If DELETE is non-nil then delete from point."
2655 (error "File `%s' not found" name)) 2657 (error "File `%s' not found" name))
2656 (beginning-of-line) 2658 (beginning-of-line)
2657 (woman-delete-line 1) 2659 (woman-delete-line 1)
2658 (let ((from (point)) 2660 (let* ((from (point))
2659 (to (make-marker)) 2661 (length (woman-insert-file-contents filename 0))
2660 (length (woman-insert-file-contents filename 0))) 2662 (to (copy-marker (+ from length) t)))
2661 (set-marker to (+ from length))
2662 (woman-pre-process-region from to) 2663 (woman-pre-process-region from to)
2663 (set-marker to nil) 2664 (set-marker to nil)
2664 (goto-char from) 2665 (goto-char from)
@@ -3442,9 +3443,7 @@ Also bound locally in `woman2-roff-buffer'.")
3442(defsubst woman2-process-escapes-to-eol (&optional numeric) 3443(defsubst woman2-process-escapes-to-eol (&optional numeric)
3443 "Process remaining escape sequences up to eol. 3444 "Process remaining escape sequences up to eol.
3444Handle numeric arguments specially if optional argument NUMERIC is non-nil." 3445Handle numeric arguments specially if optional argument NUMERIC is non-nil."
3445 (woman2-process-escapes 3446 (woman2-process-escapes (copy-marker (line-end-position) t) numeric))
3446 (save-excursion (end-of-line) (point-marker))
3447 numeric))
3448 3447
3449(defun woman2-nr (to) 3448(defun woman2-nr (to)
3450 ".nr R +/-N M -- Assign +/-N (wrt to previous value, if any) to register R. 3449 ".nr R +/-N M -- Assign +/-N (wrt to previous value, if any) to register R.
@@ -3645,6 +3644,7 @@ expression in parentheses. Leaves point after the value."
3645 (woman-registers woman-registers) 3644 (woman-registers woman-registers)
3646 fn request translations 3645 fn request translations
3647 tab-stop-list) 3646 tab-stop-list)
3647 (set-marker-insertion-type to t)
3648 ;; ?roff does not squeeze multiple spaces, but does fill, so... 3648 ;; ?roff does not squeeze multiple spaces, but does fill, so...
3649 (fset 'canonically-space-region 'ignore) 3649 (fset 'canonically-space-region 'ignore)
3650 ;; Try to avoid spaces inheriting underlines from preceding text! 3650 ;; Try to avoid spaces inheriting underlines from preceding text!
@@ -3687,7 +3687,8 @@ expression in parentheses. Leaves point after the value."
3687 ;; Call the appropriate function: 3687 ;; Call the appropriate function:
3688 (funcall fn to))) 3688 (funcall fn to)))
3689 (if (not (eobp)) ; This should not happen, but ... 3689 (if (not (eobp)) ; This should not happen, but ...
3690 (woman2-format-paragraphs (point-max-marker) woman-left-margin)) 3690 (woman2-format-paragraphs (copy-marker (point-max) t)
3691 woman-left-margin))
3691 (fset 'canonically-space-region canonically-space-region) 3692 (fset 'canonically-space-region canonically-space-region)
3692 (fset 'set-text-properties set-text-properties) 3693 (fset 'set-text-properties set-text-properties)
3693 (fset 'insert-and-inherit insert-and-inherit) 3694 (fset 'insert-and-inherit insert-and-inherit)
@@ -3899,6 +3900,7 @@ Leave 1 blank line. Format paragraphs upto TO."
3899(defun woman2-process-escapes (to &optional numeric) 3900(defun woman2-process-escapes (to &optional numeric)
3900 "Process remaining escape sequences up to marker TO, preserving point. 3901 "Process remaining escape sequences up to marker TO, preserving point.
3901Optional argument NUMERIC, if non-nil, means the argument is numeric." 3902Optional argument NUMERIC, if non-nil, means the argument is numeric."
3903 (assert (and (markerp to) (marker-insertion-type to)))
3902 ;; The first two cases below could be merged (maybe)! 3904 ;; The first two cases below could be merged (maybe)!
3903 (let ((from (point))) 3905 (let ((from (point)))
3904 ;; Discard zero width filler character used to hide leading dots 3906 ;; Discard zero width filler character used to hide leading dots
@@ -3968,15 +3970,13 @@ Optional argument NUMERIC, if non-nil, means the argument is numeric."
3968 (delete-char -1) 3970 (delete-char -1)
3969 (delete-char 1) 3971 (delete-char 1)
3970 (looking-at "\\(.\\)\\(.*\\)\\1") 3972 (looking-at "\\(.\\)\\(.*\\)\\1")
3971 (let ((to (make-marker)) from N c) 3973 (forward-char 1)
3972 (set-marker to (match-end 2)) 3974 (let* ((to (match-end 2))
3973 (delete-char 1) 3975 (from (match-beginning 0))
3974 (setq from (point) 3976 (N (woman-parse-numeric-arg))
3975 N (woman-parse-numeric-arg)) 3977 (c (if (< (point) to) (following-char) ?_)))
3976 (setq c (if (< (point) to) (following-char) ?_))
3977 (delete-region from to) 3978 (delete-region from to)
3978 (delete-char 1) 3979 (delete-char 1)
3979 (set-marker to nil)
3980 (insert (make-string N c)) 3980 (insert (make-string N c))
3981 )) 3981 ))
3982 3982