From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Thierry Volpiatto Newsgroups: gmane.emacs.bugs Subject: bug#8948: 24.0.50; y-or-n-p doesn't support scroll-o-w like yes-or-no-p Date: Thu, 30 Jun 2011 16:57:40 +0200 Message-ID: <8739irxt7f.fsf@gmail.com> References: <874o3a1s7g.fsf@gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: dough.gmane.org 1309451400 1214 80.91.229.12 (30 Jun 2011 16:30:00 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 30 Jun 2011 16:30:00 +0000 (UTC) To: 8948@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Jun 30 18:29:53 2011 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QcK7l-0002gp-Bu for geb-bug-gnu-emacs@m.gmane.org; Thu, 30 Jun 2011 18:29:53 +0200 Original-Received: from localhost ([::1]:47626 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QcK7j-0000zk-V8 for geb-bug-gnu-emacs@m.gmane.org; Thu, 30 Jun 2011 12:29:52 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:34343) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QcIht-00011O-5V for bug-gnu-emacs@gnu.org; Thu, 30 Jun 2011 10:59:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QcIhq-0006b4-TW for bug-gnu-emacs@gnu.org; Thu, 30 Jun 2011 10:59:04 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:35625) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QcIhq-0006az-Oe for bug-gnu-emacs@gnu.org; Thu, 30 Jun 2011 10:59:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1QcIhp-0003Sk-Pi; Thu, 30 Jun 2011 10:59:01 -0400 X-Loop: help-debbugs@gnu.org In-Reply-To: <874o3a1s7g.fsf@gmail.com> Resent-From: Thierry Volpiatto Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 30 Jun 2011 14:59:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 8948 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.130944589413251 (code B ref -1); Thu, 30 Jun 2011 14:59:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 30 Jun 2011 14:58:14 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QcIh3-0003Rg-2H for submit@debbugs.gnu.org; Thu, 30 Jun 2011 10:58:13 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QcIgz-0003RT-Nw for submit@debbugs.gnu.org; Thu, 30 Jun 2011 10:58:11 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QcIgs-0006UO-8h for submit@debbugs.gnu.org; Thu, 30 Jun 2011 10:58:04 -0400 Original-Received: from lists.gnu.org ([140.186.70.17]:55645) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QcIgs-0006UK-3K for submit@debbugs.gnu.org; Thu, 30 Jun 2011 10:58:02 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:34123) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QcIgp-0000kt-L5 for bug-gnu-emacs@gnu.org; Thu, 30 Jun 2011 10:58:01 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QcIgl-0006Tk-Uh for bug-gnu-emacs@gnu.org; Thu, 30 Jun 2011 10:57:59 -0400 Original-Received: from lo.gmane.org ([80.91.229.12]:52637) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QcIgl-0006Tf-By for bug-gnu-emacs@gnu.org; Thu, 30 Jun 2011 10:57:55 -0400 Original-Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1QcIgk-0006Ny-4S for bug-gnu-emacs@gnu.org; Thu, 30 Jun 2011 16:57:54 +0200 Original-Received: from 43.77.197.77.rev.sfr.net ([77.197.77.43]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 30 Jun 2011 16:57:53 +0200 Original-Received: from thierry.volpiatto by 43.77.197.77.rev.sfr.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 30 Jun 2011 16:57:53 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 270 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: 43.77.197.77.rev.sfr.net User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) Cancel-Lock: sha1:hGlv5OTg+MwQIlRbWao+IV3ifzc= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Thu, 30 Jun 2011 10:59:01 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:47628 Archived-At: Thierry Volpiatto writes: > Hi, > after discussion about bug#8927, i discover that > from a yes-or-no-p i can scroll-other-window, but not from a > y-or-n-p. This allow scrolling from a y-or-n-p: #+BEGIN_SRC lisp (defun y-or-n-p (prompt) "Ask user a \"y or n\" question. Return t if answer is \"y\". PROMPT is the string to display to ask the question. It should end in a space; `y-or-n-p' adds \"(y or n) \" to it. No confirmation of the answer is requested; a single character is enough. Also accepts Space to mean yes, or Delete to mean no. \(Actually, it uses the bindings in `query-replace-map'; see the documentation of that variable for more information. In this case, the useful bindings are `act', `skip', `recenter', and `quit'.\) Under a windowing system a dialog box will be used if `last-nonmenu-event' is nil and `use-dialog-box' is non-nil." ;; ¡Beware! when I tried to edebug this code, Emacs got into a weird state ;; where all the keys were unbound (i.e. it somehow got triggered ;; within read-key, apparently). I had to kill it. (let ((answer 'recenter)) (if (and (display-popup-menus-p) (listp last-nonmenu-event) use-dialog-box) (setq answer (x-popup-dialog t `(,prompt ("yes" . act) ("No" . skip)))) (setq prompt (concat prompt (if (eq ?\s (aref prompt (1- (length prompt)))) "" " ") "(y or n) ")) (while (let* ((key (let ((cursor-in-echo-area t)) (when minibuffer-auto-raise (raise-frame (window-frame (minibuffer-window)))) (read-key (propertize (if (or (eq answer 'recenter) (eq com 'scroll-other-window) (eq com 'scroll-other-window-down)) prompt (concat "Please answer y or n. " prompt)) 'face 'minibuffer-prompt))))) (setq answer (lookup-key query-replace-map (vector key) t)) (setq com (lookup-key global-map (vector key) t)) (cond ((eq com 'scroll-other-window) (with-selected-window (minibuffer-window) (scroll-other-window 1)) t) ((eq com 'scroll-other-window-down) (with-selected-window (minibuffer-window) (scroll-other-window -1)) t) ((memq answer '(skip act)) nil) ((eq answer 'recenter) (recenter) t) ((memq answer '(exit-prefix quit)) (signal 'quit nil) t) (t t))) (ding) (discard-input))) (let ((ret (eq answer 'act))) (unless noninteractive (message "%s %s" prompt (if ret "y" "n"))) ret))) #+END_SRC > > > In GNU Emacs 24.0.50.17 (i686-pc-linux-gnu, GTK+ Version 2.24.4) > of 2011-06-27 on thierry-MM061 > Windowing system distributor `The X.Org Foundation', version 11.0.11001000 > Important settings: > value of $LC_ALL: nil > value of $LC_COLLATE: nil > value of $LC_CTYPE: nil > value of $LC_MESSAGES: nil > value of $LC_MONETARY: nil > value of $LC_NUMERIC: nil > value of $LC_TIME: nil > value of $LANG: fr_FR.utf8 > value of $XMODIFIERS: nil > locale-coding-system: utf-8-unix > default enable-multibyte-characters: t > > Major mode: Emacs-Lisp > > Minor modes in effect: > TeX-PDF-mode: t > eldoc-mode: t > minibuffer-depth-indicate-mode: t > auto-image-file-mode: t > show-paren-mode: t > display-time-mode: t > diff-auto-refine-mode: t > recentf-mode: t > savehist-mode: t > shell-dirtrack-mode: t > tooltip-mode: t > mouse-wheel-mode: t > file-name-shadow-mode: t > global-font-lock-mode: t > font-lock-mode: t > auto-composition-mode: t > auto-encryption-mode: t > auto-compression-mode: t > column-number-mode: t > line-number-mode: t > transient-mark-mode: t > > Recent input: > > > > > > > > > > > > > > > > > > > > > > > > > > > C-c R y e s C-< q C-< C-x C-² m L > > C-u > 2 5 6 > > > > C-SPC C-f C-f C-f C-f C-f C-f C-f C-f > M-w q q y M-x r e p o > > Recent messages: > Fetching headers for gmane.emacs.bugs...done > Scoring...done > Generating summary...done > No more unseen articles > No more unread articles > Mark set > No more unread newsgroups > Are you sure you want to quit reading news? (y or n) y > (No changes need to be saved) > > > Load-path shadows: > None found. > > Features: > (shadow epa-mail emacsbug flow-fill help-mode xmtn-dvc dvc-status > xmtn-conflicts xmtn-ids xmtn-match xmtn-automate xmtn-compat xmtn-run > xmtn-basic-io xmtn-base w3m-cookie w3m-bookmark w3m-tabmenu w3m-session > dabbrev tramp-cache tramp-sh qp align url-cache url-http url-gw url-auth > w3m-form smiley gnus-cite gnus-async gnus-bcklg mail-extr gnus-ml > nndraft nnmh nndoc utf-7 nnimap utf7 nnml nnfolder rot13 netrc > network-stream starttls tls gnus-agent gnus-srvr gnus-score score-mode > nnvirtual gnus-msg nntp gnus-cache gnus-dired gnus-registry registry > eieio-base ert find-func debug view cal-iso preview prv-emacs tex-buf > reftex-vcr reftex-dcr reftex-auc reftex reftex-vars font-latex latex > tex-style tex latexenc vc-git xgit-dvc xgit xgit-annotate dvc-annotate > xgit-log js cc-mode cc-fonts cc-menus cc-cmds cc-styles cc-align > cc-engine cc-vars cc-defs conf-mode sh-script vc-rcs imenu xhg-dvc xhg > xhg-annotate xhg-mq xhg-log bzr-core xdarcs-core xgit-core xhg-core > xmtn-minimal tla smerge-mode newcomment dvc-state dvc-config dvc-diff > dvc-fileinfo diff dvc-cmenu dvc-about dvc-version dvc-revlist uniquify > em-unix em-script em-prompt em-ls em-hist em-pred em-glob em-dirs > em-cmpl em-basic esh-opt em-banner em-alias esh-var esh-io esh-cmd > esh-ext esh-proc esh-groups eshell esh-module esh-mode align-let server > googlecl google-maps google-maps-static google-maps-geocode > google-maps-base json simple-call-tree el-expectations el-mock csv2org > iedit zop-to-char mule-util elscreen smallurl mm-url xml-weather > rectangle-utils tv-utils eldoc-eval eldoc pcvs pcvs-parse pcvs-info > pcvs-defs auto-document autodoc mb-depth ioccur moz cl-info > slime-xref-browser slime-banner slime-tramp slime-asdf slime-fancy > slime-fontifying-fu slime-package-fu slime-references slime-scratch > slime-presentations slime-fuzzy slime-fancy-inspector slime-c-p-c > slime-editing-commands slime-autodoc slime-parse slime-repl slime > hideshow hyperspec slime-autoloads boxquote rect image-file newsticker > newst-treeview newst-plainview newst-reader newst-ticker newst-backend > ledger-config ledger esh-arg esh-util lpr woman man two-column em-term > term ehelp electric esh-toggle em-xtra flymake pdbtrack no-word > regex-tool whitespace paren time dired-tar dired-extension image-dired > yaoddmuse skeleton sgml-mode emms-mplayer-config emms-playlist-limit > emms-volume emms-volume-amixer emms-i18n emms-history emms-score > emms-stream-info emms-metaplaylist-mode emms-bookmarks > emms-lastfm-client parse-time emms-cue emms-mode-line-icon emms-browser > sort emms-playlist-sort emms-last-played emms-player-xine > emms-player-mpd tq emms-playing-time emms-lyrics emms-url hl-line > emms-tag-editor emms-mark emms-mode-line emms-cache emms-info-ogginfo > emms-info-mp3info emms-playlist-mode emms-player-vlc emms-player-mplayer > emms-info emms-streams later-do emms-source-playlist emms-source-file > emms-player-simple emms-setup emms emms-compat winner dvc-init bzr-gnus > tla-gnus xgit-gnus xhg-gnus gnus-art mm-uu mml2015 mm-view mml-smime > smime dig nnir gnus-sum nnoo gnus-group gnus-undo nnmail mail-source > gnus-start gnus-spec gnus-int gnus-range gnus-win gnus gnus-ems nnheader > dvc-gnus tla-core tla-autoconf tla-defs dvc-log vc vc-dispatcher > dvc-unified dvc-tips dired-x ediff-merg ediff-diff ediff-wind ediff-help > ediff-util ediff-mult ediff-init ediff dvc-autoloads dvc-core dvc-lisp > dvc-buffers dvc-ui dvc-register dvc-utils dvc-emacs ewoc dvc-defs > dvc-site psvn log-edit pcvs-util add-log diff-mode htmlize-hack htmlize > muse-colors muse-docbook muse-texinfo texnfo-upd texinfo muse-latex > muse-html muse-xml-common muse-wiki cus-edit cus-start cus-load > muse-publish muse-project muse-protocols muse-regexps muse > muse-nested-tags muse-mode muse-autoloads org-config-thierry org-crypt > cal-china lunar solar cal-dst cal-bahai cal-islam cal-hebrew holidays > hol-loaddefs vc-hg org-wl org-w3m org-vm org-rmail org-mhe org-mew > org-irc org-jsinfo org-infojs org-html org-exp ob-exp org-exp-blocks > org-info org-gnus org-docview org-bibtex org-bbdb org-agenda appt > diary-lib diary-loaddefs org-annotation-helper org-capture org-mks > remember org-remember org-datetree config-w3m mime-w3m w3m doc-view > jka-compr image-mode timezone w3m-hist w3m-fb w3m-ems w3m-ccl ccl > w3m-favicon w3m-image w3m-proc w3m-util mime eword-decode mel path-util > mime-parse std11 luna mime-def alist mcharset mcs-20 mcs-e20 pces > pces-e20 pces-20 broken pcustom poe pym static apel-ver product w3m-load > addressbook-bookmark message sendmail rfc822 mml mml-sec mm-decode > mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums > mailabbrev mail-utils gmm-utils mailheader firefox-protocol > bookmark-uzbl-handler bookmark-firefox-handler url url-proxy url-privacy > url-expand url-methods url-history url-cookie url-util url-parse > url-vars mailcap bookmark-extensions org ob-emacs-lisp ob-tangle ob-ref > ob-lob ob-table org-footnote org-src ob-comint ob-keys ob ob-eval > org-complete org-list org-faces org-compat org-entities org-macs > noutline outline cal-menu calendar cal-loaddefs bookmark pp recentf > tree-widget wid-edit savehist init-anything-thierry descbinds-anything > anything-ipython ipython python-mode info-look ansi-color executable > shell pcomplete shell-history anything-complete anything-show-completion > anything-obsolete anything-match-plugin anything-delicious xml > anything-mercurial anything-config browse-url rx grep compile comint > ring tramp tramp-compat format-spec tramp-loaddefs dired-aux ffap > thingatpt anything warnings epa-file epa derived epg epg-config > auth-source eieio byte-opt bytecomp byte-compile cconv macroexp assoc > gnus-util time-date mm-util mail-prsvr password-cache dired regexp-opt > usage-memo punycode idna naquadah-theme eev-thierry edmacro kmacro > iterator eev-all eev-mini-steps eev-browse-url eev-langs eev-compose > eev-glyphs disp-table eev-insert eev-steps eev-bounded eev easy-mmode > advice help-fns advice-preload w3m-wget preview-latex tex-site > auto-loads info easymenu cl tooltip ediff-hook vc-hooks lisp-float-type > mwheel x-win x-dnd tool-bar dnd fontset image fringe lisp-mode register > page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock > font-lock syntax facemenu font-core frame cham georgian utf-8-lang > misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew > greek romanian slovak czech european ethiopic indian cyrillic chinese > case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs > button faces cus-face files text-properties overlay sha1 md5 base64 > format env code-pages mule custom widget hashtable-print-readable > backquote make-network-process dbusbind dynamic-setting > font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs) -- A+ Thierry Get my Gnupg key: gpg --keyserver pgp.mit.edu --recv-keys 59F29997