aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoakim Verona2011-07-20 19:17:35 +0200
committerJoakim Verona2011-07-20 19:17:35 +0200
commitc196618976ca42baca2e2de2167a8c5b9c28d75f (patch)
treeee1b4498df35c584f53804354e8bf067b5219ab0
parent9c4f13500786571d004d4530e2ffd84c5457d61c (diff)
parentbfa4f1909c8d7c22a235d04aa8798f2fb7f9c970 (diff)
downloademacs-c196618976ca42baca2e2de2167a8c5b9c28d75f.tar.gz
emacs-c196618976ca42baca2e2de2167a8c5b9c28d75f.zip
merge upstream
-rw-r--r--lisp/ChangeLog7
-rw-r--r--lisp/gnus/ChangeLog14
-rw-r--r--lisp/gnus/gnus-sum.el3
-rw-r--r--lisp/gnus/nnimap.el42
-rw-r--r--lisp/gnus/nnir.el23
-rw-r--r--lisp/progmodes/etags.el19
6 files changed, 70 insertions, 38 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index b138d78a070..d96ad569543 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,10 @@
12011-07-20 Sam Steingold <sds@gnu.org>
2
3 * progmodes/etags.el (etags-file-of-tag, etags-tags-table-files)
4 (etags-tags-included-tables): Call `convert-standard-filename' on
5 the file names contained in TAGS so that windows Emacs can handle
6 TAGS files created by cygwin ctags.
7
12011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org> 82011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
2 9
3 * proced.el (proced-update): Revert yesterday's bug#1779 patch, 10 * proced.el (proced-update): Revert yesterday's bug#1779 patch,
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index d18be47fb9d..a1cb003a8ff 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,17 @@
12011-07-20 Andrew Cohen <cohen@andy.bu.edu>
2
3 * nnir.el (gnus-group-make-nnir-group): Allow optional search query
4 argument.
5 (gnus-group-make-nnir-group, nnir-request-group, nnir-run-query): Use
6 `nnir-address' to handle server info rather than passing an arg.
7
8 * nnimap.el (nnimap-make-thread-query): New utility function to format
9 an imap thread search query.
10 (nnimap-request-thread): Use it.
11
12 * gnus-sum.el (gnus-handle-ephemeral-exit): Ensure we are setting the
13 right select-method if we are not going back to the group buffer.
14
12011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org> 152011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
2 16
3 * gnus-group.el (gnus-group-read-ephemeral-group): Make sure we don't 17 * gnus-group.el (gnus-group-read-ephemeral-group): Make sure we don't
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index 86ff0180f55..6e8fc63d79f 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -7339,6 +7339,9 @@ The state which existed when entering the ephemeral is reset."
7339 (if (not (buffer-name (car quit-config))) 7339 (if (not (buffer-name (car quit-config)))
7340 (gnus-configure-windows 'group 'force) 7340 (gnus-configure-windows 'group 'force)
7341 (set-buffer (car quit-config)) 7341 (set-buffer (car quit-config))
7342 (unless (eq (cdr quit-config) 'group)
7343 (setq gnus-current-select-method
7344 (gnus-find-method-for-group gnus-newsgroup-name)))
7342 (cond ((eq major-mode 'gnus-summary-mode) 7345 (cond ((eq major-mode 'gnus-summary-mode)
7343 (gnus-set-global-variables)) 7346 (gnus-set-global-variables))
7344 ((eq major-mode 'gnus-article-mode) 7347 ((eq major-mode 'gnus-article-mode)
diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el
index ef5bee71629..385522759b6 100644
--- a/lisp/gnus/nnimap.el
+++ b/lisp/gnus/nnimap.el
@@ -1567,25 +1567,14 @@ textual parts.")
1567 1567
1568(deffoo nnimap-request-thread (header &optional group server) 1568(deffoo nnimap-request-thread (header &optional group server)
1569 (when (nnimap-possibly-change-group group server) 1569 (when (nnimap-possibly-change-group group server)
1570 (let* ((id (mail-header-id header)) 1570 (let* ((cmd (nnimap-make-thread-query header))
1571 (refs (split-string 1571 (result (with-current-buffer (nnimap-buffer)
1572 (or (mail-header-references header) 1572 (nnimap-command "UID SEARCH %s" cmd))))
1573 ""))) 1573 (when result
1574 (cmd (let ((value 1574 (gnus-fetch-headers
1575 (format 1575 (and (car result) (delete 0 (mapcar #'string-to-number
1576 "(OR HEADER REFERENCES %s HEADER Message-Id %s)" 1576 (cdr (assoc "SEARCH" (cdr result))))))
1577 id id))) 1577 nil t)))))
1578 (dolist (refid refs value)
1579 (setq value (format
1580 "(OR (OR HEADER Message-Id %s HEADER REFERENCES %s) %s)"
1581 refid refid value)))))
1582 (result (with-current-buffer (nnimap-buffer)
1583 (nnimap-command "UID SEARCH %s" cmd))))
1584 (when result
1585 (gnus-fetch-headers
1586 (and (car result) (delete 0 (mapcar #'string-to-number
1587 (cdr (assoc "SEARCH" (cdr result))))))
1588 nil t)))))
1589 1578
1590(defun nnimap-possibly-change-group (group server) 1579(defun nnimap-possibly-change-group (group server)
1591 (let ((open-result t)) 1580 (let ((open-result t))
@@ -1951,6 +1940,21 @@ textual parts.")
1951 group-art)) 1940 group-art))
1952 nnimap-incoming-split-list))) 1941 nnimap-incoming-split-list)))
1953 1942
1943(defun nnimap-make-thread-query (header)
1944 (let* ((id (mail-header-id header))
1945 (refs (split-string
1946 (or (mail-header-references header)
1947 "")))
1948 (value
1949 (format
1950 "(OR HEADER REFERENCES %s HEADER Message-Id %s)"
1951 id id)))
1952 (dolist (refid refs value)
1953 (setq value (format
1954 "(OR (OR HEADER Message-Id %s HEADER REFERENCES %s) %s)"
1955 refid refid value)))))
1956
1957
1954(provide 'nnimap) 1958(provide 'nnimap)
1955 1959
1956;;; nnimap.el ends here 1960;;; nnimap.el ends here
diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el
index 3f140ef59d9..9840dddcb66 100644
--- a/lisp/gnus/nnir.el
+++ b/lisp/gnus/nnir.el
@@ -296,6 +296,9 @@ is `(valuefunc member)'."
296(nnoo-declare nnir) 296(nnoo-declare nnir)
297(nnoo-define-basics nnir) 297(nnoo-define-basics nnir)
298 298
299(defvoo nnir-address nil
300 "The address of the nnir server.")
301
299(gnus-declare-backend "nnir" 'mail) 302(gnus-declare-backend "nnir" 'mail)
300 303
301 304
@@ -582,18 +585,17 @@ Add an entry here when adding a new search engine.")
582 585
583;; Gnus glue. 586;; Gnus glue.
584 587
585(defun gnus-group-make-nnir-group (nnir-extra-parms) 588(defun gnus-group-make-nnir-group (nnir-extra-parms &optional parms)
586 "Create an nnir group. Asks for query." 589 "Create an nnir group. Asks for query."
587 (interactive "P") 590 (interactive "P")
588 (setq nnir-current-query nil 591 (setq nnir-current-query nil
589 nnir-current-server nil 592 nnir-current-server nil
590 nnir-current-group-marked nil 593 nnir-current-group-marked nil
591 nnir-artlist nil) 594 nnir-artlist nil)
592 (let* ((query (read-string "Query: " nil 'nnir-search-history)) 595 (let* ((query (unless parms (read-string "Query: " nil 'nnir-search-history)))
593 (parms (list (cons 'query query))) 596 (parms (or parms (list (cons 'query query))))
594 (srv (if (gnus-server-server-name) 597 (srv (or (cdr (assq 'server parms)) (gnus-server-server-name) "nnir")))
595 "all" ""))) 598 (add-to-list 'parms (cons 'unique-id (message-unique-id)) t)
596 (add-to-list 'parms (cons 'unique-id (message-unique-id)) t)
597 (gnus-group-read-ephemeral-group 599 (gnus-group-read-ephemeral-group
598 (concat "nnir:" (prin1-to-string parms)) (list 'nnir srv) t 600 (concat "nnir:" (prin1-to-string parms)) (list 'nnir srv) t
599 (cons (current-buffer) gnus-current-window-configuration) 601 (cons (current-buffer) gnus-current-window-configuration)
@@ -617,7 +619,7 @@ Add an entry here when adding a new search engine.")
617 (equal server nnir-current-server))) 619 (equal server nnir-current-server)))
618 nnir-artlist 620 nnir-artlist
619 ;; Cache miss. 621 ;; Cache miss.
620 (setq nnir-artlist (nnir-run-query group server))) 622 (setq nnir-artlist (nnir-run-query group)))
621 (with-current-buffer nntp-server-buffer 623 (with-current-buffer nntp-server-buffer
622 (setq nnir-current-query group) 624 (setq nnir-current-query group)
623 (when server (setq nnir-current-server server)) 625 (when server (setq nnir-current-server server))
@@ -1594,14 +1596,13 @@ actually)."
1594 1596
1595(autoload 'gnus-group-topic-name "gnus-topic") 1597(autoload 'gnus-group-topic-name "gnus-topic")
1596 1598
1597(defun nnir-run-query (query nserver) 1599(defun nnir-run-query (query)
1598 "Invoke appropriate search engine function (see `nnir-engines'). 1600 "Invoke appropriate search engine function (see `nnir-engines').
1599 If some groups were process-marked, run the query for each of the groups 1601 If some groups were process-marked, run the query for each of the groups
1600 and concat the results." 1602 and concat the results."
1601 (let ((q (car (read-from-string query))) 1603 (let ((q (car (read-from-string query)))
1602 (groups (if (string= "all-ephemeral" nserver) 1604 (groups (if (not (string= "nnir" nnir-address))
1603 (with-current-buffer gnus-server-buffer 1605 (list (list nnir-address))
1604 (list (list (gnus-server-server-name))))
1605 (nnir-categorize 1606 (nnir-categorize
1606 (or gnus-group-marked 1607 (or gnus-group-marked
1607 (if (gnus-group-group-name) 1608 (if (gnus-group-group-name)
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
index da073ceb258..a3300077909 100644
--- a/lisp/progmodes/etags.el
+++ b/lisp/progmodes/etags.el
@@ -1260,11 +1260,11 @@ buffer-local values of tags table format variables."
1260(defun etags-file-of-tag (&optional relative) ; Doc string? 1260(defun etags-file-of-tag (&optional relative) ; Doc string?
1261 (save-excursion 1261 (save-excursion
1262 (re-search-backward "\f\n\\([^\n]+\\),[0-9]*\n") 1262 (re-search-backward "\f\n\\([^\n]+\\),[0-9]*\n")
1263 (let ((str (buffer-substring (match-beginning 1) (match-end 1)))) 1263 (let ((str (convert-standard-filename
1264 (buffer-substring (match-beginning 1) (match-end 1)))))
1264 (if relative 1265 (if relative
1265 str 1266 str
1266 (expand-file-name str 1267 (expand-file-name str (file-truename default-directory))))))
1267 (file-truename default-directory))))))
1268 1268
1269 1269
1270(defun etags-tags-completion-table () ; Doc string? 1270(defun etags-tags-completion-table () ; Doc string?
@@ -1545,7 +1545,9 @@ hits the start of file."
1545 (end-of-line) 1545 (end-of-line)
1546 (skip-chars-backward "^," beg) 1546 (skip-chars-backward "^," beg)
1547 (or (looking-at "include$") 1547 (or (looking-at "include$")
1548 (setq files (cons (buffer-substring beg (1- (point))) files)))) 1548 (push (convert-standard-filename
1549 (buffer-substring beg (1- (point))))
1550 files)))
1549 (nreverse files))) 1551 (nreverse files)))
1550 1552
1551(defun etags-tags-included-tables () ; Doc string? 1553(defun etags-tags-included-tables () ; Doc string?
@@ -1556,10 +1558,11 @@ hits the start of file."
1556 (setq beg (point)) 1558 (setq beg (point))
1557 (end-of-line) 1559 (end-of-line)
1558 (skip-chars-backward "^," beg) 1560 (skip-chars-backward "^," beg)
1559 (if (looking-at "include$") 1561 (when (looking-at "include$")
1560 ;; Expand in the default-directory of the tags table buffer. 1562 ;; Expand in the default-directory of the tags table buffer.
1561 (setq files (cons (expand-file-name (buffer-substring beg (1- (point)))) 1563 (push (expand-file-name (convert-standard-filename
1562 files)))) 1564 (buffer-substring beg (1- (point)))))
1565 files)))
1563 (nreverse files))) 1566 (nreverse files)))
1564 1567
1565;; Empty tags file support. 1568;; Empty tags file support.