From 3ce6e4a67031c2d52c0e422beeca3cac906e4044 Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Wed, 12 Dec 2012 20:52:41 +0100 Subject: [PATCH] Avoid strange behavior with smartrep smartrep `intern`s commands into own obarray to help `describe-bindings`, but this is bad for multiple-cursors as it makes impossible to compare command with `memq` (`eq`). This patch re-`intern's the command to make the command comparable by `eq'. --- multiple-cursors-core.el | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/multiple-cursors-core.el b/multiple-cursors-core.el index 5a37526..eba2417 100644 --- a/multiple-cursors-core.el +++ b/multiple-cursors-core.el @@ -340,9 +340,16 @@ the original cursor, to inform about the lack of support." ;; if it's a lambda, we can't know if it's supported or not ;; - so go ahead and assume it's ok, because we're just optimistic like that - (if (not (symbolp original-command)) + (if (or (not (symbolp original-command)) + ;; lambda registered by smartrep + (string-prefix-p "(" (symbol-name original-command))) (mc/execute-command-for-all-fake-cursors original-command) + ;; smartrep `intern's commands into own obarray to help + ;; `describe-bindings'. So, let's re-`intern' here to + ;; make the command comparable by `eq'. + (setq original-command (intern (symbol-name original-command))) + ;; otherwise it's a symbol, and we can be more thorough (if (get original-command 'mc--unsupported) (message "%S is not supported with multiple cursors%s"