*** pub/sgnus/lisp/custom.el Sat Jun 22 10:46:50 1996 --- sgnus/lisp/custom.el Sun Jul 14 16:44:08 1996 *************** *** 113,193 **** (custom-set-text-properties 0 (length string) nil string) string)) - (or (fboundp 'add-to-list) - ;; Introduced in Emacs 19.29. - (defun add-to-list (list-var element) - "Add to the value of LIST-VAR the element ELEMENT if it isn't there yet. - If you want to use `add-to-list' on a variable that is not defined - until a certain package is loaded, you should put the call to `add-to-list' - into a hook function that will be run only after loading the package. - `eval-after-load' provides one way to do this. In some cases - other hooks, such as major mode hooks, can do the job." - (or (member element (symbol-value list-var)) - (set list-var (cons element (symbol-value list-var)))))) - - (or (fboundp 'plist-get) - ;; Introduced in Emacs 19.29. - (defun plist-get (plist prop) - "Extract a value from a property list. - PLIST is a property list, which is a list of the form - \(PROP1 VALUE1 PROP2 VALUE2...). This function returns the value - corresponding to the given PROP, or nil if PROP is not - one of the properties on the list." - (let (result) - (while plist - (if (eq (car plist) prop) - (setq result (car (cdr plist)) - plist nil) - (set plist (cdr (cdr plist))))) - result))) - - (or (fboundp 'plist-put) - ;; Introduced in Emacs 19.29. - (defun plist-put (plist prop val) - "Change value in PLIST of PROP to VAL. - PLIST is a property list, which is a list of the form - \(PROP1 VALUE1 PROP2 VALUE2 ...). PROP is a symbol and VAL is any object. - If PROP is already a property on the list, its value is set to VAL, - otherwise the new PROP VAL pair is added. The new plist is returned; - use `(setq x (plist-put x prop val))' to be sure to use the new value. - The PLIST is modified by side effects." - (if (null plist) - (list prop val) - (let ((current plist)) - (while current - (cond ((eq (car current) prop) - (setcar (cdr current) val) - (setq current nil)) - ((null (cdr (cdr current))) - (setcdr (cdr current) (list prop val)) - (setq current nil)) - (t - (setq current (cdr (cdr current))))))) - plist))) - - (or (fboundp 'match-string) - ;; Introduced in Emacs 19.29. - (defun match-string (num &optional string) - "Return string of text matched by last search. - NUM specifies which parenthesized expression in the last regexp. - Value is nil if NUMth pair didn't match, or there were less than NUM pairs. - Zero means the entire text matched by the whole regexp or whole string. - STRING should be given if the last search was by `string-match' on STRING." - (if (match-beginning num) - (if string - (substring string (match-beginning num) (match-end num)) - (buffer-substring (match-beginning num) (match-end num)))))) - - (or (fboundp 'facep) - ;; Introduced in Emacs 19.29. - (defun facep (x) - "Return t if X is a face name or an internal face vector." - (and (or (and (fboundp 'internal-facep) (internal-facep x)) - (and - (symbolp x) - (assq x (and (boundp 'global-face-data) global-face-data)))) - t))) - ;; XEmacs and Emacs 19.29 facep does different things. (if (fboundp 'find-face) (fset 'custom-facep 'find-face) --- 113,118 ---- *** pub/sgnus/lisp/gnus-cache.el Sun Jun 30 21:45:36 1996 --- sgnus/lisp/gnus-cache.el Sun Jul 14 16:54:37 1996 *************** *** 71,77 **** (not (eq gnus-use-cache 'passive)))) (gnus-cache-read-active))) ! (gnus-add-shutdown 'gnus-cache-close 'gnus) (defun gnus-cache-close () "Shut down the cache." --- 71,80 ---- (not (eq gnus-use-cache 'passive)))) (gnus-cache-read-active))) ! (condition-case () ! (gnus-add-shutdown 'gnus-cache-close 'gnus) ! ;; Complexities of byte-compiling makes this kludge necessary. Eeek. ! (error nil)) (defun gnus-cache-close () "Shut down the cache." *** pub/sgnus/lisp/gnus-cus.el Fri Jul 5 05:04:43 1996 --- sgnus/lisp/gnus-cus.el Sun Jul 14 15:30:00 1996 *************** *** 335,341 **** regular expression that should match the beginning of the header line, but if you don't know what a regular expression is, just write the name of the header. The second field is the `Name' field, which ! determines how the the header name (i.e. the part of the header left of the `:') is displayed. The third field is the `Content' field, which determines how the content (i.e. the part of the header right of the `:') is displayed. --- 335,341 ---- regular expression that should match the beginning of the header line, but if you don't know what a regular expression is, just write the name of the header. The second field is the `Name' field, which ! determines how the header name (i.e. the part of the header left of the `:') is displayed. The third field is the `Content' field, which determines how the content (i.e. the part of the header right of the `:') is displayed. *** pub/sgnus/lisp/gnus-edit.el Sat Jun 15 08:58:10 1996 --- sgnus/lisp/gnus-edit.el Sun Jul 14 15:30:01 1996 *************** *** 35,41 **** Several score files may apply to each group, and several groups may use the same score file. This is controlled implicitly by the name of the score file and the value of the global variable ! `gnus-score-find-score-files-function', and explicitly by the the `Files' and `Exclude Files' entries.") (compact . t) (type . group) --- 35,41 ---- Several score files may apply to each group, and several groups may use the same score file. This is controlled implicitly by the name of the score file and the value of the global variable ! `gnus-score-find-score-files-function', and explicitly by the `Files' and `Exclude Files' entries.") (compact . t) (type . group) *************** *** 53,59 **** ((name . files) (tag . "Files") (doc . "\ ! List of score files to load when the the current score file is loaded. You can use this to share score entries between multiple score files. Push the `[INS]' button add a score file to the list, or `[DEL]' to --- 53,59 ---- ((name . files) (tag . "Files") (doc . "\ ! List of score files to load when the current score file is loaded. You can use this to share score entries between multiple score files. Push the `[INS]' button add a score file to the list, or `[DEL]' to *************** *** 66,72 **** ((name . exclude-files) (tag . "Exclude Files") (doc . "\ ! List of score files to exclude when the the current score file is loaded. You can use this if you have a score file you want to share between a number of newsgroups, except for the newsgroup this score file matches. [ Did anyone get that? ] --- 66,72 ---- ((name . exclude-files) (tag . "Exclude Files") (doc . "\ ! List of score files to exclude when the current score file is loaded. You can use this if you have a score file you want to share between a number of newsgroups, except for the newsgroup this score file matches. [ Did anyone get that? ] *************** *** 138,144 **** entry. After choosing the you can enter the date the score entry was last matched in the `Date' field. The date will be automatically updated each time the score entry matches an article. When the date ! become too old, the the score entry will be removed. For your convenience, the date is specified as the number of days elapsed since the (imaginary) Gregorian date Sunday, December 31, 1 --- 138,144 ---- entry. After choosing the you can enter the date the score entry was last matched in the `Date' field. The date will be automatically updated each time the score entry matches an article. When the date ! become too old, the score entry will be removed. For your convenience, the date is specified as the number of days elapsed since the (imaginary) Gregorian date Sunday, December 31, 1 *************** *** 292,298 **** (doc . "Customization of adaptive scoring. Each time you read an article it will be marked as read. Likewise, if ! you delete it it will be marked as deleted, and if you tick it it will be marked as ticked. When you leave a group, GNUS can automatically create score file entries based on these marks, so next time you enter the group articles with subjects that you read last time have higher --- 292,298 ---- (doc . "Customization of adaptive scoring. Each time you read an article it will be marked as read. Likewise, if ! you delete it, it will be marked as deleted, and if you tick it, it will be marked as ticked. When you leave a group, GNUS can automatically create score file entries based on these marks, so next time you enter the group articles with subjects that you read last time have higher *** pub/sgnus/lisp/gnus-gl.el Wed May 22 17:22:02 1996 --- sgnus/lisp/gnus-gl.el Sun Jul 14 15:29:58 1996 *************** *** 127,133 **** ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defvar gnus-summary-grouplens-line-format ! "%U%R%z%l%I%(%[%4L: %-20,20n%]%) %s\n" "*The line format spec in summary GroupLens mode buffers.") (defvar grouplens-pseudonym "" --- 127,133 ---- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defvar gnus-summary-grouplens-line-format ! "%U\%R\%z%l%I\%(%[%4L: %-20,20n%]%) %s\n" "*The line format spec in summary GroupLens mode buffers.") (defvar grouplens-pseudonym "" *** pub/sgnus/lisp/gnus-picon.el Fri Jun 21 17:33:45 1996 --- sgnus/lisp/gnus-picon.el Sun Jul 14 16:44:07 1996 *************** *** 211,218 **** (when (and (featurep 'xpm) (or (not (fboundp 'device-type)) (equal (device-type) 'x)) (setq from (mail-fetch-field "from")) ! (setq from (downcase (cadr (mail-extract-address-components ! from))) at-idx (string-match "@" from))) (save-excursion (let ((username (substring from 0 at-idx)) --- 211,219 ---- (when (and (featurep 'xpm) (or (not (fboundp 'device-type)) (equal (device-type) 'x)) (setq from (mail-fetch-field "from")) ! (setq from (downcase (or (cadr (mail-extract-address-components ! from)) ! "")) at-idx (string-match "@" from))) (save-excursion (let ((username (substring from 0 at-idx)) *** pub/sgnus/lisp/gnus-score.el Fri Jun 28 23:32:15 1996 --- sgnus/lisp/gnus-score.el Sun Jul 14 15:29:57 1996 *************** *** 392,398 **** (if mimic (error "%c %c" prefix hchar) (error ""))) (when (/= (downcase tchar) tchar) ! ;; It was a majuscle, so we end reading and the the default. (if mimic (message "%c %c %c" prefix hchar tchar) (message "")) (setq pchar (or pchar ?p))) --- 392,398 ---- (if mimic (error "%c %c" prefix hchar) (error ""))) (when (/= (downcase tchar) tchar) ! ;; It was a majuscle, so we end reading and use the default. (if mimic (message "%c %c %c" prefix hchar tchar) (message "")) (setq pchar (or pchar ?p))) *** pub/sgnus/lisp/gnus-uu.el Tue Jun 18 11:24:41 1996 --- sgnus/lisp/gnus-uu.el Sun Jul 14 18:45:51 1996 *************** *** 563,569 **** (data gnus-newsgroup-data)) (save-excursion (while data ! (when (> (or (cdr (assq (gnus-data-number (caar data)) gnus-newsgroup-scored)) gnus-summary-default-score 0) score) --- 563,569 ---- (data gnus-newsgroup-data)) (save-excursion (while data ! (when (> (or (cdr (assq (gnus-data-number (car data)) gnus-newsgroup-scored)) gnus-summary-default-score 0) score) *************** *** 1092,1098 **** ;; If the list returned contains a `begin', the first element of ;; the list *must* be a string with the file name of the decoded ;; file. ! ;; `end' if the the end of an encoded file has been received ;; `middle' if the article was a body part of an encoded file ;; `wrong-type' if the article was not a part of an encoded file ;; `ok', which can be used everything is ok --- 1092,1098 ---- ;; If the list returned contains a `begin', the first element of ;; the list *must* be a string with the file name of the decoded ;; file. ! ;; `end' if the end of an encoded file has been received ;; `middle' if the article was a body part of an encoded file ;; `wrong-type' if the article was not a part of an encoded file ;; `ok', which can be used everything is ok *************** *** 1584,1590 **** ;; Kills the temporary uu buffers, kills any processes, etc. (defun gnus-uu-clean-up () ! (let (buf pst) (and gnus-uu-uudecode-process (memq (process-status (or gnus-uu-uudecode-process "nevair")) '(stop run)) --- 1584,1590 ---- ;; Kills the temporary uu buffers, kills any processes, etc. (defun gnus-uu-clean-up () ! (let (buf) (and gnus-uu-uudecode-process (memq (process-status (or gnus-uu-uudecode-process "nevair")) '(stop run)) *** pub/sgnus/lisp/gnus-vis.el Sun Jun 30 21:45:36 1996 --- sgnus/lisp/gnus-vis.el Tue Jul 9 08:51:33 1996 *************** *** 380,386 **** ["Execute command" gnus-group-universal-argument (or gnus-group-marked (gnus-group-group-name))]) ("Subscribe" ! ["Subscribe to random group" gnus-group-unsubscribe-group t] ["Kill all newsgroups in region" gnus-group-kill-region t] ["Kill all zombie groups" gnus-group-kill-all-zombies gnus-zombie-list] --- 380,386 ---- ["Execute command" gnus-group-universal-argument (or gnus-group-marked (gnus-group-group-name))]) ("Subscribe" ! ["Subscribe to a group" gnus-group-unsubscribe-group t] ["Kill all newsgroups in region" gnus-group-kill-region t] ["Kill all zombie groups" gnus-group-kill-all-zombies gnus-zombie-list] *** pub/sgnus/lisp/gnus.el Sat Jul 6 07:40:14 1996 --- sgnus/lisp/gnus.el Sun Jul 14 16:52:40 1996 *************** *** 1113,1119 **** (defvar gnus-insert-pseudo-articles t "*If non-nil, insert pseudo-articles when decoding articles.") ! (defvar gnus-group-line-format "%M%S%p%P%5y: %(%g%)%l\n" "*Format of group lines. It works along the same lines as a normal formatting string, with some simple extensions. --- 1113,1119 ---- (defvar gnus-insert-pseudo-articles t "*If non-nil, insert pseudo-articles when decoding articles.") ! (defvar gnus-group-line-format "%M\%S\%p\%P\%5y: %(%g%)%l\n" "*Format of group lines. It works along the same lines as a normal formatting string, with some simple extensions. *************** *** 1161,1167 **** of these specs, you must probably re-start Gnus to see them go into effect.") ! (defvar gnus-summary-line-format "%U%R%z%I%(%[%4L: %-20,20n%]%) %s\n" "*The format specification of the lines in the summary buffer. It works along the same lines as a normal formatting string, --- 1161,1167 ---- of these specs, you must probably re-start Gnus to see them go into effect.") ! (defvar gnus-summary-line-format "%U\%R\%z\%I\%(%[%4L: %-20,20n%]%) %s\n" "*The format specification of the lines in the summary buffer. It works along the same lines as a normal formatting string, *************** *** 1250,1256 **** "*The format specification for the article mode line. See `gnus-summary-mode-line-format' for a closer description.") ! (defvar gnus-group-mode-line-format "Gnus: %%b {%M%:%S}" "*The format specification for the group mode line. It works along the same lines as a normal formatting string, with some simple extensions: --- 1250,1256 ---- "*The format specification for the article mode line. See `gnus-summary-mode-line-format' for a closer description.") ! (defvar gnus-group-mode-line-format "Gnus: %%b {%M\%:%S}" "*The format specification for the group mode line. It works along the same lines as a normal formatting string, with some simple extensions: *************** *** 1276,1282 **** ("nnfolder" mail respool address)) "An alist of valid select methods. The first element of each list lists should be a string with the name ! of the select method. The other elements may be be the category of this method (ie. `post', `mail', `none' or whatever) or other properties that this method has (like being respoolable). If you implement a new select method, all you should have to change is --- 1276,1282 ---- ("nnfolder" mail respool address)) "An alist of valid select methods. The first element of each list lists should be a string with the name ! of the select method. The other elements may be the category of this method (ie. `post', `mail', `none' or whatever) or other properties that this method has (like being respoolable). If you implement a new select method, all you should have to change is *************** *** 1771,1777 **** "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)" "The mail address of the Gnus maintainers.") ! (defconst gnus-version-number "5.2.34" "Version number for this version of Gnus.") (defconst gnus-version (format "Gnus v%s" gnus-version-number) --- 1771,1777 ---- "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)" "The mail address of the Gnus maintainers.") ! (defconst gnus-version-number "5.2.35" "Version number for this version of Gnus.") (defconst gnus-version (format "Gnus v%s" gnus-version-number) *************** *** 2127,2133 **** gnus-uu-decode-binhex-view) ("gnus-msg" (gnus-summary-send-map keymap) gnus-mail-yank-original gnus-mail-send-and-exit ! gnus-article-mail gnus-new-mail gnus-mail-reply) ("gnus-msg" :interactive t gnus-group-post-news gnus-group-mail gnus-summary-post-news gnus-summary-followup gnus-summary-followup-with-original --- 2127,2134 ---- gnus-uu-decode-binhex-view) ("gnus-msg" (gnus-summary-send-map keymap) gnus-mail-yank-original gnus-mail-send-and-exit ! gnus-article-mail gnus-new-mail gnus-mail-reply ! gnus-copy-article-buffer) ("gnus-msg" :interactive t gnus-group-post-news gnus-group-mail gnus-summary-post-news gnus-summary-followup gnus-summary-followup-with-original *************** *** 6668,6674 **** (goto-char (point-min)) (gnus-group-position-point))) ! ;; Suggested by by Daniel Quinlan . (defun gnus-group-apropos (regexp &optional search-description) "List all newsgroups that have names that match a regexp." (interactive "sGnus apropos (regexp): ") --- 6669,6675 ---- (goto-char (point-min)) (gnus-group-position-point))) ! ;; Suggested by Daniel Quinlan . (defun gnus-group-apropos (regexp &optional search-description) "List all newsgroups that have names that match a regexp." (interactive "sGnus apropos (regexp): ") *************** *** 8318,8325 **** (while threads (setq sub (car threads)) (if (stringp (car sub)) ! ;; This is a gathered threads, so we look at the roots ! ;; below it to find whether this article in in this ;; gathered root. (progn (setq sub (cdr sub)) --- 8319,8326 ---- (while threads (setq sub (car threads)) (if (stringp (car sub)) ! ;; This is a gathered thread, so we look at the roots ! ;; below it to find whether this article is in this ;; gathered root. (progn (setq sub (cdr sub)) *************** *** 14279,14284 **** --- 14280,14286 ---- (goto-char (point-min)) (or (search-forward "\n\n" nil t) (point-max))) + (goto-char (point-min)) (while (re-search-forward "=\\?iso-8859-1\\?q\\?\\([^?\t\n]*\\)\\?=" nil t) (setq string (match-string 1)) *************** *** 15975,15981 **** (gnus-group-change-level entry gnus-level-killed) (setq gnus-killed-list (delete group gnus-killed-list)))) ;; Then we remove all bogus groups from the list of killed and ! ;; zombie groups. They are are removed without confirmation. (let ((dead-lists '(gnus-killed-list gnus-zombie-list)) killed) (while dead-lists --- 15977,15983 ---- (gnus-group-change-level entry gnus-level-killed) (setq gnus-killed-list (delete group gnus-killed-list)))) ;; Then we remove all bogus groups from the list of killed and ! ;; zombie groups. They are removed without confirmation. (let ((dead-lists '(gnus-killed-list gnus-zombie-list)) killed) (while dead-lists *************** *** 16002,16007 **** --- 16004,16010 ---- ;; We want to inline a function from gnus-cache, so we cheat here: (eval-when-compile (provide 'gnus) + (setq gnus-directory (or (getenv "SAVEDIR") "~/News/")) (require 'gnus-cache)) (defun gnus-get-unread-articles-in-group (info active &optional update) *************** *** 16276,16282 **** (setq lists (cdr lists))))) (defun gnus-get-killed-groups () ! "Go through the active hashtb and all all unknown groups as killed." ;; First make sure active file has been read. (unless (gnus-read-active-file-p) (let ((gnus-read-active-file t)) --- 16279,16285 ---- (setq lists (cdr lists))))) (defun gnus-get-killed-groups () ! "Go through the active hashtb and mark all unknown groups as killed." ;; First make sure active file has been read. (unless (gnus-read-active-file-p) (let ((gnus-read-active-file t)) *** pub/sgnus/lisp/message.el Wed Jul 3 03:58:00 1996 --- sgnus/lisp/message.el Sun Jul 14 18:12:01 1996 *************** *** 1319,1325 **** (save-excursion (set-buffer tembuf) (erase-buffer) ! (insert-buffer-substring mailbuf) ;; Remove some headers. (save-restriction (message-narrow-to-headers) --- 1319,1326 ---- (save-excursion (set-buffer tembuf) (erase-buffer) ! ;; Avoid copying text props. ! (insert (format "%s" (buffer-string nil nil mailbuf))) ;; Remove some headers. (save-restriction (message-narrow-to-headers) *************** *** 1435,1441 **** (set-buffer tembuf) (buffer-disable-undo (current-buffer)) (erase-buffer) ! (insert-buffer-substring messbuf) ;; Remove some headers. (save-restriction (message-narrow-to-headers) --- 1436,1443 ---- (set-buffer tembuf) (buffer-disable-undo (current-buffer)) (erase-buffer) ! ;; Avoid copying text props. ! (insert (format "%s" (buffer-string nil nil messbuf))) ;; Remove some headers. (save-restriction (message-narrow-to-headers) *************** *** 2294,2301 **** ;; We might have sent this buffer already. Delete it from the ;; list of buffers. (setq message-buffer-list (delq (current-buffer) message-buffer-list)) ! (when (and message-max-buffers ! (>= (length message-buffer-list) message-max-buffers)) ;; Kill the oldest buffer -- unless it has been changed. (let ((buffer (pop message-buffer-list))) (when (and (buffer-name buffer) --- 2296,2303 ---- ;; We might have sent this buffer already. Delete it from the ;; list of buffers. (setq message-buffer-list (delq (current-buffer) message-buffer-list)) ! (while (and message-max-buffers ! (>= (length message-buffer-list) message-max-buffers)) ;; Kill the oldest buffer -- unless it has been changed. (let ((buffer (pop message-buffer-list))) (when (and (buffer-name buffer) *************** *** 2914,2920 **** (if (eq (following-char) (char-after (- (point) 2))) (delete-char -2)))))) ! (fset 'message-exchange-point-and-mark 'exchange-point-and-mark) ;; Support for toolbar (when (string-match "XEmacs\\|Lucid" emacs-version) --- 2916,2922 ---- (if (eq (following-char) (char-after (- (point) 2))) (delete-char -2)))))) ! (defalias 'message-exchange-point-and-mark 'exchange-point-and-mark) ;; Support for toolbar (when (string-match "XEmacs\\|Lucid" emacs-version) *** pub/sgnus/lisp/nnmail.el Thu Jun 27 23:39:37 1996 --- sgnus/lisp/nnmail.el Mon Jul 8 08:42:19 1996 *************** *** 269,277 **** (defvar nnmail-pop-password nil "*Password to use when reading mail from a POP server, if required.") ! (defvar nnmail-split-fancy-syntax-table ! (copy-syntax-table (standard-syntax-table)) "Syntax table used by `nnmail-split-fancy'.") (defvar nnmail-prepare-save-mail-hook nil "Hook called before saving mail.") --- 269,282 ---- (defvar nnmail-pop-password nil "*Password to use when reading mail from a POP server, if required.") ! (defvar nnmail-split-fancy-syntax-table nil "Syntax table used by `nnmail-split-fancy'.") + (unless (syntax-table-p nnmail-split-fancy-syntax-table) + (setq nnmail-split-fancy-syntax-table + (copy-syntax-table (standard-syntax-table))) + ;; support the %-hack + (modify-syntax-entry ?\% "." nnmail-split-fancy-syntax-table)) + (defvar nnmail-prepare-save-mail-hook nil "Hook called before saving mail.") *** pub/sgnus/lisp/nntp.el Thu Jul 4 07:39:17 1996 --- sgnus/lisp/nntp.el Sun Jul 14 19:58:46 1996 *************** *** 99,105 **** (defvoo nntp-rlogin-user-name nil "*User name on remote system when using the rlogin connect method.") ! (defvoo nntp-telnet-parameters '("exec" "telnet" "${NNTPSERVER:=localhost}" "nntp") "*Parameters to `nntp-open-telnet'. That function may be used as `nntp-open-server-function'. In that case, this list will be executed as a command after logging in --- 99,105 ---- (defvoo nntp-rlogin-user-name nil "*User name on remote system when using the rlogin connect method.") ! (defvoo nntp-telnet-parameters '("exec" "telnet" "-8" "${NNTPSERVER:=localhost}" "nntp") "*Parameters to `nntp-open-telnet'. That function may be used as `nntp-open-server-function'. In that case, this list will be executed as a command after logging in *************** *** 120,126 **** (defvoo nntp-end-of-line "\r\n" "String to use on the end of lines when talking to the NNTP server. This is \"\\r\\n\" by default, but should be \"\\n\" when ! using rlogin to communicate with the server.") (defvoo nntp-large-newsgroup 50 "*The number of the articles which indicates a large newsgroup. --- 120,126 ---- (defvoo nntp-end-of-line "\r\n" "String to use on the end of lines when talking to the NNTP server. This is \"\\r\\n\" by default, but should be \"\\n\" when ! using rlogin or telnet to communicate with the server.") (defvoo nntp-large-newsgroup 50 "*The number of the articles which indicates a large newsgroup. *************** *** 733,746 **** (save-excursion ;; Replace `.' at beginning of line with `..'. (goto-char (point-min)) ! (while (search-forward "\n." nil t) (insert ".")) (goto-char (point-max)) ;; Insert newline at end of buffer. (or (bolp) (insert "\n")) ;; Insert `.' at end of buffer (end of text mark). (insert "." nntp-end-of-line))) ;;; ;;; Synchronous Communication with NNTP servers. --- 733,753 ---- (save-excursion ;; Replace `.' at beginning of line with `..'. (goto-char (point-min)) ! (while (re-search-forward "^\\." nil t) (insert ".")) (goto-char (point-max)) ;; Insert newline at end of buffer. (or (bolp) (insert "\n")) + ;(goto-char (point-min)) + ;(while (not (eobp)) + ; (end-of-line) + ; (insert "\r") + ; (forward-line 1)) ;; Insert `.' at end of buffer (end of text mark). + (goto-char (point-max)) (insert "." nntp-end-of-line))) + ;;; ;;; Synchronous Communication with NNTP servers. *************** *** 974,980 **** ;; order to avoid deadlocks. (when (or (null articles) ;All requests have been sent. (zerop (% count nntp-maximum-request))) ! (accept-process-output) ;; On some Emacs versions the preceding function has ;; a tendency to change the buffer. Perhaps. It's ;; quite difficult to reproduce, because it only --- 981,987 ---- ;; order to avoid deadlocks. (when (or (null articles) ;All requests have been sent. (zerop (% count nntp-maximum-request))) ! (accept-process-output nntp-server-process) ;; On some Emacs versions the preceding function has ;; a tendency to change the buffer. Perhaps. It's ;; quite difficult to reproduce, because it only *************** *** 987,993 **** (setq received (1+ received))) (setq last-point (point)) (< received count)) ! (accept-process-output) (set-buffer buf))))) (when nntp-server-xover --- 994,1000 ---- (setq received (1+ received))) (setq last-point (point)) (< received count)) ! (accept-process-output nntp-server-process) (set-buffer buf))))) (when nntp-server-xover *************** *** 1082,1088 **** (defun nntp-open-server-semi-internal (server &optional service) "Open SERVER. If SERVER is nil, use value of environment variable `NNTPSERVER'. ! If SERVICE, this this as the port number." (nnheader-insert "") (let ((server (or server (getenv "NNTPSERVER"))) (status nil) --- 1089,1095 ---- (defun nntp-open-server-semi-internal (server &optional service) "Open SERVER. If SERVER is nil, use value of environment variable `NNTPSERVER'. ! If SERVICE, use this as the port number." (nnheader-insert "") (let ((server (or server (getenv "NNTPSERVER"))) (status nil) *************** *** 1203,1210 **** (let ((buf (current-buffer))) (goto-char (point-min)) (while (not (re-search-forward regexp nil t)) ! (accept-process-output) ! (sit-for 1) (set-buffer buf) (goto-char (point-min))))) --- 1210,1216 ---- (let ((buf (current-buffer))) (goto-char (point-min)) (while (not (re-search-forward regexp nil t)) ! (accept-process-output nntp-server-process) (set-buffer buf) (goto-char (point-min))))) *************** *** 1213,1219 **** (set-buffer nntp-server-buffer) (erase-buffer) (let ((proc (start-process ! "nntpd" nntp-server-buffer "telnet")) (case-fold-search t)) (when (memq (process-status proc) '(open run)) (process-send-string proc "set escape \^X\n") --- 1219,1225 ---- (set-buffer nntp-server-buffer) (erase-buffer) (let ((proc (start-process ! "nntpd" nntp-server-buffer "telnet" "-8")) (case-fold-search t)) (when (memq (process-status proc) '(open run)) (process-send-string proc "set escape \^X\n") *************** *** 1239,1246 **** (beginning-of-line) (delete-region (point-min) (point)) (process-send-string proc "\^]") (process-send-string proc "mode character\n") ! (sit-for 2) (forward-line 1) (delete-region (point) (point-max))) proc))) --- 1245,1255 ---- (beginning-of-line) (delete-region (point-min) (point)) (process-send-string proc "\^]") + (nntp-wait-for-string "^telnet") (process-send-string proc "mode character\n") ! (accept-process-output proc 1) ! (sit-for 1) ! (goto-char (point-min)) (forward-line 1) (delete-region (point) (point-max))) proc))) *** pub/sgnus/lisp/smiley.el Fri Jun 28 23:22:39 1996 --- sgnus/lisp/smiley.el Sun Jul 14 18:40:45 1996 *************** *** 43,59 **** "Location of the smiley faces files.") (defvar smiley-regexp-alist ! '(("\\s-\\(:-*\\]\\)\\W" 1 "FaceGrinning.xpm") ! ("\\s-\\(:-*[oO]\\)\\W" 1 "FaceStartled.xpm") ! ("\\s-\\(:-*[)>]\\)" 1 "FaceHappy.xpm") ! ("\\s-\\(;-*[>)]\\)" 1 "FaceWinking.xpm") ! ("\\s-\\(:-[/\\]\\)" 1 "FaceIronic.xpm") ! ("\\s-\\(:-*|\\)" 1 "FaceStraight.xpm") ! ("\\s-\\(:-*<\\)" 1 "FaceAngry.xpm") ! ("\\s-\\(:-*d\\)\\W" 1 "FaceTasty.xpm") ! ("\\s-\\(:-*[pP]\\)\\W" 1 "FaceYukky.xpm") ! ("\\s-\\(8-*|\\)" 1 "FaceKOed.xpm") ! ("\\s-\\(:-*(\\)" 1 "FaceAngry.xpm")) "A list of regexps to map smilies to real images.") (defvar smiley-flesh-color "yellow" --- 43,63 ---- "Location of the smiley faces files.") (defvar smiley-regexp-alist ! '(("\\(:-*[<«]+\\)\\W" 1 "FaceAngry.xpm") ! ("\\(:-+\\]+\\)\\W" 1 "FaceGoofy.xpm") ! ("\\(:-*D\\)\\W" 1 "FaceGrinning.xpm") ! ("\\(:-*[)>}»]+\\)\\W" 1 "FaceHappy.xpm") ! ("\\(:-*[/\\\"]+\\)\\W" 1 "FaceIronic.xpm") ! ("\\([8|]-*[|Oo%]\\)\\W" 1 "FaceKOed.xpm") ! ("\\([:|]-*#+\\)\\W" 1 "FaceNyah.xpm") ! ("\\(:-*[({]+\\)\\W" 1 "FaceSad.xpm") ! ("\\(:-*[Oo\*]\\)\\W" 1 "FaceStartled.xpm") ! ("\\(:-*|\\)\\W" 1 "FaceStraight.xpm") ! ("\\(:-*p\\)\\W" 1 "FaceTalking.xpm") ! ("\\(:-*d\\)\\W" 1 "FaceTasty.xpm") ! ("\\(;-*[>)}»]+\\)\\W" 1 "FaceWinking.xpm") ! ("\\(:-*[Vvµ]\\)\\W" 1 "FaceWry.xpm") ! ("\\([:|]-*P\\)\\W" 1 "FaceYukky.xpm")) "A list of regexps to map smilies to real images.") (defvar smiley-flesh-color "yellow" *** pub/sgnus/lisp/ChangeLog Sat Jul 6 07:25:57 1996 --- sgnus/lisp/ChangeLog Sun Jul 14 18:44:48 1996 *************** *** 1,3 **** --- 1,57 ---- + Sun Jul 14 18:21:14 1996 Lars Magne Ingebrigtsen + + * gnus-uu.el (gnus-uu-mark-over): Would bug out. + + * smiley.el (smiley-regexp-alist): New definition didn't work. + + Sun Jul 14 16:52:31 1996 Lars Magne Ingebrigtsen + + * gnus.el ((provide 'gnus)): Make sure `gnus-directory' is set + when compiling. + + Sun Jul 14 15:38:21 1996 Lars Magne Ingebrigtsen + + * gnus.el: autoload `gnus-copy-article-buffer'. + + * message.el (message-do-send-housekeeping): Kill a superfluous + buffers. + + * gnus-picon.el (gnus-article-display-picons): Don't bug out on + nil addresses. + + * custom.el ((fboundp 'plist-get)): Removed. + ((fboundp 'add-to-list)): Removed. + + Sun Jul 14 15:30:27 1996 Martin Buchholz + + * gnus.el: Many typo fixes. + + Thu Jul 11 18:06:24 1996 Lars Magne Ingebrigtsen + + * nntp.el (nntp-retrieve-headers-with-xover): + `accept-process-output' from `nntp-server-process'. + + Tue Jul 9 07:51:31 1996 Lars Magne Ingebrigtsen + + * gnus-vis.el (gnus-group-make-menu-bar): Un-randomize. + + Mon Jul 8 09:53:39 1996 Lars Magne Ingebrigtsen + + * gnus.el (gnus-decode-rfc1522): Goto point-min before decoding. + + Mon Jul 8 08:53:50 1996 Nat Makarevitch + + * smiley.el (smiley-regexp-alist): New definition. + + Sun Jul 7 13:33:44 1996 Sudish Joseph + + * nnmail.el (nnmail-split-fancy-syntax-table): `%' should have + punctuation syntax to support the %-hack in addresses. + + Sat Jul 6 08:11:41 1996 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.2.34 is released. + Sat Jul 6 05:46:12 1996 Lars Magne Ingebrigtsen * nnheader.el (nnheader-re-read-dir): Would sometimes bug out. *** pub/sgnus/texi/Makefile Sun Jun 30 22:39:21 1996 --- sgnus/texi/Makefile Sun Jul 14 16:13:46 1996 *************** *** 24,30 **** $(LATEX) refcard.tex clean: ! rm -f gnus.*.bak gnus.ky gnus.cp gnus.fn gnus.cps gnus.kys \ gnus.log gnus.pg gnus.tp gnus.vr gnus.toc gnus.latexi *.aux gnus.cidx \ gnus.cind gnus.ilg gnus.ind gnus.kidx gnus.kind gnus.idx \ gnus.tmptexi gnus.tmplatexi *.latexi texput.log *.orig *.rej --- 24,30 ---- $(LATEX) refcard.tex clean: ! rm -f gnus.*.bak gnus.ky gnus.cp gnus.fn gnus.cps gnus.kys *.log \ gnus.log gnus.pg gnus.tp gnus.vr gnus.toc gnus.latexi *.aux gnus.cidx \ gnus.cind gnus.ilg gnus.ind gnus.kidx gnus.kind gnus.idx \ gnus.tmptexi gnus.tmplatexi *.latexi texput.log *.orig *.rej *** pub/sgnus/texi/gnus.texi Thu Jul 4 06:06:38 1996 --- sgnus/texi/gnus.texi Mon Jul 8 09:15:37 1996 *************** *** 9322,9327 **** --- 9322,9329 ---- like, it would feel kinda silly not to provide this function. Just in case. You never know. Better safe than sorry. Once burnt, twice shy. Don't judge a book by its cover. Never not have sex on a first date. + (I have been told that at least one person, and I quote, ``found this + function indispensable'', however.) @item Head, Body, All These three match keys use the same match types as the @code{From} (etc)