+1998-10-16 Keiichi Suzuki <kei-suzu@mail.wbs.ne.jp>
+
+ * lisp/gnus.el (gnus-version-number): Change to 6.8.19.5.
+
+ * Sync up with Semi-gnus 6.8.19
+
1998-10-15 Keiichi Suzuki <kei-suzu@mail.wbs.ne.jp>
* lisp/gnus.el (gnus-version-number): Change to 6.8.19.4.
update `gnus-format-specs' when `gnus-version' is differ from
saved version.
+1998-10-14 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * lisp/pop3-fma.el (pop3-fma-read-char-exclusive): New macro. Use
+ `next-command-event' instead of `read-char-exclusive' under XEmacs.
+ (pop3-fma-read-noecho): Use it.
+
+1998-10-13 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * lisp/nnheaderxm.el (nnheader-xmas-Y-or-n-p): New function.
+ It will be used for the substitute of `nnheader-Y-or-n-p' under
+ XEmacs.
+
+ * lisp/nnheader.el (nnheader-Y-or-n-p): Rewrite for Emacs 19 or
+ later except for XEmacs.
+
1998-10-08 Keiichi Suzuki <kei-suzu@mail.wbs.ne.jp>
* Sync up with Semi-gnus 6.8.19
(defconst gnus-product-name "Nana-gnus"
"Product name of this version of gnus.")
-(defconst gnus-version-number "6.8.19.4"
+(defconst gnus-version-number "6.8.19.5"
"Version number for this version of gnus.")
(defconst gnus-version
(defun nnheader-Y-or-n-p (prompt)
"Ask user a \"Y/n\" question. Return t if answer is neither \"n\", \"N\" nor \"C-g\"."
- (if (and (featurep 'xemacs) (should-use-dialog-box-p))
- (yes-or-no-p-dialog-box prompt)
- (let ((cursor-in-echo-area t)
- (echo-keystrokes 0)
- (log-message-max-size 0)
- (inhibit-quit t)
- message-log-max ans)
+ (let ((cursor-in-echo-area t)
+ (echo-keystrokes 0)
+ (inhibit-quit t)
+ ans)
+ (let (message-log-max)
(while (not (memq ans '(?\ ?N ?Y ?\C-g ?\e ?\n ?\r ?n ?y)))
(message "%s(Y/n) " prompt)
- (setq ans (read-char-exclusive)))
- (not (memq ans '(?\C-g ?N ?n))))))
+ (setq ans (read-char-exclusive))))
+ (if (memq ans '(?\C-g ?N ?n))
+ (progn
+ (message "%s(Y/n) No" prompt)
+ nil)
+ (message "%s(Y/n) Yes" prompt)
+ t)))
(when (string-match "XEmacs\\|Lucid" emacs-version)
(require 'nnheaderxm))
(,function ,@args))
time repeat))
+(defun nnheader-xmas-Y-or-n-p (prompt)
+ "Ask user a \"Y/n\" question. Return t if answer is neither \"n\", \"N\" nor \"C-g\"."
+ (if (should-use-dialog-box-p)
+ (yes-or-no-p-dialog-box prompt)
+ (let ((cursor-in-echo-area t)
+ (echo-keystrokes 0)
+ (inhibit-quit t)
+ event)
+ (message "%s(Y/n) " prompt)
+ (while (or (not (key-press-event-p (setq event (next-command-event))))
+ (not (or (eq (event-key event) 'escape)
+ (memq (event-to-character event)
+ '(?\ ?N ?Y ?\C-g ?\e ?\n ?\r ?n ?y))))))
+ (if (memq (event-key event) '(?\C-g ?N ?n))
+ (progn
+ (message "%s(Y/n) No" prompt)
+ nil)
+ (message "%s(Y/n) Yes" prompt)
+ t))))
+
(fset 'nnheader-run-at-time 'nnheader-xmas-run-at-time)
(fset 'nnheader-cancel-timer 'delete-itimer)
(fset 'nnheader-cancel-function-timers 'ignore)
+(fset 'nnheader-Y-or-n-p 'nnheader-xmas-Y-or-n-p)
(provide 'nnheaderxm)
(car spool))
pop3-fma-spool-file-alist))))
;;
+(defmacro pop3-fma-read-char-exclusive ()
+ (cond ((featurep 'xemacs)
+ '(let ((table (quote ((backspace . ?\C-h) (delete . ?\C-?)
+ (left . ?\C-h))))
+ event key)
+ (while (not
+ (and
+ (key-press-event-p (setq event (next-command-event)))
+ (setq key (or (event-to-character event)
+ (cdr (assq (event-key event) table)))))))
+ key))
+ ((fboundp 'read-char-exclusive)
+ '(read-char-exclusive))
+ (t
+ '(read-char))))
+;;
(defun pop3-fma-read-noecho (prompt &optional stars)
"Read a single line of text from user without echoing, and return it.
Argument PROMPT ."
(and (> truncate 0)
(setq msg (concat "$" (substring msg (1+ truncate))))))
(message msg)
- (setq c (read-char-exclusive))
- (cond ((= c ?\C-g)
+ (setq c (pop3-fma-read-char-exclusive))
+ (cond ((eq ?\C-g c)
(setq quit-flag t
done t))
- ((or (= c ?\r) (= c ?\n) (= c ?\e))
+ ((memq c '(?\r ?\n ?\e))
(setq done t))
- ((= c ?\C-u)
+ ((eq ?\C-u c)
(setq ans ""))
- ((and (/= c ?\b) (/= c ?\177))
+ ((and (/= ?\b c) (/= ?\177 c))
(setq ans (concat ans (char-to-string c))))
((> (length ans) 0)
(setq ans (substring ans 0 -1)))))