;;; nnheaderxm.el --- making Gnus backends work under XEmacs
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003
;; Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Katsumi Yamaoka <yamaoka@jpl.org>
;; Keywords: news
;; This file is part of GNU Emacs.
;;; Code:
-(defun nnheader-xmas-run-at-time (time repeat function &rest args)
- (start-itimer
- "nnheader-run-at-time"
- `(lambda ()
- (,function ,@args))
- time repeat))
+(require 'timer-funcs)
-(defalias 'nnheader-run-at-time 'nnheader-xmas-run-at-time)
(defalias 'nnheader-cancel-timer 'delete-itimer)
-(defalias 'nnheader-cancel-function-timers 'ignore)
(defalias 'nnheader-string-as-multibyte 'identity)
+(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))))
+
+(defalias 'nnheader-Y-or-n-p 'nnheader-xmas-Y-or-n-p)
+
(provide 'nnheaderxm)
-;;; nnheaderxm.el ends here.
+;;; nnheaderxm.el ends here