Commit 91472578 authored by Miles Bader's avatar Miles Bader

Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-243

Merge from gnus--rel--5.10

Patches applied:

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

   - Update from CVS

2005-04-06  Katsumi Yamaoka  <yamaoka@jpl.org>

   * lisp/calendar/time-date.el (time-to-seconds): Don't use the #xhhhh
   syntax which Emacs 20 doesn't support.
   (seconds-to-time, days-to-time, time-subtract, time-add): Ditto.

2005-04-06  Katsumi Yamaoka  <yamaoka@jpl.org>

   * lisp/gnus/mm-util.el (mm-coding-system-p): Don't return binary for the nil
   argument in XEmacs.

   * lisp/gnus/nnrss.el (nnrss-compatible-encoding-alist): New variable.
   (nnrss-request-group): Decode group name first.
   (nnrss-request-article): Make a text/plain article if mml-to-mime
   failed.
   (nnrss-get-encoding): Return a compatible encoding according to
   nnrss-compatible-encoding-alist.
   (nnrss-opml-export): Use dolist.
   (nnrss-find-el): Use consp instead of listp.
   (nnrss-order-hrefs): Use dolist.

2005-04-06  Arne J,Ax(Brgensen  <arne@arnested.dk>

   * lisp/gnus/nnrss.el (nnrss-verbose): Remove.
   (nnrss-request-group): Use `nnheader-message' instead.

2005-04-06  Mark Plaksin  <happy@usg.edu>  (tiny change)

   * lisp/gnus/nnrss.el (nnrss-verbose): New variable.
   (nnrss-request-group): Make it say nnrss is requesting a group.

2005-04-06  Katsumi Yamaoka  <yamaoka@jpl.org>

   * lisp/gnus/gnus-agent.el (gnus-agent-group-path): Decode group name.
   (gnus-agent-group-pathname): Ditto.

   * lisp/gnus/gnus-cache.el (gnus-cache-file-name): Decode group name.

   * lisp/gnus/gnus-group.el (gnus-group-line-format-alist): Use decoded group
   name for only %g and %c.
   (gnus-group-insert-group-line): Bind gnus-tmp-decoded-group
   instead of gnus-tmp-group to decoded group name.
   (gnus-group-make-group): Decode group name.
   (gnus-group-delete-group): Ditto.
   (gnus-group-make-rss-group): Exclude `/'s from group names;
   register the group data after opening the nnrss group; unify
   non-ASCII group names; encode group name.
   (gnus-group-catchup-current): Decode group name.
   (gnus-group-expire-articles-1): Ditto.
   (gnus-group-set-current-level): Ditto.
   (gnus-group-kill-group): Ditto.

   * lisp/gnus/gnus-spec.el (gnus-update-format-specifications): Flush the
   group format spec cache if it doesn't support decoded group names.

   * lisp/gnus/mm-url.el (mm-url-predefined-programs): Add --silent arg to curl.

   * lisp/gnus/nnrss.el: Require rfc2047 and mml.
   (nnrss-file-coding-system): New variable.
   (nnrss-format-string): Redefine it as an inline function.
   (nnrss-decode-group-name): New function.
   (nnrss-string-as-multibyte): Remove.
   (nnrss-retrieve-headers): Decode group name; don't use
   nnrss-format-string.
   (nnrss-request-group): Decode group name.
   (nnrss-request-article): Decode group name; allow a Message-ID as
   well as an article number; don't use nnrss-format-string; encode a
   Message-ID string which may contain non-ASCII characters; use
   mml-to-mime to compose a MIME article; use search-forward instead
   of re-search-forward.
   (nnrss-request-expire-articles): Decode group name.
   (nnrss-request-delete-group): Delete entries in nnrss-group-alist
   as well; decode group name.
   (nnrss-get-encoding): Fix regexp.
   (nnrss-fetch): Clarify error message.
   (nnrss-read-server-data): Use insert-file-contents instead of load;
   bind file-name-coding-system; use multibyte buffer.
   (nnrss-save-server-data): Insert newline; bind
   coding-system-for-write to the value of nnrss-file-coding-system;
   bind file-name-coding-system; add coding cookie.
   (nnrss-read-group-data): Use insert-file-contents instead of load;
   bind file-name-coding-system; use multibyte buffer.
   (nnrss-save-group-data): Bind coding-system-for-write to the
   value of nnrss-file-coding-system; bind file-name-coding-system.
   (nnrss-decode-entities-string): Rename from n-d-e-unibyte-string;
   make it work with non-ASCII text.
   (nnrss-opml-export): Use mm-set-buffer-file-coding-system instead
   of set-buffer-file-coding-system.
   (nnrss-find-el): Check carefully whether there's a list of string
   which old xml.el may return rather than a string; make it work
   with old xml.el as well.

2005-04-06  Tsuyoshi AKIHO  <akiho@kawachi.zaq.ne.jp>

   * lisp/gnus/gnus-sum.el (gnus-summary-walk-group-buffer): Decode group name.

   * lisp/gnus/nnrss.el (nnrss-get-encoding): New function.
   (nnrss-fetch): Use unibyte buffer initially; bind
   coding-system-for-read while performing mm-url-insert; remove ^Ms;
   decode contents according to the encoding attribute.
   (nnrss-save-group-data): Add coding cookie.
   (nnrss-mime-encode-string): New function.
   (nnrss-check-group): Use it to encode subject and author.

2005-04-06  Maciek Pasternacki  <maciekp@japhy.fnord.org>  (tiny change)

   * lisp/gnus/nnrss.el (nnrss-fetch): Signal an error if w3-parse-buffer also
   failed.

2005-04-06  Jesper Harder  <harder@ifa.au.dk>

   * lisp/gnus/mm-util.el (mm-subst-char-in-string): Support inplace.

   * lisp/gnus/nnrss.el: Pedantic docstring and whitespace fixes (courtesy of
   checkdoc.el).
   (nnrss-request-article): Cleanup.
   (nnrss-request-delete-group): Use nnrss-make-filename.
   (nnrss-read-server-data): Use nnrss-make-filename; use load.
   (nnrss-save-server-data): Use nnrss-make-filename; use gnus-prin1.
   (nnrss-read-group-data): Fix off-by-one error.  From Joakim Verona
   <joakim@verona.se>; hash on description if link is missing; use
   nnrss-make-filename; use load.
   (nnrss-save-group-data): Use nnrss-make-filename; use gnus-prin1.
   (nnrss-make-filename): New function.
   (nnrss-close): New function.
   (nnrss-check-group): Hash on description if link is missing.
   (nnrss-get-namespace-prefix): Use string= to compare strings!
   Reported by David D. Smith <davidsmith@acm.org>.
   (nnrss-opml-export): Turn on sgml-mode.

2005-04-06  Mark A. Hershberger  <mah@everybody.org>

   * lisp/gnus/nnrss.el (nnrss-opml-import, nnrss-opml-export): New functions.

2005-04-06  Katsumi Yamaoka  <yamaoka@jpl.org>

   * man/gnus.texi (RSS): Addition.
parent 36178ae8
2005-04-06 Katsumi Yamaoka <yamaoka@jpl.org>
* calendar/time-date.el (time-to-seconds): Don't use the #xhhhh
syntax which Emacs 20 doesn't support.
(seconds-to-time, days-to-time, time-subtract, time-add): Ditto.
2005-04-09 Stefan Monnier <monnier@iro.umontreal.ca>
* arc-mode.el (archive-mode-map): Move initialization into
......
;;; time-date.el --- Date and time handling functions
;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005
;; Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Masanobu Umeda <umerin@mse.kyutech.ac.jp>
......@@ -112,15 +113,15 @@ and type 3 is the list (HIGH LOW MICRO)."
"Convert time value TIME to a floating point number.
You can use `float-time' instead."
(with-decoded-time-value ((high low micro time))
(+ (* 1.0 high #x10000)
(+ (* 1.0 high 65536)
low
(/ micro 1000000.0))))
;;;###autoload
(defun seconds-to-time (seconds)
"Convert SECONDS (a floating point number) to a time value."
(list (floor seconds #x10000)
(floor (mod seconds #x10000))
(list (floor seconds 65536)
(floor (mod seconds 65536))
(floor (* (- seconds (ffloor seconds)) 1000000))))
;;;###autoload
......@@ -138,10 +139,10 @@ You can use `float-time' instead."
(defun days-to-time (days)
"Convert DAYS into a time value."
(let* ((seconds (* 1.0 days 60 60 24))
(high (condition-case nil (floor (/ seconds #x10000))
(high (condition-case nil (floor (/ seconds 65536))
(range-error most-positive-fixnum))))
(list high (condition-case nil (floor (- seconds (* 1.0 high #x10000)))
(range-error #xffff)))))
(list high (condition-case nil (floor (- seconds (* 1.0 high 65536)))
(range-error 65535)))))
;;;###autoload
(defun time-since (time)
......@@ -170,7 +171,7 @@ Return the difference in the format of a time value."
micro (+ micro 1000000)))
(when (< low 0)
(setq high (1- high)
low (+ low #x10000)))
low (+ low 65536)))
(encode-time-value high low micro type)))
;;;###autoload
......@@ -185,9 +186,9 @@ Return the difference in the format of a time value."
(when (>= micro 1000000)
(setq low (1+ low)
micro (- micro 1000000)))
(when (>= low #x10000)
(when (>= low 65536)
(setq high (1+ high)
low (- low #x10000)))
low (- low 65536)))
(encode-time-value high low micro type)))
;;;###autoload
......
2005-04-06 Katsumi Yamaoka <yamaoka@jpl.org>
* mm-util.el (mm-coding-system-p): Don't return binary for the nil
argument in XEmacs.
* nnrss.el (nnrss-compatible-encoding-alist): New variable.
(nnrss-request-group): Decode group name first.
(nnrss-request-article): Make a text/plain article if mml-to-mime
failed.
(nnrss-get-encoding): Return a compatible encoding according to
nnrss-compatible-encoding-alist.
(nnrss-opml-export): Use dolist.
(nnrss-find-el): Use consp instead of listp.
(nnrss-order-hrefs): Use dolist.
2005-04-06 Arne J,Ax(Brgensen <arne@arnested.dk>
* nnrss.el (nnrss-verbose): Remove.
(nnrss-request-group): Use `nnheader-message' instead.
2005-04-06 Mark Plaksin <happy@usg.edu> (tiny change)
* nnrss.el (nnrss-verbose): New variable.
(nnrss-request-group): Make it say nnrss is requesting a group.
2005-04-06 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-agent.el (gnus-agent-group-path): Decode group name.
(gnus-agent-group-pathname): Ditto.
* gnus-cache.el (gnus-cache-file-name): Decode group name.
* gnus-group.el (gnus-group-line-format-alist): Use decoded group
name for only %g and %c.
(gnus-group-insert-group-line): Bind gnus-tmp-decoded-group
instead of gnus-tmp-group to decoded group name.
(gnus-group-make-group): Decode group name.
(gnus-group-delete-group): Ditto.
(gnus-group-make-rss-group): Exclude `/'s from group names;
register the group data after opening the nnrss group; unify
non-ASCII group names; encode group name.
(gnus-group-catchup-current): Decode group name.
(gnus-group-expire-articles-1): Ditto.
(gnus-group-set-current-level): Ditto.
(gnus-group-kill-group): Ditto.
* gnus-spec.el (gnus-update-format-specifications): Flush the
group format spec cache if it doesn't support decoded group names.
* mm-url.el (mm-url-predefined-programs): Add --silent arg to curl.
* nnrss.el: Require rfc2047 and mml.
(nnrss-file-coding-system): New variable.
(nnrss-format-string): Redefine it as an inline function.
(nnrss-decode-group-name): New function.
(nnrss-string-as-multibyte): Remove.
(nnrss-retrieve-headers): Decode group name; don't use
nnrss-format-string.
(nnrss-request-group): Decode group name.
(nnrss-request-article): Decode group name; allow a Message-ID as
well as an article number; don't use nnrss-format-string; encode a
Message-ID string which may contain non-ASCII characters; use
mml-to-mime to compose a MIME article; use search-forward instead
of re-search-forward.
(nnrss-request-expire-articles): Decode group name.
(nnrss-request-delete-group): Delete entries in nnrss-group-alist
as well; decode group name.
(nnrss-get-encoding): Fix regexp.
(nnrss-fetch): Clarify error message.
(nnrss-read-server-data): Use insert-file-contents instead of load;
bind file-name-coding-system; use multibyte buffer.
(nnrss-save-server-data): Insert newline; bind
coding-system-for-write to the value of nnrss-file-coding-system;
bind file-name-coding-system; add coding cookie.
(nnrss-read-group-data): Use insert-file-contents instead of load;
bind file-name-coding-system; use multibyte buffer.
(nnrss-save-group-data): Bind coding-system-for-write to the
value of nnrss-file-coding-system; bind file-name-coding-system.
(nnrss-decode-entities-string): Rename from n-d-e-unibyte-string;
make it work with non-ASCII text.
(nnrss-opml-export): Use mm-set-buffer-file-coding-system instead
of set-buffer-file-coding-system.
(nnrss-find-el): Check carefully whether there's a list of string
which old xml.el may return rather than a string; make it work
with old xml.el as well.
2005-04-06 Tsuyoshi AKIHO <akiho@kawachi.zaq.ne.jp>
* gnus-sum.el (gnus-summary-walk-group-buffer): Decode group name.
* nnrss.el (nnrss-get-encoding): New function.
(nnrss-fetch): Use unibyte buffer initially; bind
coding-system-for-read while performing mm-url-insert; remove ^Ms;
decode contents according to the encoding attribute.
(nnrss-save-group-data): Add coding cookie.
(nnrss-mime-encode-string): New function.
(nnrss-check-group): Use it to encode subject and author.
2005-04-06 Maciek Pasternacki <maciekp@japhy.fnord.org> (tiny change)
* nnrss.el (nnrss-fetch): Signal an error if w3-parse-buffer also
failed.
2005-04-06 Jesper Harder <harder@ifa.au.dk>
* mm-util.el (mm-subst-char-in-string): Support inplace.
* nnrss.el: Pedantic docstring and whitespace fixes (courtesy of
checkdoc.el).
(nnrss-request-article): Cleanup.
(nnrss-request-delete-group): Use nnrss-make-filename.
(nnrss-read-server-data): Use nnrss-make-filename; use load.
(nnrss-save-server-data): Use nnrss-make-filename; use gnus-prin1.
(nnrss-read-group-data): Fix off-by-one error. From Joakim Verona
<joakim@verona.se>; hash on description if link is missing; use
nnrss-make-filename; use load.
(nnrss-save-group-data): Use nnrss-make-filename; use gnus-prin1.
(nnrss-make-filename): New function.
(nnrss-close): New function.
(nnrss-check-group): Hash on description if link is missing.
(nnrss-get-namespace-prefix): Use string= to compare strings!
Reported by David D. Smith <davidsmith@acm.org>.
(nnrss-opml-export): Turn on sgml-mode.
2005-04-06 Mark A. Hershberger <mah@everybody.org>
* nnrss.el (nnrss-opml-import, nnrss-opml-export): New functions.
2005-04-04 Reiner Steib <Reiner.Steib@gmx.de>
* message.el (message-make-date): Add defvars in order to silence
......
;;; gnus-agent.el --- unplugged support for Gnus
;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
;; Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
......@@ -1371,7 +1371,7 @@ downloaded into the agent."
(nnheader-translate-file-chars
(nnheader-replace-duplicate-chars-in-string
(nnheader-replace-chars-in-string
(gnus-group-real-name group)
(gnus-group-real-name (gnus-group-decoded-name group))
?/ ?_)
?. ?_)))
(if (or nnmail-use-long-file-names
......@@ -1387,8 +1387,10 @@ downloaded into the agent."
;; unplugged. The agent must, therefore, use the same directory
;; while plugged.
(let ((gnus-command-method (or gnus-command-method
(gnus-find-method-for-group group))))
(nnmail-group-pathname (gnus-group-real-name group) (gnus-agent-directory))))
(gnus-find-method-for-group group))))
(nnmail-group-pathname (gnus-group-real-name
(gnus-group-decoded-name group))
(gnus-agent-directory))))
(defun gnus-agent-get-function (method)
(if (gnus-online method)
......
;;; gnus-cache.el --- cache interface for Gnus
;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
;; Free Software Foundation, Inc.
;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
;; 2004, 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
......@@ -421,6 +421,7 @@ Returns the list of articles removed."
(and (not unread) (not ticked) (not dormant) (memq 'read class))))
(defun gnus-cache-file-name (group article)
(setq group (gnus-group-decoded-name group))
(expand-file-name
(if (stringp article) article (int-to-string article))
(file-name-as-directory
......
......@@ -482,9 +482,15 @@ simple manner.")
(?T (gnus-range-length (cdr (assq 'tick gnus-tmp-marked))) ?d)
(?i (+ (gnus-range-length (cdr (assq 'dormant gnus-tmp-marked)))
(gnus-range-length (cdr (assq 'tick gnus-tmp-marked)))) ?d)
(?g gnus-tmp-group ?s)
(?g (if (boundp 'gnus-tmp-decoded-group)
gnus-tmp-decoded-group
gnus-tmp-group)
?s)
(?G gnus-tmp-qualified-group ?s)
(?c (gnus-short-group-name gnus-tmp-group) ?s)
(?c (gnus-short-group-name (if (boundp 'gnus-tmp-decoded-group)
gnus-tmp-decoded-group
gnus-tmp-group))
?s)
(?C gnus-tmp-comment ?s)
(?D gnus-tmp-newsgroup-description ?s)
(?o gnus-tmp-moderated ?c)
......@@ -1441,8 +1447,8 @@ if it is a string, only list groups matching REGEXP."
(point)
(prog1 (1+ (point))
;; Insert the text.
(let ((gnus-tmp-group (gnus-group-name-decode
gnus-tmp-group group-name-charset)))
(let ((gnus-tmp-decoded-group (gnus-group-name-decode
gnus-tmp-group group-name-charset)))
(eval gnus-group-line-format-spec)))
`(gnus-group ,(gnus-intern-safe gnus-tmp-group gnus-active-hashtb)
gnus-unread ,(if (numberp number)
......@@ -2244,7 +2250,7 @@ ADDRESS."
(nname (if method (gnus-group-prefixed-name name meth) name))
backend info)
(when (gnus-gethash nname gnus-newsrc-hashtb)
(error "Group %s already exists" nname))
(error "Group %s already exists" (gnus-group-decoded-name nname)))
;; Subscribe to the new group.
(gnus-group-change-level
(setq info (list t nname gnus-level-default-subscribed nil nil meth))
......@@ -2305,20 +2311,21 @@ be removed from the server, even when it's empty."
(unless (gnus-check-backend-function 'request-delete-group group)
(error "This back end does not support group deletion"))
(prog1
(if (and (not no-prompt)
(not (gnus-yes-or-no-p
(format
"Do you really want to delete %s%s? "
group (if force " and all its contents" "")))))
() ; Whew!
(gnus-message 6 "Deleting group %s..." group)
(if (not (gnus-request-delete-group group force))
(gnus-error 3 "Couldn't delete group %s" group)
(gnus-message 6 "Deleting group %s...done" group)
(gnus-group-goto-group group)
(gnus-group-kill-group 1 t)
(gnus-sethash group nil gnus-active-hashtb)
t))
(let ((group-decoded (gnus-group-decoded-name group)))
(if (and (not no-prompt)
(not (gnus-yes-or-no-p
(format
"Do you really want to delete %s%s? "
group-decoded (if force " and all its contents" "")))))
() ; Whew!
(gnus-message 6 "Deleting group %s..." group-decoded)
(if (not (gnus-request-delete-group group force))
(gnus-error 3 "Couldn't delete group %s" group-decoded)
(gnus-message 6 "Deleting group %s...done" group-decoded)
(gnus-group-goto-group group)
(gnus-group-kill-group 1 t)
(gnus-sethash group nil gnus-active-hashtb)
t)))
(gnus-group-position-point)))
(defun gnus-group-rename-group (group new-name)
......@@ -2588,16 +2595,26 @@ If there is, use Gnus to create an nnrss group"
(setq url (read-from-minibuffer "URL to Search for RSS: ")))
(let ((feedinfo (nnrss-discover-feed url)))
(if feedinfo
(let ((title (read-from-minibuffer "Title: "
(cdr (assoc 'title
feedinfo))))
(let ((title (gnus-newsgroup-savable-name
(read-from-minibuffer "Title: "
(gnus-newsgroup-savable-name
(or (cdr (assoc 'title
feedinfo))
"")))))
(desc (read-from-minibuffer "Description: "
(cdr (assoc 'description
feedinfo))))
(href (cdr (assoc 'href feedinfo))))
(push (list title href desc)
nnrss-group-alist)
(gnus-group-make-group title '(nnrss ""))
(href (cdr (assoc 'href feedinfo)))
(encodable (mm-coding-system-p 'utf-8)))
(when encodable
;; Unify non-ASCII text.
(setq title (mm-decode-coding-string
(mm-encode-coding-string title 'utf-8) 'utf-8)))
(gnus-group-make-group (if encodable
(mm-encode-coding-string title 'utf-8)
title)
'(nnrss ""))
(push (list title href desc) nnrss-group-alist)
(nnrss-save-server-data nil))
(error "No feeds found for %s" url))))
......@@ -3101,7 +3118,7 @@ up is returned."
"Do you really want to mark all articles in %s as read? "
"Mark all unread articles in %s as read? ")
(if (= (length groups) 1)
(car groups)
(gnus-group-decoded-name (car groups))
(format "these %d groups" (length groups)))))))
n
(while (setq group (pop groups))
......@@ -3179,7 +3196,8 @@ Uses the process/prefix convention."
(defun gnus-group-expire-articles-1 (group)
(when (gnus-check-backend-function 'request-expire-articles group)
(gnus-message 6 "Expiring articles in %s..." group)
(gnus-message 6 "Expiring articles in %s..."
(gnus-group-decoded-name group))
(let* ((info (gnus-get-info group))
(expirable (if (gnus-group-total-expirable-p group)
(cons nil (gnus-list-of-read-articles group))
......@@ -3204,7 +3222,8 @@ Uses the process/prefix convention."
(gnus-request-expire-articles
(gnus-uncompress-sequence (cdr expirable)) group))))
(gnus-close-group group))
(gnus-message 6 "Expiring articles in %s...done" group)
(gnus-message 6 "Expiring articles in %s...done"
(gnus-group-decoded-name group))
;; Return the list of un-expired articles.
(cdr expirable))))
......@@ -3243,7 +3262,8 @@ Uses the process/prefix convention."
(while (setq group (pop groups))
(gnus-group-remove-mark group)
(gnus-message 6 "Changed level of %s from %d to %d"
group (or (gnus-group-group-level) gnus-level-killed)
(gnus-group-decoded-name group)
(or (gnus-group-group-level) gnus-level-killed)
level)
(gnus-group-change-level
group level (or (gnus-group-group-level) gnus-level-killed))
......@@ -3392,7 +3412,7 @@ of groups killed."
gnus-list-of-killed-groups))
(gnus-group-change-level
(if entry entry group) gnus-level-killed (if entry nil level))
(message "Killed group %s" group))
(message "Killed group %s" (gnus-group-decoded-name group)))
;; If there are lots and lots of groups to be killed, we use
;; this thing instead.
(dolist (group (nreverse groups))
......
;;; gnus-spec.el --- format spec functions for Gnus
;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
;; Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
......@@ -196,6 +196,13 @@ Return a list of updated types."
(not (equal emacs-version
(cdr (assq 'version gnus-format-specs)))))
(setq gnus-format-specs nil))
;; Flush the group format spec cache if it doesn't support decoded
;; group names.
(when (memq 'group types)
(let ((spec (assq 'group gnus-format-specs)))
(unless (string-match " gnus-tmp-decoded-group[ )]"
(gnus-prin1-to-string (nth 2 spec)))
(setq gnus-format-specs (delq spec gnus-format-specs)))))
;; Go through all the formats and see whether they need updating.
(let (new-format entry type val updated)
......
......@@ -7254,11 +7254,12 @@ If BACKWARD, the previous article is selected instead of the next."
(if (and group
(not (gnus-ephemeral-group-p gnus-newsgroup-name)))
(format " (Type %s for %s [%s])"
(single-key-description cmd) group
(single-key-description cmd)
(gnus-group-decoded-name group)
(car (gnus-gethash group gnus-newsrc-hashtb)))
(format " (Type %s to exit %s)"
(single-key-description cmd)
gnus-newsgroup-name))))
(gnus-group-decoded-name gnus-newsgroup-name)))))
;; Confirm auto selection.
(setq key (car (setq keve (gnus-read-event-char prompt)))
ended t)
......
......@@ -59,7 +59,7 @@
'((wget "wget" "--user-agent=mm-url" "-q" "-O" "-")
(w3m "w3m" "-dump_source")
(lynx "lynx" "-source")
(curl "curl")))
(curl "curl" "--silent")))
(defcustom mm-url-program
(cond
......
......@@ -57,9 +57,11 @@
mm-mime-mule-charset-alist)
nil t))))
(subst-char-in-string
. (lambda (from to string) ;; stolen (and renamed) from nnheader.el
"Replace characters in STRING from FROM to TO."
(let ((string (substring string 0)) ;Copy string.
. (lambda (from to string &optional inplace)
;; stolen (and renamed) from nnheader.el
"Replace characters in STRING from FROM to TO.
Unless optional argument INPLACE is non-nil, return a new string."
(let ((string (if inplace string (copy-sequence string)))
(len (length string))
(idx 0))
;; Replace all occurrences of FROM with TO.
......@@ -153,7 +155,7 @@ In XEmacs, also return non-nil if CS is a coding system object.
If CS is available, return CS itself in Emacs, and return a coding
system object in XEmacs."
(if (fboundp 'find-coding-system)
(find-coding-system cs)
(and cs (find-coding-system cs))
(if (fboundp 'coding-system-p)
(when (coding-system-p cs)
cs)
......
This diff is collapsed.
2005-04-06 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus.texi (RSS): Addition.
2005-04-09 Luc Teirlinck <teirllm@auburn.edu>
* display.texi (Useless Whitespace): `indicate-unused-lines' is
......
......@@ -15873,14 +15873,45 @@ changes to a wiki (e.g. @url{http://cliki.net/recent-changes.rdf}).
@acronym{RSS} has a quite regular and nice interface, and it's
possible to get the information Gnus needs to keep groups updated.
Note: you had better use Emacs which supports the @code{utf-8} coding
system because @acronym{RSS} uses UTF-8 for encoding non-@acronym{ASCII}
text by default. It is also used by default for non-@acronym{ASCII}
group names.
@kindex G R (Summary)
Use @kbd{G R} from the summary buffer to subscribe to a feed---you
will be prompted for the location of the feed.
Use @kbd{G R} from the summary buffer to subscribe to a feed---you will
be prompted for the location, the title and the description of the feed.
The title, which allows any characters, will be used for the group name
and the name of the group data file. The description can be omitted.
An easy way to get started with @code{nnrss} is to say something like
the following in the group buffer: @kbd{B nnrss RET RET y}, then
subscribe to groups.
The @code{nnrss} back end saves the group data file in
@code{nnrss-directory} (see below) for each @code{nnrss} group. File
names containing non-@acronym{ASCII} characters will be encoded by the
coding system specified with the @code{nnmail-pathname-coding-system}
variable. If it is @code{nil}, in Emacs the coding system defaults to
the value of @code{default-file-name-coding-system}. If you are using
XEmacs and want to use non-@acronym{ASCII} group names, you should set
the value for the @code{nnmail-pathname-coding-system} variable properly.
@cindex OPML
You can also use the following commands to import and export your
subscriptions from a file in @acronym{OPML} format (Outline Processor
Markup Language).
@defun nnrss-opml-import file
Prompt for an @acronym{OPML} file, and subscribe to each feed in the
file.
@end defun
@defun nnrss-opml-export
Write your current @acronym{RSS} subscriptions to a buffer in
@acronym{OPML} format.
@end defun
The following @code{nnrss} variables can be altered:
@table @code
......@@ -15889,6 +15920,13 @@ The following @code{nnrss} variables can be altered:
The directory where @code{nnrss} stores its files. The default is
@file{~/News/rss/}.
@item nnrss-file-coding-system
@vindex nnrss-file-coding-system
The coding system used when reading and writing the @code{nnrss} groups
data files. The default is the value of
@code{mm-universal-coding-system} (which defaults to @code{emacs-mule}
in Emacs or @code{escape-quoted} in XEmacs).
@item nnrss-use-local
@vindex nnrss-use-local
@findex nnrss-generate-download-script
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment