From: Lars Magne Ingebrigtsen Date: Thu, 19 Nov 1998 03:49:10 +0000 (+0000) Subject: *** empty log message *** X-Git-Url: https://cgit.sxemacs.org/?a=commitdiff_plain;h=c166c641b59ba274a81f01195116421c43b9d2c0;p=gnus *** empty log message *** --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 28b6c4752..0c109e05b 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,44 @@ +Thu Nov 19 04:48:42 1998 Lars Magne Ingebrigtsen + + * gnus.el: Pterodactyl Gnus v0.51 is released. + +1998-11-19 04:02:34 Lars Magne Ingebrigtsen + + * gnus.el: Applied patches from 5.6.45. + + * gnus-score.el (gnus-score-find-trace): Print complete file + paths. + (gnus-score-find-trace): Truncate lines. + + * gnus.el (gnus-message-archive-group): Allow function. + + * message.el (message-encode-message-body): Remove Mime-Version + before inserting. + + * gnus-cus.el (gnus-group-customize): Optional topic. + + * gnus-sum.el (gnus-summary-customize-parameters): New command and + keystroke. + +Wed Nov 18 13:46:08 1998 Shenghuo ZHU + + * message.el (message-encode-message-body): Rewrite. + +1998-11-18 07:37:47 Lars Magne Ingebrigtsen + + * mml.el (mml-base-boundary): New variable. + (mml-make-boundary): New function. + + * gnus-cache.el (gnus-cache-coding-system): New variable. + (gnus-cache-request-article): Use it. + + * message.el (message-insert-mime-part): Delete duplicates. + +Wed Nov 18 11:52:19 1998 Shenghuo ZHU + + * gnus-art.el (gnus-mime-display-alternative): Set end of + multipart and display even when nothing is preferred. + Wed Nov 18 05:06:44 1998 Lars Magne Ingebrigtsen * gnus.el: Pterodactyl Gnus v0.50 is released. diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index 18a19a5ed..99367484d 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -2477,25 +2477,49 @@ If ALL-HEADERS is non-nil, no headers are hidden." (ihandles handles) (point (point)) handle buffer-read-only from props begend not-pref) - (when preferred - (save-restriction - (when ibegend - (narrow-to-region (car ibegend) (cdr ibegend)) - (delete-region (point-min) (point-max)) - (mm-remove-parts handles)) - (setq begend (list (point-marker))) - ;; Do the toggle. - (unless (setq not-pref (cadr (member preferred ihandles))) - (setq not-pref (car ihandles))) + (save-restriction + (when ibegend + (narrow-to-region (car ibegend) (cdr ibegend)) + (delete-region (point-min) (point-max)) + (mm-remove-parts handles)) + (setq begend (list (point-marker))) + ;; Do the toggle. + (unless (setq not-pref (cadr (member preferred ihandles))) + (setq not-pref (car ihandles))) + (gnus-add-text-properties + (setq from (point)) + (progn + (insert (format "%d. " id)) + (point)) + `(gnus-callback + (lambda (handles) + (gnus-mime-display-alternative + ',ihandles ',not-pref + ',begend ,id)) + local-map ,gnus-mime-button-map + ,gnus-mouse-face-prop ,gnus-article-mouse-face + face ,gnus-article-button-face + keymap ,gnus-mime-button-map + gnus-part ,id + gnus-data ,handle)) + (widget-convert-button 'link from (point) + :action 'gnus-widget-press-button + :button-keymap gnus-widget-button-keymap) + ;; Do the handles + (while (setq handle (pop handles)) (gnus-add-text-properties (setq from (point)) (progn - (insert (format "%d. " id)) + (insert (format "[%c] %-18s" + (if (equal handle preferred) ?* ? ) + (if (stringp (car handle)) + (car handle) + (car (mm-handle-type handle))))) (point)) `(gnus-callback (lambda (handles) (gnus-mime-display-alternative - ',ihandles ',not-pref + ',ihandles ',handle ',begend ,id)) local-map ,gnus-mime-button-map ,gnus-mouse-face-prop ,gnus-article-mouse-face @@ -2506,41 +2530,16 @@ If ALL-HEADERS is non-nil, no headers are hidden." (widget-convert-button 'link from (point) :action 'gnus-widget-press-button :button-keymap gnus-widget-button-keymap) - ;; Do the handles - (while (setq handle (pop handles)) - (gnus-add-text-properties - (setq from (point)) - (progn - (insert (format "[%c] %-18s" - (if (equal handle preferred) ?* ? ) - (if (stringp (car handle)) - (car handle) - (car (mm-handle-type handle))))) - (point)) - `(gnus-callback - (lambda (handles) - (gnus-mime-display-alternative - ',ihandles ',handle - ',begend ,id)) - local-map ,gnus-mime-button-map - ,gnus-mouse-face-prop ,gnus-article-mouse-face - face ,gnus-article-button-face - keymap ,gnus-mime-button-map - gnus-part ,id - gnus-data ,handle)) - (widget-convert-button 'link from (point) - :action 'gnus-widget-press-button - :button-keymap gnus-widget-button-keymap) - (insert " ")) - (insert "\n\n") - (when preferred - (if (stringp (car preferred)) - (gnus-display-mime preferred) - (mm-display-part preferred) - (goto-char (point-max)) - (setcdr begend (point-marker))))) - (when ibegend - (goto-char point))))) + (insert " ")) + (insert "\n\n") + (when preferred + (if (stringp (car preferred)) + (gnus-display-mime preferred) + (mm-display-part preferred) + (goto-char (point-max))) + (setcdr begend (point-marker)))) + (when ibegend + (goto-char point)))) (defun gnus-article-wash-status () "Return a string which display status of article washing." @@ -3135,7 +3134,7 @@ groups." :type 'regexp) (defcustom gnus-button-alist - `(("<\\(url:[>\n\t ]*?\\)?news:[>\n\t ]*\\([^>\n\t ]*@[^)!;:,>\n\t ]*\\)>" + `(("<\\(url:[>\n\t ]*?\\)?news:[>\n\t ]*\\([^>\n\t ]*@[^>\n\t ]*\\)>" 0 t gnus-button-message-id 2) ("\\bnews:\\([^>\n\t ]*@[^>)!;:,\n\t ]*\\)" 0 t gnus-button-message-id 1) ("\\(\\b<\\(url:[>\n\t ]*\\)?news:[>\n\t ]*\\(//\\)?\\([^>\n\t ]*\\)>\\)" diff --git a/lisp/gnus-cache.el b/lisp/gnus-cache.el index 56d16b153..d7034caee 100644 --- a/lisp/gnus-cache.el +++ b/lisp/gnus-cache.el @@ -77,6 +77,9 @@ it's not cached." (defvar gnus-cache-overview-coding-system 'raw-text "Coding system used on Gnus cache files.") +(defvar gnus-cache-coding-system 'binary + "Coding system used on Gnus cache files.") + ;;; Internal variables. @@ -255,7 +258,8 @@ it's not cached." (when (file-exists-p file) (erase-buffer) (gnus-kill-all-overlays) - (insert-file-contents file) + (let ((coding-system-for-read gnus-cache-coding-system)) + (insert-file-contents file)) t))) (defun gnus-cache-possibly-alter-active (group active) @@ -644,7 +648,7 @@ If LOW, update the lower bound instead." ;; Go through all the other files. (while alphs (when (and (file-directory-p (car alphs)) - (not (string-match "^\\.\\.?$" + (not (string-match "^\\." (file-name-nondirectory (car alphs))))) ;; We descend directories. (gnus-cache-generate-active (car alphs))) diff --git a/lisp/gnus-cus.el b/lisp/gnus-cus.el index b71e2a921..5a839e88b 100644 --- a/lisp/gnus-cus.el +++ b/lisp/gnus-cus.el @@ -176,8 +176,8 @@ DOC is a documentation string for the parameter.") (defvar gnus-custom-group) (defvar gnus-custom-topic) -(defun gnus-group-customize (group topic) - "Edit the group or topicon the current line." +(defun gnus-group-customize (group &optional topic) + "Edit the group or topic on the current line." (interactive (list (gnus-group-group-name) (gnus-group-topic-name))) (let (info (types (mapcar (lambda (entry) diff --git a/lisp/gnus-group.el b/lisp/gnus-group.el index fcbcea55d..be3a549a7 100644 --- a/lisp/gnus-group.el +++ b/lisp/gnus-group.el @@ -3068,7 +3068,6 @@ to use." (mapatoms (lambda (group) (and (string-match regexp (symbol-value group)) - (gnus-active (symbol-name group)) (push (symbol-name group) groups))) gnus-description-hashtb)) (if (not groups) diff --git a/lisp/gnus-score.el b/lisp/gnus-score.el index 64824b2e7..ff791fa09 100644 --- a/lisp/gnus-score.el +++ b/lisp/gnus-score.el @@ -2341,11 +2341,10 @@ EXTRA is the possible non-standard header." 1 "No score rules apply to the current article (default score %d)." gnus-summary-default-score) (set-buffer "*Score Trace*") + (setq truncate-lines t) (while trace (insert (format "%S -> %s\n" (cdar trace) - (if (caar trace) - (file-name-nondirectory (caar trace)) - "(non-file rule)"))) + (or (caar trace) "(non-file rule)"))) (setq trace (cdr trace))) (goto-char (point-min)) (gnus-configure-windows 'score-trace))) diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 8be816861..829bc3fd3 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -1287,6 +1287,7 @@ increase the score of each group you read." "\C-d" gnus-summary-enter-digest-group "\M-\C-d" gnus-summary-read-document "\M-\C-e" gnus-summary-edit-parameters + "\M-\C-g" gnus-summary-customize-parameters "\C-c\C-b" gnus-bug "*" gnus-cache-enter-article "\M-*" gnus-cache-remove-article @@ -1806,6 +1807,7 @@ increase the score of each group you read." ["Edit local kill file" gnus-summary-edit-local-kill t] ["Edit main kill file" gnus-summary-edit-global-kill t] ["Edit group parameters" gnus-summary-edit-parameters t] + ["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] @@ -6602,6 +6604,11 @@ or `gnus-select-method', no matter what backend the article comes from." (interactive) (gnus-group-edit-group gnus-newsgroup-name 'params)) +(defun gnus-summary-customize-parameters () + "Customize the group parameters of the current group." + (interactive) + (gnus-group-customize gnus-newsgroup-name)) + (defun gnus-summary-enter-digest-group (&optional force) "Enter an nndoc group based on the current article. If FORCE, force a digest interpretation. If not, try diff --git a/lisp/gnus.el b/lisp/gnus.el index 245a41e01..426f8ec0a 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -254,7 +254,7 @@ is restarted, and sometimes reloaded." :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) -(defconst gnus-version-number "0.50" +(defconst gnus-version-number "0.51" "Version number for this version of Gnus.") (defconst gnus-version (format "Pterodactyl Gnus v%s" gnus-version-number) @@ -935,6 +935,7 @@ that case, just return a fully prefixed name of the group -- \"nnml+private:mail.misc\", for instance." :group 'gnus-message :type '(choice (const :tag "none" nil) + function sexp string)) @@ -1648,7 +1649,8 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.") ("nnvirtual" nnvirtual-catchup-group nnvirtual-convert-headers) ("rmailout" rmail-output rmail-output-to-rmail-file) ("rmail" rmail-insert-rmail-file-header rmail-count-new-messages - rmail-show-message) + rmail-show-message rmail-summary-exists + rmail-select-summary rmail-update-summary) ("gnus-audio" :interactive t gnus-audio-play) ("gnus-xmas" gnus-xmas-splash) ("gnus-soup" :interactive t diff --git a/lisp/message.el b/lisp/message.el index f4555b5af..0ca380be6 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -4110,33 +4110,40 @@ regexp varstr." (list file (completing-read (format "MIME type for %s: " file) - (mapcar (lambda (m) (list (cdr m))) mailcap-mime-extensions) + (delete-duplicates + (mapcar (lambda (m) (list (cdr m))) mailcap-mime-extensions)) nil nil type)))) (insert (format "<#part type=%s filename=\"%s\"><#/part>\n" type file))) (defun message-encode-message-body () - (message-goto-body) - (save-restriction - (narrow-to-region (point) (point-max)) - (let ((new (mml-generate-mime))) - (delete-region (point-min) (point-max)) - (insert new) - (goto-char (point-min)) - (widen) - (forward-line -1) - (let ((beg (point)) - (line (buffer-substring (point) (progn (forward-line 1) (point))))) - (delete-region beg (point)) - (insert "Mime-Version: 1.0\n") - (search-forward "\n\n") - (forward-char -1) - (insert line) - (when (save-excursion - (re-search-backward "^Content-Type: multipart/" nil t)) - (insert "This is a MIME multipart message. If you are reading\n") - (insert "this, you shouldn't.\n")))))) - + (let (lines multipart-p) + (message-goto-body) + (save-restriction + (narrow-to-region (point) (point-max)) + (let ((new (mml-generate-mime))) + (delete-region (point-min) (point-max)) + (insert new) + (goto-char (point-min)) + (if (eq (aref new 0) ?\n) + (delete-char 1) + (search-forward "\n\n") + (setq lines (buffer-substring (point-min) (1- (point)))) + (delete-region (point-min) (point))))) + (save-restriction + (message-narrow-to-headers-or-head) + (message-remove-header "Mime-Version") + (goto-char (point-max)) + (insert "Mime-Version: 1.0\n") + (when lines + (insert lines)) + (setq multipart-p + (re-search-backward "^Content-Type: multipart/" nil t))) + (when multipart-p + (message-goto-body) + (insert "This is a MIME multipart message. If you are reading\n") + (insert "this, you shouldn't.\n")))) + (run-hooks 'message-load-hook) (provide 'message) diff --git a/lisp/mml.el b/lisp/mml.el index 3920f9a1d..01c477351 100644 --- a/lisp/mml.el +++ b/lisp/mml.el @@ -23,6 +23,10 @@ ;;; Code: +(require 'mm-util) +(require 'mm-bodies) +(require 'mm-encode) + (defvar mml-syntax-table (let ((table (copy-syntax-table emacs-lisp-mode-syntax-table))) (modify-syntax-entry ?\\ "/" table) @@ -50,7 +54,7 @@ "Parse the current buffer as an MML document." (let (struct) (while (and (not (eobp)) - (not (looking-at " mml-multipart-number 17) + (format "%x" mml-multipart-number) + "") + mml-base-boundary)) + +(defun mml-make-string (num string) + (let ((out "")) + (while (not (zerop (decf num))) + (setq out (concat out string))) + out)) (provide 'mml) diff --git a/lisp/nntp.el b/lisp/nntp.el index d9972ef9d..3012b2579 100644 --- a/lisp/nntp.el +++ b/lisp/nntp.el @@ -653,7 +653,7 @@ If this variable is nil, which is the default, no timers are set.") (deffoo nntp-request-group (group &optional server dont-check) (nntp-possibly-change-group nil server) - (when (nntp-send-command "^21.*\n" "GROUP" group) + (when (nntp-send-command "^[245].*\n" "GROUP" group) (let ((entry (nntp-find-connection-entry nntp-server-buffer))) (setcar (cddr entry) group)))) @@ -980,7 +980,9 @@ password contained in '~/.nntp-authinfo'." (set-buffer (process-buffer (car entry))) (erase-buffer) (nntp-send-string (car entry) (concat "GROUP " group)) - (nntp-wait-for-string "^2.*\n") + ;; allow for unexpected responses, since this can be called + ;; from a timer with quit inhibited + (nntp-wait-for-string "^[245].*\n") (setcar (cddr entry) group) (erase-buffer)))))) diff --git a/make.bat b/make.bat index 91b798665..b2032773f 100644 --- a/make.bat +++ b/make.bat @@ -22,14 +22,10 @@ rem rem which will allow the batch file to accept an unlimited number of rem parameters. -rem Clear PWD so emacs doesn't get confused -set GNUS_PWD_SAVE=%PWD% -set PWD= - -rem Clear PWD so emacs doesn't get confused -set GNUS_PWD_SAVE=%PWD% -set PWD= - +rem Clear PWD so emacs doesn't get confused +set GNUS_PWD_SAVE=%PWD% +set PWD= + if "%1" == "" goto usage cd lisp @@ -62,10 +58,7 @@ echo eg. d:\emacs\19.34 echo copy indicates that the compiled files should be copied to your echo emacs lisp, info, and etc directories -rem Restore PWD so whoever called this batch file doesn't get confused -set PWD=%GNUS_PWD_SAVE% -set GNUS_PWD_SAVE= -rem Restore PWD so whoever called this batch file doesn't get confused -set PWD=%GNUS_PWD_SAVE% -set GNUS_PWD_SAVE= +rem Restore PWD so whoever called this batch file doesn't get confused +set PWD=%GNUS_PWD_SAVE% +set GNUS_PWD_SAVE= :end diff --git a/texi/ChangeLog b/texi/ChangeLog index 783ad5231..a16f6bff2 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,7 @@ +1998-11-19 04:05:15 Lars Magne Ingebrigtsen + + * gnus.texi (Really Various Summary Commands): Addition. + 1998-11-18 00:52:46 Lars Magne Ingebrigtsen * gnus.texi (MIME Commands): Addition. diff --git a/texi/gnus.texi b/texi/gnus.texi index 437516813..2b91688ab 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus -@settitle Pterodactyl Gnus 0.50 Manual +@settitle Pterodactyl Gnus 0.51 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -318,7 +318,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Pterodactyl Gnus 0.50 Manual +@title Pterodactyl Gnus 0.51 Manual @author by Lars Magne Ingebrigtsen @page @@ -354,7 +354,7 @@ can be gotten by any nefarious means you can think of---@sc{nntp}, local spool or your mbox file. All at the same time, if you want to push your luck. -This manual corresponds to Pterodactyl Gnus 0.50. +This manual corresponds to Pterodactyl Gnus 0.51. @end ifinfo @@ -7683,6 +7683,12 @@ If given a prefix, force an @code{article} window configuration. Edit the group parameters (@pxref{Group Parameters}) of the current group (@code{gnus-summary-edit-parameters}). +@item M-C-g +@kindex M-C-g (Summary) +@findex gnus-summary-customize-parameters +Customize the group parameters (@pxref{Group Parameters}) of the current +group (@code{gnus-summary-customize-parameters}). + @end table diff --git a/texi/message.texi b/texi/message.texi index 62762811b..cc8e4e6b0 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename message -@settitle Pterodactyl Message 0.50 Manual +@settitle Pterodactyl Message 0.51 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -42,7 +42,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Pterodactyl Message 0.50 Manual +@title Pterodactyl Message 0.51 Manual @author by Lars Magne Ingebrigtsen @page @@ -83,7 +83,7 @@ Message mode buffers. * Key Index:: List of Message mode keys. @end menu -This manual corresponds to Pterodactyl Message 0.50. Message is +This manual corresponds to Pterodactyl Message 0.51. Message is distributed with the Gnus distribution bearing the same version number as this manual.