the latest one are detected. You can then remove those shadows manually
or remove them using `make remove-installed-shadows'.
+** New `make.bat' for compiling and installing Gnus under MS Windows
+
+Use `make.bat' if you want to install Gnus under MS Windows, the first
+argument to the batch-program should be the directory where `xemacs.exe'
+respectively `emacs.exe' is located, if you want to install Gnus after
+compiling it, give `make.bat' `/copy' as the second parameter.
+
+`make.bat' has been rewritten from scratch, it now features automatic
+recognition of XEmacs and GNU Emacs, generates `gnus-load.el', checks if
+errors occur while compilation and generation of info files and reports
+them at the end of the build process. It now uses `makeinfo' if it is
+available and falls back to `infohack.el' otherwise. `make.bat' should
+now install all files which are necessary to run Gnus and be generally a
+complete replacement for the `configure; make; make install' cycle used
+under Unix systems.
+
+The new `make.bat' makes `make-x.bat' and `xemacs.mak' superfluous, so
+they have been removed.
+
+** `~/News/overview/' not used.
+
+As a result of the following change, the `~/News/overview/' directory is
+not used any more. You can safely delete the entire hierarchy.
+
+** `(require 'gnus-load)'
+
+If you use a stand-alone Gnus distribution, you'd better add `(require
+'gnus-load)' into your `~/.emacs' after adding the Gnus lisp directory
+into load-path.
+
+File `gnus-load.el' contains autoload commands, functions and variables,
+some of which may not be included in distributions of Emacsen.
+
+
\f
* New packages and libraries within Gnus
** The nntp back end stores article marks in `~/News/marks'.
-The directory can be changed using the (customizable) variable
-`nntp-marks-directory', and marks can be disabled using the (back end)
-variable `nntp-marks-is-evil'. The advantage of this is that you can
-copy `~/News/marks' (using rsync, scp or whatever) to another Gnus
-installation, and it will realize what articles you have read and
-marked. The data in `~/News/marks' has priority over the same data in
-`~/.newsrc.eld'.
+Earlier it was generated when the user configurable email address was
+different from the Gnus guessed default user address. As the guessing
+algorithm is rarely correct these days, and (more controversially) the
+only use of the Sender: header was to check if you are entitled to
+cancel/supersede news (which is now solved by Cancel Locks instead, see
+another entry), generation of the header has been disabled by default.
+See the variables `message-required-headers',
+`message-required-news-headers', and `message-required-mail-headers'.
** You can import and export your RSS subscriptions from OPML files. *Note
RSS::.
Author: Simon Josefsson <simon@josefsson.org>
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
Free Software Foundation, Inc.
-License: GNU General Public License version 2 or later (see COPYING)
+License: GNU General Public License version 3 or later (see COPYING)
Files: catchup.pbm catchup.xpm cu-exit.pbm cu-exit.xpm
describe-group.pbm describe-group.xpm exit-gnus.pbm exit-gnus.xpm
Author: Luis Fernandes <elf@ee.ryerson.ca>
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
Free Software Foundation, Inc.
-License: GNU General Public License version 2 or later (see COPYING)
+License: GNU General Public License version 3 or later (see COPYING)
The following icons are from GNOME 2.x. They are not part of Emacs,
but distributed and used by Emacs.
Tor Lillqvist, Garrett LeSage, Dennis Cranston, Jody Goldberg, Luca
Ferretti, Mark Finlay, Lapo Calamandrei, Andreas Nilsson and Marco
Pesenti Gritti
- License: GNU General Public License version 2 (see COPYING)
+ License: GNU General Public License version 2
toggle-subscription.xpm (GNOME stock/document/stock_task-recurring)
kill-group.pbm and kill-group.xpm are converted from close.xpm
Tor Lillqvist, Garrett LeSage, Dennis Cranston, Jody Goldberg, Luca
Ferretti, Mark Finlay, Lapo Calamandrei, Andreas Nilsson and Marco
Pesenti Gritti
- License: GNU General Public License version 2 (see COPYING)
+ License: GNU General Public License version 2
Emacs images and their GNOME source (GNOME icons are from stock/net/
directory unless otherwise stated):
Schroeder, Oliver Scholz, Per Abrahamsen, Kim F. Storm.
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
Free Software Foundation, Inc.
-License: GNU General Public License version 2 or later (see COPYING)
+License: GNU General Public License version 3 or later (see COPYING)
(mml-generate-mime-1): Don't encode body if it is specified to be in
raw form; don't make buffer be unibyte when inserting multibyte string.
+2007-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * sha1.el: Fix up comment style.
+ (sha1-F0, sha1-F1, sha1-F2, sha1-F3, sha1-S1, sha1-S5, sha1-S30)
+ (sha1-OP, sha1-add-to-H): Use new-style backquotes.
+
+ * hex-util.el: Fix up comment style.
+ (hex-char-to-num, num-to-hex-char): Use new-style backquotes.
+
+ * gnus-salt.el: Use with-current-buffer.
+ (gnus-pick-setup-message): Fix long-standing typo.
+
2007-08-17 Katsumi Yamaoka <yamaoka@jpl.org>
* imap.el (imap-logout-timeout): New variable.
according to gnus-maximum-newsgroup.
* gnus-sum.el (gnus-articles-to-read, gnus-list-of-unread-articles)
- (gnus-list-of-read-articles, gnus-sequence-of-unread-articles): Limit
- the range of articles according to gnus-maximum-newsgroup.
+ (gnus-list-of-read-articles, gnus-sequence-of-unread-articles):
+ Limit the range of articles according to gnus-maximum-newsgroup.
2007-08-14 Tassilo Horn <tassilo@member.fsf.org>
not decoded ones according to nnmail-group-names-not-encoded-p.
(nnml-generate-active-info): Use nnml-encoded-group-name.
+2007-08-08 Glenn Morris <rgm@gnu.org>
+
+ * gmm-utils.el, gnus-async.el, gnus-msg.el, gnus-score.el
+ * gnus-util.el, imap.el, mailcap.el, nnimap.el: Replace `iff' in
+ doc-strings and comments.
+
+2007-07-25 Glenn Morris <rgm@gnu.org>
+
+ * Relicense all FSF files to GPLv3 or later.
+
2007-07-23 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-sum.el (gnus-summary-move-article): Make
;;;###autoload
(defun gmm-widget-p (symbol)
- "Non-nil iff SYMBOL is a widget."
+ "Non-nil if SYMBOL is a widget."
(get symbol 'widget-type))
;; Copy of the `nnmail-lazy' code from `nnmail.el':
(gnus-async-delete-prefetched-entry entry))))))
(defun gnus-async-prefetched-article-entry (group article)
- "Return the entry for ARTICLE in GROUP iff it has been prefetched."
+ "Return the entry for ARTICLE in GROUP if it has been prefetched."
(let ((entry (save-excursion
(gnus-async-set-buffer)
(assq (intern (format "%s-%d" group article)
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published
-;; by the Free Software Foundation; either version 2 of the License,
-;; or (at your option) any later version.
+;; by the Free Software Foundation; either version 3, or (at your option)
+;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful, but
;; WITHOUT ANY WARRANTY; without even the implied warranty of
;; General Public License for more details.
;; You should have received a copy of the GNU General Public License
-;; along with this program; if not, write to the Free Software
-;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-;; MA 02110-1301, USA.
+;; along with GNU Emacs; see the file COPYING. If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
;;; Commentary:
This is done because new users often reply by mistake when reading
news.
This can also be a function receiving the group name as the only
-parameter which should return non-nil iff a confirmation is needed, or
-a regexp, in which case a confirmation is asked for iff the group name
+parameter, which should return non-nil if a confirmation is needed; or
+a regexp, in which case a confirmation is asked for if the group name
matches the regexp."
:version "22.1"
:group 'gnus-message
:type '(choice (const :tag "No" nil)
(const :tag "Yes" t)
- (regexp :tag "Iff group matches regexp")
- (function :tag "Iff function evaluates to non-nil")))
+ (regexp :tag "If group matches regexp")
+ (function :tag "If function evaluates to non-nil")))
(defcustom gnus-confirm-treat-mail-like-news
nil
(defun gnus-pick-setup-message ()
"Make Message do the right thing on exit."
(when (and (gnus-buffer-live-p gnus-summary-buffer)
- (save-excursion
- (set-buffer gnus-summary-buffer)
+ (with-current-buffer gnus-summary-buffer
gnus-pick-mode))
(message-add-action
- '(gnus-configure-windows ,gnus-current-window-configuration t)
+ `(gnus-configure-windows ,gnus-current-window-configuration t)
'send 'exit 'postpone 'kill)))
(defvar gnus-pick-line-number 1)
(interactive (list (gnus-tree-article-number)))
(let ((buf (current-buffer)))
(when article
- (save-excursion
- (set-buffer gnus-summary-buffer)
+ (with-current-buffer gnus-summary-buffer
(gnus-summary-goto-article article))
(select-window (get-buffer-window buf)))))
(defun gnus-get-tree-buffer ()
"Return the tree buffer properly initialized."
- (save-excursion
- (set-buffer (gnus-get-buffer-create gnus-tree-buffer))
+ (with-current-buffer (gnus-get-buffer-create gnus-tree-buffer)
(unless (eq major-mode 'gnus-tree-mode)
(gnus-tree-mode))
(current-buffer)))
"Highlight current line according to `gnus-summary-highlight'."
(let ((list gnus-summary-highlight)
face)
- (save-excursion
- (set-buffer gnus-summary-buffer)
+ (with-current-buffer gnus-summary-buffer
(let* ((score (or (cdr (assq article gnus-newsgroup-scored))
gnus-summary-default-score 0))
(default gnus-summary-default-score)
(defun gnus-generate-tree (thread)
"Generate a thread tree for THREAD."
- (save-excursion
- (set-buffer (gnus-get-tree-buffer))
+ (with-current-buffer (gnus-get-tree-buffer)
(let ((buffer-read-only nil)
(gnus-tmp-indent 0))
(erase-buffer)
(defun gnus-possibly-generate-tree (article &optional force)
"Generate the thread tree for ARTICLE if it isn't displayed already."
- (when (save-excursion
- (set-buffer gnus-summary-buffer)
+ (when (with-current-buffer gnus-summary-buffer
(and gnus-use-trees
gnus-show-threads
(vectorp (gnus-summary-article-header article))))
(save-excursion
- (let ((top (save-excursion
- (set-buffer gnus-summary-buffer)
+ (let ((top (with-current-buffer gnus-summary-buffer
(gnus-cut-thread
(gnus-remove-thread
(mail-header-id
(defun gnus-tree-perhaps-minimize ()
(when (and gnus-tree-minimize-window
(get-buffer gnus-tree-buffer))
- (save-excursion
- (set-buffer gnus-tree-buffer)
+ (with-current-buffer gnus-tree-buffer
(gnus-tree-minimize))))
(defun gnus-highlight-selected-tree (article)
(gnus-horizontal-recenter)
(select-window selected))))
;; If we remove this save-excursion, it updates the wrong mode lines?!?
- (save-excursion
- (set-buffer gnus-tree-buffer)
+ (with-current-buffer gnus-tree-buffer
(gnus-set-mode-line 'tree))
(set-buffer buf)))
(defun gnus-tree-highlight-article (article face)
- (save-excursion
- (set-buffer (gnus-get-tree-buffer))
+ (with-current-buffer (gnus-get-tree-buffer)
(let (region)
(when (setq region (gnus-tree-article-region article))
(gnus-put-text-property (car region) (cdr region) 'face face)
(let ((buffer (symbol-value (intern (format "gnus-carpal-%s-buffer" type)))))
(if (get-buffer buffer)
()
- (save-excursion
- (set-buffer (gnus-get-buffer-create buffer))
+ (with-current-buffer (gnus-get-buffer-create buffer)
(gnus-carpal-mode)
(setq gnus-carpal-attached-buffer
(intern (format "gnus-%s-buffer" type)))
(const :tag "ask" nil)))
(defcustom gnus-score-default-fold nil
- "Use case folding for new score file entries iff not nil."
+ "Non-nil means use case folding for new score file entries."
:group 'gnus-score-default
:type 'boolean)
`(setq ,alist (delq (,fun ,key ,alist) ,alist))))
(defun gnus-globalify-regexp (re)
- "Return a regexp that matches a whole line, iff RE matches a part of it."
+ "Return a regexp that matches a whole line, if RE matches a part of it."
(concat (unless (string-match "^\\^" re) "^.*")
re
(unless (string-match "\\$$" re) ".*$")))
(eval-when-compile
(defmacro hex-char-to-num (chr)
- (` (let ((chr (, chr)))
- (cond
- ((and (<= ?a chr)(<= chr ?f)) (+ (- chr ?a) 10))
- ((and (<= ?A chr)(<= chr ?F)) (+ (- chr ?A) 10))
- ((and (<= ?0 chr)(<= chr ?9)) (- chr ?0))
- (t (error "Invalid hexadecimal digit `%c'" chr))))))
+ `(let ((chr ,chr))
+ (cond
+ ((and (<= ?a chr)(<= chr ?f)) (+ (- chr ?a) 10))
+ ((and (<= ?A chr)(<= chr ?F)) (+ (- chr ?A) 10))
+ ((and (<= ?0 chr)(<= chr ?9)) (- chr ?0))
+ (t (error "Invalid hexadecimal digit `%c'" chr)))))
(defmacro num-to-hex-char (num)
- (` (aref "0123456789abcdef" (, num)))))
+ `(aref "0123456789abcdef" ,num)))
(defun decode-hex-string (string)
"Decode hexadecimal STRING to octet string."
(dst (make-string (/ len 2) 0))
(idx 0)(pos 0))
(while (< pos len)
-;;; logior and lsh are not byte-coded.
-;;; (aset dst idx (logior (lsh (hex-char-to-num (aref string pos)) 4)
-;;; (hex-char-to-num (aref string (1+ pos)))))
+ ;; logior and lsh are not byte-coded.
+ ;; (aset dst idx (logior (lsh (hex-char-to-num (aref string pos)) 4)
+ ;; (hex-char-to-num (aref string (1+ pos)))))
(aset dst idx (+ (* (hex-char-to-num (aref string pos)) 16)
(hex-char-to-num (aref string (1+ pos)))))
(setq idx (1+ idx)
(dst (make-string (* len 2) 0))
(idx 0)(pos 0))
(while (< pos len)
-;;; logand and lsh are not byte-coded.
-;;; (aset dst idx (num-to-hex-char (logand (lsh (aref string pos) -4) 15)))
+ ;; logand and lsh are not byte-coded.
+ ;; (aset dst idx (num-to-hex-char (logand (lsh (aref string pos) -4) 15)))
(aset dst idx (num-to-hex-char (/ (aref string pos) 16)))
(setq idx (1+ idx))
-;;; (aset dst idx (num-to-hex-char (logand (aref string pos) 15)))
+ ;; (aset dst idx (num-to-hex-char (logand (aref string pos) 15)))
(aset dst idx (num-to-hex-char (% (aref string pos) 16)))
(setq idx (1+ idx)
pos (1+ pos)))
(provide 'hex-util)
-;;; arch-tag: fe8aaa79-6c86-400e-813f-5a8cc4cb3859
+;; arch-tag: fe8aaa79-6c86-400e-813f-5a8cc4cb3859
;;; hex-util.el ends here
(imap-mailbox-get-1 'search imap-current-mailbox)))))
(defun imap-message-flag-permanent-p (flag &optional mailbox buffer)
- "Return t iff FLAG can be permanently (between IMAP sessions) saved on articles, in MAILBOX on server in BUFFER."
+ "Return t if FLAG can be permanently (between IMAP sessions) saved on articles, in MAILBOX on server in BUFFER."
(with-current-buffer (or buffer (current-buffer))
(or (member "\\*" (imap-mailbox-get 'permanentflags mailbox))
(member flag (imap-mailbox-get 'permanentflags mailbox)))))
results)))
(defun mailcap-mailcap-entry-passes-test (info)
- "Return non-nil iff mailcap entry INFO passes its test clause.
+ "Return non-nil if mailcap entry INFO passes its test clause.
Also return non-nil if no test clause is present."
(let ((test (assq 'test info)) ; The test clause
status)
(defvar mailcap-viewer-test-cache nil)
(defun mailcap-viewer-passes-test (viewer-info type-info)
- "Return non-nil iff viewer specified by VIEWER-INFO passes its test clause.
+ "Return non-nil if viewer specified by VIEWER-INFO passes its test clause.
Also return non-nil if it has no test clause. TYPE-INFO is an argument
to supply to the test."
(let* ((test-info (assq 'test viewer-info))
;;;
(defun mailcap-viewer-lessp (x y)
- "Return t iff viewer X is more desirable than viewer Y."
+ "Return t if viewer X is more desirable than viewer Y."
(let ((x-wild (string-match "[*?]" (or (cdr-safe (assq 'type x)) "")))
(y-wild (string-match "[*?]" (or (cdr-safe (assq 'type y)) "")))
(x-lisp (not (stringp (or (cdr-safe (assq 'viewer x)) ""))))
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2 of the License, or
-;; (at your option) any later version.
+;; the Free Software Foundation; either version 3, or (at your option)
+;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
-;; along with this program; if not, write to the Free Software
-;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-;; MA 02110-1301, USA.
+;; along with GNU Emacs; see the file COPYING. If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
;;; Commentary:
result)))
(defun nnimap-mark-permanent-p (mark &optional group)
- "Return t iff MARK can be permanently (between IMAP sessions) saved on articles, in GROUP."
+ "Return t if MARK can be permanently (between IMAP sessions) saved on articles, in GROUP."
(imap-message-flag-permanent-p (nnimap-mark-to-flag mark)))
(when nnimap-debug
(defconst sha1-K3-high 51810) ; (string-to-number "CA62" 16)
(defconst sha1-K3-low 49622) ; (string-to-number "C1D6" 16)
-;;; original definition of sha1-F0.
-;;; (defmacro sha1-F0 (B C D)
-;;; (` (logior (logand (, B) (, C))
-;;; (logand (lognot (, B)) (, D)))))
-;;; a little optimization from GnuPG/cipher/sha1.c.
+ ;; original definition of sha1-F0.
+ ;; (defmacro sha1-F0 (B C D)
+ ;; (` (logior (logand (, B) (, C))
+ ;; (logand (lognot (, B)) (, D)))))
+ ;; a little optimization from GnuPG/cipher/sha1.c.
(defmacro sha1-F0 (B C D)
- (` (logxor (, D) (logand (, B) (logxor (, C) (, D))))))
+ `(logxor ,D (logand ,B (logxor ,C ,D))))
(defmacro sha1-F1 (B C D)
- (` (logxor (, B) (, C) (, D))))
-;;; original definition of sha1-F2.
-;;; (defmacro sha1-F2 (B C D)
-;;; (` (logior (logand (, B) (, C))
-;;; (logand (, B) (, D))
-;;; (logand (, C) (, D)))))
-;;; a little optimization from GnuPG/cipher/sha1.c.
+ `(logxor ,B ,C ,D))
+ ;; original definition of sha1-F2.
+ ;; (defmacro sha1-F2 (B C D)
+ ;; (` (logior (logand (, B) (, C))
+ ;; (logand (, B) (, D))
+ ;; (logand (, C) (, D)))))
+ ;; a little optimization from GnuPG/cipher/sha1.c.
(defmacro sha1-F2 (B C D)
- (` (logior (logand (, B) (, C))
- (logand (, D) (logior (, B) (, C))))))
+ `(logior (logand ,B ,C)
+ (logand ,D (logior ,B ,C))))
(defmacro sha1-F3 (B C D)
- (` (logxor (, B) (, C) (, D))))
+ `(logxor ,B ,C ,D))
(defmacro sha1-S1 (W-high W-low)
- (` (let ((W-high (, W-high))
- (W-low (, W-low)))
+ `(let ((W-high ,W-high)
+ (W-low ,W-low))
(setq S1W-high (+ (% (* W-high 2) 65536)
- (/ W-low (, (/ 65536 2)))))
- (setq S1W-low (+ (/ W-high (, (/ 65536 2)))
- (% (* W-low 2) 65536))))))
+ (/ W-low ,(/ 65536 2))))
+ (setq S1W-low (+ (/ W-high ,(/ 65536 2))
+ (% (* W-low 2) 65536)))))
(defmacro sha1-S5 (A-high A-low)
- (` (progn
- (setq S5A-high (+ (% (* (, A-high) 32) 65536)
- (/ (, A-low) (, (/ 65536 32)))))
- (setq S5A-low (+ (/ (, A-high) (, (/ 65536 32)))
- (% (* (, A-low) 32) 65536))))))
+ `(progn
+ (setq S5A-high (+ (% (* ,A-high 32) 65536)
+ (/ ,A-low ,(/ 65536 32))))
+ (setq S5A-low (+ (/ ,A-high ,(/ 65536 32))
+ (% (* ,A-low 32) 65536)))))
(defmacro sha1-S30 (B-high B-low)
- (` (progn
- (setq S30B-high (+ (/ (, B-high) 4)
- (* (% (, B-low) 4) (, (/ 65536 4)))))
- (setq S30B-low (+ (/ (, B-low) 4)
- (* (% (, B-high) 4) (, (/ 65536 4))))))))
+ `(progn
+ (setq S30B-high (+ (/ ,B-high 4)
+ (* (% ,B-low 4) ,(/ 65536 4))))
+ (setq S30B-low (+ (/ ,B-low 4)
+ (* (% ,B-high 4) ,(/ 65536 4))))))
(defmacro sha1-OP (round)
- (` (progn
- (sha1-S5 sha1-A-high sha1-A-low)
- (sha1-S30 sha1-B-high sha1-B-low)
- (setq sha1-A-low (+ ((, (intern (format "sha1-F%d" round)))
- sha1-B-low sha1-C-low sha1-D-low)
- sha1-E-low
- (, (symbol-value
- (intern (format "sha1-K%d-low" round))))
- (aref block-low idx)
- (progn
- (setq sha1-E-low sha1-D-low)
- (setq sha1-D-low sha1-C-low)
- (setq sha1-C-low S30B-low)
- (setq sha1-B-low sha1-A-low)
- S5A-low)))
- (setq carry (/ sha1-A-low 65536))
- (setq sha1-A-low (% sha1-A-low 65536))
- (setq sha1-A-high (% (+ ((, (intern (format "sha1-F%d" round)))
- sha1-B-high sha1-C-high sha1-D-high)
- sha1-E-high
- (, (symbol-value
- (intern (format "sha1-K%d-high" round))))
- (aref block-high idx)
- (progn
- (setq sha1-E-high sha1-D-high)
- (setq sha1-D-high sha1-C-high)
- (setq sha1-C-high S30B-high)
- (setq sha1-B-high sha1-A-high)
- S5A-high)
- carry)
- 65536)))))
+ `(progn
+ (sha1-S5 sha1-A-high sha1-A-low)
+ (sha1-S30 sha1-B-high sha1-B-low)
+ (setq sha1-A-low (+ (,(intern (format "sha1-F%d" round))
+ sha1-B-low sha1-C-low sha1-D-low)
+ sha1-E-low
+ ,(symbol-value
+ (intern (format "sha1-K%d-low" round)))
+ (aref block-low idx)
+ (progn
+ (setq sha1-E-low sha1-D-low)
+ (setq sha1-D-low sha1-C-low)
+ (setq sha1-C-low S30B-low)
+ (setq sha1-B-low sha1-A-low)
+ S5A-low)))
+ (setq carry (/ sha1-A-low 65536))
+ (setq sha1-A-low (% sha1-A-low 65536))
+ (setq sha1-A-high (% (+ (,(intern (format "sha1-F%d" round))
+ sha1-B-high sha1-C-high sha1-D-high)
+ sha1-E-high
+ ,(symbol-value
+ (intern (format "sha1-K%d-high" round)))
+ (aref block-high idx)
+ (progn
+ (setq sha1-E-high sha1-D-high)
+ (setq sha1-D-high sha1-C-high)
+ (setq sha1-C-high S30B-high)
+ (setq sha1-B-high sha1-A-high)
+ S5A-high)
+ carry)
+ 65536))))
(defmacro sha1-add-to-H (H X)
- (` (progn
- (setq (, (intern (format "sha1-%s-low" H)))
- (+ (, (intern (format "sha1-%s-low" H)))
- (, (intern (format "sha1-%s-low" X)))))
- (setq carry (/ (, (intern (format "sha1-%s-low" H))) 65536))
- (setq (, (intern (format "sha1-%s-low" H)))
- (% (, (intern (format "sha1-%s-low" H))) 65536))
- (setq (, (intern (format "sha1-%s-high" H)))
- (% (+ (, (intern (format "sha1-%s-high" H)))
- (, (intern (format "sha1-%s-high" X)))
- carry)
- 65536)))))
+ `(progn
+ (setq ,(intern (format "sha1-%s-low" H))
+ (+ ,(intern (format "sha1-%s-low" H))
+ ,(intern (format "sha1-%s-low" X))))
+ (setq carry (/ ,(intern (format "sha1-%s-low" H)) 65536))
+ (setq ,(intern (format "sha1-%s-low" H))
+ (% ,(intern (format "sha1-%s-low" H)) 65536))
+ (setq ,(intern (format "sha1-%s-high" H))
+ (% (+ ,(intern (format "sha1-%s-high" H))
+ ,(intern (format "sha1-%s-high" X))
+ carry)
+ 65536))))
)
;;; buffers (H0 H1 H2 H3 H4).
If BINARY is non-nil, return a string in binary form."
(if (stringp object)
(sha1-string object binary)
- (save-excursion
- (set-buffer object)
+ (with-current-buffer object
(sha1-region (or beg (point-min)) (or end (point-max)) binary))))
(provide 'sha1)
-;;; arch-tag: c0f9abd0-ffc1-4557-aac6-ece7f2d4c901
+;; arch-tag: c0f9abd0-ffc1-4557-aac6-ece7f2d4c901
;;; sha1.el ends here
* gnus.texi (NNTP): Mention nntp-xref-number-is-evil.
+2007-08-08 Glenn Morris <rgm@gnu.org>
+
+ * gnus.texi, sieve.texi: Replace `iff'.
+
+2007-07-25 Glenn Morris <rgm@gnu.org>
+
+ * Relicense all FSF files to GPLv3 or later.
+
2007-07-20 Micha\e,Ak\e(Bl Cadilhac <michael@cadilhac.name>
* gnus.texi (RSS): Document nnrss-ignore-article-fields.
%!PS-Adobe-2.0 EPSF-2.0
+% Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+% Free Software Foundation, Inc.
+%
+% Author: Luis Fernandes <elf@ee.ryerson.ca>
+%
+% This file is part of GNU Emacs.
+%
+% GNU Emacs is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 3, or (at your option)
+% any later version.
+%
+% GNU Emacs is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with GNU Emacs; see the file COPYING. If not, write to the
+% Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+% Boston, MA 02110-1301, USA.
+%
%%Title: gnuslogo1.ps
%%Creator: XV Version 3.00 Rev: 3/30/93 - by John Bradley
%%BoundingBox: 0 0 493 505
@table @code
@item short
-True iff the article is shorter than @code{gnus-agent-short-article}
+True if the article is shorter than @code{gnus-agent-short-article}
lines; default 100.
@item long
-True iff the article is longer than @code{gnus-agent-long-article}
+True if the article is longer than @code{gnus-agent-long-article}
lines; default 200.
@item low
-True iff the article has a download score less than
+True if the article has a download score less than
@code{gnus-agent-low-score}; default 0.
@item high
-True iff the article has a download score greater than
+True if the article has a download score greater than
@code{gnus-agent-high-score}; default 0.
@item spam
-True iff the Gnus Agent guesses that the article is spam. The
+True if the Gnus Agent guesses that the article is spam. The
heuristics may change over time, but at present it just computes a
checksum and sees whether articles match.
Use @file{make.bat} if you want to install Gnus under MS Windows, the
first argument to the batch-program should be the directory where
-@file{xemacs.exe} respectively @file{emacs.exe} is located, iff you want
+@file{xemacs.exe} respectively @file{emacs.exe} is located, if you want
to install Gnus after compiling it, give @file{make.bat} @code{/copy} as
the second parameter.
@item
Gnus no longer generate the Sender: header automatically.
-Earlier it was generated iff the user configurable email address was
+Earlier it was generated when the user configurable email address was
different from the Gnus guessed default user address. As the guessing
algorithm is rarely correct these days, and (more controversially) the
only use of the Sender: header was to check if you are entitled to
@item sieve-manage-capability
@findex sieve-manage-capability
-Return a list of capabilities the server support.
+Return a list of capabilities the server supports.
@item sieve-manage-listscripts
@findex sieve-manage-listscripts
@item sieve-manage-havespace
@findex sieve-manage-havespace
-Returns non-@code{nil} iff server have roam for a script of given
+Return non-@code{nil} if the server has room for a script of given
size.
@item sieve-manage-getscript