Merge from trunk.
authorBill Wohler <wohler@newt.com>
Mon, 4 Jul 2011 02:58:14 +0000 (19:58 -0700)
committerBill Wohler <wohler@newt.com>
Mon, 4 Jul 2011 02:58:14 +0000 (19:58 -0700)
38 files changed:
doc/emacs/ChangeLog
doc/emacs/display.texi
doc/lispref/ChangeLog
doc/lispref/functions.texi
doc/lispref/searching.texi
doc/lispref/strings.texi
doc/misc/ChangeLog
doc/misc/cl.texi
doc/misc/gnus.texi
etc/ChangeLog
etc/compilation.txt
lisp/ChangeLog
lisp/custom.el
lisp/dired.el
lisp/faces.el
lisp/frame.el
lisp/gnus/ChangeLog
lisp/gnus/auth-source.el
lisp/gnus/gnus-group.el
lisp/gnus/gnus.el
lisp/gnus/nndraft.el
lisp/gnus/pop3.el
lisp/info.el
lisp/isearch.el
lisp/mail/feedmail.el
lisp/net/network-stream.el
lisp/progmodes/compile.el
lisp/server.el
lisp/textmodes/texnfo-upd.el
lisp/type-break.el
lisp/url/ChangeLog
lisp/url/url-http.el
src/ChangeLog
src/callint.c
src/editfns.c
src/eval.c
src/gnutls.c
src/xfaces.c

