From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Gary Newsgroups: gmane.emacs.help Subject: Re: And while we're at it... Date: Wed, 01 Dec 2010 14:42:12 +0100 Message-ID: References: <87k4jtln7s.fsf@member.fsf.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1291212619 19310 80.91.229.12 (1 Dec 2010 14:10:19 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 1 Dec 2010 14:10:19 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Dec 01 15:10:14 2010 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1PNnNr-0005sR-0e for geh-help-gnu-emacs@m.gmane.org; Wed, 01 Dec 2010 15:10:11 +0100 Original-Received: from localhost ([127.0.0.1]:34618 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PNnNq-0000ys-1C for geh-help-gnu-emacs@m.gmane.org; Wed, 01 Dec 2010 09:10:10 -0500 Original-Received: from [140.186.70.92] (port=53940 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PNmx1-00047s-L3 for help-gnu-emacs@gnu.org; Wed, 01 Dec 2010 08:42:28 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PNmx0-0003iJ-EL for help-gnu-emacs@gnu.org; Wed, 01 Dec 2010 08:42:27 -0500 Original-Received: from lo.gmane.org ([80.91.229.12]:49312) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PNmx0-0003i2-4e for help-gnu-emacs@gnu.org; Wed, 01 Dec 2010 08:42:26 -0500 Original-Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1PNmwy-0000Yp-Hh for help-gnu-emacs@gnu.org; Wed, 01 Dec 2010 14:42:24 +0100 Original-Received: from ge-u-fw01.ggamaur.net ([213.160.40.69]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 01 Dec 2010 14:42:24 +0100 Original-Received: from help-gnu-emacs by ge-u-fw01.ggamaur.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 01 Dec 2010 14:42:24 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Original-Lines: 62 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: ge-u-fw01.ggamaur.net User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (cygwin) X-No-Archive: Yes Mail-Copies-To: never X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org X-Gmane-Expiry: 2010-12-15 Xref: news.gmane.org gmane.emacs.help:75459 Archived-At: Tassilo Horn wrote: > Gary writes: > >> 'insert' and friends insert their arguments at the current point. If >> I'm at a different point in the file to where I want to actually >> insert the text? ... > something like: > > (let ((text (compute-text-to-be-inserted))) > (save-excursion > (goto-buffer-position-where-text-should-be-inserted) > (insert text))) > > The `save-excursion' will restore the current position after its body > has been executed. Yeah, I'd read and mentally noted that. What I'm missing is how to goto-buffer-position-where-text-should-be-inserted, as you put it. I found backward-line which might help, but I don't know what position in that line the "point" would then be. End? Beginning? Somewhere in the middle? The code I am writing is designed to act on text like this: ,---- | foo somethinghere | ... | end `---- And here it is, somewhat simplified: ,---- | (defun my-fn () | (interactive) | | ;; get the components of the current line | (setq myStr (thing-at-point 'line)) | (setq myLineComponents (split-string myStr " ")) | | ;; get the type of "thing" on this line | (setq mySemanticObj (pop myLineComponents)) | | ;; ..and based on that, insert something appropriate | (if (equal mySemanticObj "foo") | (progn | (backward-line 1) ;; hmm! where in the line do i end up?!? | (my-priv-insert-foo-text (car myLineComponents)) | ) | ;;else | ;; ... | | ) | ) `---- (where my-priv-insert-foo-text takes the next part of the line as an input param, which in the above example would be "somethinghere", I'm hoping) -- Gary Please do NOT send me 'courtesy' replies off-list. GNU Emacs 23.2.1 emacsclient 23.2