1. 26 Aug, 2015 2 commits
    • Paul Eggert's avatar
      Prefer straight quoting in some etc text files · 1be208c2
      Paul Eggert authored
      These files are plain text and might be used by non-Emacs apps.
      They’re mostly ASCII, so just use straight quotes.
    • Paul Eggert's avatar
      format-message now curves ` and ' · 71781c31
      Paul Eggert authored
      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:
      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
      (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.
  2. 25 Aug, 2015 1 commit
    • Paul Eggert's avatar
      Treat ' like ’ even when not matching ` · 68280c5e
      Paul Eggert authored
      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:
      * 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.
  3. 24 Aug, 2015 3 commits
    • Paul Eggert's avatar
    • Paul Eggert's avatar
      More-conservative ‘format’ quote restyling · fbb5531f
      Paul Eggert authored
      Instead of restyling curved quotes for every call to ‘format’,
      create a new function ‘format-message’ that does the restyling,
      and using the new function instead of ‘format’ only in contexts
      where this seems appropriate.
      Problem reported by Dmitry Gutov and Andreas Schwab in:
      * doc/lispref/commands.texi (Using Interactive):
      * doc/lispref/control.texi (Signaling Errors, Signaling Errors):
      * doc/lispref/display.texi (Displaying Messages, Progress):
      * doc/lispref/elisp.texi:
      * doc/lispref/help.texi (Keys in Documentation):
      * doc/lispref/minibuf.texi (Minibuffer Misc):
      * doc/lispref/strings.texi (Formatting Strings):
      * etc/NEWS:
      Document the changes.
      * lisp/abbrev.el (expand-region-abbrevs):
      * lisp/apropos.el (apropos-library):
      * lisp/calc/calc-ext.el (calc-record-message)
      * lisp/calc/calc-help.el (calc-describe-key, calc-full-help):
      * lisp/calc/calc-lang.el (math-read-big-balance):
      * lisp/calc/calc-store.el (calc-edit-variable):
      * lisp/calc/calc-units.el (math-build-units-table-buffer):
      * lisp/calc/calc-yank.el (calc-edit-mode):
      * lisp/calendar/icalendar.el (icalendar-export-region)
      * lisp/cedet/mode-local.el (mode-local-print-binding)
      * lisp/cedet/semantic/complete.el (semantic-completion-message):
      * lisp/cedet/semantic/edit.el (semantic-parse-changes-failed):
      * lisp/cedet/semantic/wisent/comp.el (wisent-log):
      * lisp/cedet/srecode/insert.el (srecode-insert-show-error-report):
      * lisp/descr-text.el (describe-text-properties-1, describe-char):
      * lisp/dframe.el (dframe-message):
      * lisp/dired-aux.el (dired-query):
      * lisp/emacs-lisp/byte-opt.el (byte-compile-log-lap-1):
      * lisp/emacs-lisp/bytecomp.el (byte-compile-log)
      (byte-compile-log-file, byte-compile-warn, byte-compile-form):
      * lisp/emacs-lisp/cconv.el (cconv-convert, cconv--analyze-use)
      * lisp/emacs-lisp/check-declare.el (check-declare-warn):
      * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine):
      * lisp/emacs-lisp/cl-macs.el (cl-symbol-macrolet):
      * lisp/emacs-lisp/edebug.el (edebug-format):
      * lisp/emacs-lisp/eieio-core.el (eieio-oref):
      * lisp/emacs-lisp/eldoc.el (eldoc-minibuffer-message)
      * lisp/emacs-lisp/elint.el (elint-file, elint-log):
      * lisp/emacs-lisp/find-func.el (find-function-library):
      * lisp/emacs-lisp/macroexp.el (macroexp--obsolete-warning):
      * lisp/emacs-lisp/map-ynp.el (map-y-or-n-p):
      * lisp/emacs-lisp/nadvice.el (advice--make-docstring):
      * lisp/emacs-lisp/package.el (package-compute-transaction)
      (package-install-button-action, package-delete-button-action)
      * lisp/emacs-lisp/timer.el (timer-event-handler):
      * lisp/emacs-lisp/warnings.el (lwarn, warn):
      * lisp/emulation/viper-cmd.el:
      (viper-kill-buffer, viper-brac-function):
      * lisp/emulation/viper-macs.el (viper-record-kbd-macro):
      * lisp/facemenu.el (facemenu-add-new-face):
      * lisp/faces.el (face-documentation, read-face-name)
      (face-read-string, read-face-font, describe-face):
      * lisp/files.el (find-alternate-file, hack-local-variables)
      (hack-one-local-variable--obsolete, write-file)
      (basic-save-buffer, delete-directory):
      * lisp/format.el (format-write-file, format-find-file)
      * lisp/help-fns.el (help-fns--key-bindings)
      (help-fns--compiler-macro, help-fns--obsolete)
      (help-fns--interactive-only, describe-function-1)
      * lisp/help.el (describe-mode):
      * lisp/info-xref.el (info-xref-output):
      * lisp/info.el (Info-virtual-index-find-node)
      (Info-virtual-index, info-apropos):
      * lisp/international/kkc.el (kkc-error):
      * lisp/international/mule-cmds.el:
      (select-safe-coding-system, describe-input-method):
      * lisp/international/mule-conf.el (code-offset):
      * lisp/international/mule-diag.el (describe-character-set)
      * lisp/international/quail.el (quail-error):
      * lisp/minibuffer.el (minibuffer-message):
      * lisp/mpc.el (mpc--debug):
      * lisp/msb.el (msb--choose-menu):
      * lisp/net/ange-ftp.el (ange-ftp-message):
      * lisp/net/gnutls.el (gnutls-message-maybe):
      * lisp/net/newst-backend.el (newsticker--sentinel-work):
      * lisp/net/newst-treeview.el (newsticker--treeview-load):
      * lisp/net/nsm.el (nsm-query-user):
      * lisp/net/rlogin.el (rlogin):
      * lisp/net/soap-client.el (soap-warning):
      * lisp/net/tramp.el (tramp-debug-message):
      * lisp/nxml/nxml-outln.el (nxml-report-outline-error):
      * lisp/nxml/nxml-parse.el (nxml-parse-error):
      * lisp/nxml/rng-cmpct.el (rng-c-error):
      * lisp/nxml/rng-match.el (rng-compile-error):
      * lisp/nxml/rng-uri.el (rng-uri-error):
      * lisp/obsolete/iswitchb.el (iswitchb-possible-new-buffer):
      * lisp/org/org-ctags.el:
      * lisp/proced.el (proced-log):
      * lisp/progmodes/ebnf2ps.el (ebnf-log):
      * lisp/progmodes/flymake.el (flymake-log):
      * lisp/progmodes/vhdl-mode.el (vhdl-warning-when-idle):
      * lisp/replace.el (occur-1):
      * lisp/simple.el (execute-extended-command)
      (undo-outer-limit-truncate, define-alternatives):
      * lisp/startup.el (command-line):
      * lisp/subr.el (error, user-error, add-to-list):
      * lisp/tutorial.el (tutorial--describe-nonstandard-key)
      * src/callint.c (Fcall_interactively):
      * src/editfns.c (Fmessage, Fmessage_box):
      Restyle the quotes of format strings intended for use as a
      diagnostic, when restyling seems appropriate.
      * lisp/subr.el (format-message): New function.
      * src/doc.c (Finternal__text_restyle): New function.
      (syms_of_doc): Define it.
    • Paul Eggert's avatar
  4. 23 Aug, 2015 1 commit
  5. 21 Aug, 2015 2 commits
    • Tassilo Horn's avatar
      Use add-function for prettify-symbols-compose-predicate · 2649105a
      Tassilo Horn authored
      * lisp/textmodes/tex-mode.el (tex-common-initialization): Set
      prettify-symbols-compose-predicate in terms of add-function.
      * etc/NEWS: Mention prettify-symbols-compose-predicate and
      prettify-symbols-mode support in tex-mode.
    • Martin Rudalics's avatar
      Fix frame geometry related text · e656b511
      Martin Rudalics authored
      * doc/lispref/frames.texi (Frame Layout): Rename
      `x-frame-geometry' to `frame-geometry'.
      * doc/lispref/frames.texi (Mouse Position):
      * doc/lispref/windows.texi (Coordinates and Windows): Use
      `set-mouse-absolute-pixel-position' instead of
  6. 20 Aug, 2015 1 commit
  7. 19 Aug, 2015 1 commit
    • Paul Eggert's avatar
      New q flag for ‘format’ · 67de1b6f
      Paul Eggert authored
      * doc/lispref/processes.texi (Sentinels):
      Don't hardwire grave quoting style in example.
      * doc/lispref/strings.texi (Formatting Strings):
      * etc/NEWS:
      Document new q flag.
      * src/editfns.c (Fformat): Implement it.
  8. 15 Aug, 2015 2 commits
    • Eli Zaretskii's avatar
      Remove files used by the old MS-Windows specific build procedure · 8db2b2a7
      Eli Zaretskii authored
      * nt/configure.bat: Remove everything except the blurb about the
      new build procedure.
      * make-dist: Remove references to makefile.w32-in in various
      directories, and to files in nt/ that were deleted.
      * etc/NEWS: Mention the fact that the files were dropped.
    • Paul Eggert's avatar
      Default to inotify instead of gfile · 200c2b10
      Paul Eggert authored
      * configure.ac (with_file_notification): Fix typo that
      prevented suppression of file notification if HAVE_NS.
      (NOTIFY_OBJ): Prefer inotify to gfile if both exist and
      with_file_notification is 'yes' (Bug#21241).
      * etc/NEWS: Mention this.
  9. 14 Aug, 2015 1 commit
    • Paul Eggert's avatar
      Extend ‘format’ to translate curved quotes · 244c8016
      Paul Eggert authored
      This is a followup to the recent doc string change, and deals with
      diagnostics and the like.  This patch is more conservative than
      the doc string change, in that the behavior of ‘format’ changes
      only if its first arg contains curved quotes and the user prefers
      straight or grave quotes.  (Come to think of it, perhaps we should
      be similarly conservative with doc strings too, but that can wait.)
      The upside of this conservatism is that existing usage is almost
      surely unaffected.  The downside is that we'll eventually have to
      change Emacs's format strings to use curved quotes in places where
      the user might want curved quotes, but that's a simple and
      mechanical translation that I'm willing to do later.  (Bug#21222)
      * doc/lispref/help.texi (Keys in Documentation):
      Move description of text-quoting-style from here ...
      * doc/lispref/strings.texi (Formatting Strings):
      ... to here, and describe new behavior of ‘format’.
      * etc/NEWS: Describe new behavior.
      * lisp/calc/calc-help.el (calc-describe-thing):
      * lisp/emacs-lisp/derived.el (derived-mode-make-docstring):
      * lisp/info.el (Info-find-index-name):
      Use ‘concat’ rather than ‘format’ to avoid misinterpretation
      of recently-added curved quotes.
      * src/doc.c (uLSQM0, uLSQM1, uLSQM2, uRSQM0, uRSQM1, uRSQM2):
      Move from here ...
      * src/lisp.h: ... to here.
      * src/doc.c (text_quoting_style): New function.
      (Fsubstitute_command_keys): Use it.
      * src/editfns.c (Fformat): Implement new behavior.
      * src/lisp.h (enum text_quoting_style): New enum.
  10. 13 Aug, 2015 1 commit
    • Paul Eggert's avatar
      Optional args for holiday-greek-orthodox-easter · b532875a
      Paul Eggert authored
      * etc/NEWS: Document this.
      * lisp/calendar/holidays.el (holiday-greek-orthodox-easter):
      Add optional args N and STRING, mimicking the API and code of
      ‘holiday-easter-etc’.  From suggestion by Foivos S. Zakkak (Bug#21256).
  11. 03 Aug, 2015 1 commit
    • Ingo Lohmar's avatar
      Add new 'calendar-weekend-days' option · 4e1bdd44
      Ingo Lohmar authored
      Make the days receiving the `calendar-weekend-header' face freely
      customizable, as they differ by region/culture.
      * doc/emacs/calendar.texi: Document the new variable.
      * lisp/calendar/calendar.el (calendar-generate-month): New variable
      calendar-weekend-days to customize day header fontification.
  12. 02 Aug, 2015 3 commits
  13. 30 Jul, 2015 1 commit
  14. 26 Jul, 2015 2 commits
    • Paul Eggert's avatar
      New optional ZONE arg for format-time-string etc. · af32fa95
      Paul Eggert authored
      This simplifies time conversions in other time zones.
      It also prevents display-time-world tampering with TZ (Bug#21020).
      * admin/admin.el (add-release-logs):
      Use improved add-log-time-format API.
      * admin/merge-gnulib (GNULIB_MODULES): Add time_rz, timegm.
      (GNULIB_TOOL_FLAGS): Avoid flexmember, setenv, unsetenv.
      * configure.ac (tzalloc): Remove test for this, since
      Emacs no longer uses HAVE_TZALLOC directly.
      * doc/lispref/os.texi (Time of Day, Time Conversion)
      (Time Parsing):
      * etc/NEWS: Document the new behavior.
      Merge from gnulib, incorporating:
      2015-07-25 strftime: fix newly-introduced bug on Solaris
      2015-07-23 fprintftime, strftime: use timezone_t args
      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
      * lib/strftime.c, lib/strftime.h, lib/time.in.h, m4/sys_time_h.m4:
      * m4/time_h.m4:
      Update from gnulib.
      * lib/time_rz.c, lib/timegm.c, m4/time_rz.m4, m4/timegm.m4:
      New files from gnulib.
      * lisp/time-stamp.el (time-stamp-string):
      * lisp/time.el (display-time-world-list)
      Use new API, with time zone arg.
      * lisp/time.el (display-time-world-display):
      Fix race when current-time advances while we're running.
      * lisp/vc/add-log.el (add-log-iso8601-time-zone)
      (add-log-iso8601-time-string): Accept optional time zone arg.
      * lisp/vc/add-log.el (add-change-log-entry):
      * lisp/vc/log-edit.el (log-edit-changelog-ours-p): Use new arg.
      * nt/gnulib.mk: Propagate lib/gnulib.mk changes here.
      Add rules for the time module, since they're now needed
      for tzalloc etc.
      * src/conf_post.h (getenv_TZ, setenv_TZ): New macros.
      (emacs_getenv_TZ, emacs_setenv_TZ): New decls.
      * src/editfns.c: Include errno.h.
      (set_time_zone_rule): Omit unnecessary forward decl.
      (initial_tz): Remove, replacing with ...
      (local_tz, wall_clock_tz, utc_tz): New static vars and constants.
      (tzeqlen): New constant; prefer it to (sizeof "TZ=" - 1).
      (emacs_localtime_rz, emacs_mktime_z, xtzalloc, xtzfree)
      (tzlookup): New static functions.
      (init_editfns): New arg DUMPING.  All uses changed.
      (init_editfns): Omit most initialization if dumping, not if
      !initialized.  Initialize wall_clock_tz and local_tz.
      (emacs_nmemftime, format_time_string): Time zone argument can now
      be any time zone, not just a boolean for UTC or local time.  All
      callers changed.
      (Fformat_time_string, Fencode_time, Fcurrent_time_string)
      (Fcurrent_time_zone): New optional arg ZONE.
      (Fdecode_time, Fset_time_zone_rule): ZONE arg can now also take
      the same form as with the other new additions.
      (decode_time_zone): Remove; no longer needed.
      (tzvalbuf): Now file-scope.
      (emacs_getenv_TZ, emacs_setenv_TZ): New functions.
      (syms_of_editfns): Define Qwall.
      * src/editfns.c (mktime_z) [!HAVE_TZALLOC]:
      * src/systime.h (mktime_z, timezone_t, tzalloc, tzfree)
      Remove; now supplied by gnulib.
      * src/emacs.c (main):
      * src/lisp.h (init_editfns): Adjust to init_editfns API change.
    • HOSOYA Kei's avatar
      * etc/tutorials/TUTORIAL.ja: Improve translation. · 2cf501ce
      HOSOYA Kei authored
      Copyright-paperwork-exempt: yes
  15. 22 Jul, 2015 1 commit
    • Martin Rudalics's avatar
      2015-07-22 Martin Rudalics <rudalics@gmx.at> · 59526c32
      Martin Rudalics authored
      Optionally even widths of `display-buffer' windows.  (Bug#21100)
      * lisp/window.el (quit-restore-window): Restore width if
      (display-buffer-record-window): Record width when window is
      reused and horizontally combined.
      (even-window-sizes): New option to allow evening window widths.
      (even-window-heights): Defalias to `even-window-sizes'.
      (window--even-window-heights): Rename to
      `window--even-window-sizes'.  Handle side-by-side windows.
      (display-buffer-use-some-window): Call `window--even-window-sizes'
      instead of `window--even-window-heights'.
      * lisp/help.el (resize-temp-buffer-window): Fix indentation.
      * doc/lispref/windows.texi (Choosing Window Options): Describe
      (Coordinates and Windows): Fix typo.
  16. 21 Jul, 2015 1 commit
  17. 18 Jul, 2015 1 commit
    • Eli Zaretskii's avatar
      Fix following Info cross-references to anchors · 166ffcb6
      Eli Zaretskii authored
      * lisp/info.el (Info-read-subfile): Add to the returned value the
      length of subfile preamble, after converting it to file's byte
      offset, as expected by the caller.  Use bufferpos-to-filepos.
      (Info-find-node-2): If searching for a node with a
      1000-character slop fails, try again with a 10000-character slop,
      to account for known bugs in Texinfo 5.0 and 5.1.  (Bug#21055)
      * lisp/international/mule-util.el (bufferpos-to-filepos): New
      * etc/NEWS: Mention bufferpos-to-filepos.
  18. 07 Jul, 2015 2 commits
  19. 06 Jul, 2015 1 commit
    • Stefan Monnier's avatar
      (describe-symbol): Rewrite describe-function-or-variable · 824fc04b
      Stefan Monnier authored
      * lisp/help-fns.el (describe-symbol-backends): New var.
      (help-xref-stack-item): Declare.
      (describe-symbol): Rename from describe-function-or-variable.
      Rewrite using describe-symbol-backends instead of help-xref-interned.
      * lisp/help.el (help-map): Use it.
      * lisp/help-mode.el (help-symbol, help-follow-symbol): Use it.
      (help-xref-interned): Make it into an obsolete alias.
  20. 02 Jul, 2015 1 commit
  21. 01 Jul, 2015 2 commits
  22. 30 Jun, 2015 1 commit
    • Eli Zaretskii's avatar
      Don't block changes in mouse pointer inside 'track-mouse' · edd09381
      Eli Zaretskii authored
      * etc/NEWS:
      * doc/lispref/frames.texi (Mouse Tracking): Document the special
      effect of setting 'track-mouse' to 'dragging'.
      * lisp/textmodes/artist.el (artist-mouse-draw-continously):
      * lisp/ruler-mode.el (ruler-mode-mouse-drag-any-column-iteration):
      * lisp/mouse-drag.el (mouse-drag-throw):
      * lisp/mouse.el (mouse-drag-line): Set 'track-mouse' to 'dragging'
      to avoid changes in the shape of the mouse pointer.
      * src/xdisp.c (define_frame_cursor1): Don't change the mouse
      pointer shape when do_mouse_tracking has the value of 'dragging',
      not just any non-nil value.  (Bug#20934)
      (syms_of_xdisp): DEFSYM 'dragging'.
  23. 27 Jun, 2015 3 commits
  24. 24 Jun, 2015 1 commit
  25. 23 Jun, 2015 2 commits
  26. 22 Jun, 2015 1 commit
  27. 19 Jun, 2015 1 commit
    • Paul Eggert's avatar
      Improve the optional translation of quotes · c4151ebe
      Paul Eggert authored
      Fix several problems with the recently-added custom variable
      help-quote-translation where the code would quote inconsistently
      in help buffers.  Add support for quoting 'like this', which
      is common in other GNU programs in ASCII environments.  Change
      help-quote-translation to use more mnemonic values: values are now the
      initial quoting char, e.g., (setq help-quote-translation ?`) gets the
      traditional Emacs help-buffer quoting style `like this'.  Change the
      default behavior of substitute-command-keys to match what's done in
      set-locale-environment, i.e., quote ‘like this’ if displayable,
      'like this' otherwise.
      * doc/lispref/help.texi (Keys in Documentation): Document
      new behavior of substitute-command-keys, and document
      * doc/lispref/tips.texi (Documentation Tips):
      Mention the effect of help-quote-translation.
      * etc/NEWS: Mention new behavior of substitute-command-keys,
      and merge help-quote-translation news into it.
      When talking about doc strings, mention new ways to type quotes.
      * lisp/cedet/mode-local.el (overload-docstring-extension):
      Revert my recent change to this function, which shouldn't be
      needed as the result is a doc string.
      * lisp/cedet/mode-local.el (mode-local-print-binding)
      * lisp/cedet/srecode/srt-mode.el (srecode-macro-help):
      * lisp/cus-theme.el (describe-theme-1):
      * lisp/descr-text.el (describe-text-properties-1, describe-char):
      * lisp/emacs-lisp/cl-generic.el (cl--generic-describe):
      * lisp/emacs-lisp/eieio-opt.el (eieio-help-class)
      * lisp/emacs-lisp/package.el (describe-package-1):
      * lisp/faces.el (describe-face):
      * lisp/help-fns.el (help-fns--key-bindings)
      (help-fns--compiler-macro, help-fns--parent-mode)
      (help-fns--obsolete, help-fns--interactive-only)
      (describe-function-1, describe-variable):
      * lisp/help.el (describe-mode):
      Use substitute-command-keys to ensure a more-consistent quoting
      style in help buffers.
      * lisp/cus-start.el (standard):
      Document new help-quote-translation behavior.
      * lisp/emacs-lisp/lisp-mode.el (lisp-fdefs):
      * lisp/help-mode.el (help-xref-symbol-regexp, help-xref-info-regexp)
      * lisp/international/mule-cmds.el (help-xref-mule-regexp-template):
      * lisp/wid-edit.el (widget-documentation-link-regexp):
      Also match 'foo', in case we're in a help buffer generated when
      help-quote-translation is ?'.
      * src/doc.c: Include disptab.h, for DISP_CHAR_VECTOR.
      (uRSQM1, uRSQM2, LSQM, RSQM): New constants.
      (Fsubstitute_command_keys): Document and implement new behavior.
      (Vhelp_quote_translation): Document new behavior.