1
0
mirror of https://git.savannah.gnu.org/git/gnulib.git synced 2026-10-24 00:48:56 +03:00
Files
gnulib/doc/quote.texi
Paul Eggert 87fb310b69 doc: be more like POSIX in threading terms
In documentation and comments, be more like POSIX in terminology
involving multithreading.  Explain the distinction between
multithreaded process vs multithreaded program.  Change “program”
to “process” when the latter wording is more accurate or informative.
Simplify the wording for the constraints on processes that use
unlocked I/O.  Change “multithread-safe” to “thread-safe”.
Change “thread-safety” to “thread safety”.
However, do not change “multithreaded” to “multi-threaded” even
though there are some uses of both spellinga, as there are a whole
bunch of uses of “multithreaded”, also in identifier names;
perhaps Gnulib should even standardize on “multithreaded”
(not “multi-threaded”), contra POSIX.
2026-04-11 13:21:19 -07:00

46 lines
1.4 KiB
Plaintext

@node Quoting
@section Quoting
@c Copyright (C) 2005, 2009--2026 Free Software Foundation, Inc.
@c Permission is granted to copy, distribute and/or modify this document
@c under the terms of the GNU Free Documentation License, Version 1.3 or
@c any later version published by the Free Software Foundation; with no
@c Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
@c copy of the license is at <https://www.gnu.org/licenses/fdl-1.3.en.html>.
@cindex Quoting
@findex quote
@findex quotearg
@mindex quote
@mindex quotearg
Gnulib provides @samp{quote} and @samp{quotearg} modules to help with
quoting text, such as file names, in messages to the user. Here's an
example of using @samp{quote}:
@example
#include <quote.h>
...
error (0, errno, _("cannot change owner of %s"), quote (fname));
@end example
This differs from
@example
error (0, errno, _("cannot change owner of '%s'"), fname);
@end example
@noindent in that @code{quote} escapes unusual characters in
@code{fname}, e.g., @samp{'} and control characters like @samp{\n}.
@findex quote_n
However, a caveat: @code{quote} reuses the storage that it returns.
Hence if you need more than one thing quoted at the same time, you
need to use @code{quote_n}.
@findex quotearg_alloc
Also, the @code{quote} module is not suited for multithreaded processes.
In that case, you have to use @code{quotearg_alloc}, defined in the
@samp{quotearg} module, which is decidedly less convenient.