Prefer curved quotes in examples if users will typically see
curved quotes when the examples run.
Mention format-message when appropriate.
Don’t use @code in examples.
Quote an apostrophe with @kbd.
* lisp/progmodes/which-func.el (which-func-ff-hook): Look for new
imenu-unavailable error symbol instead of trying to match message
exactly.
* lisp/imenu.el (imenu-unavailable): New error
(imenu-unavailable-error): New function.
* test/automated/python-tests.el
(python-shell-calculate-command-1): Run python-shell-interpreter
through shell-quote-argument before comparing with what
python-shell-calculate-command returns.
(python-shell-calculate-pythonpath-1)
(python-shell-calculate-pythonpath-2)
(python-shell-calculate-process-environment-2): Use path-separator
instead of a literal ':'.
(python-shell-calculate-exec-path-2)
(python-shell-calculate-exec-path-3)
(python-shell-calculate-exec-path-4)
(python-shell-with-environment-1)
(python-shell-with-environment-2): Run "/env/bin" through
expand-file-name before comparing with exec-path. (Bug#21375)
* lisp/startup.el (normal-splash-screen): Use standard
"M-" abbrevation rather than a confusingly-different one.
(normal-no-mouse-startup-screen): Follow ‘text-quoting-style’.
* src/editfns.c (styled_format): Refactor internally, mostly by
moving declarations closer to uses. This should not affect behavior.
* test/automated/textprop-tests.el (textprop-tests-format): New test.
These auxiliary programs can’t use Emacs’s text-quoting-style,
and it’s too much trouble to redo that mechanism by hand.
So just use straight quotes for now.
* lib-src/ebrowse.c (main):
* lib-src/emacsclient.c (decode_options, main):
* lib-src/etags.c (Ada_help, default_C_help, Cplusplus_help)
(Forth_help, HTML_help, Lisp_help, Makefile_help, Objc_help)
(Perl_help, PHP_help, Python_help, Scheme_help, TeX_help, auto_help)
(none_help, print_language_names, print_help, add_regex)
(suggest_asking_for_help):
* lib-src/make-docfile.c (write_c_args, scan_c_stream):
Use straight quotes in diagnostics.
This removes the need for GCPRO1 etc. Suggested by Stefan Monnier in:
http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00918.html
* doc/lispref/internals.texi (Writing Emacs Primitives):
* etc/NEWS:
Document the change.
* src/alloc.c (gcprolist, dump_zombies, MAX_ZOMBIES, zombies)
(nzombies, ngcs, avg_zombies, max_live, max_zombies, avg_live)
(Fgc_status, check_gcpros, relocatable_string_data_p, gc-precise):
* src/bytecode.c (mark_byte_stack) [BYTE_MARK_STACK]:
* src/eval.c (gcpro_level) [DEBUG_GCPRO]:
* src/lisp.h (struct handler.gcpro, struct gcpro, GC_MARK_STACK)
(GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
(GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
(BYTE_MARK_STACK, GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6)
(GCPRO7, UNGCPRO, RETURN_UNGCPRO):
Remove. All uses removed. The code now assumes
GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS.
* src/bytecode.c (relocate_byte_stack):
Rename from unmark_byte_stack, since it now only relocates.
All callers changed.
* src/frame.c (make_frame): Add an IF_LINT to pacify GCC 5.2
with GCPROs removed.
* src/systime.h: Use EMACS_LISP_H as the canary instead of GCPRO1.
* test/automated/finalizer-tests.el (finalizer-basic)
(finalizer-circular-reference, finalizer-cross-reference)
(finalizer-error):
* test/automated/generator-tests.el (cps-test-iter-close-finalizer):
Remove tests, as they depend on gc-precise.
Use the new `seq-into-sequence' in seqs passed to `seq-concatenate' to
ensure that concatenation happens on sequences only. This makes it
possible to use `seq-concatenate' for new types of seqs.
* lisp/emacs-lisp/seq.el (seq-into-sequence, seq-concatenate): New
function used in `seq-concatenate'.
* test/automated/seq-tests.el (test-seq-into-sequence): New unit test
for seq-into-sequence.
* src/nsfont.m (nsfont_open): Use directed quotes in format; they
should work now.
* src/xdisp.c (message_to_stderr): New function, refactored from
part of ‘message3_nolog’.
(message3_nolog): Use it.
(message_with_string): Use it. Don’t mishandle NUL bytes when
noninteractive. Prefer AUTO_STRING when it’s most likely faster.
Use ‘format-message’, not ‘format’, so that quotes are translated.
* src/print.c (print_error_message): Translate quotes and command
keys in errmsg so that users see, e.g., "Symbol’s value as
variable is void: foo" when text-quoting-style is curved.
* lisp/net/tramp-adb.el:
* lisp/net/tramp-cache.el:
* lisp/net/tramp-compat.el:
* lisp/net/tramp-gvfs.el:
* lisp/net/tramp-gw.el:
* lisp/net/tramp-sh.el:
* lisp/net/tramp-smb.el:
* lisp/net/tramp.el:
Stick with grave quoting in diagnostics strings. This is more
portable to older Emacs, desirable for Tramp.
* lisp/net/tramp-cache.el: Use ‘format-message’, not ‘format’,
for diagnostic that needs requoting.
* lisp/net/tramp-compat.el (format-message):
Fall back on simple ‘format’, since that’s good enough now.
* lisp/cus-edit.el (custom-guess-type, custom-variable-documentation):
* lisp/wid-edit.el (widget-docstring):
Get raw docstring here since it’s cooked later and should not be
cooked twice.
* lisp/cus-edit.el (custom-group-value-create):
Cook the docstring before inserting it.
* lisp/cus-start.el (text-quoting-style): Quote the customization
docstrings according to the new rules. Give curved examples.
That way, the caller doesn’t have to use curved quotes to
get diagnostics that match the text-quoting-style preferences.
Suggested by Dmitry Gutov in:
http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00893.html
This means we no longer need %qs, so remove that format.
While we’re at it, fix an unlikely bug and lessen the pressure
on the garbage collector by processing the string once rather
than twice in the usual case.
* doc/lispref/strings.texi (Formatting Strings):
* etc/NEWS: Document this.
* lisp/subr.el (format-message): Remove; now done in C.
* src/callint.c (Fcall_interactively):
* src/editfns.c (Fmessage, Fmessage_box):
Use Fformat_message instead of Finternal__text_restyle
followed by Fformat.
* src/doc.c (LSQM, RSQM): Remove; all uses changed to use
uLSQM and uRSQM.
(Fsubstitute_command_keys): Prefer AUTO_STRING to build_string
when pure ASCII now suffices. Fix unlikely bug when parsing
unibyte string containing non-ASCII bytes. Use inline code
rather than memcpy, as it’s a tiny number of bytes.
(Finternal__text_restyle): Remove; no longer used.
(syms_of_doc): Don’t declare it.
* src/editfns.c (Fformat): Rewrite in terms of new function
‘styled_format’.
(Fformat_message): New function, moved here from subr.el.
(styled_format): New function, with the old guts of Fformat,
except it now optionally transliterates quotes, and it transliterates
traditional grave accent and apostrophe quoting as well.
Remove recently-added q flag; no longer needed or used.
(syms_of_editfns): Define format-message.
* src/lisp.h (uLSQM0, uLSQM1, uLSQM2, uRSQM0, uRSQM1, uRSQM2):
Remove; no longer need to be global symbols.
* src/xdisp.c (vadd_to_log): Use Fformat_message, not Fformat,
so that callers can use `%s'.
* src/image.c (image_size_error, xbm_load_image, xbm_load)
(xpm_load, pbm_load, png_load_body, jpeg_load_body, tiff_load)
(gif_load, imagemagick_load_image, imagemagick_load, svg_load)
(svg_load_image, gs_load, x_kill_gs_process):
* src/lread.c (load_warn_old_style_backquotes):
* src/xfaces.c (load_pixmap):
* src/xselect.c (x_clipboard_manager_error_1):
Use `%s' instead of %qs in formats.
This is simpler and easier to explain, and should encourage better
typography. Do this in Electric Quote mode and when translating
quotes in docstrings. Inspired by a suggestion by Dmitry Gutov in:
https://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00806.html
* doc/emacs/text.texi (Quotation Marks):
* doc/lispref/help.texi (Keys in Documentation):
* etc/NEWS:
Document this.
* lisp/electric.el (electric-quote-post-self-insert-function):
* src/doc.c (Fsubstitute_command_keys):
Always treat ' like ’ even when not matched by an open quote.