diff options
| author | Miles Bader | 2007-08-21 04:51:30 +0000 |
|---|---|---|
| committer | Miles Bader | 2007-08-21 04:51:30 +0000 |
| commit | bdaf8a62d53cf8d5a0dc4f0dc530ecd6fc1f44fe (patch) | |
| tree | 083bb8dc3faa311402bb8e86a67a4b9aeb207592 | |
| parent | cb3fe75728ff4703c11aeb61c079a97da11ec637 (diff) | |
| parent | 30a718e6b77f4f0c422f748dd14ea772b7fa2a1a (diff) | |
| download | emacs-bdaf8a62d53cf8d5a0dc4f0dc530ecd6fc1f44fe.tar.gz emacs-bdaf8a62d53cf8d5a0dc4f0dc530ecd6fc1f44fe.zip | |
Merge from emacs--rel--22
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
| -rw-r--r-- | admin/FOR-RELEASE | 11 | ||||
| -rw-r--r-- | etc/ChangeLog | 4 | ||||
| -rw-r--r-- | lisp/ChangeLog | 22 | ||||
| -rw-r--r-- | lisp/emacs-lisp/cl-macs.el | 22 | ||||
| -rw-r--r-- | lisp/gnus/ChangeLog | 16 | ||||
| -rw-r--r-- | lisp/gnus/gnus-agent.el | 9 | ||||
| -rw-r--r-- | lisp/gnus/gnus-art.el | 11 | ||||
| -rw-r--r-- | lisp/gnus/gnus-sum.el | 37 | ||||
| -rw-r--r-- | lisp/gnus/gnus.el | 11 | ||||
| -rw-r--r-- | lisp/progmodes/gdb-ui.el | 6 | ||||
| -rw-r--r-- | lisp/progmodes/perl-mode.el | 12 | ||||
| -rw-r--r-- | lisp/smerge-mode.el | 51 | ||||
| -rw-r--r-- | lisp/vc-bzr.el | 173 | ||||
| -rw-r--r-- | man/ChangeLog | 4 | ||||
| -rw-r--r-- | man/gnus.texi | 18 | ||||
| -rw-r--r-- | nt/ChangeLog | 4 | ||||
| -rw-r--r-- | nt/makefile.w32-in | 1 |
17 files changed, 274 insertions, 138 deletions
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index 4614fc63d47..c1ad49587b7 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE | |||
| @@ -44,11 +44,22 @@ NB the definitive copy of this file for Emacs 22 is on the | |||
| 44 | EMACS_22_BASE branch. Any entries below are automatically copied from | 44 | EMACS_22_BASE branch. Any entries below are automatically copied from |
| 45 | that branch. Do not make manual changes to this file on the trunk. | 45 | that branch. Do not make manual changes to this file on the trunk. |
| 46 | 46 | ||
| 47 | ** ams@gnu.org, 9 July: eshell and external commands | ||
| 48 | http://lists.gnu.org/archive/html/emacs-devel/2007-08/msg00385.html | ||
| 49 | |||
| 50 | ** Check all non-file-scope static vars to make sure they | ||
| 51 | won't lose on USG or HPUX systems. | ||
| 52 | |||
| 47 | * FIXES FOR EMACS 22.3 | 53 | * FIXES FOR EMACS 22.3 |
| 48 | 54 | ||
| 49 | Here we list small fixes that arrived too late for Emacs 22.2, but | 55 | Here we list small fixes that arrived too late for Emacs 22.2, but |
| 50 | that should be installed on the release branch after 22.2 is released. | 56 | that should be installed on the release branch after 22.2 is released. |
| 51 | 57 | ||
| 58 | ** bojohan+news@dd.chalmers.se, 1 Aug: n_schumacher@web.de: modification hooks called only once in | ||
| 59 | Fix is on the trunk: 2007-08-13 change to insdel.c by Stefan Monnier. | ||
| 60 | http://lists.gnu.org/archive/html/emacs-devel/2007-08/msg00457.html | ||
| 61 | |||
| 62 | |||
| 52 | * DOCUMENTATION | 63 | * DOCUMENTATION |
| 53 | 64 | ||
| 54 | ** Check the Emacs Tutorial. | 65 | ** Check the Emacs Tutorial. |
diff --git a/etc/ChangeLog b/etc/ChangeLog index 9fd1a50736c..2a09fa9c369 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2007-08-14 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * NEWS: Mention `bad-packages-alist'. | ||
| 4 | |||
| 1 | 2007-08-08 Glenn Morris <rgm@gnu.org> | 5 | 2007-08-08 Glenn Morris <rgm@gnu.org> |
| 2 | 6 | ||
| 3 | * TODO: `iff' item is dealt with. | 7 | * TODO: `iff' item is dealt with. |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 045d486b097..028fe5d2db5 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,25 @@ | |||
| 1 | 2007-08-20 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * smerge-mode.el (smerge-resolve): New arg `safe'. | ||
| 4 | (smerge-resolve-all, smerge-batch-resolve): New function. | ||
| 5 | (smerge-refine): Make sure `diff' returns the expected result. | ||
| 6 | (smerge-parsep-re): New const. | ||
| 7 | (smerge-mode): Use it to adjust paragraph-separate. | ||
| 8 | |||
| 9 | * progmodes/perl-mode.el (perl-font-lock-syntactic-keywords): | ||
| 10 | Correctly match / regexp matchers as first char on a line when | ||
| 11 | fontifying only that line. | ||
| 12 | |||
| 13 | * emacs-lisp/cl-macs.el (cl-transform-lambda): Preserve the match-data. | ||
| 14 | |||
| 15 | 2007-08-20 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 16 | |||
| 17 | * vc-bzr.el: Don't fiddle with vc-handled-backend. | ||
| 18 | (vc-bzr-registered): Don't redundantly protect against | ||
| 19 | file-error. Actually use the format-specific code. | ||
| 20 | (vc-bzr-buffer-nonblank-p): Remove. | ||
| 21 | (vc-bzr-status): Change `kindchange' -> `kindchanged'. | ||
| 22 | |||
| 1 | 2007-08-20 Juri Linkov <juri@jurta.org> | 23 | 2007-08-20 Juri Linkov <juri@jurta.org> |
| 2 | 24 | ||
| 3 | * startup.el (fancy-splash-text): Change multiple tabs into one | 25 | * startup.el (fancy-splash-text): Change multiple tabs into one |
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index a1264940d41..2a4b69d2afc 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el | |||
| @@ -272,15 +272,19 @@ its argument list allows full Common Lisp conventions." | |||
| 272 | (nconc (nreverse simple-args) | 272 | (nconc (nreverse simple-args) |
| 273 | (list '&rest (car (pop bind-lets)))) | 273 | (list '&rest (car (pop bind-lets)))) |
| 274 | (nconc (let ((hdr (nreverse header))) | 274 | (nconc (let ((hdr (nreverse header))) |
| 275 | (require 'help-fns) | 275 | ;; Macro expansion can take place in the middle of |
| 276 | (cons (help-add-fundoc-usage | 276 | ;; apparently harmless computation, so it should not |
| 277 | (if (stringp (car hdr)) (pop hdr)) | 277 | ;; touch the match-data. |
| 278 | ;; orig-args can contain &cl-defs (an internal CL | 278 | (save-match-data |
| 279 | ;; thingy that I do not understand), so remove it. | 279 | (require 'help-fns) |
| 280 | (let ((x (memq '&cl-defs orig-args))) | 280 | (cons (help-add-fundoc-usage |
| 281 | (if (null x) orig-args | 281 | (if (stringp (car hdr)) (pop hdr)) |
| 282 | (delq (car x) (remq (cadr x) orig-args))))) | 282 | ;; orig-args can contain &cl-defs (an internal |
| 283 | hdr)) | 283 | ;; CL thingy I don't understand), so remove it. |
| 284 | (let ((x (memq '&cl-defs orig-args))) | ||
| 285 | (if (null x) orig-args | ||
| 286 | (delq (car x) (remq (cadr x) orig-args))))) | ||
| 287 | hdr))) | ||
| 284 | (list (nconc (list 'let* bind-lets) | 288 | (list (nconc (list 'let* bind-lets) |
| 285 | (nreverse bind-forms) body))))))) | 289 | (nreverse bind-forms) body))))))) |
| 286 | 290 | ||
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 7fd187a4aeb..201b7fefdcb 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,19 @@ | |||
| 1 | 2007-08-17 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 2 | |||
| 3 | * gnus-art.el (gnus-article-summary-command-nosave) | ||
| 4 | (gnus-article-read-summary-keys): Don't use 3rd arg of pop-to-buffer. | ||
| 5 | |||
| 6 | 2007-08-14 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 7 | |||
| 8 | * gnus.el (gnus-maximum-newsgroup): New variable. | ||
| 9 | |||
| 10 | * gnus-agent.el (gnus-agent-fetch-headers): Limit the range of articles | ||
| 11 | according to gnus-maximum-newsgroup. | ||
| 12 | |||
| 13 | * gnus-sum.el (gnus-articles-to-read, gnus-list-of-unread-articles) | ||
| 14 | (gnus-list-of-read-articles, gnus-sequence-of-unread-articles): Limit | ||
| 15 | the range of articles according to gnus-maximum-newsgroup. | ||
| 16 | |||
| 1 | 2007-08-10 Katsumi Yamaoka <yamaoka@jpl.org> | 17 | 2007-08-10 Katsumi Yamaoka <yamaoka@jpl.org> |
| 2 | 18 | ||
| 3 | * nntp.el (nntp-xref-number-is-evil): New server variable. | 19 | * nntp.el (nntp-xref-number-is-evil): New server variable. |
diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el index 7b98b1e045a..347b57983e6 100644 --- a/lisp/gnus/gnus-agent.el +++ b/lisp/gnus/gnus-agent.el | |||
| @@ -1765,7 +1765,14 @@ article numbers will be returned." | |||
| 1765 | (gnus-agent-find-parameter group | 1765 | (gnus-agent-find-parameter group |
| 1766 | 'agent-predicate))))) | 1766 | 'agent-predicate))))) |
| 1767 | (articles (if fetch-all | 1767 | (articles (if fetch-all |
| 1768 | (gnus-uncompress-range (gnus-active group)) | 1768 | (if gnus-maximum-newsgroup |
| 1769 | (let ((active (gnus-active group))) | ||
| 1770 | (gnus-uncompress-range | ||
| 1771 | (cons (max (car active) | ||
| 1772 | (- (cdr active) | ||
| 1773 | gnus-maximum-newsgroup -1)) | ||
| 1774 | (cdr active)))) | ||
| 1775 | (gnus-uncompress-range (gnus-active group))) | ||
| 1769 | (gnus-list-of-unread-articles group))) | 1776 | (gnus-list-of-unread-articles group))) |
| 1770 | (gnus-decode-encoded-word-function 'identity) | 1777 | (gnus-decode-encoded-word-function 'identity) |
| 1771 | (gnus-decode-encoded-address-function 'identity) | 1778 | (gnus-decode-encoded-address-function 'identity) |
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 6ccba3b108f..696222e0043 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el | |||
| @@ -5607,7 +5607,7 @@ not have a face in `gnus-article-boring-faces'." | |||
| 5607 | "Execute the last keystroke in the summary buffer." | 5607 | "Execute the last keystroke in the summary buffer." |
| 5608 | (interactive) | 5608 | (interactive) |
| 5609 | (let (func) | 5609 | (let (func) |
| 5610 | (pop-to-buffer gnus-article-current-summary nil (not (featurep 'xemacs))) | 5610 | (pop-to-buffer gnus-article-current-summary) |
| 5611 | (setq func (lookup-key (current-local-map) (this-command-keys))) | 5611 | (setq func (lookup-key (current-local-map) (this-command-keys))) |
| 5612 | (call-interactively func))) | 5612 | (call-interactively func))) |
| 5613 | 5613 | ||
| @@ -5646,8 +5646,7 @@ not have a face in `gnus-article-boring-faces'." | |||
| 5646 | (member keys nosave-in-article)) | 5646 | (member keys nosave-in-article)) |
| 5647 | (let (func) | 5647 | (let (func) |
| 5648 | (save-window-excursion | 5648 | (save-window-excursion |
| 5649 | (pop-to-buffer gnus-article-current-summary | 5649 | (pop-to-buffer gnus-article-current-summary) |
| 5650 | nil (not (featurep 'xemacs))) | ||
| 5651 | ;; We disable the pick minor mode commands. | 5650 | ;; We disable the pick minor mode commands. |
| 5652 | (let (gnus-pick-mode) | 5651 | (let (gnus-pick-mode) |
| 5653 | (setq func (lookup-key (current-local-map) keys)))) | 5652 | (setq func (lookup-key (current-local-map) keys)))) |
| @@ -5659,16 +5658,14 @@ not have a face in `gnus-article-boring-faces'." | |||
| 5659 | (call-interactively func) | 5658 | (call-interactively func) |
| 5660 | (setq new-sum-point (point))) | 5659 | (setq new-sum-point (point))) |
| 5661 | (when (member keys nosave-but-article) | 5660 | (when (member keys nosave-but-article) |
| 5662 | (pop-to-buffer gnus-article-buffer | 5661 | (pop-to-buffer gnus-article-buffer))) |
| 5663 | nil (not (featurep 'xemacs))))) | ||
| 5664 | ;; These commands should restore window configuration. | 5662 | ;; These commands should restore window configuration. |
| 5665 | (let ((obuf (current-buffer)) | 5663 | (let ((obuf (current-buffer)) |
| 5666 | (owin (current-window-configuration)) | 5664 | (owin (current-window-configuration)) |
| 5667 | (opoint (point)) | 5665 | (opoint (point)) |
| 5668 | win func in-buffer selected new-sum-start new-sum-hscroll) | 5666 | win func in-buffer selected new-sum-start new-sum-hscroll) |
| 5669 | (cond (not-restore-window | 5667 | (cond (not-restore-window |
| 5670 | (pop-to-buffer gnus-article-current-summary | 5668 | (pop-to-buffer gnus-article-current-summary)) |
| 5671 | nil (not (featurep 'xemacs)))) | ||
| 5672 | ((setq win (get-buffer-window gnus-article-current-summary)) | 5669 | ((setq win (get-buffer-window gnus-article-current-summary)) |
| 5673 | (select-window win)) | 5670 | (select-window win)) |
| 5674 | (t | 5671 | (t |
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index 708689fef9e..851ec88c96f 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el | |||
| @@ -5472,7 +5472,13 @@ If SELECT-ARTICLES, only select those articles from GROUP." | |||
| 5472 | ;; articles in the group, or (if that's nil), the | 5472 | ;; articles in the group, or (if that's nil), the |
| 5473 | ;; articles in the cache. | 5473 | ;; articles in the cache. |
| 5474 | (or | 5474 | (or |
| 5475 | (gnus-uncompress-range (gnus-active group)) | 5475 | (if gnus-maximum-newsgroup |
| 5476 | (let ((active (gnus-active group))) | ||
| 5477 | (gnus-uncompress-range | ||
| 5478 | (cons (max (car active) | ||
| 5479 | (- (cdr active) gnus-maximum-newsgroup -1)) | ||
| 5480 | (cdr active)))) | ||
| 5481 | (gnus-uncompress-range (gnus-active group))) | ||
| 5476 | (gnus-cache-articles-in-group group)) | 5482 | (gnus-cache-articles-in-group group)) |
| 5477 | ;; Select only the "normal" subset of articles. | 5483 | ;; Select only the "normal" subset of articles. |
| 5478 | (gnus-sorted-nunion | 5484 | (gnus-sorted-nunion |
| @@ -6534,23 +6540,26 @@ displayed, no centering will be performed." | |||
| 6534 | (let* ((read (gnus-info-read (gnus-get-info group))) | 6540 | (let* ((read (gnus-info-read (gnus-get-info group))) |
| 6535 | (active (or (gnus-active group) (gnus-activate-group group))) | 6541 | (active (or (gnus-active group) (gnus-activate-group group))) |
| 6536 | (last (cdr active)) | 6542 | (last (cdr active)) |
| 6543 | (bottom (if gnus-maximum-newsgroup | ||
| 6544 | (max (car active) (- last gnus-maximum-newsgroup -1)) | ||
| 6545 | (car active))) | ||
| 6537 | first nlast unread) | 6546 | first nlast unread) |
| 6538 | ;; If none are read, then all are unread. | 6547 | ;; If none are read, then all are unread. |
| 6539 | (if (not read) | 6548 | (if (not read) |
| 6540 | (setq first (car active)) | 6549 | (setq first bottom) |
| 6541 | ;; If the range of read articles is a single range, then the | 6550 | ;; If the range of read articles is a single range, then the |
| 6542 | ;; first unread article is the article after the last read | 6551 | ;; first unread article is the article after the last read |
| 6543 | ;; article. Sounds logical, doesn't it? | 6552 | ;; article. Sounds logical, doesn't it? |
| 6544 | (if (and (not (listp (cdr read))) | 6553 | (if (and (not (listp (cdr read))) |
| 6545 | (or (< (car read) (car active)) | 6554 | (or (< (car read) bottom) |
| 6546 | (progn (setq read (list read)) | 6555 | (progn (setq read (list read)) |
| 6547 | nil))) | 6556 | nil))) |
| 6548 | (setq first (max (car active) (1+ (cdr read)))) | 6557 | (setq first (max bottom (1+ (cdr read)))) |
| 6549 | ;; `read' is a list of ranges. | 6558 | ;; `read' is a list of ranges. |
| 6550 | (when (/= (setq nlast (or (and (numberp (car read)) (car read)) | 6559 | (when (/= (setq nlast (or (and (numberp (car read)) (car read)) |
| 6551 | (caar read))) | 6560 | (caar read))) |
| 6552 | 1) | 6561 | 1) |
| 6553 | (setq first (car active))) | 6562 | (setq first bottom)) |
| 6554 | (while read | 6563 | (while read |
| 6555 | (when first | 6564 | (when first |
| 6556 | (while (< first nlast) | 6565 | (while (< first nlast) |
| @@ -6575,7 +6584,12 @@ displayed, no centering will be performed." | |||
| 6575 | (gnus-list-range-difference | 6584 | (gnus-list-range-difference |
| 6576 | (gnus-list-range-difference | 6585 | (gnus-list-range-difference |
| 6577 | (gnus-sorted-complement | 6586 | (gnus-sorted-complement |
| 6578 | (gnus-uncompress-range active) | 6587 | (gnus-uncompress-range |
| 6588 | (if gnus-maximum-newsgroup | ||
| 6589 | (cons (max (car active) | ||
| 6590 | (- (cdr active) gnus-maximum-newsgroup -1)) | ||
| 6591 | (cdr active)) | ||
| 6592 | active)) | ||
| 6579 | (gnus-list-of-unread-articles group)) | 6593 | (gnus-list-of-unread-articles group)) |
| 6580 | (cdr (assq 'dormant marked))) | 6594 | (cdr (assq 'dormant marked))) |
| 6581 | (cdr (assq 'tick marked)))))) | 6595 | (cdr (assq 'tick marked)))))) |
| @@ -6587,23 +6601,26 @@ displayed, no centering will be performed." | |||
| 6587 | (let* ((read (gnus-info-read (gnus-get-info group))) | 6601 | (let* ((read (gnus-info-read (gnus-get-info group))) |
| 6588 | (active (or (gnus-active group) (gnus-activate-group group))) | 6602 | (active (or (gnus-active group) (gnus-activate-group group))) |
| 6589 | (last (cdr active)) | 6603 | (last (cdr active)) |
| 6604 | (bottom (if gnus-maximum-newsgroup | ||
| 6605 | (max (car active) (- last gnus-maximum-newsgroup -1)) | ||
| 6606 | (car active))) | ||
| 6590 | first nlast unread) | 6607 | first nlast unread) |
| 6591 | ;; If none are read, then all are unread. | 6608 | ;; If none are read, then all are unread. |
| 6592 | (if (not read) | 6609 | (if (not read) |
| 6593 | (setq first (car active)) | 6610 | (setq first bottom) |
| 6594 | ;; If the range of read articles is a single range, then the | 6611 | ;; If the range of read articles is a single range, then the |
| 6595 | ;; first unread article is the article after the last read | 6612 | ;; first unread article is the article after the last read |
| 6596 | ;; article. Sounds logical, doesn't it? | 6613 | ;; article. Sounds logical, doesn't it? |
| 6597 | (if (and (not (listp (cdr read))) | 6614 | (if (and (not (listp (cdr read))) |
| 6598 | (or (< (car read) (car active)) | 6615 | (or (< (car read) bottom) |
| 6599 | (progn (setq read (list read)) | 6616 | (progn (setq read (list read)) |
| 6600 | nil))) | 6617 | nil))) |
| 6601 | (setq first (max (car active) (1+ (cdr read)))) | 6618 | (setq first (max bottom (1+ (cdr read)))) |
| 6602 | ;; `read' is a list of ranges. | 6619 | ;; `read' is a list of ranges. |
| 6603 | (when (/= (setq nlast (or (and (numberp (car read)) (car read)) | 6620 | (when (/= (setq nlast (or (and (numberp (car read)) (car read)) |
| 6604 | (caar read))) | 6621 | (caar read))) |
| 6605 | 1) | 6622 | 1) |
| 6606 | (setq first (car active))) | 6623 | (setq first bottom)) |
| 6607 | (while read | 6624 | (while read |
| 6608 | (when first | 6625 | (when first |
| 6609 | (push (cons first nlast) unread)) | 6626 | (push (cons first nlast) unread)) |
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el index 0e8e9908cf4..3f75bba6d1c 100644 --- a/lisp/gnus/gnus.el +++ b/lisp/gnus/gnus.el | |||
| @@ -1501,6 +1501,17 @@ If it is nil, no confirmation is required." | |||
| 1501 | :type '(choice (const :tag "No limit" nil) | 1501 | :type '(choice (const :tag "No limit" nil) |
| 1502 | integer)) | 1502 | integer)) |
| 1503 | 1503 | ||
| 1504 | (defcustom gnus-maximum-newsgroup nil | ||
| 1505 | "The maximum number of articles a newsgroup. | ||
| 1506 | If this is a number, old articles in a newsgroup exceeding this number | ||
| 1507 | are silently ignored. If it is nil, no article is ignored. Note that | ||
| 1508 | setting this variable to a number might prevent you from reading very | ||
| 1509 | old articles." | ||
| 1510 | :group 'gnus-group-select | ||
| 1511 | :version "22.2" | ||
| 1512 | :type '(choice (const :tag "No limit" nil) | ||
| 1513 | integer)) | ||
| 1514 | |||
| 1504 | (defcustom gnus-use-long-file-name (not (memq system-type '(usg-unix-v xenix))) | 1515 | (defcustom gnus-use-long-file-name (not (memq system-type '(usg-unix-v xenix))) |
| 1505 | "*Non-nil means that the default name of a file to save articles in is the group name. | 1516 | "*Non-nil means that the default name of a file to save articles in is the group name. |
| 1506 | If it's nil, the directory form of the group name is used instead. | 1517 | If it's nil, the directory form of the group name is used instead. |
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index c4d14462245..716b79138f9 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el | |||
| @@ -1132,10 +1132,10 @@ This filter may simply queue input for a later time." | |||
| 1132 | (let ((item (concat string "\n"))) | 1132 | (let ((item (concat string "\n"))) |
| 1133 | (if gdb-enable-debug (push (cons 'send item) gdb-debug-log)) | 1133 | (if gdb-enable-debug (push (cons 'send item) gdb-debug-log)) |
| 1134 | (process-send-string proc item))) | 1134 | (process-send-string proc item))) |
| 1135 | (if (and (string-match "\\\\$" string) | 1135 | (if (string-match "\\\\\\'" string) |
| 1136 | (not comint-input-sender-no-newline)) ;;Try to catch C-d. | ||
| 1137 | (setq gdb-continuation (concat gdb-continuation string "\n")) | 1136 | (setq gdb-continuation (concat gdb-continuation string "\n")) |
| 1138 | (let ((item (concat gdb-continuation string "\n"))) | 1137 | (let ((item (concat gdb-continuation string |
| 1138 | (if (not comint-input-sender-no-newline) "\n")))) | ||
| 1139 | (gdb-enqueue-input item) | 1139 | (gdb-enqueue-input item) |
| 1140 | (setq gdb-continuation nil))))) | 1140 | (setq gdb-continuation nil))))) |
| 1141 | 1141 | ||
diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el index cfef0eedfe4..f2feff595bb 100644 --- a/lisp/progmodes/perl-mode.el +++ b/lisp/progmodes/perl-mode.el | |||
| @@ -267,8 +267,16 @@ The expansion is entirely correct because it uses the C preprocessor." | |||
| 267 | ("^[ \t]*format.*=[ \t]*\\(\n\\)" (1 '(7))) | 267 | ("^[ \t]*format.*=[ \t]*\\(\n\\)" (1 '(7))) |
| 268 | ;; Funny things in sub arg specifications like `sub myfunc ($$)' | 268 | ;; Funny things in sub arg specifications like `sub myfunc ($$)' |
| 269 | ("\\<sub\\s-+\\S-+\\s-*(\\([^)]+\\))" 1 '(1)) | 269 | ("\\<sub\\s-+\\S-+\\s-*(\\([^)]+\\))" 1 '(1)) |
| 270 | ;; regexp and funny quotes | 270 | ;; Regexp and funny quotes. |
| 271 | ("[?:.,;=!~({[][ \t\n]*\\(/\\)" (1 '(7))) | 271 | ("\\(?:[?:.,;=!~({[]\\|\\(^\\)\\)[ \t\n]*\\(/\\)" |
| 272 | (2 (if (and (match-end 1) | ||
| 273 | (save-excursion | ||
| 274 | (goto-char (match-end 1)) | ||
| 275 | (skip-chars-backward " \t\n") | ||
| 276 | (not (memq (char-before) | ||
| 277 | '(?? ?: ?. ?, ?\; ?= ?! ?~ ?\( ?\[))))) | ||
| 278 | nil ;; A division sign instead of a regexp-match. | ||
| 279 | '(7)))) | ||
| 272 | ("\\(^\\|[?:.,;=!~({[ \t]\\)\\([msy]\\|q[qxrw]?\\|tr\\)\\>\\s-*\\([^])}> \n\t]\\)" | 280 | ("\\(^\\|[?:.,;=!~({[ \t]\\)\\([msy]\\|q[qxrw]?\\|tr\\)\\>\\s-*\\([^])}> \n\t]\\)" |
| 273 | ;; Nasty cases: | 281 | ;; Nasty cases: |
| 274 | ;; /foo/m $a->m $#m $m @m %m | 282 | ;; /foo/m $a->m $#m $m @m %m |
diff --git a/lisp/smerge-mode.el b/lisp/smerge-mode.el index ef80ef81679..e3484bb0a48 100644 --- a/lisp/smerge-mode.el +++ b/lisp/smerge-mode.el | |||
| @@ -324,7 +324,8 @@ Can be nil if the style is undecided, or else: | |||
| 324 | (defvar smerge-resolve-function | 324 | (defvar smerge-resolve-function |
| 325 | (lambda () (error "Don't know how to resolve")) | 325 | (lambda () (error "Don't know how to resolve")) |
| 326 | "Mode-specific merge function. | 326 | "Mode-specific merge function. |
| 327 | The function is called with no argument and with the match data set | 327 | The function is called with zero or one argument (non-nil if the resolution |
| 328 | function should only apply safe heuristics) and with the match data set | ||
| 328 | according to `smerge-match-conflict'.") | 329 | according to `smerge-match-conflict'.") |
| 329 | (add-to-list 'debug-ignored-errors "Don't know how to resolve") | 330 | (add-to-list 'debug-ignored-errors "Don't know how to resolve") |
| 330 | 331 | ||
| @@ -378,7 +379,7 @@ according to `smerge-match-conflict'.") | |||
| 378 | (smerge-remove-props (or beg (point-min)) (or end (point-max))) | 379 | (smerge-remove-props (or beg (point-min)) (or end (point-max))) |
| 379 | (push event unread-command-events))))) | 380 | (push event unread-command-events))))) |
| 380 | 381 | ||
| 381 | (defun smerge-resolve () | 382 | (defun smerge-resolve (&optional safe) |
| 382 | "Resolve the conflict at point intelligently. | 383 | "Resolve the conflict at point intelligently. |
| 383 | This relies on mode-specific knowledge and thus only works in | 384 | This relies on mode-specific knowledge and thus only works in |
| 384 | some major modes. Uses `smerge-resolve-function' to do the actual work." | 385 | some major modes. Uses `smerge-resolve-function' to do the actual work." |
| @@ -393,8 +394,10 @@ some major modes. Uses `smerge-resolve-function' to do the actual work." | |||
| 393 | ;; Mode-specific conflict resolution. | 394 | ;; Mode-specific conflict resolution. |
| 394 | ((condition-case nil | 395 | ((condition-case nil |
| 395 | (atomic-change-group | 396 | (atomic-change-group |
| 396 | (funcall smerge-resolve-function) | 397 | (if safe |
| 397 | t) | 398 | (funcall smerge-resolve-function safe) |
| 399 | (funcall smerge-resolve-function)) | ||
| 400 | t) | ||
| 398 | (error nil)) | 401 | (error nil)) |
| 399 | ;; Nothing to do: the resolution function has done it already. | 402 | ;; Nothing to do: the resolution function has done it already. |
| 400 | nil) | 403 | nil) |
| @@ -412,6 +415,31 @@ some major modes. Uses `smerge-resolve-function' to do the actual work." | |||
| 412 | (error "Don't know how to resolve"))) | 415 | (error "Don't know how to resolve"))) |
| 413 | (smerge-auto-leave)) | 416 | (smerge-auto-leave)) |
| 414 | 417 | ||
| 418 | (defun smerge-resolve-all () | ||
| 419 | "Perform automatic resolution on all conflicts." | ||
| 420 | (interactive) | ||
| 421 | (save-excursion | ||
| 422 | (goto-char (point-min)) | ||
| 423 | (while (re-search-forward smerge-begin-re nil t) | ||
| 424 | (condition-case nil | ||
| 425 | (progn | ||
| 426 | (smerge-match-conflict) | ||
| 427 | (smerge-resolve 'safe)) | ||
| 428 | (error nil))))) | ||
| 429 | |||
| 430 | (defun smerge-batch-resolve () | ||
| 431 | ;; command-line-args-left is what is left of the command line. | ||
| 432 | (if (not noninteractive) | ||
| 433 | (error "`smerge-batch-resolve' is to be used only with -batch")) | ||
| 434 | (while command-line-args-left | ||
| 435 | (let ((file (pop command-line-args-left))) | ||
| 436 | (message "Resolving conflicts in %s..." file) | ||
| 437 | (when (file-readable-p file) | ||
| 438 | (with-current-buffer (find-file-noselect file) | ||
| 439 | (smerge-resolve-all) | ||
| 440 | (save-buffer) | ||
| 441 | (kill-buffer (current-buffer))))))) | ||
| 442 | |||
| 415 | (defun smerge-keep-base () | 443 | (defun smerge-keep-base () |
| 416 | "Revert to the base version." | 444 | "Revert to the base version." |
| 417 | (interactive) | 445 | (interactive) |
| @@ -677,7 +705,9 @@ Point is moved to the end of the conflict." | |||
| 677 | (unwind-protect | 705 | (unwind-protect |
| 678 | (with-temp-buffer | 706 | (with-temp-buffer |
| 679 | (let ((coding-system-for-read 'emacs-mule)) | 707 | (let ((coding-system-for-read 'emacs-mule)) |
| 680 | (call-process diff-command nil t nil file1 file2)) | 708 | ;; Don't forget -a to make sure diff treats it as a text file |
| 709 | ;; even if it contains \0 and such. | ||
| 710 | (call-process diff-command nil t nil "-a" file1 file2)) | ||
| 681 | ;; Process diff's output. | 711 | ;; Process diff's output. |
| 682 | (goto-char (point-min)) | 712 | (goto-char (point-min)) |
| 683 | (while (not (eobp)) | 713 | (while (not (eobp)) |
| @@ -831,6 +861,10 @@ buffer names." | |||
| 831 | (message "Please resolve conflicts now; exit ediff when done"))) | 861 | (message "Please resolve conflicts now; exit ediff when done"))) |
| 832 | 862 | ||
| 833 | 863 | ||
| 864 | (defconst smerge-parsep-re | ||
| 865 | (concat smerge-begin-re "\\|" smerge-end-re "\\|" | ||
| 866 | smerge-base-re "\\|" smerge-other-re "\\|")) | ||
| 867 | |||
| 834 | ;;;###autoload | 868 | ;;;###autoload |
| 835 | (define-minor-mode smerge-mode | 869 | (define-minor-mode smerge-mode |
| 836 | "Minor mode to simplify editing output from the diff3 program. | 870 | "Minor mode to simplify editing output from the diff3 program. |
| @@ -845,6 +879,13 @@ buffer names." | |||
| 845 | (while (smerge-find-conflict) | 879 | (while (smerge-find-conflict) |
| 846 | (save-excursion | 880 | (save-excursion |
| 847 | (font-lock-fontify-region (match-beginning 0) (match-end 0) nil))))) | 881 | (font-lock-fontify-region (match-beginning 0) (match-end 0) nil))))) |
| 882 | (if (string-match (regexp-quote smerge-parsep-re) paragraph-separate) | ||
| 883 | (unless smerge-mode | ||
| 884 | (set (make-local-variable 'paragraph-separate) | ||
| 885 | (replace-match "" t t paragraph-separate))) | ||
| 886 | (when smerge-mode | ||
| 887 | (set (make-local-variable 'paragraph-separate) | ||
| 888 | (concat smerge-parsep-re paragraph-separate)))) | ||
| 848 | (unless smerge-mode | 889 | (unless smerge-mode |
| 849 | (smerge-remove-props (point-min) (point-max)))) | 890 | (smerge-remove-props (point-min) (point-max)))) |
| 850 | 891 | ||
diff --git a/lisp/vc-bzr.el b/lisp/vc-bzr.el index 20a9ca9b2fb..c42a64969f2 100644 --- a/lisp/vc-bzr.el +++ b/lisp/vc-bzr.el | |||
| @@ -59,7 +59,7 @@ | |||
| 59 | 59 | ||
| 60 | (defgroup vc-bzr nil | 60 | (defgroup vc-bzr nil |
| 61 | "VC bzr backend." | 61 | "VC bzr backend." |
| 62 | ;; :version "22" | 62 | :version "22.2" |
| 63 | :group 'vc) | 63 | :group 'vc) |
| 64 | 64 | ||
| 65 | (defcustom vc-bzr-program "bzr" | 65 | (defcustom vc-bzr-program "bzr" |
| @@ -131,38 +131,27 @@ format 3' in the first line. | |||
| 131 | 131 | ||
| 132 | If the `checkout/dirstate' file cannot be parsed, fall back to | 132 | If the `checkout/dirstate' file cannot be parsed, fall back to |
| 133 | running `vc-bzr-state'." | 133 | running `vc-bzr-state'." |
| 134 | (condition-case nil | 134 | (lexical-let ((root (vc-bzr-root file))) |
| 135 | (lexical-let ((root (vc-bzr-root file))) | 135 | (when root ; Short cut. |
| 136 | (and root ; Short cut. | 136 | ;; This looks at internal files. May break if they change |
| 137 | ;; This looks at internal files. May break if they change | 137 | ;; their format. |
| 138 | ;; their format. | 138 | (lexical-let ((dirstate (expand-file-name vc-bzr-admin-dirstate root))) |
| 139 | (lexical-let | 139 | (if (not (file-readable-p dirstate)) |
| 140 | ((dirstate-file (expand-file-name vc-bzr-admin-dirstate root))) | 140 | (vc-bzr-state file) ; Expensive. |
| 141 | (if (file-exists-p dirstate-file) | 141 | (with-temp-buffer |
| 142 | (with-temp-buffer | 142 | (insert-file-contents dirstate) |
| 143 | (insert-file-contents dirstate-file) | 143 | (goto-char (point-min)) |
| 144 | (goto-char (point-min)) | 144 | (if (not (looking-at "#bazaar dirstate flat format 3")) |
| 145 | (when (looking-at "#bazaar dirstate flat format 3") | 145 | (vc-bzr-state file) ; Some other unknown format? |
| 146 | (let* ((relfile (file-relative-name file root)) | 146 | (let* ((relfile (file-relative-name file root)) |
| 147 | (reldir (file-name-directory relfile))) | 147 | (reldir (file-name-directory relfile))) |
| 148 | (re-search-forward | 148 | (re-search-forward |
| 149 | (concat "^\0" | 149 | (concat "^\0" |
| 150 | (if reldir (regexp-quote (directory-file-name reldir))) | 150 | (if reldir (regexp-quote (directory-file-name reldir))) |
| 151 | "\0" | 151 | "\0" |
| 152 | (regexp-quote (file-name-nondirectory relfile)) | 152 | (regexp-quote (file-name-nondirectory relfile)) |
| 153 | "\0") | 153 | "\0") |
| 154 | nil t)))) | 154 | nil t))))))))) |
| 155 | t)) | ||
| 156 | (vc-bzr-state file))) ; Expensive. | ||
| 157 | (file-error nil))) ; vc-bzr-program not found | ||
| 158 | |||
| 159 | (defun vc-bzr-buffer-nonblank-p (&optional buffer) | ||
| 160 | "Return non-nil if BUFFER contains any non-blank characters." | ||
| 161 | (or (> (buffer-size buffer) 0) | ||
| 162 | (save-excursion | ||
| 163 | (set-buffer (or buffer (current-buffer))) | ||
| 164 | (goto-char (point-min)) | ||
| 165 | (re-search-forward "[^ \t\n]" (point-max) t)))) | ||
| 166 | 155 | ||
| 167 | (defconst vc-bzr-state-words | 156 | (defconst vc-bzr-state-words |
| 168 | "added\\|ignored\\|kind changed\\|modified\\|removed\\|renamed\\|unknown" | 157 | "added\\|ignored\\|kind changed\\|modified\\|removed\\|renamed\\|unknown" |
| @@ -181,61 +170,53 @@ running `vc-bzr-state'." | |||
| 181 | (defun vc-bzr-status (file) | 170 | (defun vc-bzr-status (file) |
| 182 | "Return FILE status according to Bzr. | 171 | "Return FILE status according to Bzr. |
| 183 | Return value is a cons (STATUS . WARNING), where WARNING is a | 172 | Return value is a cons (STATUS . WARNING), where WARNING is a |
| 184 | string or nil, and STATUS is one of the symbols: 'added, | 173 | string or nil, and STATUS is one of the symbols: `added', |
| 185 | 'ignored, 'kindchange, 'modified, 'removed, 'renamed, 'unknown, | 174 | `ignored', `kindchanged', `modified', `removed', `renamed', `unknown', |
| 186 | which directly correspond to `bzr status' output, or 'unchanged | 175 | which directly correspond to `bzr status' output, or 'unchanged |
| 187 | for files whose copy in the working tree is identical to the one | 176 | for files whose copy in the working tree is identical to the one |
| 188 | in the branch repository, or nil for files that are not | 177 | in the branch repository, or nil for files that are not |
| 189 | registered with Bzr. | 178 | registered with Bzr. |
| 190 | 179 | ||
| 191 | If any error occurred in running `bzr status', then return nil." | 180 | If any error occurred in running `bzr status', then return nil." |
| 192 | (condition-case nil | ||
| 193 | (with-temp-buffer | 181 | (with-temp-buffer |
| 194 | (let ((ret (vc-bzr-command "status" t 0 file)) | 182 | (let ((ret (condition-case nil |
| 195 | (status 'unchanged)) | 183 | (vc-bzr-command "status" t 0 file) |
| 196 | ;; the only secure status indication in `bzr status' output | 184 | (file-error nil))) ; vc-bzr-program not found. |
| 197 | ;; is a couple of lines following the pattern:: | 185 | (status 'unchanged)) |
| 198 | ;; | <status>: | 186 | ;; the only secure status indication in `bzr status' output |
| 199 | ;; | <file name> | 187 | ;; is a couple of lines following the pattern:: |
| 200 | ;; if the file is up-to-date, we get no status report from `bzr', | 188 | ;; | <status>: |
| 201 | ;; so if the regexp search for the above pattern fails, we consider | 189 | ;; | <file name> |
| 202 | ;; the file to be up-to-date. | 190 | ;; if the file is up-to-date, we get no status report from `bzr', |
| 203 | (goto-char (point-min)) | 191 | ;; so if the regexp search for the above pattern fails, we consider |
| 204 | (when | 192 | ;; the file to be up-to-date. |
| 205 | (re-search-forward | 193 | (goto-char (point-min)) |
| 206 | ;; bzr prints paths relative to the repository root | 194 | (when (re-search-forward |
| 207 | (concat "^\\(" vc-bzr-state-words "\\):[ \t\n]+" | 195 | ;; bzr prints paths relative to the repository root. |
| 208 | (regexp-quote (vc-bzr-file-name-relative file)) | 196 | (concat "^\\(" vc-bzr-state-words "\\):[ \t\n]+" |
| 209 | (if (file-directory-p file) "/?" "") | 197 | (regexp-quote (vc-bzr-file-name-relative file)) |
| 210 | "[ \t\n]*$") | 198 | (if (file-directory-p file) "/?" "") |
| 211 | (point-max) t) | 199 | "[ \t\n]*$") |
| 212 | (let ((start (match-beginning 0)) | 200 | nil t) |
| 213 | (end (match-end 0))) | 201 | (let ((status (match-string 1))) |
| 214 | (goto-char start) | 202 | ;; Erase the status text that matched. |
| 203 | (delete-region (match-beginning 0) (match-end 0)) | ||
| 215 | (setq status | 204 | (setq status |
| 216 | (cond | 205 | (and (equal ret 0) ; Seems redundant. --Stef |
| 217 | ((not (equal ret 0)) nil) | 206 | (intern (replace-regexp-in-string " " "" |
| 218 | ((looking-at "added") 'added) | 207 | status)))))) |
| 219 | ((looking-at "kind changed") 'kindchange) | 208 | (when status |
| 220 | ((looking-at "renamed") 'renamed) | 209 | (goto-char (point-min)) |
| 221 | ((looking-at "modified") 'modified) | 210 | (skip-chars-forward " \n\t") ;Throw away spaces. |
| 222 | ((looking-at "removed") 'removed) | 211 | (cons status |
| 223 | ((looking-at "ignored") 'ignored) | 212 | ;; "bzr" will output warnings and informational messages to |
| 224 | ((looking-at "unknown") 'unknown))) | 213 | ;; stderr; due to Emacs' `vc-do-command' (and, it seems, |
| 225 | ;; erase the status text that matched | 214 | ;; `start-process' itself) limitations, we cannot catch stderr |
| 226 | (delete-region start end))) | 215 | ;; and stdout into different buffers. So, if there's anything |
| 227 | (if status | 216 | ;; left in the buffer after removing the above status |
| 228 | (cons status | 217 | ;; keywords, let us just presume that any other message from |
| 229 | ;; "bzr" will output warnings and informational messages to | 218 | ;; "bzr" is a user warning, and display it. |
| 230 | ;; stderr; due to Emacs' `vc-do-command' (and, it seems, | 219 | (unless (eobp) (buffer-substring (point) (point-max)))))))) |
| 231 | ;; `start-process' itself) limitations, we cannot catch stderr | ||
| 232 | ;; and stdout into different buffers. So, if there's anything | ||
| 233 | ;; left in the buffer after removing the above status | ||
| 234 | ;; keywords, let us just presume that any other message from | ||
| 235 | ;; "bzr" is a user warning, and display it. | ||
| 236 | (if (vc-bzr-buffer-nonblank-p) | ||
| 237 | (buffer-substring (point-min) (point-max))))))) | ||
| 238 | (file-error nil))) ; vc-bzr-program not found | ||
| 239 | 220 | ||
| 240 | (defun vc-bzr-state (file) | 221 | (defun vc-bzr-state (file) |
| 241 | (lexical-let ((result (vc-bzr-status file))) | 222 | (lexical-let ((result (vc-bzr-status file))) |
| @@ -244,7 +225,7 @@ If any error occurred in running `bzr status', then return nil." | |||
| 244 | (message "Warnings in `bzr' output: %s" (cdr result))) | 225 | (message "Warnings in `bzr' output: %s" (cdr result))) |
| 245 | (cdr (assq (car result) | 226 | (cdr (assq (car result) |
| 246 | '((added . edited) | 227 | '((added . edited) |
| 247 | (kindchange . edited) | 228 | (kindchanged . edited) |
| 248 | (renamed . edited) | 229 | (renamed . edited) |
| 249 | (modified . edited) | 230 | (modified . edited) |
| 250 | (removed . edited) | 231 | (removed . edited) |
| @@ -265,7 +246,7 @@ If any error occurred in running `bzr status', then return nil." | |||
| 265 | ;; bzr process. This looks at internal files. May break if they | 246 | ;; bzr process. This looks at internal files. May break if they |
| 266 | ;; change their format. | 247 | ;; change their format. |
| 267 | (if (file-exists-p branch-format-file) | 248 | (if (file-exists-p branch-format-file) |
| 268 | (with-temp-buffer | 249 | (with-temp-buffer |
| 269 | (insert-file-contents branch-format-file) | 250 | (insert-file-contents branch-format-file) |
| 270 | (goto-char (point-min)) | 251 | (goto-char (point-min)) |
| 271 | (cond | 252 | (cond |
| @@ -273,7 +254,7 @@ If any error occurred in running `bzr status', then return nil." | |||
| 273 | (looking-at "Bazaar-NG branch, format 0.0.4") | 254 | (looking-at "Bazaar-NG branch, format 0.0.4") |
| 274 | (looking-at "Bazaar-NG branch format 5")) | 255 | (looking-at "Bazaar-NG branch format 5")) |
| 275 | ;; count lines in .bzr/branch/revision-history | 256 | ;; count lines in .bzr/branch/revision-history |
| 276 | (insert-file-contents revhistory-file) | 257 | (insert-file-contents revhistory-file) |
| 277 | (number-to-string (count-lines (line-end-position) (point-max)))) | 258 | (number-to-string (count-lines (line-end-position) (point-max)))) |
| 278 | ((looking-at "Bazaar Branch Format 6 (bzr 0.15)") | 259 | ((looking-at "Bazaar Branch Format 6 (bzr 0.15)") |
| 279 | ;; revno is the first number in .bzr/branch/last-revision | 260 | ;; revno is the first number in .bzr/branch/last-revision |
| @@ -341,10 +322,10 @@ EDITABLE is ignored." | |||
| 341 | (setq destfile (vc-version-backup-file-name file rev))) | 322 | (setq destfile (vc-version-backup-file-name file rev))) |
| 342 | (let ((coding-system-for-read 'binary) | 323 | (let ((coding-system-for-read 'binary) |
| 343 | (coding-system-for-write 'binary)) | 324 | (coding-system-for-write 'binary)) |
| 344 | (with-temp-file destfile | 325 | (with-temp-file destfile |
| 345 | (if rev | 326 | (if rev |
| 346 | (vc-bzr-command "cat" t 0 file "-r" rev) | 327 | (vc-bzr-command "cat" t 0 file "-r" rev) |
| 347 | (vc-bzr-command "cat" t 0 file))))) | 328 | (vc-bzr-command "cat" t 0 file))))) |
| 348 | 329 | ||
| 349 | (defun vc-bzr-revert (file &optional contents-done) | 330 | (defun vc-bzr-revert (file &optional contents-done) |
| 350 | (unless contents-done | 331 | (unless contents-done |
| @@ -377,7 +358,6 @@ EDITABLE is ignored." | |||
| 377 | "Get bzr change log for FILES into specified BUFFER." | 358 | "Get bzr change log for FILES into specified BUFFER." |
| 378 | ;; Fixme: This might need the locale fixing up if things like `revno' | 359 | ;; Fixme: This might need the locale fixing up if things like `revno' |
| 379 | ;; got localized, but certainly it shouldn't use LC_ALL=C. | 360 | ;; got localized, but certainly it shouldn't use LC_ALL=C. |
| 380 | ;; NB. Can't be async -- see `vc-bzr-post-command-function'. | ||
| 381 | (vc-bzr-command "log" buffer 0 files) | 361 | (vc-bzr-command "log" buffer 0 files) |
| 382 | ;; FIXME: Until Emacs-23, VC was missing a hook to sort out the mode for | 362 | ;; FIXME: Until Emacs-23, VC was missing a hook to sort out the mode for |
| 383 | ;; the buffer, or at least set the regexps right. | 363 | ;; the buffer, or at least set the regexps right. |
| @@ -401,7 +381,6 @@ EDITABLE is ignored." | |||
| 401 | (setq rev1 nil)) | 381 | (setq rev1 nil)) |
| 402 | (if (and (not rev1) rev2) | 382 | (if (and (not rev1) rev2) |
| 403 | (setq rev1 working)) | 383 | (setq rev1 working)) |
| 404 | ;; NB. Can't be async -- see `vc-bzr-post-command-function'. | ||
| 405 | ;; bzr diff produces condition code 1 for some reason. | 384 | ;; bzr diff produces condition code 1 for some reason. |
| 406 | (apply #'vc-bzr-command "diff" (or buffer "*vc-diff*") 1 files | 385 | (apply #'vc-bzr-command "diff" (or buffer "*vc-diff*") 1 files |
| 407 | "--diff-options" (mapconcat 'identity (vc-diff-switches-list bzr) | 386 | "--diff-options" (mapconcat 'identity (vc-diff-switches-list bzr) |
| @@ -463,11 +442,11 @@ property containing author and date information." | |||
| 463 | 442 | ||
| 464 | ;; Definition from Emacs 22 | 443 | ;; Definition from Emacs 22 |
| 465 | (unless (fboundp 'vc-annotate-convert-time) | 444 | (unless (fboundp 'vc-annotate-convert-time) |
| 466 | (defun vc-annotate-convert-time (time) | 445 | (defun vc-annotate-convert-time (time) |
| 467 | "Convert a time value to a floating-point number of days. | 446 | "Convert a time value to a floating-point number of days. |
| 468 | The argument TIME is a list as returned by `current-time' or | 447 | The argument TIME is a list as returned by `current-time' or |
| 469 | `encode-time', only the first two elements of that list are considered." | 448 | `encode-time', only the first two elements of that list are considered." |
| 470 | (/ (+ (* (float (car time)) (lsh 1 16)) (cadr time)) 24 3600))) | 449 | (/ (+ (* (float (car time)) (lsh 1 16)) (cadr time)) 24 3600))) |
| 471 | 450 | ||
| 472 | (defun vc-bzr-annotate-time () | 451 | (defun vc-bzr-annotate-time () |
| 473 | (when (re-search-forward "^ *[0-9]+ |" nil t) | 452 | (when (re-search-forward "^ *[0-9]+ |" nil t) |
| @@ -549,7 +528,7 @@ Optional argument LOCALP is always ignored." | |||
| 549 | (setq current-bzr-state 'added)) | 528 | (setq current-bzr-state 'added)) |
| 550 | ((looking-at "^kind changed") | 529 | ((looking-at "^kind changed") |
| 551 | (setq current-vc-state 'edited) | 530 | (setq current-vc-state 'edited) |
| 552 | (setq current-bzr-state 'kindchange)) | 531 | (setq current-bzr-state 'kindchanged)) |
| 553 | ((looking-at "^modified") | 532 | ((looking-at "^modified") |
| 554 | (setq current-vc-state 'edited) | 533 | (setq current-vc-state 'edited) |
| 555 | (setq current-bzr-state 'modified)) | 534 | (setq current-bzr-state 'modified)) |
| @@ -591,17 +570,9 @@ Optional argument LOCALP is always ignored." | |||
| 591 | ;; else fall back to default vc representation | 570 | ;; else fall back to default vc representation |
| 592 | (vc-default-dired-state-info 'Bzr file))))) | 571 | (vc-default-dired-state-info 'Bzr file))))) |
| 593 | 572 | ||
| 594 | ;; In case of just `(load "vc-bzr")', but that's probably the wrong | ||
| 595 | ;; way to do it. | ||
| 596 | (add-to-list 'vc-handled-backends 'Bzr) | ||
| 597 | |||
| 598 | (eval-after-load "vc" | 573 | (eval-after-load "vc" |
| 599 | '(add-to-list 'vc-directory-exclusion-list vc-bzr-admin-dirname t)) | 574 | '(add-to-list 'vc-directory-exclusion-list vc-bzr-admin-dirname t)) |
| 600 | 575 | ||
| 601 | (defconst vc-bzr-unload-hook | ||
| 602 | (lambda () | ||
| 603 | (setq vc-handled-backends (delq 'Bzr vc-handled-backends)) | ||
| 604 | (remove-hook 'vc-post-command-functions 'vc-bzr-post-command-function))) | ||
| 605 | 576 | ||
| 606 | (provide 'vc-bzr) | 577 | (provide 'vc-bzr) |
| 607 | ;; arch-tag: 8101bad8-4e92-4e7d-85ae-d8e08b4e7c06 | 578 | ;; arch-tag: 8101bad8-4e92-4e7d-85ae-d8e08b4e7c06 |
diff --git a/man/ChangeLog b/man/ChangeLog index 911c68e9cbc..7438fbad338 100644 --- a/man/ChangeLog +++ b/man/ChangeLog | |||
| @@ -20,6 +20,10 @@ | |||
| 20 | (Quick Calculator Mode): Mention that binary format will | 20 | (Quick Calculator Mode): Mention that binary format will |
| 21 | be displayed. | 21 | be displayed. |
| 22 | 22 | ||
| 23 | 2007-08-14 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 24 | |||
| 25 | * gnus.texi (Selecting a Group): Mention gnus-maximum-newsgroup. | ||
| 26 | |||
| 23 | 2007-08-10 Katsumi Yamaoka <yamaoka@jpl.org> | 27 | 2007-08-10 Katsumi Yamaoka <yamaoka@jpl.org> |
| 24 | 28 | ||
| 25 | * gnus.texi (NNTP): Mention nntp-xref-number-is-evil. | 29 | * gnus.texi (NNTP): Mention nntp-xref-number-is-evil. |
diff --git a/man/gnus.texi b/man/gnus.texi index 94144b65e3f..7cabf674102 100644 --- a/man/gnus.texi +++ b/man/gnus.texi | |||
| @@ -2153,6 +2153,24 @@ most recently will be fetched. | |||
| 2153 | @code{gnus-large-newsgroup}, but is only used for ephemeral | 2153 | @code{gnus-large-newsgroup}, but is only used for ephemeral |
| 2154 | newsgroups. | 2154 | newsgroups. |
| 2155 | 2155 | ||
| 2156 | @vindex gnus-maximum-newsgroup | ||
| 2157 | In groups in some news servers, there might be a big gap between a few | ||
| 2158 | very old articles that will never be expired and the recent ones. In | ||
| 2159 | such a case, the server will return the data like @code{(1 . 30000000)} | ||
| 2160 | for the @code{LIST ACTIVE group} command, for example. Even if there | ||
| 2161 | are actually only the articles 1-10 and 29999900-30000000, Gnus doesn't | ||
| 2162 | know it at first and prepares for getting 30000000 articles. However, | ||
| 2163 | it will consume hundreds megabytes of memories and might make Emacs get | ||
| 2164 | stuck as the case may be. If you use such news servers, set the | ||
| 2165 | variable @code{gnus-maximum-newsgroup} to a positive number. The value | ||
| 2166 | means that Gnus ignores articles other than this number of the latest | ||
| 2167 | ones in every group. For instance, the value 10000 makes Gnus get only | ||
| 2168 | the articles 29990001-30000000 (if the latest article number is 30000000 | ||
| 2169 | in a group). Note that setting this variable to a number might prevent | ||
| 2170 | you from reading very old articles. The default value of the variable | ||
| 2171 | @code{gnus-maximum-newsgroup} is @code{nil}, which means Gnus never | ||
| 2172 | ignores old articles. | ||
| 2173 | |||
| 2156 | @vindex gnus-select-group-hook | 2174 | @vindex gnus-select-group-hook |
| 2157 | @vindex gnus-auto-select-first | 2175 | @vindex gnus-auto-select-first |
| 2158 | @vindex gnus-auto-select-subject | 2176 | @vindex gnus-auto-select-subject |
diff --git a/nt/ChangeLog b/nt/ChangeLog index deea04bff17..82771f836c6 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2007-08-14 Dhuvra Krishnamurthy <dhuvrakm@gmail.com> (tiny change) | ||
| 2 | |||
| 3 | * makefile.w32-in (bootstrap-nmake): Change directories once more. | ||
| 4 | |||
| 1 | 2007-07-25 Glenn Morris <rgm@gnu.org> | 5 | 2007-07-25 Glenn Morris <rgm@gnu.org> |
| 2 | 6 | ||
| 3 | * Relicense all FSF files to GPLv3 or later. | 7 | * Relicense all FSF files to GPLv3 or later. |
diff --git a/nt/makefile.w32-in b/nt/makefile.w32-in index e7a10698ea2..05e9a665879 100644 --- a/nt/makefile.w32-in +++ b/nt/makefile.w32-in | |||
| @@ -153,6 +153,7 @@ bootstrap-nmake: addsection cmdproxy | |||
| 153 | cd ..\src | 153 | cd ..\src |
| 154 | $(MAKE) $(MFLAGS) bootstrap | 154 | $(MAKE) $(MFLAGS) bootstrap |
| 155 | $(MAKE) $(MFLAGS) bootstrap-clean | 155 | $(MAKE) $(MFLAGS) bootstrap-clean |
| 156 | cd ..\nt | ||
| 156 | $(CP) $(BLD)/cmdproxy.exe ../bin | 157 | $(CP) $(BLD)/cmdproxy.exe ../bin |
| 157 | cd ..\lisp | 158 | cd ..\lisp |
| 158 | $(MAKE) $(MFLAGS) SHELL=$(SHELLTYPE) bootstrap | 159 | $(MAKE) $(MFLAGS) SHELL=$(SHELLTYPE) bootstrap |