* bug#59603: 28.1.90; `ucs-normalize-string' fails to work
@ 2022-11-26 8:41 Ihor Radchenko
2022-11-26 8:57 ` Eli Zaretskii
0 siblings, 1 reply; 7+ messages in thread
From: Ihor Radchenko @ 2022-11-26 8:41 UTC (permalink / raw)
To: 59603
Hi,
I just stumbled upon `ucs-normalize-string'
(defmacro ucs-normalize-string (ucs-normalize-region)
`(with-temp-buffer
(insert str)
(,ucs-normalize-region (point-min) (point-max))
(buffer-string)))
It apparently uses undefined variable `str', which does not look right.
Also, no docstring.
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#59603: 28.1.90; `ucs-normalize-string' fails to work
2022-11-26 8:41 bug#59603: 28.1.90; `ucs-normalize-string' fails to work Ihor Radchenko
@ 2022-11-26 8:57 ` Eli Zaretskii
2022-11-26 9:04 ` Ihor Radchenko
0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2022-11-26 8:57 UTC (permalink / raw)
To: Ihor Radchenko; +Cc: 59603-done
> From: Ihor Radchenko <yantar92@posteo.net>
> Date: Sat, 26 Nov 2022 08:41:39 +0000
>
> I just stumbled upon `ucs-normalize-string'
>
> (defmacro ucs-normalize-string (ucs-normalize-region)
> `(with-temp-buffer
> (insert str)
> (,ucs-normalize-region (point-min) (point-max))
> (buffer-string)))
>
> It apparently uses undefined variable `str', which does not look right.
It's a macro, not a function. So STR could come from the code which calls
the macro. Look how it is used in that file, and you will see what I mean.
> Also, no docstring.
I added a doc string.
Thanks.
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#59603: 28.1.90; `ucs-normalize-string' fails to work
2022-11-26 8:57 ` Eli Zaretskii
@ 2022-11-26 9:04 ` Ihor Radchenko
2022-11-26 9:23 ` Eli Zaretskii
0 siblings, 1 reply; 7+ messages in thread
From: Ihor Radchenko @ 2022-11-26 9:04 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 59603-done
Eli Zaretskii <eliz@gnu.org> writes:
>> (defmacro ucs-normalize-string (ucs-normalize-region)
>> `(with-temp-buffer
>> (insert str)
>> (,ucs-normalize-region (point-min) (point-max))
>> (buffer-string)))
>>
>> It apparently uses undefined variable `str', which does not look right.
>
> It's a macro, not a function. So STR could come from the code which calls
> the macro. Look how it is used in that file, and you will see what I mean.
I understand. But this macro is not private (no --). I feel like using
"str" there is a questionable code style.
>> Also, no docstring.
>
> I added a doc string.
Thanks! The new docstring implies that STR is an argument, doesn't it?
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#59603: 28.1.90; `ucs-normalize-string' fails to work
2022-11-26 9:04 ` Ihor Radchenko
@ 2022-11-26 9:23 ` Eli Zaretskii
2022-11-26 9:37 ` Ihor Radchenko
0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2022-11-26 9:23 UTC (permalink / raw)
To: Ihor Radchenko; +Cc: 59603
> From: Ihor Radchenko <yantar92@posteo.net>
> Cc: 59603-done@debbugs.gnu.org
> Date: Sat, 26 Nov 2022 09:04:22 +0000
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> >> (defmacro ucs-normalize-string (ucs-normalize-region)
> >> `(with-temp-buffer
> >> (insert str)
> >> (,ucs-normalize-region (point-min) (point-max))
> >> (buffer-string)))
> >>
> >> It apparently uses undefined variable `str', which does not look right.
> >
> > It's a macro, not a function. So STR could come from the code which calls
> > the macro. Look how it is used in that file, and you will see what I mean.
>
> I understand. But this macro is not private (no --). I feel like using
> "str" there is a questionable code style.
It's too late to change that: this macro is very old and predates the --
conventions.
> >> Also, no docstring.
> >
> > I added a doc string.
>
> Thanks! The new docstring implies that STR is an argument, doesn't it?
It doesn't.
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#59603: 28.1.90; `ucs-normalize-string' fails to work
2022-11-26 9:23 ` Eli Zaretskii
@ 2022-11-26 9:37 ` Ihor Radchenko
2022-11-26 10:10 ` Eli Zaretskii
0 siblings, 1 reply; 7+ messages in thread
From: Ihor Radchenko @ 2022-11-26 9:37 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 59603
Eli Zaretskii <eliz@gnu.org> writes:
>> I understand. But this macro is not private (no --). I feel like using
>> "str" there is a questionable code style.
>
> It's too late to change that: this macro is very old and predates the --
> conventions.
I see.
>> >> Also, no docstring.
>> >
>> > I added a doc string.
>>
>> Thanks! The new docstring implies that STR is an argument, doesn't it?
>
> It doesn't.
I feel a bit confused now.
I am now reviewing D.6 Tips for Documentation Strings section of Elisp
manual:
• When a function’s documentation string mentions the value of an
argument of the function, use the argument name in capital letters
as if it were a name for that value. Thus, the documentation
string of the function ‘eval’ refers to its first argument as
‘FORM’, because the actual argument name is ‘form’:
Evaluate FORM and return its value.
Also write metasyntactic variables in capital letters, such as when
you show the decomposition of a list or vector into subunits, some
of which may vary. ‘KEY’ and ‘VALUE’ in the following example
illustrate this practice:
The argument TABLE should be an alist whose elements
have the form (KEY . VALUE). Here, KEY is ...
• Never change the case of a Lisp symbol when you mention it in a doc
string. If the symbol’s name is ‘foo’, write “foo”, not “Foo”
(which is a different symbol).
I do see that uppercase symbol names may not always refer to the
arguments, but don't `str' fit better into the conventions? It is the
symbol to be used in the macro, after all.
Or do I miss something?
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#59603: 28.1.90; `ucs-normalize-string' fails to work
2022-11-26 9:37 ` Ihor Radchenko
@ 2022-11-26 10:10 ` Eli Zaretskii
2022-11-26 10:16 ` Ihor Radchenko
0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2022-11-26 10:10 UTC (permalink / raw)
To: Ihor Radchenko; +Cc: 59603
> From: Ihor Radchenko <yantar92@posteo.net>
> Cc: 59603@debbugs.gnu.org
> Date: Sat, 26 Nov 2022 09:37:47 +0000
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> I do see that uppercase symbol names may not always refer to the
> arguments, but don't `str' fit better into the conventions? It is the
> symbol to be used in the macro, after all.
> Or do I miss something?
How else do you suggest to indicate in the doc string that the macro
operates on a variable named 'str'? Using `str' is much more confusing,
IMO.
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#59603: 28.1.90; `ucs-normalize-string' fails to work
2022-11-26 10:10 ` Eli Zaretskii
@ 2022-11-26 10:16 ` Ihor Radchenko
0 siblings, 0 replies; 7+ messages in thread
From: Ihor Radchenko @ 2022-11-26 10:16 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 59603
Eli Zaretskii <eliz@gnu.org> writes:
>> I do see that uppercase symbol names may not always refer to the
>> arguments, but don't `str' fit better into the conventions? It is the
>> symbol to be used in the macro, after all.
>> Or do I miss something?
>
> How else do you suggest to indicate in the doc string that the macro
> operates on a variable named 'str'? Using `str' is much more confusing,
> IMO.
We clearly disagree here. `str' would be more clear for me. Or
explicitly saying that `str' symbol value is used.
In any case, this is a very minor concern. I mostly tried to find if I
am missing something in my understanding of documentation conventions. I
have no strong feelings about this particular change.
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2022-11-26 10:16 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-26 8:41 bug#59603: 28.1.90; `ucs-normalize-string' fails to work Ihor Radchenko
2022-11-26 8:57 ` Eli Zaretskii
2022-11-26 9:04 ` Ihor Radchenko
2022-11-26 9:23 ` Eli Zaretskii
2022-11-26 9:37 ` Ihor Radchenko
2022-11-26 10:10 ` Eli Zaretskii
2022-11-26 10:16 ` Ihor Radchenko
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).