aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog154
-rw-r--r--lisp/ChangeLog.142
-rw-r--r--lisp/ChangeLog.154
-rw-r--r--lisp/button.el4
-rw-r--r--lisp/cus-theme.el17
-rw-r--r--lisp/custom.el9
-rw-r--r--lisp/face-remap.el42
-rw-r--r--lisp/faces.el47
-rw-r--r--lisp/files.el6
-rw-r--r--lisp/gnus/ChangeLog5
-rw-r--r--lisp/gnus/auth-source.el2
-rw-r--r--lisp/ido.el25
-rw-r--r--lisp/info.el4
-rw-r--r--lisp/international/quail.el35
-rw-r--r--lisp/makefile.w32-in10
-rw-r--r--lisp/mwheel.el9
-rw-r--r--lisp/net/network-stream.el15
-rw-r--r--lisp/newcomment.el2
-rw-r--r--lisp/outline.el1
-rw-r--r--lisp/progmodes/etags.el13
-rw-r--r--lisp/progmodes/hideshow.el1
-rw-r--r--lisp/progmodes/ruby-mode.el11
-rw-r--r--lisp/simple.el3
-rw-r--r--lisp/url/ChangeLog5
-rw-r--r--lisp/url/url-queue.el3
-rw-r--r--lisp/vc/vc-bzr.el26
-rw-r--r--lisp/vc/vc.el2
-rw-r--r--lisp/wid-edit.el10
-rw-r--r--lisp/window.el13
29 files changed, 330 insertions, 150 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index ed5dc39021b..5a0c33da3c8 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,7 +1,126 @@
12012-03-25 Eli Zaretskii <eliz@gnu.org>
2
3 * makefile.w32-in (install): Use $(DIRNAME)_same-dir.tst instead
4 of same-dir.tst, to avoid stepping on other (parallel) Make job's
5 toes.
6
72012-03-25 Chong Yidong <cyd@gnu.org>
8
9 * custom.el (load-theme): Even if NO-ENABLE arg is t, reenable the
10 theme if it was previously enabled before (Bug#11031).
11
12 * cus-theme.el (custom-theme-write-faces): Retrieve current face
13 spec with custom-face-get-current-spec if its :shown-value is not
14 determined yet (Bug#9337).
15 (customize-create-theme, custom-theme-revert): Doc fixes.
16
17 * button.el (button-at): Minor addition to docstring.
18
192012-03-24 Simon Leinen <simon.leinen@gmail.com>
20
21 * vc/vc.el (vc-merge): Fix a prompt.
22
232012-03-24 Chong Yidong <cyd@gnu.org>
24
25 * mwheel.el (mwheel-scroll): Call deactivate-mark at the right
26 point (Bug#9623).
27
28 * button.el (button-at): Minor addition to docstring.
29
302012-03-23 Stefan Monnier <monnier@iro.umontreal.ca>
31
32 * newcomment.el (comment-choose-indent): No space after BOL.
33
342012-03-22 Sam Steingold <sds@gnu.org>
35
36 * window.el (switch-to-prev-buffer): Revert last patch because the
37 bug turned out to be an advertised feature (Elisp manual 28.14).
38
392012-03-22 Glenn Morris <rgm@gnu.org>
40
41 * vc/vc-bzr.el (vc-bzr-status-switches): New option. (Bug#6724)
42 (vc-bzr-command): If running "status", pass vc-bzr-status-switches.
43
442012-03-22 Lars Magne Ingebrigtsen <larsi@gnus.org>
45
46 * net/network-stream.el (network-stream-open-starttls): Make error
47 message under Windows be less misleading.
48
492012-03-22 Liang Wang <netcasper@gmail.com> (tiny change)
50
51 * progmodes/etags.el (etags-list-tags): Only use tags which goto-func
52 understands (bug#9942).
53
542012-03-22 Chong Yidong <cyd@gnu.org>
55
56 * simple.el (end-of-visible-line): Handle return value of
57 next-single-property-change properly (Bug#9371).
58
592012-03-22 Kenichi Handa <handa@m17n.org>
60
61 * international/quail.el (quail-insert-kbd-layout): Fix previous
62 change. To avoid unwanted bidi reordering, use
63 bidi-string-mark-left-to-right instead of inserting LRO and PDF.
64
652012-03-21 Dmitry Gutov <dgutov@yandex.ru>
66
67 * progmodes/ruby-mode.el: Don't confuse "end:" for "end" (bug#10786).
68 (ruby-block-end-re, ruby-delimiter, ruby-parse-partial)
69 (ruby-beginning-of-indent): Be more careful with the difference
70 between word-boundary and symbol boundary.
71 (ruby-mode-syntax-table): Make : a symbol constituent.
72
732012-03-21 Andreas Politz <politza@fh-trier.de>
74
75 * outline.el (outline-flag-region): Evaporate overlays (bug#10789).
76
772012-03-21 Stefan Monnier <monnier@iro.umontreal.ca>
78
79 * progmodes/etags.el (tags-completion-at-point-function):
80 Improve last fix.
81
82 * files.el (move-file-to-trash): Files aren't regexps (bug#11055).
83
842012-03-21 Sam Steingold <sds@gnu.org>
85
86 * progmodes/etags.el (tags-completion-at-point-function):
87 Avoid the error when point is inside the pattern.
88
892012-03-21 John Yates <john@yates-sheets.org> (tiny change)
90
91 * progmodes/hideshow.el (hs-inside-comment-p): Fix hiding of first
92 line (Bug#10855).
93
942012-03-21 Drew Adams <drew.adams@oracle.com>
95
96 * info.el (Info-menu): Handle string value of FORK arg (Bug#10858).
97
982012-03-21 Anmol Khirbat <anmol@khirbat.net> (tiny change)
99
100 * ido.el (ido-set-current-directory, ido-read-internal)
101 (ido-choose-completion-string, ido-completion-help): Handle nil
102 value of ido-completion-buffer (Bug#11008).
103
1042012-03-21 Sam Steingold <sds@gnu.org>
105
106 * window.el (switch-to-prev-buffer): Do not switch to a visible
107 window previous buffer, just like with the frame previous buffers.
108
1092012-03-21 Chong Yidong <cyd@gnu.org>
110
111 * faces.el (make-face, make-empty-face, copy-face):
112 * face-remap.el (face-remap-add-relative, face-remap-set-base):
113 Doc fixes.
114
1152012-03-21 Stefan Monnier <monnier@iro.umontreal.ca>
116
117 * wid-edit.el (widget-complete-field): Remove (bug#11051).
118 (widget-complete): Remove broken use of it.
119
12012-03-20 Chong Yidong <cyd@gnu.org> 1202012-03-20 Chong Yidong <cyd@gnu.org>
2 121
3 * emacs-lisp/tabulated-list.el (tabulated-list-print-entry): Use 122 * emacs-lisp/tabulated-list.el (tabulated-list-print-entry):
4 string-width and truncate-string-width to handle arbitrary 123 Use string-width and truncate-string-width to handle arbitrary
5 characters. 124 characters.
6 125
72012-03-20 Tassilo Horn <tassilo@member.fsf.org> 1262012-03-20 Tassilo Horn <tassilo@member.fsf.org>
@@ -17,8 +136,7 @@
17 136
182012-03-18 Leo Liu <sdl.web@gmail.com> 1372012-03-18 Leo Liu <sdl.web@gmail.com>
19 138
20 * net/rcirc.el (rcirc-cmd-quit): Allow quiting all servers with 139 * net/rcirc.el (rcirc-cmd-quit): Allow quiting all servers with prefix.
21 prefix.
22 140
232012-03-17 Eli Zaretskii <eliz@gnu.org> 1412012-03-17 Eli Zaretskii <eliz@gnu.org>
24 142
@@ -48,7 +166,7 @@
48 (hfy-fontify-buffer): Use above handlers. 166 (hfy-fontify-buffer): Use above handlers.
49 (hfy-face-to-css-default): Same as the earlier `hfy-face-to-css'. 167 (hfy-face-to-css-default): Same as the earlier `hfy-face-to-css'.
50 (hfy-face-to-css): Re-defined to be a variable. 168 (hfy-face-to-css): Re-defined to be a variable.
51 (hfy-compile-stylesheet): Modified. Allow stylesheet to be built 169 (hfy-compile-stylesheet): Modify. Allow stylesheet to be built
52 over multiple runs. This is made possible by having the caller let 170 over multiple runs. This is made possible by having the caller let
53 bind a special variable `hfy-user-sheet-assoc'. 171 bind a special variable `hfy-user-sheet-assoc'.
54 (htmlfontify-string): New defun. 172 (htmlfontify-string): New defun.
@@ -72,10 +190,8 @@
72 * progmodes/cc-engine.el (c-crosses-statement-barrier-p): Use a 190 * progmodes/cc-engine.el (c-crosses-statement-barrier-p): Use a
73 limit to a call of `c-literal-limits'. 191 limit to a call of `c-literal-limits'.
74 (c-determine-+ve-limit): New function. 192 (c-determine-+ve-limit): New function.
75 (c-at-macro-vsemi-p): Move `c-in-literal' to the bottom of an 193 (c-at-macro-vsemi-p): Move `c-in-literal' to the bottom of an `and'.
76 `and'. 194 (c-guess-basic-syntax): In macros, restrict a search limit to 2000.
77 (c-guess-basic-syntax): In macros, restrict a search limit to
78 2000.
79 In CASE 5B, restrict a search limit to 500. 195 In CASE 5B, restrict a search limit to 500.
80 (c-just-after-func-arglist-p): Obviouly wrong `or' -> `and'. 196 (c-just-after-func-arglist-p): Obviouly wrong `or' -> `and'.
81 197
@@ -89,7 +205,7 @@
892012-03-16 Aaron S. Hawley <Aaron.S.Hawley@gmail.com> 2052012-03-16 Aaron S. Hawley <Aaron.S.Hawley@gmail.com>
90 206
91 * tar-mode.el (tar-mode): Fix saving by conditionally undoing 207 * tar-mode.el (tar-mode): Fix saving by conditionally undoing
92 `special-mode' setting of `buffer-read-only'. (Bug#11010) 208 `special-mode' setting of `buffer-read-only'. (Bug#11010)
93 209
942012-03-16 Glenn Morris <rgm@gnu.org> 2102012-03-16 Glenn Morris <rgm@gnu.org>
95 211
@@ -156,8 +272,7 @@
156 272
1572012-03-12 Leo Liu <sdl.web@gmail.com> 2732012-03-12 Leo Liu <sdl.web@gmail.com>
158 274
159 * simple.el (kill-new): Use equal-including-properties for 275 * simple.el (kill-new): Use equal-including-properties for comparison.
160 comparison.
161 (kill-do-not-save-duplicates): Doc fix. 276 (kill-do-not-save-duplicates): Doc fix.
162 277
1632012-03-12 Stefan Monnier <monnier@iro.umontreal.ca> 2782012-03-12 Stefan Monnier <monnier@iro.umontreal.ca>
@@ -239,8 +354,7 @@
239 354
240 * net/mairix.el (mairix-replace-invalid-chars): Rename from 355 * net/mairix.el (mairix-replace-invalid-chars): Rename from
241 mairix-replace-illegal-chars; all callers changed. Don't remove 356 mairix-replace-illegal-chars; all callers changed. Don't remove
242 ^, ~, and = characters: they are meaningful in mairix search 357 ^, ~, and = characters: they are meaningful in mairix search specs.
243 specs.
244 (mairix-widget-create-query): Add usage information about mairix 358 (mairix-widget-create-query): Add usage information about mairix
245 search forms: negating words, searching for substrings, etc. 359 search forms: negating words, searching for substrings, etc.
246 360
@@ -425,8 +539,7 @@
425 539
4262012-03-04 Chong Yidong <cyd@gnu.org> 5402012-03-04 Chong Yidong <cyd@gnu.org>
427 541
428 * cus-start.el: Make x-select-enable-clipboard-manager 542 * cus-start.el: Make x-select-enable-clipboard-manager customizable.
429 customizable.
430 543
4312012-03-04 Glenn Morris <rgm@gnu.org> 5442012-03-04 Glenn Morris <rgm@gnu.org>
432 545
@@ -557,7 +670,7 @@
557 (font-lock-default-function): Move the check for a specification 670 (font-lock-default-function): Move the check for a specification
558 to font-lock-spec-present. 671 to font-lock-spec-present.
559 672
560 * font-lock.el (font-lock-initial-fontify): call ... 673 * font-lock.el (font-lock-initial-fontify): Call ...
561 (font-lock-spec-present): New function. 674 (font-lock-spec-present): New function.
562 675
5632012-02-26 Jim Blandy <jimb@red-bean.com> 6762012-02-26 Jim Blandy <jimb@red-bean.com>
@@ -886,8 +999,7 @@
886 999
8872012-02-12 Teodor Zlatanov <tzz@lifelogs.com> 10002012-02-12 Teodor Zlatanov <tzz@lifelogs.com>
888 1001
889 * net/gnutls.el (gnutls-algorithm-priority): Add missing :group 1002 * net/gnutls.el (gnutls-algorithm-priority): Add missing :group tag.
890 tag.
891 1003
8922012-02-12 Alan Mackenzie <acm@muc.de> 10042012-02-12 Alan Mackenzie <acm@muc.de>
893 1005
@@ -1060,8 +1172,8 @@
1060 * progmodes/cc-guess.el (c-guess-offset-threshold, c-guess-region-max): 1172 * progmodes/cc-guess.el (c-guess-offset-threshold, c-guess-region-max):
1061 Add :version tags. 1173 Add :version tags.
1062 1174
1063 * progmodes/compile.el (compilation-first-column) 1175 * progmodes/compile.el (compilation-error-screen-columns)
1064 (compilation-error-screen-columns, compilation-filter-start): Doc fixes. 1176 (compilation-first-column, compilation-filter-start): Doc fixes.
1065 1177
1066 * vc/log-view.el (log-view-toggle-entry-display): 1178 * vc/log-view.el (log-view-toggle-entry-display):
1067 * vc/vc.el (vc-merge, vc-pull): Doc fixes. 1179 * vc/vc.el (vc-merge, vc-pull): Doc fixes.
diff --git a/lisp/ChangeLog.14 b/lisp/ChangeLog.14
index 254e2863889..be50fc46672 100644
--- a/lisp/ChangeLog.14
+++ b/lisp/ChangeLog.14
@@ -7114,7 +7114,7 @@
7114 vc-default-mark-resolved. 7114 vc-default-mark-resolved.
7115 (vc-default-mark-resolved): Change to an alias for ignore. 7115 (vc-default-mark-resolved): Change to an alias for ignore.
7116 7116
71172008-09-24 Andreas Politz <politza@fh-trier.de> (tiny change) 71172008-09-24 Andreas Politz <politza@fh-trier.de>
7118 7118
7119 * term.el (term-emulate-terminal): Encode input string before 7119 * term.el (term-emulate-terminal): Encode input string before
7120 checking its length. 7120 checking its length.
diff --git a/lisp/ChangeLog.15 b/lisp/ChangeLog.15
index bf7a24a5b67..e3890b80ec4 100644
--- a/lisp/ChangeLog.15
+++ b/lisp/ChangeLog.15
@@ -14934,7 +14934,7 @@
14934 * woman.el (woman-make-bufname): Handle man-pages with "." in the 14934 * woman.el (woman-make-bufname): Handle man-pages with "." in the
14935 name. (Bug#5038) 14935 name. (Bug#5038)
14936 14936
149372009-12-02 Andreas Politz <politza@fh-trier.de> (tiny change) 149372009-12-02 Andreas Politz <politza@fh-trier.de>
14938 14938
14939 * ido.el (ido-file-internal): Handle filenames at point that do 14939 * ido.el (ido-file-internal): Handle filenames at point that do
14940 not have a directory part. (Bug#5049) 14940 not have a directory part. (Bug#5049)
@@ -19488,7 +19488,7 @@
19488 (elint-log-message): Add optional argument. Use elint-output. 19488 (elint-log-message): Add optional argument. Use elint-output.
19489 (elint-set-mode-line): New function. 19489 (elint-set-mode-line): New function.
19490 19490
194912009-09-12 Andreas Politz <politza@fh-trier.de> (tiny change) 194912009-09-12 Andreas Politz <politza@fh-trier.de>
19492 19492
19493 * emacs-lisp/elp.el (elp-not-profilable): Add more 19493 * emacs-lisp/elp.el (elp-not-profilable): Add more
19494 functions (Bug#4233). 19494 functions (Bug#4233).
diff --git a/lisp/button.el b/lisp/button.el
index 07c98e668bd..3cf38fa64c6 100644
--- a/lisp/button.el
+++ b/lisp/button.el
@@ -349,7 +349,9 @@ Also see `make-text-button'."
349;; Finding buttons in a buffer 349;; Finding buttons in a buffer
350 350
351(defun button-at (pos) 351(defun button-at (pos)
352 "Return the button at position POS in the current buffer, or nil." 352 "Return the button at position POS in the current buffer, or nil.
353If the button at POS is a text property button, the return value
354is a marker pointing to POS."
353 (let ((button (get-char-property pos 'button))) 355 (let ((button (get-char-property pos 'button)))
354 (if (or (overlayp button) (null button)) 356 (if (or (overlayp button) (null button))
355 button 357 button
diff --git a/lisp/cus-theme.el b/lisp/cus-theme.el
index 79799049378..606033f915c 100644
--- a/lisp/cus-theme.el
+++ b/lisp/cus-theme.el
@@ -81,7 +81,9 @@ Do not call this mode function yourself. It is meant for internal use."
81(defun customize-create-theme (&optional theme buffer) 81(defun customize-create-theme (&optional theme buffer)
82 "Create or edit a custom theme. 82 "Create or edit a custom theme.
83THEME, if non-nil, should be an existing theme to edit. If THEME 83THEME, if non-nil, should be an existing theme to edit. If THEME
84is `user', provide an option to remove these as custom settings. 84is `user', the resulting *Custom Theme* buffer also contains a
85checkbox for removing the theme settings specified in the buffer
86from the Custom save file.
85BUFFER, if non-nil, should be a buffer to use; the default is 87BUFFER, if non-nil, should be a buffer to use; the default is
86named *Custom Theme*." 88named *Custom Theme*."
87 (interactive) 89 (interactive)
@@ -209,6 +211,8 @@ remove them from your saved Custom file.\n\n"))
209 (message ""))) 211 (message "")))
210 212
211(defun custom-theme-revert (_ignore-auto noconfirm) 213(defun custom-theme-revert (_ignore-auto noconfirm)
214 "Revert the current *Custom Theme* buffer.
215This is the `revert-buffer-function' for `custom-new-theme-mode'."
212 (when (or noconfirm (y-or-n-p "Discard current changes? ")) 216 (when (or noconfirm (y-or-n-p "Discard current changes? "))
213 (customize-create-theme custom-theme--save-name (current-buffer)))) 217 (customize-create-theme custom-theme--save-name (current-buffer))))
214 218
@@ -437,14 +441,17 @@ It includes all faces in list FACES."
437 (princ theme) 441 (princ theme)
438 (princ "\n") 442 (princ "\n")
439 (dolist (spec faces) 443 (dolist (spec faces)
444 ;; Insert the face iff the checkbox widget is checked.
440 (when (widget-get (nth 1 spec) :value) 445 (when (widget-get (nth 1 spec) :value)
441 (let* ((symbol (nth 0 spec)) 446 (let* ((symbol (nth 0 spec))
442 (widget (nth 2 spec)) 447 (widget (nth 2 spec))
443 (value 448 (value
444 (if (car-safe (widget-get widget :children)) 449 (cond
445 (custom-face-widget-to-spec widget) 450 ((car-safe (widget-get widget :children))
446 ;; Child is null if the widget is closed (hidden). 451 (custom-face-widget-to-spec widget))
447 (widget-get widget :shown-value)))) 452 ;; Child is null if the widget is closed (hidden).
453 ((widget-get widget :shown-value))
454 (t (custom-face-get-current-spec symbol)))))
448 (when (and (facep symbol) value) 455 (when (and (facep symbol) value)
449 (princ (if (bolp) " '(" "\n '(")) 456 (princ (if (bolp) " '(" "\n '("))
450 (prin1 symbol) 457 (prin1 symbol)
diff --git a/lisp/custom.el b/lisp/custom.el
index 2f17ad36da0..bffd30bff21 100644
--- a/lisp/custom.el
+++ b/lisp/custom.el
@@ -1143,8 +1143,9 @@ prompt the user for confirmation before loading it. But if
1143optional arg NO-CONFIRM is non-nil, load the theme without 1143optional arg NO-CONFIRM is non-nil, load the theme without
1144prompting. 1144prompting.
1145 1145
1146Normally, this function also enables THEME; if optional arg 1146Normally, this function also enables THEME. If optional arg
1147NO-ENABLE is non-nil, load the theme but don't enable it. 1147NO-ENABLE is non-nil, load the theme but don't enable it, unless
1148the theme was already enabled.
1148 1149
1149This function is normally called through Customize when setting 1150This function is normally called through Customize when setting
1150`custom-enabled-themes'. If used directly in your init file, it 1151`custom-enabled-themes'. If used directly in your init file, it
@@ -1160,6 +1161,10 @@ Return t if THEME was successfully loaded, nil otherwise."
1160 nil nil)) 1161 nil nil))
1161 (unless (custom-theme-name-valid-p theme) 1162 (unless (custom-theme-name-valid-p theme)
1162 (error "Invalid theme name `%s'" theme)) 1163 (error "Invalid theme name `%s'" theme))
1164 ;; If THEME is already enabled, re-enable it after loading, even if
1165 ;; NO-ENABLE is t.
1166 (if no-enable
1167 (setq no-enable (not (custom-theme-enabled-p theme))))
1163 ;; If reloading, clear out the old theme settings. 1168 ;; If reloading, clear out the old theme settings.
1164 (when (custom-theme-p theme) 1169 (when (custom-theme-p theme)
1165 (disable-theme theme) 1170 (disable-theme theme)
diff --git a/lisp/face-remap.el b/lisp/face-remap.el
index 3af9e31a6f7..ca7a28328f9 100644
--- a/lisp/face-remap.el
+++ b/lisp/face-remap.el
@@ -106,21 +106,20 @@ The list structure of ENTRY may be destructively modified."
106;;;###autoload 106;;;###autoload
107(defun face-remap-add-relative (face &rest specs) 107(defun face-remap-add-relative (face &rest specs)
108 "Add a face remapping entry of FACE to SPECS in the current buffer. 108 "Add a face remapping entry of FACE to SPECS in the current buffer.
109 109Return a cookie which can be used to delete this remapping with
110Return a cookie which can be used to delete the remapping with
111`face-remap-remove-relative'. 110`face-remap-remove-relative'.
112 111
113SPECS can be any value suitable for the `face' text property, 112The remaining arguments, SPECS, should be either a list of face
114including a face name, a list of face names, or a face-attribute 113names, or a property list of face attribute/value pairs. The
115property list. The attributes given by SPECS will be merged with 114remapping specified by SPECS takes effect alongside the
116any other currently active face remappings of FACE, and with the 115remappings from other calls to `face-remap-add-relative', as well
117global definition of FACE. An attempt is made to sort multiple 116as the normal definition of FACE (at lowest priority). This
118entries so that entries with relative face-attributes are applied 117function tries to sort multiple remappings for the same face, so
119after entries with absolute face-attributes. 118that remappings specifying relative face attributes are applied
120 119after remappings specifying absolute face attributes.
121The base (lowest priority) remapping may be set to a specific 120
122value, instead of the default of the global face definition, 121The base (lowest priority) remapping may be set to something
123using `face-remap-set-base'." 122other than the normal definition of FACE via `face-remap-set-base'."
124 (while (and (consp specs) (null (cdr specs))) 123 (while (and (consp specs) (null (cdr specs)))
125 (setq specs (car specs))) 124 (setq specs (car specs)))
126 (make-local-variable 'face-remapping-alist) 125 (make-local-variable 'face-remapping-alist)
@@ -148,7 +147,9 @@ COOKIE should be the return value from that function."
148 147
149;;;###autoload 148;;;###autoload
150(defun face-remap-reset-base (face) 149(defun face-remap-reset-base (face)
151 "Set the base remapping of FACE to inherit from FACE's global definition." 150 "Set the base remapping of FACE to the normal definition of FACE.
151This causes the remappings specified by `face-remap-add-relative'
152to apply on top of the normal definition of FACE."
152 (let ((entry (assq face face-remapping-alist))) 153 (let ((entry (assq face face-remapping-alist)))
153 (when entry 154 (when entry
154 ;; If there's nothing except a base remapping, we simply remove 155 ;; If there's nothing except a base remapping, we simply remove
@@ -163,10 +164,15 @@ COOKIE should be the return value from that function."
163;;;###autoload 164;;;###autoload
164(defun face-remap-set-base (face &rest specs) 165(defun face-remap-set-base (face &rest specs)
165 "Set the base remapping of FACE in the current buffer to SPECS. 166 "Set the base remapping of FACE in the current buffer to SPECS.
166If SPECS is empty, the default base remapping is restored, which 167This causes the remappings specified by `face-remap-add-relative'
167inherits from the global definition of FACE; note that this is 168to apply on top of the face specification given by SPECS. SPECS
168different from SPECS containing a single value `nil', which does 169should be either a list of face names, or a property list of face
169not inherit from the global definition of FACE." 170attribute/value pairs.
171
172If SPECS is empty, call `face-remap-reset-base' to use the normal
173definition of FACE as the base remapping; note that this is
174different from SPECS containing a single value `nil', which means
175not to inherit from the global definition of FACE at all."
170 (while (and (consp specs) (not (null (car specs))) (null (cdr specs))) 176 (while (and (consp specs) (not (null (car specs))) (null (cdr specs)))
171 (setq specs (car specs))) 177 (setq specs (car specs)))
172 (if (or (null specs) 178 (if (or (null specs)
diff --git a/lisp/faces.el b/lisp/faces.el
index 34fad66ce27..0256f8d951a 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -122,15 +122,13 @@ REGISTRY, ALTERNATIVE1, ALTERNATIVE2, and etc."
122 "Return a list of all defined faces." 122 "Return a list of all defined faces."
123 (mapcar #'car face-new-frame-defaults)) 123 (mapcar #'car face-new-frame-defaults))
124 124
125
126;;; ### If not frame-local initialize by what X resources?
127
128(defun make-face (face &optional no-init-from-resources) 125(defun make-face (face &optional no-init-from-resources)
129 "Define a new face with name FACE, a symbol. 126 "Define a new face with name FACE, a symbol.
130NO-INIT-FROM-RESOURCES non-nil means don't initialize frame-local 127Do not call this directly from Lisp code; use `defface' instead.
131variants of FACE from X resources. (X resources recognized are found 128
132in the global variable `face-x-resources'.) If FACE is already known 129If NO-INIT-FROM-RESOURCES is non-nil, don't initialize face
133as a face, leave it unmodified. Value is FACE." 130attributes from X resources. If FACE is already known as a face,
131leave it unmodified. Return FACE."
134 (interactive (list (read-from-minibuffer 132 (interactive (list (read-from-minibuffer
135 "Make face: " nil nil t 'face-name-history))) 133 "Make face: " nil nil t 'face-name-history)))
136 (unless (facep face) 134 (unless (facep face)
@@ -145,31 +143,30 @@ as a face, leave it unmodified. Value is FACE."
145 (make-face-x-resource-internal face))) 143 (make-face-x-resource-internal face)))
146 face) 144 face)
147 145
148
149(defun make-empty-face (face) 146(defun make-empty-face (face)
150 "Define a new, empty face with name FACE. 147 "Define a new, empty face with name FACE.
151If the face already exists, it is left unmodified. Value is FACE." 148Do not call this directly from Lisp code; use `defface' instead."
152 (interactive (list (read-from-minibuffer 149 (interactive (list (read-from-minibuffer
153 "Make empty face: " nil nil t 'face-name-history))) 150 "Make empty face: " nil nil t 'face-name-history)))
154 (make-face face 'no-init-from-resources)) 151 (make-face face 'no-init-from-resources))
155 152
156
157(defun copy-face (old-face new-face &optional frame new-frame) 153(defun copy-face (old-face new-face &optional frame new-frame)
158 "Define a face just like OLD-FACE, with name NEW-FACE. 154 "Define a face named NEW-FACE, which is a copy of OLD-FACE.
159 155This function does not copy face customization data, so NEW-FACE
160If NEW-FACE already exists as a face, it is modified to be like 156will not be made customizable. Most Lisp code should not call
161OLD-FACE. If it doesn't already exist, it is created. 157this function; use `defface' with :inherit instead.
162 158
163If the optional argument FRAME is given as a frame, NEW-FACE is 159If NEW-FACE already exists as a face, modify it to be like
164changed on FRAME only. 160OLD-FACE. If NEW-FACE doesn't already exist, create it.
165If FRAME is t, the frame-independent default specification for OLD-FACE 161
166is copied to NEW-FACE. 162If the optional argument FRAME is a frame, change NEW-FACE on
167If FRAME is nil, copying is done for the frame-independent defaults 163FRAME only. If FRAME is t, copy the frame-independent default
168and for each existing frame. 164specification for OLD-FACE to NEW-FACE. If FRAME is nil, copy
169 165the defaults as well as the faces on each existing frame.
170If the optional fourth argument NEW-FRAME is given, 166
171copy the information from face OLD-FACE on frame FRAME 167If the optional fourth argument NEW-FRAME is given, copy the
172to NEW-FACE on frame NEW-FRAME. In this case, FRAME may not be nil." 168information from face OLD-FACE on frame FRAME to NEW-FACE on
169frame NEW-FRAME. In this case, FRAME must not be nil."
173 (let ((inhibit-quit t)) 170 (let ((inhibit-quit t))
174 (if (null frame) 171 (if (null frame)
175 (progn 172 (progn
diff --git a/lisp/files.el b/lisp/files.el
index cde15c5d0b1..8c61c288be9 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -6563,7 +6563,7 @@ Otherwise, trash FILENAME using the freedesktop.org conventions,
6563 (new-fn (expand-file-name (file-name-nondirectory fn) 6563 (new-fn (expand-file-name (file-name-nondirectory fn)
6564 trash-dir))) 6564 trash-dir)))
6565 ;; We can't trash a parent directory of trash-directory. 6565 ;; We can't trash a parent directory of trash-directory.
6566 (if (string-match fn trash-dir) 6566 (if (string-prefix-p fn trash-dir)
6567 (error "Trash directory `%s' is a subdirectory of `%s'" 6567 (error "Trash directory `%s' is a subdirectory of `%s'"
6568 trash-dir filename)) 6568 trash-dir filename))
6569 (unless (file-directory-p trash-dir) 6569 (unless (file-directory-p trash-dir)
@@ -6595,10 +6595,10 @@ Otherwise, trash FILENAME using the freedesktop.org conventions,
6595 (file-name-directory fn))) 6595 (file-name-directory fn)))
6596 (error "Cannot move %s to trash: Permission denied" filename)) 6596 (error "Cannot move %s to trash: Permission denied" filename))
6597 ;; The trashed file cannot be the trash dir or its parent. 6597 ;; The trashed file cannot be the trash dir or its parent.
6598 (if (string-match fn trash-files-dir) 6598 (if (string-prefix-p fn trash-files-dir)
6599 (error "The trash directory %s is a subdirectory of %s" 6599 (error "The trash directory %s is a subdirectory of %s"
6600 trash-files-dir filename)) 6600 trash-files-dir filename))
6601 (if (string-match fn trash-info-dir) 6601 (if (string-prefix-p fn trash-info-dir)
6602 (error "The trash directory %s is a subdirectory of %s" 6602 (error "The trash directory %s is a subdirectory of %s"
6603 trash-info-dir filename)) 6603 trash-info-dir filename))
6604 6604
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 878b9b9eb6b..ef0f1c5c852 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,8 @@
12012-03-22 Lars Magne Ingebrigtsen <larsi@gnus.org>
2
3 * auth-source.el (auth-source-netrc-create): Quote tokens that contain
4 "#" to avoid having them interpreted as comments.
5
12012-03-19 Lars Magne Ingebrigtsen <larsi@gnus.org> 62012-03-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
2 7
3 * shr.el (shr-insert): Update the text state properly to avoid 8 * shr.el (shr-insert): Update the text state properly to avoid
diff --git a/lisp/gnus/auth-source.el b/lisp/gnus/auth-source.el
index 80a3b91b60a..34fe5afe7af 100644
--- a/lisp/gnus/auth-source.el
+++ b/lisp/gnus/auth-source.el
@@ -1293,7 +1293,7 @@ See `auth-source-search' for details on SPEC."
1293 (secret "password") 1293 (secret "password")
1294 (port "port") ; redundant but clearer 1294 (port "port") ; redundant but clearer
1295 (t (symbol-name r))) 1295 (t (symbol-name r)))
1296 (if (string-match "[\" ]" data) 1296 (if (string-match "[\"# ]" data)
1297 (format "%S" data) 1297 (format "%S" data)
1298 data))))) 1298 data)))))
1299 (setq add (concat add (funcall printer))))))) 1299 (setq add (concat add (funcall printer)))))))
diff --git a/lisp/ido.el b/lisp/ido.el
index 5813aff0f21..dcaa8f373ce 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -1722,8 +1722,9 @@ This function also adds a hook to the minibuffer."
1722 (unless (and ido-enable-tramp-completion 1722 (unless (and ido-enable-tramp-completion
1723 (string-match "\\`/[^/]*@\\'" dir)) 1723 (string-match "\\`/[^/]*@\\'" dir))
1724 (setq dir (ido-final-slash dir t)))) 1724 (setq dir (ido-final-slash dir t))))
1725 (if (get-buffer ido-completion-buffer) 1725 (and ido-completion-buffer
1726 (kill-buffer ido-completion-buffer)) 1726 (get-buffer ido-completion-buffer)
1727 (kill-buffer ido-completion-buffer))
1727 (cond 1728 (cond
1728 ((equal dir ido-current-directory) 1729 ((equal dir ido-current-directory)
1729 nil) 1730 nil)
@@ -1736,8 +1737,9 @@ This function also adds a hook to the minibuffer."
1736 (t 1737 (t
1737 (ido-trace "cd" dir) 1738 (ido-trace "cd" dir)
1738 (setq ido-current-directory dir) 1739 (setq ido-current-directory dir)
1739 (if (get-buffer ido-completion-buffer) 1740 (and ido-completion-buffer
1740 (kill-buffer ido-completion-buffer)) 1741 (get-buffer ido-completion-buffer)
1742 (kill-buffer ido-completion-buffer))
1741 (setq ido-directory-nonreadable (ido-nonreadable-directory-p dir)) 1743 (setq ido-directory-nonreadable (ido-nonreadable-directory-p dir))
1742 (setq ido-directory-too-big (and (not ido-directory-nonreadable) 1744 (setq ido-directory-too-big (and (not ido-directory-nonreadable)
1743 (ido-directory-too-big-p dir))) 1745 (ido-directory-too-big-p dir)))
@@ -1982,8 +1984,9 @@ If INITIAL is non-nil, it specifies the initial input string."
1982 (setq ido-text-init nil)) 1984 (setq ido-text-init nil))
1983 ido-completion-map nil hist)))) 1985 ido-completion-map nil hist))))
1984 (ido-trace "read-from-minibuffer" ido-final-text) 1986 (ido-trace "read-from-minibuffer" ido-final-text)
1985 (if (get-buffer ido-completion-buffer) 1987 (and ido-completion-buffer
1986 (kill-buffer ido-completion-buffer)) 1988 (get-buffer ido-completion-buffer)
1989 (kill-buffer ido-completion-buffer))
1987 1990
1988 (ido-trace "\n_EXIT_" ido-exit) 1991 (ido-trace "\n_EXIT_" ido-exit)
1989 1992
@@ -3837,8 +3840,9 @@ This is to make them appear as if they were \"virtual buffers\"."
3837(defun ido-choose-completion-string (choice &rest ignored) 3840(defun ido-choose-completion-string (choice &rest ignored)
3838 (when (ido-active) 3841 (when (ido-active)
3839 ;; Insert the completion into the buffer where completion was requested. 3842 ;; Insert the completion into the buffer where completion was requested.
3840 (if (get-buffer ido-completion-buffer) 3843 (and ido-completion-buffer
3841 (kill-buffer ido-completion-buffer)) 3844 (get-buffer ido-completion-buffer)
3845 (kill-buffer ido-completion-buffer))
3842 (cond 3846 (cond
3843 ((ido-active t) ;; ido-use-merged-list 3847 ((ido-active t) ;; ido-use-merged-list
3844 (setq ido-current-directory "" 3848 (setq ido-current-directory ""
@@ -3857,7 +3861,8 @@ This is to make them appear as if they were \"virtual buffers\"."
3857 "Show possible completions in a *File Completions* buffer." 3861 "Show possible completions in a *File Completions* buffer."
3858 (interactive) 3862 (interactive)
3859 (setq ido-rescan nil) 3863 (setq ido-rescan nil)
3860 (let ((temp-buf (get-buffer ido-completion-buffer)) 3864 (let ((temp-buf (and ido-completion-buffer
3865 (get-buffer ido-completion-buffer)))
3861 display-it full-list) 3866 display-it full-list)
3862 (if (and (eq last-command this-command) temp-buf) 3867 (if (and (eq last-command this-command) temp-buf)
3863 ;; scroll buffer 3868 ;; scroll buffer
@@ -3876,7 +3881,7 @@ This is to make them appear as if they were \"virtual buffers\"."
3876 (scroll-other-window)) 3881 (scroll-other-window))
3877 (set-buffer buf)) 3882 (set-buffer buf))
3878 (setq display-it t)) 3883 (setq display-it t))
3879 (if display-it 3884 (if (and ido-completion-buffer display-it)
3880 (with-output-to-temp-buffer ido-completion-buffer 3885 (with-output-to-temp-buffer ido-completion-buffer
3881 (let ((completion-list (sort 3886 (let ((completion-list (sort
3882 (cond 3887 (cond
diff --git a/lisp/info.el b/lisp/info.el
index b7e2d1eedbe..042ff158362 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -2594,7 +2594,9 @@ new buffer."
2594 (list item current-prefix-arg)))) 2594 (list item current-prefix-arg))))
2595 ;; there is a problem here in that if several menu items have the same 2595 ;; there is a problem here in that if several menu items have the same
2596 ;; name you can only go to the node of the first with this command. 2596 ;; name you can only go to the node of the first with this command.
2597 (Info-goto-node (Info-extract-menu-item menu-item) (if fork menu-item))) 2597 (Info-goto-node (Info-extract-menu-item menu-item)
2598 (and fork
2599 (if (stringp fork) fork menu-item))))
2598 2600
2599(defun Info-extract-menu-item (menu-item) 2601(defun Info-extract-menu-item (menu-item)
2600 (setq menu-item (regexp-quote menu-item)) 2602 (setq menu-item (regexp-quote menu-item))
diff --git a/lisp/international/quail.el b/lisp/international/quail.el
index e0e6bfd465b..70e6d4b69cb 100644
--- a/lisp/international/quail.el
+++ b/lisp/international/quail.el
@@ -825,8 +825,6 @@ The format of KBD-LAYOUT is the same as `quail-keyboard-layout'."
825 (setq i 0) 825 (setq i 0)
826 (while (< i quail-keyboard-layout-len) 826 (while (< i quail-keyboard-layout-len)
827 (when (= (% i 30) 0) 827 (when (= (% i 30) 0)
828 ;; Insert LRO to avoid bidi-reordering of keyboard cells.
829 (insert (propertize (string ?\x202d) 'invisible t))
830 (setq row (/ i 30)) 828 (setq row (/ i 30))
831 (if (> row 1) 829 (if (> row 1)
832 (insert-char 32 (+ row (/ (- row 2) 2))))) 830 (insert-char 32 (+ row (/ (- row 2) 2)))))
@@ -835,25 +833,26 @@ The format of KBD-LAYOUT is the same as `quail-keyboard-layout'."
835 (insert bar) 833 (insert bar)
836 (if (< (if (stringp lower) (string-width lower) (char-width lower)) 2) 834 (if (< (if (stringp lower) (string-width lower) (char-width lower)) 2)
837 (insert " ")) 835 (insert " "))
838 (if (and (characterp lower) 836 (if (characterp lower)
839 (eq (get-char-code-property lower 'general-category) 'Mn)) 837 (if (eq (get-char-code-property lower 'general-category) 'Mn)
840 ;; Pad the left and right of non-spacing characters. 838 ;; Pad the left and right of non-spacing characters.
841 (setq lower (compose-string (string lower) 0 1 839 (setq lower (compose-string (string lower) 0 1
842 (format "\t%c\t" lower)))) 840 (format "\t%c\t" lower)))
843 (if (and (characterp upper) 841 (setq lower (string lower))))
844 (eq (get-char-code-property upper 'general-category) 'Mn)) 842 (if (characterp upper)
845 ;; Pad the left and right of non-spacing characters. 843 (if (eq (get-char-code-property upper 'general-category) 'Mn)
846 (setq upper (compose-string (string upper) 0 1 844 ;; Pad the left and right of non-spacing characters.
847 (format "\t%c\t" upper)))) 845 (setq upper (compose-string (string upper) 0 1
848 (insert lower (propertize " " 'invisible t) upper) 846 (format "\t%c\t" upper)))
849 (if (< (if (stringp upper) (string-width upper) (char-width upper)) 2) 847 (setq upper (string upper))))
848 (insert (bidi-string-mark-left-to-right lower)
849 (propertize " " 'invisible t)
850 (bidi-string-mark-left-to-right upper))
851 (if (< (string-width upper) 2)
850 (insert " ")) 852 (insert " "))
851 (setq i (+ i 2)) 853 (setq i (+ i 2))
852 (if (= (% i 30) 0) 854 (if (= (% i 30) 0)
853 (insert bar 855 (insert bar "\n")))
854 ;; Insert PDF to deny the previously inserted LRO.
855 (propertize (string ?\x202c) 'invisible t)
856 "\n")))
857 ;; Insert horizontal lines while deleting blank key columns at the 856 ;; Insert horizontal lines while deleting blank key columns at the
858 ;; beginning and end of each line. 857 ;; beginning and end of each line.
859 (save-restriction 858 (save-restriction
diff --git a/lisp/makefile.w32-in b/lisp/makefile.w32-in
index 33c87778dfd..7907c5f10ce 100644
--- a/lisp/makefile.w32-in
+++ b/lisp/makefile.w32-in
@@ -510,9 +510,9 @@ bootstrap: update-subdirs autoloads mh-autoloads compile finder-data custom-deps
510# 510#
511install: 511install:
512 - mkdir "$(INSTALL_DIR)/lisp" 512 - mkdir "$(INSTALL_DIR)/lisp"
513 - $(DEL) ../same-dir.tst 513 - $(DEL) ../$(DIRNAME)_same-dir.tst
514 - $(DEL) "$(INSTALL_DIR)/same-dir.tst" 514 - $(DEL) "$(INSTALL_DIR)/$(DIRNAME)_same-dir.tst"
515 echo SameDirTest > "$(INSTALL_DIR)/same-dir.tst" 515 echo SameDirTest > "$(INSTALL_DIR)/$(DIRNAME)_same-dir.tst"
516#ifdef COPY_LISP_SOURCE 516#ifdef COPY_LISP_SOURCE
517 $(IFNOTSAMEDIR) $(MAKE) $(MFLAGS) install-lisp-$(SHELLTYPE) $(ENDIF) 517 $(IFNOTSAMEDIR) $(MAKE) $(MFLAGS) install-lisp-$(SHELLTYPE) $(ENDIF)
518#else 518#else
@@ -528,8 +528,8 @@ install:
528# $(IFNOTSAMEDIR) $(CP) international/latin-*.el "$(INSTALL_DIR)/lisp/international" $(ENDIF) 528# $(IFNOTSAMEDIR) $(CP) international/latin-*.el "$(INSTALL_DIR)/lisp/international" $(ENDIF)
529# $(IFNOTSAMEDIR) $(CP) international/mule-conf.el "$(INSTALL_DIR)/lisp/international" $(ENDIF) 529# $(IFNOTSAMEDIR) $(CP) international/mule-conf.el "$(INSTALL_DIR)/lisp/international" $(ENDIF)
530#endif 530#endif
531 - $(DEL) ../same-dir.tst 531 - $(DEL) ../$(DIRNAME)_same-dir.tst
532 - $(DEL) "$(INSTALL_DIR)/same-dir.tst" 532 - $(DEL) "$(INSTALL_DIR)/$(DIRNAME)_same-dir.tst"
533 533
534# Need to copy *.el files first, to avoid "source file is newer" annoyance 534# Need to copy *.el files first, to avoid "source file is newer" annoyance
535# since cp does not preserve time stamps 535# since cp does not preserve time stamps
diff --git a/lisp/mwheel.el b/lisp/mwheel.el
index 7b507664712..1c2028ed02e 100644
--- a/lisp/mwheel.el
+++ b/lisp/mwheel.el
@@ -232,12 +232,17 @@ This should only be bound to mouse buttons 4 and 5."
232 (end-of-buffer (while t (funcall mwheel-scroll-up-function))))) 232 (end-of-buffer (while t (funcall mwheel-scroll-up-function)))))
233 (t (error "Bad binding in mwheel-scroll")))) 233 (t (error "Bad binding in mwheel-scroll"))))
234 (if curwin (select-window curwin))) 234 (if curwin (select-window curwin)))
235 ;; If there is a temporarily active region, deactivate it iff 235 ;; If there is a temporarily active region, deactivate it if
236 ;; scrolling moves point. 236 ;; scrolling moves point.
237 (when opoint 237 (when opoint
238 (with-current-buffer buffer 238 (with-current-buffer buffer
239 (when (/= opoint (point)) 239 (when (/= opoint (point))
240 (deactivate-mark))))) 240 ;; Call `deactivate-mark' at the original position, so that
241 ;; the original region is saved to the X selection.
242 (let ((newpoint (point)))
243 (goto-char opoint)
244 (deactivate-mark)
245 (goto-char newpoint))))))
241 (when (and mouse-wheel-click-event mouse-wheel-inhibit-click-time) 246 (when (and mouse-wheel-click-event mouse-wheel-inhibit-click-time)
242 (if mwheel-inhibit-click-event-timer 247 (if mwheel-inhibit-click-event-timer
243 (cancel-timer mwheel-inhibit-click-event-timer) 248 (cancel-timer mwheel-inhibit-click-event-timer)
diff --git a/lisp/net/network-stream.el b/lisp/net/network-stream.el
index 8730e875ea0..7a3d47ef1d1 100644
--- a/lisp/net/network-stream.el
+++ b/lisp/net/network-stream.el
@@ -302,11 +302,16 @@ functionality.
302 (if (or (null starttls-command) 302 (if (or (null starttls-command)
303 starttls-available) 303 starttls-available)
304 "Server does not support TLS" 304 "Server does not support TLS"
305 (concat "Emacs does not support TLS, and no external `" 305 ;; See `starttls-available-p'. If this predicate
306 (if starttls-use-gnutls 306 ;; changes to allow running under Windows, the error
307 starttls-gnutls-program 307 ;; message below should be amended.
308 starttls-program) 308 (if (memq system-type '(windows-nt ms-dos))
309 "' program was found"))) 309 (concat "Emacs does not support TLS")
310 (concat "Emacs does not support TLS, and no external `"
311 (if starttls-use-gnutls
312 starttls-gnutls-program
313 starttls-program)
314 "' program was found"))))
310 (delete-process stream) 315 (delete-process stream)
311 (setq stream nil)) 316 (setq stream nil))
312 ;; Return value: 317 ;; Return value:
diff --git a/lisp/newcomment.el b/lisp/newcomment.el
index ddb6c71d1a6..40bb36daf45 100644
--- a/lisp/newcomment.el
+++ b/lisp/newcomment.el
@@ -587,7 +587,7 @@ Point is expected to be at the start of the comment."
587 (save-excursion (end-of-line) (current-column))))) 587 (save-excursion (end-of-line) (current-column)))))
588 (other nil) 588 (other nil)
589 (min (save-excursion (skip-chars-backward " \t") 589 (min (save-excursion (skip-chars-backward " \t")
590 (1+ (current-column))))) 590 (if (bolp) 0 (1+ (current-column))))))
591 ;; Fix up the range. 591 ;; Fix up the range.
592 (if (< max min) (setq max min)) 592 (if (< max min) (setq max min))
593 ;; Don't move past the fill column. 593 ;; Don't move past the fill column.
diff --git a/lisp/outline.el b/lisp/outline.el
index 15af855ff43..da5519f95eb 100644
--- a/lisp/outline.el
+++ b/lisp/outline.el
@@ -751,6 +751,7 @@ If FLAG is nil then text is shown, while if FLAG is t the text is hidden."
751 ;; very end of the heading, before the newline, so text inserted at FROM 751 ;; very end of the heading, before the newline, so text inserted at FROM
752 ;; belongs to the heading rather than to the entry. 752 ;; belongs to the heading rather than to the entry.
753 (let ((o (make-overlay from to nil 'front-advance))) 753 (let ((o (make-overlay from to nil 'front-advance)))
754 (overlay-put o 'evaporate t)
754 (overlay-put o 'invisible 'outline) 755 (overlay-put o 'invisible 'outline)
755 (overlay-put o 'isearch-open-invisible 756 (overlay-put o 'isearch-open-invisible
756 (or outline-isearch-open-invisible-function 757 (or outline-isearch-open-invisible-function
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
index cc5f0fef934..6bb86738df0 100644
--- a/lisp/progmodes/etags.el
+++ b/lisp/progmodes/etags.el
@@ -809,10 +809,11 @@ If no tags table is loaded, do nothing and return nil."
809 beg) 809 beg)
810 (when pattern 810 (when pattern
811 (save-excursion 811 (save-excursion
812 (search-backward pattern) ;FIXME: will fail if we're inside pattern. 812 (forward-char (1- (length pattern)))
813 (setq beg (point)) 813 (search-backward pattern)
814 (forward-char (length pattern)) 814 (setq beg (point))
815 (list beg (point) (tags-lazy-completion-table) :exclusive 'no)))))) 815 (forward-char (length pattern))
816 (list beg (point) (tags-lazy-completion-table) :exclusive 'no))))))
816 817
817(defun find-tag-tag (string) 818(defun find-tag-tag (string)
818 "Read a tag name, with defaulting and completion." 819 "Read a tag name, with defaulting and completion."
@@ -1409,7 +1410,9 @@ hits the start of file."
1409 tag tag-info pt) 1410 tag tag-info pt)
1410 (forward-line 1) 1411 (forward-line 1)
1411 (while (not (or (eobp) (looking-at "\f"))) 1412 (while (not (or (eobp) (looking-at "\f")))
1412 (setq tag-info (save-excursion (funcall snarf-tag-function t)) 1413 ;; We used to use explicit tags when available, but the current goto-func
1414 ;; can only handle implicit tags.
1415 (setq tag-info (save-excursion (funcall snarf-tag-function nil))
1413 tag (car tag-info) 1416 tag (car tag-info)
1414 pt (with-current-buffer standard-output (point))) 1417 pt (with-current-buffer standard-output (point)))
1415 (princ tag) 1418 (princ tag)
diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el
index 104a8f96727..26db60ddbc2 100644
--- a/lisp/progmodes/hideshow.el
+++ b/lisp/progmodes/hideshow.el
@@ -607,6 +607,7 @@ as cdr."
607 ;; forward comment, and see if we are inside, then extend 607 ;; forward comment, and see if we are inside, then extend
608 ;; forward and backward as long as we have comments 608 ;; forward and backward as long as we have comments
609 (let ((q (point))) 609 (let ((q (point)))
610 (skip-chars-forward "[:blank:]")
610 (when (or (looking-at hs-c-start-regexp) 611 (when (or (looking-at hs-c-start-regexp)
611 (re-search-backward hs-c-start-regexp (point-min) t)) 612 (re-search-backward hs-c-start-regexp (point-min) t))
612 ;; first get to the beginning of this comment... 613 ;; first get to the beginning of this comment...
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index bf264972940..66aa256f947 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -96,7 +96,7 @@
96 (regexp-opt (append ruby-modifier-beg-keywords ruby-block-op-keywords)) 96 (regexp-opt (append ruby-modifier-beg-keywords ruby-block-op-keywords))
97 "Regexp to match hanging block modifiers.") 97 "Regexp to match hanging block modifiers.")
98 98
99(defconst ruby-block-end-re "\\<end\\>") 99(defconst ruby-block-end-re "\\_<end\\_>")
100 100
101(eval-and-compile 101(eval-and-compile
102 (defconst ruby-here-doc-beg-re 102 (defconst ruby-here-doc-beg-re
@@ -115,9 +115,9 @@ This should only be called after matching against `ruby-here-doc-beg-re'."
115 (match-string 6))))) 115 (match-string 6)))))
116 116
117(defconst ruby-delimiter 117(defconst ruby-delimiter
118 (concat "[?$/%(){}#\"'`.:]\\|<<\\|\\[\\|\\]\\|\\<\\(" 118 (concat "[?$/%(){}#\"'`.:]\\|<<\\|\\[\\|\\]\\|\\_<\\("
119 ruby-block-beg-re 119 ruby-block-beg-re
120 "\\)\\>\\|" ruby-block-end-re 120 "\\)\\_>\\|" ruby-block-end-re
121 "\\|^=begin\\|" ruby-here-doc-beg-re)) 121 "\\|^=begin\\|" ruby-here-doc-beg-re))
122 122
123(defconst ruby-negative 123(defconst ruby-negative
@@ -166,6 +166,7 @@ This should only be called after matching against `ruby-here-doc-beg-re'."
166 (modify-syntax-entry ?$ "." table) 166 (modify-syntax-entry ?$ "." table)
167 (modify-syntax-entry ?? "_" table) 167 (modify-syntax-entry ?? "_" table)
168 (modify-syntax-entry ?_ "_" table) 168 (modify-syntax-entry ?_ "_" table)
169 (modify-syntax-entry ?: "_" table)
169 (modify-syntax-entry ?< "." table) 170 (modify-syntax-entry ?< "." table)
170 (modify-syntax-entry ?> "." table) 171 (modify-syntax-entry ?> "." table)
171 (modify-syntax-entry ?& "." table) 172 (modify-syntax-entry ?& "." table)
@@ -565,7 +566,7 @@ and `\\' when preceded by `?'."
565 (setq nest (cons (cons nil pnt) nest)) 566 (setq nest (cons (cons nil pnt) nest))
566 (setq depth (1+ depth)))) 567 (setq depth (1+ depth))))
567 (goto-char (match-end 0))) 568 (goto-char (match-end 0)))
568 ((looking-at (concat "\\<\\(" ruby-block-beg-re "\\)\\>")) 569 ((looking-at (concat "\\_<\\(" ruby-block-beg-re "\\)\\_>"))
569 (and 570 (and
570 (save-match-data 571 (save-match-data
571 (or (not (looking-at (concat "do" ruby-keyword-end-re))) 572 (or (not (looking-at (concat "do" ruby-keyword-end-re)))
@@ -864,7 +865,7 @@ move backward."
864 ;; It seems like it should move to the line where indentation should deepen, 865 ;; It seems like it should move to the line where indentation should deepen,
865 ;; but ruby-indent-beg-re only accounts for whitespace before class, module and def, 866 ;; but ruby-indent-beg-re only accounts for whitespace before class, module and def,
866 ;; so this will only match other block beginners at the beginning of the line. 867 ;; so this will only match other block beginners at the beginning of the line.
867 (and (re-search-backward (concat "^\\(" ruby-indent-beg-re "\\)\\b") nil 'move) 868 (and (re-search-backward (concat "^\\(" ruby-indent-beg-re "\\)\\_>") nil 'move)
868 (beginning-of-line))) 869 (beginning-of-line)))
869 870
870(defun ruby-move-to-block (n) 871(defun ruby-move-to-block (n)
diff --git a/lisp/simple.el b/lisp/simple.el
index 936037f5caa..8b04534455d 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -3688,7 +3688,8 @@ If ARG is zero, move to the beginning of the current line."
3688 (assq prop buffer-invisibility-spec)))))) 3688 (assq prop buffer-invisibility-spec))))))
3689 (skip-chars-forward "^\n") 3689 (skip-chars-forward "^\n")
3690 (if (get-text-property (point) 'invisible) 3690 (if (get-text-property (point) 'invisible)
3691 (goto-char (next-single-property-change (point) 'invisible)) 3691 (goto-char (or (next-single-property-change (point) 'invisible)
3692 (point-max)))
3692 (goto-char (next-overlay-change (point)))) 3693 (goto-char (next-overlay-change (point))))
3693 (end-of-line))) 3694 (end-of-line)))
3694 3695
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog
index ff6a6e6f805..d6e25188c69 100644
--- a/lisp/url/ChangeLog
+++ b/lisp/url/ChangeLog
@@ -1,3 +1,8 @@
12012-03-25 Lars Magne Ingebrigtsen <larsi@gnus.org>
2
3 * url-queue.el (url-queue-kill-job): Check whether the buffer has
4 been killed asynchronously before selecting it.
5
12012-03-14 Lars Magne Ingebrigtsen <larsi@gnus.org> 62012-03-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
2 7
3 * url-queue.el (url-queue-kill-job): Make sure that the callback 8 * url-queue.el (url-queue-kill-job): Make sure that the callback
diff --git a/lisp/url/url-queue.el b/lisp/url/url-queue.el
index 46124717fed..917c787df29 100644
--- a/lisp/url/url-queue.el
+++ b/lisp/url/url-queue.el
@@ -160,7 +160,8 @@ The variable `url-queue-timeout' sets a timeout."
160 ;; Call the callback with an error message to ensure that the caller 160 ;; Call the callback with an error message to ensure that the caller
161 ;; is notified that the job has failed. 161 ;; is notified that the job has failed.
162 (with-current-buffer 162 (with-current-buffer
163 (if (bufferp (url-queue-buffer job)) 163 (if (and (bufferp (url-queue-buffer job))
164 (buffer-live-p (url-queue-buffer job)))
164 ;; Use the (partially filled) process buffer it it exists. 165 ;; Use the (partially filled) process buffer it it exists.
165 (url-queue-buffer job) 166 (url-queue-buffer job)
166 ;; If not, just create a new buffer, which will probably be 167 ;; If not, just create a new buffer, which will probably be
diff --git a/lisp/vc/vc-bzr.el b/lisp/vc/vc-bzr.el
index 9f35fc8f035..798131236d5 100644
--- a/lisp/vc/vc-bzr.el
+++ b/lisp/vc/vc-bzr.el
@@ -89,18 +89,40 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches."
89 (repeat :tag "Argument List" :value ("") string)) 89 (repeat :tag "Argument List" :value ("") string))
90 :group 'vc-bzr) 90 :group 'vc-bzr)
91 91
92(defcustom vc-bzr-status-switches
93 (ignore-errors
94 (with-temp-buffer
95 (call-process vc-bzr-program nil t nil "help" "status")
96 (if (search-backward "--no-classify" nil t)
97 "--no-classify")))
98 "String or list of strings specifying switches for bzr status under VC.
99The option \"--no-classify\" should be present if your bzr supports it."
100 :type '(choice (const :tag "None" nil)
101 (string :tag "Argument String")
102 (repeat :tag "Argument List" :value ("") string))
103 :group 'vc-bzr
104 :version "24.1")
105
92;; since v0.9, bzr supports removing the progress indicators 106;; since v0.9, bzr supports removing the progress indicators
93;; by setting environment variable BZR_PROGRESS_BAR to "none". 107;; by setting environment variable BZR_PROGRESS_BAR to "none".
94(defun vc-bzr-command (bzr-command buffer okstatus file-or-list &rest args) 108(defun vc-bzr-command (bzr-command buffer okstatus file-or-list &rest args)
95 "Wrapper round `vc-do-command' using `vc-bzr-program' as COMMAND. 109 "Wrapper round `vc-do-command' using `vc-bzr-program' as COMMAND.
96Invoke the bzr command adding `BZR_PROGRESS_BAR=none' and 110Invoke the bzr command adding `BZR_PROGRESS_BAR=none' and
97`LC_MESSAGES=C' to the environment." 111`LC_MESSAGES=C' to the environment. If BZR-COMMAND is \"status\",
112prepends `vc-bzr-status-switches' to ARGS."
98 (let ((process-environment 113 (let ((process-environment
99 (list* "BZR_PROGRESS_BAR=none" ; Suppress progress output (bzr >=0.9) 114 (list* "BZR_PROGRESS_BAR=none" ; Suppress progress output (bzr >=0.9)
100 "LC_MESSAGES=C" ; Force English output 115 "LC_MESSAGES=C" ; Force English output
101 process-environment))) 116 process-environment)))
102 (apply 'vc-do-command (or buffer "*vc*") okstatus vc-bzr-program 117 (apply 'vc-do-command (or buffer "*vc*") okstatus vc-bzr-program
103 file-or-list bzr-command args))) 118 file-or-list bzr-command
119 (if (and (string-equal "status" bzr-command)
120 vc-bzr-status-switches)
121 (append (if (stringp vc-bzr-status-switches)
122 (list vc-bzr-status-switches)
123 vc-bzr-status-switches)
124 args)
125 args))))
104 126
105(defun vc-bzr-async-command (bzr-command &rest args) 127(defun vc-bzr-async-command (bzr-command &rest args)
106 "Wrapper round `vc-do-async-command' using `vc-bzr-program' as COMMAND. 128 "Wrapper round `vc-do-async-command' using `vc-bzr-program' as COMMAND.
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index e1141cb392d..4cbbf47c2d6 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -1922,7 +1922,7 @@ changes from the current branch."
1922 (setq first-revision 1922 (setq first-revision
1923 (vc-read-revision 1923 (vc-read-revision
1924 (concat "Merge " file 1924 (concat "Merge " file
1925 "from branch or revision " 1925 " from branch or revision "
1926 "(default news on current branch): ") 1926 "(default news on current branch): ")
1927 (list file) 1927 (list file)
1928 backend)) 1928 backend))
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 61bb4db558c..b6feecebde5 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -1141,12 +1141,6 @@ the field."
1141 (kill-region (point) end) 1141 (kill-region (point) end)
1142 (call-interactively 'kill-line)))) 1142 (call-interactively 'kill-line))))
1143 1143
1144(defcustom widget-complete-field (lookup-key global-map "\M-\t")
1145 "Default function to call for completion inside fields."
1146 :options '(ispell-complete-word complete-tag lisp-complete-symbol)
1147 :type 'function
1148 :group 'widgets)
1149
1150(defun widget-narrow-to-field () 1144(defun widget-narrow-to-field ()
1151 "Narrow to field." 1145 "Narrow to field."
1152 (interactive) 1146 (interactive)
@@ -1169,10 +1163,6 @@ When not inside a field, signal an error."
1169 (completion-in-region (nth 0 data) (nth 1 data) (nth 2 data) 1163 (completion-in-region (nth 0 data) (nth 1 data) (nth 2 data)
1170 (plist-get completion-extra-properties 1164 (plist-get completion-extra-properties
1171 :predicate)))) 1165 :predicate))))
1172 ((widget-field-find (point))
1173 ;; This defaulting used to be performed in widget-default-complete, but
1174 ;; it seems more appropriate here than in widget-default-completions.
1175 (call-interactively 'widget-complete-field))
1176 (t 1166 (t
1177 (error "Not in an editable field"))))) 1167 (error "Not in an editable field")))))
1178;; We may want to use widget completion in buffers where the major mode 1168;; We may want to use widget completion in buffers where the major mode
diff --git a/lisp/window.el b/lisp/window.el
index f79041e0e6c..cb7368fc7ff 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -2600,11 +2600,16 @@ shall not be switched to in future invocations of this command."
2600 (not (setq killed-buffers 2600 (not (setq killed-buffers
2601 (cons new-buffer killed-buffers)))) 2601 (cons new-buffer killed-buffers))))
2602 (not (eq new-buffer old-buffer)) 2602 (not (eq new-buffer old-buffer))
2603 (or bury-or-kill 2603 (or bury-or-kill
2604 (not (memq new-buffer next-buffers)))) 2604 (not (memq new-buffer next-buffers))))
2605 (set-window-buffer-start-and-point 2605 ;; _DO_ show visible buffers as advertized in Elisp manual 28.14
2606 window new-buffer (nth 1 entry) (nth 2 entry)) 2606 ;; on `switch-to-prev-buffer' & `switch-to-next-buffer'
2607 (throw 'found t))) 2607 ;;(if (get-buffer-window new-buffer)
2608 ;; ;; Try to avoid showing a buffer visible in some other window.
2609 ;; (setq visible new-buffer)
2610 (set-window-buffer-start-and-point
2611 window new-buffer (nth 1 entry) (nth 2 entry))
2612 (throw 'found t)))
2608 ;; Scan reverted buffer list of WINDOW's frame next, skipping 2613 ;; Scan reverted buffer list of WINDOW's frame next, skipping
2609 ;; entries of next buffers. Note that when we bury or kill a 2614 ;; entries of next buffers. Note that when we bury or kill a
2610 ;; buffer we don't reverse the global buffer list to avoid showing 2615 ;; buffer we don't reverse the global buffer list to avoid showing