From 8a2e97cacfe486f6049fa39cfd8b3ea9f590adca Mon Sep 17 00:00:00 2001 From: ShengHuo ZHU Date: Tue, 19 Dec 2000 22:19:13 +0000 Subject: [PATCH] Merge changes in Emacs21. --- lisp/ChangeLog | 526 ++++++++++++++++++++++++++++++++++++++++ lisp/binhex.el | 21 +- lisp/catchup.pbm | Bin 0 -> 81 bytes lisp/catchup.xpm | 73 ++++++ lisp/cu-exit.pbm | Bin 0 -> 81 bytes lisp/cu-exit.xpm | 64 +++++ lisp/describe-group.pbm | Bin 0 -> 81 bytes lisp/describe-group.xpm | 72 ++++++ lisp/earcon.el | 6 +- lisp/exit-gnus.pbm | Bin 0 -> 81 bytes lisp/exit-gnus.xpm | 76 ++++++ lisp/exit-summ.pbm | Bin 0 -> 81 bytes lisp/exit-summ.xpm | 45 ++++ lisp/flow-fill.el | 20 +- lisp/followup.pbm | Bin 0 -> 81 bytes lisp/followup.xpm | 54 +++++ lisp/fuwo.pbm | Bin 0 -> 81 bytes lisp/fuwo.xpm | 53 ++++ lisp/get-news.pbm | Bin 0 -> 81 bytes lisp/get-news.xpm | 68 ++++++ lisp/gnntg.pbm | Bin 0 -> 81 bytes lisp/gnntg.xpm | 64 +++++ lisp/gnus-agent.el | 16 +- lisp/gnus-art.el | 74 +++++- lisp/gnus-audio.el | 3 +- lisp/gnus-cache.el | 32 +-- lisp/gnus-cite.el | 9 +- lisp/gnus-cus.el | 15 +- lisp/gnus-ems.el | 9 +- lisp/gnus-gl.el | 4 +- lisp/gnus-group.el | 60 ++++- lisp/gnus-int.el | 3 +- lisp/gnus-ml.el | 19 +- lisp/gnus-msg.el | 6 +- lisp/gnus-nocem.el | 4 +- lisp/gnus-range.el | 3 +- lisp/gnus-salt.el | 3 +- lisp/gnus-score.el | 5 +- lisp/gnus-setup.el | 22 +- lisp/gnus-soup.el | 4 +- lisp/gnus-spec.el | 2 +- lisp/gnus-start.el | 3 +- lisp/gnus-sum.el | 145 +++++++++-- lisp/gnus-undo.el | 4 +- lisp/gnus-util.el | 2 +- lisp/gnus-vm.el | 4 +- lisp/gnus.el | 17 +- lisp/imap.el | 13 +- lisp/kill-group.pbm | Bin 0 -> 81 bytes lisp/kill-group.xpm | 50 ++++ lisp/lpath.el | 2 + lisp/mail-reply.pbm | Bin 0 -> 81 bytes lisp/mail-reply.xpm | 51 ++++ lisp/mail-source.el | 1 + lisp/mailcap.el | 391 +++++++++++++++-------------- lisp/message.el | 101 +++++--- lisp/messcompat.el | 4 +- lisp/mm-bodies.el | 51 ++-- lisp/mm-decode.el | 13 +- lisp/mm-encode.el | 2 + lisp/mm-util.el | 97 +++----- lisp/mm-uu.el | 20 +- lisp/mml.el | 5 +- lisp/next-ur.pbm | Bin 0 -> 81 bytes lisp/next-ur.xpm | 66 +++++ lisp/nnbabyl.el | 4 +- lisp/nndir.el | 4 +- lisp/nneething.el | 4 +- lisp/nngateway.el | 4 +- lisp/nnheader.el | 8 +- lisp/nnkiboze.el | 4 +- lisp/nnlistserv.el | 8 +- lisp/nnmail.el | 4 + lisp/nnmbox.el | 4 +- lisp/nnmh.el | 4 +- lisp/nnml.el | 4 +- lisp/nnoo.el | 4 +- lisp/nnsoup.el | 4 +- lisp/nnspool.el | 4 +- lisp/nntp.el | 4 +- lisp/nnultimate.el | 2 +- lisp/nnweb.el | 10 +- lisp/parse-time.el | 4 +- lisp/pop3.el | 57 +++-- lisp/post.pbm | Bin 0 -> 81 bytes lisp/post.xpm | 53 ++++ lisp/prev-ur.pbm | Bin 0 -> 81 bytes lisp/prev-ur.xpm | 65 +++++ lisp/qp.el | 173 ++++++------- lisp/reply-wo.pbm | Bin 0 -> 81 bytes lisp/reply-wo.xpm | 65 +++++ lisp/reply.pbm | Bin 0 -> 81 bytes lisp/reply.xpm | 64 +++++ lisp/rfc2045.el | 6 +- lisp/rfc2047.el | 66 ++--- lisp/rfc2231.el | 3 +- lisp/rot13.pbm | Bin 0 -> 81 bytes lisp/rot13.xpm | 50 ++++ lisp/save-aif.pbm | Bin 0 -> 81 bytes lisp/save-aif.xpm | 55 +++++ lisp/save-art.pbm | Bin 0 -> 81 bytes lisp/save-art.xpm | 62 +++++ lisp/subscribe.pbm | Bin 0 -> 81 bytes lisp/subscribe.xpm | 49 ++++ lisp/time-date.el | 12 +- lisp/unsubscribe.pbm | Bin 0 -> 81 bytes lisp/unsubscribe.xpm | 48 ++++ lisp/utf7.el | 1 + lisp/uu-decode.pbm | Bin 0 -> 81 bytes lisp/uu-decode.xpm | 48 ++++ lisp/uu-post.pbm | Bin 0 -> 81 bytes lisp/uu-post.xpm | 57 +++++ lisp/uudecode.el | 70 +++--- 113 files changed, 2917 insertions(+), 648 deletions(-) create mode 100644 lisp/catchup.pbm create mode 100644 lisp/catchup.xpm create mode 100644 lisp/cu-exit.pbm create mode 100644 lisp/cu-exit.xpm create mode 100644 lisp/describe-group.pbm create mode 100644 lisp/describe-group.xpm create mode 100644 lisp/exit-gnus.pbm create mode 100644 lisp/exit-gnus.xpm create mode 100644 lisp/exit-summ.pbm create mode 100644 lisp/exit-summ.xpm create mode 100644 lisp/followup.pbm create mode 100644 lisp/followup.xpm create mode 100644 lisp/fuwo.pbm create mode 100644 lisp/fuwo.xpm create mode 100644 lisp/get-news.pbm create mode 100644 lisp/get-news.xpm create mode 100644 lisp/gnntg.pbm create mode 100644 lisp/gnntg.xpm create mode 100644 lisp/kill-group.pbm create mode 100644 lisp/kill-group.xpm create mode 100644 lisp/mail-reply.pbm create mode 100644 lisp/mail-reply.xpm create mode 100644 lisp/next-ur.pbm create mode 100644 lisp/next-ur.xpm create mode 100644 lisp/post.pbm create mode 100644 lisp/post.xpm create mode 100644 lisp/prev-ur.pbm create mode 100644 lisp/prev-ur.xpm create mode 100644 lisp/reply-wo.pbm create mode 100644 lisp/reply-wo.xpm create mode 100644 lisp/reply.pbm create mode 100644 lisp/reply.xpm create mode 100644 lisp/rot13.pbm create mode 100644 lisp/rot13.xpm create mode 100644 lisp/save-aif.pbm create mode 100644 lisp/save-aif.xpm create mode 100644 lisp/save-art.pbm create mode 100644 lisp/save-art.xpm create mode 100644 lisp/subscribe.pbm create mode 100644 lisp/subscribe.xpm create mode 100644 lisp/unsubscribe.pbm create mode 100644 lisp/unsubscribe.xpm create mode 100644 lisp/uu-decode.pbm create mode 100644 lisp/uu-decode.xpm create mode 100644 lisp/uu-post.pbm create mode 100644 lisp/uu-post.xpm diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a4df54b14..ad38ac0e6 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,529 @@ +2000-12-19 16:00:00 ShengHuo ZHU + + * gnus.el: Merged. Emacs21 CVS tag is zsh-merge-ognus-1. + +2000-12-19 ShengHuo ZHU + + * mm-util.el (mm-charset-synonym-alist): Fix a typo. + +2000-12-18 Gerd Moellmann + + * *.xpm, *.pbm: Convert icons icons to size 24x24. + +2000-12-18 Dave Love + + * gnus-msg.el (news-setup, news-reply-mode): Don't autoload + (unused). + +2000-12-13 Miles Bader + + * smiley-ems.el (smiley-region): Bind `inhibit-point-motion-hooks' + to t, so that we don't get stuck while trying to smilefy + intangible text. + +2000-12-12 Gerd Moellmann + + * smiley-ems.el (smiley-regexp-alist): Make regexps match + at the end of the buffer. + (smiley-region): In the loop, move to the end of the submatch + matching the smiley instead of using the end of the match + of the whole regexp. + +2000-12-12 Eli Zaretskii + + * message.el (message-mode): Doc fix. + +2000-12-12 Gerd Moellmann + + * smiley-ems.el (smiley-region): Doc fix. + +2000-12-11 Miles Bader + + * gnus-sum.el (gnus-summary-recenter): When trying to keep the + bottom line visible, check to see if it's partially obscured, and + if so, either scroll one more line to make it fully visible, or + revert to showing the second line from the top. + +2000-12-07 Dave Love + + * mailcap.el (mailcap-download-directory) + * gnus-audio.el (gnus-audio-directory) + * smiley-ems.el (smiley-data-directory): Fix :type. + +2000-11-30 Dave Love + + * message.el (message-auto-save-directory): Use + file-name-as-directory. + (message-set-auto-save-file-name): Create + message-auto-save-directory if necessary. + (message-replace-chars-in-string): Removed -- unused. + (message-mail-alias-type): Customize. + (message-headers): Remove duplicate defgroup. + +2000-11-29 Dave Love + + * qp.el (quoted-printable-decode-region): Use error, not message + to report malformed text (like base64). Amend message. + +2000-11-29 Miles Bader + + * message.el (message-header-lines): Fontify tag. + +2000-11-27 Dave Love + + * nnlistserv.el: Ignore errors when requiring nnweb and avoid a + compiler warning. + +;2000-11-26 Dave Love +; +; * mm-uu.el (mm-uu-configure-list): Fix typo in :type. +; +2000-11-23 Dave Love + + * uu-post.pbm, uu-decode.pbm: new files from XPMs. + +; * mm-uu.el (uudecode): Require. +; (uudecode-decode-region, uudecode-decode-region-external): Don't +; autoload. + (mm-uu-copy-to-buffer): Doc fix. + (mm-uu-decode-function, mm-uu-binhex-decode-function): Doc, custom + type fix. + + * mailcap.el: Doc fixes. + (mailcap-mime-data): Various adjustments. + (mailcap): New group. + (mailcap-download-directory): Customize. + (mailcap-generate-unique-filename, mailcap-binary-suffixes) + (mailcap-temporary-directory): Deleted (unused). + (mailcap-unescape-mime-test): Simplify slightly. + (mailcap-viewer-passes-test): Use functionp. + (mailcap-command-p): Aliased to executable-find. + + * rfc2047.el (rfc2047-encode-message-header): Don't encode if + default-enable-multibyte-characters is nil. + +2000-11-22 Gerd Moellmann + + * gnus-group.el (gnus-group-make-tool-bar): Fix a paren typo. + +2000-11-21 Dave Love + + * gnus-art.el (gnus-mime-button-map): Don't inherit from + gnus-article-mode-map. +; (gnus-mime-button-menu): Use mouse-set-point. + (gnus-insert-mime-button, gnus-mime-display-alternative) + (gnus-mime-display-alternative): Don't use local-map property. + +2000-11-17 Dave Love + + * uudecode.el (uudecode-insert-char): Fix bogus feature test. + (uudecode-decode-region-external): Doc fix. Use with-temp-buffer + and make-temp-file. + (uudecode-decode-region): Doc fix. + +2000-11-14 Dave Love + + * cu-exit.pbm, exit-summ.pbm, followup.pbm, fuwo.pbm: + * mail-reply.pbm, next-ur.pbm, post.pbm, prev-ur.pbm: + * reply-wo.pbm, reply.pbm, rot13.pbm, save-aif.pbm, save-art.pbm: + New files, derived from the XPMs. + +2000-11-10 Dave Love + + * gnus-agent.el (gnus-agent-confirmation-function): Add :version. + (gnus-agent-lib-file, gnus-agent-load-alist) + (gnus-agent-save-alist, gnus-agent-article-name): Use + expand-file-name. + + * gnus-group.el (gnus-group-name-charset-method-alist): Add + :version. + (nnkiboze-score-file): Defvar when compiling. + + * gnus-start.el (gnus-read-newsrc-file): Add :version. + + * gnus-art.el (gnus-article-banner-alist) + (gnus-emphasize-whitespace-regexp, gnus-ignored-mime-types) + (gnus-article-date-lapsed-new-header) + (gnus-article-mime-match-handle-function, gnus-mime-action-alist) + (gnus-treat-strip-list-identifiers, gnus-treat-date-iso8601) + (gnus-treat-strip-headers-in-body) + (gnus-treat-capitalize-sentences, gnus-treat-play-sounds) + (gnus-treat-translate): Add :version. + (gnus-article-mime-part-function): Fix defcustom. + + * nnmail.el (nnmail-expiry-target) + (nnmail-scan-directory-mail-source-once, nnmail-extra-headers) + (nnmail-split-header-length-limit): Add :version. + + * gnus-sum.el (gnus-auto-expirable-marks) + (gnus-inhibit-user-auto-expire, gnus-list-identifiers) + (gnus-extra-headers, gnus-ignored-from-addresses) + (gnus-newsgroup-ignored-charsets) + (gnus-group-highlight-words-alist) + (gnus-summary-show-article-charset-alist): Add :version. + + * catchup.pbm, describe-group.pbm, exit-gnus.pbm, get-news.pbm: + gnntg.pbm, kill-group.pbm, subscribe.pbm, unsubscribe.pbm: New + files, converted from the XPMs. + + * gnus-cache.el (gnus-cache-active-file): Don't use + file-name-as-directory on directory. + (gnus-cache-file-name): Use expand-file-name, not concat. Don't + use file-name-as-directory on directory. + + * time-date.el (timezone-make-date-arpa-standard): Autoload. + (date-to-time): Use it. + +; * message.el (message-mode) : +; : Use [:alnum:] in regexp range. +; (message-newline-and-reformat): Likewise. + (message-forward-as-mime, message-forward-ignored-headers) + (message-buffer-naming-style, message-default-charset) + (message-dont-reply-to-names, message-send-mail-partially-limit): + Add :version. + + * mm-util.el: Doc fixes. + (mm-mime-charset): Don't use the raw result of + mm-preferred-coding-system. + (mm-with-unibyte-buffer, mm-with-unibyte-current-buffer) + (mm-with-unibyte): Simplify. + + * gnus-int.el (gnus-start-news-server): Use expand-file-name, not + concat. + + * pop3.el (pop3-version): Deleted. + (pop3-make-date): New function, avoiding message-make-date. + (pop3-munge-message-separator): Use it. + +2000-11-09 Dave Love + + * gnus-group.el (gnus-group-make-directory-group) + (gnus-group-fetch-faq): Use expand-file-name. + (gnus-group-fetch-faq): Simplify completing-read form. + + * mm-bodies.el (mm-encode-body): Use mm-multibyte-p, don't just + test for Mule. + + * message.el (tool-bar-map): Defvar when compiling. + + * gnus-setup.el (running-xemacs, gnus-use-installed-tm) + (gnus-tm-lisp-directory): Deleted. + (gnus-use-installed-mailcrypt, gnus-emacs-lisp-directory): Use + (featurep 'xemacs). + (gnus-gnus-lisp-directory, gnus-mailcrypt-lisp-directory) + (gnus-mailcrypt-lisp-directory, gnus-bbdb-lisp-directory): Remove + version numbers from file names. + +2000-11-08 Dave Love + + * mm-view.el: Use featurep for XEmacs test. + (mm-inline-message): Test for `remove-specifier'; don't use + condition-case. + + * mm-bodies.el (mm-encode-body): Use mm-multibyte-p. + + * gnus-score.el (gnus-score-load-file): Use expand-file-name. + (gnus-score-find-bnews): Don't concat "". + + * cu-exit.xpm, prev-ur.xpm, next-ur.xpm, post.xpm, fuwo.xpm: + * followup.xpm, uu-post.xpm, uu-decode.xpm, mail-reply.xpm: + * reply.xpm, reply-wo.xpm, rot13.xpm, save-aif.xpm, save-art.xpm: + * exit-summ.xpm: New files, renamed from icons by Luis Fernandes. + + * gnus-sum.el: Put some defvars in eval-when-compile. + (gnus-summary-mode-hook): Add :options. + (gnus-summary-make-menu-bar): Add some :help, used by tool bar. + (gnus-summary-tool-bar-map): New variable. + (gnus-summary-make-tool-bar): New function. + (gnus-summary-mode): Put kill-all-local-variables first. + + * gnus-group.el (gnus-group-toolbar-map): New variable. + (gnus-group-make-tool-bar): Rewritten. + (gnus-group-mode): Put kill-all-local-variables first. + + * rfc2047.el: Require gnus-util. + + * nnml.el (gnus-sorted-intersection): Autoload. + + * nnheader.el: Wrap subst-char-in-string def in eval-and-compile. + Put some defvars in eval-when-compile. + (gnus-intersection, gnus-sorted-complement): Autoload. + + * imap.el (imap-point-at-eol): New, replacing gnus-point-at-eol. + + * mm-encode.el (mm-body-7-or-8): Autoload. + + * mm-decode.el (mm-insert-inline): Autoload. + + * mml.el: + * message.el: Put some defvars in eval-when-compile. + + * gnus-msg.el: Put some defvars in eval-when-compile. + (gnus-msg-mail): Move after gnus-setup-message. + + * smiley-ems.el (smiley-data-directory, smiley-regexp-alist): Doc fix. + +2000-11-07 Dave Love + + * gnus-util.el (nnheader): Don't require message (recursive + autoload). + + * uudecode.el: Avoid compiler warnings. + + * rfc2047.el: (rfc2047-fold-region): Use gnus-point-at-bol. + (rfc2047-charset-encoding-alist): Add iso-8859-1[45]. + +2000-11-06 Dave Love + + * gnus-salt.el (gnus-binary-mode): Fix call to gnus-add-minor-mode. + + * uudecode.el: Use (featurep 'xemacs). Require cl when compiling. + (uudecode-char-int): New alias, replacing char-int. + (uudecode-decode-region): Don't call buffer-disable-undo. + +; * mm-uu.el (mm-uu-configure): Unquote lambda. +; (mm-uu-configure-list): Doc fix. +; +; * earcon.el (running-xemacs): Don't define. +; +;2000-11-03 Stefan Monnier +; +; * message.el (message-font-lock-keywords): Match a final newline +; to help font-lock's multiline support. +; +2000-11-03 Dave Love + + * gnus-nocem.el (gnus-nocem-check-article-limit): Default to 500. + + * mm-partial.el (mm-inline-partial): Space-prefix temp buffer + name. + + * gnus-cus.el (gnus-group-parameters) : Fix custom type. + : Fix custom type, doc. + + * mm-decode.el (mm-display-external): Space-prefix temp buffer + name. Don't disable undo explicitly. + +;2000-11-02 Dave Love +; +; * message.el (message-font-lock-keywords): Use [:alpha:] for +; cite-prefix. + +2000-11-01 Dave Love + + * rfc2047.el (base64): Require unconditionally. + (message-posting-charset): Defvar when compiling. + (rfc2047-encode-message-header, rfc2047-encodable-p): Require + message. + + * gnus-sum.el (nnoo): Require. + (mm-uu-dissect): Autoload. + + * mml.el (mml-parse-1): Clarify message. + (mml-minibuffer-read-type): Use mailcap-mime-types. + +2000-11-01 Stefan Monnier + + * mml.el: Fix a typo in the requiring of CL. + +2000-11-01 Dave Love + + * utf7.el: Require cl when compiling. + + * binhex.el: Use (featurep 'xemacs). + (binhex-char-int): New alias, replacing char-int. Change callers. + (binhex-decode-region): Simplify work buffer code. + (binhex-decode-region-external): Use expand-file-name, not concat. + +2000-10-30 Dave Love + + * gnus-art.el: Fix 2000-10-27 change properly. + +2000-10-28 Miles Bader + + * gnus-art.el (gnus-read-save-file-name): Remove extraneous paren. + +2000-10-27 Dave Love + + * gnus-group.el (gnus-group-make-menu-bar): Add some :help + strings. + (gnus-group-make-tool-bar): New function. + (gnus-group-mode): Use it. + + * message.el (message-mode-menu): Add some :help strings. + (message-mode) [message-tool-bar-map]: Define tool-bar-map. + (featurep): Use (featurep 'xemacs). Install tool bar for Emacs. + + * catchup.xpm, exit-gnus.xpm, gnntg.xpm, subscribe.xpm: + * describe-group.xpm, get-news.xpm, kill-group.xpm: + * unsubscribe.xpm: New files. Renamed icons from Luis Fernandes. + + * mm-decode.el (mm-valid-and-fit-image-p): Don't test + display-graphic-p here. + +2000-10-27 Miles Bader + + * gnus-ems.el (gnus-ems-redefine): Use (featurep 'xemacs) instead + of the `gnus-xemacs' variable, as the latter has been removed. + * gnus-start.el (gnus-1, gnus-read-descriptions-file): Likewise. + * gnus-art.el (gnus-treat-display-xface) + (gnus-treat-display-smileys, gnus-treat-display-picons) + (gnus-article-read-summary-keys): Likewise. + +2000-10-26 Dave Love + + (defvar): Use rmail-spool-directory unconditionally. + +2000-10-18 Dave Love + + * mm-bodies.el (mm-uu-decode-function) + (mm-uu-binhex-decode-function): Defvar when compiling. + + * gnus-nocem.el (gnus-nocem-issuers): Update. + (gnus-nocem-check-from): New option. + (gnus-nocem-scan-groups): Use it. + (gnus-nocem-check-article): Bind gnus-newsgroup-name. + (gnus-nocem-check-article-limit): Add :version. + +2000-10-16 Stefan Monnier + + * ietf-drums.el (mm-util): Require CL when compiling. + +2000-10-15 Dave Love + + * qp.el: Require mm-util. + +2000-10-13 Dave Love + + * qp.el (quoted-printable-decode-region): Avoid invalid + coding-systems. + +2000-10-12 Gerd Moellmann + + * mm-bodies.el: Don't require `mm-uu' at compile-time; it leads + to a recursive load. + +2000-10-12 Dave Love + + * mm-util.el (mm-charset-synonym-alist): Add windows-1252. + + * gnus.el (gnus-group-startup-message): Check for PBM image. + +2000-10-09 Dave Love + + * mail-source.el (mail-source-fetch-imap): Bind + default-enable-multibyte-characters rather than using + mm-disable-multibyte. + +2000-10-05 Dave Love + + * qp.el (mm-decode-coding-region, mm-encode-coding-region): + Autoload. + (quoted-printable-decode-region): Rename arg which confused + charset with coding-system. Don't use nonascii-insert-offset. + Coding-system encode the region initially. Don't recognize `==' + as valid QP. Coding-system decode the region finally. + (quoted-printable-decode-string): Rename arg which confused + charset with coding-system. + + * mm-bodies.el: Require mm-uu, Don't require qp, uudecode. + (mm-encode-body): Apply mm-charset-to-coding-system to arg of + mm-encode-coding-region. + (mm-decode-body, mm-decode-string): Rename variables which + confused charset with coding-system. + (binhex-decode-region): Don't autoload. + (mm-body-encoding): Require message. + (mm-decode-content-transfer-encoding): Require mm-uu in relevant + cond branches. + + * gnus-art.el (article-de-quoted-unreadable) + (article-de-base64-unreadable): Fold search case + rather than downcasing string. Apply mm-charset-to-coding-system + to arg of quoted-printable-decode-region. + +2000-10-04 Dave Love + + * gnus-ems.el: Don't turn off compiler warnings in local vars. + Require ring when compiling. + (gnus-article-compface-xbm): New variable. + +2000-10-04 Dave Love + + * smiley-ems.el (smiley-regexp-alist, smiley-update-cache): Use + pbm images. + + * frown.pbm, smile.pbm, wry.pbm: New files. + + * frown.xbm, smile.xbm, wry.xbm: Deleted. + +2000-10-03 Dave Love + + * mail-source.el (mail-sources): Revert to nil. + + * nnmail (nnmail-spool-file): Revert to `((file))'. + + * qp.el: Don't require mm-util. + (quoted-printable-decode-region): Rewritten. + (quoted-printable-decode-string, quoted-printable-encode-region): + Doc fix. + (quoted-printable-encode-region): Barf on multibyte characters. + Maybe make the class multibyte. Upcase chars, not formatted + strings. Allow mm-use-ultra-safe-encoding to be unbound. + (quoted-printable-encode-string): Don't use + mm-with-unibyte-buffer. + +2000-09-29 Gerd Moellmann + + * smiley-ems.el (smiley-update-cache): Use `:ascent center'. + +2000-09-21 Dave Love + + * smiley-ems.el (smiley-region): Test if display-graphic-p bound + (for Emacs 20). Tidy somewhat. + +2000-09-21 Dave Love + + * gnus-ems.el (gnus-article-display-xface): Use unibyte for the + image processing. Rationalize logic somewhat. + +2000-09-20 Dave Love + + * gnus-start.el (gnus-1) : Don't test for X + specifically. + + * gnus.el (gnus-version-number): Avoid some redundant + autoloads. + +2000-09-20 Gerd Moellmann + + * gnus-ems.el (gnus-article-display-xface): Don't convert PBM + to XBM; we always have PBM support. + +2000-09-14 Dave Love + + * gnus.el (gnus-charset): + * mm-decode.el (mime-display): + * imap.el (imap) : Add :version. + +2000-09-13 Gerd Moellmann + + * parse-time.el: Fix author's mail address. + + * earcon.el, flow-fill.el, gnus-cite.el, gnus-gl.el, gnus-ml.el: + * gnus-mlspl.el, gnus-nocem.el, gnus-range.el, gnus-salt.el: + * gnus-setup.el, gnus-soup.el, gnus-undo.el, gnus-vm.el: + * messcompat.el, nnbabyl.el, nndir.el, nneething.el: + * nngateway.el, nnheaderxm.el, nnkiboze.el, nnlistserv.el: + * nnmbox.el, nnmh.el, nnoo.el, nnsoup.el, nnspool.el, rfc2045.el: + * rfc2231.el, uudecode.el: Fix copyright notice. + + * nnweb.el (toplevel): To make the file bootstrap in Emacs, + require `w3' at load-time only if not running in batch mode. + +2000-12-19 16:00:00 ShengHuo ZHU + + * gnus.el: Before merge with Emacs21. + 2000-12-19 Raymond Scholz * gnus-art.el (gnus-article-dumbquotes-map): Add EUR symbol. diff --git a/lisp/binhex.el b/lisp/binhex.el index 1a181a3db..81f8f961b 100644 --- a/lisp/binhex.el +++ b/lisp/binhex.el @@ -28,8 +28,11 @@ (eval-when-compile (require 'cl)) -(if (not (fboundp 'char-int)) - (defalias 'char-int 'identity)) +(eval-when-compile + (defalias 'binhex-char-int + (if (fboundp 'char-int) + 'char-int + 'identity))) (defvar binhex-decoder-program "hexbin" "*Non-nil value should be a string that names a uu decoder. @@ -132,14 +135,14 @@ input and write the converted data to its standard output.") (defun binhex-string-big-endian (string) (let ((ret 0) (i 0) (len (length string))) (while (< i len) - (setq ret (+ (lsh ret 8) (char-int (aref string i))) + (setq ret (+ (lsh ret 8) (binhex-char-int (aref string i))) i (1+ i))) ret)) (defun binhex-string-little-endian (string) (let ((ret 0) (i 0) (shift 0) (len (length string))) (while (< i len) - (setq ret (+ ret (lsh (char-int (aref string i)) shift)) + (setq ret (+ ret (lsh (binhex-char-int (aref string i)) shift)) i (1+ i) shift (+ shift 8))) ret)) @@ -149,11 +152,11 @@ input and write the converted data to its standard output.") (let ((pos (point-min)) len) (vector (prog1 - (setq len (char-int (char-after pos))) + (setq len (binhex-char-int (char-after pos))) (setq pos (1+ pos))) (buffer-substring pos (setq pos (+ pos len))) (prog1 - (setq len (char-int (char-after pos))) + (setq len (binhex-char-int (char-after pos))) (setq pos (1+ pos))) (buffer-substring pos (setq pos (+ pos 4))) (buffer-substring pos (setq pos (+ pos 4))) @@ -260,9 +263,9 @@ If HEADER-ONLY is non-nil only decode header and return filename." "Binhex decode region between START and END using external decoder." (interactive "r") (let ((cbuf (current-buffer)) firstline work-buffer status - (file-name (concat binhex-temporary-file-directory - (binhex-decode-region start end t) - ".data"))) + (file-name (expand-file-name + (concat (binhex-decode-region start end t) ".data") + binhex-temporary-file-directory))) (save-excursion (goto-char start) (when (re-search-forward binhex-begin-line nil t) diff --git a/lisp/catchup.pbm b/lisp/catchup.pbm new file mode 100644 index 0000000000000000000000000000000000000000..3fc571bdf8059402f3059eb7f574678c3d0cbdaa GIT binary patch literal 81 zcmWGA;W9E&Ff!p{fC0t>3=9sUObU#lj)4nStqKTrVff`F$l{{J&?Ukc%EYiafKhM; YQ-^D*Lx-XUYY7X}0vQGdd6;en0AX c Gray35", +", c #5b1a5b1a5b1a", +"< c #5fe95fe95fe9", +"1 c #626262626262", +"2 c Gray40", +"3 c #67e767e767e7", +"4 c Gray42", +"5 c #6fff6fff6fff", +"6 c Gray45", +"7 c Gray46", +"8 c #77e977e977e9", +"9 c #7bdb7bdb7bdb", +"0 c #7ccc7ccc7ccc", +"q c Gray50", +"w c #866586658665", +"e c Gray56", +"r c Gray60", +"t c #9bcb9bcb9bcb", +"y c #9fff9fff9fff", +"u c #a7c7a7c7a7c7", +"i c #af0eaf0eaf0e", +"p c Gray70", +"a c Gray75", +"s c Gray81", +"d c #dfffdfffdfff", +"f c #efffefffefff", +"g c Gray100", +/* pixels */ +"aaaaaaaaaaaaaaaaaaaaaaaa", +"aaaaaaaaaaaaaaaaaaaaaaaa", +"aaaaaaaaaaaaaaaaaaaaaaaa", +"aaaaaa7$$*uaaaaaaaaareep", +"aaaaaa$rr6", +"aaaaaa76;aaaareeeee#rw*", +"&aqqagga@<<<7e7qqqqqq=:u", +"33e4qgggsaa%1Oa&&&gggeae7ggyar=aa=r6 er=aa=r6 aggg=wr&g&rrr", +"rrrrr$a<:6 @$$$rri=d5qrr", +"rrrrr<===6$wrrrrrr6&qo6r", +"rrrrrrrrrewrrrrrrr6 oq", +"rrrrrrrrrrrrrrrrrrrrrrrr", +"rrrrrrrrrrrrrrrrrrrrrrrr", +"rrrrrrrrrrrrrrrrrrrrrrrr" +}; diff --git a/lisp/cu-exit.pbm b/lisp/cu-exit.pbm new file mode 100644 index 0000000000000000000000000000000000000000..210869cce7836f3325e4fe48f70d16214dbbcbeb GIT binary patch literal 81 zcmWGA;W9E&Ff!p{Km+m&41o+xi4ClU0W3-iEa47pP7bUt4$KY>jG+z;K|m6u07U+0 PV7$)2@Q;BZ1Y`sNnq~{( literal 0 HcmV?d00001 diff --git a/lisp/cu-exit.xpm b/lisp/cu-exit.xpm new file mode 100644 index 000000000..bc051f8e0 --- /dev/null +++ b/lisp/cu-exit.xpm @@ -0,0 +1,64 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"24 24 34 1", +" c Gray0", +". c #0bfb0bfb0bfb", +"X c Gray6", +"o c Gray9", +"O c Gray11", +"+ c Gray12", +"@ c #23f323f323f3", +"# c Gray15", +"$ c #2ff52ff52ff5", +"% c #3fff3fff3fff", +"& c Gray25", +"* c Gray28", +"= c #4ccc4ccc4ccc", +"- c #53e853e853e8", +"; c #5b1a5b1a5b1a", +": c #5fef5fef5fef", +"> c #67e767e767e7", +", c Gray42", +"< c #6ff76ff76ff7", +"1 c #77dc77dc77dc", +"2 c Gray50", +"3 c #866586658665", +"4 c #88a888a888a8", +"5 c Gray56", +"6 c Gray60", +"7 c #9bcb9bcb9bcb", +"8 c #9fff9fff9fff", +"9 c #a7d7a7d7a7d7", +"0 c Gray70", +"q c #b635b635b635", +"w c Gray75", +"e c Gray78", +"r c #dfffdfffdfff", +"t c Gray100", +/* pixels */ +"wwwwwwwwwwwwwwwwwwwwwwww", +"wwwwwwwwwwwwwwwwwwwwwwww", +"wwwwwwwwwwwwwwwwwwwwwwww", +"wwwwwwwwwwwwwwwwwwwwwwww", +"wwwwwwwwwwwwwwwwwwwwwwww", +"wwwwwwwwwww-$$$-wwwwwwww", +"wwwwwww9-$w$ttt$wwwwwwww", +"wwwwww:wwwwww", +"wwwwww,::X%%%+$w:5wwwwww", +"qqqqqq4*5%t%t255;qqqqqqq", +"6666663#*+2+2%**=6666666", +"6666666=0$w$0*0&36666666", +"6666666=,$9@5*,#66666666", +"6666666= +% 2% #66666666", +"6666666= %e@<2 #66666666", +"6666666:# +666666666", +"666666666=====3666666666", +"666666666666666666666666" +}; diff --git a/lisp/describe-group.pbm b/lisp/describe-group.pbm new file mode 100644 index 0000000000000000000000000000000000000000..de7bf1104317ae6686562b822f04b5feb493f14c GIT binary patch literal 81 zcmWGA;W9E&Ff!o^4Gq;;)D;ryy6=@js0hO(4u;S`7L5fAq5%xMek!;IFf=(pMM47@ f_PkIC4Pl&>$pF-q_oyp0F!cZL^`Rl5pFC6m%K{qn literal 0 HcmV?d00001 diff --git a/lisp/describe-group.xpm b/lisp/describe-group.xpm new file mode 100644 index 000000000..e191277c5 --- /dev/null +++ b/lisp/describe-group.xpm @@ -0,0 +1,72 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"24 24 42 1", +" c Gray0", +". c #099909990999", +"X c #0bfb0bfb0bfb", +"o c #133313331333", +"O c Gray9", +"+ c Gray11", +"@ c #23f323f323f3", +"# c Gray15", +"$ c #2d8d2d8d2d8d", +"% c #399939993999", +"& c #433243324332", +"* c #4ccc4ccc4ccc", +"= c #519151915191", +"- c #53e353e353e3", +"; c #565656565656", +": c Gray36", +"> c #5fdf5fdf5fdf", +", c Gray42", +"< c #6fff6fff6fff", +"1 c Gray45", +"2 c #77f777f777f7", +"3 c #7ccc7ccc7ccc", +"4 c Gray50", +"5 c #865a865a865a", +"6 c Gray58", +"7 c Gray60", +"8 c #9bfb9bfb9bfb", +"9 c Gray62", +"0 c #9fff9fff9fff", +"q c #a0c0a0c0a0c0", +"w c Gray64", +"e c Gray65", +"r c Gray70", +"t c #b635b635b635", +"y c Gray73", +"u c Gray75", +"i c #d332d332d332", +"p c Gray85", +"a c #e665e665e665", +"s c #eccbeccbeccb", +"d c #f998f998f998", +"f c Gray100", +/* pixels */ +"&77&77&77&77&77&77&77&77", +"777777777777777777777777", +"77777777777777777iaaa777", +"&77&77&77&77&77 + +;; 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 2, or (at your option) diff --git a/lisp/exit-gnus.pbm b/lisp/exit-gnus.pbm new file mode 100644 index 0000000000000000000000000000000000000000..32ad0e0ebe9673bfbefa86e1d3e9132e2a516521 GIT binary patch literal 81 zcmWGA;W9E&Ff!p{aAaUmZV)JR;FJF$8XCf2$H01(f$!}B!O#GvEex(DA#7?4p`w9W lObjj}j(QCZqN0I33=E;6uK5id<)wo5ySzj1hB7cP008Y?6KDVc literal 0 HcmV?d00001 diff --git a/lisp/exit-gnus.xpm b/lisp/exit-gnus.xpm new file mode 100644 index 000000000..d910b5578 --- /dev/null +++ b/lisp/exit-gnus.xpm @@ -0,0 +1,76 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"24 24 46 1", +" c Gray0", +". c Gray6", +"X c #133313331333", +"o c Gray11", +"O c Gray12", +"+ c Gray15", +"@ c #2ff82ff82ff8", +"# c Gray20", +"$ c #399939993999", +"% c #3fff3fff3fff", +"& c Gray25", +"* c Gray28", +"= c #4ccc4ccc4ccc", +"- c #53e353e353e3", +"; c #565e565e565e", +": c #5b1a5b1a5b1a", +"> c #5ff55ff55ff5", +", c #626262626262", +"< c Gray40", +"1 c #67e767e767e7", +"2 c Gray42", +"3 c #6ff96ff96ff9", +"4 c Gray45", +"5 c #77d777d777d7", +"6 c #7ccc7ccc7ccc", +"7 c Gray50", +"8 c Gray56", +"9 c #97f797f797f7", +"0 c Gray60", +"q c #9bd19bd19bd1", +"w c #9ff29ff29ff2", +"e c #a7cba7cba7cb", +"r c Gray67", +"t c #afd5afd5afd5", +"y c Gray70", +"u c Gray75", +"i c #c3c3c3c3c3c3", +"p c Gray78", +"a c #cbcbcbcbcbcb", +"s c Gray81", +"d c #d7d8d7d8d7d8", +"f c #dff2dff2dff2", +"g c Gray89", +"h c #e7e7e7e7e7e7", +"j c #eff8eff8eff8", +"k c Gray100", +/* pixels */ +"kkkkkkkkkufkkkku7skkkkkk", +"kkkkkkkkw>%fkkw 7kkkkkkk", +"kk3%wkkksu ukk%u7skkkkkk", +"kww>>@@uu3f@8 @@7.@Owskk", +"kkwf777%>77O> >>%7777wkk", +"kkkkkss7j8O.@ 8jujsfjkkk", +"kkkjuuwO @> @>@@ujkkkkkk", +"kkk>%O77O$ > %f >kkkkkk", +"kkk87sj7<=u>@7s8>@%wkkkk", +"kkkkkkq==u>>u ukk3u7kkkk", +"7uwfuw+=>u u> >fuw7uwwuf", +"8twut#>:8q q8* uprwswwtu", +"ipuge&,5uq5uau-@uuuuuadu", +"psuu>4@uuuuuduu5uuduuuuu", +"uugu>4@uuguuuuuuuuauuuuu", +"uuuy:>-uuuuuuugguaaugguu", +"psu8=+uuuuspuuuuudduuuuu", +"ipu8=+uuujfhguuuuuudauuu", +"ue82=+8euuuuishspujdgguu", +"e@$$+X=;>uu5ttp9sduuuuuu", +"&4$8$ 7=4@@5y>qejdjduuuu", +";$4O4444444O@eye5@uuusfd", +">>>>3<>@*<3>@wp9f7uuufsd", +"uuujfhgedhfjqpswsiuuuuuu" +}; diff --git a/lisp/exit-summ.pbm b/lisp/exit-summ.pbm new file mode 100644 index 0000000000000000000000000000000000000000..d0192310607c6f40033068a55cc5c4c7c244f866 GIT binary patch literal 81 zcmWGA;W9E&Ff!p1aAaWsgNFYPm{|`nF+LD*Ji@^FfRXXQB*q7fKoQ;t!j4CP;tY%j W8W@3U9GHw6L_=L5x+ZZdKo|ff#}ZBe literal 0 HcmV?d00001 diff --git a/lisp/exit-summ.xpm b/lisp/exit-summ.xpm new file mode 100644 index 000000000..00caf5331 --- /dev/null +++ b/lisp/exit-summ.xpm @@ -0,0 +1,45 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"24 24 15 1", +" c Gray0", +". c #0bfb0bfb0bfb", +"X c Gray9", +"o c #23f323f323f3", +"O c #2fef2fef2fef", +"+ c Gray28", +"@ c #53e353e353e3", +"# c #5fdf5fdf5fdf", +"$ c Gray42", +"% c #77d777d777d7", +"& c Gray56", +"* c #9bcb9bcb9bcb", +"= c #a7c7a7c7a7c7", +"- c Gray70", +"; c Gray75", +/* pixels */ +"@;;@;;@;;@;;@;;@;;@;;@;;", +";;;;;;;;;;;;;;;;;;;;;;;;", +";;;;;;;;;;;;;;;;;;;;;;;;", +"@;;@;;&=@OOOo O;;@;;", +";;;;;;X&;;;;=## O;;;;;", +";;;;;;.%;;;;;;; O;;;;;", +"@;;@;;@;;@;;*;; O;;@;;", +";;;;;;;;;;;;%;; O;;;;;", +";;;;;;O%;;;;;;; O;;;;;", +"@;;@;;o=;@;;-&- O;;@;;", +";;;;;;X&;;;;+ & O;;;;;", +";;;;;;.%;;;;$ & O;;;;;", +"@;;@;;o=;@;;;;; O;;@;;", +";;;;;;X&;;;;;;; O;;;;;", +";;;;;;*;;;;;@;; O;;;;;", +"@;;@;;&=;@;;;;; O;;@;;", +";;;;;; #;;;;;&#XO+O;;;;;", +";;;;;;o=;*OO*#o%#+*;;;;;", +"@;;@;@;%OOOO@%*@%*@;;@;;", +";;;;;;;;;;;;;;;;;;;;;;;;", +";;;;;;;;;;;;;;;;;;;;;;;;", +"@;;@;;@;;@;;@;;@;;@;;@;;", +";;;;;;;;;;;;;;;;;;;;;;;;", +";;;;;;;;;;;;;;;;;;;;;;;;" +}; diff --git a/lisp/flow-fill.el b/lisp/flow-fill.el index 80e122aad..64946f9f0 100644 --- a/lisp/flow-fill.el +++ b/lisp/flow-fill.el @@ -1,22 +1,26 @@ ;;; flow-fill.el --- interprete RFC2646 "flowed" text + ;; Copyright (C) 2000 Free Software Foundation, Inc. ;; Author: Simon Josefsson ;; Keywords: mail -;; This program is free software; you can redistribute it and/or modify +;; 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 2 of the License, or -;; (at your option) any later version. -;; -;; This program is distributed in the hope that it will be useful, +;; the Free Software Foundation; either version 2, 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 this program; if not, write to the Free Software -;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. ;;; Commentary: diff --git a/lisp/followup.pbm b/lisp/followup.pbm new file mode 100644 index 0000000000000000000000000000000000000000..61be114096b3eb182aa962728a44e8bc45bfb176 GIT binary patch literal 81 zcmWGA;W9E&Ff!p1WE5avU}69QK8C*v$E&(A-7Zex;1h_N| h1Y86h8aNzSBovqo0vH_x7#V c #9fff9fff9fff", +", c #a7c7a7c7a7c7", +"< c Gray70", +"1 c Gray75", +"2 c Gray81", +"3 c #dfffdfffdfff", +"4 c #efffefffefff", +"5 c Gray100", +/* pixels */ +"<,1<,1<,1<,1<,1<,1<,1<,1", +",;1,;1,;1,;1,;1,;1,;1,;1", +"111111111111111111111111", +"<,1<,1<,1<,:=+.<,1<,1<,1", +",;1,;1,;1;O*>5+$;1,;1,;1", +"11111111##142+>O11111111", +"<,1<,:=+2555 o2#,1<,1<,1", +",;1;O*>5555>-151$1,;1,;1", +"111<@15555525554*:111111", +"<,1<$:5555555555>=<,1<,1", +",;1,;*>553--55555+,;1,;1", +"111111=>&$1O555552#11111", +"<,111:=+241$+55555#,1<,1", +",;1,$*>55$ 1+555551$1,;1", +"11##14555 $4>>55554*:111", +"<@155555&5551-55555>=<,1", +",O15555555553-355551o,;1", +"1,#55555555553$555+%;111", +"<,#25555555555&1*O<,1<,1", +",;1+55555555555X;1,;1,;1", +"111=>5555555555:*1111111", +"<,1:*45555555552%<<,1<,1", +",;11$15555555555-;,;1,;1", +"1111,#55555555553#111111" +}; diff --git a/lisp/fuwo.pbm b/lisp/fuwo.pbm new file mode 100644 index 0000000000000000000000000000000000000000..b81af10c3997ce1eb584a907505fcac6282cd795 GIT binary patch literal 81 zcmWGA;W9E&Ff!p1WE5afU}6A+Kvn?;76u0%0R|2R1_6+eW2y+l1qRkY0j?cP!X*qk dCJY6k0t#FV4y-H+tPBD`#MBVL7{bBm003Mb2}A$@ literal 0 HcmV?d00001 diff --git a/lisp/fuwo.xpm b/lisp/fuwo.xpm new file mode 100644 index 000000000..e860d9511 --- /dev/null +++ b/lisp/fuwo.xpm @@ -0,0 +1,53 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"24 24 23 1", +" c Gray0", +". c Gray6", +"X c Gray9", +"o c Gray12", +"O c #2fef2fef2fef", +"+ c #3fff3fff3fff", +"@ c #53ee53ee53ee", +"# c #5fe85fe85fe8", +"$ c #67e767e767e7", +"% c #6fff6fff6fff", +"& c #77ea77ea77ea", +"* c #7bdb7bdb7bdb", +"= c Gray50", +"- c Gray56", +"; c #9bd69bd69bd6", +": c #9fff9fff9fff", +"> c #a7c7a7c7a7c7", +", c Gray70", +"< c Gray75", +"1 c Gray81", +"2 c #dfffdfffdfff", +"3 c #efffefffefff", +"4 c Gray100", +/* pixels */ +",><,><,><,><,><,><,><,><", +">-<>-<>-<>-<>-<>-<>-<>-<", +"<<<<<<<<<<<<<<<<<<<<<<<<", +",><,><,><,><,><,><,><,><", +">-<>-<>-<>-<>-<>-<>-<>-<", +"<<<<<<<<<<<<;O;<<<<<<<<<", +",><,><,><,>< X;,><,><,><", +">-<>-<>-<>-&#-<>-<>-<>-<", +"<<<<<<<<<<<;<<<<<<<<<<<<", +",><,><,><,><,><,><,><,><", +">-<>-<>-<-O>>-<>-<>-<>-<", +"<<<<<<<<@@<@<<<<<<<<<<<<", +",><<<;*+1<<#;<<,><,><,><", +">-<>#&:<==+#&-<>-<>-<>-<", +"<<@@<3+=<1o <#<<<<<<<<<<", +",>O<=+444:+.4=-,><,><,><", +">-O=<4444:4::<$>-<>-<>-<", +"<&;444444444+4+<<<<<<<<<", +",#;444444444<=4O<<,><,><", +">-O4444444442=2&-<>-<>-<", +"<<;%444444444=<<#<<<<<<<", +",><@2444444444+4=-,><,><", +">-<-=444444444::<$>-<>-<", +"<<<,$1444444444+4+<<<<<<" +}; diff --git a/lisp/get-news.pbm b/lisp/get-news.pbm new file mode 100644 index 0000000000000000000000000000000000000000..c0080716c4494d4ea6a56f29a9583152fdadb79a GIT binary patch literal 81 zcmWGA;W9E&Ff!pP6%Aa)#K0)x*wB1}Q8cibQGqcuv~kf1#_+ c #519151915191", +", c #53e753e753e7", +"< c #565a565a565a", +"1 c Gray35", +"2 c #5b1a5b1a5b1a", +"3 c #5fe55fe55fe5", +"4 c Gray45", +"5 c Gray46", +"6 c #77d777d777d7", +"7 c #7ccc7ccc7ccc", +"8 c Gray50", +"9 c #866586658665", +"0 c Gray56", +"q c Gray60", +"w c #9bcb9bcb9bcb", +"e c #9fff9fff9fff", +"r c #a7c7a7c7a7c7", +"t c Gray70", +"y c Gray75", +"u c Gray81", +"i c #dfffdfffdfff", +"p c Gray100", +/* pixels */ +"0000000ryyyyyyyyyyyyyyyy", +"@8888833yyyyyyyyyyyyyyyy", +"*pppppy3yyyyyyyyyyyyyyyy", +"*pppppy3yyyyyr=$$6yyyyyy", +"*ppppp3%3yyyr<9qq36yyyyy", +"*ppppp ;0>yy0:qqqq%yyyyy", +"*pppppy @82tq>0qq8>yyyyy", +"*pppppy%>q42y0>q42yyyyyy", +"*pppppy3q=q8%%.=:#%6yyyy", +"%yyyyy03y0:qqqqqqqq:0yyy", +"33333330yr<9qqqqqqq42yyy", +"yyyyyyyyyyr=qqqqqqqq$yyy", +"yyyyyyyyyyyy$:%***$q$**X", +"yyyyyyyyyyyy$:yppe3q$pp*", +"yyyyyyyyyyyy$:ypp*q3qpp*", +"yyyyyyyyyyyy$:yp8402upp*", +"yyyyyyyyyyyyo$yi*&48ppp*", +"yyyyyyyyyyy>4&u>00:ippp*", +"yyyyyyyyyyy%q:00Oq%yyyy%", +"yyyyyyyyyyy%q4:o<3&%3333", +"yyyyyyyyyyy%qqq$9443yyyy", +"yyyyyyyyyyy%44@0&4<3yyyy", +"yyyyyyyyyyy6o$;r%&O0yyyy", +"yyyyyyyyyyyy$:0y34%yyyyy" +}; diff --git a/lisp/gnntg.pbm b/lisp/gnntg.pbm new file mode 100644 index 0000000000000000000000000000000000000000..2f5e5261a97e722736c03805a8c2b6743901b626 GIT binary patch literal 81 zcmWGA;W9E&Ff!pP6%EX8VsI33WN1F&7#_%|tl)S(lwsEj$NECXP2Hg(u?!q4p`xJ* kY;#;hLp9pY0ND(j9-* c #566656665666", +", c #5fed5fed5fed", +"< c #626262626262", +"1 c Gray42", +"2 c Gray45", +"3 c Gray46", +"4 c #77d777d777d7", +"5 c #7ccc7ccc7ccc", +"6 c Gray50", +"7 c #866586658665", +"8 c Gray56", +"9 c Gray60", +"0 c #9bcb9bcb9bcb", +"q c #a7c7a7c7a7c7", +"w c Gray70", +"e c Gray75", +"r c #dfffdfffdfff", +"t c Gray100", +/* pixels */ +"w8888888weeeeeeeeeeeeeee", +"8&66666&8eeeeeeeeeeeeeee", +"86ttttt68eeeeeeeeeeeeeee", +"86ttttt68eeeee0###0eeeee", +"86ttttr&-4eee8:000:8eeee", +"86tttte 144ee,20002,eeee", +"86ttttt6 =,4e4<000<4eeee", +"86ttttt6-,0,4e4,0,4eeeee", +"86ttttt684,0<$$.,#$$0eee", +"8,eeeee,8e,200000000#eee", +"q,,,,,,,qe8:00000000,4ee", +"eeeeeeeeeee0=000006,0$ee", +"eeeeeeeeeeee8;00002;0$ee", +"eeeeeeeeeeee8;00002;0$ee", +"eeeeeeeeeeee8;00002;0$ee", +"eeeeeeeeeeee8;00002;0$ee", +"eeeeeeeeeeee8#;;;;%#;$ee", +"eeeeeeeeeeee=2222+88@0ee", +"eeeeeeeeeeee#00000.4$eee", +"eeeeeeeeeeee#00720O,,eee", +"eeeeeeeeeeee#002;02%8eee", +"eeeeeeeeeeee+22$,>2%8eee", +"eeeeeeeeeeee-#o48O%$qeee", +"eeeeeeeeeeee8;#ee$2,eeee" +}; diff --git a/lisp/gnus-agent.el b/lisp/gnus-agent.el index 1f5d75637..3375b937d 100644 --- a/lisp/gnus-agent.el +++ b/lisp/gnus-agent.el @@ -82,12 +82,14 @@ If nil, only read articles will be expired." (defcustom gnus-agent-confirmation-function 'y-or-n-p "Function to confirm when error happens." + :version "21.1" :group 'gnus-agent :type 'function) (defcustom gnus-agent-synchronize-flags 'ask "Indicate if flags are synchronized when you plug in. If this is `ask' the hook will query the user." + :version "21.1" :type '(choice (const :tag "Always" t) (const :tag "Never" nil) (const :tag "Ask" ask)) @@ -170,7 +172,9 @@ If this is `ask' the hook will query the user." (defun gnus-agent-lib-file (file) "The full path of the Gnus agent library FILE." - (concat (gnus-agent-directory) "agent.lib/" file)) + (expand-file-name file + (file-name-as-directory + (expand-file-name "agent.lib" (gnus-agent-directory))))) ;;; Fetching setup functions. @@ -1026,14 +1030,14 @@ the actual number of articles toggled is returned." (setq gnus-agent-article-alist (gnus-agent-read-file (if dir - (concat dir ".agentview") + (expand-file-name ".agentview" dir) (gnus-agent-article-name ".agentview" group))))) (defun gnus-agent-save-alist (group &optional articles state dir) "Save the article-state alist for GROUP." (let ((file-name-coding-system nnmail-pathname-coding-system)) (with-temp-file (if dir - (concat dir ".agentview") + (expand-file-name ".agentview" dir) (gnus-agent-article-name ".agentview" group)) (princ (setq gnus-agent-article-alist (nconc gnus-agent-article-alist @@ -1043,8 +1047,10 @@ the actual number of articles toggled is returned." (insert "\n")))) (defun gnus-agent-article-name (article group) - (concat (gnus-agent-directory) (gnus-agent-group-path group) "/" - (if (stringp article) article (string-to-number article)))) + (expand-file-name (if (stringp article) article (string-to-number article)) + (file-name-as-directory + (expand-file-name (gnus-agent-group-path group) + (gnus-agent-directory))))) (defun gnus-agent-batch-confirmation (msg) "Show error message and return t." diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index d2370ca38..82e02b50c 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -226,6 +226,15 @@ asynchronously. The compressed face will be piped to this command." "Banner alist for stripping. For example, ((egroups . \"^[ \\t\\n]*-------------------+\\\\( eGroups Sponsor -+\\\\)?....\\n\\\\(.+\\n\\\\)+\"))" + :version "21.1" + :type '(repeat (cons symbol regexp)) + :group 'gnus-article-washing) + +(defcustom gnus-article-banner-alist nil + "Banner alist for stripping. +For example, + ((egroups . \"^[ \\t\\n]*-------------------+\\\\( eGroups Sponsor -+\\\\)?....\\n\\\\(.+\\n\\\\)+\"))" + :version "21.1" :type '(repeat (cons symbol regexp)) :group 'gnus-article-washing) @@ -270,6 +279,7 @@ is the face used for highlighting." Typical values are \"^[ \\t]+\\\\|[ \\t]*\\n\" and \"[ \\t]+\\\\|[ \\t]*\\n\". The former avoids underlining of leading and trailing whitespace, and the latter avoids underlining any whitespace at all." + :version "21.1" :group 'gnus-article-emphasis :type 'regexp) @@ -616,11 +626,13 @@ displayed by the first non-nil matching CONTENT face." (defcustom gnus-ignored-mime-types nil "List of MIME types that should be ignored by Gnus." + :version "21.1" :group 'gnus-article-mime :type '(repeat regexp)) (defcustom gnus-unbuttonized-mime-types '(".*/.*") "List of MIME types that should not be given buttons when rendered inline." + :version "21.1" :group 'gnus-article-mime :type '(repeat regexp)) @@ -632,13 +644,17 @@ on parts -- for instance, adding Vcard info to a database." :type 'function) (defcustom gnus-mime-multipart-functions nil - "An alist of MIME types to functions to display them.") + "An alist of MIME types to functions to display them." + :version "21.1" + :group 'gnus-article-mime + :type 'alist) (defcustom gnus-article-date-lapsed-new-header nil "Whether the X-Sent and Date headers can coexist. When using `gnus-treat-date-lapsed', the \"X-Sent:\" header will either replace the old \"Date:\" header (if this variable is nil), or be added below it (otherwise)." + :version "21.1" :group 'gnus-article-headers :type 'boolean) @@ -650,6 +666,7 @@ part or alternative part is used. For `undisplayed', the first undisplayed part is used. For a function, the first part which the function return `t' is used. For `nil', the first part is used." + :version "21.1" :group 'gnus-article-mime :type '(choice (item :tag "first" :value nil) @@ -674,6 +691,21 @@ used." :type '(repeat (cons (string :tag "name") (function)))) +(defcustom gnus-mime-action-alist + '(("save to file" . gnus-mime-save-part) + ("display as text" . gnus-mime-inline-part) + ("view the part" . gnus-mime-view-part) + ("pipe to command" . gnus-mime-pipe-part) + ("toggle display" . gnus-article-press-button) + ("view as type" . gnus-mime-view-part-as-type) + ("internalize type" . gnus-mime-internalize-part) + ("externalize type" . gnus-mime-externalize-part)) + "An alist of actions that run on the MIME attachment." + :version "21.1" + :group 'gnus-article-mime + :type '(repeat (cons (string :tag "name") + (function)))) + ;;; ;;; The treatment variables ;;; @@ -781,10 +813,18 @@ See the manual for details." :group 'gnus-article-treat :type gnus-article-treat-custom) +(defcustom gnus-treat-hide-citation-maybe nil + "Hide cited text. +Valid values are nil, t, `head', `last', an integer or a predicate. +See the manual for details." + :group 'gnus-article-treat + :type gnus-article-treat-custom) + (defcustom gnus-treat-strip-list-identifiers 'head "Strip list identifiers from `gnus-list-identifiers`. Valid values are nil, t, `head', `last', an integer or a predicate. See the manual for details." + :version "21.1" :group 'gnus-article-treat :type gnus-article-treat-custom) @@ -858,6 +898,7 @@ See the manual for details." "Display the date in the ISO8601 format. Valid values are nil, t, `head', `last', an integer or a predicate. See the manual for details." + :version "21.1" :group 'gnus-article-treat :type gnus-article-treat-head-custom) @@ -873,6 +914,7 @@ See the manual for details." "Strip the X-No-Archive header line from the beginning of the body. Valid values are nil, t, `head', `last', an integer or a predicate. See the manual for details." + :version "21.1" :group 'gnus-article-treat :type gnus-article-treat-custom) @@ -943,6 +985,7 @@ See the manual for details." "Capitalize sentence-starting words. Valid values are nil, t, `head', `last', an integer or a predicate. See the manual for details." + :version "21.1" :group 'gnus-article-treat :type gnus-article-treat-custom) @@ -957,6 +1000,7 @@ See the manual for details." "Play sounds. Valid values are nil, t, `head', `last', an integer or a predicate. See the manual for details." + :version "21.1" :group 'gnus-article-treat :type gnus-article-treat-custom) @@ -964,6 +1008,7 @@ See the manual for details." "Translate articles from one language to another. Valid values are nil, t, `head', `last', an integer or a predicate. See the manual for details." + :version "21.1" :group 'gnus-article-treat :type gnus-article-treat-custom) @@ -2747,6 +2792,7 @@ If variable `gnus-use-long-file-name' is non-nil, it is (easy-menu-define gnus-article-treatment-menu gnus-article-mode-map "" + ;; Fixme: this should use :active (and maybe :visible). '("Treatment" ["Hide headers" gnus-article-hide-headers t] ["Hide signature" gnus-article-hide-signature t] @@ -2771,6 +2817,9 @@ If variable `gnus-use-long-file-name' is non-nil, it is (when (boundp 'gnus-summary-post-menu) (easy-menu-add gnus-summary-post-menu gnus-article-mode-map))) +;; Fixme: do something for the Emacs tool bar in Article mode a la +;; Summary. + (defun gnus-article-mode () "Major mode for displaying an article. @@ -3041,7 +3090,8 @@ If ALL-HEADERS is non-nil, no headers are hidden." (defvar gnus-mime-button-map (let ((map (make-sparse-keymap))) - (set-keymap-parent map gnus-article-mode-map) + ;; Not for Emacs 21: fixme better. + ;; (set-keymap-parent map gnus-article-mode-map) (define-key map gnus-mouse-2 'gnus-article-push-button) (define-key map gnus-down-mouse-3 'gnus-mime-button-menu) (dolist (c gnus-mime-button-commands) @@ -3302,7 +3352,6 @@ In no internal viewer is available, use an external viewer." (if action-pair (funcall (cdr action-pair))))) - (defun gnus-article-part-wrapper (n function) (save-current-buffer (set-buffer gnus-article-buffer) @@ -3468,12 +3517,13 @@ In no internal viewer is available, use an external viewer." (setq b (point)) (gnus-eval-format gnus-mime-button-line-format gnus-mime-button-line-format-alist - `(local-map ,gnus-mime-button-map - keymap ,gnus-mime-button-map - gnus-callback gnus-mm-display-part - gnus-part ,gnus-tmp-id - article-type annotation - gnus-data ,handle)) + `(keymap ,gnus-mime-button-map + ;; Not for Emacs 21: fixme better. + ;; local-map ,gnus-mime-button-map + gnus-callback gnus-mm-display-part + gnus-part ,gnus-tmp-id + article-type annotation + gnus-data ,handle)) (setq e (point)) (widget-convert-button 'link b e @@ -3715,7 +3765,8 @@ In no internal viewer is available, use an external viewer." ',gnus-article-mime-handle-alist)) (gnus-mime-display-alternative ',ihandles ',not-pref ',begend ,id)) - local-map ,gnus-mime-button-map + ;; Not for Emacs 21: fixme better. + ;; local-map ,gnus-mime-button-map ,gnus-mouse-face-prop ,gnus-article-mouse-face face ,gnus-article-button-face keymap ,gnus-mime-button-map @@ -3740,7 +3791,8 @@ In no internal viewer is available, use an external viewer." ',gnus-article-mime-handle-alist)) (gnus-mime-display-alternative ',ihandles ',handle ',begend ,id)) - local-map ,gnus-mime-button-map + ;; Not for Emacs 21: fixme better. + ;; local-map ,gnus-mime-button-map ,gnus-mouse-face-prop ,gnus-article-mouse-face face ,gnus-article-button-face keymap ,gnus-mime-button-map diff --git a/lisp/gnus-audio.el b/lisp/gnus-audio.el index 8aa8529a7..8906745cd 100644 --- a/lisp/gnus-audio.el +++ b/lisp/gnus-audio.el @@ -32,6 +32,7 @@ (defgroup gnus-audio nil "Playing sound in Gnus." + :version "21.1" :group 'gnus-visual :group 'multimedia) @@ -43,7 +44,7 @@ (defcustom gnus-audio-directory (nnheader-find-etc-directory "sounds") "The directory containing the Sound Files." - :type 'directory + :type '(choice directory (const nil)) :group 'gnus-audio) (defcustom gnus-audio-au-player "/usr/bin/showaudio" diff --git a/lisp/gnus-cache.el b/lisp/gnus-cache.el index 51a978e8d..293ea35c4 100644 --- a/lisp/gnus-cache.el +++ b/lisp/gnus-cache.el @@ -36,7 +36,7 @@ (require 'gnus-sum)) (defcustom gnus-cache-active-file - (concat (file-name-as-directory gnus-cache-directory) "active") + (expand-file-name "active" gnus-cache-directory) "*The cache active file." :group 'gnus-cache :type 'file) @@ -410,20 +410,22 @@ Returns the list of articles removed." (and (not unread) (not ticked) (not dormant) (memq 'read class)))) (defun gnus-cache-file-name (group article) - (concat (file-name-as-directory gnus-cache-directory) - (file-name-as-directory - (nnheader-translate-file-chars - (if (gnus-use-long-file-name 'not-cache) - group - (let ((group (nnheader-replace-duplicate-chars-in-string - (nnheader-replace-chars-in-string group ?/ ?_) - ?. ?_))) - ;; Translate the first colon into a slash. - (when (string-match ":" group) - (aset group (match-beginning 0) ?/)) - (nnheader-replace-chars-in-string group ?. ?/))) - t)) - (if (stringp article) article (int-to-string article)))) + (expand-file-name + (if (stringp article) article (int-to-string article)) + (file-name-as-directory + (expand-file-name + (nnheader-translate-file-chars + (if (gnus-use-long-file-name 'not-cache) + group + (let ((group (nnheader-replace-duplicate-chars-in-string + (nnheader-replace-chars-in-string group ?/ ?_) + ?. ?_))) + ;; Translate the first colon into a slash. + (when (string-match ":" group) + (aset group (match-beginning 0) ?/)) + (nnheader-replace-chars-in-string group ?. ?/))) + t) + gnus-cache-directory)))) (defun gnus-cache-update-article (group article) "If ARTICLE is in the cache, remove it and re-enter it." diff --git a/lisp/gnus-cite.el b/lisp/gnus-cite.el index a2b68c1e0..acbd0bb87 100644 --- a/lisp/gnus-cite.el +++ b/lisp/gnus-cite.el @@ -1,8 +1,13 @@ -;;; gnus-cite.el --- parse citations in articles for Gnus +;;; gnus-cite.el --- parse citations in articles for Gnus -*- coding: iso-latin-1 -*- + ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 ;; Free Software Foundation, Inc. -;; Author: Per Abhiddenware; you can redistribute it and/or modify +;; Author: Per Abhiddenware + +;; 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 2, or (at your option) ;; any later version. diff --git a/lisp/gnus-cus.el b/lisp/gnus-cus.el index 74a3a0ed7..c735fe984 100644 --- a/lisp/gnus-cus.el +++ b/lisp/gnus-cus.el @@ -156,7 +156,7 @@ All posts will be sent to the specified group.") (gcc-self (choice :tag "GCC" :value t - (const t) + (const :tag "To current group" t) (const none) (string :format "%v" :hide-front-space t)) "\ Specify default value for GCC header. @@ -169,11 +169,18 @@ is present and a string, this string will be inserted literally as a rules as described later).") (banner (choice :tag "Banner" - (const signature) - symbol + :value nil + (const :tag "Remove signature" signature) + (symbol :tag "Item in `gnus-article-banner-alist'" none) regexp (const :tag "None" nil)) "\ -Regular expression matching banners to be removed from articles.") +If non-nil, specify how to remove `banners' from articles. + +Symbol `signature' means to remove signatures delimited by +`gnus-signature-separator'. Any other symbol is used to look up a +regular expression to match the banner in `gnus-article-banner-alist'. +A string is used as a regular expression to match the banner +directly.") (auto-expire (const :tag "Automatic Expire" t) "\ All articles that are read will be marked as expirable.") diff --git a/lisp/gnus-ems.el b/lisp/gnus-ems.el index 6991610b0..beeac963b 100644 --- a/lisp/gnus-ems.el +++ b/lisp/gnus-ems.el @@ -26,7 +26,9 @@ ;;; Code: -(eval-when-compile (require 'cl)) +(eval-when-compile + (require 'cl) + (require 'ring)) ;;; Function aliases later to be redefined for XEmacs usage. @@ -94,6 +96,7 @@ (defvar gnus-tmp-name) (defvar gnus-tmp-closing-bracket) (defvar gnus-tmp-subject-or-nil) +(defvar gnus-check-before-posting) (defun gnus-ems-redefine () (cond @@ -277,8 +280,4 @@ for XEmacs." (provide 'gnus-ems) -;; Local Variables: -;; byte-compile-warnings: '(redefine callargs) -;; End: - ;;; gnus-ems.el ends here diff --git a/lisp/gnus-gl.el b/lisp/gnus-gl.el index afb16fceb..a17e0ce91 100644 --- a/lisp/gnus-gl.el +++ b/lisp/gnus-gl.el @@ -1,5 +1,7 @@ ;;; gnus-gl.el --- an interface to GroupLens for Gnus -;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 +;; Free Software Foundation, Inc. ;; Author: Brad Miller ;; Keywords: news, score diff --git a/lisp/gnus-group.el b/lisp/gnus-group.el index 98df29b91..e08837712 100644 --- a/lisp/gnus-group.el +++ b/lisp/gnus-group.el @@ -400,6 +400,7 @@ ticked: The number of ticked articles." For example: (((nntp \"news.com.cn\") . cn-gb-2312)) " + :version "21.1" :group 'gnus-charset :type '(repeat (cons (sexp :tag "Method") (symbol :tag "Charset")))) @@ -703,16 +704,20 @@ in the minibuffer prompt." ["Select" gnus-group-select-group (gnus-group-group-name)] ["See old articles" (gnus-group-select-group 'all) :keys "C-u SPC" :active (gnus-group-group-name)] - ["Catch up" gnus-group-catchup-current (gnus-group-group-name)] + ["Catch up" gnus-group-catchup-current :active (gnus-group-group-name) + :help "Mark unread articles in the current group as read"] ["Catch up all articles" gnus-group-catchup-current-all (gnus-group-group-name)] ["Check for new articles" gnus-group-get-new-news-this-group - (gnus-group-group-name)] + :active (gnus-group-group-name) + :help "Check for new messages in current group"] ["Toggle subscription" gnus-group-unsubscribe-current-group (gnus-group-group-name)] - ["Kill" gnus-group-kill-group (gnus-group-group-name)] + ["Kill" gnus-group-kill-group :active (gnus-group-group-name) + :help "Kill (remove) current group"] ["Yank" gnus-group-yank-group gnus-list-of-killed-groups] - ["Describe" gnus-group-describe-group (gnus-group-group-name)] + ["Describe" gnus-group-describe-group :active (gnus-group-group-name) + :help "Display description of the current group"] ["Fetch FAQ" gnus-group-fetch-faq (gnus-group-group-name)] ;; Actually one should check, if any of the marked groups gives t for ;; (gnus-check-backend-function 'request-expire-articles ...) @@ -838,7 +843,8 @@ in the minibuffer prompt." ["Brew SOUP" gnus-group-brew-soup (fboundp 'gnus-soup-pack-packet)]) ["Send a mail" gnus-group-mail t] ["Post an article..." gnus-group-post-news t] - ["Check for new news" gnus-group-get-new-news t] + ["Check for new news" gnus-group-get-new-news + :help "Get newly arrived articles"] ["Activate all groups" gnus-activate-all-groups t] ["Restart Gnus" gnus-group-restart t] ["Read init file" gnus-group-read-init-file t] @@ -854,11 +860,40 @@ in the minibuffer prompt." ["Flush score cache" gnus-score-flush-cache t] ["Toggle topics" gnus-topic-mode t] ["Send a bug report" gnus-bug t] - ["Exit from Gnus" gnus-group-exit t] + ["Exit from Gnus" gnus-group-exit + :help "Quit reading news"] ["Exit without saving" gnus-group-quit t])) (gnus-run-hooks 'gnus-group-menu-hook))) +(defvar gnus-group-toolbar-map nil) + +;; Emacs 21 tool bar. Should be no-op otherwise. +(defun gnus-group-make-tool-bar () + (if (and (fboundp 'tool-bar-add-item-from-menu) + (default-value 'tool-bar-mode) + (not gnus-group-toolbar-map)) + (setq gnus-group-toolbar-map + (let ((tool-bar-map (make-sparse-keymap))) + (tool-bar-add-item-from-menu + 'gnus-group-get-new-news "get-news" gnus-group-mode-map) + (tool-bar-add-item-from-menu + 'gnus-group-get-new-news-this-group "gnntg" gnus-group-mode-map) + (tool-bar-add-item-from-menu + 'gnus-group-catchup-current "catchup" gnus-group-mode-map) + (tool-bar-add-item-from-menu + 'gnus-group-describe-group "describe-group" gnus-group-mode-map) + (tool-bar-add-item "subscribe" 'gnus-group-subscribe 'subscribe + :help "Subscribe to the current group") + (tool-bar-add-item "unsubscribe" 'gnus-group-unsubscribe + 'unsubscribe + :help "Unsubscribe from the current group") + (tool-bar-add-item-from-menu + 'gnus-group-exit "exit-gnus" gnus-group-mode-map) + tool-bar-map))) + (if gnus-group-toolbar-map + (set (make-local-variable 'tool-bar-map) gnus-group-toolbar-map))) + (defun gnus-group-mode () "Major mode for reading news. @@ -877,9 +912,10 @@ The following commands are available: \\{gnus-group-mode-map}" (interactive) - (when (gnus-visual-p 'group-menu 'menu) - (gnus-group-make-menu-bar)) (kill-all-local-variables) + (when (gnus-visual-p 'group-menu 'menu) + (gnus-group-make-menu-bar) + (gnus-group-make-tool-bar)) (gnus-simplify-mode-line) (setq major-mode 'gnus-group-mode) (setq mode-name "Group") @@ -2389,14 +2425,14 @@ mail messages or news articles in files that have numeric names." (while (or (not group) (gnus-gethash group gnus-newsrc-hashtb)) (setq group (gnus-group-prefixed-name - (concat (file-name-as-directory (directory-file-name dir)) - ext) + (expand-file-name ext dir) '(nndir ""))) (setq ext (format "<%d>" (setq i (1+ i))))) (gnus-group-make-group (gnus-group-real-name group) (list 'nndir (gnus-group-real-name group) (list 'nndir-directory dir))))) +(eval-when-compile (defvar nnkiboze-score-file)) (defun gnus-group-make-kiboze-group (group address scores) "Create an nnkiboze group. The user will be prompted for a name, a regexp to match groups, and @@ -3326,7 +3362,7 @@ to use." (when current-prefix-arg (completing-read "Faq dir: " (and (listp gnus-group-faq-directory) - (mapcar (lambda (file) (list file)) + (mapcar #'list gnus-group-faq-directory)))))) (unless group (error "No group name given")) @@ -3337,7 +3373,7 @@ to use." (while (and (not found) (setq dir (pop dirs))) (let ((name (gnus-group-real-name group))) - (setq file (concat (file-name-as-directory dir) name))) + (setq file (expand-file-name name dir))) (if (not (file-exists-p file)) (gnus-message 1 "No such file: %s" file) (let ((enable-local-variables nil)) diff --git a/lisp/gnus-int.el b/lisp/gnus-int.el index 509ace24f..dfb05729a 100644 --- a/lisp/gnus-int.el +++ b/lisp/gnus-int.el @@ -70,8 +70,7 @@ If CONFIRM is non-nil, the user will be asked for an NNTP server." (list 'nnmh-directory (file-name-as-directory (expand-file-name - (concat "~/" (substring - gnus-nntp-server 1))))) + (substring gnus-nntp-server 1) "~/"))) (list 'nnmh-get-new-mail nil))) (t (list 'nntp gnus-nntp-server))))) diff --git a/lisp/gnus-ml.el b/lisp/gnus-ml.el index 7938feca8..5eb0fd0c5 100644 --- a/lisp/gnus-ml.el +++ b/lisp/gnus-ml.el @@ -1,23 +1,26 @@ -;;; gnus-ml.el --- Mailing list minor mode for gnus +;;; gnus-ml.el --- Mailing list minor mode for Gnus -;; Copyright (C) 2000 by Julien Gilles +;; Copyright (C) 2000 Free Software Foundation, Inc. ;; Author: Julien Gilles ;; Keywords: news -;; This program is free software; you can redistribute it and/or modify +;; 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 2 of the License, or -;; (at your option) any later version. +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. -;; This program is distributed in the hope that it will be useful, +;; 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 this program; if not, write to the Free Software -;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. ;;; Commentary: diff --git a/lisp/gnus-msg.el b/lisp/gnus-msg.el index 1f657ba3d..52f60d3c5 100644 --- a/lisp/gnus-msg.el +++ b/lisp/gnus-msg.el @@ -143,6 +143,7 @@ use this option with care." (defvar gnus-message-buffer "*Mail Gnus*") (defvar gnus-article-copy nil) +(defvar gnus-check-before-posting nil) (defvar gnus-last-posting-server nil) (defvar gnus-message-group-art nil) @@ -630,8 +631,9 @@ If SILENT, don't prompt the user." ;; Dummies to avoid byte-compile warning. -(defvar nnspool-rejected-article-hook) -(defvar xemacs-codename) +(eval-when-compile + (defvar nnspool-rejected-article-hook) + (defvar xemacs-codename)) (defun gnus-extended-version () "Stringified Gnus version and Emacs version." diff --git a/lisp/gnus-nocem.el b/lisp/gnus-nocem.el index 7d0be1d66..d68245156 100644 --- a/lisp/gnus-nocem.el +++ b/lisp/gnus-nocem.el @@ -86,9 +86,10 @@ matches an previously scanned and verified nocem message." :group 'gnus-nocem :type 'boolean) -(defcustom gnus-nocem-check-article-limit nil +(defcustom gnus-nocem-check-article-limit 500 "*If non-nil, the maximum number of articles to check in any NoCeM group." :group 'gnus-nocem + :version "21.1" :type '(choice (const :tag "unlimited" nil) (integer 1000))) @@ -97,6 +98,7 @@ matches an previously scanned and verified nocem message." Otherwise don't bother fetching articles unless their author matches a valid issuer, which is much faster if you are selective about the issuers." :group 'gnus-nocem + :version "21.1" :type 'boolean) ;;; Internal variables diff --git a/lisp/gnus-range.el b/lisp/gnus-range.el index 5e0dc1382..223a32e33 100644 --- a/lisp/gnus-range.el +++ b/lisp/gnus-range.el @@ -1,5 +1,6 @@ ;;; gnus-range.el --- range and sequence functions for Gnus -;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Keywords: news diff --git a/lisp/gnus-salt.el b/lisp/gnus-salt.el index 164be42fb..dd2aa1f9d 100644 --- a/lisp/gnus-salt.el +++ b/lisp/gnus-salt.el @@ -1,5 +1,6 @@ ;;; gnus-salt.el --- alternate summary mode interfaces for Gnus -;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Keywords: news diff --git a/lisp/gnus-score.el b/lisp/gnus-score.el index a3442e3c4..c6ddb5bf1 100644 --- a/lisp/gnus-score.el +++ b/lisp/gnus-score.el @@ -1102,8 +1102,7 @@ EXTRA is the possible non-standard header." gnus-kill-files-directory))) (expand-file-name file)) file) - (concat (file-name-as-directory gnus-kill-files-directory) - file)))) + (expand-file-name file gnus-kill-files-directory)))) (cached (assoc file gnus-score-cache)) (global (member file gnus-internal-global-score-files)) lists alist) @@ -2566,7 +2565,7 @@ GROUP using BNews sys file syntax." ;; If short file names were used, we have to translate slashes. (goto-char (point-min)) (let ((regexp (concat - "[/:" (if trans (char-to-string trans) "") "]"))) + "[/:" (if trans (char-to-string trans)) "]"))) (while (re-search-forward regexp nil t) (replace-match "." t t))) ;; Kludge to get rid of "nntp+" problems. diff --git a/lisp/gnus-setup.el b/lisp/gnus-setup.el index 5bc76563a..307aaafad 100644 --- a/lisp/gnus-setup.el +++ b/lisp/gnus-setup.el @@ -1,5 +1,6 @@ ;;; gnus-setup.el --- Initialization & Setup for Gnus 5 -;; Copyright (C) 1995, 96 Free Software Foundation, Inc. + +;; Copyright (C) 1995, 1996, 2000 Free Software Foundation, Inc. ;; Author: Steven L. Baur ;; Keywords: news @@ -33,36 +34,27 @@ (eval-when-compile (require 'cl)) -(defvar running-xemacs (string-match "XEmacs\\|Lucid" emacs-version)) - (defvar gnus-use-installed-gnus t "*If non-nil Use installed version of Gnus.") -(defvar gnus-use-installed-tm running-xemacs - "*If non-nil use installed version of tm.") - -(defvar gnus-use-installed-mailcrypt running-xemacs +(defvar gnus-use-installed-mailcrypt (featurep 'xemacs) "*If non-nil use installed version of mailcrypt.") -(defvar gnus-emacs-lisp-directory (if running-xemacs +(defvar gnus-emacs-lisp-directory (if (featurep 'xemacs) "/usr/local/lib/xemacs/" "/usr/local/share/emacs/") "Directory where Emacs site lisp is located.") (defvar gnus-gnus-lisp-directory (concat gnus-emacs-lisp-directory - "gnus-5.0.15/lisp/") + "gnus/lisp/") "Directory where Gnus Emacs lisp is found.") -(defvar gnus-tm-lisp-directory (concat gnus-emacs-lisp-directory - "site-lisp/") - "Directory where TM Emacs lisp is found.") - (defvar gnus-mailcrypt-lisp-directory (concat gnus-emacs-lisp-directory - "site-lisp/mailcrypt-3.4/") + "site-lisp/mailcrypt/") "Directory where Mailcrypt Emacs Lisp is found.") (defvar gnus-bbdb-lisp-directory (concat gnus-emacs-lisp-directory - "site-lisp/bbdb-1.51/") + "site-lisp/bbdb/") "Directory where Big Brother Database is found.") (defvar gnus-use-mhe nil diff --git a/lisp/gnus-soup.el b/lisp/gnus-soup.el index de67cc755..1f4306869 100644 --- a/lisp/gnus-soup.el +++ b/lisp/gnus-soup.el @@ -1,5 +1,7 @@ ;;; gnus-soup.el --- SOUP packet writing support for Gnus -;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 +;; Free Software Foundation, Inc. ;; Author: Per Abrahamsen ;; Lars Magne Ingebrigtsen diff --git a/lisp/gnus-spec.el b/lisp/gnus-spec.el index 3878b8ad3..0b15c2c89 100644 --- a/lisp/gnus-spec.el +++ b/lisp/gnus-spec.el @@ -1,4 +1,4 @@ -;;; gnus-spec.el --- format spec functions for Gnus +;;; gnus-spec.el --- format spec functions for Gnus -*- coding: iso-latin-1 -*- ;; Copyright (C) 1996, 1997, 1998, 1999, 2000 ;; Free Software Foundation, Inc. diff --git a/lisp/gnus-start.el b/lisp/gnus-start.el index f1b228d42..418cef404 100644 --- a/lisp/gnus-start.el +++ b/lisp/gnus-start.el @@ -197,6 +197,7 @@ Gnus always reads its own startup file, which is called be readily understood by other newsreaders. If you don't plan on using other newsreaders, set this variable to nil to save some time on entry." + :version "21.1" :group 'gnus-newsrc :type 'boolean) @@ -681,7 +682,7 @@ prompt the user for the name of an NNTP server to use." (cond ((featurep 'xemacs) (gnus-xmas-splash)) - ((and (eq window-system 'x) + ((and window-system (= (frame-height) (1+ (window-height)))) (gnus-x-splash)))) diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 78df6515a..345b0fe5f 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -36,9 +36,13 @@ (require 'gnus-undo) (require 'gnus-util) (require 'mm-decode) +;; Recursive :-(. +;; (require 'gnus-art) +(require 'nnoo) (autoload 'gnus-summary-limit-include-cached "gnus-cache" nil t) (autoload 'gnus-cache-write-active "gnus-cache") (autoload 'gnus-mailing-list-insinuate "gnus-ml" nil t) +(autoload 'mm-uu-dissect "mm-uu") (defcustom gnus-kill-summary-on-exit t "*If non-nil, kill the summary buffer when you exit from it. @@ -490,11 +494,13 @@ this variable specifies group names." gnus-low-score-mark gnus-ancient-mark gnus-read-mark gnus-souped-mark gnus-duplicate-mark) "*The list of marks converted into expiration if a group is auto-expirable." + :version "21.1" :group 'gnus-summary :type '(repeat character)) (defcustom gnus-inhibit-user-auto-expire t "*If non-nil, user marking commands will not mark an article as expirable, even if the group has auto-expire turned on." + :version "21.1" :group 'gnus-summary :type 'boolean) @@ -555,6 +561,7 @@ with some simple extensions: (defcustom gnus-list-identifiers nil "Regexp that matches list identifiers to be removed from subject. This can also be a list of regexps." + :version "21.1" :group 'gnus-summary-format :group 'gnus-article-hiding :type '(choice (const :tag "none" nil) @@ -633,6 +640,7 @@ This variable is local to the summary buffers." (defcustom gnus-summary-mode-hook nil "*A hook for Gnus summary mode. This hook is run before any variables are set in the summary buffer." + :options '(turn-on-gnus-mailing-list-mode) :group 'gnus-summary-various :type 'hook) @@ -808,12 +816,14 @@ which it may alter in any way.") (defcustom gnus-extra-headers nil "*Extra headers to parse." + :version "21.1" :group 'gnus-summary :type '(repeat symbol)) (defcustom gnus-ignored-from-addresses (and user-mail-address (regexp-quote user-mail-address)) "*Regexp of From headers that may be suppressed in favor of To headers." + :version "21.1" :group 'gnus-summary :type 'regexp) @@ -840,6 +850,7 @@ which it may alter in any way.") "List of charsets that should be ignored. When these charsets are used in the \"charset\" parameter, the default charset will be used instead." + :version "21.1" :type '(repeat symbol) :group 'gnus-charset) @@ -855,6 +866,7 @@ default charset will be used instead." (defcustom gnus-group-highlight-words-alist nil "Alist of group regexps and highlight regexps. This variable uses the same syntax as `gnus-emphasis-alist'." + :version "21.1" :type '(repeat (cons (regexp :tag "Group") (repeat (list (regexp :tag "Highlight regexp") (number :tag "Group for entire word" 0) @@ -869,12 +881,14 @@ This variable uses the same syntax as `gnus-emphasis-alist'." The article will be shown with the charset corresponding to the numbered argument. For example: ((1 . cn-gb-2312) (2 . big5))." + :version "21.1" :type '(repeat (cons (number :tag "Argument" 1) (symbol :tag "Charset"))) :group 'gnus-charset) (defcustom gnus-preserve-marks t "Whether marks are preserved when moving, copying and respooling messages." + :version "21.1" :type 'boolean :group 'gnus-summary-marks) @@ -897,6 +911,14 @@ when prompting the user for which type of files to save." :type 'regexp) +(defcustom gnus-summary-save-parts-default-mime "image/.*" + "*A regexp to match MIME parts when saving multiple parts of a message +with gnus-summary-save-parts (X m). This regexp will be used by default +when prompting the user for which type of files to save." + :group 'gnus-summary + :type 'regexp) + + ;;; Internal variables (defvar gnus-article-mime-handles nil) @@ -919,6 +941,9 @@ when prompting the user for which type of files to save." (defvar gnus-summary-save-parts-type-history nil) (defvar gnus-summary-save-parts-last-directory nil) +(defvar gnus-summary-save-parts-type-history nil) +(defvar gnus-summary-save-parts-last-directory nil) + ;; Avoid highlighting in kill files. (defvar gnus-summary-inhibit-highlight nil) (defvar gnus-newsgroup-selected-overlay nil) @@ -1138,7 +1163,7 @@ the type of the variable (string, integer, character, etc).") "Variables that have separate values in the newsgroups.") ;; Byte-compiler warning. -(defvar gnus-article-mode-map) +(eval-when-compile (defvar gnus-article-mode-map)) ;; MIME stuff. @@ -1747,7 +1772,8 @@ increase the score of each group you read." ["Show X-Face" gnus-article-display-x-face t] ["Quoted-Printable" gnus-article-de-quoted-unreadable t] ["Base64" gnus-article-de-base64-unreadable t] - ["Rot 13" gnus-summary-caesar-message t] + ["Rot 13" gnus-summary-caesar-message + :help "\"Caesar rotate\" article by 13"] ["Unix pipe" gnus-summary-pipe-message t] ["Add buttons" gnus-article-add-buttons t] ["Add buttons to head" gnus-article-add-buttons-to-head t] @@ -1758,8 +1784,10 @@ increase the score of each group you read." ["Verify X-PGP-Sig" gnus-article-verify-x-pgp-sig t] ["HZ" gnus-article-decode-HZ t]) ("Output" - ["Save in default format" gnus-summary-save-article t] - ["Save in file" gnus-summary-save-article-file t] + ["Save in default format" gnus-summary-save-article + :help "Save article using default method"] + ["Save in file" gnus-summary-save-article-file + :help "Save article in file"] ["Save in Unix mail format" gnus-summary-save-article-mail t] ["Save in MH folder" gnus-summary-save-article-folder t] ["Save in VM folder" gnus-summary-save-article-vm t] @@ -1790,7 +1818,8 @@ increase the score of each group you read." (gnus-check-backend-function 'request-expire-articles gnus-newsgroup-name)]) ("Extract" - ["Uudecode" gnus-uu-decode-uu t] + ["Uudecode" gnus-uu-decode-uu + :help "Decode uuencoded article(s)"] ["Uudecode and save" gnus-uu-decode-uu-and-save t] ["Unshar" gnus-uu-decode-unshar t] ["Unshar and save" gnus-uu-decode-unshar-and-save t] @@ -1841,15 +1870,20 @@ increase the score of each group you read." (easy-menu-define gnus-summary-post-menu gnus-summary-mode-map "" '("Post" - ["Post an article" gnus-summary-post-news t] - ["Followup" gnus-summary-followup t] - ["Followup and yank" gnus-summary-followup-with-original t] + ["Post an article" gnus-summary-post-news + :help "Post an article"] + ["Followup" gnus-summary-followup + :help "Post followup to this article"] + ["Followup and yank" gnus-summary-followup-with-original + :help "Post followup to this article, quoting its contents"] ["Supersede article" gnus-summary-supersede-article t] - ["Cancel article" gnus-summary-cancel-article t] + ["Cancel article" gnus-summary-cancel-article + :help "Cancel an article you posted"] ["Reply" gnus-summary-reply t] ["Reply and yank" gnus-summary-reply-with-original t] ["Wide reply" gnus-summary-wide-reply t] - ["Wide reply and yank" gnus-summary-wide-reply-with-original t] + ["Wide reply and yank" gnus-summary-wide-reply-with-original + :help "Mail a reply, quoting this article"] ["Mail forward" gnus-summary-mail-forward t] ["Post forward" gnus-summary-post-forward t] ["Digest and mail" gnus-uu-digest-mail-forward t] @@ -1857,7 +1891,8 @@ increase the score of each group you read." ["Resend message" gnus-summary-resend-message t] ["Send bounced mail" gnus-summary-resend-bounced-mail t] ["Send a mail" gnus-summary-mail-other-window t] - ["Uuencode and post" gnus-uu-post-news t] + ["Uuencode and post" gnus-uu-post-news + :help "Post a uuencoded article"] ["Followup via news" gnus-summary-followup-to-mail t] ["Followup via news and yank" gnus-summary-followup-to-mail-with-original t] @@ -1874,7 +1909,8 @@ increase the score of each group you read." ["Mark same subject and select" gnus-summary-kill-same-subject-and-select t] ["Mark same subject" gnus-summary-kill-same-subject t] - ["Catchup" gnus-summary-catchup t] + ["Catchup" gnus-summary-catchup + :help "Mark unread articles in this group as read"] ["Catchup all" gnus-summary-catchup-all t] ["Catchup to here" gnus-summary-catchup-to-here t] ["Catchup region" gnus-summary-mark-region-as-read t] @@ -1924,8 +1960,10 @@ increase the score of each group you read." gnus-newsgroup-process-stack] ["Save" gnus-summary-save-process-mark t])) ("Scroll article" - ["Page forward" gnus-summary-next-page t] - ["Page backward" gnus-summary-prev-page t] + ["Page forward" gnus-summary-next-page + :help "Show next page of article"] + ["Page backward" gnus-summary-prev-page + :help "Show previous page of article"] ["Line forward" gnus-summary-scroll-up t]) ("Move" ["Next unread article" gnus-summary-next-unread-article t] @@ -1976,10 +2014,12 @@ increase the score of each group you read." ["Customize group parameters" gnus-summary-customize-parameters t] ["Send a bug report" gnus-bug t] ("Exit" - ["Catchup and exit" gnus-summary-catchup-and-exit t] + ["Catchup and exit" gnus-summary-catchup-and-exit + :help "Mark unread articles in this group as read, then exit"] ["Catchup all and exit" gnus-summary-catchup-all-and-exit t] ["Catchup and goto next" gnus-summary-catchup-and-goto-next-group t] - ["Exit group" gnus-summary-exit t] + ["Exit group" gnus-summary-exit + :help "Exit current group, return to group selection mode"] ["Exit group without updating" gnus-summary-exit-no-update t] ["Exit and goto next group" gnus-summary-next-group t] ["Exit and goto prev group" gnus-summary-prev-group t] @@ -1989,6 +2029,49 @@ increase the score of each group you read." (gnus-run-hooks 'gnus-summary-menu-hook))) +(defvar gnus-summary-tool-bar-map nil) + +;; Emacs 21 tool bar. Should be no-op otherwise. +(defun gnus-summary-make-tool-bar () + (if (and (fboundp 'tool-bar-add-item-from-menu) + (default-value 'tool-bar-mode) + (not gnus-summary-tool-bar-map)) + (setq gnus-summary-tool-bar-map + (let ((tool-bar-map (make-sparse-keymap))) + (tool-bar-add-item-from-menu + 'gnus-summary-prev-unread "prev-ur" gnus-summary-mode-map) + (tool-bar-add-item-from-menu + 'gnus-summary-next-unread "next-ur" gnus-summary-mode-map) + (tool-bar-add-item-from-menu + 'gnus-summary-post-news "post" gnus-summary-mode-map) + (tool-bar-add-item-from-menu + 'gnus-summary-followup-with-original "fuwo" gnus-summary-mode-map) + (tool-bar-add-item-from-menu + 'gnus-summary-followup "followup" gnus-summary-mode-map) + (tool-bar-add-item-from-menu + 'gnus-summary-reply-with-original "reply-wo" gnus-summary-mode-map) + (tool-bar-add-item-from-menu + 'gnus-summary-reply "reply" gnus-summary-mode-map) + (tool-bar-add-item-from-menu + 'gnus-summary-caesar-message "rot13" gnus-summary-mode-map) + (tool-bar-add-item-from-menu + 'gnus-uu-decode-uu "uu-decode" gnus-summary-mode-map) + (tool-bar-add-item-from-menu + 'gnus-summary-save-article-file "save-aif" gnus-summary-mode-map) + (tool-bar-add-item-from-menu + 'gnus-summary-save-article "save-art" gnus-summary-mode-map) + (tool-bar-add-item-from-menu + 'gnus-uu-post-news "uu-post" gnus-summary-mode-map) + (tool-bar-add-item-from-menu + 'gnus-summary-catchup "catchup" gnus-summary-mode-map) + (tool-bar-add-item-from-menu + 'gnus-summary-catchup-and-exit "cu-exit" gnus-summary-mode-map) + (tool-bar-add-item-from-menu + 'gnus-summary-exit "exit-summ" gnus-summary-mode-map) + tool-bar-map))) + (if gnus-summary-tool-bar-map + (set (make-local-variable 'tool-bar-map) gnus-summary-tool-bar-map))) + (defun gnus-score-set-default (var value) "A version of set that updates the GNU Emacs menu-bar." (set var value) @@ -2097,9 +2180,10 @@ The following commands are available: \\{gnus-summary-mode-map}" (interactive) - (when (gnus-visual-p 'summary-menu 'menu) - (gnus-summary-make-menu-bar)) (kill-all-local-variables) + (when (gnus-visual-p 'summary-menu 'menu) + (gnus-summary-make-menu-bar) + (gnus-summary-make-tool-bar)) (gnus-summary-make-local-variables) (let ((gnus-summary-local-variables gnus-newsgroup-variables)) (gnus-summary-make-local-variables)) @@ -3846,7 +3930,7 @@ Unscored articles will be counted as having a score of zero." (defvar gnus-tmp-root-expunged nil) (defvar gnus-tmp-dummy-line nil) -(defvar gnus-tmp-header) +(eval-when-compile (defvar gnus-tmp-header)) (defun gnus-extra-header (type &optional header) "Return the extra header of TYPE." (or (cdr (assq type (mail-header-extra (or header gnus-tmp-header)))) @@ -5233,10 +5317,22 @@ displayed, no centering will be performed." ;; Set the window start to either `bottom', which is the biggest ;; possible valid number, or the second line from the top, ;; whichever is the least. - (set-window-start - window (min bottom (save-excursion - (forward-line (- top)) (point))) - t)) + (let ((top-pos (save-excursion (forward-line (- top)) (point)))) + (if (> bottom top-pos) + ;; Keep the second line from the top visible + (set-window-start window top-pos t) + ;; Try to keep the bottom line visible; if it's partially + ;; obscured, either scroll one more line to make it fully + ;; visible, or revert to using TOP-POS. + (save-excursion + (goto-char (point-max)) + (forward-line -1) + (let ((last-line-start (point))) + (goto-char bottom) + (set-window-start window (point) t) + (when (not (pos-visible-in-window-p last-line-start window)) + (forward-line 1) + (set-window-start window (min (point) top-pos) t))))))) ;; Do horizontal recentering while we're at it. (when (and (get-buffer-window (current-buffer) t) (not (eq gnus-auto-center-summary 'vertical))) @@ -5888,6 +5984,9 @@ Given a prefix, will force an `article' buffer configuration." (defun gnus-summary-display-article (article &optional all-header) "Display ARTICLE in article buffer." + (when (gnus-buffer-live-p gnus-article-buffer) + (with-current-buffer gnus-article-buffer + (mm-enable-multibyte-mule4))) (gnus-set-global-variables) (when (gnus-buffer-live-p gnus-article-buffer) (with-current-buffer gnus-article-buffer diff --git a/lisp/gnus-undo.el b/lisp/gnus-undo.el index 882374701..7dd333f1c 100644 --- a/lisp/gnus-undo.el +++ b/lisp/gnus-undo.el @@ -1,5 +1,7 @@ ;;; gnus-undo.el --- minor mode for undoing in Gnus -;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000 +;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Keywords: news diff --git a/lisp/gnus-util.el b/lisp/gnus-util.el index c58e4da60..9194c560a 100644 --- a/lisp/gnus-util.el +++ b/lisp/gnus-util.el @@ -34,10 +34,10 @@ (require 'custom) (eval-when-compile (require 'cl)) (require 'nnheader) -(require 'message) (require 'time-date) (eval-and-compile + (autoload 'message-fetch-field "message") (autoload 'rmail-insert-rmail-file-header "rmail") (autoload 'rmail-count-new-messages "rmail") (autoload 'rmail-show-message "rmail")) diff --git a/lisp/gnus-vm.el b/lisp/gnus-vm.el index c6115823b..d9abe3e58 100644 --- a/lisp/gnus-vm.el +++ b/lisp/gnus-vm.el @@ -1,5 +1,7 @@ ;;; gnus-vm.el --- vm interface for Gnus -;; Copyright (C) 1994,95,96,97,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000 +;; Free Software Foundation, Inc. ;; Author: Per Persson ;; Keywords: news, mail diff --git a/lisp/gnus.el b/lisp/gnus.el index 17340e3ea..6f594103b 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -1,4 +1,4 @@ -;;; gnus.el --- a newsreader for GNU Emacs +:;;; gnus.el --- a newsreader for GNU Emacs ;; Copyright (C) 1987, 1988, 1989, 1990, 1993, 1994, 1995, 1996, ;; 1997, 1998, 2000 Free Software Foundation, Inc. @@ -40,6 +40,7 @@ (defgroup gnus-charset nil "Group character set issues." :link '(custom-manual "(gnus)Charsets") + :version "21.1" :group 'gnus) (defgroup gnus-cache nil @@ -303,9 +304,9 @@ be set in `.emacs' instead." (setq gnus-mode-line-image-cache (find-image '((:type xpm :file "gnus-pointer.xpm" - :ascent 80) + :ascent center) (:type xbm :file "gnus-pointer.xbm" - :ascent 80)))) + :ascent center)))) gnus-mode-line-image-cache) 'help-echo "This is Gnus") str) @@ -774,6 +775,10 @@ be set in `.emacs' instead." (display-graphic-p) (let ((image (find-image `((:type xpm :file "gnus.xpm") + (:type pbm :file "gnus.pbm" + ;; Account for the pbm's blackground. + :background ,(face-foreground 'gnus-splash-face) + :foreground ,(face-background 'default)) (:type xbm :file "gnus.xbm" ;; Account for the xbm's blackground. :background ,(face-foreground 'gnus-splash-face) @@ -1516,6 +1521,9 @@ If nil, no default charset is assumed when posting." (defvar gnus-agent-fetching nil "Whether Gnus agent is in fetching mode.") +(defvar gnus-agent-fetching nil + "Whether Gnus agent is in fetching mode.") + (defvar gnus-command-method nil "Dynamically bound variable that says what the current backend is.") @@ -1671,10 +1679,9 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.") (nthcdr 3 package) (cdr package))))) '(("info" :interactive t Info-goto-node) - ("pp" pp pp-to-string pp-eval-expression) + ("pp" pp-to-string) ("qp" quoted-printable-decode-region quoted-printable-decode-string) ("ps-print" ps-print-preprint) - ("browse-url" :interactive t browse-url) ("message" :interactive t message-send-and-exit message-yank-original) ("babel" babel-as-string) diff --git a/lisp/imap.el b/lisp/imap.el index 828301f85..f10aeaacc 100644 --- a/lisp/imap.el +++ b/lisp/imap.el @@ -152,12 +152,21 @@ (autoload 'utf7-encode "utf7") (autoload 'utf7-decode "utf7") (autoload 'format-spec "format-spec") - (autoload 'format-spec-make "format-spec")) + (autoload 'format-spec-make "format-spec") + ;; Avoid use gnus-point-at-eol so we're independent of Gnus. These + ;; days we have point-at-eol anyhow. + (if (fboundp 'point-at-eol) + (defalias 'imap-point-at-eol 'point-at-eol) + (defun imap-point-at-eol () + (save-excursion + (end-of-line) + (point))))) ;; User variables. (defgroup imap nil "Low-level IMAP issues." + :version "21.1" :group 'mail) (defcustom imap-kerberos4-program '("imtest -m kerberos_v4 -u %l -p %p %s" @@ -2224,7 +2233,7 @@ Return nil if no complete line has arrived." (assert (eq (char-after) ?\()) (while (and (not (eq (char-after) ?\))) (setq start (progn (imap-forward) (point))) - (> (skip-chars-forward "^ )" (gnus-point-at-eol)) 0)) + (> (skip-chars-forward "^ )" (imap-point-at-eol)) 0)) (push (buffer-substring start (point)) flag-list)) (assert (eq (char-after) ?\))) (imap-forward) diff --git a/lisp/kill-group.pbm b/lisp/kill-group.pbm new file mode 100644 index 0000000000000000000000000000000000000000..50831447f5041925080300538cf32a5470704f5f GIT binary patch literal 81 zcmWGA;W9E&Ff!o^6%ABiVsH_0)c=1XgfWoAVnIx3C`S#4NR6O|1-FZUD8~+lP!~ZB k4F(qhK@AU%P!>TB28I|0Q4R(U5e7m1|F2y`LKzqs0K2vjGynhq literal 0 HcmV?d00001 diff --git a/lisp/kill-group.xpm b/lisp/kill-group.xpm new file mode 100644 index 000000000..de83fd976 --- /dev/null +++ b/lisp/kill-group.xpm @@ -0,0 +1,50 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"24 24 20 1", +" c Gray0", +". c Gray6", +"X c Gray12", +"o c #2ff42ff42ff4", +"O c #3fff3fff3fff", +"+ c Gray28", +"@ c #53e353e353e3", +"# c #5fe25fe25fe2", +"$ c #67e767e767e7", +"% c #6fff6fff6fff", +"& c #77d777d777d7", +"* c Gray50", +"= c Gray56", +"- c #9fff9fff9fff", +"; c Gray70", +": c Gray75", +"> c Gray81", +", c #dfffdfffdfff", +"< c #efffefffefff", +"1 c Gray100", +/* pixels */ +"::::::::::::::::::::::::", +"::::::::::::::::::::::::", +"::::::::::::::::::::::::", +"::::#oOOOOOOOOOo+;::::::", +"::::#:111111111:O$::::::", +"::::#:1111-O%11:*>@:::::", +"::::#:111=X.o#<>OOo#::::", +"::::#:111 OX# :111:#::::", +"::::#:111 = :111:#::::", +"::::#:111>Xo.-1111:#::::", +"::::#:1111*:O11111:#::::", +"::::#:11%1*oO->111:#::::", +"::::#:1-O:,1:*O111:#::::", +"::::#:111****:1111:#::::", +"::::#:1111* 111111:#::::", +"::::#:1,:O-1O*:111:#::::", +"::::#:1:X1111*#111:#::::", +"::::#:11>1111,<111:#::::", +"::::#:111111111111:#::::", +"::::#:111111111111:#::::", +"::::#:111111111111:#::::", +"::::&oooooooooooooo&::::", +"::::::::::::::::::::::::", +"::::::::::::::::::::::::" +}; diff --git a/lisp/lpath.el b/lisp/lpath.el index f5103ec31..9e5874f4b 100644 --- a/lisp/lpath.el +++ b/lisp/lpath.el @@ -19,8 +19,10 @@ make-temp-file mail-aliases-setup mm-copy-tree mule-write-region-no-coding-system put-image + ring-elements rmail-select-summary rmail-summary-exists rmail-update-summary sc-cite-regexp set-font-family set-font-size temp-directory + tool-bar-add-item tool-bar-add-item-from-menu url-view-url vcard-pretty-print url-insert-file-contents w3-coding-system-for-mime-charset w3-prepare-buffer w3-region diff --git a/lisp/mail-reply.pbm b/lisp/mail-reply.pbm new file mode 100644 index 0000000000000000000000000000000000000000..9ca76596fb1dc23f14ce7fe6ee4085636e77bff3 GIT binary patch literal 81 zcmWGA;W9E&Ff!p{U}RumUckT-z+l6{=qkX>CBPygV6?!(Bp^i3 c Gray75", +", c Gray81", +"< c #dfffdfffdfff", +"1 c #efffefffefff", +"2 c Gray100", +/* pixels */ +">>>>>>>>>>>>>>>==:>>>>>>", +">>>>>>>>>>>>>>&**$&>>>>>", +">>>>>>>>>>>>>&-22,-o->>>", +">>>>>>>>>=$O@$,,2222O>>>", +">>>>>>>=#*>2*>2O222>$>>>", +">>>>>>o&>222O2%,22,$:>>>", +">>>:$O2222<#2*>222=+:>>>", +">>&$>;;2;2*>2><22;**$&>>", +">>o.;,,2,,*1%222;;,O;o>>", +">>o2;O><2O2,%221#o%22o>>", +">>o222***O2;22;**<222o>>", +">>o2222<>.;2,O;,22222o>>", +">>o2221>#2;O%;;,22222o>>", +">>o222**<22222;*>2222o>>", +">>o22%,222222221*,222o>>", +">>o;O,22222222222%#<2o>>", +">>o;22222222222222<**o>>", +">>oOOOOOOOOOOOOOOOOX o>>", +">>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>" +}; diff --git a/lisp/mail-source.el b/lisp/mail-source.el index a75bc08a5..e2a954435 100644 --- a/lisp/mail-source.el +++ b/lisp/mail-source.el @@ -39,6 +39,7 @@ (defgroup mail-source nil "The mail-fetching library." + :version "21.1" :group 'gnus) ;; Define these at compile time to avoid dragging in imap always. diff --git a/lisp/mailcap.el b/lisp/mailcap.el index 1012907a0..a386de5a7 100644 --- a/lisp/mailcap.el +++ b/lisp/mailcap.el @@ -1,9 +1,9 @@ -;;; mailcap.el --- Functions for displaying MIME parts +;;; mailcap.el --- MIME media types configuration ;; Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. ;; Author: William M. Perry ;; Lars Magne Ingebrigtsen -;; Keywords: news, mail +;; Keywords: news, mail, multimedia ;; This file is part of GNU Emacs. @@ -24,12 +24,21 @@ ;;; Commentary: +;; Provides configuration of MIME media types from directly from Lisp +;; and via the usual mailcap mechanism (RFC 1524). Deals with +;; mime.types similarly. + ;;; Code: (eval-when-compile (require 'cl)) (require 'mail-parse) (require 'mm-util) +(defgroup mailcap nil + "Definition of viewers for MIME types." + :version "21.1" + :group 'mime) + (defvar mailcap-parse-args-syntax-table (let ((table (copy-syntax-table emacs-lisp-mode-syntax-table))) (modify-syntax-entry ?' "\"" table) @@ -39,6 +48,10 @@ table) "A syntax table for parsing sgml attributes.") +;; Postpone using defcustom for this as it's so big and we essentially +;; have to have two copies of the data around then. Perhaps just +;; customize the Lisp viewers and rely on the normal configuration +;; files for the rest? -- fx (defvar mailcap-mime-data '(("application" ("x-x509-ca-cert" @@ -53,10 +66,11 @@ (viewer . mailcap-save-binary-file) (non-viewer . t) (type . "application/octet-stream")) - ("dvi" - (viewer . "open %s") - (type . "application/dvi") - (test . (eq (mm-device-type) 'ns))) +;;; XEmacs says `ns' device-type not implemented. +;; ("dvi" +;; (viewer . "open %s") +;; (type . "application/dvi") +;; (test . (eq (mm-device-type) 'ns))) ("dvi" (viewer . "xdvi %s") (test . (eq (mm-device-type) 'x)) @@ -98,13 +112,28 @@ (non-viewer . t) (type . "application/zip") ("copiousoutput")) + ;; Prefer free viewers. + ("pdf" + (viewer . "gv %s") + (type . "application/pdf") + (test . window-system)) + ("pdf" + (viewer . "xpdf %s") + (type . "application/pdf") + (test . (eq (mm-device-type) 'x))) ("pdf" (viewer . "acroread %s") (type . "application/pdf")) +;;; XEmacs says `ns' device-type not implemented. +;; ("postscript" +;; (viewer . "open %s") +;; (type . "application/postscript") +;; (test . (eq (mm-device-type) 'ns))) ("postscript" - (viewer . "open %s") - (type . "application/postscript") - (test . (eq (mm-device-type) 'ns))) + (viewer . "gv -safer %s") + (type . "application/postscript") + (test . window-system) + ("needsx11")) ("postscript" (viewer . "ghostview -dSAFER %s") (type . "application/postscript") @@ -138,10 +167,6 @@ (type . "message/rfc822")) ("rfc-*822" (viewer . view-mode) - (test . (fboundp 'view-mode)) - (type . "message/rfc822")) - ("rfc-*822" - (viewer . fundamental-mode) (type . "message/rfc822"))) ("image" ("x-xwd" @@ -162,10 +187,11 @@ ("compose" . "xwd -frame > %s") (test . (eq (mm-device-type) 'x)) ("needsx11")) - (".*" - (viewer . "aopen %s") - (type . "image/*") - (test . (eq (mm-device-type) 'ns))) +;;; XEmacs says `ns' device-type not implemented. +;; (".*" +;; (viewer . "aopen %s") +;; (type . "image/*") +;; (test . (eq (mm-device-type) 'ns))) (".*" (viewer . "display %s") (type . "image/*") @@ -225,57 +251,38 @@ Which looks like: (\"plain\" . ))) Where is another assoc list of the various information -related to the mailcap RFC. This is keyed on the lowercase +related to the mailcap RFC 1524. This is keyed on the lowercase attribute name (viewer, test, etc). This looks like: - ((viewer . viewerinfo) - (test . testinfo) - (xxxx . \"string\")) + ((viewer . VIEWERINFO) + (test . TESTINFO) + (xxxx . \"STRING\") + FLAG) -Where viewerinfo specifies how the content-type is viewed. Can be +Where VIEWERINFO specifies how the content-type is viewed. Can be a string, in which case it is run through a shell, with appropriate parameters, or a symbol, in which case the symbol is -funcall'd, with the buffer as an argument. - -testinfo is a list of strings, or nil. If nil, it means the -viewer specified is always valid. If it is a list of strings, -these are used to determine whether a viewer passes the 'test' or -not.") - -(defvar mailcap-download-directory nil - "*Where downloaded files should go by default.") - -(defvar mailcap-temporary-directory - (cond ((fboundp 'temp-directory) (temp-directory)) - ((boundp 'temporary-file-directory) temporary-file-directory) - ("/tmp/")) - "*Where temporary files go.") +`funcall'ed, with the buffer as an argument. + +TESTINFO is a test for the viewer's applicability, or nil. If nil, it +means the viewer is always valid. If it is a Lisp function, it is +called with a list of items from any extra fields from the +Content-Type header as argument to return a boolean value for the +validity. Otherwise, if it is a non-function Lisp symbol or list +whose car is a symbol, it is `eval'led to yield the validity. If it +is a string or list of strings, it represents a shell command to run +to return a true or false shell value for the validity.") + +(defcustom mailcap-download-directory nil + "*Directory to which `mailcap-save-binary-file' downloads files by default. +Nil means your home directory." + :type '(choice (const :tag "Home directory" nil) + directory) + :group 'mailcap) ;;; ;;; Utility functions ;;; -(defun mailcap-generate-unique-filename (&optional fmt) - "Generate a unique filename in mailcap-temporary-directory." - (if (not fmt) - (let ((base (format "mailcap-tmp.%d" (user-real-uid))) - (fname "") - (x 0)) - (setq fname (format "%s%d" base x)) - (while (file-exists-p - (expand-file-name fname mailcap-temporary-directory)) - (setq x (1+ x) - fname (concat base (int-to-string x)))) - (expand-file-name fname mailcap-temporary-directory)) - (let ((base (concat "mm" (int-to-string (user-real-uid)))) - (fname "") - (x 0)) - (setq fname (format fmt (concat base (int-to-string x)))) - (while (file-exists-p - (expand-file-name fname mailcap-temporary-directory)) - (setq x (1+ x) - fname (format fmt (concat base (int-to-string x))))) - (expand-file-name fname mailcap-temporary-directory)))) - (defun mailcap-save-binary-file () (goto-char (point-min)) (unwind-protect @@ -289,7 +296,7 @@ not.") (defvar mailcap-maybe-eval-warning "*** WARNING *** -This MIME part contains untrusted and possibly harmful content. +This MIME part contains untrusted and possibly harmful content. If you evaluate the Emacs Lisp code contained in it, a lot of nasty things can happen. Please examine the code very carefully before you instruct Emacs to evaluate it. You can browse the buffer containing @@ -301,7 +308,7 @@ Make sure that this text consists only of few text lines. Otherwise, Gnus might fail to display all of it.") (defun mailcap-maybe-eval () - "Maybe evaluate a buffer of emacs lisp code." + "Maybe evaluate a buffer of Emacs Lisp code." (let ((lisp-buffer (current-buffer))) (goto-char (point-min)) (when @@ -311,7 +318,7 @@ Gnus might fail to display all of it.") "*Warning*")))) (unwind-protect (with-current-buffer buffer - (insert (substitute-command-keys + (insert (substitute-command-keys mailcap-maybe-eval-warning)) (goto-char (point-min)) (display-buffer buffer) @@ -369,7 +376,7 @@ MAILCAPS if set; otherwise (on Unix) use the path from RFC 1524, plus (setq mailcap-parsed-p t))) (defun mailcap-parse-mailcap (fname) - ;; Parse out the mailcap file specified by FNAME + "Parse out the mailcap file specified by FNAME." (let (major ; The major mime type (image/audio/etc) minor ; The minor mime type (gif, basic, etc) save-pos ; Misc saved positions used in parsing @@ -409,9 +416,9 @@ MAILCAPS if set; otherwise (on Unix) use the path from RFC 1524, plus (skip-chars-forward " \t") ;;; Got the major/minor chunks, now for the viewers/etc ;;; The first item _must_ be a viewer, according to the - ;;; RFC for mailcap files (#1343) + ;;; RFC for mailcap files (#1524) (setq viewer "") - (when (eq (char-after) ?\;) + (when (eq (char-after) ?\;) (forward-char) (skip-chars-forward " \t") (setq save-pos (point)) @@ -432,7 +439,7 @@ MAILCAPS if set; otherwise (on Unix) use the path from RFC 1524, plus (setq viewer (buffer-substring save-pos (point))))) (setq save-pos (point)) (end-of-line) - (unless (equal viewer "") + (unless (equal viewer "") (setq info (nconc (list (cons 'viewer viewer) (cons 'type (concat major "/" (if (string= minor ".*") @@ -443,7 +450,7 @@ MAILCAPS if set; otherwise (on Unix) use the path from RFC 1524, plus (beginning-of-line))))) (defun mailcap-parse-mailcap-extras (st nd) - ;; Grab all the extra stuff from a mailcap entry + "Grab all the extra stuff from a mailcap entry." (let ( name ; From name= value ; its value @@ -488,11 +495,10 @@ MAILCAPS if set; otherwise (on Unix) use the path from RFC 1524, plus results))) (defun mailcap-mailcap-entry-passes-test (info) - ;; Return t iff a mailcap entry passes its test clause or no test - ;; clause is present. - (let (status ; Call-process-regions return value - (test (assq 'test info)) ; The test clause - ) + "Return non-nil iff 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) (setq status (and test (split-string (cdr test) " "))) (if (and (or (assoc "needsterm" info) (assoc "needsterminal" info) @@ -519,7 +525,7 @@ MAILCAPS if set; otherwise (on Unix) use the path from RFC 1524, plus ;;; (defun mailcap-possible-viewers (major minor) - ;; Return a list of possible viewers from MAJOR for minor type MINOR + "Return a list of possible viewers from MAJOR for minor type MINOR." (let ((exact '()) (wildcard '())) (while major @@ -554,18 +560,18 @@ MAILCAPS if set; otherwise (on Unix) use the path from RFC 1524, plus (setq save-pos (point)) (skip-chars-forward "%") (setq save-chr (char-after (point))) + ;; Escapes: + ;; %s: name of a file for the body data + ;; %t: content-type + ;; %{= (string-to-int emacs-version) 21) + ;; I hate warnings --zsh. + (fboundp 'tool-bar-add-item-from-menu) + tool-bar-mode) + (defvar message-tool-bar-map + (let ((tool-bar-map (copy-keymap tool-bar-map))) + ;; Zap some items which aren't so relevant and take up space. + (dolist (key '(print-buffer kill-buffer save-buffer write-file + dired open-file)) + (define-key tool-bar-map (vector key) nil)) + + (tool-bar-add-item-from-menu + 'message-send-and-exit "mail_send" message-mode-map) + (tool-bar-add-item-from-menu + 'message-kill-buffer "close" message-mode-map) + (tool-bar-add-item-from-menu + 'message-dont-send "cancel" message-mode-map) + (tool-bar-add-item-from-menu + 'mml-attach-file "attach" message-mode-map) + (tool-bar-add-item-from-menu + 'ispell-message "spell" message-mode-map) + tool-bar-map)))) ;;; Group name completion. @@ -4460,7 +4506,6 @@ Do a `tab-to-tab-stop' if not in those headers." (message-expand-group) (tab-to-tab-stop))) -(defvar gnus-active-hashtb) (defun message-expand-group () "Expand the group name under point." (let* ((b (save-excursion diff --git a/lisp/messcompat.el b/lisp/messcompat.el index 9ffbd89de..e3021ce4b 100644 --- a/lisp/messcompat.el +++ b/lisp/messcompat.el @@ -1,5 +1,7 @@ ;;; messcompat.el --- making message mode compatible with mail mode -;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000 +;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Keywords: mail, news diff --git a/lisp/mm-bodies.el b/lisp/mm-bodies.el index d4c3677ff..f7440c7f0 100644 --- a/lisp/mm-bodies.el +++ b/lisp/mm-bodies.el @@ -26,13 +26,15 @@ (eval-and-compile (or (fboundp 'base64-decode-region) - (require 'base64)) - (autoload 'binhex-decode-region "binhex")) + (require 'base64))) + +(eval-when-compile + (defvar mm-uu-decode-function) + (defvar mm-uu-binhex-decode-function)) (require 'mm-util) (require 'rfc2047) -(require 'qp) -(require 'uudecode) +(require 'mm-encode) ;; 8bit treatment gets any char except: 0x32 - 0x7f, CR, LF, TAB, BEL, ;; BS, vertical TAB, form feed, and ^_ @@ -97,20 +99,25 @@ If no encoding was done, nil is returned." (when start (save-restriction (narrow-to-region start (point)) - (mm-encode-coding-region start (point) charset) + (mm-encode-coding-region + start (point) (mm-charset-to-coding-system charset)) (goto-char (point-max))) (setq start nil)) (unless start (setq start (point)))) (forward-char 1)) (when start - (mm-encode-coding-region start (point) charset) + (mm-encode-coding-region start (point) + (mm-charset-to-coding-system charset)) (setq start nil)) charset))))))) +(eval-when-compile (defvar message-posting-charset)) + (defun mm-body-encoding (charset &optional encoding) "Do Content-Transfer-Encoding and return the encoding of the current buffer." (let ((bits (mm-body-7-or-8))) + (require 'message) (cond ((and (not mm-use-ultra-safe-encoding) (eq bits '7bit)) bits) @@ -186,8 +193,10 @@ If no encoding was done, nil is returned." ;; Do nothing. ) ((memq encoding '(x-uuencode x-uue)) + (require 'mm-uu) (funcall mm-uu-decode-function (point-min) (point-max))) ((eq encoding 'x-binhex) + (require 'mm-uu) (funcall mm-uu-binhex-decode-function (point-min) (point-max))) ((functionp encoding) (funcall encoding (point-min) (point-max))) @@ -217,21 +226,21 @@ The characters in CHARSET should then be decoded." (when encoding (mm-decode-content-transfer-encoding encoding type)) (when (featurep 'mule) - (let ((mule-charset (mm-charset-to-coding-system charset))) - (if (and (not mule-charset) + (let ((coding-system (mm-charset-to-coding-system charset))) + (if (and (not coding-system) (listp mail-parse-ignored-charsets) (memq 'gnus-unknown mail-parse-ignored-charsets)) - (setq mule-charset + (setq coding-system (mm-charset-to-coding-system mail-parse-charset))) - (when (and charset mule-charset + (when (and charset coding-system ;; buffer-file-coding-system ;;Article buffer is nil coding system ;;in XEmacs (mm-multibyte-p) - (or (not (eq mule-charset 'ascii)) - (setq mule-charset mail-parse-charset)) - (not (eq mule-charset 'gnus-decoded))) - (mm-decode-coding-region (point-min) (point-max) mule-charset)))))) + (or (not (eq coding-system 'ascii)) + (setq coding-system mail-parse-charset)) + (not (eq coding-system 'gnus-decoded))) + (mm-decode-coding-region (point-min) (point-max) coding-system)))))) (defun mm-decode-string (string charset) "Decode STRING with CHARSET." @@ -244,17 +253,17 @@ The characters in CHARSET should then be decoded." (setq charset mail-parse-charset)) (or (when (featurep 'mule) - (let ((mule-charset (mm-charset-to-coding-system charset))) - (if (and (not mule-charset) + (let ((coding-system (mm-charset-to-coding-system charset))) + (if (and (not coding-system) (listp mail-parse-ignored-charsets) (memq 'gnus-unknown mail-parse-ignored-charsets)) - (setq mule-charset + (setq coding-system (mm-charset-to-coding-system mail-parse-charset))) - (when (and charset mule-charset + (when (and charset coding-system (mm-multibyte-p) - (or (not (eq mule-charset 'ascii)) - (setq mule-charset mail-parse-charset))) - (mm-decode-coding-string string mule-charset)))) + (or (not (eq coding-system 'ascii)) + (setq coding-system mail-parse-charset))) + (mm-decode-coding-string string coding-system)))) string)) (provide 'mm-bodies) diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index c7f3bd499..c34e690dc 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -31,11 +31,13 @@ (eval-and-compile (autoload 'mm-inline-partial "mm-partial") - (autoload 'mm-inline-external-body "mm-extern")) + (autoload 'mm-inline-external-body "mm-extern") + (autoload 'mm-inline-external-body "mm-view")) (defgroup mime-display () "Display of MIME in mail and news articles." :link '(custom-manual "(emacs-mime)Customization") + :version "21.1" :group 'mail :group 'news :group 'multimedia) @@ -287,6 +289,15 @@ to: ;; Should we bind other key to minibuffer-complete-word? (define-key mm-viewer-completion-map " " 'self-insert-command) +(defvar mm-viewer-completion-map + (let ((map (make-sparse-keymap 'mm-viewer-completion-map))) + (set-keymap-parent map minibuffer-local-completion-map) + map) + "Keymap for input viewer with completion.") + +;; Should we bind other key to minibuffer-complete-word? +(define-key mm-viewer-completion-map " " 'self-insert-command) + ;;; The functions. (defun mm-alist-to-plist (alist) diff --git a/lisp/mm-encode.el b/lisp/mm-encode.el index a28183ec1..c2dee51ce 100644 --- a/lisp/mm-encode.el +++ b/lisp/mm-encode.el @@ -27,6 +27,8 @@ (eval-when-compile (require 'cl)) (require 'mail-parse) (require 'mailcap) +(eval-and-compile + (autoload 'mm-body-7-or-8 "mm-bodies")) (defvar mm-content-transfer-encoding-defaults '(("text/x-patch" 8bit) diff --git a/lisp/mm-util.el b/lisp/mm-util.el index f739fee50..585f3df48 100644 --- a/lisp/mm-util.el +++ b/lisp/mm-util.el @@ -134,18 +134,22 @@ (or mm-coding-system-list (setq mm-coding-system-list (mm-coding-system-list)))) +(defun mm-coding-system-p (sym) + "Return non-nil if SYM is a coding system." + (or (and (fboundp 'coding-system-p) (coding-system-p sym)) + (memq sym (mm-get-coding-system-list)))) + (defvar mm-charset-synonym-alist - '((big5 . cn-big5) + `((big5 . cn-big5) (gb2312 . cn-gb-2312) (cn-gb . cn-gb-2312) + ;; Windows-1252 is actually a superset of Latin-1. See also + ;; `gnus-article-dumbquotes-map'. + ,(unless (mm-coding-system-p 'windows-1252) ; should be defined eventually + '(windows-1252 . iso-8859-1)) (x-ctext . ctext)) "A mapping from invalid charset names to the real charset names.") -(defun mm-coding-system-p (sym) - "Return non-nil if SYM is a coding system." - (or (and (fboundp 'coding-system-p) (coding-system-p sym)) - (memq sym (mm-get-coding-system-list)))) - (defvar mm-binary-coding-system (cond ((mm-coding-system-p 'binary) 'binary) @@ -179,7 +183,7 @@ ;;; Functions: (defun mm-mule-charset-to-mime-charset (charset) - "Return the MIME charset corresponding to MULE CHARSET." + "Return the MIME charset corresponding to the given Mule CHARSET." (let ((alist mm-mime-mule-charset-alist) out) (while alist @@ -208,7 +212,9 @@ used as the line break code type of the coding system." ;; ascii ((eq charset 'us-ascii) 'ascii) - ;; Check to see whether we can handle this charset. + ;; Check to see whether we can handle this charset. (This depends + ;; on there being some coding system matching each `mime-charset' + ;; coding sysytem property defined, as there should be.) ((memq charset (mm-get-coding-system-list)) charset) ;; Nope. @@ -219,14 +225,17 @@ used as the line break code type of the coding system." (mm-subst-char-in-string from to string)) (defsubst mm-enable-multibyte () - "Enable multibyte in the current buffer." + "Set the multibyte flag of the current buffer. +Only do this if the default value of `enable-multibyte-characters' is +non-nil. This is a no-op in XEmacs." (when (and (fboundp 'set-buffer-multibyte) (boundp 'enable-multibyte-characters) (default-value 'enable-multibyte-characters)) (set-buffer-multibyte t))) (defsubst mm-disable-multibyte () - "Disable multibyte in the current buffer." + "Unset the multibyte flag of in the current buffer. +This is a no-op in XEmacs." (when (fboundp 'set-buffer-multibyte) (set-buffer-multibyte nil))) @@ -335,48 +344,26 @@ If the charset is `composition', return the actual one." (defmacro mm-with-unibyte-buffer (&rest forms) "Create a temporary buffer, and evaluate FORMS there like `progn'. -See also `with-temp-file' and `with-output-to-string'." - (let ((temp-buffer (make-symbol "temp-buffer")) - (multibyte (make-symbol "multibyte"))) - `(if (or (featurep 'xemacs) - (not (boundp 'enable-multibyte-characters))) - (with-temp-buffer ,@forms) - (let ((,multibyte (default-value 'enable-multibyte-characters)) - ,temp-buffer) - (unwind-protect - (progn - (setq-default enable-multibyte-characters nil) - (setq ,temp-buffer - (get-buffer-create (generate-new-buffer-name " *temp*"))) - (unwind-protect - (with-current-buffer ,temp-buffer - (let ((buffer-file-coding-system mm-binary-coding-system) - (coding-system-for-read mm-binary-coding-system) - (coding-system-for-write mm-binary-coding-system)) - ,@forms)) - (and (buffer-name ,temp-buffer) - (kill-buffer ,temp-buffer)))) - (setq-default enable-multibyte-characters ,multibyte)))))) +Use unibyte mode for this." + `(let (default-enable-multibyte-characters) + (with-temp-buffer ,@forms))) (put 'mm-with-unibyte-buffer 'lisp-indent-function 0) (put 'mm-with-unibyte-buffer 'edebug-form-spec '(body)) (defmacro mm-with-unibyte-current-buffer (&rest forms) - "Evaluate FORMS there like `progn' in current buffer." + "Evaluate FORMS with current current buffer temporarily made unibyte. +Also bind `default-enable-multibyte-characters' to nil. +Equivalent to `progn' in XEmacs" (let ((multibyte (make-symbol "multibyte"))) - `(if (or (featurep 'xemacs) - (not (fboundp 'set-buffer-multibyte))) - (progn - ,@forms) - (let ((,multibyte (default-value 'enable-multibyte-characters))) - (unwind-protect - (let ((buffer-file-coding-system mm-binary-coding-system) - (coding-system-for-read mm-binary-coding-system) - (coding-system-for-write mm-binary-coding-system)) - (set-buffer-multibyte nil) - (setq-default enable-multibyte-characters nil) - ,@forms) - (setq-default enable-multibyte-characters ,multibyte) - (set-buffer-multibyte ,multibyte)))))) + `(if (fboundp 'set-buffer-multibyte) + (let ((,multibyte enable-multibyte-characters)) + (unwind-protect + (let (default-enable-multibyte-characters) + (set-buffer-multibyte nil) + ,@forms) + (set-buffer-multibyte ,multibyte))) + (progn + ,@forms)))) (put 'mm-with-unibyte-current-buffer 'lisp-indent-function 0) (put 'mm-with-unibyte-current-buffer 'edebug-form-spec '(body)) @@ -404,22 +391,14 @@ Mule4 only." (put 'mm-with-unibyte-current-buffer-mule4 'edebug-form-spec '(body)) (defmacro mm-with-unibyte (&rest forms) - "Set default `enable-multibyte-characters' to `nil', eval the FORMS." - (let ((multibyte (make-symbol "multibyte"))) - `(if (or (featurep 'xemacs) - (not (boundp 'enable-multibyte-characters))) - (progn ,@forms) - (let ((,multibyte (default-value 'enable-multibyte-characters))) - (unwind-protect - (progn - (setq-default enable-multibyte-characters nil) - ,@forms) - (setq-default enable-multibyte-characters ,multibyte)))))) + "Eval the FORMS with the default value of `enable-multibyte-characters' nil, ." + `(let (default-enable-multibyte-characters) + ,@forms)) (put 'mm-with-unibyte 'lisp-indent-function 0) (put 'mm-with-unibyte 'edebug-form-spec '(body)) (defun mm-find-charset-region (b e) - "Return a list of charsets in the region." + "Return a list of Emacs charsets in the region B to E." (cond ((and (mm-multibyte-p) (fboundp 'find-charset-region)) diff --git a/lisp/mm-uu.el b/lisp/mm-uu.el index 954879fec..a8c7e354b 100644 --- a/lisp/mm-uu.el +++ b/lisp/mm-uu.el @@ -1,4 +1,4 @@ -;;; mm-uu.el -- Return uu stuffs as mm handles +;;; mm-uu.el -- Return uu stuff as mm handles ;; Copyright (c) 1998, 1999, 2000 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu @@ -39,14 +39,19 @@ (autoload 'uudecode-decode-region "uudecode") (autoload 'uudecode-decode-region-external "uudecode")) +;; This is not the right place for this. uudecode.el should decide +;; whether or not to use a program with a single interface, but I +;; guess it's too late now. Also the default should depend on a test +;; for the program. -- fx (defcustom mm-uu-decode-function 'uudecode-decode-region "*Function to uudecode. -Internal function is done in elisp by default, therefore decoding may -appear to be horribly slow . You can make Gnus use the external Unix +Internal function is done in Lisp by default, therefore decoding may +appear to be horribly slow. You can make Gnus use an external decoder, such as uudecode." - :type '(choice (item :tag "internal" uudecode-decode-region) - (item :tag "external" uudecode-decode-region-external)) - :group 'gnus-article-mime) + :type '(choice + (function-item :tag "Internal" uudecode-decode-region) + (function-item :tag "External" uudecode-decode-region-external)) + :group 'gnus-article-mime) (defcustom mm-uu-binhex-decode-function 'binhex-decode-region "*Function to binhex decode. @@ -152,7 +157,8 @@ To disable dissecting shar codes, for instance, add (nth 5 entry)) (defun mm-uu-copy-to-buffer (&optional from to) - "Copy the contents of the current buffer to a fresh buffer." + "Copy the contents of the current buffer to a fresh buffer. +Return that buffer." (save-excursion (let ((obuf (current-buffer))) (set-buffer (generate-new-buffer " *mm-uu*")) diff --git a/lisp/mml.el b/lisp/mml.el index 1a1cbd753..6af6b1d52 100644 --- a/lisp/mml.el +++ b/lisp/mml.el @@ -523,8 +523,9 @@ If MML is non-nil, return the buffer up till the correspondent mml tag." (mail-header-encode-parameter (symbol-name type) value)))))) -(defvar ange-ftp-name-format) -(defvar efs-path-regexp) +(eval-when-compile + (defvar ange-ftp-name-format) + (defvar efs-path-regexp)) (defun mml-parse-file-name (path) (if (if (boundp 'efs-path-regexp) (string-match efs-path-regexp path) diff --git a/lisp/next-ur.pbm b/lisp/next-ur.pbm new file mode 100644 index 0000000000000000000000000000000000000000..678bbb09f8bb27ac63913086163e3b41e264bc5d GIT binary patch literal 81 zcmWGA;W9E&Ff!p1WE5avU}69QK8C*v$E&(A-7Zex;1h_N| j1Y86h8aNzSB-EKV1h_Z|cqj-2C`fQ9xUybhVQ>Hd!Ws;4 literal 0 HcmV?d00001 diff --git a/lisp/next-ur.xpm b/lisp/next-ur.xpm new file mode 100644 index 000000000..8c823f290 --- /dev/null +++ b/lisp/next-ur.xpm @@ -0,0 +1,66 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"24 24 36 1", +" c Gray0", +". c Gray6", +"X c Gray9", +"o c Gray12", +"O c #23f323f323f3", +"+ c Gray15", +"@ c #2ff32ff32ff3", +"# c #399939993999", +"$ c #3fff3fff3fff", +"% c #433243324332", +"& c Gray28", +"* c #4ccc4ccc4ccc", +"= c #53ed53ed53ed", +"- c #5ff05ff05ff0", +"; c Gray40", +": c #67e767e767e7", +"> c #6ccc6ccc6ccc", +", c #6fff6fff6fff", +"< c Gray45", +"1 c #77f277f277f2", +"2 c #7bdb7bdb7bdb", +"3 c #7ccc7ccc7ccc", +"4 c Gray50", +"5 c #866586658665", +"6 c Gray56", +"7 c Gray60", +"8 c #9bd39bd39bd3", +"9 c #9fff9fff9fff", +"0 c Gray65", +"q c #a7c7a7c7a7c7", +"w c Gray70", +"e c Gray75", +"r c Gray81", +"t c #dfffdfffdfff", +"y c #efffefffefff", +"u c Gray100", +/* pixels */ +"wqewqewqewqewqewqewqewqe", +"q6eq6eq6eq6eq6eq6eq6eq6e", +"eeeeeeeeeeeeeeeeeeeeeeee", +"wqewqewqewq82$.wqewqewqe", +"q6eq6eq6e6@19u$-6eq6eq6e", +"eeeeeeee==eyr$9@eeeeeeee", +"wqewq82$ruuu or=qewqewqe", +"q6e6@19uuuu94eue-eq6eq6e", +"eeew&euuuuuruuuy18eeeeee", +"wqew-8uuuuuuuuuu92wqewqe", +"q6eq619uut44uuuuu$q6eq6e", +"eeeeee29,-e@uuuuur=eeeee", +"wqeee82$rye-$uuuuu=qewqe", +"q6eq-19uu- e$uuuuue-eq6e", +"ee==eyuuu -y99uuuuy18eee", +"w&euuuuu,uuue4uuuuu92wqe", +"q@euuuuuuuuut4tuuuueoq6e", +"eq=u9$$$ruuuu4@$$r$;6eee", +"wq=8,988%ruu8,98-+6qewqe", +"q6e+wq888$et+wq888X6eq6e", +"eee+88888.4-+88888@eeeee", +"wqeO#6884,uu*5885<&qewqe", +"q6eq@#** ;; Masanobu UMEDA diff --git a/lisp/nndir.el b/lisp/nndir.el index a46ad7485..f1a6635c6 100644 --- a/lisp/nndir.el +++ b/lisp/nndir.el @@ -1,5 +1,7 @@ ;;; nndir.el --- single directory newsgroup access for Gnus -;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 +;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Keywords: news diff --git a/lisp/nneething.el b/lisp/nneething.el index 04b0229c7..a9c3bb62e 100644 --- a/lisp/nneething.el +++ b/lisp/nneething.el @@ -1,5 +1,7 @@ ;;; nneething.el --- arbitrary file access for Gnus -;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 +;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Masanobu UMEDA diff --git a/lisp/nngateway.el b/lisp/nngateway.el index 74c556c76..65bd2cc81 100644 --- a/lisp/nngateway.el +++ b/lisp/nngateway.el @@ -1,5 +1,7 @@ ;;; nngateway.el --- posting news via mail gateways -;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000 +;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Keywords: news, mail diff --git a/lisp/nnheader.el b/lisp/nnheader.el index 1071e84bc..1ea1f3268 100644 --- a/lisp/nnheader.el +++ b/lisp/nnheader.el @@ -33,6 +33,9 @@ (require 'mail-utils) (require 'mm-util) +(eval-and-compile + (autoload 'gnus-intersection "gnus-range") + (autoload 'gnus-sorted-complement "gnus-range")) (defvar nnheader-max-head-length 4096 "*Max length of the head of articles.") @@ -805,8 +808,9 @@ If FILE, find the \".../etc/PACKAGE\" file instead." (setq path (cdr path)))) result)) -(defvar ange-ftp-path-format) -(defvar efs-path-regexp) +(eval-when-compile + (defvar ange-ftp-path-format) + (defvar efs-path-regexp)) (defun nnheader-re-read-dir (path) "Re-read directory PATH if PATH is on a remote system." (if (and (fboundp 'efs-re-read-dir) (boundp 'efs-path-regexp)) diff --git a/lisp/nnkiboze.el b/lisp/nnkiboze.el index d961f84ad..1ad6f8c9c 100644 --- a/lisp/nnkiboze.el +++ b/lisp/nnkiboze.el @@ -1,5 +1,7 @@ ;;; nnkiboze.el --- select virtual news access for Gnus -;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 +;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Keywords: news diff --git a/lisp/nnlistserv.el b/lisp/nnlistserv.el index 79b08b840..666cd70c7 100644 --- a/lisp/nnlistserv.el +++ b/lisp/nnlistserv.el @@ -1,5 +1,6 @@ ;;; nnlistserv.el --- retrieving articles via web mailing list archives -;; Copyright (C) 1997,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Keywords: news, mail @@ -31,7 +32,10 @@ (eval-when-compile (require 'cl)) (require 'nnoo) -(require 'nnweb) +(eval-when-compile + (ignore-errors + (require 'nnweb)) ; requires W3 + (autoload 'url-insert-file-contents "nnweb")) (nnoo-declare nnlistserv nnweb) diff --git a/lisp/nnmail.el b/lisp/nnmail.el index 002fbf0e7..6ccc1ca89 100644 --- a/lisp/nnmail.el +++ b/lisp/nnmail.el @@ -175,6 +175,7 @@ messages end up in that group. If it is a function, the function is called in a buffer narrowed to the message in question. The function receives one argument, the name of the group the message comes from. The return value should be `delete' or a group name (a string)." + :version "21.1" :group 'nnmail-expire :type '(choice (const delete) (function :format "%v" nnmail-) @@ -201,6 +202,7 @@ This variable is obsolete; `mail-sources' should be used instead." (defcustom nnmail-scan-directory-mail-source-once nil "*If non-nil, scan all incoming procmail sorted mails once. It scans low-level sorted spools even when not required." + :version "21.1" :group 'nnmail-procmail :type 'boolean) @@ -419,11 +421,13 @@ parameter. It should return nil, `warn' or `delete'." (defcustom nnmail-extra-headers nil "*Extra headers to parse." + :version "21.1" :group 'nnmail :type '(repeat symbol)) (defcustom nnmail-split-header-length-limit 512 "Header lines longer than this limit are excluded from the split function." + :version "21.1" :group 'nnmail :type 'integer) diff --git a/lisp/nnmbox.el b/lisp/nnmbox.el index 02e1a27d4..b087561b2 100644 --- a/lisp/nnmbox.el +++ b/lisp/nnmbox.el @@ -1,5 +1,7 @@ ;;; nnmbox.el --- mail mbox access for Gnus -;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 +;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Masanobu UMEDA diff --git a/lisp/nnmh.el b/lisp/nnmh.el index 22555f83c..9fe89c019 100644 --- a/lisp/nnmh.el +++ b/lisp/nnmh.el @@ -1,5 +1,7 @@ ;;; nnmh.el --- mhspool access for Gnus -;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 +;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Masanobu UMEDA diff --git a/lisp/nnml.el b/lisp/nnml.el index 64ca0b2fb..1d078e839 100644 --- a/lisp/nnml.el +++ b/lisp/nnml.el @@ -35,6 +35,8 @@ (require 'nnmail) (require 'nnoo) (eval-when-compile (require 'cl)) +(eval-and-compile + (autoload 'gnus-sorted-intersection "gnus-range")) (nnoo-declare nnml) @@ -749,7 +751,7 @@ all. This may very well take some time.") (unless no-active (nnmail-save-active nnml-group-alist nnml-active-file)))))) -(defvar files) +(eval-when-compile (defvar files)) (defun nnml-generate-active-info (dir) ;; Update the active info for this group. (let ((group (nnheader-file-to-group diff --git a/lisp/nnoo.el b/lisp/nnoo.el index fd07a5f0a..ec24a28d8 100644 --- a/lisp/nnoo.el +++ b/lisp/nnoo.el @@ -1,5 +1,7 @@ ;;; nnoo.el --- OO Gnus Backends -;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1996, 1997, 1998, 1999, 2000 +;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Keywords: news diff --git a/lisp/nnsoup.el b/lisp/nnsoup.el index c6b1925a5..93451d1ad 100644 --- a/lisp/nnsoup.el +++ b/lisp/nnsoup.el @@ -1,5 +1,7 @@ ;;; nnsoup.el --- SOUP access for Gnus -;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc. + +;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 +;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Masanobu UMEDA diff --git a/lisp/nnspool.el b/lisp/nnspool.el index 1ff370108..5815036cf 100644 --- a/lisp/nnspool.el +++ b/lisp/nnspool.el @@ -1,5 +1,7 @@ ;;; nnspool.el --- spool access for GNU Emacs -;; Copyright (C) 1988,89,90,93,94,95,96,97,98 Free Software Foundation, Inc. + +;; Copyright (C) 1988, 1989, 1990, 1993, 1994, 1995, 1996, 1997, 1998, +;; 2000 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA ;; Lars Magne Ingebrigtsen diff --git a/lisp/nntp.el b/lisp/nntp.el index 9b1bde548..523221370 100644 --- a/lisp/nntp.el +++ b/lisp/nntp.el @@ -181,7 +181,7 @@ server there that you can connect to. See also (defvoo nntp-connection-timeout nil "*Number of seconds to wait before an nntp connection times out. If this variable is nil, which is the default, no timers are set. -NOTE: This variable is never seen to work in FSF Emacs 20 and XEmacs 21.") +NOTE: This variable is never seen to work in Emacs 20 and XEmacs 21.") ;;; Internal variables. @@ -1083,7 +1083,7 @@ password contained in '~/.nntp-authinfo'." ;; Delete status line. (goto-char (point-min)) (while (looking-at "[1-5][0-9][0-9] .*\n") - ;; For some unknown reason, there are more than one status lines. + ;; For some unknown reason, there is more than one status line. (delete-region (point) (progn (forward-line 1) (point)))) ;; Remove "." -> ".." encoding. (while (search-forward "\n.." nil t) diff --git a/lisp/nnultimate.el b/lisp/nnultimate.el index a326af672..baaf17cc4 100644 --- a/lisp/nnultimate.el +++ b/lisp/nnultimate.el @@ -1,4 +1,4 @@ -;;; nnultimate.el --- interfacing with the Ultimate Bulletin Board system +;;; nnultimate.el --- interfacing with the Ultimate Bulletin Board system -*- coding: iso-latin-1 -*- ;; Copyright (C) 1999, 2000 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen diff --git a/lisp/nnweb.el b/lisp/nnweb.el index e7aade10b..716bc0fd3 100644 --- a/lisp/nnweb.el +++ b/lisp/nnweb.el @@ -42,11 +42,13 @@ (require 'w3) (require 'url) (require 'w3-forms))) + ;; Report failure to find w3 at load time if appropriate. -(eval '(progn - (require 'w3) - (require 'url) - (require 'w3-forms))) +(unless noninteractive + (eval '(progn + (require 'w3) + (require 'url) + (require 'w3-forms)))) (nnoo-declare nnweb) diff --git a/lisp/parse-time.el b/lisp/parse-time.el index 06e35d336..d00325131 100644 --- a/lisp/parse-time.el +++ b/lisp/parse-time.el @@ -1,8 +1,8 @@ ;;; parse-time.el --- Parsing time strings -;; Copyright (C) 1996,2000 by Free Software Foundation, Inc. +;; Copyright (C) 1996, 2000 by Free Software Foundation, Inc. -;; Author: Erik Naggum +;; Author: Erik Naggum ;; Keywords: util ;; This file is part of GNU Emacs. diff --git a/lisp/pop3.el b/lisp/pop3.el index 622bbca33..aa040d228 100644 --- a/lisp/pop3.el +++ b/lisp/pop3.el @@ -6,7 +6,6 @@ ;; Author: Richard L. Pieri ;; Maintainer: FSF ;; Keywords: mail -;; Version: 1.3s ;; This file is part of GNU Emacs. @@ -38,8 +37,6 @@ (require 'mail-utils) -(defconst pop3-version "1.3s") - (defvar pop3-maildrop (or (user-login-name) (getenv "LOGNAME") (getenv "USER") nil) "*POP3 maildrop.") (defvar pop3-mailhost (or (getenv "MAILHOST") nil) @@ -192,9 +189,31 @@ Return the response string if optional second argument is non-nil." (forward-char))) (set-marker end nil)) +(eval-when-compile (defvar parse-time-months)) + +;; Copied from message-make-date. +(defun pop3-make-date (&optional now) + "Make a valid date header. +If NOW, use that time instead." + (require 'parse-time) + (let* ((now (or now (current-time))) + (zone (nth 8 (decode-time now))) + (sign "+")) + (when (< zone 0) + (setq sign "-") + (setq zone (- zone))) + (concat + (format-time-string "%d" now) + ;; The month name of the %b spec is locale-specific. Pfff. + (format " %s " + (capitalize (car (rassoc (nth 4 (decode-time now)) + parse-time-months)))) + (format-time-string "%Y %H:%M:%S " now) + ;; We do all of this because XEmacs doesn't have the %z spec. + (format "%s%02d%02d" sign (/ zone 3600) (/ (% zone 3600) 60))))) + (defun pop3-munge-message-separator (start end) "Check to see if a message separator exists. If not, generate one." - (if (not (fboundp 'message-make-date)) (autoload 'message-make-date "message")) (save-excursion (save-restriction (narrow-to-region start end) @@ -205,7 +224,7 @@ Return the response string if optional second argument is non-nil." )) (let ((from (mail-strip-quoted-names (mail-fetch-field "From"))) (date (split-string (or (mail-fetch-field "Date") - (message-make-date)) + (pop3-make-date)) " ")) (From_)) ;; sample date formats I have seen @@ -277,19 +296,21 @@ Return the response string if optional second argument is non-nil." ;; TRANSACTION STATE -(defvar pop3-md5-program "md5" - "*Program to encode its input in MD5.") - -(defun pop3-md5 (string) - (with-temp-buffer - (insert string) - (call-process-region (point-min) (point-max) - (or shell-file-name "/bin/sh") - t (current-buffer) nil - "-c" pop3-md5-program) - ;; The meaningful output is the first 32 characters. - ;; Don't return the newline that follows them! - (buffer-substring (point-min) (+ (point-min) 32)))) +(eval-and-compile + (if (fboundp 'md5) + (defalias 'pop3-md5 'md5) + (defvar pop3-md5-program "md5" + "*Program to encode its input in MD5.") + + (defun pop3-md5 (string) + (with-temp-buffer + (insert string) + (call-process-region (point-min) (point-max) + pop3-md5-program + t (current-buffer) nil) + ;; The meaningful output is the first 32 characters. + ;; Don't return the newline that follows them! + (buffer-substring 1 33))))) (defun pop3-stat (process) "Return the number of messages in the maildrop and the maildrop's size." diff --git a/lisp/post.pbm b/lisp/post.pbm new file mode 100644 index 0000000000000000000000000000000000000000..577d6236bfd0412cf6e0ae63c26a949e292638af GIT binary patch literal 81 zcmWGA;W9E&Ff!p1WE5afU}69QK8C(E({?|3<|;w2Fwgb fj0^${4IF_D5)2Lnj*c!I>I@7rAbo)@B0v%Vy;usB literal 0 HcmV?d00001 diff --git a/lisp/post.xpm b/lisp/post.xpm new file mode 100644 index 000000000..008cdc7fc --- /dev/null +++ b/lisp/post.xpm @@ -0,0 +1,53 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"24 24 23 1", +" c Gray0", +". c Gray6", +"X c Gray12", +"o c #2ff22ff22ff2", +"O c #3fff3fff3fff", +"+ c Gray28", +"@ c #53ee53ee53ee", +"# c #5fdf5fdf5fdf", +"$ c #67e767e767e7", +"% c #6fff6fff6fff", +"& c #77f777f777f7", +"* c #7bdb7bdb7bdb", +"= c Gray50", +"- c Gray56", +"; c #9bd69bd69bd6", +": c #9fff9fff9fff", +"> c #a7c7a7c7a7c7", +", c Gray70", +"< c Gray75", +"1 c Gray81", +"2 c #dfffdfffdfff", +"3 c #efffefffefff", +"4 c Gray100", +/* pixels */ +",><,><,><,><,><,><,><,><", +">-<>-<>-<>-<>-<>-<>-<>-<", +"<<<<<<<<<<<<<<<<<<<<<<<<", +",><,><,><,>;*O.,><,><,><", +">-<>-<>-<-o&:4O#-<>-<>-<", +"<<<<<<<<@@<31O:o<<<<<<<<", +",><,>;*O1444 X1@><,><,><", +">-<-o&:4444:=<4<#<>-<>-<", +"<<<,+<4444414443&;<<<<<<", +",><,#;4444444444:*,><,><", +">-<>-o44444444444O>-<>-<", +"<<<<<;%44444444441@<<<<<", +",><,><@24444444444@><,><", +">-<>-<-=4444444444<#<>-<", +"<<<<<<,$14444444443&;<<<", +",><,><,#;4444444444:*,><", +">-<>-<>-o4444444444-<", +"<<<<<<<<;%4444444%O$-<<<", +",><,><,><@24444<&;,><,><", +">-<>-<>-<-=42==#-<>-<>-<", +"<<<<<<<<<,$Oo+-<<<<<<<<<", +",><,><,><,><,><,><,><,><", +">-<>-<>-<>-<>-<>-<>-<>-<", +"<<<<<<<<<<<<<<<<<<<<<<<<" +}; diff --git a/lisp/prev-ur.pbm b/lisp/prev-ur.pbm new file mode 100644 index 0000000000000000000000000000000000000000..49389198bdfe19f91dada91a4525e35083e4c3df GIT binary patch literal 81 zcmWGA;W9E&Ff!p1WE5avU}69QK8C*v%E&(BI7iNeGvT$j$ d2>7x%G|X^d2~c2a2w-Fo03(nZh7cA82LRz}3_<_^ literal 0 HcmV?d00001 diff --git a/lisp/prev-ur.xpm b/lisp/prev-ur.xpm new file mode 100644 index 000000000..7c3db2459 --- /dev/null +++ b/lisp/prev-ur.xpm @@ -0,0 +1,65 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"24 24 35 1", +" c Gray0", +". c Gray6", +"X c Gray9", +"o c Gray12", +"O c #23f323f323f3", +"+ c Gray15", +"@ c #2ff22ff22ff2", +"# c #399939993999", +"$ c #3fff3fff3fff", +"% c Gray28", +"& c #53ed53ed53ed", +"* c Gray35", +"= c #5b1a5b1a5b1a", +"- c Gray36", +"; c #5fef5fef5fef", +": c Gray40", +"> c #67e767e767e7", +", c #6ffa6ffa6ffa", +"< c Gray45", +"1 c #77ea77ea77ea", +"2 c #799979997999", +"3 c #7bdb7bdb7bdb", +"4 c Gray50", +"5 c Gray56", +"6 c Gray60", +"7 c #9bde9bde9bde", +"8 c #9fff9fff9fff", +"9 c #a7c7a7c7a7c7", +"0 c #acccacccaccc", +"q c Gray70", +"w c Gray75", +"e c Gray81", +"r c #dfffdfffdfff", +"t c #efffefffefff", +"y c Gray100", +/* pixels */ +"q9wq9wq9wq9wq9wq9wq9wq9w", +"95w95w95w95w95w95w95w95w", +"wwwwwwwwwwwwwwwwwwwwwwww", +"q9wq9wq9wq973$.q9wq9wq9w", +"95w95w95w5@18y$;5w95w95w", +"wwwwwwww&&wte$8@wwwwwwww", +"q9wq973$eyyy oe&9wq9wq9w", +"95w5@18yyyy84wyw;w95w95w", +"wwwq%wyyyyyeyyyt17wwwwww", +"q9wq;7yyyyyyyyyy45q9wq9w", +"95w9518yyr44yyyy4%%@995w", +"wwwww&.3;;w@yyye=<<#Owww", +"q9wq=;:$etw;$rt+w0777O9w", +"95w5+<8yy; wo44+77777X5w", +"ww&&wtyyy ;t@re+77777@ww", +"q%wyyyyy,yyyw4ye=<<#Oq9w", +"9@wyyyyyyyyyr4rywo;;995w", +"w9&yyyyyyyyyy4we$3wwwwww", +"q9&eyyyyyyyyyy,@wwq9wq9w", +"95w$yyyyyyyyyyy@ww95w95w", +"www38yyyyyyyyyy71wwwwwww", +"q9w54yyyyyyyyyye:qq9wq9w", +"95w9,ryyyyyyyyyy4595w95w", +"wwww9&yyyyyyyyyyr&wwwwww" +}; diff --git a/lisp/qp.el b/lisp/qp.el index 4dccdcf9a..8c0e2180c 100644 --- a/lisp/qp.el +++ b/lisp/qp.el @@ -1,7 +1,10 @@ ;;; qp.el --- Quoted-Printable functions + ;; Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen +;; Keywords: mail, extensions + ;; This file is part of GNU Emacs. ;; GNU Emacs is free software; you can redistribute it and/or modify @@ -21,91 +24,96 @@ ;;; Commentary: +;; Functions for encoding and decoding quoted-printable text as +;; defined in RFC 2045. + ;;; Code: (require 'mm-util) +(eval-when-compile (defvar mm-use-ultra-safe-encoding)) -(defvar quoted-printable-encoding-characters - (mapcar 'identity "0123456789ABCDEFabcdef")) - -(defun quoted-printable-decode-region (from to &optional charset) - "Decode quoted-printable in the region between FROM and TO. -If CHARSET is non-nil, decode the region with charset." +(defun quoted-printable-decode-region (from to &optional coding-system) + "Decode quoted-printable in the region between FROM and TO, per RFC 2045. +If CODING-SYSTEM is non-nil, decode bytes into characters with that +coding-system." (interactive "r") + (unless (mm-coding-system-p coding-system) ; e.g. `ascii' from Gnus + (setq coding-system nil)) (save-excursion (save-restriction - (let (start) + ;; RFC 2045: ``An "=" followed by two hexadecimal digits, one + ;; or both of which are lowercase letters in "abcdef", is + ;; formally illegal. A robust implementation might choose to + ;; recognize them as the corresponding uppercase letters.'' + (let ((case-fold-search t)) (narrow-to-region from to) - (goto-char from) - (while (not (eobp)) - (cond - ((eq (char-after) ?=) - (delete-char 1) - (unless start - (setq start (point))) - (cond - ;; End of the line. - ((eq (char-after) ?\n) - (delete-char 1)) - ;; Encoded character. - ((and - (memq (char-after) quoted-printable-encoding-characters) - (memq (char-after (1+ (point))) - quoted-printable-encoding-characters)) - (insert - (string-to-number - (buffer-substring (point) (+ 2 (point))) - 16)) - (delete-char 2)) - ;; Quoted equal sign. - ((eq (char-after) ?=) - (forward-char 1)) - ;; End of buffer. - ((eobp)) - ;; Invalid. - (t - (message "Malformed MIME quoted-printable message")))) - ((and charset start (not (eq (mm-charset-after) 'ascii))) - (mm-decode-coding-region start (point) charset) - (setq start nil) - (forward-char 1)) - (t - (forward-char 1)))) - (if (and charset start) - (mm-decode-coding-region start (point) charset)))))) - -(defun quoted-printable-decode-string (string &optional charset) - "Decode the quoted-printable-encoded STRING and return the results. -If CHARSET is non-nil, decode the region with charset." + ;; Do this in case we're called from Gnus, say, in a buffer + ;; which already contains non-ASCII characters which would + ;; then get doubly-decoded below. + (if coding-system + (mm-encode-coding-region (point-min) (point-max) coding-system)) + (goto-char (point-min)) + (while (and (skip-chars-forward "^=" to) + (not (eobp))) + (cond ((eq (char-after (1+ (point))) ?\n) + (delete-char 2)) + ((looking-at "=[0-9A-F][0-9A-F]") + (let ((byte (string-to-int (buffer-substring (1+ (point)) + (+ 3 (point))) + 16))) + (insert byte) + (delete-char 3) + (unless (eq byte ?=) + (backward-char)))) + (t + (error "Malformed quoted-printable text") + (forward-char))))) + (if coding-system + (mm-decode-coding-region (point-min) (point-max) coding-system))))) + +(defun quoted-printable-decode-string (string &optional coding-system) + "Decode the quoted-printable encoded STRING and return the result. +If CODING-SYSTEM is non-nil, decode the region with coding-system." (with-temp-buffer (insert string) - (quoted-printable-decode-region (point-min) (point-max) charset) + (quoted-printable-decode-region (point-min) (point-max) coding-system) (buffer-string))) (defun quoted-printable-encode-region (from to &optional fold class) - "QP-encode the region between FROM and TO. + "Quoted-printable encode the region between FROM and TO per RFC 2045. -If FOLD fold long lines. If CLASS, translate the characters -matched by that regexp. +If FOLD, fold long lines at 76 characters (as required by the RFC). +If CLASS is non-nil, translate the characters matched by that class in +the form expected by `skip-chars-forward'. -If `mm-use-ultra-safe-encoding' is set, fold unconditionally and +If `mm-use-ultra-safe-encoding' is set, fold lines unconditionally and encode lines starting with \"From\"." (interactive "r") + (unless class + ;; Avoid using 8bit characters. = is \075. + ;; Equivalent to "^\000-\007\013\015-\037\200-\377=" + (setq class "\010-\012\014\040-\074\076-\177")) + (if (fboundp 'string-as-multibyte) + (setq class (string-as-multibyte class))) (save-excursion (save-restriction (narrow-to-region from to) (mm-with-unibyte-current-buffer-mule4 - ;; (mm-encode-body) + ;; Fixme: what should this do in XEmacs/Mule? + (if (fboundp 'find-charset-region) ; else XEmacs, non-Mule + (if (delq 'unknown ; Emacs 20 unibyte + (delq 'eight-bit-graphic ; Emacs 21 + (delq 'eight-bit-control + (delq 'ascii + (find-charset-region from to))))) + (error "Multibyte character in QP encoding region"))) ;; Encode all the non-ascii and control characters. (goto-char (point-min)) - (while (and (skip-chars-forward - ;; Avoid using 8bit characters. = is \075. - ;; Equivalent to "^\000-\007\013\015-\037\200-\377=" - (or class "\010-\012\014\040-\074\076-\177")) + (while (and (skip-chars-forward class) (not (eobp))) (insert (prog1 - (upcase (format "=%02x" (char-after))) + (format "=%02x" (upcase (char-after))) (delete-char 1)))) ;; Encode white space at the end of lines. (goto-char (point-min)) @@ -114,38 +122,41 @@ encode lines starting with \"From\"." (while (not (eolp)) (insert (prog1 - (upcase (format "=%02x" (char-after))) + (format "=%02x" (upcase (char-after))) (delete-char 1))))) - (when (or fold mm-use-ultra-safe-encoding) - ;; Fold long lines. - (let ((tab-width 1));; HTAB is one character. - (goto-char (point-min)) - (while (not (eobp)) - ;; In ultra-safe mode, encode "From " at the beginning of a - ;; line. - (when mm-use-ultra-safe-encoding - (beginning-of-line) - (if (looking-at "From ") - (replace-match "From=20" nil t) - (if (looking-at "-") - (replace-match "=2D" nil t)))) - (end-of-line) - (while (> (current-column) 76);; tab-width must be 1. + (let ((mm-use-ultra-safe-encoding + (and (boundp 'mm-use-ultra-safe-encoding) + mm-use-ultra-safe-encoding))) + (when (or fold mm-use-ultra-safe-encoding) + ;; Fold long lines. + (let ((tab-width 1)) ; HTAB is one character. + (goto-char (point-min)) + (while (not (eobp)) + ;; In ultra-safe mode, encode "From " at the beginning + ;; of a line. + (when mm-use-ultra-safe-encoding + (beginning-of-line) + (if (looking-at "From ") + (replace-match "From=20" nil t) + (if (looking-at "-") + (replace-match "=2D" nil t)))) + (end-of-line) + (while (> (current-column) 76) ; tab-width must be 1. (beginning-of-line) - (forward-char 75);; 75 chars plus an "=" + (forward-char 75) ; 75 chars plus an "=" (search-backward "=" (- (point) 2) t) (insert "=\n") (end-of-line)) (unless (eobp) - (forward-line))))))))) - + (forward-line)))))))))) + (defun quoted-printable-encode-string (string) - "QP-encode STRING and return the results." - (mm-with-unibyte-buffer + "Encode the STRING as quoted-printable and return the result." + (with-temp-buffer (insert string) (quoted-printable-encode-region (point-min) (point-max)) (buffer-string))) (provide 'qp) -;; qp.el ends here +;;; qp.el ends here diff --git a/lisp/reply-wo.pbm b/lisp/reply-wo.pbm new file mode 100644 index 0000000000000000000000000000000000000000..def54da8ede20b0f152e8ff1fd0b7b9b40450b53 GIT binary patch literal 81 zcmWGA;W9E&Ff!p{fCD}T22lnEg$70k2c`}MQT75O3lG--7dypSuFft@$C?~`Sr~Gd c90gez8JJucTsRn%3K&Eb7}!EXLx5%g0Na@iO8@`> literal 0 HcmV?d00001 diff --git a/lisp/reply-wo.xpm b/lisp/reply-wo.xpm new file mode 100644 index 000000000..fb45d4c13 --- /dev/null +++ b/lisp/reply-wo.xpm @@ -0,0 +1,65 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"24 24 35 1", +" c Gray0", +". c Gray6", +"X c Gray9", +"o c Gray12", +"O c #23f323f323f3", +"+ c #2ffe2ffe2ffe", +"@ c #399939993999", +"# c #3fff3fff3fff", +"$ c Gray25", +"% c #499949994999", +"& c #4ccc4ccc4ccc", +"* c #519151915191", +"= c #53f353f353f3", +"- c Gray35", +"; c #5feb5feb5feb", +": c #67e767e767e7", +"> c #6fff6fff6fff", +", c Gray45", +"< c #77ef77ef77ef", +"1 c #7bdb7bdb7bdb", +"2 c Gray50", +"3 c Gray56", +"4 c Gray60", +"5 c #9bd39bd39bd3", +"6 c #9fff9fff9fff", +"7 c Gray64", +"8 c #a7c7a7c7a7c7", +"9 c Gray70", +"0 c #b998b998b998", +"q c #bcccbcccbccc", +"w c Gray75", +"e c Gray81", +"r c #dfffdfffdfff", +"t c #efffefffefff", +"y c Gray100", +/* pixels */ +"wwwwwwwwwwwwwwwwwwwwwwww", +"wwwwwwwwwwwwwwwwwwwwwwww", +"wwwwwwwwwwwwwwwwwwwwwwww", +"wwwwwwwwwww5+o1wwwwwwwww", +"wwwwwwwwww3O8wwww", +"wwwww<:226yy#yyyw2 ;wwww", +"www5+5e66yyy#6##2w X5www", +"w8=>ye#6yy2+#6yyr+9y>$8w", +"w;;yw2yw22#wyyyr#@9yy@;w", +"w;3#o+#2w3;tyyy+@3w##3;w", +"w;wyy>wry66yyr+%0;>yyw;w", +"w;wyyy222#yyr#;-2ryyyw;w", +"7=wyyyyrw.6y+ +wryyyyw=7", +"5&wyyyyye#o3.#6yyyyyyw&5", +"5&wyyyyw2yw26y66yyyyyw&5", +"5&wyyye2tyyyyyy66yyyyw&5", +"5&wyr;>yyyyyyyyy6#eyyw&5", +"5&wr2ryyyyyyyyyyyy2wyw&5", +"5&+;ryyyyyyyyyyyyyt2#+&5", +"5& wwwwwwwwwwwwwwwwww &5", +"5,&&&&&&&&&&&&&&&&&&&&,5", +"555555555555555555555555" +}; diff --git a/lisp/reply.pbm b/lisp/reply.pbm new file mode 100644 index 0000000000000000000000000000000000000000..ee181e663be77954bc10f855f980a40f8ebd3749 GIT binary patch literal 81 zcmWGA;W9E&Ff!p{KnAP~3dOJ Z7#Wyc7+g3QlnNL`6cp4#LqmXO006{n3 c Gray45", +", c #77ef77ef77ef", +"< c Gray50", +"1 c Gray56", +"2 c #933293329332", +"3 c Gray60", +"4 c #9bd29bd29bd2", +"5 c #9fff9fff9fff", +"6 c Gray64", +"7 c #a7c7a7c7a7c7", +"8 c Gray70", +"9 c #b998b998b998", +"0 c #bcccbcccbccc", +"q c Gray75", +"w c Gray81", +"e c #dfffdfffdfff", +"r c #efffefffefff", +"t c Gray100", +/* pixels */ +"qqqqqqqqqqqqqqqqqqqqqqqq", +"qqqqqqqqqqqqqqqqqqqqqqqq", +"qqqqqqqqqqqqqqqqqqqqqqqq", +"qqqqqqqqqqqqqq4qqqqqqqqq", +"qqqqqqqqqqqqq1,-1qqqqqqq", +"qqqqqqqqq4OO4,rq,4qqqqqq", +"qqqqqq81*:tw:tttt:*7qqqq", +"qqqqq,;%%%%%%%%%%%%%%%%%%%%>4", +"444444444444444444444444" +}; diff --git a/lisp/rfc2045.el b/lisp/rfc2045.el index 1a5950d9d..70c8c391e 100644 --- a/lisp/rfc2045.el +++ b/lisp/rfc2045.el @@ -1,5 +1,6 @@ ;;; rfc2045.el --- Functions for decoding rfc2045 headers -;; Copyright (C) 1998,99 Free Software Foundation, Inc. + +;; Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; This file is part of GNU Emacs. @@ -18,6 +19,9 @@ ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. + +;; RFC 2045 is: "Multipurpose Internet Mail Extensions (MIME) Part +;; One: Format of Internet Message Bodies". ;;; Commentary: diff --git a/lisp/rfc2047.el b/lisp/rfc2047.el index 529e21118..79bdba561 100644 --- a/lisp/rfc2047.el +++ b/lisp/rfc2047.el @@ -22,18 +22,21 @@ ;;; Commentary: +;; RFC 2047 is "MIME (Multipurpose Internet Mail Extensions) Part +;; Three: Message Header Extensions for Non-ASCII Text". + ;;; Code: (eval-when-compile (require 'cl)) -(eval-and-compile - (eval - '(unless (fboundp 'base64-decode-string) - (require 'base64)))) (require 'qp) (require 'mm-util) (require 'ietf-drums) (require 'mail-prsvr) +(require 'base64) +;; Fixme: Avoid this (for gnus-point-at-...) mm dependence on gnus. +(require 'gnus-util) +(autoload 'mm-body-7-or-8 "mm-bodies") (defvar rfc2047-header-encoding-alist '(("Newsgroups" . nil) @@ -43,7 +46,7 @@ (t . mime)) "*Header/encoding method alist. The list is traversed sequentially. The keys can either be -header regexps or `t'. +header regexps or t. The values can be: @@ -128,8 +131,8 @@ Should be called narrowed to the head of the message." (car message-posting-charset))) ;; 8 bit must be decoded. ;; Is message-posting-charset a coding system? - (mm-encode-coding-region - (point-min) (point-max) + (mm-encode-coding-region + (point-min) (point-max) (car message-posting-charset))) ;; We found something that may perhaps be encoded. (setq method nil @@ -147,8 +150,10 @@ Should be called narrowed to the head of the message." (rfc2047-encode-region (point-min) (point-max))) ((eq method 'default) (if (and (featurep 'mule) + (if (boundp 'default-enable-multibyte-characters) + default-enable-multibyte-characters) mail-parse-charset) - (mm-encode-coding-region (point-min) (point-max) + (mm-encode-coding-region (point-min) (point-max) mail-parse-charset))) ((null method) (and (delq 'ascii @@ -163,14 +168,17 @@ Should be called narrowed to the head of the message." (rfc2047-encode-region (point-min) (point-max)) (error "Cannot send unencoded text.")))) ((mm-coding-system-p method) - (if (featurep 'mule) + (if (and (featurep 'mule) + (if (boundp 'default-enable-multibyte-characters) + default-enable-multibyte-characters)) (mm-encode-coding-region (point-min) (point-max) method))) ;; Hm. (t))) (goto-char (point-max))))))) -(defun rfc2047-encodable-p (&optional header) - "Say whether the current (narrowed) buffer contains characters that need encoding in headers." +(defun rfc2047-encodable-p () + "Return non-nil if any characters in current buffer need encoding in headers. +The buffer may be narrowed." (let ((charsets (mapcar 'mm-mime-charset @@ -198,7 +206,7 @@ Should be called narrowed to the head of the message." (setq point (point)) (skip-chars-backward word-chars b) (unless (eq b (point)) - (push (cons (buffer-substring b (point)) nil) words)) + (push (cons (buffer-substring b (point)) nil) words)) (setq b (point)) (goto-char point) (setq current (mm-charset-after)) @@ -209,7 +217,7 @@ Should be called narrowed to the head of the message." (forward-char 1) (skip-chars-forward word-chars)) (unless (eq b (point)) - (push (cons (buffer-substring b (point)) current) words)) + (push (cons (buffer-substring b (point)) current) words)) (setq b (point)) (skip-chars-forward "\000-\177")) (unless (eq b (point)) @@ -217,14 +225,14 @@ Should be called narrowed to the head of the message." ;; merge adjacent words (setq word (pop words)) (while word - (if (and (cdr word) + (if (and (cdr word) (caar words) (not (cdar words)) (not (string-match "[^ \t]" (caar words)))) (if (eq (cdr (nth 1 words)) (cdr word)) (progn - (setq word (cons (concat - (car (nth 1 words)) (caar words) + (setq word (cons (concat + (car (nth 1 words)) (caar words) (car word)) (cdr word))) (pop words) @@ -238,7 +246,7 @@ Should be called narrowed to the head of the message." result)) (defun rfc2047-encode-region (b e &optional word-chars) - "Encode all encodable words in REGION." + "Encode all encodable words in region." (let ((words (rfc2047-dissect-region b e word-chars)) word) (save-restriction (narrow-to-region b e) @@ -253,8 +261,8 @@ Should be called narrowed to the head of the message." (gnus-point-at-bol))) 76) (insert "\n ")) ;; Insert blank between encoded words - (if (eq (char-before) ?=) (insert " ")) - (rfc2047-encode (point) + (if (eq (char-before) ?=) (insert " ")) + (rfc2047-encode (point) (progn (insert (car word)) (point)) (cdr word)))) (rfc2047-fold-region (point-min) (point-max))))) @@ -267,7 +275,7 @@ Should be called narrowed to the head of the message." (buffer-string))) (defun rfc2047-encode (b e charset) - "Encode the word in the region with CHARSET." + "Encode the word in the region B to E with CHARSET." (let* ((mime-charset (mm-mime-charset charset)) (encoding (or (cdr (assq mime-charset rfc2047-charset-encoding-alist)) @@ -301,7 +309,7 @@ Should be called narrowed to the head of the message." (forward-line 1))))) (defun rfc2047-fold-region (b e) - "Fold the long lines in the region." + "Fold long lines in the region." (save-restriction (narrow-to-region b e) (goto-char (point-min)) @@ -354,7 +362,7 @@ Should be called narrowed to the head of the message." (forward-char 1))))) (defun rfc2047-unfold-region (b e) - "Fold the long lines in the region." + "Unfold lines in the region." (save-restriction (narrow-to-region b e) (goto-char (point-min)) @@ -370,7 +378,7 @@ Should be called narrowed to the head of the message." (if (< (- (gnus-point-at-eol) bol leading) 76) (progn (goto-char eol) - (delete-region eol (progn + (delete-region eol (progn (skip-chars-forward "[ \t\n\r]+") (1- (point))))) (setq bol (gnus-point-at-bol))) @@ -378,7 +386,7 @@ Should be called narrowed to the head of the message." (forward-line 1))))) (defun rfc2047-b-encode-region (b e) - "Encode the header contained in REGION with the B encoding." + "Base64-encode the header contained in region B to E." (save-restriction (narrow-to-region (goto-char b) e) (while (not (eobp)) @@ -388,7 +396,7 @@ Should be called narrowed to the head of the message." (forward-line)))) (defun rfc2047-q-encode-region (b e) - "Encode the header contained in REGION with the Q encoding." + "Quoted-printable-encode the header in region B to E." (save-excursion (save-restriction (narrow-to-region (goto-char b) e) @@ -495,18 +503,18 @@ Return WORD if not." (3 (concat string "=")))) (defun rfc2047-decode (charset encoding string) - "Decode STRING that uses CHARSET with ENCODING. + "Decode STRING from the given MIME CHARSET in the given ENCODING. Valid ENCODINGs are \"B\" and \"Q\". -If your Emacs implementation can't decode CHARSET, it returns nil." +If your Emacs implementation can't decode CHARSET, return nil." (if (stringp charset) (setq charset (intern (downcase charset)))) - (if (or (not charset) + (if (or (not charset) (eq 'gnus-all mail-parse-ignored-charsets) (memq 'gnus-all mail-parse-ignored-charsets) (memq charset mail-parse-ignored-charsets)) (setq charset mail-parse-charset)) (let ((cs (mm-charset-to-coding-system charset))) - (if (and (not cs) charset + (if (and (not cs) charset (listp mail-parse-ignored-charsets) (memq 'gnus-unknown mail-parse-ignored-charsets)) (setq cs (mm-charset-to-coding-system mail-parse-charset))) diff --git a/lisp/rfc2231.el b/lisp/rfc2231.el index 7c4983d14..dd391b122 100644 --- a/lisp/rfc2231.el +++ b/lisp/rfc2231.el @@ -1,5 +1,6 @@ ;;; rfc2231.el --- Functions for decoding rfc2231 headers -;; Copyright (C) 1998,99 Free Software Foundation, Inc. + +;; Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; This file is part of GNU Emacs. diff --git a/lisp/rot13.pbm b/lisp/rot13.pbm new file mode 100644 index 0000000000000000000000000000000000000000..104246cdb8f8a010032025a5292b94a873e899f6 GIT binary patch literal 81 zcmWGA;W9E&Ff!p{fC2vh4XlC=T&otah6Zr0Vqg&z;1FbB6&2uG)xdgOfNKE*i--Wn b0S4Ak0Z#h{)}sO(O$;my0_^`EKnwr?LSqiS literal 0 HcmV?d00001 diff --git a/lisp/rot13.xpm b/lisp/rot13.xpm new file mode 100644 index 000000000..ad20c8ad6 --- /dev/null +++ b/lisp/rot13.xpm @@ -0,0 +1,50 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"24 24 20 1", +" c Gray0", +". c Gray6", +"X c Gray12", +"o c #2ff52ff52ff5", +"O c #3fff3fff3fff", +"+ c Gray28", +"@ c #53e353e353e3", +"# c #5fe45fe45fe4", +"$ c #67e767e767e7", +"% c #6fff6fff6fff", +"& c #77d777d777d7", +"* c Gray50", +"= c Gray56", +"- c #9fff9fff9fff", +"; c Gray70", +": c Gray75", +"> c Gray81", +", c #dfffdfffdfff", +"< c #efffefffefff", +"1 c Gray100", +/* pixels */ +"::::::::::::::::::::::::", +"::::::::::::::::::::::::", +"::::::::::::::::::::::::", +"::::#oOOOOOOOOOo+;::::::", +"::::#:,*,,**11-#O$::::::", +"::::#:#:#:#:%--=*>@:::::", +"::::#:o:o:*%>*:>OOo#::::", +"::::#:X*X:O*-:**:1:#::::", +"::::#:>1><::11>:,1:#::::", +"::::#:>-111%111%11:#::::", +"::::#:*:-1:*1:*-11:#::::", +"::::#: *O>*:%*=--1:#::::", +"::::#:O* :*1O*o%11:#::::", +"::::#:O:X,**-*:111:#::::", +"::::#:>1>1,:1,<111:#::::", +"::::#:1,oo,1111111:#::::", +"::::#:,O##O*****:1:#::::", +"::::#:: :: *1:#::::", +"::::#:1-..-1:*O:*1:#::::", +"::::#:11--11,:O,:1:#::::", +"::::#:11111111>111:#::::", +"::::&oooooooooooooo&::::", +"::::::::::::::::::::::::", +"::::::::::::::::::::::::" +}; diff --git a/lisp/save-aif.pbm b/lisp/save-aif.pbm new file mode 100644 index 0000000000000000000000000000000000000000..15829c289e79e517beacd54520e343298cd260ff GIT binary patch literal 81 zcmWGA;W9E&Ff!p{00YL*00ssPMg|rJ1{*NR0wjSbG=_zPizR>oL52pfFfg&W28Qsz QS`mMMLH`wl{2h=H07hpDvj6}9 literal 0 HcmV?d00001 diff --git a/lisp/save-aif.xpm b/lisp/save-aif.xpm new file mode 100644 index 000000000..c8bceb6cb --- /dev/null +++ b/lisp/save-aif.xpm @@ -0,0 +1,55 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"24 24 25 1", +" c Gray6", +". c #133313331333", +"X c #199919991999", +"o c Gray15", +"O c #2fef2fef2fef", +"+ c Gray20", +"@ c #398739873987", +"# c #3fff3fff3fff", +"$ c Gray28", +"% c #4ccc4ccc4ccc", +"& c #5fdf5fdf5fdf", +"* c #626262626262", +"= c Gray40", +"- c #72f272f272f2", +"; c Gray45", +": c #77d777d777d7", +"> c #7bdb7bdb7bdb", +", c #7ccc7ccc7ccc", +"< c Gray56", +"1 c Gray60", +"2 c #9fff9fff9fff", +"3 c #a7c7a7c7a7c7", +"4 c Gray75", +"5 c Gray90", +"6 c Gray100", +/* pixels */ +"444444444444444444444444", +"444444444444444444444444", +"4444444:OOOOOOOOOOO:4444", +"4444444&4666666666#2>444", +"4444444&4666666666#62:44", +"4444444&4666666666 ##O44", +"4444444&4666666666666O44", +"4444444&4666666666666O44", +"4444444&4666666666666O44", +"43<<<<<$<444444666666O44", +"4&@@@-------.%.666666O44", +"4&---5555555o1o666666O44", +"4&---5555555o1o666666O44", +"4&---5555555o1o666666O44", +"4&---5555555o1o666666O44", +"4&---5555555o1o666666O44", +"4&--@-------o1o666666O44", +"4&-<--------,1o666666O44", +"4&-<--------,1o444444O44", +"4&--X++++o@-o1o&&&&&&:44", +"4&--+====%-5o1o444444444", +"4:*-+====%-5o1o444444444", +"44:@X++++o@-.%.444444444", +"444<<<<<<<<<<<<444444444" +}; diff --git a/lisp/save-art.pbm b/lisp/save-art.pbm new file mode 100644 index 0000000000000000000000000000000000000000..68fe0cb309873313e4960a10b3acd43a730879ea GIT binary patch literal 81 zcmWGA;W9E&Ff!p{00Y+0P&NiORtG^A11A c #72f272f272f2", +", c Gray45", +"< c #77d777d777d7", +"1 c #7ccc7ccc7ccc", +"2 c Gray50", +"3 c Gray56", +"4 c Gray60", +"5 c #9bcb9bcb9bcb", +"6 c #9fff9fff9fff", +"7 c #a7c7a7c7a7c7", +"8 c Gray75", +"9 c Gray81", +"0 c #dfffdfffdfff", +"q c Gray90", +"w c #efffefffefff", +"e c Gray100", +/* pixels */ +"888888888888888888888888", +"888888888888888888888888", +"88888*@@@@@@@@@@@@@@@@@4", +"88888@%28eeeeeeeeee08%o3", +"88888@e8228eeeeeee222e23", +"88888@eee82%eeee6%80ee23", +"88888@eeew8=%28%28eeee23", +"88888@eee220e82e826eee23", +"88888@ee:9eeeeeeee6%9e23", +"87333O3 3888888eeeee:==3", +"8=$$$>>>>>>>.&.eeeeee0%3", +"8=>>>qqqqqqq+4+%%%%%%%o3", +"8=>>>qqqqqqq+4+888888888", +"8=>>>qqqqqqq+4+888888888", +"8=>>>qqqqqqq+4+888888888", +"8=>>>qqqqqqq+4+888888888", +"8=>>$>>>>>>>+4+888888888", +"8=>3>>>>>>>>24+888888888", +"8=>3>>>>>>>>24+888888888", +"8=>>X####+$>+4+888888888", +"8=>>#;;;;&>q+4+888888888", +"8<->#;;;;&>q+4+888888888", +"88<$X####+$>.&.888888888", +"888333333333333888888888" +}; diff --git a/lisp/subscribe.pbm b/lisp/subscribe.pbm new file mode 100644 index 0000000000000000000000000000000000000000..fe6b3920d36d01ddc4967f741443ed1930a5181a GIT binary patch literal 81 zcmWGA;W9E&Ff!o^6%AEjVsaI6)c=1vR4|ZJU_q?lSG^4!q5*=M6Qq3wL^%W);tK>d j1PojS1T`jbg$4+62?)f1#5qI+1oi*Fb`1$-U|;|M?wb*{ literal 0 HcmV?d00001 diff --git a/lisp/subscribe.xpm b/lisp/subscribe.xpm new file mode 100644 index 000000000..62db2dad5 --- /dev/null +++ b/lisp/subscribe.xpm @@ -0,0 +1,49 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"24 24 19 1", +" c Gray6", +". c Gray12", +"X c #2ff42ff42ff4", +"o c #3fff3fff3fff", +"O c Gray28", +"+ c #53e353e353e3", +"@ c #5fe25fe25fe2", +"# c #67e767e767e7", +"$ c #6fff6fff6fff", +"% c #77d777d777d7", +"& c Gray50", +"* c Gray56", +"= c #9fff9fff9fff", +"- c Gray70", +"; c Gray75", +": c Gray81", +"> c #dfffdfffdfff", +", c #efffefffefff", +"< c Gray100", +/* pixels */ +";;;;;;;;;;;;;;;;;;;;;;;;", +";;;;;;;;;;;;;;;;;;;;;;;;", +";;;;;;;;;;;;;;;;;;;;;;;;", +";;;;@Xooooo oooXO-;;;;;;", +";;;;@;>;=<&&<:<;=< c #efffefffefff", +", c Gray100", +/* pixels */ +"------------------------", +"------------------------", +"------------------------", +"----@Xooooo oooXO=------", +"----@-,,,:-o,,,-o#------", +"----@-,,,@:o,,,-%;+-----", +"----@-;%@,,o,,,;ooX@----", +"----@@%o@%%.,,,,,,-@----", +"----@&-----X,,,,,,-@----", +"----@-,,,**o,,,,,,-@----", +"----@-:-**,o,,,,,,-@----", +"----@->%*,,o,,,,,,-@----", +"----@Xooooo ,,,,,,-@----", +"----@-,,,:-o,,,,,,-@----", +"----@-,,,@:o,,,,,,-@----", +"----@-;%@,,o,,,,,,-@----", +"----@@%o@%%.,,,,,,-@----", +"----@&-----X,,,,,,-@----", +"----@-,,,,,o,,,,,,-@----", +"----@-,,,,,o,,,,,,-@----", +"----@-,,,,,o,,,,,,-@----", +"----$XXXXXXXXXXXXXX$----", +"------------------------", +"------------------------" +}; diff --git a/lisp/utf7.el b/lisp/utf7.el index 7d6af4257..2a5e75270 100644 --- a/lisp/utf7.el +++ b/lisp/utf7.el @@ -44,6 +44,7 @@ ;;; Code: (require 'base64) +(eval-when-compile (require 'cl)) (defvar utf7-direct-encoding-chars " -%'-*,-[]-}" "Character ranges which do not need escaping in UTF-7.") diff --git a/lisp/uu-decode.pbm b/lisp/uu-decode.pbm new file mode 100644 index 0000000000000000000000000000000000000000..2b7fada14736baa464fd5f67ca6242a459005101 GIT binary patch literal 81 zcmWGA;W9E&Ff!p{Kmx3x0c=VJETIA{|0b|91h6t}U=0aijcZ^P2w=6?z$y~J!T=Kw R4PbfSz``KF{{I2Q000EB4u}8% literal 0 HcmV?d00001 diff --git a/lisp/uu-decode.xpm b/lisp/uu-decode.xpm new file mode 100644 index 000000000..cdadff68d --- /dev/null +++ b/lisp/uu-decode.xpm @@ -0,0 +1,48 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"24 24 18 1", +" c #2fef2fef2fef", +". c #3fff3fff3fff", +"X c #4ccc4ccc4ccc", +"o c #53e353e353e3", +"O c #566656665666", +"+ c #5fe35fe35fe3", +"@ c Gray45", +"# c #77d777d777d7", +"$ c Gray50", +"% c #866586658665", +"& c Gray56", +"* c Gray60", +"= c #9fff9fff9fff", +"- c Gray75", +"; c Gray81", +": c #dfffdfffdfff", +"> c #efffefffefff", +", c Gray100", +/* pixels */ +"------------------------", +"------------------------", +"------------------------", +"------------------------", +"-----#+++++++++++++&----", +"----- @@@@@@@@@@@@O+----", +"----- *%@@@@@@@@@&@+----", +"----- *X+$$$$$$$.@@+----", +"----- *X-,,,,,,,$@@+----", +"----- *X-,,;,,,,$@@+----", +"----- *X-:$$$-=,$@@+----", +"----- *X-+-+-$=,$@@+----", +"----- *X->$;;,,,$@@+----", +"----- *X--.$.,,,$@@+----", +"----- *X->--==,,$@@+----", +"----- *X-,,,,=;,$@@+----", +"----- *X-,,,,,,,$@@+----", +"----- *X-,,,,,,,$@@+----", +"----- *X&-------+@@+----", +"----- *@XXXXXXXXX%@+----", +"----- ************@+----", +"-----o #----", +"------------------------", +"------------------------" +}; diff --git a/lisp/uu-post.pbm b/lisp/uu-post.pbm new file mode 100644 index 0000000000000000000000000000000000000000..a5face709807268d83cab63a19540e5d09676333 GIT binary patch literal 81 zcmWGA;W9E&Ff!p1aAaZNU| c Gray56", +", c Gray60", +"< c #9bcb9bcb9bcb", +"1 c #9fff9fff9fff", +"2 c #a7c7a7c7a7c7", +"3 c Gray70", +"4 c Gray75", +"5 c Gray81", +"6 c #dfffdfffdfff", +"7 c #efffefffefff", +"8 c Gray100", +/* pixels */ +"$44$44$44$44$44$44$44$44", +"444444444444-44444444444", +"4444444444-O-O,444444444", +"$44$44$2>O-4$4$@>3$44$44", +"444444&&&4444442&&-44444", +"44444$ XOOOOOOOOO..-4444", +"$44$4O,,,,,,,,,,,,=&4$44", +"44444O,=#########:=&4444", +"44444O,#>4444444&==&4444", +"$44$4O,#48888888;==&4$44", +"44444O,#48818888;==&4444", +"44444O,#45+1+1*8;==&4444", +"$44$4O,#4*6&8158;==&4$44", +"44444O,#46;61888;==&4444", +"44444O,#44o++888;==&4444", +"$44$4O,#48885;78;==&4$44", +"44444O,#48888468;==&4444", +"44444O,#48888888;==&4444", +"$44$4O,#48888888;==&4$44", +"44444O,#&;;;;;;;+==&4444", +"44444O,:=========>=&4444", +"$44$4O============%&4$44", +"44444-&&&&&&&&&&&&&>4444", +"444444444444444444444444" +}; diff --git a/lisp/uudecode.el b/lisp/uudecode.el index 49047a910..9f423ebd9 100644 --- a/lisp/uudecode.el +++ b/lisp/uudecode.el @@ -1,5 +1,6 @@ ;;; uudecode.el -- elisp native uudecode -;; Copyright (c) 1998,99 Free Software Foundation, Inc. + +;; Copyright (c) 1998, 1999, 2000 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu ;; Keywords: uudecode news @@ -26,11 +27,32 @@ ;; Lots of codes are stolen from mm-decode.el, gnus-uu.el and ;; base64.el +;; This looks as though it could be made rather more efficient for +;; internal working. Encoding could use a lookup table and decoding +;; should presumably use a vector or list buffer for partial results +;; rather than with-current-buffer. -- fx + +;; Only `uudecode-decode-region' should be advertised, and whether or +;; not that uses a program should be customizable, but I guess it's +;; too late now. -- fx + ;;; Code: (eval-when-compile (require 'cl)) -(if (not (fboundp 'char-int)) - (defalias 'char-int 'identity)) + +(eval-and-compile + (defalias 'uudecode-char-int + (if (fboundp 'char-int) + 'char-int + 'identity)) + + (if (featurep 'xemacs) + (defalias 'uudecode-insert-char 'insert-char) + (defun uudecode-insert-char (char &optional count ignored buffer) + (if (or (null buffer) (eq buffer (current-buffer))) + (insert-char char count) + (with-current-buffer buffer + (insert-char char count)))))) (defcustom uudecode-decoder-program "uudecode" "*Non-nil value should be a string that names a uu decoder. @@ -62,11 +84,11 @@ input and write the converted data to its standard output." ;;;###autoload (defun uudecode-decode-region-external (start end &optional file-name) - "Uudecode region between START and END with external decoder. - -If FILE-NAME is non-nil, save the result to FILE-NAME." + "Uudecode region between START and END using external program. +If FILE-NAME is non-nil, save the result to FILE-NAME. The program +used is specified by `uudecode-decoder-program'." (interactive "r\nP") - (let ((cbuf (current-buffer)) tempfile firstline work-buffer status) + (let ((cbuf (current-buffer)) tempfile firstline status) (save-excursion (goto-char start) (when (re-search-forward uudecode-begin-line nil t) @@ -80,16 +102,13 @@ If FILE-NAME is non-nil, save the result to FILE-NAME." (match-string 1))))) (setq tempfile (if file-name (expand-file-name file-name) - (make-temp-name - ;; /tmp/uu... - (expand-file-name - "uu" uudecode-temporary-file-directory)))) - (let ((cdir default-directory) default-process-coding-system) + (let ((temporary-file-directory + uudecode-temporary-file-directory)) + (make-temp-file "uu")))) + (let ((cdir default-directory) + default-process-coding-system) (unwind-protect - (progn - (set-buffer (setq work-buffer - (generate-new-buffer " *uudecode-work*"))) - (buffer-disable-undo work-buffer) + (with-temp-buffer (insert "begin 600 " (file-name-nondirectory tempfile) "\n") (insert-buffer-substring cbuf firstline end) (cd (file-name-directory tempfile)) @@ -109,21 +128,11 @@ If FILE-NAME is non-nil, save the result to FILE-NAME." (let (format-alist) (insert-file-contents-literally tempfile))) (message "Can not uudecode"))) - (and work-buffer (kill-buffer work-buffer)) (ignore-errors (or file-name (delete-file tempfile)))))) -(if (featurep 'xemacs) - (defalias 'uudecode-insert-char 'insert-char) - (defun uudecode-insert-char (char &optional count ignored buffer) - (if (or (null buffer) (eq buffer (current-buffer))) - (insert-char char count) - (with-current-buffer buffer - (insert-char char count))))) - ;;;###autoload - (defun uudecode-decode-region (start end &optional file-name) - "Uudecode region between START and END. + "Uudecode region between START and END without using an external program. If FILE-NAME is non-nil, save the result to FILE-NAME." (interactive "r\nP") (let ((work-buffer nil) @@ -145,7 +154,6 @@ If FILE-NAME is non-nil, save the result to FILE-NAME." nil nil nil (match-string 1)))))) (setq work-buffer (generate-new-buffer " *uudecode-work*")) - (buffer-disable-undo work-buffer) (forward-line 1) (skip-chars-forward non-data-chars end) (while (not done) @@ -155,14 +163,16 @@ If FILE-NAME is non-nil, save the result to FILE-NAME." ((> (skip-chars-forward uudecode-alphabet end) 0) (setq lim (point)) (setq remain - (logand (- (char-int (char-after inputpos)) 32) 63)) + (logand (- (uudecode-char-int (char-after inputpos)) 32) + 63)) (setq inputpos (1+ inputpos)) (if (= remain 0) (setq done t)) (while (and (< inputpos lim) (> remain 0)) (setq bits (+ bits (logand (- - (char-int (char-after inputpos)) 32) 63))) + (uudecode-char-int (char-after inputpos)) 32) + 63))) (if (/= counter 0) (setq remain (1- remain))) (setq counter (1+ counter) inputpos (1+ inputpos)) -- 2.25.1