aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Wohler2011-07-03 19:58:14 -0700
committerBill Wohler2011-07-03 19:58:14 -0700
commit3ca74e5368a1022e332a0601d9be2418dbe8c083 (patch)
treea4bb4d280cb6758e8e2dec263e1ea261e90fa924
parent92ec073e6441e7abfdc49c7734a880fecdf2d1f3 (diff)
parenta555cb879988c74b28cb0aa1e9cd1b19f5df6980 (diff)
downloademacs-3ca74e5368a1022e332a0601d9be2418dbe8c083.tar.gz
emacs-3ca74e5368a1022e332a0601d9be2418dbe8c083.zip
Merge from trunk.
-rw-r--r--doc/emacs/ChangeLog5
-rw-r--r--doc/emacs/display.texi4
-rw-r--r--doc/lispref/ChangeLog13
-rw-r--r--doc/lispref/functions.texi7
-rw-r--r--doc/lispref/searching.texi6
-rw-r--r--doc/lispref/strings.texi14
-rw-r--r--doc/misc/ChangeLog19
-rw-r--r--doc/misc/cl.texi33
-rw-r--r--doc/misc/gnus.texi31
-rw-r--r--etc/ChangeLog4
-rw-r--r--etc/compilation.txt10
-rw-r--r--lisp/ChangeLog70
-rw-r--r--lisp/custom.el57
-rw-r--r--lisp/dired.el39
-rw-r--r--lisp/faces.el106
-rw-r--r--lisp/frame.el110
-rw-r--r--lisp/gnus/ChangeLog30
-rw-r--r--lisp/gnus/auth-source.el12
-rw-r--r--lisp/gnus/gnus-group.el15
-rw-r--r--lisp/gnus/gnus.el4
-rw-r--r--lisp/gnus/nndraft.el23
-rw-r--r--lisp/gnus/pop3.el3
-rw-r--r--lisp/info.el1
-rw-r--r--lisp/isearch.el8
-rw-r--r--lisp/mail/feedmail.el31
-rw-r--r--lisp/net/network-stream.el17
-rw-r--r--lisp/progmodes/compile.el5
-rw-r--r--lisp/server.el8
-rw-r--r--lisp/textmodes/texnfo-upd.el2
-rw-r--r--lisp/type-break.el17
-rw-r--r--lisp/url/ChangeLog10
-rw-r--r--lisp/url/url-http.el25
-rw-r--r--src/ChangeLog24
-rw-r--r--src/callint.c7
-rw-r--r--src/editfns.c3
-rw-r--r--src/eval.c25
-rw-r--r--src/gnutls.c44
-rw-r--r--src/xfaces.c12
38 files changed, 556 insertions, 298 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index f91ecc2f13f..aca1ccc663e 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,8 @@
12011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
2
3 * display.texi (Scrolling): `C-v' (etc) are now bound to
4 `scroll-*-command' (bug#8349).
5
12011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org> 62011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
2 7
3 * dired.texi (Subdirectories in Dired): Clarify that `C-u k' 8 * dired.texi (Subdirectories in Dired): Clarify that `C-u k'
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index 3cec3e8fb8b..210b1b636a1 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -61,11 +61,11 @@ order; also, maybe redisplay the screen (@code{recenter-top-bottom}).
61@item C-v 61@item C-v
62@itemx @key{next} 62@itemx @key{next}
63@itemx @key{PageDown} 63@itemx @key{PageDown}
64Scroll forward by nearly a full window (@code{scroll-up}). 64Scroll forward by nearly a full window (@code{scroll-up-command}).
65@item M-v 65@item M-v
66@itemx @key{prior} 66@itemx @key{prior}
67@itemx @key{PageUp} 67@itemx @key{PageUp}
68Scroll backward (@code{scroll-down}). 68Scroll backward (@code{scroll-down-command}).
69@item C-M-l 69@item C-M-l
70Scroll heuristically to bring useful information onto the screen 70Scroll heuristically to bring useful information onto the screen
71(@code{reposition-window}). 71(@code{reposition-window}).
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index a87cd201676..807313c8632 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,16 @@
12011-07-03 Tobias C. Rittweiler <tcr@freebits.de> (tiny change)
2
3 * searching.texi (Match Data): Note that match data can be
4 overwritten by most functions (bug#2499).
5
62011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
7
8 * strings.texi (Formatting Strings): Clarify what the "-" and "0"
9 flags mean (bug#6659).
10
11 * functions.texi (What Is a Function): Document the autoload
12 object (bug#6496).
13
12011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org> 142011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
2 15
3 * customize.texi (Variable Definitions): Clarify that SETFUNCTION 16 * customize.texi (Variable Definitions): Clarify that SETFUNCTION
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index 974487382c8..519957f8921 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -112,6 +112,13 @@ editors; for Lisp programs, the distinction is normally unimportant.
112@item byte-code function 112@item byte-code function
113A @dfn{byte-code function} is a function that has been compiled by the 113A @dfn{byte-code function} is a function that has been compiled by the
114byte compiler. @xref{Byte-Code Type}. 114byte compiler. @xref{Byte-Code Type}.
115
116@item autoload object
117@cindex autoload object
118An @dfn{autoload object} is a place-holder for a real function. If
119the autoload object is called, it will make Emacs load the file
120containing the definition of the real function, and then call the real
121function instead.
115@end table 122@end table
116 123
117@defun functionp object 124@defun functionp object
diff --git a/doc/lispref/searching.texi b/doc/lispref/searching.texi
index 27b089f75b6..6272301dbb4 100644
--- a/doc/lispref/searching.texi
+++ b/doc/lispref/searching.texi
@@ -1207,6 +1207,12 @@ search you wish to refer back to and the use of the match data. If you
1207can't avoid another intervening search, you must save and restore the 1207can't avoid another intervening search, you must save and restore the
1208match data around it, to prevent it from being overwritten. 1208match data around it, to prevent it from being overwritten.
1209 1209
1210 Notice that all functions are allowed to overwrite the match data
1211unless they're explicitly documented not to do so. A consequence is
1212that functions that are run implictly in the background
1213(@pxref{Timers}, and @ref{Idle Timers}) should likely save and restore
1214the match data explicitly.
1215
1210@menu 1216@menu
1211* Replacing Match:: Replacing a substring that was matched. 1217* Replacing Match:: Replacing a substring that was matched.
1212* Simple Match Data:: Accessing single items of match data, 1218* Simple Match Data:: Accessing single items of match data,
diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi
index 05ac40e90c1..2b8911277cd 100644
--- a/doc/lispref/strings.texi
+++ b/doc/lispref/strings.texi
@@ -856,14 +856,16 @@ with @samp{0x} or @samp{0X}. For @samp{%e}, @samp{%f}, and @samp{%g},
856the @samp{#} flag means include a decimal point even if the precision 856the @samp{#} flag means include a decimal point even if the precision
857is zero. 857is zero.
858 858
859 The flag @samp{0} ensures that the padding consists of @samp{0}
860characters instead of spaces. This flag is ignored for non-numerical
861specification characters like @samp{%s}, @samp{%S} and @samp{%c}.
862These specification characters accept the @samp{0} flag, but still pad
863with @emph{spaces}.
864
859 The flag @samp{-} causes the padding inserted by the width 865 The flag @samp{-} causes the padding inserted by the width
860specifier, if any, to be inserted on the right rather than the left. 866specifier, if any, to be inserted on the right rather than the left.
861The flag @samp{0} ensures that the padding consists of @samp{0} 867If both @samp{-} and @samp{0} are present, the @samp{0} flag is
862characters instead of spaces, inserted on the left. These flags are 868ignored.
863ignored for specification characters for which they do not make sense:
864@samp{%s}, @samp{%S} and @samp{%c} accept the @samp{0} flag, but still
865pad with @emph{spaces} on the left. If both @samp{-} and @samp{0} are
866present and valid, @samp{-} takes precedence.
867 869
868@example 870@example
869@group 871@group
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 583bdb411bb..2a99167bf5f 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,22 @@
12011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
2
3 * gnus.texi (Subscription Methods): Link to "Group Levels" to explain
4 zombies.
5 (Checking New Groups): Ditto (bug#8974).
6 (Checking New Groups): Moved the reference to the right place.
7
82011-07-03 Dave Abrahams <dave@boostpro.com> (tiny change)
9
10 * gnus.texi (Startup Files): Clarify that we're talking about numbered
11 backups, and not actual vc (bug#8975).
12
132011-07-03 Kevin Ryde <user42@zip.com.au>
14
15 * cl.texi (For Clauses): @items for hash-values and key-bindings
16 to make them more visible when skimming. Add examples of `using'
17 clause to them, examples being clearer than a description in
18 words (bug#6599).
19
12011-07-01 Alan Mackenzie <acm@muc.de> 202011-07-01 Alan Mackenzie <acm@muc.de>
2 21
3 * cc-mode.texi (Guessing the Style): New page. 22 * cc-mode.texi (Guessing the Style): New page.
diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi
index afe7c94f447..ab54b99138a 100644
--- a/doc/misc/cl.texi
+++ b/doc/misc/cl.texi
@@ -2449,22 +2449,33 @@ one of these types of clauses with other clauses like @code{for ... to}
2449or @code{while}. 2449or @code{while}.
2450 2450
2451@item for @var{var} being the hash-keys of @var{hash-table} 2451@item for @var{var} being the hash-keys of @var{hash-table}
2452This clause iterates over the entries in @var{hash-table}. For each 2452@itemx for @var{var} being the hash-values of @var{hash-table}
2453hash table entry, @var{var} is bound to the entry's key. If you write 2453This clause iterates over the entries in @var{hash-table} with
2454@samp{the hash-values} instead, @var{var} is bound to the values 2454@var{var} bound to each key, or value. A @samp{using} clause can bind
2455of the entries. The clause may be followed by the additional 2455a second variable to the opposite part.
2456term @samp{using (hash-values @var{var2})} (where @code{hash-values} 2456
2457is the opposite word of the word following @code{the}) to cause 2457@example
2458@var{var} and @var{var2} to be bound to the two parts of each 2458(loop for k being the hash-keys of h
2459hash table entry. 2459 using (hash-values v)
2460 do
2461 (message "key %S -> value %S" k v))
2462@end example
2460 2463
2461@item for @var{var} being the key-codes of @var{keymap} 2464@item for @var{var} being the key-codes of @var{keymap}
2465@itemx for @var{var} being the key-bindings of @var{keymap}
2462This clause iterates over the entries in @var{keymap}. 2466This clause iterates over the entries in @var{keymap}.
2463The iteration does not enter nested keymaps but does enter inherited 2467The iteration does not enter nested keymaps but does enter inherited
2464(parent) keymaps. 2468(parent) keymaps.
2465You can use @samp{the key-bindings} to access the commands bound to 2469A @code{using} clause can access both the codes and the bindings
2466the keys rather than the key codes, and you can add a @code{using} 2470together.
2467clause to access both the codes and the bindings together. 2471
2472@example
2473(loop for c being the key-codes of (current-local-map)
2474 using (key-bindings b)
2475 do
2476 (message "key %S -> binding %S" c b))
2477@end example
2478
2468 2479
2469@item for @var{var} being the key-seqs of @var{keymap} 2480@item for @var{var} being the key-seqs of @var{keymap}
2470This clause iterates over all key sequences defined by @var{keymap} 2481This clause iterates over all key sequences defined by @var{keymap}
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index f98d4df2bde..3bce492d831 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -1167,16 +1167,17 @@ when you do the @kbd{g} command (@pxref{Scanning New Messages}).
1167@node Checking New Groups 1167@node Checking New Groups
1168@subsection Checking New Groups 1168@subsection Checking New Groups
1169 1169
1170Gnus normally determines whether a group is new or not by comparing the 1170Gnus normally determines whether a group is new or not by comparing
1171list of groups from the active file(s) with the lists of subscribed and 1171the list of groups from the active file(s) with the lists of
1172dead groups. This isn't a particularly fast method. If 1172subscribed and dead groups. This isn't a particularly fast method.
1173@code{gnus-check-new-newsgroups} is @code{ask-server}, Gnus will ask the 1173If @code{gnus-check-new-newsgroups} is @code{ask-server}, Gnus will
1174server for new groups since the last time. This is both faster and 1174ask the server for new groups since the last time. This is both
1175cheaper. This also means that you can get rid of the list of killed 1175faster and cheaper. This also means that you can get rid of the list
1176groups altogether, so you may set @code{gnus-save-killed-list} to 1176of killed groups (@pxref{Group Levels}) altogether, so you may set
1177@code{nil}, which will save time both at startup, at exit, and all over. 1177@code{gnus-save-killed-list} to @code{nil}, which will save time both
1178Saves disk space, too. Why isn't this the default, then? 1178at startup, at exit, and all over. Saves disk space, too. Why isn't
1179Unfortunately, not all servers support this command. 1179this the default, then? Unfortunately, not all servers support this
1180command.
1180 1181
1181I bet I know what you're thinking now: How do I find out whether my 1182I bet I know what you're thinking now: How do I find out whether my
1182server supports @code{ask-server}? No? Good, because I don't have a 1183server supports @code{ask-server}? No? Good, because I don't have a
@@ -1214,9 +1215,10 @@ Some handy pre-fab functions are:
1214 1215
1215@item gnus-subscribe-zombies 1216@item gnus-subscribe-zombies
1216@vindex gnus-subscribe-zombies 1217@vindex gnus-subscribe-zombies
1217Make all new groups zombies. This is the default. You can browse the 1218Make all new groups zombies (@pxref{Group Levels}). This is the
1218zombies later (with @kbd{A z}) and either kill them all off properly 1219default. You can browse the zombies later (with @kbd{A z}) and either
1219(with @kbd{S z}), or subscribe to them (with @kbd{u}). 1220kill them all off properly (with @kbd{S z}), or subscribe to them
1221(with @kbd{u}).
1220 1222
1221@item gnus-subscribe-randomly 1223@item gnus-subscribe-randomly
1222@vindex gnus-subscribe-randomly 1224@vindex gnus-subscribe-randomly
@@ -1430,7 +1432,7 @@ several servers where not all servers support @code{ask-server}.
1430The @code{gnus-startup-file} variable says where the startup files are. 1432The @code{gnus-startup-file} variable says where the startup files are.
1431The default value is @file{~/.newsrc}, with the Gnus (El Dingo) startup 1433The default value is @file{~/.newsrc}, with the Gnus (El Dingo) startup
1432file being whatever that one is, with a @samp{.eld} appended. 1434file being whatever that one is, with a @samp{.eld} appended.
1433If you want version control for this file, set 1435If you want to keep multiple numbered backups of this file, set
1434@code{gnus-backup-startup-file}. It respects the same values as the 1436@code{gnus-backup-startup-file}. It respects the same values as the
1435@code{version-control} variable. 1437@code{version-control} variable.
1436 1438
@@ -2360,6 +2362,7 @@ empty subscribed groups and unsubscribed groups, too. Type @kbd{l} to
2360go back to showing nonempty subscribed groups again. Thus, unsubscribed 2362go back to showing nonempty subscribed groups again. Thus, unsubscribed
2361groups are hidden, in a way. 2363groups are hidden, in a way.
2362 2364
2365@cindex zombie groups
2363Zombie and killed groups are similar to unsubscribed groups in that they 2366Zombie and killed groups are similar to unsubscribed groups in that they
2364are hidden by default. But they are different from subscribed and 2367are hidden by default. But they are different from subscribed and
2365unsubscribed groups in that Gnus doesn't ask the news server for 2368unsubscribed groups in that Gnus doesn't ask the news server for
diff --git a/etc/ChangeLog b/etc/ChangeLog
index cbc267f71ba..ea3ef2767a9 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,7 @@
12011-03-29 Kevin Ryde <user42@zip.com.au>
2
3 * compilation.txt (perl-Test2): New samples.
4
12011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org> 52011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
2 6
3 * tutorials/TUTORIAL.zh: Remove spurious ")" character on the 7 * tutorials/TUTORIAL.zh: Remove spurious ")" character on the
diff --git a/etc/compilation.txt b/etc/compilation.txt
index 8e19222143a..0eb3fe1bda2 100644
--- a/etc/compilation.txt
+++ b/etc/compilation.txt
@@ -496,6 +496,16 @@ symbol: perl--Test
496 496
497# Failed test 1 in foo.t at line 6 497# Failed test 1 in foo.t at line 6
498 498
499* Perl Test.pm module error messages comparing two values
500
501symbol: perl--Test2
502
503# Test 3 got: "99" (d-compilation-perl.t at line 29)
504# Expected: "88" (my test name)
505# d-compilation-perl.t line 29 is: ok(99,88,'my test name');
506
507# Test 6 got: "xx" (foo.t at line 33 fail #2)
508# Expected: "yy"
499 509
500* Perl Test::Harness output 510* Perl Test::Harness output
501 511
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 169793ebc40..93cf3c44033 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,73 @@
12011-07-04 Juanma Barranquero <lekktu@gmail.com>
2
3 * type-break.el (timep): Use the value of `float-time' to avoid a
4 byte-compiler warning.
5
6 * server.el (server-eval-and-print): Return any result, even nil.
7
82011-07-03 Paul Eggert <eggert@cs.ucla.edu>
9
10 * type-break.el: Accept time formats that the builtins accept.
11 (timep, type-break-time-difference): Accept any format that
12 float-time accepts, rather than insisting on (HIGH LOW USECS) format.
13 This is simpler and helps future-proof the code.
14 (type-break-time-difference): Round rather than ignoring
15 subseconds components.
16
12011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org> 172011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
2 18
19 * info.el (Info-apropos-matches): Make non-interactive, since it
20 doesn't seem to do anything useful as a command (bug#8829).
21
222011-07-03 Chong Yidong <cyd@stupidchicken.com>
23
24 * frame.el (frame-background-mode, frame-set-background-mode):
25 Moved from faces.el.
26 (frame-default-terminal-background): New function.
27
28 * custom.el (custom-push-theme): Don't record faces in `changed'
29 theme; this doesn't work correctly for per-frame face settings.
30 (disable-theme): Use face-set-after-frame-default to reset faces.
31 (custom--frame-color-default): New function.
32
332011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
34
35 * dired.el (dired-flagging-regexp): Removed unused variable
36 (bug#8769).
37
382011-03-29 Kevin Ryde <user42@zip.com.au>
39
40 * progmodes/compile.el (compilation-error-regexp-alist-alist):
41 `perl-Test2' extend to match possible "fail #N" rep count
42 (bug#8377).
43
442011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
45
46 * mail/feedmail.el (feedmail-buffer-to-smtpmail):
47 `smtpmail-via-smtp' now returns the error instead of nil.
48
49 * isearch.el (isearch-search-fun-function): Clarify the doc string
50 (bug#8101).
51
522011-07-03 Richard Kim <emacs18@gmail.com> (tiny change)
53
54 * textmodes/texnfo-upd.el (texinfo-insert-menu): Don't insert
55 unnecessary spaces (bug#8987).
56
572011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
58
59 * net/network-stream.el (open-network-stream): Use the
60 :end-of-capability command thoughout.
61
622011-07-03 Wolfgang Jenkner <wjenkner@inode.at> (tiny change)
63
64 * net/network-stream.el (open-network-stream): Add the
65 :end-of-capability command parameter, used by pop3.el.
66
672011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
68
69 * dired.el (dired-map-over-marks): Refill the doc string (bug#6814).
70
3 * fringe.el (fringe-query-style): Remove redundant text " (type ? 71 * fringe.el (fringe-query-style): Remove redundant text " (type ?
4 for list)" (bug#6475). 72 for list)" (bug#6475).
5 73
@@ -447,7 +515,7 @@
447 (ses-cell-symbol): Set macro as safe, so that it can be used in 515 (ses-cell-symbol): Set macro as safe, so that it can be used in
448 formulas. 516 formulas.
449 517
450 * ses.el: Update cycle detection algorithm. 518 * ses.el: Update cycle detection algorithm.
451 (ses-localvars): Add ses--Dijkstra-attempt-nb and 519 (ses-localvars): Add ses--Dijkstra-attempt-nb and
452 ses--Dijkstra-weight-bound, and initial values thereof when applicable. 520 ses--Dijkstra-weight-bound, and initial values thereof when applicable.
453 (ses-set-localvars): New function. 521 (ses-set-localvars): New function.
diff --git a/lisp/custom.el b/lisp/custom.el
index a1c7f3e11e7..11dc1859c00 100644
--- a/lisp/custom.el
+++ b/lisp/custom.el
@@ -855,25 +855,18 @@ See `custom-known-themes' for a list of known themes."
855 ;; Add a new setting: 855 ;; Add a new setting:
856 (t 856 (t
857 (unless old 857 (unless old
858 ;; If the user changed the value outside of Customize, we 858 ;; If the user changed a variable outside of Customize, save
859 ;; first save the current value to a fake theme, `changed'. 859 ;; the value to a fake theme, `changed'. If the theme is
860 ;; This ensures that the user-set value comes back if the 860 ;; later disabled, we use this to bring back the old value.
861 ;; theme is later disabled. 861 ;;
862 (cond ((and (eq prop 'theme-value) 862 ;; For faces, we just use `face-new-frame-defaults' to
863 (boundp symbol)) 863 ;; recompute when the theme is disabled.
864 (let ((sv (get symbol 'standard-value)) 864 (when (and (eq prop 'theme-value)
865 (val (symbol-value symbol))) 865 (boundp symbol))
866 (unless (and sv (equal (eval (car sv)) val)) 866 (let ((sv (get symbol 'standard-value))
867 (setq old `((changed ,(custom-quote val))))))) 867 (val (symbol-value symbol)))
868 ((and (facep symbol) 868 (unless (and sv (equal (eval (car sv)) val))
869 (not (face-attr-match-p 869 (setq old `((changed ,(custom-quote val))))))))
870 symbol
871 (custom-fix-face-spec
872 (face-spec-choose
873 (get symbol 'face-defface-spec))))))
874 (setq old `((changed
875 (,(append '(t) (custom-face-attributes-get
876 symbol nil)))))))))
877 (put symbol prop (cons (list theme value) old)) 870 (put symbol prop (cons (list theme value) old))
878 (put theme 'theme-settings 871 (put theme 'theme-settings
879 (cons (list prop symbol theme value) theme-settings)))))) 872 (cons (list prop symbol theme value) theme-settings))))))
@@ -1356,11 +1349,33 @@ See `custom-enabled-themes' for a list of enabled themes."
1356 ;; If the face spec specified by this theme is in the 1349 ;; If the face spec specified by this theme is in the
1357 ;; saved-face property, reset that property. 1350 ;; saved-face property, reset that property.
1358 (when (equal (nth 3 s) (get symbol 'saved-face)) 1351 (when (equal (nth 3 s) (get symbol 'saved-face))
1359 (put symbol 'saved-face (and val (cadr (car val))))) 1352 (put symbol 'saved-face (and val (cadr (car val)))))))))
1360 (custom-theme-recalc-face symbol))))) 1353 ;; Recompute faces on all frames.
1354 (dolist (frame (frame-list))
1355 ;; We must reset the fg and bg color frame parameters, or
1356 ;; `face-set-after-frame-default' will use the existing
1357 ;; parameters, which could be from the disabled theme.
1358 (set-frame-parameter frame 'background-color
1359 (custom--frame-color-default
1360 frame :background "background" "Background"
1361 "unspecified-bg" "white"))
1362 (set-frame-parameter frame 'foreground-color
1363 (custom--frame-color-default
1364 frame :foreground "foreground" "Foreground"
1365 "unspecified-fg" "black"))
1366 (face-set-after-frame-default frame))
1361 (setq custom-enabled-themes 1367 (setq custom-enabled-themes
1362 (delq theme custom-enabled-themes))))) 1368 (delq theme custom-enabled-themes)))))
1363 1369
1370(defun custom--frame-color-default (frame attribute resource-attr resource-class
1371 tty-default x-default)
1372 (let ((col (face-attribute 'default attribute t)))
1373 (cond
1374 ((and col (not (eq col 'unspecified))) col)
1375 ((null (window-system frame)) tty-default)
1376 ((setq col (x-get-resource resource-attr resource-class)) col)
1377 (t x-default))))
1378
1364(defun custom-variable-theme-value (variable) 1379(defun custom-variable-theme-value (variable)
1365 "Return (list VALUE) indicating the custom theme value of VARIABLE. 1380 "Return (list VALUE) indicating the custom theme value of VARIABLE.
1366That is to say, it specifies what the value should be according to 1381That is to say, it specifies what the value should be according to
diff --git a/lisp/dired.el b/lisp/dired.el
index 92f3a46306b..2f40913aae6 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -238,8 +238,6 @@ This is what the do-commands look for, and what the mark-commands store.")
238;; (> baud-rate search-slow-speed) 238;; (> baud-rate search-slow-speed)
239 "Non-nil means Dired shrinks the display buffer to fit the marked files.") 239 "Non-nil means Dired shrinks the display buffer to fit the marked files.")
240 240
241(defvar dired-flagging-regexp nil);; Last regexp used to flag files.
242
243(defvar dired-file-version-alist) 241(defvar dired-file-version-alist)
244 242
245;;;###autoload 243;;;###autoload
@@ -515,24 +513,31 @@ Return value is the number of files marked, or nil if none were marked."
515(defmacro dired-map-over-marks (body arg &optional show-progress 513(defmacro dired-map-over-marks (body arg &optional show-progress
516 distinguish-one-marked) 514 distinguish-one-marked)
517 "Eval BODY with point on each marked line. Return a list of BODY's results. 515 "Eval BODY with point on each marked line. Return a list of BODY's results.
518If no marked file could be found, execute BODY on the current line. 516If no marked file could be found, execute BODY on the current
519ARG, if non-nil, specifies the files to use instead of the marked files. 517line. ARG, if non-nil, specifies the files to use instead of the
520 If ARG is an integer, use the next ARG (or previous -ARG, if 518marked files.
521 ARG<0) files. In that case, point is dragged along. This is 519
522 so that commands on the next ARG (instead of the marked) files 520If ARG is an integer, use the next ARG (or previous -ARG, if
523 can be chained easily. 521ARG<0) files. In that case, point is dragged along. This is so
524 For any other non-nil value of ARG, use the current file. 522that commands on the next ARG (instead of the marked) files can
523be chained easily.
524For any other non-nil value of ARG, use the current file.
525
525If optional third arg SHOW-PROGRESS evaluates to non-nil, 526If optional third arg SHOW-PROGRESS evaluates to non-nil,
526 redisplay the dired buffer after each file is processed. 527redisplay the dired buffer after each file is processed.
527No guarantee is made about the position on the marked line. 528
528 BODY must ensure this itself if it depends on this. 529No guarantee is made about the position on the marked line. BODY
529Search starts at the beginning of the buffer, thus the car of the list 530must ensure this itself if it depends on this.
530 corresponds to the line nearest to the buffer's bottom. This 531
531 is also true for (positive and negative) integer values of ARG. 532Search starts at the beginning of the buffer, thus the car of the
533list corresponds to the line nearest to the buffer's bottom.
534This is also true for (positive and negative) integer values of
535ARG.
536
532BODY should not be too long as it is expanded four times. 537BODY should not be too long as it is expanded four times.
533 538
534If DISTINGUISH-ONE-MARKED is non-nil, then if we find just one marked file, 539If DISTINGUISH-ONE-MARKED is non-nil, then if we find just one
535return (t FILENAME) instead of (FILENAME)." 540marked file, return (t FILENAME) instead of (FILENAME)."
536 ;; 541 ;;
537 ;;Warning: BODY must not add new lines before point - this may cause an 542 ;;Warning: BODY must not add new lines before point - this may cause an
538 ;;endless loop. 543 ;;endless loop.
diff --git a/lisp/faces.el b/lisp/faces.el
index c29d8c9bfd8..34e154314b5 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -1821,109 +1821,6 @@ Return nil if it has no specified face."
1821 (cond ((memq 'background-color face) (cdr (memq 'background-color face))) 1821 (cond ((memq 'background-color face) (cdr (memq 'background-color face)))
1822 ((memq ':background face) (cadr (memq ':background face))))) 1822 ((memq ':background face) (cadr (memq ':background face)))))
1823 (t nil)))) ; Invalid face value. 1823 (t nil)))) ; Invalid face value.
1824
1825;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1826;;; Background mode.
1827;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1828
1829(defcustom frame-background-mode nil
1830 "The brightness of the background.
1831Set this to the symbol `dark' if your background color is dark,
1832`light' if your background is light, or nil (automatic by default)
1833if you want Emacs to examine the brightness for you. Don't set this
1834variable with `setq'; this won't have the expected effect."
1835 :group 'faces
1836 :set #'(lambda (var value)
1837 (set-default var value)
1838 (mapc 'frame-set-background-mode (frame-list)))
1839 :initialize 'custom-initialize-changed
1840 :type '(choice (const dark)
1841 (const light)
1842 (const :tag "automatic" nil)))
1843
1844
1845(declare-function x-get-resource "frame.c"
1846 (attribute class &optional component subclass))
1847
1848(defvar inhibit-frame-set-background-mode nil)
1849
1850(defun frame-set-background-mode (frame &optional keep-face-specs)
1851 "Set up display-dependent faces on FRAME.
1852Display-dependent faces are those which have different definitions
1853according to the `background-mode' and `display-type' frame parameters.
1854
1855If optional arg KEEP-FACE-SPECS is non-nil, don't recalculate
1856face specs for the new background mode."
1857 (unless inhibit-frame-set-background-mode
1858 (let* ((bg-resource
1859 (and (window-system frame)
1860 (x-get-resource "backgroundMode" "BackgroundMode")))
1861 (bg-color (frame-parameter frame 'background-color))
1862 (terminal-bg-mode (terminal-parameter frame 'background-mode))
1863 (tty-type (tty-type frame))
1864 (default-bg-mode
1865 (if (or (window-system frame)
1866 (and tty-type
1867 (string-match "^\\(xterm\\|\\rxvt\\|dtterm\\|eterm\\)"
1868 tty-type)))
1869 'light
1870 'dark))
1871 (non-default-bg-mode (if (eq default-bg-mode 'light) 'dark 'light))
1872 (bg-mode
1873 (cond (frame-background-mode)
1874 (bg-resource (intern (downcase bg-resource)))
1875 (terminal-bg-mode)
1876 ((equal bg-color "unspecified-fg") ; inverted colors
1877 non-default-bg-mode)
1878 ((not (color-values bg-color frame))
1879 default-bg-mode)
1880 ((>= (apply '+ (color-values bg-color frame))
1881 ;; Just looking at the screen, colors whose
1882 ;; values add up to .6 of the white total
1883 ;; still look dark to me.
1884 (* (apply '+ (color-values "white" frame)) .6))
1885 'light)
1886 (t 'dark)))
1887 (display-type
1888 (cond ((null (window-system frame))
1889 (if (tty-display-color-p frame) 'color 'mono))
1890 ((display-color-p frame)
1891 'color)
1892 ((x-display-grayscale-p frame)
1893 'grayscale)
1894 (t 'mono)))
1895 (old-bg-mode
1896 (frame-parameter frame 'background-mode))
1897 (old-display-type
1898 (frame-parameter frame 'display-type)))
1899
1900 (unless (and (eq bg-mode old-bg-mode) (eq display-type old-display-type))
1901 (let ((locally-modified-faces nil)
1902 ;; Prevent face-spec-recalc from calling this function
1903 ;; again, resulting in a loop (bug#911).
1904 (inhibit-frame-set-background-mode t)
1905 (params (list (cons 'background-mode bg-mode)
1906 (cons 'display-type display-type))))
1907 (if keep-face-specs
1908 (modify-frame-parameters frame params)
1909 ;; If we are recomputing face specs, first collect a list
1910 ;; of faces that don't match their face-specs. These are
1911 ;; the faces modified on FRAME, and we avoid changing them
1912 ;; below. Use a negative list to avoid consing (we assume
1913 ;; most faces are unmodified).
1914 (dolist (face (face-list))
1915 (and (not (get face 'face-override-spec))
1916 (not (face-spec-match-p face
1917 (face-user-default-spec face)
1918 (selected-frame)))
1919 (push face locally-modified-faces)))
1920 ;; Now change to the new frame parameters
1921 (modify-frame-parameters frame params)
1922 ;; For all unmodified named faces, choose face specs
1923 ;; matching the new frame parameters.
1924 (dolist (face (face-list))
1925 (unless (memq face locally-modified-faces)
1926 (face-spec-recalc face frame)))))))))
1927 1824
1928 1825
1929;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1826;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -2020,7 +1917,8 @@ settings, X resources, and `face-new-frame-defaults'.
2020Finally, apply any relevant face attributes found amongst the 1917Finally, apply any relevant face attributes found amongst the
2021frame parameters in PARAMETERS." 1918frame parameters in PARAMETERS."
2022 (let ((window-system-p (memq (window-system frame) '(x w32)))) 1919 (let ((window-system-p (memq (window-system frame) '(x w32))))
2023 (dolist (face (nreverse (face-list))) ;Why reverse? --Stef 1920 ;; The `reverse' is so that `default' goes first.
1921 (dolist (face (nreverse (face-list)))
2024 (condition-case () 1922 (condition-case ()
2025 (progn 1923 (progn
2026 ;; Initialize faces from face spec and custom theme. 1924 ;; Initialize faces from face spec and custom theme.
diff --git a/lisp/frame.el b/lisp/frame.el
index 3ceec2657e7..d6f82750347 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -847,6 +847,116 @@ If there is no frame by that name, signal an error."
847 (if frame 847 (if frame
848 (select-frame-set-input-focus frame) 848 (select-frame-set-input-focus frame)
849 (error "There is no frame named `%s'" name)))) 849 (error "There is no frame named `%s'" name))))
850
851
852;;;; Background mode.
853
854(defcustom frame-background-mode nil
855 "The brightness of the background.
856Set this to the symbol `dark' if your background color is dark,
857`light' if your background is light, or nil (automatic by default)
858if you want Emacs to examine the brightness for you. Don't set this
859variable with `setq'; this won't have the expected effect."
860 :group 'faces
861 :set #'(lambda (var value)
862 (set-default var value)
863 (mapc 'frame-set-background-mode (frame-list)))
864 :initialize 'custom-initialize-changed
865 :type '(choice (const dark)
866 (const light)
867 (const :tag "automatic" nil)))
868
869(declare-function x-get-resource "frame.c"
870 (attribute class &optional component subclass))
871
872(defvar inhibit-frame-set-background-mode nil)
873
874(defun frame-set-background-mode (frame &optional keep-face-specs)
875 "Set up display-dependent faces on FRAME.
876Display-dependent faces are those which have different definitions
877according to the `background-mode' and `display-type' frame parameters.
878
879If optional arg KEEP-FACE-SPECS is non-nil, don't recalculate
880face specs for the new background mode."
881 (unless inhibit-frame-set-background-mode
882 (let* ((frame-default-bg-mode (frame-terminal-default-bg-mode frame))
883 (bg-color (frame-parameter frame 'background-color))
884 (tty-type (tty-type frame))
885 (default-bg-mode
886 (if (or (window-system frame)
887 (and tty-type
888 (string-match "^\\(xterm\\|\\rxvt\\|dtterm\\|eterm\\)"
889 tty-type)))
890 'light
891 'dark))
892 (non-default-bg-mode (if (eq default-bg-mode 'light) 'dark 'light))
893 (bg-mode
894 (cond (frame-default-bg-mode)
895 ((equal bg-color "unspecified-fg") ; inverted colors
896 non-default-bg-mode)
897 ((not (color-values bg-color frame))
898 default-bg-mode)
899 ((>= (apply '+ (color-values bg-color frame))
900 ;; Just looking at the screen, colors whose
901 ;; values add up to .6 of the white total
902 ;; still look dark to me.
903 (* (apply '+ (color-values "white" frame)) .6))
904 'light)
905 (t 'dark)))
906 (display-type
907 (cond ((null (window-system frame))
908 (if (tty-display-color-p frame) 'color 'mono))
909 ((display-color-p frame)
910 'color)
911 ((x-display-grayscale-p frame)
912 'grayscale)
913 (t 'mono)))
914 (old-bg-mode
915 (frame-parameter frame 'background-mode))
916 (old-display-type
917 (frame-parameter frame 'display-type)))
918
919 (unless (and (eq bg-mode old-bg-mode) (eq display-type old-display-type))
920 (let ((locally-modified-faces nil)
921 ;; Prevent face-spec-recalc from calling this function
922 ;; again, resulting in a loop (bug#911).
923 (inhibit-frame-set-background-mode t)
924 (params (list (cons 'background-mode bg-mode)
925 (cons 'display-type display-type))))
926 (if keep-face-specs
927 (modify-frame-parameters frame params)
928 ;; If we are recomputing face specs, first collect a list
929 ;; of faces that don't match their face-specs. These are
930 ;; the faces modified on FRAME, and we avoid changing them
931 ;; below. Use a negative list to avoid consing (we assume
932 ;; most faces are unmodified).
933 (dolist (face (face-list))
934 (and (not (get face 'face-override-spec))
935 (not (face-spec-match-p face
936 (face-user-default-spec face)
937 (selected-frame)))
938 (push face locally-modified-faces)))
939 ;; Now change to the new frame parameters
940 (modify-frame-parameters frame params)
941 ;; For all unmodified named faces, choose face specs
942 ;; matching the new frame parameters.
943 (dolist (face (face-list))
944 (unless (memq face locally-modified-faces)
945 (face-spec-recalc face frame)))))))))
946
947(defun frame-terminal-default-bg-mode (frame)
948 "Return the default background mode of FRAME.
949This checks the `frame-background-mode' variable, the X resource
950named \"backgroundMode\" (if FRAME is an X frame), and finally
951the `background-mode' terminal parameter."
952 (or frame-background-mode
953 (let ((bg-resource
954 (and (window-system frame)
955 (x-get-resource "backgroundMode" "BackgroundMode"))))
956 (if bg-resource
957 (intern (downcase bg-resource))))
958 (terminal-parameter frame 'background-mode)))
959
850 960
851;;;; Frame configurations 961;;;; Frame configurations
852 962
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index eaf4e8e2383..d621333f287 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,33 @@
12011-07-04 Katsumi Yamaoka <yamaoka@jpl.org>
2
3 * nndraft.el (nndraft-update-unread-articles): Don't show group having
4 no unread article unless it matches gnus-permanently-visible-groups.
5
6 * nndraft.el (nndraft-update-unread-articles): New function.
7 (nndraft-request-associate-buffer): Use it to update the number of
8 unread articles for the nndraft groups in the group buffer when saving
9 or killing a draft message.
10
112011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
12
13 * gnus-group.el (gnus-read-ephemeral-bug-group): Bind the coding
14 systems to binary before writing and reading the mbox files.
15
16 * gnus.el (gnus-summary-line-format): Link to the info node for %U
17 instead of trying to list them all (bug#8978).
18
192011-07-03 Wolfgang Jenkner <wjenkner@inode.at> (tiny change)
20
21 * pop3.el (pop3-open-server): Use :end-of-capability.
22
232011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
24
25 * gnus-group.el (gnus-read-ephemeral-emacs-bug-group): Make sure that
26 the id is always a number.
27
28 * gnus-group.el (gnus-read-ephemeral-emacs-bug-group): Hook into
29 debbugs mode, if possible.
30
12011-07-02 Daiki Ueno <ueno@unixuser.org> 312011-07-02 Daiki Ueno <ueno@unixuser.org>
2 32
3 * auth-source.el (auth-source-token-passphrase-callback-function): 33 * auth-source.el (auth-source-token-passphrase-callback-function):
diff --git a/lisp/gnus/auth-source.el b/lisp/gnus/auth-source.el
index 1a54a27757c..e249e97e826 100644
--- a/lisp/gnus/auth-source.el
+++ b/lisp/gnus/auth-source.el
@@ -45,17 +45,7 @@
45(require 'assoc) 45(require 'assoc)
46 46
47(eval-when-compile (require 'cl)) 47(eval-when-compile (require 'cl))
48(eval-and-compile 48(require 'eieio)
49 (or (ignore-errors (require 'eieio))
50 ;; gnus-fallback-lib/ from gnus/lisp/gnus-fallback-lib
51 (ignore-errors
52 (let ((load-path (cons (expand-file-name
53 "gnus-fallback-lib/eieio"
54 (file-name-directory (locate-library "gnus")))
55 load-path)))
56 (require 'eieio)))
57 (error
58 "eieio not found in `load-path' or gnus-fallback-lib/ directory.")))
59 49
60(autoload 'secrets-create-item "secrets") 50(autoload 'secrets-create-item "secrets")
61(autoload 'secrets-delete-item "secrets") 51(autoload 'secrets-delete-item "secrets")
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index 74b1c7042ee..83383186ca9 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -2437,7 +2437,9 @@ the bug number, and browsing the URL must return mbox output."
2437 (cdr (assoc 'emacs gnus-bug-group-download-format-alist)))) 2437 (cdr (assoc 'emacs gnus-bug-group-download-format-alist))))
2438 (when (stringp number) 2438 (when (stringp number)
2439 (setq number (string-to-number number))) 2439 (setq number (string-to-number number)))
2440 (let ((tmpfile (mm-make-temp-file "gnus-temp-group-"))) 2440 (let ((tmpfile (mm-make-temp-file "gnus-temp-group-"))
2441 (coding-system-for-write 'binary)
2442 (coding-system-for-read 'binary))
2441 (with-temp-file tmpfile 2443 (with-temp-file tmpfile
2442 (url-insert-file-contents (format mbox-url number)) 2444 (url-insert-file-contents (format mbox-url number))
2443 (goto-char (point-min)) 2445 (goto-char (point-min))
@@ -2466,12 +2468,17 @@ the bug number, and browsing the URL must return mbox output."
2466 2468
2467(defun gnus-read-ephemeral-emacs-bug-group (number &optional window-conf) 2469(defun gnus-read-ephemeral-emacs-bug-group (number &optional window-conf)
2468 "Browse Emacs bug NUMBER as ephemeral group." 2470 "Browse Emacs bug NUMBER as ephemeral group."
2469 (interactive (list (read-string "Enter bug number: " 2471 (interactive (list (string-to-number
2470 (thing-at-point 'word) nil))) 2472 (read-string "Enter bug number: "
2473 (thing-at-point 'word) nil))))
2471 (gnus-read-ephemeral-bug-group 2474 (gnus-read-ephemeral-bug-group
2472 number 2475 number
2473 (cdr (assoc 'emacs gnus-bug-group-download-format-alist)) 2476 (cdr (assoc 'emacs gnus-bug-group-download-format-alist))
2474 window-conf)) 2477 window-conf)
2478 (when (boundp 'debbugs-summary-mode)
2479 (with-current-buffer (window-buffer (selected-window))
2480 (debbugs-summary-mode 1)
2481 (set (make-local-variable 'debbugs-bug-number) number))))
2475 2482
2476(defun gnus-group-jump-to-group (group &optional prompt) 2483(defun gnus-group-jump-to-group (group &optional prompt)
2477 "Jump to newsgroup GROUP. 2484 "Jump to newsgroup GROUP.
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el
index e8e3a8955ba..98a2684dd61 100644
--- a/lisp/gnus/gnus.el
+++ b/lisp/gnus/gnus.el
@@ -2966,8 +2966,8 @@ with some simple extensions.
2966 on level one 2966 on level one
2967%R \"A\" if this article has been replied to, \" \" 2967%R \"A\" if this article has been replied to, \" \"
2968 otherwise (character) 2968 otherwise (character)
2969%U Status of this article (character, \"R\", \"K\", 2969%U \"Read\" status of this article.
2970 \"-\" or \" \") 2970 See Info node `(gnus)Read Articles'
2971%[ Opening bracket (character, \"[\" or \"<\") 2971%[ Opening bracket (character, \"[\" or \"<\")
2972%] Closing bracket (character, \"]\" or \">\") 2972%] Closing bracket (character, \"]\" or \">\")
2973%> Spaces of length thread-level (string) 2973%> Spaces of length thread-level (string)
diff --git a/lisp/gnus/nndraft.el b/lisp/gnus/nndraft.el
index 006348869ef..459778bf4b3 100644
--- a/lisp/gnus/nndraft.el
+++ b/lisp/gnus/nndraft.el
@@ -161,6 +161,25 @@ are generated if and only if they are also in `message-draft-headers'.")
161 (message-headers-to-generate 161 (message-headers-to-generate
162 nndraft-required-headers message-draft-headers nil)))) 162 nndraft-required-headers message-draft-headers nil))))
163 163
164(defun nndraft-update-unread-articles ()
165 "Update groups' unread articles in the group buffer."
166 (nndraft-request-list)
167 (with-current-buffer gnus-group-buffer
168 (let* ((groups (mapcar (lambda (elem)
169 (gnus-group-prefixed-name (car elem)
170 (list 'nndraft "")))
171 (nnmail-get-active)))
172 (gnus-group-marked (copy-sequence groups))
173 (inhibit-read-only t))
174 (gnus-group-get-new-news-this-group nil t)
175 (dolist (group groups)
176 (unless (and gnus-permanently-visible-groups
177 (string-match gnus-permanently-visible-groups
178 group))
179 (gnus-group-goto-group group)
180 (when (zerop (gnus-group-group-unread))
181 (gnus-delete-line)))))))
182
164(deffoo nndraft-request-associate-buffer (group) 183(deffoo nndraft-request-associate-buffer (group)
165 "Associate the current buffer with some article in the draft group." 184 "Associate the current buffer with some article in the draft group."
166 (nndraft-open-server "") 185 (nndraft-open-server "")
@@ -182,6 +201,10 @@ are generated if and only if they are also in `message-draft-headers'.")
182 'write-contents-hooks))) 201 'write-contents-hooks)))
183 (gnus-make-local-hook hook) 202 (gnus-make-local-hook hook)
184 (add-hook hook 'nndraft-generate-headers nil t)) 203 (add-hook hook 'nndraft-generate-headers nil t))
204 (gnus-make-local-hook 'after-save-hook)
205 (add-hook 'after-save-hook 'nndraft-update-unread-articles nil t)
206 (message-add-action '(nndraft-update-unread-articles)
207 'exit 'postpone 'kill)
185 article)) 208 article))
186 209
187(deffoo nndraft-request-group (group &optional server dont-check info) 210(deffoo nndraft-request-group (group &optional server dont-check info)
diff --git a/lisp/gnus/pop3.el b/lisp/gnus/pop3.el
index 90e11b3ca8f..b485ac39f60 100644
--- a/lisp/gnus/pop3.el
+++ b/lisp/gnus/pop3.el
@@ -306,7 +306,8 @@ Returns the process associated with the connection."
306 (t 306 (t
307 (or pop3-stream-type 'network))) 307 (or pop3-stream-type 'network)))
308 :capability-command "CAPA\r\n" 308 :capability-command "CAPA\r\n"
309 :end-of-command "^\\.\r?\n\\|^\\(-ERR\\|+OK \\).*\n" 309 :end-of-command "^\\(-ERR\\|+OK \\).*\n"
310 :end-of-capability "^\\.\r?\n"
310 :success "^\\+OK.*\n" 311 :success "^\\+OK.*\n"
311 :return-list t 312 :return-list t
312 :starttls-function 313 :starttls-function
diff --git a/lisp/info.el b/lisp/info.el
index bca41c29d0f..dca3df21d5c 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -3281,7 +3281,6 @@ MATCHES is a list of index matches found by `Info-apropos-matches'.")
3281 "Collect STRING matches from all known Info files on your system. 3281 "Collect STRING matches from all known Info files on your system.
3282Return a list of matches where each element is in the format 3282Return a list of matches where each element is in the format
3283\((FILENAME INDEXTEXT NODENAME LINENUMBER))." 3283\((FILENAME INDEXTEXT NODENAME LINENUMBER))."
3284 (interactive "sIndex apropos: ")
3285 (unless (string= string "") 3284 (unless (string= string "")
3286 (let ((pattern (format "\n\\* +\\([^\n]*%s[^\n]*\\):[ \t]+\\([^\n]+\\)\\.\\(?:[ \t\n]*(line +\\([0-9]+\\))\\)?" 3285 (let ((pattern (format "\n\\* +\\([^\n]*%s[^\n]*\\):[ \t]+\\([^\n]+\\)\\.\\(?:[ \t\n]*(line +\\([0-9]+\\))\\)?"
3287 (regexp-quote string))) 3286 (regexp-quote string)))
diff --git a/lisp/isearch.el b/lisp/isearch.el
index 7f018ab14c7..58af9236d51 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -2226,10 +2226,10 @@ If there is no completion possible, say so and continue searching."
2226;; Searching 2226;; Searching
2227 2227
2228(defvar isearch-search-fun-function nil 2228(defvar isearch-search-fun-function nil
2229 "Override `isearch-search-fun'. 2229 "Overrides the default `isearch-search-fun' behaviour.
2230This function should return the search function for Isearch to use. 2230This variable should be a function, which will be called with no
2231It will call this function with three arguments 2231arguments, and should return a function that takes the same three
2232as if it were `search-forward'.") 2232arguments as `isearch-search-string' requires.")
2233 2233
2234(defun isearch-search-fun () 2234(defun isearch-search-fun ()
2235 "Return the function to use for the search. 2235 "Return the function to use for the search.
diff --git a/lisp/mail/feedmail.el b/lisp/mail/feedmail.el
index 934637ecbbd..bc9a0604279 100644
--- a/lisp/mail/feedmail.el
+++ b/lisp/mail/feedmail.el
@@ -1633,22 +1633,21 @@ local gurus."
1633 ;; no evil. 1633 ;; no evil.
1634 (feedmail-say-debug ">in-> feedmail-buffer-to-smtpmail %s" addr-listoid) 1634 (feedmail-say-debug ">in-> feedmail-buffer-to-smtpmail %s" addr-listoid)
1635 (require 'smtpmail) 1635 (require 'smtpmail)
1636 (if (not (smtpmail-via-smtp addr-listoid prepped)) 1636 (let ((result (smtpmail-via-smtp addr-listoid prepped)))
1637 (progn 1637 (when result
1638 (set-buffer errors-to) 1638 (set-buffer errors-to)
1639 (insert "Send via smtpmail failed. Probable SMTP protocol error.\n") 1639 (insert "Send via smtpmail failed: %s" result)
1640 (insert "Look for details below or in the *Messages* buffer.\n\n") 1640 (let ((case-fold-search t)
1641 (let ((case-fold-search t) 1641 ;; don't be overconfident about the name of the trace buffer
1642 ;; don't be overconfident about the name of the trace buffer 1642 (tracer (concat "trace.*smtp.*" (regexp-quote smtpmail-smtp-server))))
1643 (tracer (concat "trace.*smtp.*" (regexp-quote smtpmail-smtp-server)))) 1643 (mapcar
1644 (mapcar 1644 (lambda (buffy)
1645 (lambda (buffy) 1645 (if (string-match tracer (buffer-name buffy))
1646 (if (string-match tracer (buffer-name buffy)) 1646 (progn
1647 (progn 1647 (insert "SMTP Trace from " (buffer-name buffy) "\n---------------")
1648 (insert "SMTP Trace from " (buffer-name buffy) "\n---------------") 1648 (insert-buffer-substring buffy)
1649 (insert-buffer-substring buffy) 1649 (insert "\n\n"))))
1650 (insert "\n\n")))) 1650 (buffer-list))))))
1651 (buffer-list))))))
1652 1651
1653(declare-function smtp-via-smtp "ext:smtp" (sender recipients smtp-text-buffer)) 1652(declare-function smtp-via-smtp "ext:smtp" (sender recipients smtp-text-buffer))
1654(defvar smtp-server) 1653(defvar smtp-server)
diff --git a/lisp/net/network-stream.el b/lisp/net/network-stream.el
index a8989398e15..effba41c564 100644
--- a/lisp/net/network-stream.el
+++ b/lisp/net/network-stream.el
@@ -98,6 +98,10 @@ values:
98 98
99:end-of-command specifies a regexp matching the end of a command. 99:end-of-command specifies a regexp matching the end of a command.
100 100
101:end-of-capability specifies a regexp matching the end of the
102 response to the command specified for :capability-command.
103 It defaults to the regexp specified for :end-of-command.
104
101:success specifies a regexp matching a message indicating a 105:success specifies a regexp matching a message indicating a
102 successful STARTTLS negotiation. For instance, the default 106 successful STARTTLS negotiation. For instance, the default
103 should be \"^3\" for an NNTP connection. 107 should be \"^3\" for an NNTP connection.
@@ -203,11 +207,14 @@ functionality.
203 (success-string (plist-get parameters :success)) 207 (success-string (plist-get parameters :success))
204 (capability-command (plist-get parameters :capability-command)) 208 (capability-command (plist-get parameters :capability-command))
205 (eoc (plist-get parameters :end-of-command)) 209 (eoc (plist-get parameters :end-of-command))
210 (eo-capa (or (plist-get parameters :end-of-capability)
211 eoc))
206 ;; Return (STREAM GREETING CAPABILITIES RESULTING-TYPE) 212 ;; Return (STREAM GREETING CAPABILITIES RESULTING-TYPE)
207 (stream (make-network-process :name name :buffer buffer 213 (stream (make-network-process :name name :buffer buffer
208 :host host :service service)) 214 :host host :service service))
209 (greeting (network-stream-get-response stream start eoc)) 215 (greeting (network-stream-get-response stream start eoc))
210 (capabilities (network-stream-command stream capability-command eoc)) 216 (capabilities (network-stream-command stream capability-command
217 eo-capa))
211 (resulting-type 'plain) 218 (resulting-type 'plain)
212 (builtin-starttls (and (fboundp 'gnutls-available-p) 219 (builtin-starttls (and (fboundp 'gnutls-available-p)
213 (gnutls-available-p))) 220 (gnutls-available-p)))
@@ -250,7 +257,7 @@ functionality.
250 ;; Requery capabilities for protocols that require it; i.e., 257 ;; Requery capabilities for protocols that require it; i.e.,
251 ;; EHLO for SMTP. 258 ;; EHLO for SMTP.
252 (when (plist-get parameters :always-query-capabilities) 259 (when (plist-get parameters :always-query-capabilities)
253 (network-stream-command stream capability-command eoc))) 260 (network-stream-command stream capability-command eo-capa)))
254 (when (string-match success-string 261 (when (string-match success-string
255 (network-stream-command stream starttls-command eoc)) 262 (network-stream-command stream starttls-command eoc))
256 ;; The server said it was OK to begin STARTTLS negotiations. 263 ;; The server said it was OK to begin STARTTLS negotiations.
@@ -271,7 +278,7 @@ functionality.
271 (network-stream-get-response stream start eoc))) 278 (network-stream-get-response stream start eoc)))
272 ;; Re-get the capabilities, which may have now changed. 279 ;; Re-get the capabilities, which may have now changed.
273 (setq capabilities 280 (setq capabilities
274 (network-stream-command stream capability-command eoc)))) 281 (network-stream-command stream capability-command eo-capa))))
275 282
276 ;; If TLS is mandatory, close the connection if it's unencrypted. 283 ;; If TLS is mandatory, close the connection if it's unencrypted.
277 (when (and (or require-tls 284 (when (and (or require-tls
@@ -353,7 +360,9 @@ functionality.
353 ?p service)))))) 360 ?p service))))))
354 (list stream 361 (list stream
355 (network-stream-get-response stream start eoc) 362 (network-stream-get-response stream start eoc)
356 (network-stream-command stream capability-command eoc) 363 (network-stream-command stream capability-command
364 (or (plist-get parameters :end-of-capability)
365 eoc))
357 'plain))) 366 'plain)))
358 367
359(provide 'network-stream) 368(provide 'network-stream)
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index 1a23cd112af..0b9390af6c9 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -400,15 +400,16 @@ File = \\(.+\\), Line = \\([0-9]+\\)\\(?:, Column = \\([0-9]+\\)\\)?"
400 "^# Failed test [0-9]+ in \\([^ \t\r\n]+\\) at line \\([0-9]+\\)" 400 "^# Failed test [0-9]+ in \\([^ \t\r\n]+\\) at line \\([0-9]+\\)"
401 1 2) 401 1 2)
402 (perl--Test2 402 (perl--Test2
403 ;; Or when comparing got/want values, 403 ;; Or when comparing got/want values, with a "fail #n" if repeated
404 ;; # Test 2 got: "xx" (t-compilation-perl-2.t at line 10) 404 ;; # Test 2 got: "xx" (t-compilation-perl-2.t at line 10)
405 ;; # Test 3 got: "xx" (t-compilation-perl-2.t at line 10 fail #2)
405 ;; 406 ;;
406 ;; And under Test::Harness they're preceded by progress stuff with 407 ;; And under Test::Harness they're preceded by progress stuff with
407 ;; \r and "NOK", 408 ;; \r and "NOK",
408 ;; ... NOK 1# Test 1 got: "1234" (t/foo.t at line 46) 409 ;; ... NOK 1# Test 1 got: "1234" (t/foo.t at line 46)
409 ;; 410 ;;
410 "^\\(.*NOK.*\\)?# Test [0-9]+ got:.* (\\([^ \t\r\n]+\\) at line \ 411 "^\\(.*NOK.*\\)?# Test [0-9]+ got:.* (\\([^ \t\r\n]+\\) at line \
411\\([0-9]+\\))" 412\\([0-9]+\\)\\( fail #[0-9]+\\)?)"
412 2 3) 413 2 3)
413 (perl--Test::Harness 414 (perl--Test::Harness
414 ;; perl Test::Harness output, eg. 415 ;; perl Test::Harness output, eg.
diff --git a/lisp/server.el b/lisp/server.el
index 42da7a210c5..36b137b7bc9 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -679,7 +679,7 @@ Server mode runs a process that accepts commands from the
679(defun server-eval-and-print (expr proc) 679(defun server-eval-and-print (expr proc)
680 "Eval EXPR and send the result back to client PROC." 680 "Eval EXPR and send the result back to client PROC."
681 (let ((v (eval (car (read-from-string expr))))) 681 (let ((v (eval (car (read-from-string expr)))))
682 (when (and v proc) 682 (when proc
683 (with-temp-buffer 683 (with-temp-buffer
684 (let ((standard-output (current-buffer))) 684 (let ((standard-output (current-buffer)))
685 (pp v) 685 (pp v)
@@ -1200,12 +1200,12 @@ so don't mark these buffers specially, just visit them normally."
1200 (add-to-history 'file-name-history filen) 1200 (add-to-history 'file-name-history filen)
1201 (if (null obuf) 1201 (if (null obuf)
1202 (progn 1202 (progn
1203 (run-hooks 'pre-command-hook) 1203 (run-hooks 'pre-command-hook)
1204 (set-buffer (find-file-noselect filen))) 1204 (set-buffer (find-file-noselect filen)))
1205 (set-buffer obuf) 1205 (set-buffer obuf)
1206 ;; separately for each file, in sync with post-command hooks, 1206 ;; separately for each file, in sync with post-command hooks,
1207 ;; with the new buffer current: 1207 ;; with the new buffer current:
1208 (run-hooks 'pre-command-hook) 1208 (run-hooks 'pre-command-hook)
1209 (cond ((file-exists-p filen) 1209 (cond ((file-exists-p filen)
1210 (when (not (verify-visited-file-modtime obuf)) 1210 (when (not (verify-visited-file-modtime obuf))
1211 (revert-buffer t nil))) 1211 (revert-buffer t nil)))
@@ -1219,7 +1219,7 @@ so don't mark these buffers specially, just visit them normally."
1219 (server-goto-line-column (cdr file)) 1219 (server-goto-line-column (cdr file))
1220 (run-hooks 'server-visit-hook) 1220 (run-hooks 'server-visit-hook)
1221 ;; hooks may be specific to current buffer: 1221 ;; hooks may be specific to current buffer:
1222 (run-hooks 'post-command-hook)) 1222 (run-hooks 'post-command-hook))
1223 (unless nowait 1223 (unless nowait
1224 ;; When the buffer is killed, inform the clients. 1224 ;; When the buffer is killed, inform the clients.
1225 (add-hook 'kill-buffer-hook 'server-kill-buffer nil t) 1225 (add-hook 'kill-buffer-hook 'server-kill-buffer nil t)
diff --git a/lisp/textmodes/texnfo-upd.el b/lisp/textmodes/texnfo-upd.el
index 12a3e2a620b..047bba72ccd 100644
--- a/lisp/textmodes/texnfo-upd.el
+++ b/lisp/textmodes/texnfo-upd.el
@@ -687,7 +687,7 @@ is the menu entry name, and the cdr of P is the node name."
687 (insert (format "%s: %s." (car node-part) (cdr node-part))))) 687 (insert (format "%s: %s." (car node-part) (cdr node-part)))))
688 688
689 ;; Insert the description, if present. 689 ;; Insert the description, if present.
690 (when (cdr menu) 690 (when (> (length (cdr menu)) 0)
691 ;; Move to right place. 691 ;; Move to right place.
692 (indent-to texinfo-column-for-description 2) 692 (indent-to texinfo-column-for-description 2)
693 ;; Insert description. 693 ;; Insert description.
diff --git a/lisp/type-break.el b/lisp/type-break.el
index 2d6960c77bc..d276e64f6db 100644
--- a/lisp/type-break.el
+++ b/lisp/type-break.el
@@ -47,7 +47,7 @@
47;; or set the variable of the same name to `t'. 47;; or set the variable of the same name to `t'.
48 48
49;; This program can truly cons up a storm because of all the calls to 49;; This program can truly cons up a storm because of all the calls to
50;; `current-time' (which always returns 3 fresh conses). I'm dismayed by 50;; `current-time' (which always returns fresh conses). I'm dismayed by
51;; this, but I think the health of my hands is far more important than a 51;; this, but I think the health of my hands is far more important than a
52;; few pages of virtual memory. 52;; few pages of virtual memory.
53 53
@@ -501,12 +501,9 @@ variable of the same name."
501(defun timep (time) 501(defun timep (time)
502 "If TIME is in the format returned by `current-time' then 502 "If TIME is in the format returned by `current-time' then
503return TIME, else return nil." 503return TIME, else return nil."
504 (and (listp time) 504 (condition-case nil
505 (eq (length time) 3) 505 (and (float-time time) time)
506 (integerp (car time)) 506 (error nil)))
507 (integerp (nth 1 time))
508 (integerp (nth 2 time))
509 time))
510 507
511(defun type-break-choose-file () 508(defun type-break-choose-file ()
512 "Return file to read from." 509 "Return file to read from."
@@ -993,12 +990,8 @@ FRAC should be the inverse of the fractional value; for example, a value of
993 990
994;; Compute the difference, in seconds, between a and b, two structures 991;; Compute the difference, in seconds, between a and b, two structures
995;; similar to those returned by `current-time'. 992;; similar to those returned by `current-time'.
996;; Use addition rather than logand since that is more robust; the low 16
997;; bits of the seconds might have been incremented, making it more than 16
998;; bits wide.
999(defun type-break-time-difference (a b) 993(defun type-break-time-difference (a b)
1000 (+ (lsh (- (car b) (car a)) 16) 994 (round (float-time (time-subtract b a))))
1001 (- (car (cdr b)) (car (cdr a)))))
1002 995
1003;; Return (in a new list the same in structure to that returned by 996;; Return (in a new list the same in structure to that returned by
1004;; `current-time') the sum of the arguments. Each argument may be a time 997;; `current-time') the sum of the arguments. Each argument may be a time
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog
index 9f7ad1c1ca5..f0d9530966e 100644
--- a/lisp/url/ChangeLog
+++ b/lisp/url/ChangeLog
@@ -1,3 +1,13 @@
12011-07-03 Nicolas Avrutin <nicolasavru@gmail.com> (tiny change)
2
3 * url-http.el (url-http-create-request): Remove double carriage
4 return and newline (bug#8931).
5
62011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
7
8 * url-http.el (url-http-wait-for-headers-change-function): Remove
9 pointless "HTTP/0.9 How I hate thee!" message (bug#6735).
10
12011-06-04 Andreas Schwab <schwab@linux-m68k.org> 112011-06-04 Andreas Schwab <schwab@linux-m68k.org>
2 12
3 * url-future.el (url-future-test): Fix scope of `saver'. 13 * url-future.el (url-future-test): Fix scope of `saver'.
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el
index 28071e7165a..7e8b0d958cc 100644
--- a/lisp/url/url-http.el
+++ b/lisp/url/url-http.el
@@ -338,7 +338,7 @@ request.")
338 ;; End request 338 ;; End request
339 "\r\n" 339 "\r\n"
340 ;; Any data 340 ;; Any data
341 url-http-data "\r\n")) 341 url-http-data))
342 "")) 342 ""))
343 (url-http-debug "Request is: \n%s" request) 343 (url-http-debug "Request is: \n%s" request)
344 request)) 344 request))
@@ -1059,19 +1059,16 @@ the end of the document."
1059 ;; Haven't seen the end of the headers yet, need to wait 1059 ;; Haven't seen the end of the headers yet, need to wait
1060 ;; for more data to arrive. 1060 ;; for more data to arrive.
1061 nil 1061 nil
1062 (if old-http 1062 (unless old-http
1063 (message "HTTP/0.9 How I hate thee!") 1063 (url-http-parse-response)
1064 (progn 1064 (mail-narrow-to-head)
1065 (url-http-parse-response) 1065 (setq url-http-transfer-encoding (mail-fetch-field
1066 (mail-narrow-to-head) 1066 "transfer-encoding")
1067 ;;(narrow-to-region (point-min) url-http-end-of-headers) 1067 url-http-content-type (mail-fetch-field "content-type"))
1068 (setq url-http-transfer-encoding (mail-fetch-field 1068 (if (mail-fetch-field "content-length")
1069 "transfer-encoding") 1069 (setq url-http-content-length
1070 url-http-content-type (mail-fetch-field "content-type")) 1070 (string-to-number (mail-fetch-field "content-length"))))
1071 (if (mail-fetch-field "content-length") 1071 (widen))
1072 (setq url-http-content-length
1073 (string-to-number (mail-fetch-field "content-length"))))
1074 (widen)))
1075 (when url-http-transfer-encoding 1072 (when url-http-transfer-encoding
1076 (setq url-http-transfer-encoding 1073 (setq url-http-transfer-encoding
1077 (downcase url-http-transfer-encoding))) 1074 (downcase url-http-transfer-encoding)))
diff --git a/src/ChangeLog b/src/ChangeLog
index d77a246a50a..f861e8ed5f7 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,27 @@
12011-07-04 Juanma Barranquero <lekktu@gmail.com>
2
3 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
4 (syms_of_gnutls): Remove duplicate DEFSYM for
5 Qgnutls_bootprop_verify_hostname_error, an error for
6 Qgnutls_bootprop_verify_error (which is no longer used).
7
8 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
9 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
10 Also (re)move comments that are misplaced or no longer relevant.
11
122011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
13
14 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
15
162011-07-03 Chong Yidong <cyd@stupidchicken.com>
17
18 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
19 and background color parameters if they have been changed.
20
212011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
22
23 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
24
12011-07-03 Paul Eggert <eggert@cs.ucla.edu> 252011-07-03 Paul Eggert <eggert@cs.ucla.edu>
2 26
3 * xsettings.c (SYSTEM_FONT): Define only when used. 27 * xsettings.c (SYSTEM_FONT): Define only when used.
diff --git a/src/callint.c b/src/callint.c
index 4d0a2a07921..1371b403e4b 100644
--- a/src/callint.c
+++ b/src/callint.c
@@ -105,9 +105,10 @@ Z -- Coding system, nil if no prefix arg.
105 105
106In addition, if the string begins with `*', an error is signaled if 106In addition, if the string begins with `*', an error is signaled if
107 the buffer is read-only. 107 the buffer is read-only.
108If the string begins with `@', Emacs searches the key sequence which 108If `@' appears at the beginning of the string, and if the key sequence
109 invoked the command for its first mouse click (or any other event 109 used to invoke the command includes any mouse events, then the window
110 which specifies a window). 110 associated with the first of those events is selected before the
111 command is run.
111If the string begins with `^' and `shift-select-mode' is non-nil, 112If the string begins with `^' and `shift-select-mode' is non-nil,
112 Emacs first calls the function `handle-shift-selection'. 113 Emacs first calls the function `handle-shift-selection'.
113You may use `@', `*', and `^' together. They are processed in the 114You may use `@', `*', and `^' together. They are processed in the
diff --git a/src/editfns.c b/src/editfns.c
index 5328b714b0f..c470c9be985 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -3557,7 +3557,8 @@ The width specifier supplies a lower limit for the length of the
3557printed representation. The padding, if any, normally goes on the 3557printed representation. The padding, if any, normally goes on the
3558left, but it goes on the right if the - flag is present. The padding 3558left, but it goes on the right if the - flag is present. The padding
3559character is normally a space, but it is 0 if the 0 flag is present. 3559character is normally a space, but it is 0 if the 0 flag is present.
3560The - flag takes precedence over the 0 flag. 3560The 0 flag is ignored if the - flag is present, or the format sequence
3561is something other than %d, %e, %f, and %g.
3561 3562
3562For %e, %f, and %g sequences, the number after the "." in the 3563For %e, %f, and %g sequences, the number after the "." in the
3563precision specifier says how many decimal places to show; if zero, the 3564precision specifier says how many decimal places to show; if zero, the
diff --git a/src/eval.c b/src/eval.c
index cb8b4f3ea07..e8a3f947f9d 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1640,8 +1640,7 @@ internal_condition_case_n (Lisp_Object (*bfun) (ptrdiff_t, Lisp_Object *),
1640} 1640}
1641 1641
1642 1642
1643static Lisp_Object find_handler_clause (Lisp_Object, Lisp_Object, 1643static Lisp_Object find_handler_clause (Lisp_Object, Lisp_Object);
1644 Lisp_Object, Lisp_Object);
1645static int maybe_call_debugger (Lisp_Object conditions, Lisp_Object sig, 1644static int maybe_call_debugger (Lisp_Object conditions, Lisp_Object sig,
1646 Lisp_Object data); 1645 Lisp_Object data);
1647 1646
@@ -1717,8 +1716,7 @@ See also the function `condition-case'. */)
1717 1716
1718 for (h = handlerlist; h; h = h->next) 1717 for (h = handlerlist; h; h = h->next)
1719 { 1718 {
1720 clause = find_handler_clause (h->handler, conditions, 1719 clause = find_handler_clause (h->handler, conditions);
1721 error_symbol, data);
1722 if (!NILP (clause)) 1720 if (!NILP (clause))
1723 break; 1721 break;
1724 } 1722 }
@@ -1889,8 +1887,10 @@ skip_debugger (Lisp_Object conditions, Lisp_Object data)
1889} 1887}
1890 1888
1891/* Call the debugger if calling it is currently enabled for CONDITIONS. 1889/* Call the debugger if calling it is currently enabled for CONDITIONS.
1892 SIG and DATA describe the signal, as in find_handler_clause. */ 1890 SIG and DATA describe the signal. There are two ways to pass them:
1893 1891 = SIG is the error symbol, and DATA is the rest of the data.
1892 = SIG is nil, and DATA is (SYMBOL . REST-OF-DATA).
1893 This is for memory-full errors only. */
1894static int 1894static int
1895maybe_call_debugger (Lisp_Object conditions, Lisp_Object sig, Lisp_Object data) 1895maybe_call_debugger (Lisp_Object conditions, Lisp_Object sig, Lisp_Object data)
1896{ 1896{
@@ -1917,19 +1917,8 @@ maybe_call_debugger (Lisp_Object conditions, Lisp_Object sig, Lisp_Object data)
1917 return 0; 1917 return 0;
1918} 1918}
1919 1919
1920/* Value of Qlambda means we have called debugger and user has continued.
1921 There are two ways to pass SIG and DATA:
1922 = SIG is the error symbol, and DATA is the rest of the data.
1923 = SIG is nil, and DATA is (SYMBOL . REST-OF-DATA).
1924 This is for memory-full errors only.
1925
1926 We need to increase max_specpdl_size temporarily around
1927 anything we do that can push on the specpdl, so as not to get
1928 a second error here in case we're handling specpdl overflow. */
1929
1930static Lisp_Object 1920static Lisp_Object
1931find_handler_clause (Lisp_Object handlers, Lisp_Object conditions, 1921find_handler_clause (Lisp_Object handlers, Lisp_Object conditions)
1932 Lisp_Object sig, Lisp_Object data)
1933{ 1922{
1934 register Lisp_Object h; 1923 register Lisp_Object h;
1935 1924
diff --git a/src/gnutls.c b/src/gnutls.c
index 2a055ac40f0..55c7ff01c0c 100644
--- a/src/gnutls.c
+++ b/src/gnutls.c
@@ -638,9 +638,6 @@ certificates for `gnutls-x509pki'.
638:verify-flags is a bitset as per GnuTLS' 638:verify-flags is a bitset as per GnuTLS'
639gnutls_certificate_set_verify_flags. 639gnutls_certificate_set_verify_flags.
640 640
641:verify-error, if non-nil, makes failure of the certificate validation
642an error. Otherwise it will be just a series of warnings.
643
644:verify-hostname-error, if non-nil, makes a hostname mismatch an 641:verify-hostname-error, if non-nil, makes a hostname mismatch an
645error. Otherwise it will be just a warning. 642error. Otherwise it will be just a warning.
646 643
@@ -1100,36 +1097,35 @@ syms_of_gnutls (void)
1100{ 1097{
1101 gnutls_global_initialized = 0; 1098 gnutls_global_initialized = 0;
1102 1099
1103 DEFSYM(Qgnutls_dll, "gnutls"); 1100 DEFSYM (Qgnutls_dll, "gnutls");
1104 DEFSYM(Qgnutls_log_level, "gnutls-log-level"); 1101 DEFSYM (Qgnutls_log_level, "gnutls-log-level");
1105 DEFSYM(Qgnutls_code, "gnutls-code"); 1102 DEFSYM (Qgnutls_code, "gnutls-code");
1106 DEFSYM(Qgnutls_anon, "gnutls-anon"); 1103 DEFSYM (Qgnutls_anon, "gnutls-anon");
1107 DEFSYM(Qgnutls_x509pki, "gnutls-x509pki"); 1104 DEFSYM (Qgnutls_x509pki, "gnutls-x509pki");
1108 DEFSYM(Qgnutls_bootprop_hostname, ":hostname"); 1105 DEFSYM (Qgnutls_bootprop_hostname, ":hostname");
1109 DEFSYM(Qgnutls_bootprop_priority, ":priority"); 1106 DEFSYM (Qgnutls_bootprop_priority, ":priority");
1110 DEFSYM(Qgnutls_bootprop_trustfiles, ":trustfiles"); 1107 DEFSYM (Qgnutls_bootprop_trustfiles, ":trustfiles");
1111 DEFSYM(Qgnutls_bootprop_keylist, ":keylist"); 1108 DEFSYM (Qgnutls_bootprop_keylist, ":keylist");
1112 DEFSYM(Qgnutls_bootprop_crlfiles, ":crlfiles"); 1109 DEFSYM (Qgnutls_bootprop_crlfiles, ":crlfiles");
1113 DEFSYM(Qgnutls_bootprop_callbacks, ":callbacks"); 1110 DEFSYM (Qgnutls_bootprop_callbacks, ":callbacks");
1114 DEFSYM(Qgnutls_bootprop_callbacks_verify, "verify"); 1111 DEFSYM (Qgnutls_bootprop_callbacks_verify, "verify");
1115 DEFSYM(Qgnutls_bootprop_loglevel, ":loglevel"); 1112 DEFSYM (Qgnutls_bootprop_loglevel, ":loglevel");
1116 DEFSYM(Qgnutls_bootprop_verify_flags, ":verify-flags"); 1113 DEFSYM (Qgnutls_bootprop_verify_flags, ":verify-flags");
1117 DEFSYM(Qgnutls_bootprop_verify_hostname_error, ":verify-error"); 1114 DEFSYM (Qgnutls_bootprop_verify_hostname_error, ":verify-hostname-error");
1118 DEFSYM(Qgnutls_bootprop_verify_hostname_error, ":verify-hostname-error"); 1115
1119 1116 DEFSYM (Qgnutls_e_interrupted, "gnutls-e-interrupted");
1120 DEFSYM(Qgnutls_e_interrupted, "gnutls-e-interrupted");
1121 Fput (Qgnutls_e_interrupted, Qgnutls_code, 1117 Fput (Qgnutls_e_interrupted, Qgnutls_code,
1122 make_number (GNUTLS_E_INTERRUPTED)); 1118 make_number (GNUTLS_E_INTERRUPTED));
1123 1119
1124 DEFSYM(Qgnutls_e_again, "gnutls-e-again"); 1120 DEFSYM (Qgnutls_e_again, "gnutls-e-again");
1125 Fput (Qgnutls_e_again, Qgnutls_code, 1121 Fput (Qgnutls_e_again, Qgnutls_code,
1126 make_number (GNUTLS_E_AGAIN)); 1122 make_number (GNUTLS_E_AGAIN));
1127 1123
1128 DEFSYM(Qgnutls_e_invalid_session, "gnutls-e-invalid-session"); 1124 DEFSYM (Qgnutls_e_invalid_session, "gnutls-e-invalid-session");
1129 Fput (Qgnutls_e_invalid_session, Qgnutls_code, 1125 Fput (Qgnutls_e_invalid_session, Qgnutls_code,
1130 make_number (GNUTLS_E_INVALID_SESSION)); 1126 make_number (GNUTLS_E_INVALID_SESSION));
1131 1127
1132 DEFSYM(Qgnutls_e_not_ready_for_handshake, "gnutls-e-not-ready-for-handshake"); 1128 DEFSYM (Qgnutls_e_not_ready_for_handshake, "gnutls-e-not-ready-for-handshake");
1133 Fput (Qgnutls_e_not_ready_for_handshake, Qgnutls_code, 1129 Fput (Qgnutls_e_not_ready_for_handshake, Qgnutls_code,
1134 make_number (GNUTLS_E_APPLICATION_ERROR_MIN)); 1130 make_number (GNUTLS_E_APPLICATION_ERROR_MIN));
1135 1131
diff --git a/src/xfaces.c b/src/xfaces.c
index 4f06bd3ba55..91f4b133466 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -3813,6 +3813,18 @@ Default face attributes override any local face attributes. */)
3813 Fmodify_frame_parameters (frame, Fcons (Fcons (Qfont, name), 3813 Fmodify_frame_parameters (frame, Fcons (Fcons (Qfont, name),
3814 Qnil)); 3814 Qnil));
3815 } 3815 }
3816
3817 if (STRINGP (gvec[LFACE_FOREGROUND_INDEX]))
3818 Fmodify_frame_parameters (frame,
3819 Fcons (Fcons (Qforeground_color,
3820 gvec[LFACE_FOREGROUND_INDEX]),
3821 Qnil));
3822
3823 if (STRINGP (gvec[LFACE_BACKGROUND_INDEX]))
3824 Fmodify_frame_parameters (frame,
3825 Fcons (Fcons (Qbackground_color,
3826 gvec[LFACE_BACKGROUND_INDEX]),
3827 Qnil));
3816 } 3828 }
3817 } 3829 }
3818 3830