WHAT HAPPENS: ============= The documentation for `highlight-regexp' ( info:emacs#Highlight Interactively]] ) says, "While being prompted for a face use ‘M-n’ and ‘M-p’ to cycle through them." However, repeatedly keying ‘M-n’ will toggle through the entries in `hi-lock-face-defaults' *twice*, and then will start displaying _other items_, presumably from some other history ring, but not necessarily faces. In my case, some of the _other items_ that appear when I ‘M-n’ cycle, were: apropos-variable-button, org-target, bookmark-menu-bookmark, org-agenda-date-today, and ido-incomplete-regexp. Furthermore, if one of those _other items_ is selected, `highlight-regexp' exits, without indicating an error, and without highlighting the requested regexp in *any* face. Furthermore, `highlight-regexp', as an alias for function `hi-lock-face-buffer', hard codes face `hi-yellow' as a default, but that default isn't used when one of those non-face _other items_ are selected. Finally, it seems inconsistent with the emacs spirit of flexibility to have `hi-yellow' be hard-coded as a default in function `hi-lock-face-buffer'. Post-finally, courtesy of the indentation police: in function `hi-lock-read-face-name', the `then` and `else` elements of the function's only `if` form, are out-dented. WHAT I EXPECTED: ================ 1] There are a few ways I expected `M-n` could toggle - either through only the entries in `hi-lock-face-defaults'; through the entries in `hi-lock-face-defaults' plus faces the user had previously entered for hi-lock purposes; or through the entries in `hi-lock-face-defaults' plus faces the user had previously entered for any purpose. It should never *offer* the user an invalid option. Also, it should never accept an entry that isn't a face. 2] If, somehow, something other than a valid face is entered, the user should be notified, and sent back to the prompt, with the same option of `M-n` cycling. 3] If, somehow, something other than a valid face is accepted, the default should be used. 4] The default should not be hard-coded as `hi-yellow`, or as anything else. It should be set to user-definable variable, say `hi-lock-default-face', which could have a default value of `hi-yellow'. 5] Indentation readability / inconsistency quibble. In GNU Emacs 24.4.1 (x86_64-pc-linux-gnu) of 2014-12-09 on gaia, modified by Debian System Description: Debian 7.0 GNU/Linux wheezy/testing Configured using: `configure --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/lib --localstatedir=/var/lib --infodir=/usr/share/info --mandir=/usr/share/man --with-pop=yes --enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.4/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.4/site-lisp:/usr/share/emacs/s\ ite-lisp --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/lib --localstatedir=/var/lib --infodir=/usr/share/info --mandir=/usr/share/man --with-pop=yes --enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.4/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.4/site-lisp:/usr/share/emacs/s\ ite-lisp --with-x=no --without-gconf --without-gsettings 'CFLAGS=-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall' CPPFLAGS=-D_FORTIFY_SOURCE=2 LDFLAGS=-Wl,-z,relro' Important settings: value of $LANG: en_US.utf8 locale-coding-system: utf-8-unix Major mode: IBuffer Minor modes in effect: highlight-current-line-minor-mode: t desktop-save-mode: t savehist-mode: t winner-mode: t global-hi-lock-mode: t hi-lock-mode: t delete-selection-mode: t shell-dirtrack-mode: t tooltip-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 buffer-read-only: t size-indication-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-favicon hides /usr/share/emacs24/site-lisp/w3m/w3m-favicon /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-symbol hides /usr/share/emacs24/site-lisp/w3m/w3m-symbol /home/boruch/.emacs.d/elpa/w3m-20140107.1708/bookmark-w3m hides /usr/share/emacs24/site-lisp/w3m/bookmark-w3m /home/boruch/.emacs.d/elpa/w3m-20140107.1708/mime-w3m hides /usr/share/emacs24/site-lisp/w3m/mime-w3m /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-filter hides /usr/share/emacs24/site-lisp/w3m/w3m-filter /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-ccl hides /usr/share/emacs24/site-lisp/w3m/w3m-ccl /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-namazu hides /usr/share/emacs24/site-lisp/w3m/w3m-namazu /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-ems hides /usr/share/emacs24/site-lisp/w3m/w3m-ems /home/boruch/.emacs.d/elpa/w3m-20140107.1708/octet hides /usr/share/emacs24/site-lisp/w3m/octet /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-bookmark hides /usr/share/emacs24/site-lisp/w3m/w3m-bookmark /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-perldoc hides /usr/share/emacs24/site-lisp/w3m/w3m-perldoc /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-dtree hides /usr/share/emacs24/site-lisp/w3m/w3m-dtree /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-session hides /usr/share/emacs24/site-lisp/w3m/w3m-session /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-mail hides /usr/share/emacs24/site-lisp/w3m/w3m-mail /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-search hides /usr/share/emacs24/site-lisp/w3m/w3m-search /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3mhack hides /usr/share/emacs24/site-lisp/w3m/w3mhack /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-proc hides /usr/share/emacs24/site-lisp/w3m/w3m-proc /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-tabmenu hides /usr/share/emacs24/site-lisp/w3m/w3m-tabmenu /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-rss hides /usr/share/emacs24/site-lisp/w3m/w3m-rss /home/boruch/.emacs.d/elpa/w3m-20140107.1708/mew-w3m hides /usr/share/emacs24/site-lisp/w3m/mew-w3m /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m hides /usr/share/emacs24/site-lisp/w3m/w3m /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m hides /usr/share/emacs24/site-lisp/w3m/w3m /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-image hides /usr/share/emacs24/site-lisp/w3m/w3m-image /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-hist hides /usr/share/emacs24/site-lisp/w3m/w3m-hist /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-lnum hides /usr/share/emacs24/site-lisp/w3m/w3m-lnum /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-form hides /usr/share/emacs24/site-lisp/w3m/w3m-form /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-cookie hides /usr/share/emacs24/site-lisp/w3m/w3m-cookie /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-weather hides /usr/share/emacs24/site-lisp/w3m/w3m-weather /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-bug hides /usr/share/emacs24/site-lisp/w3m/w3m-bug /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-fb hides /usr/share/emacs24/site-lisp/w3m/w3m-fb /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-antenna hides /usr/share/emacs24/site-lisp/w3m/w3m-antenna /home/boruch/.emacs.d/elpa/w3m-20140107.1708/w3m-util hides /usr/share/emacs24/site-lisp/w3m/w3m-util /home/boruch/.emacs.d/elpa/csv-mode-1.2/csv-mode hides /usr/share/emacs24/site-lisp/emacs-goodies-el/csv-mode /usr/share/emacs/24.4/site-lisp/cdargs hides /usr/share/emacs/site-lisp/cdargs /usr/share/emacs/24.4/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup /usr/share/emacs24/site-lisp/flim/md4 hides /usr/share/emacs/24.4/lisp/md4 /usr/share/emacs24/site-lisp/flim/hex-util hides /usr/share/emacs/24.4/lisp/hex-util /usr/share/emacs24/site-lisp/dictionaries-common/flyspell hides /usr/share/emacs/24.4/lisp/textmodes/flyspell /usr/share/emacs24/site-lisp/dictionaries-common/ispell hides /usr/share/emacs/24.4/lisp/textmodes/ispell /usr/share/emacs/site-lisp/rst hides /usr/share/emacs/24.4/lisp/textmodes/rst /usr/share/emacs24/site-lisp/flim/sasl-ntlm hides /usr/share/emacs/24.4/lisp/net/sasl-ntlm /usr/share/emacs24/site-lisp/flim/hmac-def hides /usr/share/emacs/24.4/lisp/net/hmac-def /usr/share/emacs24/site-lisp/flim/hmac-md5 hides /usr/share/emacs/24.4/lisp/net/hmac-md5 /usr/share/emacs24/site-lisp/flim/sasl-cram hides /usr/share/emacs/24.4/lisp/net/sasl-cram /usr/share/emacs24/site-lisp/flim/ntlm hides /usr/share/emacs/24.4/lisp/net/ntlm /usr/share/emacs24/site-lisp/flim/sasl hides /usr/share/emacs/24.4/lisp/net/sasl /usr/share/emacs24/site-lisp/flim/sasl-digest hides /usr/share/emacs/24.4/lisp/net/sasl-digest /usr/share/emacs/24.4/lisp/emacs-lisp/ert-x hides /usr/share/emacs/24.4/site-lisp/slime/lib/ert-x /usr/share/emacs/24.4/lisp/emacs-lisp/cl-lib hides /usr/share/emacs/24.4/site-lisp/slime/lib/cl-lib /usr/share/emacs/24.4/lisp/emacs-lisp/ert hides /usr/share/emacs/24.4/site-lisp/slime/lib/ert Features: (shadow sort mail-extr emacsbug message rfc822 mml mml-sec mm-decode mm-bodies mm-encode mailabbrev ...) Memory information: ((conses 16 459100 69911) (symbols 48 42873 0) (miscs 40 2286 3515) (strings 32 125530 18155) (string-bytes 1 3397524) (vectors 16 43381) (vector-slots 8 1545011 166125) (floats 8 374 644) (intervals 56 10688 1329) (buffers 960 72) (heap 1024 42235 1854)) -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0