From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Marcin Borkowski Newsgroups: gmane.emacs.help Subject: Re: A variant of match-end, but after replacement? Date: Mon, 20 Jul 2015 02:06:09 +0200 Message-ID: <87zj2rsnf2.fsf@mbork.pl> References: <87h9p04ain.fsf@kuiper.lan.informatimago.com> <87d1zo49e6.fsf@kuiper.lan.informatimago.com> <878uac463w.fsf@kuiper.lan.informatimago.com> <874mkz4vii.fsf@kuiper.lan.informatimago.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1437350819 2974 80.91.229.3 (20 Jul 2015 00:06:59 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 20 Jul 2015 00:06:59 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon Jul 20 02:06:50 2015 Return-path: Envelope-to: geh-help-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 1ZGybZ-0006x8-Im for geh-help-gnu-emacs@m.gmane.org; Mon, 20 Jul 2015 02:06:49 +0200 Original-Received: from localhost ([::1]:53205 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZGybY-0002dX-KR for geh-help-gnu-emacs@m.gmane.org; Sun, 19 Jul 2015 20:06:48 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:52149) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZGybO-0002dH-D6 for help-gnu-emacs@gnu.org; Sun, 19 Jul 2015 20:06:39 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZGybI-0008Nx-S0 for help-gnu-emacs@gnu.org; Sun, 19 Jul 2015 20:06:38 -0400 Original-Received: from mail.mojserwer.eu ([2a01:5e00:2:52::8]:35304) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZGybI-0008LQ-Kg for help-gnu-emacs@gnu.org; Sun, 19 Jul 2015 20:06:32 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by mail.mojserwer.eu (Postfix) with ESMTP id 643576F2002 for ; Mon, 20 Jul 2015 02:06:27 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at mail.mojserwer.eu Original-Received: from mail.mojserwer.eu ([127.0.0.1]) by localhost (mail.mojserwer.eu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MNyLMAphKZnx for ; Mon, 20 Jul 2015 02:06:21 +0200 (CEST) Original-Received: from localhost (unknown [109.232.24.146]) by mail.mojserwer.eu (Postfix) with ESMTPSA id A82306F2001 for ; Mon, 20 Jul 2015 02:06:20 +0200 (CEST) In-reply-to: <874mkz4vii.fsf@kuiper.lan.informatimago.com> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a01:5e00:2:52::8 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 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-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:105863 Archived-At: On 2015-07-20, at 00:45, Pascal J. Bourguignon wrote: > Barry Margolin writes: > >> In article , >> Marcin Borkowski wrote: >> >>> On 2015-07-19, at 15:41, Pascal J. Bourguignon wrote: >>> >>> > Marcin Borkowski writes: >>> > >>> >>> (let ((old-end (prog1 (match-end 1) >>> >>> (replace-match "newtext" t t string 1)))) >>> >>> (do-something old-end)) >>> >> >>> >> Still not there - I can't assume that "newtext" will have the same >>> >> length as the thing it replaced... >>> > >>> > Sorry, I misread what you wanted. >>> > >>> > (let ((new-end (+ (prog1 (match-beginning 1) >>> > (replace-match new-text t t string 1))) >>> > (length new-text))) >>> > (do-somthing-from new-end)) >>> >>> Thanks! That's easy, and indeed it will work, since the length of the >>> replacement is fixed in my use-case. >> >> Yeah, this would be trickier if new-text contained back-references. > > Not very much: > > (let ((end (match-end 1)) > (new-string (replace-match new-text t t string 1))) > (do-something-from new-string > (+ end (- (length string) (legnth new-string))))) I give up. It seems that a PhD in math is not enough to deal with string-length arithmetic;-). Shame on me! (OTOH, mails from you often teach me that when I have the impression that I'm smart, it's usually only an impression.) Thanks a lot! -- Marcin Borkowski http://octd.wmi.amu.edu.pl/en/Marcin_Borkowski Faculty of Mathematics and Computer Science Adam Mickiewicz University