Subject: [Uwe Brauer] global-key-prefix in GNU emacs 25

From: John Wiegley <[email-masked]>
Date: Wed, 09 Dec 2015 11:59:53 -0800

Registering this request as a tracked bug.

Subject: global-key-prefix in GNU emacs 25
From: Uwe Brauer <[email-masked]>
To: [email-masked]
Date: Wed, 09 Dec 2015 17:43:37 +0000
List-Id: "Emacs development discussions." <emacs-devel.gnu.org>

Hello

I just try out ahg.el a package for mercurial found in ELPA.

Now it seems not to work in GNU emacs 25, I wrote the author and the
problem seems to be this setting:

(defcustom ahg-global-key-prefix "^Chg"
  "Prefix of globally-available aHg commands."
  :group 'ahg :type 'string
  :set (function (lambda (symbol value)
                   (when (boundp symbol) (global-unset-key (eval symbol)))
                   (global-set-key (set symbol value) ahg-global-map))))

This gives an error, I attach it just in case.

So how should a global-key-prefix be set in Emacs 25?

Thanks

Uwe Brauer

Debugger entered--Lisp error: (error "Key sequence C-c h g starts with non-prefix key C-c h")
  define-key((keymap #^[nil nil keymap 
#^^[3 0 set-mark-command move-beginning-of-line backward-char mode-specific-command-prefix delete-char move-end-of-line forward-char keyboard-quit help-command indent-for-tab-command my-toggle-justify-or-fill kill-line recenter-top-bottom newline next-line open-line previous-line quoted-insert isearch-backward isearch-forward transpose-chars universal-argument scroll-up-command kill-region Control-X-prefix yank suspend-frame ESC-prefix dabbrev-expand abort-recursive-edit nil undo self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command match-paren self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command ...] #^^[1 0 #^^[2 0 
#^^[3 0 set-mark-command move-beginning-of-line backward-char mode-specific-command-prefix delete-char move-end-of-line forward-char keyboard-quit help-command indent-for-tab-command my-toggle-justify-or-fill kill-line recenter-top-bottom newline next-line open-line previous-line quoted-insert isearch-backward isearch-forward transpose-chars universal-argument scroll-up-command kill-region Control-X-prefix yank suspend-frame ESC-prefix dabbrev-expand abort-recursive-edit nil undo self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command match-paren self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command ...] self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command] self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command] self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command self-insert-command ...] (S-mouse-3 . kmacro-end-call-mouse) (remap keymap (find-file-other-window) (find-file)) (16777315 . my-insert-coding-string) (16777321 . my-toggle-ispell-or-aspell) (pause . bbdb) (C-print . bookmark-bmenu-list) (print . flyspell-auto-correct-word) (C-M-next . my-comment-mail) (C-M-prior . byte-compile-and-load-file) (8388654 . my-insert-guillemotright) (8388652 . my-insert-guillemotleft) (s-down . my-downcase-abbrev) (s-up . edit-abbrevs) (M-up . folding-comment-fold) (M-down . folding-fold-region) (M-delete . ediff-regions-wordwise) (C-M-delete . ediff-files) (67108924 . mark-beginning-of-buffer) (67108926 . mark-end-of-buffer) (8388707 . org-capture) (8388716 . vc-ask-login-or-not) (8388713 . vc-register) (8388724 . vc-create-tag) (16777334 . vc-print-root-log) (8388726 . vc-print-log) (8388711 . vc-annotate) (C-button1 . flyspell-correct-word) (S-button1 . modeline-buffers-menu) (8388730 . my-insert-comment-counter) (8388727 . mark-word) (8388725 . vc-update-change-log) (8388723 . mark-end-of-sentence) (8388712 . my-hebrew-line) (16777316 . vc-dir) (8388722 . vc-rcs-remove-version) (16777330 . reverse-region) (8388721 . fill-paragraph) (8388720 . mark-end-of-paragraph) (8388719 . my-insert-euro) (8388718 . counter) (8388717 . my-merge-mail-alias) (8388715 . my-toggle-vc-check-in-or-not-kill) (8388714 . session-jump-to-last-change) (8388710 . my-feedmail-queue-message) (8388709 . recursive-edit) (8388708 . edebug-defun) (8388706 . bbdb) (8388705 . bbdb-create) ...) "hg" (keymap (81 keymap (101 . ahg-mq-edit-series) (108 . ahg-mq-list-patches) (102 . ahg-mq-convert-patch-to-changeset) (100 . ahg-qdelete) (116 . ahg-qtop) (112 . ahg-qpop-all) (97 . ahg-qapply) (115 . ahg-qswitch) (109 . ahg-qmove) (103 . ahg-qgoto) (114 . ahg-qrefresh) (61 . ahg-qdiff) (110 . ahg-qnew)) (12 . ahg-log-cur-file) (102 . ahg-manifest-grep) (82 . ahg-rm-cur-file) (114 . ahg-revert-cur-file) (97 . ahg-annotate-cur-file) (101 . ahg-diff-ediff-cur-file) (61 . ahg-diff-cur-file) (99 . ahg-commit-cur-file) (104 . ahg-command-help) (33 . ahg-do-command) (66 . ahg-bookmarks) (84 . ahg-tags) (72 . ahg-heads) (103 . ahg-glog) (71 . ahg-glog) (76 . ahg-log) (108 . ahg-short-log) (115 . ahg-status)))
  global-set-key("hg" (keymap (81 keymap (101 . ahg-mq-edit-series) (108 . ahg-mq-list-patches) (102 . ahg-mq-convert-patch-to-changeset) (100 . ahg-qdelete) (116 . ahg-qtop) (112 . ahg-qpop-all) (97 . ahg-qapply) (115 . ahg-qswitch) (109 . ahg-qmove) (103 . ahg-qgoto) (114 . ahg-qrefresh) (61 . ahg-qdiff) (110 . ahg-qnew)) (12 . ahg-log-cur-file) (102 . ahg-manifest-grep) (82 . ahg-rm-cur-file) (114 . ahg-revert-cur-file) (97 . ahg-annotate-cur-file) (101 . ahg-diff-ediff-cur-file) (61 . ahg-diff-cur-file) (99 . ahg-commit-cur-file) (104 . ahg-command-help) (33 . ahg-do-command) (66 . ahg-bookmarks) (84 . ahg-tags) (72 . ahg-heads) (103 . ahg-glog) (71 . ahg-glog) (76 . ahg-log) (108 . ahg-short-log) (115 . ahg-status)))
  #[(symbol value) "\303!\203\f\304\305!!\210\306	L\n\"\207" [symbol value ahg-global-map boundp global-unset-key eval global-set-key] 3](ahg-global-key-prefix "hg")
  custom-initialize-reset(ahg-global-key-prefix "hg")
  custom-declare-variable(ahg-global-key-prefix "hg" "Prefix of globally-available aHg commands." :group ahg :type string :set #[(symbol value) "\303!\203\f\304\305!!\210\306	L\n\"\207" [symbol value ahg-global-map boundp global-unset-key eval global-set-key] 3])
  byte-code("\300\301\302\303\304\305%\210\306\307\310\311\304\301\312\313&\210\306\314\315\316\304\301\312\313\317\320&	\210\306\321\322\323\304\301\312\324&\210\306\325\322\326\304\301\312\324&\210\306\327\330\331\304\301\312\332&\210\306\333\322\334\304\301\312\324&\210\306\335\322\336\304\301\312\324&\210\306\337\322\340\304\301\312\324&\210\306\341\322\342\304\301\312\324&\210\306\343\322\344\304\301\312\324&\210\306\345\322\346\304\301\312\324&\210\306\347\302\350\304\301\312\351&\210\306\352\353\354\304\301\312\355&\210\306\356\302\357\304\301\312\313&\210\306\360\302\361\304\301\312\324&\210\306\362\302\363\304\301\312\324&\210\306\364\322\365\304\301\312\324&\210\306\366\302\367\304\301\312\324&\210\370\371\372\373\304\301%\210\370\374\375\376\304\301%\210\370\377\201@\201A\304\301%\210\370\201B\201C\201D\304\301%\210\370\201E\201F\201G\304\301%\210\370\201H\201I\201J\304\301%\210\370\201K\201L\201M\304\301%\210\370\201N\201O\201P\304\301%\210\370\201Q\201R\201S\304\301%\210\370\201T\201U\201V\304\301%\210\370\201W\201X\201Y\304\301%\210\370\201Z\201[\201\\\304\301%\210\370\201]\201^\201_\304\301%\210\370\201`\201a\201b\304\301%\210\370\201c\201d\201e\304\301%\210\370\201f\201g\201h\304\301%\210\370\201i\201j\201k\304\301%\210\370\201l\201m\201n\304\301%\207" [custom-declare-group ahg nil "aHg Mercurial Frontend" :group tools custom-declare-variable ahg-hg-command "hg" "Command to use for invoking Mercurial." :type string ahg-global-key-prefix "hg" "Prefix of globally-available aHg commands." :set #[(symbol value) "\303!\203\f\304\305!!\210\306	L\n\"\207" [symbol value ahg-global-map boundp global-unset-key eval global-set-key] 3] ahg-do-command-insert-header t "If non-nil, `ahg-do-command' will insert a header line in the\ncommand output." boolean ahg-do-command-show-buffer-immediately "If non-nil, `ahg-do-command' will immediately switch to the buffer with the\ncommand output, instead of waiting for the command to finish." ahg-do-command-interactive-regexp "\\<\\(in\\|incoming\\|out\\|outgoing\\|pull\\|push\\)\\>" "Regexp for commands that might require a username/password\ninput in `ahg-do-command'." regexp ahg-auto-refresh-status-buffer "If non-nil, automatically refresh the *aHg status* buffer when certain\noperations (e.g. add, remove, commit) are performed." ahg-restore-window-configuration-on-quit "If non-nil, when `ahg-buffer-quit' will restore the window configuration." ahg-diff-use-git-format "If non-nil, aHg commands that output a diff will use the git format." ahg-qrefresh-use-short-flag "If non-nil, aHg qrefresh command will use the --short flag. See the help\nfor qrefresh for more information." ahg-yesno-short-prompt "If non-nil, use short form (y or n) when asking for confimation to the user." ahg-i18n "If non-nil, use i18n when calling Mercurial.\nNote: disabling i18n is done by unsetting the LANG environment variable\nwhen calling hg. This might not always work." ahg-subprocess-coding-system "If non-nil, coding system used when reading output of hg commands." symbol ahg-log-revrange-size 100 "Length of default revision range for `ahg-log',\n`ahg-short-log' and `ahg-glog'." integer ahg-map-cmdline-file "Path to the file for mapping the command line.\nFor `nil' the default file is used." ahg-summary-remote "If true, pass --remote to summary command used by ahg-status" ...] 10)
  require(ahg)
  eval((require (quote ahg)) nil)
  elisp--eval-last-sexp(nil)
  eval-last-sexp(nil)
  funcall-interactively(eval-last-sexp nil)
  call-interactively(eval-last-sexp nil nil)
  command-execute(eval-last-sexp)

-- 
John Wiegley                  GPG fingerprint = 4710 CF98 AF9B 327B B80F
http://newartisans.com                          60E1 46C4 BD1A 7AC1 4BA2