]> code.delx.au - gnu-emacs/commitdiff
Merge from emacs--rel--22
authorMiles Bader <miles@gnu.org>
Tue, 21 Aug 2007 04:51:30 +0000 (04:51 +0000)
committerMiles Bader <miles@gnu.org>
Tue, 21 Aug 2007 04:51:30 +0000 (04:51 +0000)
Patches applied:

 * emacs--rel--22  (patch 93-96)

   - Update from CVS
   - Merge from gnus--rel--5.10

 * gnus--rel--5.10  (patch 245)

   - Update from CVS

Revision: emacs@sv.gnu.org/emacs--devo--0--patch-856

13 files changed:
1  2 
admin/FOR-RELEASE
etc/ChangeLog
lisp/ChangeLog
lisp/emacs-lisp/cl-macs.el
lisp/gnus/ChangeLog
lisp/gnus/gnus-agent.el
lisp/gnus/gnus-art.el
lisp/gnus/gnus-sum.el
lisp/gnus/gnus.el
lisp/vc-bzr.el
man/ChangeLog
man/gnus.texi
nt/ChangeLog

index 4614fc63d4732b7244a4c9b35fbf87af4aeef5dd,b6f8d38ca1fc4849515142cfab1075e6e83f1b07..c1ad49587b7c8719933aee7dd76f9690ac49dbd9
@@@ -40,10 -36,12 +40,16 @@@ to the hack introduced on 2005-07-01 t
  
  * BUGS
  
 +NB the definitive copy of this file for Emacs 22 is on the
 +EMACS_22_BASE branch.  Any entries below are automatically copied from
 +that branch.  Do not make manual changes to this file on the trunk.
 +
+ ** ams@gnu.org, 9 July: eshell and external commands
+ http://lists.gnu.org/archive/html/emacs-devel/2007-08/msg00385.html
+ ** Check all non-file-scope static vars to make sure they
+ won't lose on USG or HPUX systems.
  * FIXES FOR EMACS 22.3
  
  Here we list small fixes that arrived too late for Emacs 22.2, but
diff --cc etc/ChangeLog
Simple merge
diff --cc lisp/ChangeLog
index 045d486b097192885ed6e901a649fa706cadd367,eefd54257a439c74658bd000b60a34cf1d390c9f..028fe5d2db583c641e7e4342f8e86318bed07383
@@@ -1,13 -1,3 +1,35 @@@
++2007-08-20  Stefan Monnier  <monnier@iro.umontreal.ca>
++
++      * smerge-mode.el (smerge-resolve): New arg `safe'.
++      (smerge-resolve-all, smerge-batch-resolve): New function.
++      (smerge-refine): Make sure `diff' returns the expected result.
++      (smerge-parsep-re): New const.
++      (smerge-mode): Use it to adjust paragraph-separate.
++
++      * progmodes/perl-mode.el (perl-font-lock-syntactic-keywords):
++      Correctly match / regexp matchers as first char on a line when
++      fontifying only that line.
++
++      * emacs-lisp/cl-macs.el (cl-transform-lambda): Preserve the match-data.
++
++2007-08-20  Stefan Monnier  <monnier@iro.umontreal.ca>
++
++      * vc-bzr.el: Don't fiddle with vc-handled-backend.
++      (vc-bzr-registered): Don't redundantly protect against
++      file-error.  Actually use the format-specific code.
++      (vc-bzr-buffer-nonblank-p): Remove.
++      (vc-bzr-status): Change `kindchange' -> `kindchanged'.
++
 +2007-08-20  Juri Linkov  <juri@jurta.org>
 +
 +      * startup.el (fancy-splash-text): Change multiple tabs into one
 +      tab.  Remove "Useful File menu items" section (with "Exit Emacs"
 +      and "Recover Crashed Session").
 +      (fancy-splash-screens): Set tab-width to 22.
 +      (normal-splash-screen): Replace literal tabs with \t and
 +      fix whitespace.  Remove "Useful File menu items" section (with
 +      "Exit Emacs" and "Recover Crashed Session").
 +
  2007-08-20  Johannes Weiner  <hannes@saeurebad.de>  (tiny change)
  
        * emacs-lisp/lisp-mode.el (preceding-sexp): New fun, the code was
