[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: use of "match-string"
From: |
ken |
Subject: |
Re: use of "match-string" |
Date: |
Tue, 08 Mar 2011 14:32:20 -0500 |
User-agent: |
Thunderbird 2.0.0.24 (X11/20101213) |
Thanks, PJ. You're right. The parens are pulling out just the numbers
and so the comparison isn't looking at the whole string searched for.
Totally clear now.
On 03/08/2011 02:06 PM PJ Weisberg wrote:
> On Tue, Mar 8, 2011 at 9:31 AM, ken <gebser@mousecar.com> wrote:
>> Part of this function doesn't make sense--
>>
>> (defun html-toc-find-max ()
>> (goto-char (point-min))
>> (let ((max-toc 0))
>> (while (search-forward-regexp html-toc-tocref nil t)
>> (if (> (string-to-int (match-string 1)) max-toc)
>> (setq max-toc (string-to-int (match-string 1)))))
>> (1+ max-toc)))
>>
>> -- specifically, where match-string is first called and turned into a
>> number. The docs say that match-string returns a string.... Yes, this
>> can be done I suppose, but to what end? Moreover, depending upon its
>> value, this "number" may then be assigned to a variable, and that value
>> then compared with subsequent strings.
>>
>> Perhaps I'm missing some nuance here. The entirety of the code is
>> below. Does anyone understand what's going on here?
>
> Maybe it would help if you looked at the value of the regexp that's
> being matched. The function html-toc-find-max does (almost) exactly
> what it says it does: it finds the highest numbered section in the
> table of contents, then returns that number plus one.
>
> It's converting the strings to numbers because if it just compared the
> strings alphabetically "25" would come before "3", etc.
>
> -PJ
>