aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2016-05-10 07:38:23 -0700
committerPaul Eggert2016-05-10 07:41:40 -0700
commit433d366dc7b053048abf710d790ff62421dd1570 (patch)
treef68895872dd0384664bb66a56371b64e5630db61 /src
parent8939ae68d430ef272194ac64144ceb58ae0dbd3f (diff)
downloademacs-433d366dc7b053048abf710d790ff62421dd1570.tar.gz
emacs-433d366dc7b053048abf710d790ff62421dd1570.zip
'text-quoting-style' now affects only ` and '
Change 'text-quoting-style' so that it no longer affects formatting of curved quotes in format arguments to functions like 'message'. In particular, when this variable's value is 'grave', all quotes in formats are output as-is. * doc/lispref/help.texi (Keys in Documentation): * doc/lispref/strings.texi (Formatting Strings): * doc/lispref/tips.texi (Documentation Tips): * etc/NEWS: * src/doc.c (syms_of_doc): Document this. * lisp/help-fns.el (describe-function-1): * src/doc.c (text_quoting_style, Fsubstitute_command_keys) (syms_of_doc): * src/editfns.c (styled_format): Omit now-unnecessary code. * src/lisp.h (LEAVE_QUOTING_STYLE): Remove.
Diffstat (limited to 'src')
-rw-r--r--src/doc.c41
-rw-r--r--src/editfns.c22
-rw-r--r--src/lisp.h3
3 files changed, 11 insertions, 55 deletions
diff --git a/src/doc.c b/src/doc.c
index 53264334ed5..017dd173d0a 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -704,8 +704,6 @@ text_quoting_style (void)
704 ? default_to_grave_quoting_style () 704 ? default_to_grave_quoting_style ()
705 : EQ (Vtext_quoting_style, Qgrave)) 705 : EQ (Vtext_quoting_style, Qgrave))
706 return GRAVE_QUOTING_STYLE; 706 return GRAVE_QUOTING_STYLE;
707 else if (EQ (Vtext_quoting_style, Qleave))
708 return LEAVE_QUOTING_STYLE;
709 else if (EQ (Vtext_quoting_style, Qstraight)) 707 else if (EQ (Vtext_quoting_style, Qstraight))
710 return STRAIGHT_QUOTING_STYLE; 708 return STRAIGHT_QUOTING_STYLE;
711 else 709 else
@@ -982,29 +980,12 @@ Otherwise, return a new string. */)
982 nchars++; 980 nchars++;
983 changed = true; 981 changed = true;
984 } 982 }
985 else if (! multibyte)
986 *bufp++ = *strp++, nchars++;
987 else 983 else
988 { 984 {
989 int len; 985 *bufp++ = *strp++;
990 int ch = STRING_CHAR_AND_LENGTH (strp, len); 986 if (multibyte)
991 if ((ch == LEFT_SINGLE_QUOTATION_MARK 987 while (! CHAR_HEAD_P (*strp))
992 || ch == RIGHT_SINGLE_QUOTATION_MARK) 988 *bufp++ = *strp++;
993 && quoting_style != CURVE_QUOTING_STYLE
994 && quoting_style != LEAVE_QUOTING_STYLE)
995 {
996 *bufp++ = ((ch == LEFT_SINGLE_QUOTATION_MARK
997 && quoting_style == GRAVE_QUOTING_STYLE)
998 ? '`' : '\'');
999 strp += len;
1000 changed = true;
1001 }
1002 else
1003 {
1004 do
1005 *bufp++ = *strp++;
1006 while (--len != 0);
1007 }
1008 nchars++; 989 nchars++;
1009 } 990 }
1010 } 991 }
@@ -1036,7 +1017,6 @@ void
1036syms_of_doc (void) 1017syms_of_doc (void)
1037{ 1018{
1038 DEFSYM (Qfunction_documentation, "function-documentation"); 1019 DEFSYM (Qfunction_documentation, "function-documentation");
1039 DEFSYM (Qleave, "leave");
1040 DEFSYM (Qgrave, "grave"); 1020 DEFSYM (Qgrave, "grave");
1041 DEFSYM (Qstraight, "straight"); 1021 DEFSYM (Qstraight, "straight");
1042 1022
@@ -1051,15 +1031,16 @@ syms_of_doc (void)
1051 DEFVAR_LISP ("text-quoting-style", Vtext_quoting_style, 1031 DEFVAR_LISP ("text-quoting-style", Vtext_quoting_style,
1052 doc: /* Style to use for single quotes in help and messages. 1032 doc: /* Style to use for single quotes in help and messages.
1053Its value should be a symbol. It works by substituting certain single 1033Its value should be a symbol. It works by substituting certain single
1054quotes for certain other single quotes. This is done in help output and 1034quotes for grave accent and apostrophe. This is done in help output
1055`message' output. It is not done in `format'. 1035and in functions like `message' and `format-message'. It is not done
1036in `format'.
1056 1037
1057`leave' means do not do any substitutions.
1058`curve' means quote with curved single quotes \\=‘like this\\=’. 1038`curve' means quote with curved single quotes \\=‘like this\\=’.
1059`straight' means quote with straight apostrophes \\='like this\\='. 1039`straight' means quote with straight apostrophes \\='like this\\='.
1060`grave' means quote with grave accent and apostrophe \\=`like this\\='. 1040`grave' means quote with grave accent and apostrophe \\=`like this\\=';
1061The default value nil acts like `curve' if curved single quotes are 1041i.e., do not alter quote marks. The default value nil acts like
1062displayable, and like `grave' otherwise. */); 1042`curve' if curved single quotes are displayable, and like `grave'
1043otherwise. */);
1063 Vtext_quoting_style = Qnil; 1044 Vtext_quoting_style = Qnil;
1064 1045
1065 DEFVAR_BOOL ("internal--text-quoting-flag", text_quoting_flag, 1046 DEFVAR_BOOL ("internal--text-quoting-flag", text_quoting_flag,
diff --git a/src/editfns.c b/src/editfns.c
index afcf1cab72b..6b0996d65eb 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -3977,8 +3977,6 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool message)
3977 multibyte = true; 3977 multibyte = true;
3978 3978
3979 int quoting_style = message ? text_quoting_style () : -1; 3979 int quoting_style = message ? text_quoting_style () : -1;
3980 if (quoting_style == LEAVE_QUOTING_STYLE)
3981 quoting_style = -1;
3982 3980
3983 /* If we start out planning a unibyte result, 3981 /* If we start out planning a unibyte result,
3984 then discover it has to be multibyte, we jump back to retry. */ 3982 then discover it has to be multibyte, we jump back to retry. */
@@ -4457,14 +4455,6 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool message)
4457 } 4455 }
4458 else 4456 else
4459 { 4457 {
4460 /* Named constants for the UTF-8 encodings of U+2018 LEFT SINGLE
4461 QUOTATION MARK and U+2019 RIGHT SINGLE QUOTATION MARK. */
4462 enum
4463 {
4464 uLSQM0 = 0xE2, uLSQM1 = 0x80, uLSQM2 = 0x98,
4465 /* uRSQM0 = 0xE2, uRSQM1 = 0x80, */ uRSQM2 = 0x99
4466 };
4467
4468 unsigned char str[MAX_MULTIBYTE_LENGTH]; 4458 unsigned char str[MAX_MULTIBYTE_LENGTH];
4469 4459
4470 if ((format_char == '`' || format_char == '\'') 4460 if ((format_char == '`' || format_char == '\'')
@@ -4480,18 +4470,6 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool message)
4480 } 4470 }
4481 else if (format_char == '`' && quoting_style == STRAIGHT_QUOTING_STYLE) 4471 else if (format_char == '`' && quoting_style == STRAIGHT_QUOTING_STYLE)
4482 convsrc = "'"; 4472 convsrc = "'";
4483 else if (format_char == uLSQM0 && CURVE_QUOTING_STYLE < quoting_style
4484 && multibyte_format
4485 && (unsigned char) format[0] == uLSQM1
4486 && ((unsigned char) format[1] == uLSQM2
4487 || (unsigned char) format[1] == uRSQM2))
4488 {
4489 convsrc = (((unsigned char) format[1] == uLSQM2
4490 && quoting_style == GRAVE_QUOTING_STYLE)
4491 ? "`" : "'");
4492 format += 2;
4493 memset (&discarded[format0 + 1 - format_start], 2, 2);
4494 }
4495 else 4473 else
4496 { 4474 {
4497 /* Copy a single character from format to buf. */ 4475 /* Copy a single character from format to buf. */
diff --git a/src/lisp.h b/src/lisp.h
index de74a47e3d3..1fc6130be0b 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -4198,9 +4198,6 @@ extern void syms_of_callproc (void);
4198/* Defined in doc.c. */ 4198/* Defined in doc.c. */
4199enum text_quoting_style 4199enum text_quoting_style
4200 { 4200 {
4201 /* Leave quotes unchanged. */
4202 LEAVE_QUOTING_STYLE,
4203
4204 /* Use curved single quotes ‘like this’. */ 4201 /* Use curved single quotes ‘like this’. */
4205 CURVE_QUOTING_STYLE, 4202 CURVE_QUOTING_STYLE,
4206 4203