Simple merge
index 7fd187a4aeb7580e88a2146288f4368c1bcdce1d,7fd187a4aeb7580e88a2146288f4368c1bcdce1d..201b7fefdcb0d56d1fbf85b6b8a898c64f01f380
@@@ -1,3 -1,3 +1,19 @@@
++2007-08-17  Katsumi Yamaoka  <yamaoka@jpl.org>
++
++      * gnus-art.el (gnus-article-summary-command-nosave)
++      (gnus-article-read-summary-keys): Don't use 3rd arg of pop-to-buffer.
++
++2007-08-14  Katsumi Yamaoka  <yamaoka@jpl.org>
++
++      * gnus.el (gnus-maximum-newsgroup): New variable.
++
++      * gnus-agent.el (gnus-agent-fetch-headers): Limit the range of articles
++      according to gnus-maximum-newsgroup.
++
++      * gnus-sum.el (gnus-articles-to-read, gnus-list-of-unread-articles)
++      (gnus-list-of-read-articles, gnus-sequence-of-unread-articles): Limit
++      the range of articles according to gnus-maximum-newsgroup.
++
  2007-08-10  Katsumi Yamaoka  <yamaoka@jpl.org>
  
        * nntp.el (nntp-xref-number-is-evil): New server variable.
index 7b98b1e045ad3461fdc6baa8fb1e38f019cfcdb3,7b98b1e045ad3461fdc6baa8fb1e38f019cfcdb3..347b57983e65ec3e1190bb7e42aec82a8da52aa2
@@@ -1765,7 -1765,7 +1765,14 @@@ article numbers will be returned.
                                 (gnus-agent-find-parameter group
                                                            'agent-predicate)))))
           (articles (if fetch-all
--                       (gnus-uncompress-range (gnus-active group))
++                     (if gnus-maximum-newsgroup
++                         (let ((active (gnus-active group)))
++                           (gnus-uncompress-range
++                            (cons (max (car active)
++                                       (- (cdr active)
++                                          gnus-maximum-newsgroup -1))
++                                  (cdr active))))
++                       (gnus-uncompress-range (gnus-active group)))
                       (gnus-list-of-unread-articles group)))
           (gnus-decode-encoded-word-function 'identity)
         (gnus-decode-encoded-address-function 'identity)
index 6ccba3b108f3271f09cc34ca44f22395ee30e08b,6ccba3b108f3271f09cc34ca44f22395ee30e08b..696222e0043bf9461127c6fa0ac4fa3a7362d240
@@@ -5607,7 -5607,7 +5607,7 @@@ not have a face in `gnus-article-boring
    "Execute the last keystroke in the summary buffer."
    (interactive)
    (let (func)
--    (pop-to-buffer gnus-article-current-summary nil (not (featurep 'xemacs)))
++    (pop-to-buffer gnus-article-current-summary)
      (setq func (lookup-key (current-local-map) (this-command-keys)))
      (call-interactively func)))
  
            (member keys nosave-in-article))
        (let (func)
          (save-window-excursion
--          (pop-to-buffer gnus-article-current-summary
--                         nil (not (featurep 'xemacs)))
++          (pop-to-buffer gnus-article-current-summary)
            ;; We disable the pick minor mode commands.
            (let (gnus-pick-mode)
              (setq func (lookup-key (current-local-map) keys))))
            (call-interactively func)
            (setq new-sum-point (point)))
          (when (member keys nosave-but-article)
--          (pop-to-buffer gnus-article-buffer
--                         nil (not (featurep 'xemacs)))))
++          (pop-to-buffer gnus-article-buffer)))
        ;; These commands should restore window configuration.
        (let ((obuf (current-buffer))
            (owin (current-window-configuration))
            (opoint (point))
            win func in-buffer selected new-sum-start new-sum-hscroll)
        (cond (not-restore-window
--             (pop-to-buffer gnus-article-current-summary
--                            nil (not (featurep 'xemacs))))
++             (pop-to-buffer gnus-article-current-summary))
              ((setq win (get-buffer-window gnus-article-current-summary))
               (select-window win))
              (t
index 708689fef9e9ef875bfe2b72c7af14c3f1f73899,708689fef9e9ef875bfe2b72c7af14c3f1f73899..851ec88c96f1f4d191ac5ff1e335d3466250a035
@@@ -5472,7 -5472,7 +5472,13 @@@ If SELECT-ARTICLES, only select those a
              ;; articles in the group, or (if that's nil), the
              ;; articles in the cache.
              (or
--             (gnus-uncompress-range (gnus-active group))
++             (if gnus-maximum-newsgroup
++                 (let ((active (gnus-active group)))
++                   (gnus-uncompress-range
++                    (cons (max (car active)
++                               (- (cdr active) gnus-maximum-newsgroup -1))
++                          (cdr active))))
++               (gnus-uncompress-range (gnus-active group)))
               (gnus-cache-articles-in-group group))
            ;; Select only the "normal" subset of articles.
            (gnus-sorted-nunion
@@@ -6534,23 -6534,23 +6540,26 @@@ displayed, no centering will be perform
    (let* ((read (gnus-info-read (gnus-get-info group)))
         (active (or (gnus-active group) (gnus-activate-group group)))
         (last (cdr active))
++       (bottom (if gnus-maximum-newsgroup
++                   (max (car active) (- last gnus-maximum-newsgroup -1))
++                 (car active)))
         first nlast unread)
      ;; If none are read, then all are unread.
      (if (not read)
--      (setq first (car active))
++      (setq first bottom)
        ;; If the range of read articles is a single range, then the
        ;; first unread article is the article after the last read
        ;; article.  Sounds logical, doesn't it?
        (if (and (not (listp (cdr read)))
--             (or (< (car read) (car active))
++             (or (< (car read) bottom)
                   (progn (setq read (list read))
                          nil)))
--        (setq first (max (car active) (1+ (cdr read))))
++        (setq first (max bottom (1+ (cdr read))))
        ;; `read' is a list of ranges.
        (when (/= (setq nlast (or (and (numberp (car read)) (car read))
                                  (caar read)))
                  1)
--        (setq first (car active)))
++        (setq first bottom))
        (while read
          (when first
            (while (< first nlast)
         (gnus-list-range-difference
          (gnus-list-range-difference
           (gnus-sorted-complement
--          (gnus-uncompress-range active)
++          (gnus-uncompress-range
++           (if gnus-maximum-newsgroup
++               (cons (max (car active)
++                          (- (cdr active) gnus-maximum-newsgroup -1))
++                     (cdr active))
++             active))
            (gnus-list-of-unread-articles group))
           (cdr (assq 'dormant marked)))
          (cdr (assq 'tick marked))))))
    (let* ((read (gnus-info-read (gnus-get-info group)))
         (active (or (gnus-active group) (gnus-activate-group group)))
         (last (cdr active))
++       (bottom (if gnus-maximum-newsgroup
++                   (max (car active) (- last gnus-maximum-newsgroup -1))
++                 (car active)))
         first nlast unread)
      ;; If none are read, then all are unread.
      (if (not read)
--      (setq first (car active))
++      (setq first bottom)
        ;; If the range of read articles is a single range, then the
        ;; first unread article is the article after the last read
        ;; article.  Sounds logical, doesn't it?
        (if (and (not (listp (cdr read)))
--             (or (< (car read) (car active))
++             (or (< (car read) bottom)
                   (progn (setq read (list read))
                          nil)))
--        (setq first (max (car active) (1+ (cdr read))))
++        (setq first (max bottom (1+ (cdr read))))
        ;; `read' is a list of ranges.
        (when (/= (setq nlast (or (and (numberp (car read)) (car read))
                                  (caar read)))
                  1)
--        (setq first (car active)))
++        (setq first bottom))
        (while read
          (when first
              (push (cons first nlast) unread))
index 0e8e9908cf4f80d2eb31f8d4605fb4f0023ea648,0e8e9908cf4f80d2eb31f8d4605fb4f0023ea648..3f75bba6d1ccd610614a0ce36c995cd25af239a4
@@@ -1501,6 -1501,6 +1501,17 @@@ If it is nil, no confirmation is requir
    :type '(choice (const :tag "No limit" nil)
                 integer))
  
++(defcustom gnus-maximum-newsgroup nil
++  "The maximum number of articles a newsgroup.
++If this is a number, old articles in a newsgroup exceeding this number
++are silently ignored.  If it is nil, no article is ignored.  Note that
++setting this variable to a number might prevent you from reading very
++old articles."
++  :group 'gnus-group-select
++  :version "22.2"
++  :type '(choice (const :tag "No limit" nil)
++               integer))
++
  (defcustom gnus-use-long-file-name (not (memq system-type '(usg-unix-v xenix)))
    "*Non-nil means that the default name of a file to save articles in is the group name.
  If it's nil, the directory form of the group name is used instead.
diff --cc lisp/vc-bzr.el
Simple merge
diff --cc man/ChangeLog
index 911c68e9cbcf3879b80f9c2532b348d2570dfa8e,6c27e3b7bb0a34414639140f77eaec3bcba8760f..7438fbad338eb7839df97ba841861eb204628ad9
@@@ -3,23 -3,6 +3,27 @@@
        * basic.texi (Position Info): Add index entry for face at point.
        Mention that character faces are also displayed by "C-u C-x =".
  
 +2007-08-17  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc.texi: Move contents to beginning of file.
 +      (Algebraic Entry): Fix the formatting of an example.
 +
 +2007-08-15  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc.texi (Basic Operations on Units): Mention exact versus
 +      inexact conversions.
 +
 +2007-08-14  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc.texi (Basic Operations on Units): Mention default
 +      values for new units.
 +      (Quick Calculator Mode): Mention that binary format will
 +      be displayed.
 +
++2007-08-14  Katsumi Yamaoka  <yamaoka@jpl.org>
++
++      * gnus.texi (Selecting a Group): Mention gnus-maximum-newsgroup.
++
  2007-08-10  Katsumi Yamaoka  <yamaoka@jpl.org>
  
        * gnus.texi (NNTP): Mention nntp-xref-number-is-evil.
diff --cc man/gnus.texi
index 94144b65e3f75555a6865a9b8d258b5b2e506f09,94144b65e3f75555a6865a9b8d258b5b2e506f09..7cabf6741029119ba607e12fa370be7476318bcb
@@@ -2153,6 -2153,6 +2153,24 @@@ most recently will be fetched
  @code{gnus-large-newsgroup}, but is only used for ephemeral
  newsgroups.
  
++@vindex gnus-maximum-newsgroup
++In groups in some news servers, there might be a big gap between a few
++very old articles that will never be expired and the recent ones.  In
++such a case, the server will return the data like @code{(1 . 30000000)}
++for the @code{LIST ACTIVE group} command, for example.  Even if there
++are actually only the articles 1-10 and 29999900-30000000, Gnus doesn't
++know it at first and prepares for getting 30000000 articles.  However,
++it will consume hundreds megabytes of memories and might make Emacs get
++stuck as the case may be.  If you use such news servers, set the
++variable @code{gnus-maximum-newsgroup} to a positive number.  The value
++means that Gnus ignores articles other than this number of the latest
++ones in every group.  For instance, the value 10000 makes Gnus get only
++the articles 29990001-30000000 (if the latest article number is 30000000
++in a group).  Note that setting this variable to a number might prevent
++you from reading very old articles.  The default value of the variable
++@code{gnus-maximum-newsgroup} is @code{nil}, which means Gnus never
++ignores old articles.
++
  @vindex gnus-select-group-hook
  @vindex gnus-auto-select-first
  @vindex gnus-auto-select-subject
diff --cc nt/ChangeLog
Simple merge