From: Paul Eggert <eggert@cs.ucla.edu>
To: Alan Mackenzie <acm@muc.de>
Cc: Eli Zaretskii <eliz@gnu.org>, Richard Stallman <rms@gnu.org>,
emacs-devel@gnu.org
Subject: Re: Emacs 26.1 release branch created
Date: Fri, 22 Sep 2017 13:42:17 -0700 [thread overview]
Message-ID: <5de6367f-49a0-b991-e084-c673d8443fde@cs.ucla.edu> (raw)
In-Reply-To: <20170922180440.GA7229@ACM>
[-- Attachment #1: Type: text/plain, Size: 1052 bytes --]
On 09/22/2017 11:04 AM, Alan Mackenzie wrote:
> the main point here is to remind the reader that quotes can be
> output as is by binding text-quoting-style
But that's not how Elisp code typically outputs quotes as is. I see no
instances of such a thing in the emacs-26 branch. Instead, code
typically uses backslash escapes (in doc strings) or %s applied to the
output of 'format' (in message formats). It's better for the Elisp
manual to suggest the techniques that are typically used.
> Perhaps you could suggest an improved wording
Sure, a suggested patch is attached. This patch attempts to address only
this issue; it doesn't affect whether text-quoting-style is
customizable, as that is orthogonal. Since there were three or four
copies of boilerplate language that was getting longer, this patch
creates a new node Text Quoting Style that contains the detailed
discussion of text-quoting-style and how to get around it, and adjusts
the other parts of the manual to mention the issue briefly and
cross-reference to the new section.
[-- Attachment #2: 0001-Improve-text-quoting-style-doc-in-lispref.txt --]
[-- Type: text/plain, Size: 11311 bytes --]
From dd9535349f18346f85f9f40940451a0b20f3897c Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Fri, 22 Sep 2017 13:29:17 -0700
Subject: [PATCH] Improve text-quoting-style doc in lispref
* doc/lispref/control.texi (Signaling Errors):
* doc/lispref/display.texi (Displaying Messages):
* doc/lispref/strings.texi (Formatting Strings):
Edit for brevity, farming out the details to the new
Text Quoting Style node.
* doc/lispref/help.texi (Text Quoting Style): New section.
Move detailed discussion of text-quoting-style here.
Add discussion about how to output grave accent and apostrophe in
documentation and messages. Adjust xrefs to point to this section
when appropriate.
---
doc/lispref/control.texi | 10 +++----
doc/lispref/display.texi | 12 ++++-----
doc/lispref/elisp.texi | 1 +
doc/lispref/help.texi | 69 ++++++++++++++++++++++++++++++++++--------------
doc/lispref/strings.texi | 12 ++++-----
doc/lispref/tips.texi | 4 +--
6 files changed, 66 insertions(+), 42 deletions(-)
diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi
index 401a999cf2..ffa6b59f49 100644
--- a/doc/lispref/control.texi
+++ b/doc/lispref/control.texi
@@ -1101,13 +1101,11 @@ Signaling Errors
error symbol @code{error}, and a list containing the string returned by
@code{format-message}.
+@vindex text-quoting-style
The @code{text-quoting-style} variable controls what quotes are
-generated; @xref{Keys in Documentation}. A call using a format like
-@t{"Missing `%s'"} with grave accents and apostrophes typically
-generates a message like @t{"Missing ‘foo’"} with matching curved
-quotes. In contrast, a call using a format like @t{"Missing '%s'"}
-with only apostrophes typically generates a message like @t{"Missing
-’foo’"} with only closing curved quotes, an unusual style in English.
+generated. Typically grave accent and apostrophe in the format
+generate matching curved quotes, e.g., @t{"Missing `%s'"} might
+generate @t{"Missing ‘foo’"}. @xref{Text Quoting Style}.
@strong{Warning:} If you want to use your own string as an error message
verbatim, don't just write @code{(error @var{string})}. If @var{string}
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 3dae984f33..2322766945 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -265,13 +265,11 @@ Displaying Messages
The string is also added to the @file{*Messages*} buffer, but without
text properties (@pxref{Logging Messages}).
+@vindex text-quoting-style
The @code{text-quoting-style} variable controls what quotes are
-generated; @xref{Keys in Documentation}. A call using a format like
-@t{"Missing `%s'"} with grave accents and apostrophes typically
-generates a message like @t{"Missing ‘foo’"} with matching curved
-quotes. In contrast, a call using a format like @t{"Missing '%s'"}
-with only apostrophes typically generates a message like @t{"Missing
-’foo’"} with only closing curved quotes, an unusual style in English.
+generated. Typically grave accent and apostrophe in the format
+generate matching curved quotes, e.g., @t{"Missing `%s'"} might
+generate @t{"Missing ‘foo’"}. @xref{Text Quoting Style}.
In batch mode, the message is printed to the standard error stream,
followed by a newline.
@@ -7035,7 +7033,7 @@ Active Display Table
is outputting text to the standard output or error streams. Although its
default is typically @code{nil}, in an interactive session if the
terminal cannot display curved quotes, its default maps curved quotes
-to ASCII approximations. @xref{Keys in Documentation}.
+to ASCII approximations. @xref{Text Quoting Style}.
@end defvar
The @file{disp-table} library defines several functions for changing
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
index 4cbcdf855d..c752594584 100644
--- a/doc/lispref/elisp.texi
+++ b/doc/lispref/elisp.texi
@@ -940,6 +940,7 @@ Top
* Documentation Basics:: Where doc strings are defined and stored.
* Accessing Documentation:: How Lisp programs can access doc strings.
* Keys in Documentation:: Substituting current key bindings.
+* Text Quoting Style:: Quotation marks in doc strings and messages.
* Describing Characters:: Making printable descriptions of
non-printing characters and key sequences.
* Help Functions:: Subroutines used by Emacs help facilities.
diff --git a/doc/lispref/help.texi b/doc/lispref/help.texi
index cb21411352..c3cc5a98a6 100644
--- a/doc/lispref/help.texi
+++ b/doc/lispref/help.texi
@@ -33,6 +33,7 @@ Documentation
* Documentation Basics:: Where doc strings are defined and stored.
* Accessing Documentation:: How Lisp programs can access doc strings.
* Keys in Documentation:: Substituting current key bindings.
+* Text Quoting Style:: Quotation marks in doc strings and messages.
* Describing Characters:: Making printable descriptions of
non-printing characters and key sequences.
* Help Functions:: Subroutines used by Emacs help facilities.
@@ -336,6 +337,7 @@ Keys in Documentation
(grave accent) stands for a left quote.
This generates a left single quotation mark, an apostrophe, or a grave
accent depending on the value of @code{text-quoting-style}.
+@xref{Text Quoting Style}.
@item '
(apostrophe) stands for a right quote.
@@ -351,26 +353,6 @@ Keys in Documentation
@strong{Please note:} Each @samp{\} must be doubled when written in a
string in Emacs Lisp.
-@defvar text-quoting-style
-@cindex curved quotes
-@cindex curly quotes
-The value of this variable is a symbol that specifies the style Emacs
-should use for single quotes in the wording of help and messages.
-If the variable's value is @code{curve}, the style is
-@t{‘like this’} with curved single quotes. If the value is
-@code{straight}, the style is @t{'like this'} with straight
-apostrophes. If the value is @code{grave},
-quotes are not translated and the style is @t{`like
-this'} with grave accent and apostrophe, the standard style
-before Emacs version 25. The default value @code{nil}
-acts like @code{curve} if curved single quotes are displayable, and
-like @code{grave} otherwise.
-
-This variable can be used by experts on platforms that have problems
-with curved quotes. As it is not intended for casual use, it is not a
-user option.
-@end defvar
-
@defun substitute-command-keys string
This function scans @var{string} for the above special sequences and
replaces them by what they stand for, returning the result as a string.
@@ -429,6 +411,53 @@ Keys in Documentation
strings---for instance, you can refer to functions, variables, and
sections of this manual. @xref{Documentation Tips}, for details.
+@node Text Quoting Style
+@section Text Quoting Style
+
+ Typically, grave accents and apostrophes are treated specially in
+documentation strings and diagnostic messages, and generate matching
+single quotation marks (also called ``curved quotes''). For example,
+the documentation string @t{"Alias for `foo'."} and the function call
+@code{(message "Alias for `foo'.")} both generate @t{"Alias for
+‘foo’."}. Less commonly, Emacs displays grave accents and apostrophes
+as themselves, or as apostrophes only (e.g., @t{"Alias for 'foo'."}).
+Documentation strings and message formats should be written so that
+they display well with any of these styles. For example, the
+documentation string @t{"Alias for 'foo'."} is probably not what you
+want, as it can display as @t{"Alias for ’foo’."}, an unusual style in
+English.
+
+ Sometimes you may need to display a grave accent or apostrophe
+without translation, regardless of text quoting style. In a
+documentation string, you can do this with escapes. For example, in
+the documentation string @t{"\\=`(a ,(sin 0)) ==> (a 0.0)"} the grave
+accent is intended to denote Lisp code, so it is escaped and displays
+as itself regardless of quoting style. In a call to @code{message} or
+@code{error}, you can avoid translation by using a format @t{"%s"}
+with an argument that is a call to @code{format}. For example,
+@code{(message "%s" (format "`(a ,(sin %S)) ==> (a %S)" x (sin x)))}
+displays a message that starts with grave accent regardless of text
+quoting style.
+
+@defvar text-quoting-style
+@cindex curved quotes
+@cindex curly quotes
+The value of this variable is a symbol that specifies the style Emacs
+should use for single quotes in the wording of help and messages. If
+the variable's value is @code{curve}, the style is @t{‘like this’}
+with curved single quotes. If the value is @code{straight}, the style
+is @t{'like this'} with straight apostrophes. If the value is
+@code{grave}, quotes are not translated and the style is @t{`like
+this'} with grave accent and apostrophe, the standard style before
+Emacs version 25. The default value @code{nil} acts like @code{curve}
+if curved single quotes are displayable, and like @code{grave}
+otherwise.
+
+This variable can be used by experts on platforms that have problems
+with curved quotes. As it is not intended for casual use, it is not a
+user option.
+@end defvar
+
@node Describing Characters
@section Describing Characters for Help Messages
@cindex describe characters and events
diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi
index 219225d412..09434ce573 100644
--- a/doc/lispref/strings.texi
+++ b/doc/lispref/strings.texi
@@ -826,17 +826,15 @@ Formatting Strings
@defun format-message string &rest objects
@cindex curved quotes, in formatted messages
@cindex curly quotes, in formatted messages
-@cindex @code{text-quoting-style}, and formatting messages
This function acts like @code{format}, except it also converts any
grave accents (@t{`}) and apostrophes (@t{'}) in @var{string} as per the
value of @code{text-quoting-style}.
-A format that quotes with grave accents and apostrophes @t{`like
-this'} typically generates curved quotes @t{‘like this’}. In
-contrast, a format that quotes with only apostrophes @t{'like this'}
-typically generates two closing curved quotes @t{’like this’}, an
-unusual style in English. @xref{Keys in Documentation}, for how the
-@code{text-quoting-style} variable affects generated quotes.
+@vindex text-quoting-style
+The @code{text-quoting-style} variable controls what quotes are
+generated. Typically grave accent and apostrophe in the format
+generate matching curved quotes, e.g., @t{"Missing `%s'"} might
+generate @t{"Missing ‘foo’"}. @xref{Text Quoting Style}.
@end defun
@cindex @samp{%} in format
diff --git a/doc/lispref/tips.texi b/doc/lispref/tips.texi
index 17fd4a1027..0bccde66cd 100644
--- a/doc/lispref/tips.texi
+++ b/doc/lispref/tips.texi
@@ -683,8 +683,8 @@ Documentation Tips
older convention was designed for now-obsolete displays in which grave
accent and apostrophe were mirror images.
Documentation using this convention is converted to the user's
-preferred format when it is copied into a help buffer. @xref{Keys in
-Documentation}.
+preferred format when it is copied into a help buffer. @xref{Text
+Quoting Style}.
@cindex hyperlinks in documentation strings
Help mode automatically creates a hyperlink when a documentation string
--
2.13.5
next prev parent reply other threads:[~2017-09-22 20:42 UTC|newest]
Thread overview: 127+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-16 12:56 Emacs 26.1 release branch created Eli Zaretskii
2017-09-16 13:01 ` Eli Zaretskii
2017-09-16 13:09 ` Mark Oteiza
2017-09-16 13:39 ` Eli Zaretskii
2017-09-16 14:51 ` Mark Oteiza
2017-09-16 14:58 ` Eli Zaretskii
2017-09-22 16:59 ` Mark Oteiza
2017-09-22 19:59 ` Eli Zaretskii
2017-09-22 20:05 ` Mark Oteiza
2017-09-22 20:11 ` Eli Zaretskii
2017-09-22 20:13 ` Mark Oteiza
2017-09-29 20:25 ` [PATCH] lcms2 (was Re: Emacs 26.1 release branch created) Mark Oteiza
2017-09-30 9:22 ` Eli Zaretskii
2017-09-16 14:18 ` Emacs 26.1 release branch created Alan Mackenzie
2017-09-16 17:05 ` Rasmus
2017-09-16 17:34 ` Eli Zaretskii
2017-09-18 9:36 ` Rasmus
2017-09-18 9:47 ` Rasmus
2017-09-20 11:45 ` Kaushal Modi
2017-09-20 11:59 ` Nicolas Petton
2017-09-20 12:01 ` Kaushal Modi
2017-09-20 12:17 ` Rasmus
2017-09-20 12:24 ` Kaushal Modi
2017-09-20 13:03 ` Rasmus
2017-09-16 18:06 ` Nicolas Petton
2017-09-16 19:54 ` Lars Ingebrigtsen
2017-09-17 2:31 ` Eli Zaretskii
2017-09-18 16:22 ` Alan Third
2017-09-18 17:36 ` Eli Zaretskii
2017-09-19 17:35 ` Alan Mackenzie
2017-09-19 17:54 ` Eli Zaretskii
2017-09-19 18:09 ` Alan Mackenzie
2017-09-19 18:34 ` Eli Zaretskii
2017-09-19 18:36 ` Eli Zaretskii
2017-09-19 19:11 ` Paul Eggert
2017-09-19 19:43 ` Alan Mackenzie
2017-09-19 20:54 ` About curly quotes (again) [Was: Emacs 26.1 release branch created] Kaushal Modi
2017-09-19 21:09 ` Alan Mackenzie
2017-09-19 23:33 ` John Wiegley
2017-09-20 0:00 ` Paul Eggert
2017-09-20 4:16 ` Marcin Borkowski
2017-09-20 6:17 ` Noam Postavsky
2017-09-23 11:18 ` Marcin Borkowski
2017-09-23 12:14 ` Eli Zaretskii
2017-09-23 19:40 ` Marcin Borkowski
2017-09-24 2:46 ` Eli Zaretskii
2017-09-25 13:40 ` Marcin Borkowski
2017-09-25 18:57 ` Eli Zaretskii
2017-09-26 12:39 ` Marcin Borkowski
2017-09-29 12:22 ` Eli Zaretskii
2017-09-30 7:58 ` Marcin Borkowski
2017-09-30 8:31 ` Eli Zaretskii
2017-09-30 20:03 ` Marcin Borkowski
2017-09-20 17:44 ` Drew Adams
2017-09-20 6:41 ` Eli Zaretskii
2017-09-20 14:45 ` John Wiegley
2017-09-20 14:48 ` Eli Zaretskii
2017-09-21 17:30 ` Filipp Gunbin
2017-09-19 23:14 ` Emacs 26.1 release branch created Paul Eggert
2017-09-20 6:41 ` Eli Zaretskii
2017-09-20 13:01 ` Richard Stallman
2017-09-20 13:10 ` Eli Zaretskii
2017-09-20 20:37 ` Richard Stallman
2017-09-21 20:36 ` Paul Eggert
[not found] ` <<E1duedQ-0002Bs-O3@fencepost.gnu.org>
2017-09-20 17:50 ` Drew Adams
2017-09-20 6:32 ` Eli Zaretskii
2017-09-19 17:58 ` Paul Eggert
2017-09-20 18:30 ` John Wiegley
2017-09-21 20:54 ` Alan Mackenzie
2017-09-22 5:19 ` Paul Eggert
2017-09-22 5:58 ` John Wiegley
2017-09-22 18:04 ` Alan Mackenzie
2017-09-22 18:47 ` John Wiegley
2017-09-22 20:42 ` Paul Eggert [this message]
2017-09-24 14:33 ` Alan Mackenzie
2017-09-24 18:13 ` Paul Eggert
2017-09-24 20:18 ` Alan Mackenzie
2017-09-22 7:17 ` Eli Zaretskii
2017-09-22 18:41 ` Alan Mackenzie
2017-09-22 19:09 ` Stefan Monnier
2017-09-22 19:28 ` John Wiegley
2017-09-22 19:35 ` Alan Mackenzie
2017-09-22 19:46 ` John Wiegley
2017-09-22 22:07 ` Alan Mackenzie
2017-09-24 14:39 ` Alan Mackenzie
2017-09-24 18:26 ` Paul Eggert
2017-09-24 19:41 ` Alan Mackenzie
2017-09-24 23:16 ` John Wiegley
2017-09-25 0:08 ` Paul Eggert
2017-09-25 4:23 ` John Wiegley
2017-09-25 19:03 ` Alan Mackenzie
2017-09-25 19:43 ` Drew Adams
2017-09-25 20:24 ` John Wiegley
2017-09-25 22:25 ` Paul Eggert
2017-09-26 2:52 ` Drew Adams
2017-09-26 3:23 ` Paul Eggert
2017-09-26 19:28 ` Philipp Stephani
2017-09-26 20:26 ` Alan Mackenzie
2017-09-27 9:15 ` Alexis
2017-09-27 22:13 ` Richard Stallman
2017-09-28 1:48 ` Alexis
2017-09-27 23:41 ` Óscar Fuentes
2017-09-28 1:25 ` Alexis
2017-09-27 11:54 ` Philippe Vaucher
2017-09-27 18:43 ` Alan Mackenzie
2017-09-28 7:42 ` Philippe Vaucher
2017-09-26 20:33 ` Drew Adams
2017-09-29 10:42 ` Eli Zaretskii
2017-09-29 9:34 ` Eli Zaretskii
[not found] ` <<83shf597b0.fsf@gnu.org>
2017-09-30 4:06 ` Drew Adams
2017-09-30 4:41 ` Paul Eggert
2017-09-30 13:58 ` Drew Adams
2017-09-25 23:36 ` Paul Eggert
2017-09-30 12:10 ` Alan Mackenzie
2017-10-01 0:16 ` Paul Eggert
2017-10-01 11:37 ` Alan Mackenzie
2017-09-25 5:51 ` Paul Eggert
2017-09-22 19:35 ` Eli Zaretskii
2017-09-27 18:09 ` João Távora
2017-09-27 19:32 ` John Wiegley
2017-09-28 7:28 ` João Távora
2017-09-28 7:28 ` João Távora
2017-09-28 16:58 ` John Wiegley
2017-09-29 15:44 ` Eli Zaretskii
2017-09-29 17:04 ` João Távora
2017-09-29 18:11 ` Eli Zaretskii
2017-09-29 18:13 ` John Wiegley
[not found] <<m28th6ilcn.fsf@newartisans.com>
[not found] <<83377mls4d.fsf@gnu.org>
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5de6367f-49a0-b991-e084-c673d8443fde@cs.ucla.edu \
--to=eggert@cs.ucla.edu \
--cc=acm@muc.de \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=rms@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.