unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#7883: [PATCH] comint history expansion fails to process :N or $ modifier
@ 2011-01-21 18:10 Roland McGrath
  2011-01-21 20:56 ` Stefan Monnier
  0 siblings, 1 reply; 5+ messages in thread
From: Roland McGrath @ 2011-01-21 18:10 UTC (permalink / raw)
  To: 7883

This has been driving me nuts since I started using 23 and I only just now
bothered to find and fix it.  This worked correctly in 22 and was broken,
apparently just by a careless change.

In a comint/shell buffer, type:
	echo foo bar RET
and then type:
	echo !$ TAB
and you get the expansion:
	echo echo foo bar
i.e., the whole line as if !$ had been !!.
The expansion you should get is just:
	echo bar

The following trivial patch fixes the bug, restoring the behavior of v22
with similar code to what it had originally.  I tested the fix in 23.2.1,
but the relevant comint.el code in the trunk has not changed since then.


Thanks,
Roland


2011-01-21  Roland McGrath  <roland@frob.com>

	* comint.el (comint-replace-by-expanded-history-before-point):
	Fix expansion of !$ and !!:N syntax to pick the indicated word.

--- lisp/comint.el	2011-01-20 22:36:12 +0000
+++ lisp/comint.el	2011-01-21 18:03:09 +0000
@@ -1294,7 +1294,9 @@ than the logical beginning of line."
 		   (message "Relative reference exceeds input history size"))))
 	      ((or (looking-at "!!?:?\\([0-9^$*-]+\\)") (looking-at "!!"))
 	       ;; Just a number of args from the previous input line.
-	       (replace-match (comint-previous-input-string 0) t t)
+	       (replace-match (comint-args (comint-previous-input-string 0)
+					   (match-beginning 1) (match-end 1))
+			      t t)
 	       (message "History item: previous"))
 	      ((looking-at
 		"!\\??\\({\\(.+\\)}\\|\\(\\sw+\\)\\)\\(:?[0-9^$*-]+\\)?")






^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-02-15  2:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-21 18:10 bug#7883: [PATCH] comint history expansion fails to process :N or $ modifier Roland McGrath
2011-01-21 20:56 ` Stefan Monnier
2011-02-15  1:36   ` Glenn Morris
2011-02-15  1:56     ` Roland McGrath
2011-02-15  2:00       ` Glenn Morris

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).