[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Unmentioned "stringify" aspect in docu buffer-substring-no-propertie
From: |
David Kastrup |
Subject: |
Re: Unmentioned "stringify" aspect in docu buffer-substring-no-properties |
Date: |
Thu, 22 Jun 2006 22:28:14 +0200 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) |
Andreas Roehler <address@hidden> writes:
> Richard Stallman schrieb:
>> Would people please check those files for accuracy one more time?
>> They are the files listed in FOR-RELEASE with just one name.
>
>> text.texi
> IMO:
> Unmentioned "stringify" aspect in
> `buffer-substring-no-properties'; also concerns
> `buffer-substring'
>
> AFAIU there are two different meanings of string, which
> are mixed up in naming and function of
>
> `buffer-substring-no-properties':
>
> 1) it takes a portion of the buffer, but not necessary
> of a type `string', so `substring' might mislead
> here (nonetheless, would not ask for changing this
> name for compatiblity reasons)
Uh what? Of course the type is `string'.
> 2) it stringifies these portion, changes the type of it
It does nothing of the sort.
> ;;; check the following examples in a buffer starting
> with it, in order to have the Start-End-Entries
> set as given
>
> (defun foo ()
> " "
> (interactive "*")
> )
>
> (buffer-substring-no-properties 34 37)"e \""
There is no "stringification" done by buffer-substring-no-properties.
The Lisp reader prints the result of the evaluation in string syntax,
that is all.
> It happened to be a discussion in de.comp.editoren,
> concerning a stringify function
>
> The (still disputed) result exploits just the
> mentioned quality.
It doesn't.
> (defun region2string (start end)
> "Make a string from the chars of a region.
> Doublequotes inside will be quoted therefor.
>
> baz --> \"baz\"
>
> baz \"bar\" --> \"baz \\\"bar\\\"\""
> (interactive "r*")
> (goto-char end)
> (prin1 (buffer-substring-no-properties start end) (current-buffer))
> (delete-region start end))
The string quotes get added by prin1, not by
buffer-substring-no-properties. You should really try reading up some
basics in the Emacs Lisp tutorial.
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum