From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.bugs Subject: bug#14742: 24.3.50; enhancement request: be able to prepend stuff from buffer when search backward Date: Wed, 03 Jul 2013 01:39:47 +0300 Organization: JURTA Message-ID: <87y59ok18k.fsf@mail.jurta.org> References: <4b9029ca-1775-482f-ba9a-46a891be7405@default> <87sj01c3n2.fsf@mail.jurta.org> <7518b30b-63d2-40ea-956f-a504f40c4cfd@default> <87haggoc6r.fsf@mail.jurta.org> <8ada7269-baa9-483f-9595-d46619393aa7@default> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1372806975 1202 80.91.229.3 (2 Jul 2013 23:16:15 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 2 Jul 2013 23:16:15 +0000 (UTC) Cc: 14742@debbugs.gnu.org To: Drew Adams Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Jul 03 01:16:14 2013 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Uu9nv-00062g-KK for geb-bug-gnu-emacs@m.gmane.org; Wed, 03 Jul 2013 01:16:11 +0200 Original-Received: from localhost ([::1]:44403 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uu9nu-0005q5-Oo for geb-bug-gnu-emacs@m.gmane.org; Tue, 02 Jul 2013 19:16:10 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:52453) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uu9nq-0005pu-Ph for bug-gnu-emacs@gnu.org; Tue, 02 Jul 2013 19:16:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Uu9nm-0005EE-OO for bug-gnu-emacs@gnu.org; Tue, 02 Jul 2013 19:16:06 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:58794) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uu9nm-0005DP-JW for bug-gnu-emacs@gnu.org; Tue, 02 Jul 2013 19:16:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1Uu9nm-0001Yc-05 for bug-gnu-emacs@gnu.org; Tue, 02 Jul 2013 19:16:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 02 Jul 2013 23:16:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14742 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 14742-submit@debbugs.gnu.org id=B14742.13728069245928 (code B ref 14742); Tue, 02 Jul 2013 23:16:01 +0000 Original-Received: (at 14742) by debbugs.gnu.org; 2 Jul 2013 23:15:24 +0000 Original-Received: from localhost ([127.0.0.1]:53108 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Uu9nA-0001XW-6z for submit@debbugs.gnu.org; Tue, 02 Jul 2013 19:15:24 -0400 Original-Received: from ps18281.dreamhost.com ([69.163.218.105]:41475 helo=ps18281.dreamhostps.com) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Uu9n6-0001XG-2F for 14742@debbugs.gnu.org; Tue, 02 Jul 2013 19:15:21 -0400 Original-Received: from localhost (ps18281.dreamhostps.com [69.163.218.105]) by ps18281.dreamhostps.com (Postfix) with ESMTP id 488C2258B9E915; Tue, 2 Jul 2013 16:15:18 -0700 (PDT) In-Reply-To: <8ada7269-baa9-483f-9595-d46619393aa7@default> (Drew Adams's message of "Sat, 29 Jun 2013 16:02:58 -0700 (PDT)") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (x86_64-pc-linux-gnu) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:75823 Archived-At: > 2. Just use a name for the position, not the action: e.g. START or > BEGINNING. (I would stay away from FRONT & BACK too, as references > to the search-string ends. BACK is particularly problematic.) Then let's use BEGINNING: === modified file 'lisp/isearch.el' --- lisp/isearch.el 2013-06-13 22:08:45 +0000 +++ lisp/isearch.el 2013-07-02 22:35:17 +0000 @@ -1839,7 +1839,7 @@ (defun isearch-delete-char () (isearch-pop-state)) (isearch-update)) -(defun isearch-del-char (&optional arg) +(defun isearch-del-char (&optional arg beginning) "Delete character from end of search string and search again. Unlike `isearch-delete-char', it only deletes the last character, but doesn't cancel the effect of other isearch command. @@ -1847,9 +1847,13 @@ (defun isearch-del-char (&optional arg) (interactive "p") (if (= 0 (length isearch-string)) (ding) - (setq isearch-string (substring isearch-string 0 - (- (min (or arg 1) - (length isearch-string)))) + (setq isearch-string (if beginning + (substring isearch-string + (min (or arg 1) + (length isearch-string))) + (substring isearch-string 0 + (- (min (or arg 1) + (length isearch-string))))) isearch-message (mapconcat 'isearch-text-char-description isearch-string ""))) ;; Use the isearch-other-end as new starting point to be able @@ -1858,17 +1862,23 @@ (defun isearch-del-char (&optional arg) (isearch-push-state) (isearch-update))) -(defun isearch-yank-string (string) +(defun isearch-yank-string (string &optional beginning) "Pull STRING into search string." ;; Downcase the string if not supposed to case-fold yanked strings. (if (and isearch-case-fold-search (eq 'not-yanks search-upper-case)) (setq string (downcase string))) (if isearch-regexp (setq string (regexp-quote string))) - (setq isearch-string (concat isearch-string string) + (setq isearch-string (if beginning + (concat string isearch-string) + (concat isearch-string string)) isearch-message (concat isearch-message (mapconcat 'isearch-text-char-description > 3. To me, yanking stuff to the beginning is more important than > deleting stuff from the beginning. I was thinking either have a > separate key (or set of keys) that is (are) analogous to the > yank-at-end key(s) or else just reuse the same keys when searching > backward. I have no idea about new keys, but I need this change to implement yanking/deletion by motion keys (disabled by default).