X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/60d1b18734fff144f1608da6228d60e4bda7b24c..63efcc268635dea78c6bd80749eae4ee2c72d717:/src/doc.c
diff --git a/src/doc.c b/src/doc.c
index 5d0aae795b..c5dd8d5a78 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -1,14 +1,14 @@
/* Record indices of function doc strings stored in a file. -*- coding: utf-8 -*-
-Copyright (C) 1985-1986, 1993-1995, 1997-2015 Free Software Foundation,
+Copyright (C) 1985-1986, 1993-1995, 1997-2016 Free Software Foundation,
Inc.
This file is part of GNU Emacs.
GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,9 +31,9 @@ along with GNU Emacs. If not, see . */
#include "lisp.h"
#include "character.h"
+#include "coding.h"
#include "buffer.h"
#include "disptab.h"
-#include "keyboard.h"
#include "keymap.h"
/* Buffer used for reading from documentation file. */
@@ -138,6 +138,9 @@ get_doc_string (Lisp_Object filepos, bool unibyte, bool definition)
#endif
if (fd < 0)
{
+ if (errno == EMFILE || errno == ENFILE)
+ report_file_error ("Read error on documentation file", file);
+
SAFE_FREE ();
AUTO_STRING (cannot_open, "Cannot open doc string file \"");
AUTO_STRING (quote_nl, "\"\n");
@@ -724,7 +727,7 @@ as the keymap for future \\=\\[COMMAND] substrings.
Each \\=â and \\=` is replaced by left quote, and each \\=â and \\='
is replaced by right quote. Left and right quote characters are
-specified by âtext-quoting-styleâ.
+specified by `text-quoting-style'.
\\=\\= quotes the following character and is discarded; thus,
\\=\\=\\=\\= puts \\=\\= into the output, \\=\\=\\=\\[ puts \\=\\[ into the output, and
@@ -865,16 +868,14 @@ Otherwise, return a new string. */)
\ just sets the keymap used for \[cmd]. */
else if (strp[0] == '\\' && (strp[1] == '{' || strp[1] == '<'))
{
- struct buffer *oldbuf;
- ptrdiff_t start_idx;
+ {
/* This is for computing the SHADOWS arg for describe_map_tree. */
Lisp_Object active_maps = Fcurrent_active_maps (Qnil, Qnil);
- Lisp_Object earlier_maps;
ptrdiff_t count = SPECPDL_INDEX ();
strp += 2; /* skip \{ or \< */
start = strp;
- start_idx = start - SDATA (string);
+ ptrdiff_t start_idx = start - SDATA (string);
while ((strp - SDATA (string) < SBYTES (string))
&& *strp != '}' && *strp != '>')
@@ -904,7 +905,7 @@ Otherwise, return a new string. */)
}
/* Now switch to a temp buffer. */
- oldbuf = current_buffer;
+ struct buffer *oldbuf = current_buffer;
set_buffer_internal (XBUFFER (Vprin1_to_string_buffer));
/* This is for an unusual case where some after-change
function uses 'format' or 'prin1' or something else that
@@ -929,7 +930,8 @@ Otherwise, return a new string. */)
{
/* Get the list of active keymaps that precede this one.
If this one's not active, get nil. */
- earlier_maps = Fcdr (Fmemq (tem, Freverse (active_maps)));
+ Lisp_Object earlier_maps
+ = Fcdr (Fmemq (tem, Freverse (active_maps)));
describe_map_tree (tem, 1, Fnreverse (earlier_maps),
Qnil, 0, 1, 0, 0, 1);
}
@@ -937,6 +939,7 @@ Otherwise, return a new string. */)
Ferase_buffer ();
set_buffer_internal (oldbuf);
unbind_to (count, Qnil);
+ }
subst_string:
start = SDATA (tem);
@@ -1023,16 +1026,17 @@ syms_of_doc (void)
Vbuild_files = Qnil;
DEFVAR_LISP ("text-quoting-style", Vtext_quoting_style,
- doc: /* Style to use for single quotes when generating text.
-âcurveâ means quote with curved single quotes \\=âlike this\\=â.
-âstraightâ means quote with straight apostrophes \\='like this\\='.
-âgraveâ means quote with grave accent and apostrophe \\=`like this\\='.
-The default value nil acts like âcurveâ if curved single quotes are
-displayable, and like âgraveâ otherwise. */);
+ doc: /* Style to use for single quotes in help and messages.
+Its value should be a symbol.
+`curve' means quote with curved single quotes \\=âlike this\\=â.
+`straight' means quote with straight apostrophes \\='like this\\='.
+`grave' means quote with grave accent and apostrophe \\=`like this\\='.
+The default value nil acts like `curve' if curved single quotes are
+displayable, and like `grave' otherwise. */);
Vtext_quoting_style = Qnil;
DEFVAR_BOOL ("internal--text-quoting-flag", text_quoting_flag,
- doc: /* If nil, a nil âtext-quoting-styleâ is treated as âgraveâ. */);
+ doc: /* If nil, a nil `text-quoting-style' is treated as `grave'. */);
/* Initialized by âmainâ. */
defsubr (&Sdocumentation);