From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.help Subject: Re: How to return to the position from where I did tags-query-replace? Date: Sun, 04 Feb 2018 05:30:11 +0100 Organization: Aioe.org NNTP Server Message-ID: <86y3k9wf58.fsf@zoho.com> References: <1189017224.525081.173930@22g2000hsm.googlegroups.com> <2f9fe1c0-f382-47d4-8df2-0b39d3645385@googlegroups.com> <86d11lxwl9.fsf@zoho.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1517718873 26408 195.159.176.226 (4 Feb 2018 04:34:33 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sun, 4 Feb 2018 04:34:33 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sun Feb 04 05:34:29 2018 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eiC0I-0005Rf-5m for geh-help-gnu-emacs@m.gmane.org; Sun, 04 Feb 2018 05:34:10 +0100 Original-Received: from localhost ([::1]:60401 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eiC2J-00024C-Ev for geh-help-gnu-emacs@m.gmane.org; Sat, 03 Feb 2018 23:36:15 -0500 X-Received: by 10.223.157.199 with SMTP id q7mr852749wre.11.1517718612535; Sat, 03 Feb 2018 20:30:12 -0800 (PST) Original-Path: usenet.stanford.edu!j65no3702947wmj.0!news-out.google.com!74ni23006wme.0!nntp.google.com!proxad.net!feeder1-2.proxad.net!news.mixmin.net!aioe.org!.POSTED!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 51 Original-NNTP-Posting-Host: VFF8n9P1H/v9pfNWKwEKwA.user.gioia.aioe.org Original-X-Complaints-To: abuse@aioe.org Mail-Copies-To: never X-Notice: Filtered by postfilter v. 0.8.2 Cancel-Lock: sha1:mOtO0IXif5ER4Zf3VVaScNpYvk0= Original-Xref: usenet.stanford.edu gnu.emacs.help:221790 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.org gmane.emacs.help:115908 Archived-At: Boy, advices are sure difficult to use, even for people who do not know how to use them! But this seems to work (?). The original function I wrote, actually didn't require any modification, just the extra advice call to glue it together. I wrote a couple of pretty meaningless random functions, no pun intended, just for testing. Those are the ones one should replace with the real thing, if one would like to do this for real. (defun do-whatever-return (fun &rest args) (let ((point (point)) (buffer (current-buffer)) ) (apply fun args) (when (bufferp buffer) (switch-to-buffer buffer) (goto-char (point) )))) ;; (do-whatever-return #'switch-to-buffer "*Help*") (defun switch-buffer-random () (let*((buffers (buffer-list)) (num-bufs (length buffers)) (rand-buf-num (random (1- num-bufs))) (buf (nth rand-buf-num buffers)) ) (when (bufferp buf) (switch-to-buffer buf)) )) ;; (switch-buffer-random) (defun move-point-random () (let*((min (point-min)) (max (point-max)) (random-char (+ min (random (- max min)))) (new-char (goto-char random-char)) ) (message "New point in %s is %d" (current-buffer) (point)) )) ;; (move-point-random) (defun switch-buffer-move-point-random () (switch-buffer-random) (move-point-random) ) ;; (switch-buffer-move-point-random) ;; (advice-add 'switch-buffer-move-point-random :around #'do-whatever-return) ;; (switch-buffer-move-point-random) -- underground experts united http://user.it.uu.se/~embe8573