diff options
Diffstat (limited to 'src/doc.c')
-rw-r--r-- | src/doc.c | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/src/doc.c b/src/doc.c index 1307aa5ee92..6be023bb934 100644 --- a/src/doc.c +++ b/src/doc.c @@ -327,6 +327,11 @@ string is passed through `substitute-command-keys'. */) xsignal1 (Qvoid_function, function); if (CONSP (fun) && EQ (XCAR (fun), Qmacro)) fun = XCDR (fun); +#ifdef HAVE_NATIVE_COMP + if (!NILP (Fsubr_native_elisp_p (fun))) + doc = native_function_doc (fun); + else +#endif if (SUBRP (fun)) doc = make_fixnum (XSUBR (fun)->doc); #ifdef HAVE_MODULES @@ -495,10 +500,11 @@ store_function_docstring (Lisp_Object obj, EMACS_INT offset) XSETCAR (tem, make_fixnum (offset)); } } - /* Lisp_Subrs have a slot for it. */ - else if (SUBRP (fun)) - XSUBR (fun)->doc = offset; + else if (SUBRP (fun) && !SUBR_NATIVE_COMPILEDP (fun)) + { + XSUBR (fun)->doc = offset; + } /* Bytecode objects sometimes have slots for it. */ else if (COMPILEDP (fun)) @@ -544,7 +550,7 @@ the same file name is found in the `doc-directory'. */) Lisp_Object delayed_init = find_symbol_value (intern ("custom-delayed-init-variables")); - if (EQ (delayed_init, Qunbound)) delayed_init = Qnil; + if (!CONSP (delayed_init)) delayed_init = Qnil; CHECK_STRING (filename); @@ -713,17 +719,19 @@ syms_of_doc (void) DEFVAR_LISP ("text-quoting-style", Vtext_quoting_style, doc: /* Style to use for single quotes in help and messages. -Its value should be a symbol. It works by substituting certain single -quotes for grave accent and apostrophe. This is done in help output -\(but not for display of Info manuals) and in functions like `message' -and `format-message'. It is not done in `format'. - -`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\\='; -i.e., do not alter quote marks. The default value nil acts like -`curve' if curved single quotes are displayable, and like `grave' -otherwise. */); + +The value of this variable determines substitution of grave accents +and apostrophes in help output (but not for display of Info +manuals) and in functions like `message' and `format-message', but not +in `format'. + +The value should be one of these symbols: + `curve': quote with curved single quotes ‘like this’. + `straight': quote with straight apostrophes \\='like this\\='. + `grave': quote with grave accent and apostrophe \\=`like this\\='; + i.e., do not alter the original quote marks. + nil: like `curve' if curved single quotes are displayable, + and like `grave' otherwise. This is the default. */); Vtext_quoting_style = Qnil; DEFVAR_BOOL ("internal--text-quoting-flag", text_quoting_flag, |