index f91ecc2..aca1ccc 100644 (file)
@@ -1,3 +1,8 @@
+2011-07-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * display.texi (Scrolling): `C-v' (etc) are now bound to
+       `scroll-*-command' (bug#8349).
+
 2011-07-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * dired.texi (Subdirectories in Dired): Clarify that `C-u k'
index 3cec3e8..210b1b6 100644 (file)
@@ -61,11 +61,11 @@ order; also, maybe redisplay the screen (@code{recenter-top-bottom}).
 @item C-v
 @itemx @key{next}
 @itemx @key{PageDown}
-Scroll forward by nearly a full window (@code{scroll-up}).
+Scroll forward by nearly a full window (@code{scroll-up-command}).
 @item M-v
 @itemx @key{prior}
 @itemx @key{PageUp}
-Scroll backward (@code{scroll-down}).
+Scroll backward (@code{scroll-down-command}).
 @item C-M-l
 Scroll heuristically to bring useful information onto the screen
 (@code{reposition-window}).
index a87cd20..807313c 100644 (file)
@@ -1,3 +1,16 @@
+2011-07-03  Tobias C. Rittweiler  <tcr@freebits.de>  (tiny change)
+
+       * searching.texi (Match Data): Note that match data can be
+       overwritten by most functions (bug#2499).
+
+2011-07-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * strings.texi (Formatting Strings): Clarify what the "-" and "0"
+       flags mean (bug#6659).
+
+       * functions.texi (What Is a Function): Document the autoload
+       object (bug#6496).
+
 2011-07-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * customize.texi (Variable Definitions): Clarify that SETFUNCTION
index 9744873..519957f 100644 (file)
@@ -112,6 +112,13 @@ editors; for Lisp programs, the distinction is normally unimportant.
 @item byte-code function
 A @dfn{byte-code function} is a function that has been compiled by the
 byte compiler.  @xref{Byte-Code Type}.
+
+@item autoload object
+@cindex autoload object
+An @dfn{autoload object} is a place-holder for a real function.  If
+the autoload object is called, it will make Emacs load the file
+containing the definition of the real function, and then call the real
+function instead.
 @end table
 
 @defun functionp object
index 27b089f..6272301 100644 (file)
@@ -1207,6 +1207,12 @@ search you wish to refer back to and the use of the match data.  If you
 can't avoid another intervening search, you must save and restore the
 match data around it, to prevent it from being overwritten.
 
+  Notice that all functions are allowed to overwrite the match data
+unless they're explicitly documented not to do so.  A consequence is
+that functions that are run implictly in the background
+(@pxref{Timers}, and @ref{Idle Timers}) should likely save and restore
+the match data explicitly.
+
 @menu
 * Replacing Match::       Replacing a substring that was matched.
 * Simple Match Data::     Accessing single items of match data,
index 05ac40e..2b89112 100644 (file)
@@ -856,14 +856,16 @@ with @samp{0x} or @samp{0X}.  For @samp{%e}, @samp{%f}, and @samp{%g},
 the @samp{#} flag means include a decimal point even if the precision
 is zero.
 
+  The flag @samp{0} ensures that the padding consists of @samp{0}
+characters instead of spaces.  This flag is ignored for non-numerical
+specification characters like @samp{%s}, @samp{%S} and @samp{%c}.
+These specification characters accept the @samp{0} flag, but still pad
+with @emph{spaces}.
+
   The flag @samp{-} causes the padding inserted by the width
 specifier, if any, to be inserted on the right rather than the left.
-The flag @samp{0} ensures that the padding consists of @samp{0}
-characters instead of spaces, inserted on the left.  These flags are
-ignored for specification characters for which they do not make sense:
-@samp{%s}, @samp{%S} and @samp{%c} accept the @samp{0} flag, but still
-pad with @emph{spaces} on the left.  If both @samp{-} and @samp{0} are
-present and valid, @samp{-} takes precedence.
+If both @samp{-} and @samp{0} are present, the @samp{0} flag is
+ignored.
 
 @example
 @group
index 583bdb4..2a99167 100644 (file)
@@ -1,3 +1,22 @@
+2011-07-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus.texi (Subscription Methods): Link to "Group Levels" to explain
+       zombies.
+       (Checking New Groups): Ditto (bug#8974).
+       (Checking New Groups): Moved the reference to the right place.
+
+2011-07-03  Dave Abrahams  <dave@boostpro.com>  (tiny change)
+
+       * gnus.texi (Startup Files): Clarify that we're talking about numbered
+       backups, and not actual vc (bug#8975).
+
+2011-07-03  Kevin Ryde  <user42@zip.com.au>
+
+       * cl.texi (For Clauses): @items for hash-values and key-bindings
+       to make them more visible when skimming.  Add examples of `using'
+       clause to them, examples being clearer than a description in
+       words (bug#6599).
+
 2011-07-01  Alan Mackenzie  <acm@muc.de>
 
        * cc-mode.texi (Guessing the Style): New page.
index afe7c94..ab54b99 100644 (file)
@@ -2449,22 +2449,33 @@ one of these types of clauses with other clauses like @code{for ... to}
 or @code{while}.
 
 @item for @var{var} being the hash-keys of @var{hash-table}
-This clause iterates over the entries in @var{hash-table}.  For each
-hash table entry, @var{var} is bound to the entry's key.  If you write
-@samp{the hash-values} instead, @var{var} is bound to the values
-of the entries.  The clause may be followed by the additional
-term @samp{using (hash-values @var{var2})} (where @code{hash-values}
-is the opposite word of the word following @code{the}) to cause
-@var{var} and @var{var2} to be bound to the two parts of each
-hash table entry.
+@itemx for @var{var} being the hash-values of @var{hash-table}
+This clause iterates over the entries in @var{hash-table} with
+@var{var} bound to each key, or value.  A @samp{using} clause can bind
+a second variable to the opposite part.
+
+@example
+(loop for k being the hash-keys of h
+            using (hash-values v)
+      do
+      (message "key %S -> value %S" k v))
+@end example
 
 @item for @var{var} being the key-codes of @var{keymap}
+@itemx for @var{var} being the key-bindings of @var{keymap}
 This clause iterates over the entries in @var{keymap}.
 The iteration does not enter nested keymaps but does enter inherited
 (parent) keymaps.
-You can use @samp{the key-bindings} to access the commands bound to
-the keys rather than the key codes, and you can add a @code{using}
-clause to access both the codes and the bindings together.
+A @code{using} clause can access both the codes and the bindings
+together.
+
+@example
+(loop for c being the key-codes of (current-local-map)
+            using (key-bindings b)
+      do
+      (message "key %S -> binding %S" c b))
+@end example
+
 
 @item for @var{var} being the key-seqs of @var{keymap}
 This clause iterates over all key sequences defined by @var{keymap}
index f98d4df..3bce492 100644 (file)
@@ -1167,16 +1167,17 @@ when you do the @kbd{g} command (@pxref{Scanning New Messages}).
 @node Checking New Groups
 @subsection Checking New Groups
 
-Gnus normally determines whether a group is new or not by comparing the
-list of groups from the active file(s) with the lists of subscribed and
-dead groups.  This isn't a particularly fast method.  If
-@code{gnus-check-new-newsgroups} is @code{ask-server}, Gnus will ask the
-server for new groups since the last time.  This is both faster and
-cheaper.  This also means that you can get rid of the list of killed
-groups altogether, so you may set @code{gnus-save-killed-list} to
-@code{nil}, which will save time both at startup, at exit, and all over.
-Saves disk space, too.  Why isn't this the default, then?
-Unfortunately, not all servers support this command.
+Gnus normally determines whether a group is new or not by comparing
+the list of groups from the active file(s) with the lists of
+subscribed and dead groups.  This isn't a particularly fast method.
+If @code{gnus-check-new-newsgroups} is @code{ask-server}, Gnus will
+ask the server for new groups since the last time.  This is both
+faster and cheaper.  This also means that you can get rid of the list
+of killed groups (@pxref{Group Levels}) altogether, so you may set
+@code{gnus-save-killed-list} to @code{nil}, which will save time both
+at startup, at exit, and all over.  Saves disk space, too.  Why isn't
+this the default, then?  Unfortunately, not all servers support this
+command.
 
 I bet I know what you're thinking now: How do I find out whether my
 server supports @code{ask-server}?  No?  Good, because I don't have a
@@ -1214,9 +1215,10 @@ Some handy pre-fab functions are:
 
 @item gnus-subscribe-zombies
 @vindex gnus-subscribe-zombies
-Make all new groups zombies.  This is the default.  You can browse the
-zombies later (with @kbd{A z}) and either kill them all off properly
-(with @kbd{S z}), or subscribe to them (with @kbd{u}).
+Make all new groups zombies (@pxref{Group Levels}).  This is the
+default.  You can browse the zombies later (with @kbd{A z}) and either
+kill them all off properly (with @kbd{S z}), or subscribe to them
+(with @kbd{u}).
 
 @item gnus-subscribe-randomly
 @vindex gnus-subscribe-randomly
@@ -1430,7 +1432,7 @@ several servers where not all servers support @code{ask-server}.
 The @code{gnus-startup-file} variable says where the startup files are.
 The default value is @file{~/.newsrc}, with the Gnus (El Dingo) startup
 file being whatever that one is, with a @samp{.eld} appended.
-If you want version control for this file, set
+If you want to keep multiple numbered backups of this file, set
 @code{gnus-backup-startup-file}.  It respects the same values as the
 @code{version-control} variable.
 
@@ -2360,6 +2362,7 @@ empty subscribed groups and unsubscribed groups, too.  Type @kbd{l} to
 go back to showing nonempty subscribed groups again.  Thus, unsubscribed
 groups are hidden, in a way.
 
+@cindex zombie groups
 Zombie and killed groups are similar to unsubscribed groups in that they
 are hidden by default.  But they are different from subscribed and
 unsubscribed groups in that Gnus doesn't ask the news server for
index cbc267f..ea3ef27 100644 (file)
@@ -1,3 +1,7 @@
+2011-03-29  Kevin Ryde  <user42@zip.com.au>
+
+       * compilation.txt (perl-Test2): New samples.
+
 2011-07-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * tutorials/TUTORIAL.zh: Remove spurious ")" character on the
index 8e19222..0eb3fe1 100644 (file)
@@ -496,6 +496,16 @@ symbol: perl--Test
 
 # Failed test 1 in foo.t at line 6
 
+* Perl Test.pm module error messages comparing two values
+
+symbol: perl--Test2
+
+# Test 3 got: "99" (d-compilation-perl.t at line 29)
+#   Expected: "88" (my test name)
+#  d-compilation-perl.t line 29 is: ok(99,88,'my test name');
+
+# Test 6 got: "xx" (foo.t at line 33 fail #2)
+#   Expected: "yy"
 
 * Perl Test::Harness output
 
index 169793e..93cf3c4 100644 (file)
@@ -1,5 +1,73 @@
+2011-07-04  Juanma Barranquero  <lekktu@gmail.com>
+
+       * type-break.el (timep): Use the value of `float-time' to avoid a
+       byte-compiler warning.
+
+       * server.el (server-eval-and-print): Return any result, even nil.
+
+2011-07-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * type-break.el: Accept time formats that the builtins accept.
+       (timep, type-break-time-difference): Accept any format that
+       float-time accepts, rather than insisting on (HIGH LOW USECS) format.
+       This is simpler and helps future-proof the code.
+       (type-break-time-difference): Round rather than ignoring
+       subseconds components.
+
 2011-07-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
+       * info.el (Info-apropos-matches): Make non-interactive, since it
+       doesn't seem to do anything useful as a command (bug#8829).
+
+2011-07-03  Chong Yidong  <cyd@stupidchicken.com>
+
+       * frame.el (frame-background-mode, frame-set-background-mode):
+       Moved from faces.el.
+       (frame-default-terminal-background): New function.
+
+       * custom.el (custom-push-theme): Don't record faces in `changed'
+       theme; this doesn't work correctly for per-frame face settings.
+       (disable-theme): Use face-set-after-frame-default to reset faces.
+       (custom--frame-color-default): New function.
+
+2011-07-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * dired.el (dired-flagging-regexp): Removed unused variable
+       (bug#8769).
+
+2011-03-29  Kevin Ryde  <user42@zip.com.au>
+
+       * progmodes/compile.el (compilation-error-regexp-alist-alist):
+       `perl-Test2' extend to match possible "fail #N" rep count
+       (bug#8377).
+
+2011-07-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * mail/feedmail.el (feedmail-buffer-to-smtpmail):
+       `smtpmail-via-smtp' now returns the error instead of nil.
+
+       * isearch.el (isearch-search-fun-function): Clarify the doc string
+       (bug#8101).
+
+2011-07-03  Richard Kim  <emacs18@gmail.com>  (tiny change)
+
+       * textmodes/texnfo-upd.el (texinfo-insert-menu): Don't insert
+       unnecessary spaces (bug#8987).
+
+2011-07-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * net/network-stream.el (open-network-stream): Use the
+       :end-of-capability command thoughout.
+
+2011-07-03  Wolfgang Jenkner  <wjenkner@inode.at>  (tiny change)
+
+       * net/network-stream.el (open-network-stream): Add the
+       :end-of-capability command parameter, used by pop3.el.
+
+2011-07-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * dired.el (dired-map-over-marks): Refill the doc string (bug#6814).
+
        * fringe.el (fringe-query-style): Remove redundant text " (type ?
        for list)" (bug#6475).
 
        (ses-cell-symbol): Set macro as safe, so that it can be used in
        formulas.
 
-       * ses.el:  Update cycle detection algorithm.
+       * ses.el: Update cycle detection algorithm.
        (ses-localvars): Add ses--Dijkstra-attempt-nb and
        ses--Dijkstra-weight-bound, and initial values thereof when applicable.
        (ses-set-localvars): New function.
index a1c7f3e..11dc185 100644 (file)
@@ -855,25 +855,18 @@ See `custom-known-themes' for a list of known themes."
      ;; Add a new setting:
      (t
       (unless old
-       ;; If the user changed the value outside of Customize, we
-       ;; first save the current value to a fake theme, `changed'.
-       ;; This ensures that the user-set value comes back if the
-       ;; theme is later disabled.
-       (cond ((and (eq prop 'theme-value)
-                   (boundp symbol))
-              (let ((sv  (get symbol 'standard-value))
-                    (val (symbol-value symbol)))
-                (unless (and sv (equal (eval (car sv)) val))
-                  (setq old `((changed ,(custom-quote val)))))))
-             ((and (facep symbol)
-                   (not (face-attr-match-p
-                         symbol
-                         (custom-fix-face-spec
-                          (face-spec-choose
-                           (get symbol 'face-defface-spec))))))
-              (setq old `((changed
-                           (,(append '(t) (custom-face-attributes-get
-                                           symbol nil)))))))))
+       ;; If the user changed a variable outside of Customize, save
+       ;; the value to a fake theme, `changed'.  If the theme is
+       ;; later disabled, we use this to bring back the old value.
+       ;;
+       ;; For faces, we just use `face-new-frame-defaults' to
+       ;; recompute when the theme is disabled.
+       (when (and (eq prop 'theme-value)
+                  (boundp symbol))
+         (let ((sv  (get symbol 'standard-value))
+               (val (symbol-value symbol)))
+           (unless (and sv (equal (eval (car sv)) val))
+             (setq old `((changed ,(custom-quote val))))))))
       (put symbol prop (cons (list theme value) old))
       (put theme 'theme-settings
           (cons (list prop symbol theme value) theme-settings))))))
@@ -1356,11 +1349,33 @@ See `custom-enabled-themes' for a list of enabled themes."
            ;; If the face spec specified by this theme is in the
            ;; saved-face property, reset that property.
            (when (equal (nth 3 s) (get symbol 'saved-face))
-             (put symbol 'saved-face (and val (cadr (car val)))))
-           (custom-theme-recalc-face symbol)))))
+             (put symbol 'saved-face (and val (cadr (car val)))))))))
+      ;; Recompute faces on all frames.
+      (dolist (frame (frame-list))
+       ;; We must reset the fg and bg color frame parameters, or
+       ;; `face-set-after-frame-default' will use the existing
+       ;; parameters, which could be from the disabled theme.
+       (set-frame-parameter frame 'background-color
+                            (custom--frame-color-default
+                             frame :background "background" "Background"
+                             "unspecified-bg" "white"))
+       (set-frame-parameter frame 'foreground-color
+                            (custom--frame-color-default
+                             frame :foreground "foreground" "Foreground"
+                             "unspecified-fg" "black"))
+       (face-set-after-frame-default frame))
       (setq custom-enabled-themes
            (delq theme custom-enabled-themes)))))
 
+(defun custom--frame-color-default (frame attribute resource-attr resource-class
+                                         tty-default x-default)
+  (let ((col (face-attribute 'default attribute t)))
+    (cond
+     ((and col (not (eq col 'unspecified))) col)
+     ((null (window-system frame)) tty-default)
+     ((setq col (x-get-resource resource-attr resource-class)) col)
+     (t x-default))))
+
 (defun custom-variable-theme-value (variable)
   "Return (list VALUE) indicating the custom theme value of VARIABLE.
 That is to say, it specifies what the value should be according to
index 92f3a46..2f40913 100644 (file)
@@ -238,8 +238,6 @@ This is what the do-commands look for, and what the mark-commands store.")
 ;;  (> baud-rate search-slow-speed)
   "Non-nil means Dired shrinks the display buffer to fit the marked files.")
 
-(defvar dired-flagging-regexp nil);; Last regexp used to flag files.
-
 (defvar dired-file-version-alist)
 
 ;;;###autoload
@@ -515,24 +513,31 @@ Return value is the number of files marked, or nil if none were marked."
 (defmacro dired-map-over-marks (body arg &optional show-progress
                                     distinguish-one-marked)
   "Eval BODY with point on each marked line.  Return a list of BODY's results.
-If no marked file could be found, execute BODY on the current line.
-ARG, if non-nil, specifies the files to use instead of the marked files.
-  If ARG is an integer, use the next ARG (or previous -ARG, if
-   ARG<0) files.  In that case, point is dragged along.  This is
-   so that commands on the next ARG (instead of the marked) files
-   can be chained easily.
-  For any other non-nil value of ARG, use the current file.
+If no marked file could be found, execute BODY on the current
+line.  ARG, if non-nil, specifies the files to use instead of the
+marked files.
+
+If ARG is an integer, use the next ARG (or previous -ARG, if
+ARG<0) files.  In that case, point is dragged along.  This is so
+that commands on the next ARG (instead of the marked) files can
+be chained easily.
+For any other non-nil value of ARG, use the current file.
+
 If optional third arg SHOW-PROGRESS evaluates to non-nil,
-  redisplay the dired buffer after each file is processed.
-No guarantee is made about the position on the marked line.
-  BODY must ensure this itself if it depends on this.
-Search starts at the beginning of the buffer, thus the car of the list
-  corresponds to the line nearest to the buffer's bottom.  This
-  is also true for (positive and negative) integer values of ARG.
+redisplay the dired buffer after each file is processed.
+
+No guarantee is made about the position on the marked line.  BODY
+must ensure this itself if it depends on this.
+
+Search starts at the beginning of the buffer, thus the car of the
+list corresponds to the line nearest to the buffer's bottom.
+This is also true for (positive and negative) integer values of
+ARG.
+
 BODY should not be too long as it is expanded four times.
 
-If DISTINGUISH-ONE-MARKED is non-nil, then if we find just one marked file,
-return (t FILENAME) instead of (FILENAME)."
+If DISTINGUISH-ONE-MARKED is non-nil, then if we find just one
+marked file, return (t FILENAME) instead of (FILENAME)."
   ;;
   ;;Warning: BODY must not add new lines before point - this may cause an
   ;;endless loop.
index c29d8c9..34e1543 100644 (file)
@@ -1821,109 +1821,6 @@ Return nil if it has no specified face."
           (cond ((memq 'background-color face) (cdr (memq 'background-color face)))
                 ((memq ':background face) (cadr (memq ':background face)))))
          (t nil))))                    ; Invalid face value.
-\f
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; Background mode.
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(defcustom frame-background-mode nil
-  "The brightness of the background.
-Set this to the symbol `dark' if your background color is dark,
-`light' if your background is light, or nil (automatic by default)
-if you want Emacs to examine the brightness for you.  Don't set this
-variable with `setq'; this won't have the expected effect."
-  :group 'faces
-  :set #'(lambda (var value)
-          (set-default var value)
-          (mapc 'frame-set-background-mode (frame-list)))
-  :initialize 'custom-initialize-changed
-  :type '(choice (const dark)
-                (const light)
-                (const :tag "automatic" nil)))
-
-
-(declare-function x-get-resource "frame.c"
-                 (attribute class &optional component subclass))
-
-(defvar inhibit-frame-set-background-mode nil)
-
-(defun frame-set-background-mode (frame &optional keep-face-specs)
-  "Set up display-dependent faces on FRAME.
-Display-dependent faces are those which have different definitions
-according to the `background-mode' and `display-type' frame parameters.
-
-If optional arg KEEP-FACE-SPECS is non-nil, don't recalculate
-face specs for the new background mode."
-  (unless inhibit-frame-set-background-mode
-    (let* ((bg-resource
-           (and (window-system frame)
-                (x-get-resource "backgroundMode" "BackgroundMode")))
-          (bg-color (frame-parameter frame 'background-color))
-          (terminal-bg-mode (terminal-parameter frame 'background-mode))
-          (tty-type (tty-type frame))
-          (default-bg-mode
-            (if (or (window-system frame)
-                    (and tty-type
-                         (string-match "^\\(xterm\\|\\rxvt\\|dtterm\\|eterm\\)"
-                                       tty-type)))
-                'light
-              'dark))
-          (non-default-bg-mode (if (eq default-bg-mode 'light) 'dark 'light))
-          (bg-mode
-           (cond (frame-background-mode)
-                 (bg-resource (intern (downcase bg-resource)))
-                 (terminal-bg-mode)
-                 ((equal bg-color "unspecified-fg") ; inverted colors
-                  non-default-bg-mode)
-                 ((not (color-values bg-color frame))
-                  default-bg-mode)
-                 ((>= (apply '+ (color-values bg-color frame))
-                      ;; Just looking at the screen, colors whose
-                      ;; values add up to .6 of the white total
-                      ;; still look dark to me.
-                      (* (apply '+ (color-values "white" frame)) .6))
-                  'light)
-                 (t 'dark)))
-          (display-type
-           (cond ((null (window-system frame))
-                  (if (tty-display-color-p frame) 'color 'mono))
-                 ((display-color-p frame)
-                  'color)
-                 ((x-display-grayscale-p frame)
-                  'grayscale)
-                 (t 'mono)))
-          (old-bg-mode
-           (frame-parameter frame 'background-mode))
-          (old-display-type
-           (frame-parameter frame 'display-type)))
-
-      (unless (and (eq bg-mode old-bg-mode) (eq display-type old-display-type))
-       (let ((locally-modified-faces nil)
-             ;; Prevent face-spec-recalc from calling this function
-             ;; again, resulting in a loop (bug#911).
-             (inhibit-frame-set-background-mode t)
-             (params (list (cons 'background-mode bg-mode)
-                           (cons 'display-type display-type))))
-         (if keep-face-specs
-             (modify-frame-parameters frame params)
-           ;; If we are recomputing face specs, first collect a list
-           ;; of faces that don't match their face-specs.  These are
-           ;; the faces modified on FRAME, and we avoid changing them
-           ;; below.  Use a negative list to avoid consing (we assume
-           ;; most faces are unmodified).
-           (dolist (face (face-list))
-             (and (not (get face 'face-override-spec))
-                  (not (face-spec-match-p face
-                                          (face-user-default-spec face)
-                                          (selected-frame)))
-                  (push face locally-modified-faces)))
-           ;; Now change to the new frame parameters
-           (modify-frame-parameters frame params)
-           ;; For all unmodified named faces, choose face specs
-           ;; matching the new frame parameters.
-           (dolist (face (face-list))
-             (unless (memq face locally-modified-faces)
-               (face-spec-recalc face frame)))))))))
 
 \f
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -2020,7 +1917,8 @@ settings, X resources, and `face-new-frame-defaults'.
 Finally, apply any relevant face attributes found amongst the
 frame parameters in PARAMETERS."
   (let ((window-system-p (memq (window-system frame) '(x w32))))
-    (dolist (face (nreverse (face-list))) ;Why reverse?  --Stef
+    ;; The `reverse' is so that `default' goes first.
+    (dolist (face (nreverse (face-list)))
       (condition-case ()
          (progn
            ;; Initialize faces from face spec and custom theme.
index 3ceec26..d6f8275 100644 (file)
@@ -847,6 +847,116 @@ If there is no frame by that name, signal an error."
     (if frame
        (select-frame-set-input-focus frame)
       (error "There is no frame named `%s'" name))))
+
+\f
+;;;; Background mode.
+
+(defcustom frame-background-mode nil
+  "The brightness of the background.
+Set this to the symbol `dark' if your background color is dark,
+`light' if your background is light, or nil (automatic by default)
+if you want Emacs to examine the brightness for you.  Don't set this
+variable with `setq'; this won't have the expected effect."
+  :group 'faces
+  :set #'(lambda (var value)
+          (set-default var value)
+          (mapc 'frame-set-background-mode (frame-list)))
+  :initialize 'custom-initialize-changed
+  :type '(choice (const dark)
+                (const light)
+                (const :tag "automatic" nil)))
+
+(declare-function x-get-resource "frame.c"
+                 (attribute class &optional component subclass))
+
+(defvar inhibit-frame-set-background-mode nil)
+
+(defun frame-set-background-mode (frame &optional keep-face-specs)
+  "Set up display-dependent faces on FRAME.
+Display-dependent faces are those which have different definitions
+according to the `background-mode' and `display-type' frame parameters.
+
+If optional arg KEEP-FACE-SPECS is non-nil, don't recalculate
+face specs for the new background mode."
+  (unless inhibit-frame-set-background-mode
+    (let* ((frame-default-bg-mode (frame-terminal-default-bg-mode frame))
+          (bg-color (frame-parameter frame 'background-color))
+          (tty-type (tty-type frame))
+          (default-bg-mode
+            (if (or (window-system frame)
+                    (and tty-type
+                         (string-match "^\\(xterm\\|\\rxvt\\|dtterm\\|eterm\\)"
+                                       tty-type)))
+                'light
+              'dark))
+          (non-default-bg-mode (if (eq default-bg-mode 'light) 'dark 'light))
+          (bg-mode
+           (cond (frame-default-bg-mode)
+                 ((equal bg-color "unspecified-fg") ; inverted colors
+                  non-default-bg-mode)
+                 ((not (color-values bg-color frame))
+                  default-bg-mode)
+                 ((>= (apply '+ (color-values bg-color frame))
+                      ;; Just looking at the screen, colors whose
+                      ;; values add up to .6 of the white total
+                      ;; still look dark to me.
+                      (* (apply '+ (color-values "white" frame)) .6))
+                  'light)
+                 (t 'dark)))
+          (display-type
+           (cond ((null (window-system frame))
+                  (if (tty-display-color-p frame) 'color 'mono))
+                 ((display-color-p frame)
+                  'color)
+                 ((x-display-grayscale-p frame)
+                  'grayscale)
+                 (t 'mono)))
+          (old-bg-mode
+           (frame-parameter frame 'background-mode))
+          (old-display-type
+           (frame-parameter frame 'display-type)))
+
+      (unless (and (eq bg-mode old-bg-mode) (eq display-type old-display-type))
+       (let ((locally-modified-faces nil)
+             ;; Prevent face-spec-recalc from calling this function
+             ;; again, resulting in a loop (bug#911).
+             (inhibit-frame-set-background-mode t)
+             (params (list (cons 'background-mode bg-mode)
+                           (cons 'display-type display-type))))
+         (if keep-face-specs
+             (modify-frame-parameters frame params)
+           ;; If we are recomputing face specs, first collect a list
+           ;; of faces that don't match their face-specs.  These are
+           ;; the faces modified on FRAME, and we avoid changing them
+           ;; below.  Use a negative list to avoid consing (we assume
+           ;; most faces are unmodified).
+           (dolist (face (face-list))
+             (and (not (get face 'face-override-spec))
+                  (not (face-spec-match-p face
+                                          (face-user-default-spec face)
+                                          (selected-frame)))
+                  (push face locally-modified-faces)))
+           ;; Now change to the new frame parameters
+           (modify-frame-parameters frame params)
+           ;; For all unmodified named faces, choose face specs
+           ;; matching the new frame parameters.
+           (dolist (face (face-list))
+             (unless (memq face locally-modified-faces)
+               (face-spec-recalc face frame)))))))))
+
+(defun frame-terminal-default-bg-mode (frame)
+  "Return the default background mode of FRAME.
+This checks the `frame-background-mode' variable, the X resource
+named \"backgroundMode\" (if FRAME is an X frame), and finally
+the `background-mode' terminal parameter."
+  (or frame-background-mode
+      (let ((bg-resource
+            (and (window-system frame)
+                 (x-get-resource "backgroundMode" "BackgroundMode"))))
+       (if bg-resource
+           (intern (downcase bg-resource))))
+      (terminal-parameter frame 'background-mode)))
+
 \f
 ;;;; Frame configurations
 
index eaf4e8e..d621333 100644 (file)
@@ -1,3 +1,33 @@
+2011-07-04  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * nndraft.el (nndraft-update-unread-articles): Don't show group having
+       no unread article unless it matches gnus-permanently-visible-groups.
+
+       * nndraft.el (nndraft-update-unread-articles): New function.
+       (nndraft-request-associate-buffer): Use it to update the number of
+       unread articles for the nndraft groups in the group buffer when saving
+       or killing a draft message.
+
+2011-07-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-group.el (gnus-read-ephemeral-bug-group): Bind the coding
+       systems to binary before writing and reading the mbox files.
+
+       * gnus.el (gnus-summary-line-format): Link to the info node for %U
+       instead of trying to list them all (bug#8978).
+
+2011-07-03  Wolfgang Jenkner  <wjenkner@inode.at>  (tiny change)
+
+       * pop3.el (pop3-open-server): Use :end-of-capability.
+
+2011-07-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-group.el (gnus-read-ephemeral-emacs-bug-group): Make sure that
+       the id is always a number.
+
+       * gnus-group.el (gnus-read-ephemeral-emacs-bug-group): Hook into
+       debbugs mode, if possible.
+
 2011-07-02  Daiki Ueno  <ueno@unixuser.org>
 
        * auth-source.el (auth-source-token-passphrase-callback-function):
index 1a54a27..e249e97 100644 (file)
 (require 'assoc)
 
 (eval-when-compile (require 'cl))
-(eval-and-compile
-  (or (ignore-errors (require 'eieio))
-      ;; gnus-fallback-lib/ from gnus/lisp/gnus-fallback-lib
-      (ignore-errors
-        (let ((load-path (cons (expand-file-name
-                                "gnus-fallback-lib/eieio"
-                                (file-name-directory (locate-library "gnus")))
-                               load-path)))
-          (require 'eieio)))
-      (error
-       "eieio not found in `load-path' or gnus-fallback-lib/ directory.")))
+(require 'eieio)
 
 (autoload 'secrets-create-item "secrets")
 (autoload 'secrets-delete-item "secrets")
index 74b1c70..8338318 100644 (file)
@@ -2437,7 +2437,9 @@ the bug number, and browsing the URL must return mbox output."
                     (cdr (assoc 'emacs gnus-bug-group-download-format-alist))))
   (when (stringp number)
     (setq number (string-to-number number)))
-  (let ((tmpfile (mm-make-temp-file "gnus-temp-group-")))
+  (let ((tmpfile (mm-make-temp-file "gnus-temp-group-"))
+       (coding-system-for-write 'binary)
+       (coding-system-for-read 'binary))
     (with-temp-file tmpfile
       (url-insert-file-contents (format mbox-url number))
       (goto-char (point-min))
@@ -2466,12 +2468,17 @@ the bug number, and browsing the URL must return mbox output."
 
 (defun gnus-read-ephemeral-emacs-bug-group (number &optional window-conf)
   "Browse Emacs bug NUMBER as ephemeral group."
-  (interactive (list (read-string "Enter bug number: "
-                                 (thing-at-point 'word) nil)))
+  (interactive (list (string-to-number
+                     (read-string "Enter bug number: "
+                                  (thing-at-point 'word) nil))))
   (gnus-read-ephemeral-bug-group
    number
    (cdr (assoc 'emacs gnus-bug-group-download-format-alist))
-   window-conf))
+   window-conf)
+  (when (boundp 'debbugs-summary-mode)
+    (with-current-buffer (window-buffer (selected-window))
+      (debbugs-summary-mode 1)
+      (set (make-local-variable 'debbugs-bug-number) number))))
 
 (defun gnus-group-jump-to-group (group &optional prompt)
   "Jump to newsgroup GROUP.
index e8e3a89..98a2684 100644 (file)
@@ -2966,8 +2966,8 @@ with some simple extensions.
             on level one
 %R          \"A\" if this article has been replied to, \" \"
             otherwise (character)
-%U          Status of this article (character, \"R\", \"K\",
-            \"-\" or \" \")
+%U          \"Read\" status of this article.
+            See Info node `(gnus)Read Articles'
 %[          Opening bracket (character, \"[\" or \"<\")
 %]          Closing bracket (character, \"]\" or \">\")
 %>          Spaces of length thread-level (string)
index 0063488..459778b 100644 (file)
@@ -161,6 +161,25 @@ are generated if and only if they are also in `message-draft-headers'.")
      (message-headers-to-generate
       nndraft-required-headers message-draft-headers nil))))
 
+(defun nndraft-update-unread-articles ()
+  "Update groups' unread articles in the group buffer."
+  (nndraft-request-list)
+  (with-current-buffer gnus-group-buffer
+    (let* ((groups (mapcar (lambda (elem)
+                            (gnus-group-prefixed-name (car elem)
+                                                      (list 'nndraft "")))
+                          (nnmail-get-active)))
+          (gnus-group-marked (copy-sequence groups))
+          (inhibit-read-only t))
+      (gnus-group-get-new-news-this-group nil t)
+      (dolist (group groups)
+       (unless (and gnus-permanently-visible-groups
+                    (string-match gnus-permanently-visible-groups
+                                  group))
+         (gnus-group-goto-group group)
+         (when (zerop (gnus-group-group-unread))
+           (gnus-delete-line)))))))
+
 (deffoo nndraft-request-associate-buffer (group)
   "Associate the current buffer with some article in the draft group."
   (nndraft-open-server "")
@@ -182,6 +201,10 @@ are generated if and only if they are also in `message-draft-headers'.")
                  'write-contents-hooks)))
       (gnus-make-local-hook hook)
       (add-hook hook 'nndraft-generate-headers nil t))
+    (gnus-make-local-hook 'after-save-hook)
+    (add-hook 'after-save-hook 'nndraft-update-unread-articles nil t)
+    (message-add-action '(nndraft-update-unread-articles)
+                       'exit 'postpone 'kill)
     article))
 
 (deffoo nndraft-request-group (group &optional server dont-check info)
index 90e11b3..b485ac3 100644 (file)
@@ -306,7 +306,8 @@ Returns the process associated with the connection."
                    (t
                     (or pop3-stream-type 'network)))
             :capability-command "CAPA\r\n"
-            :end-of-command "^\\.\r?\n\\|^\\(-ERR\\|+OK \\).*\n"
+            :end-of-command "^\\(-ERR\\|+OK \\).*\n"
+            :end-of-capability "^\\.\r?\n"
             :success "^\\+OK.*\n"
             :return-list t
             :starttls-function
index bca41c2..dca3df2 100644 (file)
@@ -3281,7 +3281,6 @@ MATCHES is a list of index matches found by `Info-apropos-matches'.")
   "Collect STRING matches from all known Info files on your system.
 Return a list of matches where each element is in the format
 \((FILENAME INDEXTEXT NODENAME LINENUMBER))."
-  (interactive "sIndex apropos: ")
   (unless (string= string "")
     (let ((pattern (format "\n\\* +\\([^\n]*%s[^\n]*\\):[ \t]+\\([^\n]+\\)\\.\\(?:[ \t\n]*(line +\\([0-9]+\\))\\)?"
                           (regexp-quote string)))
index 7f018ab..58af923 100644 (file)
@@ -2226,10 +2226,10 @@ If there is no completion possible, say so and continue searching."
 ;; Searching
 
 (defvar isearch-search-fun-function nil
-  "Override `isearch-search-fun'.
-This function should return the search function for Isearch to use.
-It will call this function with three arguments
-as if it were `search-forward'.")
+  "Overrides the default `isearch-search-fun' behaviour.
+This variable should be a function, which will be called with no
+arguments, and should return a function that takes the same three
+arguments as `isearch-search-string' requires.")
 
 (defun isearch-search-fun ()
   "Return the function to use for the search.
index 934637e..bc9a060 100644 (file)
@@ -1633,22 +1633,21 @@ local gurus."
   ;; no evil.
   (feedmail-say-debug ">in-> feedmail-buffer-to-smtpmail %s" addr-listoid)
   (require 'smtpmail)
-  (if (not (smtpmail-via-smtp addr-listoid prepped))
-      (progn
-       (set-buffer errors-to)
-       (insert "Send via smtpmail failed.  Probable SMTP protocol error.\n")
-       (insert "Look for details below or in the *Messages* buffer.\n\n")
-       (let ((case-fold-search t)
-             ;; don't be overconfident about the name of the trace buffer
-             (tracer (concat "trace.*smtp.*" (regexp-quote smtpmail-smtp-server))))
-         (mapcar
-          (lambda (buffy)
-             (if (string-match tracer (buffer-name buffy))
-                 (progn
-                   (insert "SMTP Trace from " (buffer-name buffy) "\n---------------")
-                   (insert-buffer-substring buffy)
-                   (insert "\n\n"))))
-          (buffer-list))))))
+  (let ((result (smtpmail-via-smtp addr-listoid prepped)))
+    (when result
+      (set-buffer errors-to)
+      (insert "Send via smtpmail failed: %s" result)
+      (let ((case-fold-search t)
+           ;; don't be overconfident about the name of the trace buffer
+           (tracer (concat "trace.*smtp.*" (regexp-quote smtpmail-smtp-server))))
+       (mapcar
+        (lambda (buffy)
+          (if (string-match tracer (buffer-name buffy))
+              (progn
+                (insert "SMTP Trace from " (buffer-name buffy) "\n---------------")
+                (insert-buffer-substring buffy)
+                (insert "\n\n"))))
+        (buffer-list))))))
 
 (declare-function smtp-via-smtp "ext:smtp" (sender recipients smtp-text-buffer))
 (defvar smtp-server)
index a898939..effba41 100644 (file)
@@ -98,6 +98,10 @@ values:
 
 :end-of-command specifies a regexp matching the end of a command.
 
+:end-of-capability specifies a regexp matching the end of the
+  response to the command specified for :capability-command.
+  It defaults to the regexp specified for :end-of-command.
+
 :success specifies a regexp matching a message indicating a
   successful STARTTLS negotiation.  For instance, the default
   should be \"^3\" for an NNTP connection.
@@ -203,11 +207,14 @@ functionality.
         (success-string     (plist-get parameters :success))
         (capability-command (plist-get parameters :capability-command))
         (eoc                (plist-get parameters :end-of-command))
+        (eo-capa            (or (plist-get parameters :end-of-capability)
+                                eoc))
         ;; Return (STREAM GREETING CAPABILITIES RESULTING-TYPE)
         (stream (make-network-process :name name :buffer buffer
                                       :host host :service service))
         (greeting (network-stream-get-response stream start eoc))
-        (capabilities (network-stream-command stream capability-command eoc))
+        (capabilities (network-stream-command stream capability-command
+                                              eo-capa))
         (resulting-type 'plain)
         (builtin-starttls (and (fboundp 'gnutls-available-p)
                                (gnutls-available-p)))
@@ -250,7 +257,7 @@ functionality.
        ;; Requery capabilities for protocols that require it; i.e.,
        ;; EHLO for SMTP.
        (when (plist-get parameters :always-query-capabilities)
-         (network-stream-command stream capability-command eoc)))
+         (network-stream-command stream capability-command eo-capa)))
       (when (string-match success-string
                          (network-stream-command stream starttls-command eoc))
        ;; The server said it was OK to begin STARTTLS negotiations.
@@ -271,7 +278,7 @@ functionality.
            (network-stream-get-response stream start eoc)))
        ;; Re-get the capabilities, which may have now changed.
        (setq capabilities
-             (network-stream-command stream capability-command eoc))))
+             (network-stream-command stream capability-command eo-capa))))
 
     ;; If TLS is mandatory, close the connection if it's unencrypted.
     (when (and (or require-tls
@@ -353,7 +360,9 @@ functionality.
                                    ?p service))))))
     (list stream
          (network-stream-get-response stream start eoc)
-         (network-stream-command stream capability-command eoc)
+         (network-stream-command stream capability-command
+                                 (or (plist-get parameters :end-of-capability)
+                                     eoc))
          'plain)))
 
 (provide 'network-stream)
index 1a23cd1..0b9390a 100644 (file)
@@ -400,15 +400,16 @@ File = \\(.+\\), Line = \\([0-9]+\\)\\(?:, Column = \\([0-9]+\\)\\)?"
      "^# Failed test [0-9]+ in \\([^ \t\r\n]+\\) at line \\([0-9]+\\)"
      1 2)
     (perl--Test2
-     ;; Or when comparing got/want values,
+     ;; Or when comparing got/want values, with a "fail #n" if repeated
      ;; # Test 2 got: "xx" (t-compilation-perl-2.t at line 10)
+     ;; # Test 3 got: "xx" (t-compilation-perl-2.t at line 10 fail #2)
      ;;
      ;; And under Test::Harness they're preceded by progress stuff with
      ;; \r and "NOK",
      ;; ... NOK 1# Test 1 got: "1234" (t/foo.t at line 46)
      ;;
      "^\\(.*NOK.*\\)?# Test [0-9]+ got:.* (\\([^ \t\r\n]+\\) at line \
-\\([0-9]+\\))"
+\\([0-9]+\\)\\( fail #[0-9]+\\)?)"
      2 3)
     (perl--Test::Harness
      ;; perl Test::Harness output, eg.
index 42da7a2..36b137b 100644 (file)
@@ -679,7 +679,7 @@ Server mode runs a process that accepts commands from the
 (defun server-eval-and-print (expr proc)
   "Eval EXPR and send the result back to client PROC."
   (let ((v (eval (car (read-from-string expr)))))
-    (when (and v proc)
+    (when proc
       (with-temp-buffer
         (let ((standard-output (current-buffer)))
           (pp v)
@@ -1200,12 +1200,12 @@ so don't mark these buffers specially, just visit them normally."
          (add-to-history 'file-name-history filen)
          (if (null obuf)
              (progn
-               (run-hooks 'pre-command-hook)  
+               (run-hooks 'pre-command-hook)
                (set-buffer (find-file-noselect filen)))
             (set-buffer obuf)
            ;; separately for each file, in sync with post-command hooks,
            ;; with the new buffer current:
-           (run-hooks 'pre-command-hook)  
+           (run-hooks 'pre-command-hook)
             (cond ((file-exists-p filen)
                    (when (not (verify-visited-file-modtime obuf))
                      (revert-buffer t nil)))
@@ -1219,7 +1219,7 @@ so don't mark these buffers specially, just visit them normally."
           (server-goto-line-column (cdr file))
           (run-hooks 'server-visit-hook)
          ;; hooks may be specific to current buffer:
-         (run-hooks 'post-command-hook)) 
+         (run-hooks 'post-command-hook))
        (unless nowait
          ;; When the buffer is killed, inform the clients.
          (add-hook 'kill-buffer-hook 'server-kill-buffer nil t)
index 12a3e2a..047bba7 100644 (file)
@@ -687,7 +687,7 @@ is the menu entry name, and the cdr of P is the node name."
        (insert (format "%s: %s." (car node-part) (cdr node-part)))))
 
     ;; Insert the description, if present.
-    (when (cdr menu)
+    (when (> (length (cdr menu)) 0)
       ;; Move to right place.
       (indent-to texinfo-column-for-description 2)
       ;; Insert description.
index 2d6960c..d276e64 100644 (file)
@@ -47,7 +47,7 @@
 ;; or set the variable of the same name to `t'.
 
 ;; This program can truly cons up a storm because of all the calls to
-;; `current-time' (which always returns fresh conses).  I'm dismayed by
+;; `current-time' (which always returns fresh conses).  I'm dismayed by
 ;; this, but I think the health of my hands is far more important than a
 ;; few pages of virtual memory.
 
@@ -501,12 +501,9 @@ variable of the same name."
 (defun timep (time)
   "If TIME is in the format returned by `current-time' then
 return TIME, else return nil."
-  (and (listp time)
-       (eq (length time) 3)
-       (integerp (car time))
-       (integerp (nth 1 time))
-       (integerp (nth 2 time))
-       time))
+  (condition-case nil
+      (and (float-time time) time)
+    (error nil)))
 
 (defun type-break-choose-file ()
   "Return file to read from."
@@ -993,12 +990,8 @@ FRAC should be the inverse of the fractional value; for example, a value of
 
 ;; Compute the difference, in seconds, between a and b, two structures
 ;; similar to those returned by `current-time'.
-;; Use addition rather than logand since that is more robust; the low 16
-;; bits of the seconds might have been incremented, making it more than 16
-;; bits wide.
 (defun type-break-time-difference (a b)
-  (+ (lsh (- (car b) (car a)) 16)
-     (- (car (cdr b)) (car (cdr a)))))
+  (round (float-time (time-subtract b a))))
 
 ;; Return (in a new list the same in structure to that returned by
 ;; `current-time') the sum of the arguments.  Each argument may be a time
index 9f7ad1c..f0d9530 100644 (file)
@@ -1,3 +1,13 @@
+2011-07-03  Nicolas Avrutin  <nicolasavru@gmail.com>  (tiny change)
+
+       * url-http.el (url-http-create-request): Remove double carriage
+       return and newline (bug#8931).
+
+2011-07-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * url-http.el (url-http-wait-for-headers-change-function): Remove
+       pointless "HTTP/0.9 How I hate thee!" message (bug#6735).
+
 2011-06-04  Andreas Schwab  <schwab@linux-m68k.org>
 
        * url-future.el (url-future-test): Fix scope of `saver'.
index 28071e7..7e8b0d9 100644 (file)
@@ -338,7 +338,7 @@ request.")
              ;; End request
              "\r\n"
              ;; Any data
-             url-http-data "\r\n"))
+             url-http-data))
            ""))
     (url-http-debug "Request is: \n%s" request)
     request))
@@ -1059,19 +1059,16 @@ the end of the document."
          ;; Haven't seen the end of the headers yet, need to wait
          ;; for more data to arrive.
          nil
-       (if old-http
-           (message "HTTP/0.9 How I hate thee!")
-         (progn
-           (url-http-parse-response)
-           (mail-narrow-to-head)
-           ;;(narrow-to-region (point-min) url-http-end-of-headers)
-           (setq url-http-transfer-encoding (mail-fetch-field
-                                             "transfer-encoding")
-                 url-http-content-type (mail-fetch-field "content-type"))
-           (if (mail-fetch-field "content-length")
-               (setq url-http-content-length
-                     (string-to-number (mail-fetch-field "content-length"))))
-           (widen)))
+       (unless old-http
+         (url-http-parse-response)
+         (mail-narrow-to-head)
+         (setq url-http-transfer-encoding (mail-fetch-field
+                                           "transfer-encoding")
+               url-http-content-type (mail-fetch-field "content-type"))
+         (if (mail-fetch-field "content-length")
+             (setq url-http-content-length
+                   (string-to-number (mail-fetch-field "content-length"))))
+         (widen))
        (when url-http-transfer-encoding
          (setq url-http-transfer-encoding
                (downcase url-http-transfer-encoding)))
index d77a246..f861e8e 100644 (file)
@@ -1,3 +1,27 @@
+2011-07-04  Juanma Barranquero  <lekktu@gmail.com>
+
+       * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
+       (syms_of_gnutls): Remove duplicate DEFSYM for
+       Qgnutls_bootprop_verify_hostname_error, an error for
+       Qgnutls_bootprop_verify_error (which is no longer used).
+
+       * eval.c (find_handler_clause): Remove parameters `sig' and `data',
+       unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca.  All callers changed.
+       Also (re)move comments that are misplaced or no longer relevant.
+
+2011-07-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
+
+2011-07-03  Chong Yidong  <cyd@stupidchicken.com>
+
+       * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
+       and background color parameters if they have been changed.
+
+2011-07-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
+
 2011-07-03  Paul Eggert  <eggert@cs.ucla.edu>
 
        * xsettings.c (SYSTEM_FONT): Define only when used.
index 4d0a2a0..1371b40 100644 (file)
@@ -105,9 +105,10 @@ Z -- Coding system, nil if no prefix arg.
 
 In addition, if the string begins with `*', an error is signaled if
   the buffer is read-only.
-If the string begins with `@', Emacs searches the key sequence which
- invoked the command for its first mouse click (or any other event
- which specifies a window).
+If `@' appears at the beginning of the string, and if the key sequence
+ used to invoke the command includes any mouse events, then the window
+ associated with the first of those events is selected before the
+ command is run.
 If the string begins with `^' and `shift-select-mode' is non-nil,
  Emacs first calls the function `handle-shift-selection'.
 You may use `@', `*', and `^' together.  They are processed in the
index 5328b71..c470c9b 100644 (file)
@@ -3557,7 +3557,8 @@ The width specifier supplies a lower limit for the length of the
 printed representation.  The padding, if any, normally goes on the
 left, but it goes on the right if the - flag is present.  The padding
 character is normally a space, but it is 0 if the 0 flag is present.
-The - flag takes precedence over the 0 flag.
+The 0 flag is ignored if the - flag is present, or the format sequence
+is something other than %d, %e, %f, and %g.
 
 For %e, %f, and %g sequences, the number after the "." in the
 precision specifier says how many decimal places to show; if zero, the
index cb8b4f3..e8a3f94 100644 (file)
@@ -1640,8 +1640,7 @@ internal_condition_case_n (Lisp_Object (*bfun) (ptrdiff_t, Lisp_Object *),
 }
 
 \f
-static Lisp_Object find_handler_clause (Lisp_Object, Lisp_Object,
-                                       Lisp_Object, Lisp_Object);
+static Lisp_Object find_handler_clause (Lisp_Object, Lisp_Object);
 static int maybe_call_debugger (Lisp_Object conditions, Lisp_Object sig,
                                Lisp_Object data);
 
@@ -1717,8 +1716,7 @@ See also the function `condition-case'.  */)
 
   for (h = handlerlist; h; h = h->next)
     {
-      clause = find_handler_clause (h->handler, conditions,
-                                   error_symbol, data);
+      clause = find_handler_clause (h->handler, conditions);
       if (!NILP (clause))
        break;
     }
@@ -1889,8 +1887,10 @@ skip_debugger (Lisp_Object conditions, Lisp_Object data)
 }
 
 /* Call the debugger if calling it is currently enabled for CONDITIONS.
-   SIG and DATA describe the signal, as in find_handler_clause.  */
-
+   SIG and DATA describe the signal.  There are two ways to pass them:
+    = SIG is the error symbol, and DATA is the rest of the data.
+    = SIG is nil, and DATA is (SYMBOL . REST-OF-DATA).
+      This is for memory-full errors only.  */
 static int
 maybe_call_debugger (Lisp_Object conditions, Lisp_Object sig, Lisp_Object data)
 {
@@ -1917,19 +1917,8 @@ maybe_call_debugger (Lisp_Object conditions, Lisp_Object sig, Lisp_Object data)
   return 0;
 }
 
-/* Value of Qlambda means we have called debugger and user has continued.
-   There are two ways to pass SIG and DATA:
-    = SIG is the error symbol, and DATA is the rest of the data.
-    = SIG is nil, and DATA is (SYMBOL . REST-OF-DATA).
-       This is for memory-full errors only.
-
-   We need to increase max_specpdl_size temporarily around
-   anything we do that can push on the specpdl, so as not to get
-   a second error here in case we're handling specpdl overflow.  */
-
 static Lisp_Object
-find_handler_clause (Lisp_Object handlers, Lisp_Object conditions,
-                    Lisp_Object sig, Lisp_Object data)
+find_handler_clause (Lisp_Object handlers, Lisp_Object conditions)
 {
   register Lisp_Object h;
 
index 2a055ac..55c7ff0 100644 (file)
@@ -638,9 +638,6 @@ certificates for `gnutls-x509pki'.
 :verify-flags is a bitset as per GnuTLS'
 gnutls_certificate_set_verify_flags.
 
-:verify-error, if non-nil, makes failure of the certificate validation
-an error.  Otherwise it will be just a series of warnings.
-
 :verify-hostname-error, if non-nil, makes a hostname mismatch an
 error.  Otherwise it will be just a warning.
 
@@ -1100,36 +1097,35 @@ syms_of_gnutls (void)
 {
   gnutls_global_initialized = 0;
 
-  DEFSYM(Qgnutls_dll, "gnutls");
-  DEFSYM(Qgnutls_log_level, "gnutls-log-level");
-  DEFSYM(Qgnutls_code, "gnutls-code");
-  DEFSYM(Qgnutls_anon, "gnutls-anon");
-  DEFSYM(Qgnutls_x509pki, "gnutls-x509pki");
-  DEFSYM(Qgnutls_bootprop_hostname, ":hostname");
-  DEFSYM(Qgnutls_bootprop_priority, ":priority");
-  DEFSYM(Qgnutls_bootprop_trustfiles, ":trustfiles");
-  DEFSYM(Qgnutls_bootprop_keylist, ":keylist");
-  DEFSYM(Qgnutls_bootprop_crlfiles, ":crlfiles");
-  DEFSYM(Qgnutls_bootprop_callbacks, ":callbacks");
-  DEFSYM(Qgnutls_bootprop_callbacks_verify, "verify");
-  DEFSYM(Qgnutls_bootprop_loglevel, ":loglevel");
-  DEFSYM(Qgnutls_bootprop_verify_flags, ":verify-flags");
-  DEFSYM(Qgnutls_bootprop_verify_hostname_error, ":verify-error");
-  DEFSYM(Qgnutls_bootprop_verify_hostname_error, ":verify-hostname-error");
-
-  DEFSYM(Qgnutls_e_interrupted, "gnutls-e-interrupted");
+  DEFSYM (Qgnutls_dll, "gnutls");
+  DEFSYM (Qgnutls_log_level, "gnutls-log-level");
+  DEFSYM (Qgnutls_code, "gnutls-code");
+  DEFSYM (Qgnutls_anon, "gnutls-anon");
+  DEFSYM (Qgnutls_x509pki, "gnutls-x509pki");
+  DEFSYM (Qgnutls_bootprop_hostname, ":hostname");
+  DEFSYM (Qgnutls_bootprop_priority, ":priority");
+  DEFSYM (Qgnutls_bootprop_trustfiles, ":trustfiles");
+  DEFSYM (Qgnutls_bootprop_keylist, ":keylist");
+  DEFSYM (Qgnutls_bootprop_crlfiles, ":crlfiles");
+  DEFSYM (Qgnutls_bootprop_callbacks, ":callbacks");
+  DEFSYM (Qgnutls_bootprop_callbacks_verify, "verify");
+  DEFSYM (Qgnutls_bootprop_loglevel, ":loglevel");
+  DEFSYM (Qgnutls_bootprop_verify_flags, ":verify-flags");
+  DEFSYM (Qgnutls_bootprop_verify_hostname_error, ":verify-hostname-error");
+
+  DEFSYM (Qgnutls_e_interrupted, "gnutls-e-interrupted");
   Fput (Qgnutls_e_interrupted, Qgnutls_code,
         make_number (GNUTLS_E_INTERRUPTED));
 
-  DEFSYM(Qgnutls_e_again, "gnutls-e-again");
+  DEFSYM (Qgnutls_e_again, "gnutls-e-again");
   Fput (Qgnutls_e_again, Qgnutls_code,
         make_number (GNUTLS_E_AGAIN));
 
-  DEFSYM(Qgnutls_e_invalid_session, "gnutls-e-invalid-session");
+  DEFSYM (Qgnutls_e_invalid_session, "gnutls-e-invalid-session");
   Fput (Qgnutls_e_invalid_session, Qgnutls_code,
         make_number (GNUTLS_E_INVALID_SESSION));
 
-  DEFSYM(Qgnutls_e_not_ready_for_handshake, "gnutls-e-not-ready-for-handshake");
+  DEFSYM (Qgnutls_e_not_ready_for_handshake, "gnutls-e-not-ready-for-handshake");
   Fput (Qgnutls_e_not_ready_for_handshake, Qgnutls_code,
         make_number (GNUTLS_E_APPLICATION_ERROR_MIN));
 
index 4f06bd3..91f4b13 100644 (file)
@@ -3813,6 +3813,18 @@ Default face attributes override any local face attributes.  */)
              Fmodify_frame_parameters (frame, Fcons (Fcons (Qfont, name),
                                                      Qnil));
            }
+
+         if (STRINGP (gvec[LFACE_FOREGROUND_INDEX]))
+           Fmodify_frame_parameters (frame,
+                                     Fcons (Fcons (Qforeground_color,
+                                                   gvec[LFACE_FOREGROUND_INDEX]),
+                                            Qnil));
+
+         if (STRINGP (gvec[LFACE_BACKGROUND_INDEX]))
+           Fmodify_frame_parameters (frame,
+                                     Fcons (Fcons (Qbackground_color,
+                                                   gvec[LFACE_BACKGROUND_INDEX]),
+                                            Qnil));
        }
     }