[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: (goto-char ...) error
From: |
ken |
Subject: |
Re: (goto-char ...) error |
Date: |
Tue, 22 Feb 2011 13:24:21 -0500 |
User-agent: |
Thunderbird 2.0.0.24 (X11/20101213) |
On 02/22/2011 12:31 PM Deniz Dogan wrote:
> 2011/2/22 ken <gebser@mousecar.com>:
>> Performing one search, I save the result with
>>
>> (setq ptname (re-search-forward ...))
>>
>> Then I want to back up one character and perform another search, so I do
>>
>> (goto-char (- ptname 1))
>>
>> But this pukes an error. What's unkosher here?
>>
>
> It's much easier if you tell us what the error is.
>
> I tried to reproduce the problem using this code:
>
> ;; search for "a"
> (let ((ptname (re-search-forward "a" nil t)))
> (when ptname
> (goto-char (- ptname 1))))
>
> It all depends on how you use re-search-forward. As you can see in my
> example, I pass t as the third argument meaning "don't error if you
> can't find it, just return nil". I then make sure that ptname is
> non-nil before I try to act on it using `-', otherwise we would be
> doing (- nil 1) which makes no sense.
>
My understanding is that the 4th arg to re-search-forward is to repeat
the search, so I set that to nil.
I get the same error whether the 3rd arg is t or nil (!?):
(setq ptname (re-search-forward "REGEXP" endpt t nil))
(if ptname
((goto-char (- ptname 1))
....
The error line in *Messages* says:
if: Invalid function: (goto-char (- begin-name-value 1))
Message not available