2004-05-18 Reiner Steib <Reiner.Steib@gmx.de>
+ * gnus-group.el (gnus-group-jump-to-group-prompt): Allow an alist.
+ (gnus-group-jump-to-group): Added prefix argument using
+ `gnus-group-jump-to-group-prompt'. Query before jumping to
+ non-active group.
+
+ * compface.el (uncompface): Be verbose when changing
+ `uncompface-use-external'.
+
+ * gnus-art.el (gnus-button-handle-man, gnus-button-alist): Try to
+ handle manual section.
+
+2004-05-18 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-art.el (gnus-button-alist): Revert previous change.
+
+2004-05-18 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * message.el (message-idna-to-ascii-rhs-1): Fix typo.
+
+2004-05-18 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-msg.el (gnus-inews-do-gcc): Don't use read-only-p to see
+ whether backend can accept message.
+
+ * message.el (message-idna-to-ascii-rhs-1): Don't use equalp.
+
+2004-05-18 Kai Grossjohann <kgrossjo@eu.uu.net>
+
+ * nntp.el (nntp-request-set-mark, nntp-request-update-info):
+ Avoid creating directory when nntp-marks-is-evil is true.
+ Reported by Reiner Steib.
+
+2004-05-18 Reiner Steib <Reiner.Steib@gmx.de>
+
* gnus-picon.el (gnus-picon-style): New variable.
(gnus-picon-insert-glyph): Added optional `nostring' argument.
(gnus-picon-transform-address): Support `gnus-picon-style'. From
- Jesper Harder <harder@ifa.au.dk>.
+ Jesper Harder <harder@ifa.au.dk>.
2004-05-18 Lars Magne Ingebrigtsen <larsi@gnus.org>
+ * message.el (message-fill-field): Return point.
+ (message-generate-headers): Go to end of field.
+
* gnus-start.el (gnus-get-unread-articles-in-group): Don't do
stuff for non-living groups.
uncompface-use-external-threshold)
(executable-find "uncompface")
(executable-find "icontopbm")
- t)))))))
+ t))
+ (message "Setting `uncompface-use-external' to `%s'"
+ uncompface-use-external))))))
;; The following section is a bug-for-bug compatible version of
;; `uncompface' program entirely implemented in Emacs-Lisp.
(gnus-button-url-regexp
0 (>= gnus-button-browse-level 0) browse-url 0)
;; man pages
- ("\\b\\([a-z][a-z]+\\)([1-9])\\W"
+ ("\\b\\([a-z][a-z]+([1-9])\\)\\W"
0 (and (>= gnus-button-man-level 1) (< gnus-button-man-level 3))
gnus-button-handle-man 1)
;; more man pages: resolv.conf(5), iso_8859-1(7), xterm(1x)
- ("\\b\\([a-z][-_.a-z0-9]+\\)([1-9])\\W"
+ ("\\b\\([a-z][-_.a-z0-9]+([1-9])\\)\\W"
0 (and (>= gnus-button-man-level 3) (< gnus-button-man-level 5))
gnus-button-handle-man 1)
;; even more: Apache::PerlRun(3pm), PDL::IO::FastRaw(3pm),
;; SoWWWAnchor(3iv), XSelectInput(3X11), X(1), X(7)
- ("\\b\\([a-z][-+_.:a-z0-9]+\\)([1-9][X1a-z]*)\\W\\|\\b\\(X\\)([1-9])\\W"
+ ("\\b\\(\\(?:[a-z][-+_.:a-z0-9]+([1-9][X1a-z]*)\\)\\W\\|\\b\\(?:X([1-9])\\)\\)\\W"
0 (>= gnus-button-man-level 5) gnus-button-handle-man 1)
;; MID or mail: To avoid too many false positives we don't try to catch
;; all kind of allowed MIDs or mail addresses. Domain part must contain
(defun gnus-button-handle-man (url)
"Fetch a man page."
+ (gnus-message 9 "`%s' `%s'" gnus-button-man-handler url)
+ (when (eq gnus-button-man-handler 'woman)
+ (setq url (gnus-replace-in-string url "([1-9][X1a-z]*).*\\'" "")))
+ (gnus-message 9 "`%s' `%s'" gnus-button-man-handler url)
(funcall gnus-button-man-handler url))
(defun gnus-button-handle-info-url (url)
(defcustom gnus-group-jump-to-group-prompt nil
"Default prompt for `gnus-group-jump-to-group'.
-If non-nil, the value should be a string, e.g. \"nnml:\",
-in which case `gnus-group-jump-to-group' offers \"Group: nnml:\"
-in the minibuffer prompt."
+
+If non-nil, the value should be a string or an alist. If it is a string,
+e.g. \"nnml:\", in which case `gnus-group-jump-to-group' offers \"Group:
+nnml:\" in the minibuffer prompt.
+
+If it is an alist, it must consist of \(NUMBER . PROMPT\) pairs, for example:
+\((1 . \"\") (2 . \"nnfolder+archive:\")). The element with number 0 is
+used when no prefix argument is given to `gnus-group-jump-to-group'."
:group 'gnus-group-various
:type '(choice (string :tag "Prompt string")
- (const :tag "Empty" nil)))
+ (const :tag "Empty" nil)
+ (repeat (cons (integer :tag "Argument")
+ (string :tag "Prompt string")))))
(defvar gnus-group-listing-limit 1000
"*A limit of the number of groups when listing.
(message "Quit reading the ephemeral group")
nil)))))
-(defun gnus-group-jump-to-group (group)
- "Jump to newsgroup GROUP."
+(defun gnus-group-jump-to-group (group &optional prompt)
+ "Jump to newsgroup GROUP.
+
+If PROMPT (the prefix) is a number, use the prompt specified in
+`gnus-group-jump-to-group-prompt'."
(interactive
- (list (gnus-group-completing-read-group-name
- "Group: " gnus-active-hashtb nil
- (gnus-read-active-file-p)
- gnus-group-jump-to-group-prompt
- 'gnus-group-history)))
+ (list (mm-string-make-unibyte
+ (completing-read
+ "Group: " gnus-active-hashtb nil
+ (gnus-read-active-file-p)
+ (if current-prefix-arg
+ (cdr (assq current-prefix-arg gnus-group-jump-to-group-prompt))
+ (or (and (stringp gnus-group-jump-to-group-prompt)
+ gnus-group-jump-to-group-prompt)
+ (let ((p (cdr (assq 0 gnus-group-jump-to-group-prompt))))
+ (and (stringp p) p))))
+ 'gnus-group-history))))
(when (equal group "")
(error "Empty group name"))
;; Either go to the line in the group buffer...
(unless (gnus-group-goto-group group)
;; ... or insert the line.
- (gnus-group-update-group group)
+ (if (or (gnus-active group)
+ (gnus-y-or-n-p
+ (format "Group %s is not active. Continue? " group)))
+ (gnus-group-update-group group)
+ (error "No such group: %s." group))
(gnus-group-goto-group group)))
;; Adjust cursor point.
(gnus-group-position-point))
(concat "^" (regexp-quote mail-header-separator) "$")
nil t)
(replace-match "" t t ))
- (when (or (gnus-group-read-only-p group)
+ (when (or (not (gnus-check-backend-function
+ 'request-accept-article group))
(not (setq group-art
(gnus-request-accept-article
group method t t))))
;;; gnus-picon.el --- displaying pretty icons in Gnus
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
;; Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
(when field
(dolist (address (mail-header-parse-addresses field))
(setq address (car address)
- rhs (cadr (split-string address "@"))
- ace (idna-to-ascii rhs))
- (when (and (not (equalp rhs ace))
+ rhs (downcase (cadr (split-string address "@")))
+ ace (downcase (idna-to-ascii rhs)))
+ (when (and (not (equal rhs ace))
(or (not (eq message-use-idna 'ask))
(y-or-n-p (format "Replace %s with %s? " rhs ace))))
(goto-char (point-min))
(if formatter
(funcall formatter header value)
(insert header-string ": " value))
- (message-fill-field)
+ (goto-char (message-fill-field))
;; We check whether the value was ended by a
- ;; newline. If now, we insert one.
+ ;; newline. If not, we insert one.
(unless (bolp)
(insert "\n"))
(forward-line -1)))
(message-narrow-to-field)
(let ((field-name (message-field-name)))
(funcall (or (cadr (assq field-name message-field-fillers))
- 'message-fill-field-general))))))
+ 'message-fill-field-general)))
+ (point-max))))
(defun message-fill-field-address ()
(while (not (eobp))
t)
(deffoo nntp-request-set-mark (group actions &optional server)
- (nntp-possibly-create-directory group server)
(unless nntp-marks-is-evil
+ (nntp-possibly-create-directory group server)
(nntp-open-marks group server)
(dolist (action actions)
(let ((range (nth 0 action))
nil)
(deffoo nntp-request-update-info (group info &optional server)
- (nntp-possibly-create-directory group server)
+ (unless nntp-marks-is-evil
+ (nntp-possibly-create-directory group server))
(when (and (not nntp-marks-is-evil) (nntp-marks-changed-p group server))
(nnheader-message 8 "Updating marks for %s..." group)
(nntp-open-marks group server)