*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 20:13:59 +0000 (20:13 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 20:13:59 +0000 (20:13 +0000)
17 files changed:
lisp/ChangeLog
lisp/custom.el
lisp/gnus-cache.el
lisp/gnus-cus.el
lisp/gnus-edit.el
lisp/gnus-gl.el
lisp/gnus-picon.el
lisp/gnus-score.el
lisp/gnus-uu.el
lisp/gnus-vis.el
lisp/gnus.el
lisp/message.el
lisp/nnmail.el
lisp/nntp.el
lisp/smiley.el
texi/Makefile
texi/gnus.texi

index df90c83..bb6b18c 100644 (file)
@@ -1,3 +1,57 @@
+Sun Jul 14 18:21:14 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * 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  <larsi@hler.ifi.uio.no>
+
+       * gnus.el ((provide 'gnus)): Make sure `gnus-directory' is set
+       when compiling.
+
+Sun Jul 14 15:38:21 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * 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  <mrb@eng.sun.com>
+
+       * gnus.el: Many typo fixes.
+
+Thu Jul 11 18:06:24 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * nntp.el (nntp-retrieve-headers-with-xover):
+       `accept-process-output' from `nntp-server-process'.
+
+Tue Jul  9 07:51:31 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
+
+       * gnus-vis.el (gnus-group-make-menu-bar): Un-randomize.
+
+Mon Jul  8 09:53:39 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
+
+       * gnus.el (gnus-decode-rfc1522): Goto point-min before decoding. 
+
+Mon Jul  8 08:53:50 1996  Nat Makarevitch  <nat@nataa.fr.eu.org>
+
+       * smiley.el (smiley-regexp-alist): New definition.
+
+Sun Jul  7 13:33:44 1996  Sudish Joseph  <sudish@mindspring.com>
+
+       * 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  <larsi@ylfing.ifi.uio.no>
+
+       * gnus.el: Gnus v5.2.34 is released.
+
 Sat Jul  6 05:46:12 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
 
        * nnheader.el (nnheader-re-read-dir): Would sometimes bug out.
index 910ef02..32db9c7 100644 (file)
     (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)
index 24b38c6..cb770a8 100644 (file)
@@ -71,7 +71,10 @@ variable to \"^nnml\".")
                 (not (eq gnus-use-cache 'passive))))
     (gnus-cache-read-active)))
 
-(gnus-add-shutdown 'gnus-cache-close 'gnus)
+(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."
index eb19005..8194ce4 100644 (file)
@@ -335,7 +335,7 @@ should contain the name of the header.  The field actually contains a
 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
+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.  
index 4ac5e67..0002642 100644 (file)
@@ -35,7 +35,7 @@ load it.  When done editing, push the [Save] button to save the file.
 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
+`gnus-score-find-score-files-function', and explicitly by the
 `Files' and `Exclude Files' entries.") 
           (compact . t)
           (type . group)
@@ -53,7 +53,7 @@ the score file and the value of the global variable
          ((name . files)
           (tag . "Files")
           (doc . "\
-List of score files to load when the the current score file is loaded.
+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,7 +66,7 @@ delete a score file from the list.")
          ((name . exclude-files)
           (tag . "Exclude Files")
           (doc . "\
-List of score files to exclude when the the current score file is loaded.
+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,7 +138,7 @@ entry.  To make the entry expirable, choose instead the `Integer'
 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.
+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,7 +292,7 @@ rules (overwriting `gnus-default-adaptive-score-alist').")
                  (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
+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
index 54997d2..dab62f7 100644 (file)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (defvar gnus-summary-grouplens-line-format
-  "%U%R%z%l%I%(%[%4L: %-20,20n%]%) %s\n"
+  "%U\%R\%z%l%I\%(%[%4L: %-20,20n%]%) %s\n"
   "*The line format spec in summary GroupLens mode buffers.")
 
 (defvar grouplens-pseudonym ""
index 7c3f2a7..f58452c 100644 (file)
@@ -211,8 +211,9 @@ To use:  (setq gnus-article-x-face-command 'gnus-picons-display-x-face)"
     (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)))
+              (setq from (downcase (or (cadr (mail-extract-address-components
+                                              from))
+                                       ""))
                     at-idx (string-match "@" from)))
       (save-excursion
        (let ((username (substring from 0 at-idx))
index 523fa13..b65b279 100644 (file)
@@ -392,7 +392,7 @@ used as score."
            (if mimic (error "%c %c" prefix hchar) (error "")))
 
          (when (/= (downcase tchar) tchar)
-           ;; It was a majuscle, so we end reading and the the default.
+           ;; 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)))
index bd23e9e..742d6c4 100644 (file)
@@ -563,7 +563,7 @@ The headers will be included in the sequence they are matched.")
        (data gnus-newsgroup-data))
     (save-excursion
       (while data
-       (when (> (or (cdr (assq (gnus-data-number (caar data))
+       (when (> (or (cdr (assq (gnus-data-number (car data))
                                gnus-newsgroup-scored))
                     gnus-summary-default-score 0)
                 score)
@@ -1092,7 +1092,7 @@ The headers will be included in the sequence they are matched.")
 ;;   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
+;; `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,7 +1584,7 @@ The headers will be included in the sequence they are matched.")
 
 ;; Kills the temporary uu buffers, kills any processes, etc.
 (defun gnus-uu-clean-up ()
-  (let (buf pst)
+  (let (buf)
     (and gnus-uu-uudecode-process
         (memq (process-status (or gnus-uu-uudecode-process "nevair"))
               '(stop run))
index 3bde9f9..d96abf6 100644 (file)
@@ -380,7 +380,7 @@ HEADER is a regexp to match a header.  For a fuller explanation, see
         ["Execute command" gnus-group-universal-argument
          (or gnus-group-marked (gnus-group-group-name))])
        ("Subscribe"
-        ["Subscribe to random group" gnus-group-unsubscribe-group t]
+        ["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]
index 1c5bf70..787e19c 100644 (file)
@@ -1113,7 +1113,7 @@ list of parameters to that command.")
 (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"
+(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,7 +1161,7 @@ Also note that if you change the format specification to include any
 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"
+(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,7 +1250,7 @@ with some simple extensions:
   "*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}"
+(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,7 +1276,7 @@ with some simple extensions:
     ("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
+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,7 +1771,7 @@ variable (string, integer, character, etc).")
   "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
   "The mail address of the Gnus maintainers.")
 
-(defconst gnus-version-number "5.2.34"
+(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,7 +2127,8 @@ Thank you for your help in stamping out bugs.
       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-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,7 +6669,7 @@ If N is negative, this group and the N-1 previous groups will be checked."
     (goto-char (point-min))
     (gnus-group-position-point)))
 
-;; Suggested by by Daniel Quinlan <quinlan@best.com>.
+;; Suggested by Daniel Quinlan <quinlan@best.com>.
 (defun gnus-group-apropos (regexp &optional search-description)
   "List all newsgroups that have names that match a regexp."
   (interactive "sGnus apropos (regexp): ")
@@ -8318,8 +8319,8 @@ If NO-DISPLAY, don't generate a summary buffer."
       (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
+           ;; 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,6 +14280,7 @@ always hide."
        (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,7 +15977,7 @@ newsgroup."
          (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.
+      ;; zombie groups.  They are removed without confirmation.
       (let ((dead-lists '(gnus-killed-list gnus-zombie-list))
            killed)
        (while dead-lists
@@ -16002,6 +16004,7 @@ newsgroup."
 ;; 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,7 +16279,7 @@ Returns whether the updating was successful."
       (setq lists (cdr lists)))))
 
 (defun gnus-get-killed-groups ()
-  "Go through the active hashtb and all all unknown groups as killed."
+  "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))
index 8c12673..e72ec49 100644 (file)
@@ -1319,7 +1319,8 @@ the user from the mailer."
        (save-excursion
          (set-buffer tembuf)
          (erase-buffer)
-         (insert-buffer-substring mailbuf)
+         ;; Avoid copying text props.
+         (insert (format "%s" (buffer-string nil nil mailbuf)))
          ;; Remove some headers.
          (save-restriction
            (message-narrow-to-headers)
@@ -1435,7 +1436,8 @@ the user from the mailer."
            (set-buffer tembuf)
            (buffer-disable-undo (current-buffer))
            (erase-buffer) 
-           (insert-buffer-substring messbuf)
+           ;; Avoid copying text props.
+           (insert (format "%s" (buffer-string nil nil messbuf)))
            ;; Remove some headers.
            (save-restriction
              (message-narrow-to-headers)
@@ -2294,8 +2296,8 @@ Headers already prepared in the buffer are not modified."
   ;; 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))
+  (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,7 +2916,7 @@ which specify the range to operate on."
        (if (eq (following-char) (char-after (- (point) 2)))
           (delete-char -2))))))
 
-(fset 'message-exchange-point-and-mark 'exchange-point-and-mark)
+(defalias 'message-exchange-point-and-mark 'exchange-point-and-mark)
 
 ;; Support for toolbar
 (when (string-match "XEmacs\\|Lucid" emacs-version)
index d108d59..c5bafb9 100644 (file)
@@ -269,9 +269,14 @@ parameter.  It should return nil, `warn' or `delete'.")
 (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))
+(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.")
index 616583c..07f49fe 100644 (file)
@@ -99,7 +99,7 @@ case, this list will be used as the parameter list given to rsh.")
 (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")
+(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,7 +120,7 @@ via telnet.")
 (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.")
+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,14 +733,21 @@ It will prompt for a password."
   (save-excursion
     ;; Replace `.' at beginning of line with `..'.
     (goto-char (point-min))
-    (while (search-forward "\n." nil t)
+    (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)))
 
+
 \f
 ;;;
 ;;; Synchronous Communication with NNTP servers.
@@ -974,7 +981,7 @@ It will prompt for a password."
          ;; order to avoid deadlocks.
          (when (or (null articles)     ;All requests have been sent.
                    (zerop (% count nntp-maximum-request)))
-           (accept-process-output)
+           (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,7 +994,7 @@ It will prompt for a password."
                       (setq received (1+ received)))
                     (setq last-point (point))
                     (< received count))
-             (accept-process-output)
+             (accept-process-output nntp-server-process)
              (set-buffer buf)))))
 
       (when nntp-server-xover
@@ -1082,7 +1089,7 @@ It will prompt for a password."
 (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."
+If SERVICE, use this as the port number."
   (nnheader-insert "")
   (let ((server (or server (getenv "NNTPSERVER")))
        (status nil)
@@ -1203,8 +1210,7 @@ If SERVICE, this this as the port number."
   (let ((buf (current-buffer)))
     (goto-char (point-min))
     (while (not (re-search-forward regexp nil t))
-      (accept-process-output)
-      (sit-for 1)
+      (accept-process-output nntp-server-process)
       (set-buffer buf)
       (goto-char (point-min)))))
 
@@ -1213,7 +1219,7 @@ If SERVICE, this this as the port number."
     (set-buffer nntp-server-buffer)
     (erase-buffer)
     (let ((proc (start-process
-                "nntpd" nntp-server-buffer "telnet"))
+                "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,8 +1245,11 @@ If SERVICE, this this as the port number."
        (beginning-of-line)
        (delete-region (point-min) (point))
        (process-send-string proc "\^]")
+       (nntp-wait-for-string "^telnet")
        (process-send-string proc "mode character\n")
-       (sit-for 2)
+       (accept-process-output proc 1)
+       (sit-for 1)
+       (goto-char (point-min))
        (forward-line 1)
        (delete-region (point) (point-max)))
       proc)))
index 4d11d91..233961d 100644 (file)
   "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"))
+  '(("\\(:-*[<«]+\\)\\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"
index bdd164b..f511309 100644 (file)
@@ -24,7 +24,7 @@ refcard.dvi: refcard.tex
        $(LATEX) refcard.tex
 
 clean:
-       rm -f gnus.*.bak gnus.ky gnus.cp gnus.fn gnus.cps gnus.kys \
+       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
index 8948f16..97f056c 100644 (file)
@@ -9322,6 +9322,8 @@ and @code{after}.  I can't really imagine this ever being useful, but,
 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)