Package: emacs;
Reported by: Eli Zaretskii <eliz <at> gnu.org>
Date: Wed, 3 Feb 2016 16:34:02 UTC
Severity: normal
Found in version 25.0.90
Done: Juri Linkov <juri <at> linkov.net>
Bug is archived. No further changes may be made.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: bug-gnu-emacs <at> gnu.org Subject: 25.0.90; Long history items cause surprising positioning of cursor in minibuffer Date: Wed, 03 Feb 2016 18:32:58 +0200
emacs -Q Paste the following into *scratch* and evaluate it with "C-x C-e" after the closing parenthesis: (let ((default-file "~/rmail/FOO") (file-name-history '("~/rmail/FOOBAR" "~/foo/bar/very/long/file/name/that/overflows/minibuffer/window/line/when/displayed" "~/shorter/file/name"))) (read-file-name (concat "Output message to mail file (default " (file-name-nondirectory default-file) "): ") (file-name-directory default-file) (abbreviate-file-name default-file))) You should now see this in the minibuffer: Output message to mail file (default FOO): ~/rmail/! where ! shows the cursor position. Now press <UP> once. The result is as expected: Output message to mail file (default FOO): ~/rmail/FOOBAR! with the cursor at the end of the history item. Press <UP> one more time, which results in this: Output message to mail file (default FOO): ~/foo/bar/very/long/file/name/that/overflows/minibuffer/window/line/when/displayed! Still as expected. Press <UP> once more, resulting in: Output message to mail file (default FOO): ~/foo/ba!r/very/long/file/name/that/overflows/minibuffer/window/line/when/displayed This is somewhat unexpected, because the column of the cursor looks random -- it is neither the same as in previous display, nor related to anything else I can think of. Now press <UP> one more time, and observe this result: Output message to mail file (default FOO): ~/shorte!r/file/name This is even less expected -- why isn't the cursor at the end of the file name, even though it is short enough to display entirely on a single screen line? If the longish history item is removed before evaluating the above, then the behavior is as expected -- Emacs places the cursor at the end of each history item. Clearly, the bug is not a catastrophe, but it's quite annoying to see the cursor jump to these unexpected positions. The test case is synthesized, but it faithfully emulates what happens to me every time I use 'o' in Rmail to file a message in my archives. The archive folders are just mbox files, so the 'o' command in Rmail uses file-name-history, where I have long file names as well as short ones. In GNU Emacs 25.0.90.2 (i686-pc-mingw32) of 2016-01-31 built on HOME-C4E4A596F7 Windowing system distributor 'Microsoft Corp.', version 5.1.2600 Configured using: 'configure --prefix=/d/usr --enable-checking=yes,glyphs --with-wide-int --with-modules 'CFLAGS=-Og -gdwarf-4 -g3'' Configured features: XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS MODULES Important settings: value of $LANG: ENU locale-coding-system: cp1255 Major mode: RMAIL Minor modes in effect: shell-dirtrack-mode: t diff-auto-refine-mode: t desktop-save-mode: t save-place-mode: t show-paren-mode: t display-time-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t temp-buffer-resize-mode: t buffer-read-only: t line-number-mode: t Recent messages: Showing message 2138...done Showing message 2139...done Added to d:/usr/eli/rmail/GIT.rmail Showing message 2140...done Showing message 2141...done Showing message 2142...done Showing message 2143...done No following nondeleted message command-execute: Command attempted to use minibuffer while in minibuffer Mark set Load-path shadows: d:/usr/share/emacs/site-lisp/soap-inspect hides d:/usr/share/emacs/25.0.90/lisp/net/soap-inspect d:/usr/share/emacs/site-lisp/soap-client hides d:/usr/share/emacs/25.0.90/lisp/net/soap-client Features: (shadow emacsbug ruby-mode smie shell character-fold misearch multi-isearch rmailout url-util url-parse url-vars rfc2104 network-stream nsm starttls tls gnutls mail-extr smtpmail auth-source eieio eieio-core cl-macs password-cache dabbrev mailalias sendmail shr-color color shr dom subr-x browse-url cl-seq conf-mode arc-mode archive-mode vc-bzr org-element org-rmail org-mhe org-irc org-info org-gnus org-docview doc-view image-mode org-bibtex bibtex org-bbdb org-w3m org advice org-macro org-footnote org-pcomplete pcomplete org-list org-faces org-entities org-version ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table ob-exp org-src ob-keys ob-comint comint ansi-color ring ob-core ob-eval org-compat org-macs org-loaddefs find-func cal-menu calendar cal-loaddefs bat-mode make-mode parse-time vc-cvs generic vc-svn texinfo jka-compr noutline outline bug-reference flyspell add-log info vc vc-dispatcher vc-git diff-mode easy-mmode map seq byte-opt gv bytecomp byte-compile cconv cl-extra qp rmailsum rmailmm message dired-x dired format-spec rfc822 mml mml-sec epg epg-config gnus-util mm-decode mm-bodies mm-encode mailabbrev gmm-utils mailheader mail-parse rfc2231 rmail rfc2047 rfc2045 ietf-drums mm-util help-fns help-mode mail-prsvr mail-utils desktop frameset server filecache mairix cus-edit cus-start cus-load wid-edit saveplace midnight ispell generic-x cc-mode cc-fonts easymenu cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs cl-loaddefs pcase cl-lib paren battery time time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel dos-w32 ls-lisp disp-table w32-win w32-vars term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote w32notify w32 multi-tty make-network-process emacs) Memory information: ((conses 16 1683542 243444) (symbols 56 41206 0) (miscs 48 3561 4743) (strings 16 113909 44473) (string-bytes 1 3147922) (vectors 16 41851) (vector-slots 8 1701426 256664) (floats 8 497 588) (intervals 40 326308 7211) (buffers 856 218))
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.