1. 04 Jun, 2017 1 commit
    • Paul Eggert's avatar
      Tune ‘format’ after recent fix · d5fcf9e4
      Paul Eggert authored
      * doc/lispref/strings.texi (Formatting Strings):
      * src/editfns.c (Fformat): Format field numbers no longer need
      to be unique, reverting the previous doc change since that has
      now been fixed.  Also, document that %% should not have modifiers.
      * src/editfns.c (styled_format): Improve performance.  Remove
      the need for the new prepass over the format string, by using
      a typically-more-generous bound for the info array size.
      Initialize the info array lazily.  Move string inspection to
      the same area to help caching.  Avoid the need for a
      converted_to_string bitfield by using EQ.  Cache arg in a
      local and avoid some potential aliasing issues to help the
      compiler.  Info array is now 0-origin, not 1-origin.
      d5fcf9e4
  2. 03 Jun, 2017 1 commit
  3. 01 Jun, 2017 3 commits
    • Paul Eggert's avatar
      Limit format fields to more POSIX-like spec · 8de2581a
      Paul Eggert authored
      * doc/lispref/strings.texi (Formatting Strings):
      Don’t allow mixing numbered with unnumbered format specs.
      * src/editfns.c (styled_format): Don’t bother checking for field 0,
      since it doesn’t crash and the behavior is not specified.
      * test/src/editfns-tests.el (format-with-field): Adjust tests to
      match current doc.  Add more tests for out-of-range fields.
      8de2581a
    • Paul Eggert's avatar
      Minor improvements to format field numbers · 53247108
      Paul Eggert authored
      * src/editfns.c (styled_format): Allow field numbers in a %% spec.
      No need for a special diagnostic for field numbers greater than
      PTRDIFF_MAX.  Reword diagnostic for field 0.
      * test/src/editfns-tests.el (format-with-field): Adjust to match.
      53247108
    • Philipp Stephani's avatar
      Implement field numbers in format strings · 0dd1bbb0
      Philipp Stephani authored
      A field number explicitly specifies the argument to be formatted.
      This is especially important for potential localization work, since
      grammars of various languages dictate different word orders.
      
      * src/editfns.c (Fformat): Update documentation.
      (styled_format): Implement field numbers.
      
      * doc/lispref/strings.texi (Formatting Strings): Document field numbers.
      
      * lisp/emacs-lisp/bytecomp.el (byte-compile-format-warn): Adapt.
      
      * test/src/editfns-tests.el (format-with-field): New unit test.
      0dd1bbb0
  4. 19 May, 2017 1 commit
  5. 06 Apr, 2017 1 commit
    • Michal Nazarewicz's avatar
      Support casing characters which map into multiple code points (bug#24603) · b3b9b258
      Michal Nazarewicz authored
      Implement unconditional special casing rules defined in Unicode standard.
      
      Among other things, they deal with cases when a single code point is
      replaced by multiple ones because single character does not exist (e.g.
      ‘fi’ ligature turning into ‘FL’) or is not commonly used (e.g. ß turning
      into SS).
      
      * admin/unidata/SpecialCasing.txt: New data file pulled from Unicode
      standard distribution.
      * admin/unidata/README: Mention SpecialCasing.txt.
      
      * admin/unidata/unidata-get.el (unidata-gen-table-special-casing,
      unidata-gen-table-special-casing--do-load): New functions generating
      ‘special-uppercase’, ‘special-lowercase’ and ‘special-titlecase’
      character Unicode properties built from the SpecialCasing.txt Unicode
      data file.
      
      * src/casefiddle.c (struct casing_str_buf): New structure for
      representing short strings used to handle one-to-many character
      mappings.
      
      (case_character_imlp): New function which can handle one-to-many
      character mappings.
      (case_character, case_single_character): Wrappers for the above
      functions.  The former may map one character to multiple (or no)
      code points while the latter does what the former used to do (i.e.
      handles one-to-one mappings only).
      
      (do_casify_natnum, do_casify_unibyte_string,
      do_casify_unibyte_region): Use case_single_character.
      (do_casify_multibyte_string, do_casify_multibyte_region): Support new
      features of case_character.
      * (do_casify_region): Updated to reflact do_casify_multibyte_string
      changes.
      
      (casify_word): Handle situation when one character-length of a word
      can change affecting where end of the word is.
      
      (upcase, capitalize, upcase-initials): Update documentation to mention
      limitations when working on characters.
      
      * test/src/casefiddle-tests.el (casefiddle-tests-char-properties):
      Add test cases for the newly introduced character properties.
      (casefiddle-tests-casing): Update test cases which are now passing.
      
      * test/lisp/char-fold-tests.el (char-fold--ascii-upcase,
      char-fold--ascii-downcase): New functions which behave like old ‘upcase’
      and ‘downcase’.
      (char-fold--test-match-exactly): Use the new functions.  This is needed
      because otherwise fi and similar characters are turned into their multi-
      -character representation.
      
      * doc/lispref/strings.texi: Describe issue with casing characters versus
      strings.
      * doc/lispref/nonascii.texi: Describe the new character properties.
      b3b9b258
  6. 28 Jan, 2017 2 commits
    • Eli Zaretskii's avatar
      ; Fix last change in doc/lispref/strings.texi · b3139da0
      Eli Zaretskii authored
      * doc/lispref/strings.texi (Formatting Strings): One more
      clarification to the last change.  (Bug#25557)
      b3139da0
    • Eli Zaretskii's avatar
      Improve documentation of 'format' conversions · c331f393
      Eli Zaretskii authored
      * src/editfns.c (Fformat): More accurate description of %g and
      effects of the various flags on it.  More accurate description of
      integer conversions.
      
      * doc/lispref/strings.texi (Formatting Strings): More accurate
      description of %g and effects of the various flags on it.  More
      accurate description of integer conversions.  (Bug#25557)
      c331f393
  7. 01 Jan, 2017 1 commit
  8. 29 Nov, 2016 1 commit
    • Bogdan Creanga's avatar
      Typo fixes in elisp manual · 2086f4c0
      Bogdan Creanga authored
      * doc/lispref/sequences.texi: Add missing '4' in result (Bug#25047).
      * doc/lispref/strings.texi (Text Comparison): Avoid duplicate
      definitions of 'string-prefix-p' and 'string-suffix-p'.
      * doc/lispref/symbols.texi (Definitions): Pluralize 'definitions'.
      
      Copyright-paperwork-exempt: yes
      2086f4c0
  9. 26 Aug, 2016 1 commit
  10. 10 Jul, 2016 1 commit
  11. 23 Jun, 2016 1 commit
    • Eli Zaretskii's avatar
      Fix documentation of 'assoc-string' and 'compare-strings' · 4395aaac
      Eli Zaretskii authored
      * src/minibuf.c (Fassoc_string): Clarify how CASE-FOLD affects the
      string comparison.  (Bug#23833)
      * src/fns.c (Fcompare_strings): Fix the description of how
      IGNORE-CASE affects the comparison.
      
      * doc/lispref/strings.texi (Text Comparison): Clarify how
      CASE-FOLD affects the string comparison in 'assoc-string'.  Fix
      the description of how IGNORE-CASE affects the comparison in
      'compare-strings'.
      4395aaac
  12. 09 Jun, 2016 1 commit
    • Eli Zaretskii's avatar
      Fix copying text properties by 'format' · 1c094238
      Eli Zaretskii authored
      * src/editfns.c (styled_format): Fix copying text properties from
      the format specification to the produced string representation.
      (Bug#23730)
      (Fformat) Doc fix.
      
      * doc/lispref/strings.texi (Formatting Strings): Document that
      text properties from the format specifiers are also copied to the
      produced string.
      1c094238
  13. 10 May, 2016 1 commit
    • Paul Eggert's avatar
      'text-quoting-style' now affects only ` and ' · 433d366d
      Paul Eggert authored
      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.
      433d366d
  14. 03 May, 2016 1 commit
    • Paul Eggert's avatar
      Doc fixes for quoting · 2ea2a2f1
      Paul Eggert authored
      * doc/emacs/text.texi, doc/lispintro/emacs-lisp-intro.texi:
      * doc/lispref/control.texi, doc/lispref/display.texi:
      * doc/lispref/help.texi, doc/lispref/strings.texi, lisp/subr.el:
      * src/callint.c, src/doprnt.c, src/editfns.c:
      Document quoting a bit more systematically.
      Problem reported by Alan Mackenzie (Bug#23425).
      2ea2a2f1
  15. 21 Feb, 2016 3 commits
    • Paul Eggert's avatar
      Use Gnulib filevercmp for version comparison · 1f7feeca
      Paul Eggert authored
      * admin/merge-gnulib (GNULIB_MODULES): Add filevercmp.
      * doc/lispref/strings.texi (Text Comparison):
      * etc/NEWS, src/fns.c:
      * test/src/fns-tests.el (fns-tests-string-version-lessp):
      Rename newly-introduced function to string-version-lessp, by
      analogy with strverscmp.
      * lib/filevercmp.c, lib/filevercmp.h: New files, copied from gnulib.
      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
      * src/fns.c: Include <filevercmp.h>.
      (gather_number_from_string): Remove.
      (Fstring_version_lessp): Reimplement via filevercmp.
      1f7feeca
    • Lars Ingebrigtsen's avatar
      Avoid integer overflows in string-numeric-lessp · 336dac58
      Lars Ingebrigtsen authored
      * src/fns.c (Fstring_numeric_lessp): If we have an integer
      overflow, compare lexicographically.
      336dac58
    • Lars Ingebrigtsen's avatar
      Add the string-numeric-lessp function · 71783e90
      Lars Ingebrigtsen authored
      * doc/lispref/strings.texi (Text Comparison): Document
      `string-numerical-lessp'.
      
      * src/fns.c (Fstring_numeric_lessp): New function.
      (gather_number_from_string): Helper function for that function.
      
      * test/src/fns-tests.el (fns-tests-string-numeric-lessp): Add tests.
      71783e90
  16. 01 Feb, 2016 1 commit
    • Martin Rudalics's avatar
      Some corrections in Elisp manual · e639e10a
      Martin Rudalics authored
      * doc/lispref/buffers.texi (Read Only Buffers): Describe optional
      argument POSITION.
      * doc/lispref/debugging.texi (Error Debugging): `debug-on-signal'
      is an option.
      * doc/lispref/display.texi (Refresh Screen): Describe optional
      argument FRAME of `redraw-frame'.
      (Attribute Functions): Describe optional argument CHARACTER of
      `face-font'.
      (Defining Images): `image-load-path' is an option.
      (Beeping): `ring-bell-function' is an option.
      * doc/lispref/frames.texi (Size and Position): The PIXELWISE
      argument of `set-frame-size' is optional.
      (Raising and Lowering): The TERMINAL argument of `tty-top-frame'
      is optional.
      * doc/lispref/keymaps.texi (Controlling Active Maps): Fix doc of
      `set-transient-map'.
      * doc/lispref/minibuf.texi (Text from Minibuffer):
      `read-regexp-defaults-function' is an option.
      (Minibuffer Contents): `delete-minibuffer-contents' is a command.
      * doc/lispref/modes.texi (Mode Line Variables):
      `mode-line-position' and `mode-line-modes' are variables, not
      options.
      * doc/lispref/strings.texi (Creating Strings): The START argument
      of `substring' is optional.
      * doc/lispref/text.texi (Buffer Contents): Describe optional
      argument NO-PROPERTIES of `thing-at-point'.
      (User-Level Deletion): Both arguments of
      `delete-trailing-whitespace' are optional.
      (Margins): Use @key{RET} instead of @kbd{RET}.
      * doc/lispref/windows.texi (Display Action Functions): Write
      non-@code{nil} instead of non-nil.
      (Choosing Window Options): The WINDOW arg of
      `split-window-sensibly' is optional.
      (Choosing Window Options): Write non-@code{nil} instead of
      non-nil.
      (Window Start and End): Both args of `window-group-end' are
      optional.
      
      * src/buffer.c (Fbarf_if_buffer_read_only): Rename argument POS
      to POSITION to keep consisteny with doc-string.
      e639e10a
  17. 16 Jan, 2016 1 commit
  18. 01 Jan, 2016 1 commit
  19. 29 Nov, 2015 1 commit
    • Eli Zaretskii's avatar
      Improve documentation of string-collate-* functions · 36255fba
      Eli Zaretskii authored
      * doc/lispref/strings.texi (Text Comparison): Improve wording and
      indexing of 'string-collate-equalp' and 'string-collate-lessp'.
      
      * etc/NEWS: Move the entry of 'string-collate-equalp' and
      'string-collate-lessp' to "Lisp Changes" section and mark it as
      documented.
      36255fba
  20. 02 Nov, 2015 1 commit
    • Ken Brown's avatar
      Document behavior of collation on Cygwin · a9cdc4a2
      Ken Brown authored
      * test/automated/fns-tests.el (fns-tests-collate-sort): Mark as
      expected failure on Cygwin.
      * doc/lispref/strings.texi (Text Comparison): Document that
      punctuation and whitespace are not ignored for sorting on Cygwin.
      a9cdc4a2
  21. 25 Sep, 2015 1 commit
    • Eli Zaretskii's avatar
      Avoid non-ASCII decoding errors in Texinfo files · 0d31eeb7
      Eli Zaretskii authored
      * doc/misc/tramp.texi:
      * doc/lispref/strings.texi:
      * doc/lispref/positions.texi:
      * doc/lispref/help.texi:
      * doc/lispref/functions.texi:
      * doc/lispintro/emacs-lisp-intro.texi:
      * doc/emacs/text.texi:
      * doc/emacs/modes.texi:
      * doc/emacs/mini.texi:
      * doc/emacs/display.texi:
      * doc/emacs/custom.texi:
      * doc/emacs/basic.texi: Add 'coding' cookies -- these files use
      Unicode characters and should be decoded as UTF-8.
      * doc/lispref/frames.texi (Size Parameters): Don't use a non-ASCII
      apostrophe unnecessarily.
      0d31eeb7
  22. 16 Sep, 2015 1 commit
    • Eli Zaretskii's avatar
      Restore some of the quoting in the manuals · 31ff037a
      Eli Zaretskii authored
      * doc/lispref/windows.texi (Coordinates and Windows)
      (Coordinates and Windows):
      * doc/lispref/variables.texi (Lexical Binding)
      (File Local Variables):
      * doc/lispref/text.texi (Format Properties):
      * doc/lispref/symbols.texi (Symbol Components):
      * doc/lispref/strings.texi (Creating Strings):
      * doc/lispref/sequences.texi (Sequence Functions):
      * doc/lispref/searching.texi (Regexp Special, Regexp Search)
      (Search and Replace):
      * doc/lispref/processes.texi (Bindat Spec):
      * doc/lispref/os.texi (Idle Timers):
      * doc/lispref/objects.texi (Basic Char Syntax):
      * doc/lispref/numbers.texi (Float Basics, Random Numbers):
      * doc/lispref/nonascii.texi (Character Properties):
      * doc/lispref/modes.texi (Major Mode Conventions, Mode Hooks)
      (Mode Line Variables):
      * doc/lispref/minibuf.texi (Text from Minibuffer):
      * doc/lispref/loading.texi (Autoload):
      * doc/lispref/keymaps.texi (Controlling Active Maps):
      * doc/lispref/frames.texi (Frame Layout, Size and Position)
      (Size Parameters, Implied Frame Resizing):
      * doc/lispref/files.texi (Changing Files, Magic File Names):
      * doc/lispref/eval.texi (Self-Evaluating Forms):
      * doc/lispref/display.texi (Progress, Abstract Display)
      (Abstract Display Example, Bidirectional Display):
      * doc/lispref/commands.texi (Event Mod):
      * doc/emacs/windows.texi (Displaying Buffers):
      * doc/emacs/trouble.texi (Bug Criteria, Checklist):
      * doc/emacs/text.texi (Enriched Text):
      * doc/emacs/programs.texi (MixedCase Words):
      * doc/emacs/picture-xtra.texi (Insert in Picture)
      (Tabs in Picture):
      * doc/emacs/misc.texi (Emacs Server, Printing):
      * doc/emacs/mini.texi (Minibuffer History):
      * doc/emacs/maintaining.texi (Old Revisions, VC Change Log)
      (Pulling / Pushing):
      * doc/emacs/killing.texi (Yanking, Cut and Paste, Clipboard):
      * doc/emacs/help.texi (Help, Help Echo):
      * doc/emacs/glossary.texi (Glossary):
      * doc/emacs/frames.texi (Mouse Commands, Creating Frames)
      (Frame Commands):
      * doc/emacs/files.texi (Reverting, Saving, Directories):
      * doc/emacs/entering.texi (Exiting):
      * doc/emacs/emacs.texi (Top):
      * doc/emacs/cmdargs.texi (Window Size X, Icons X):
      * doc/emacs/anti.texi (Antinews): Restore quoting of text where
      appropriate or replace quoting with @dfn.
      * doc/misc/ediff.texi (Window and Frame Configuration):
      * doc/lispref/processes.texi (Network Feature Testing):
      * doc/lispref/display.texi (Display Margins): Quote the phrase
      after "a.k.a." where appropriate.
      31ff037a
  23. 15 Sep, 2015 1 commit
    • Paul Eggert's avatar
      Quote less in manuals · ef7dbdf5
      Paul Eggert authored
      The manuals often used quotes ``...'' when it is better to use @dfn or
      @code or capitalized words or no quoting at all.  For example, there is
      no need for the `` and '' in “if a variable has one effect for
      @code{nil} values and another effect for ``non-@code{nil}'' values”.
      Reword the Emacs, Lisp intro, and Lisp reference manuals to eliminate
      unnecessary quoting like this, and to use @dfn etc. instead when called
      for (Bug#21472).
      ef7dbdf5
  24. 07 Sep, 2015 1 commit
    • Paul Eggert's avatar
      Go back to grave quoting in source-code docstrings etc. · 6afef3f6
      Paul Eggert authored
      This reverts almost all my recent changes to use curved quotes
      in docstrings and/or strings used for error diagnostics.
      There are a few exceptions, e.g., Bahá’í proper names.
      * admin/unidata/unidata-gen.el (unidata-gen-table):
      * lisp/abbrev.el (expand-region-abbrevs):
      * lisp/align.el (align-region):
      * lisp/allout.el (allout-mode, allout-solicit-alternate-bullet)
      (outlineify-sticky):
      * lisp/apropos.el (apropos-library):
      * lisp/bookmark.el (bookmark-default-annotation-text):
      * lisp/button.el (button-category-symbol, button-put)
      (make-text-button):
      * lisp/calc/calc-aent.el (math-read-if, math-read-factor):
      * lisp/calc/calc-embed.el (calc-do-embedded):
      * lisp/calc/calc-ext.el (calc-user-function-list):
      * lisp/calc/calc-graph.el (calc-graph-show-dumb):
      * lisp/calc/calc-help.el (calc-describe-key)
      (calc-describe-thing, calc-full-help):
      * lisp/calc/calc-lang.el (calc-c-language)
      (math-parse-fortran-vector-end, math-parse-tex-sum)
      (math-parse-eqn-matrix, math-parse-eqn-prime)
      (calc-yacas-language, calc-maxima-language, calc-giac-language)
      (math-read-giac-subscr, math-read-math-subscr)
      (math-read-big-rec, math-read-big-balance):
      * lisp/calc/calc-misc.el (calc-help, report-calc-bug):
      * lisp/calc/calc-mode.el (calc-auto-why, calc-save-modes)
      (calc-auto-recompute):
      * lisp/calc/calc-prog.el (calc-fix-token-name)
      (calc-read-parse-table-part, calc-user-define-invocation)
      (math-do-arg-check):
      * lisp/calc/calc-store.el (calc-edit-variable):
      * lisp/calc/calc-units.el (math-build-units-table-buffer):
      * lisp/calc/calc-vec.el (math-read-brackets):
      * lisp/calc/calc-yank.el (calc-edit-mode):
      * lisp/calc/calc.el (calc, calc-do, calc-user-invocation):
      * lisp/calendar/appt.el (appt-display-message):
      * lisp/calendar/diary-lib.el (diary-check-diary-file)
      (diary-mail-entries, diary-from-outlook):
      * lisp/calendar/icalendar.el (icalendar-export-region)
      (icalendar--convert-float-to-ical)
      (icalendar--convert-date-to-ical)
      (icalendar--convert-ical-to-diary)
      (icalendar--convert-recurring-to-diary)
      (icalendar--add-diary-entry):
      * lisp/calendar/time-date.el (format-seconds):
      * lisp/calendar/timeclock.el (timeclock-mode-line-display)
      (timeclock-make-hours-explicit, timeclock-log-data):
      * lisp/calendar/todo-mode.el (todo-prefix, todo-delete-category)
      (todo-item-mark, todo-check-format)
      (todo-insert-item--next-param, todo-edit-item--next-key)
      (todo-mode):
      * lisp/cedet/ede/pmake.el (ede-proj-makefile-insert-dist-rules):
      * lisp/cedet/mode-local.el (describe-mode-local-overload)
      (mode-local-print-binding, mode-local-describe-bindings-2):
      * lisp/cedet/semantic/complete.el (semantic-displayor-show-request):
      * lisp/cedet/srecode/srt-mode.el (srecode-macro-help):
      * lisp/cus-start.el (standard):
      * lisp/cus-theme.el (describe-theme-1):
      * lisp/custom.el (custom-add-dependencies, custom-check-theme)
      (custom--sort-vars-1, load-theme):
      * lisp/descr-text.el (describe-text-properties-1, describe-char):
      * lisp/dired-x.el (dired-do-run-mail):
      * lisp/dired.el (dired-log):
      * lisp/emacs-lisp/advice.el (ad-read-advised-function)
      (ad-read-advice-class, ad-read-advice-name, ad-enable-advice)
      (ad-disable-advice, ad-remove-advice, ad-set-argument)
      (ad-set-arguments, ad--defalias-fset, ad-activate)
      (ad-deactivate):
      * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand)
      (byte-compile-unfold-lambda, byte-optimize-form-code-walker)
      (byte-optimize-while, byte-optimize-apply):
      * lisp/emacs-lisp/byte-run.el (defun, defsubst):
      * lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode)
      (byte-compile-log-file, byte-compile-format-warn)
      (byte-compile-nogroup-warn, byte-compile-arglist-warn)
      (byte-compile-cl-warn)
      (byte-compile-warn-about-unresolved-functions)
      (byte-compile-file, byte-compile--declare-var)
      (byte-compile-file-form-defmumble, byte-compile-form)
      (byte-compile-normal-call, byte-compile-check-variable)
      (byte-compile-variable-ref, byte-compile-variable-set)
      (byte-compile-subr-wrong-args, byte-compile-setq-default)
      (byte-compile-negation-optimizer)
      (byte-compile-condition-case--old)
      (byte-compile-condition-case--new, byte-compile-save-excursion)
      (byte-compile-defvar, byte-compile-autoload)
      (byte-compile-lambda-form)
      (byte-compile-make-variable-buffer-local, display-call-tree)
      (batch-byte-compile):
      * lisp/emacs-lisp/cconv.el (cconv-convert, cconv--analyze-use):
      * lisp/emacs-lisp/chart.el (chart-space-usage):
      * lisp/emacs-lisp/check-declare.el (check-declare-scan)
      (check-declare-warn, check-declare-file)
      (check-declare-directory):
      * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine)
      (checkdoc-message-text-engine):
      * lisp/emacs-lisp/cl-extra.el (cl-parse-integer)
      (cl--describe-class):
      * lisp/emacs-lisp/cl-generic.el (cl-defgeneric)
      (cl--generic-describe, cl-generic-generalizers):
      * lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause, cl-tagbody)
      (cl-symbol-macrolet):
      * lisp/emacs-lisp/cl.el (cl-unload-function, flet):
      * lisp/emacs-lisp/copyright.el (copyright)
      (copyright-update-directory):
      * lisp/emacs-lisp/edebug.el (edebug-read-list):
      * lisp/emacs-lisp/eieio-base.el (eieio-persistent-read):
      * lisp/emacs-lisp/eieio-core.el (eieio--slot-override)
      (eieio-oref):
      * lisp/emacs-lisp/eieio-opt.el (eieio-help-constructor):
      * lisp/emacs-lisp/eieio-speedbar.el:
      (eieio-speedbar-child-make-tag-lines)
      (eieio-speedbar-child-description):
      * lisp/emacs-lisp/eieio.el (defclass, change-class):
      * lisp/emacs-lisp/elint.el (elint-file, elint-get-top-forms)
      (elint-init-form, elint-check-defalias-form)
      (elint-check-let-form):
      * lisp/emacs-lisp/ert.el (ert-get-test, ert-results-mode-menu)
      (ert-results-pop-to-backtrace-for-test-at-point)
      (ert-results-pop-to-messages-for-test-at-point)
      (ert-results-pop-to-should-forms-for-test-at-point)
      (ert-describe-test):
      * lisp/emacs-lisp/find-func.el (find-function-search-for-symbol)
      (find-function-library):
      * lisp/emacs-lisp/generator.el (iter-yield):
      * lisp/emacs-lisp/gv.el (gv-define-simple-setter):
      * lisp/emacs-lisp/lisp-mnt.el (lm-verify):
      * 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)
      (advice--make, define-advice):
      * lisp/emacs-lisp/package-x.el (package-upload-file):
      * lisp/emacs-lisp/package.el (package-version-join)
      (package-disabled-p, package-activate-1, package-activate)
      (package--download-one-archive)
      (package--download-and-read-archives)
      (package-compute-transaction, package-install-from-archive)
      (package-install, package-install-selected-packages)
      (package-delete, package-autoremove, describe-package-1)
      (package-install-button-action, package-delete-button-action)
      (package-menu-hide-package, package-menu--list-to-prompt)
      (package-menu--perform-transaction)
      (package-menu--find-and-notify-upgrades):
      * lisp/emacs-lisp/pcase.el (pcase-exhaustive, pcase--u1):
      * lisp/emacs-lisp/re-builder.el (reb-enter-subexp-mode):
      * lisp/emacs-lisp/ring.el (ring-previous, ring-next):
      * lisp/emacs-lisp/rx.el (rx-check, rx-anything)
      (rx-check-any-string, rx-check-any, rx-check-not, rx-=)
      (rx-repeat, rx-check-backref, rx-syntax, rx-check-category)
      (rx-form):
      * lisp/emacs-lisp/smie.el (smie-config-save):
      * lisp/emacs-lisp/subr-x.el (internal--check-binding):
      * lisp/emacs-lisp/tabulated-list.el (tabulated-list-put-tag):
      * lisp/emacs-lisp/testcover.el (testcover-1value):
      * lisp/emacs-lisp/timer.el (timer-event-handler):
      * lisp/emulation/viper-cmd.el (viper-toggle-parse-sexp-ignore-comments)
      (viper-toggle-search-style, viper-kill-buffer)
      (viper-brac-function):
      * lisp/emulation/viper-macs.el (viper-record-kbd-macro):
      * lisp/env.el (setenv):
      * lisp/erc/erc-button.el (erc-nick-popup):
      * lisp/erc/erc.el (erc-cmd-LOAD, erc-handle-login, english):
      * lisp/eshell/em-dirs.el (eshell/cd):
      * lisp/eshell/em-glob.el (eshell-glob-regexp)
      (eshell-glob-entries):
      * lisp/eshell/em-pred.el (eshell-parse-modifiers):
      * lisp/eshell/esh-opt.el (eshell-show-usage):
      * lisp/facemenu.el (facemenu-add-new-face)
      (facemenu-add-new-color):
      * lisp/faces.el (read-face-name, read-face-font, describe-face)
      (x-resolve-font-name):
      * lisp/files-x.el (modify-file-local-variable):
      * lisp/files.el (locate-user-emacs-file, find-alternate-file)
      (set-auto-mode, hack-one-local-variable--obsolete)
      (dir-locals-set-directory-class, write-file, basic-save-buffer)
      (delete-directory, copy-directory, recover-session)
      (recover-session-finish, insert-directory)
      (file-modes-char-to-who, file-modes-symbolic-to-number)
      (move-file-to-trash):
      * lisp/filesets.el (filesets-add-buffer, filesets-remove-buffer):
      * lisp/find-cmd.el (find-generic, find-to-string):
      * lisp/finder.el (finder-commentary):
      * lisp/font-lock.el (font-lock-fontify-buffer):
      * lisp/format.el (format-write-file, format-find-file)
      (format-insert-file):
      * lisp/frame.el (get-device-terminal, select-frame-by-name):
      * lisp/fringe.el (fringe--check-style):
      * lisp/gnus/nnmairix.el (nnmairix-widget-create-query):
      * 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)
      (describe-minor-mode-from-indicator):
      * lisp/image.el (image-type):
      * lisp/international/ccl.el (ccl-dump):
      * lisp/international/fontset.el (x-must-resolve-font-name):
      * lisp/international/mule-cmds.el (prefer-coding-system)
      (select-safe-coding-system-interactively)
      (select-safe-coding-system, activate-input-method)
      (toggle-input-method, describe-current-input-method)
      (describe-language-environment):
      * lisp/international/mule-conf.el (code-offset):
      * lisp/international/mule-diag.el (describe-character-set)
      (list-input-methods-1):
      * lisp/mail/feedmail.el (feedmail-run-the-queue):
      * lisp/mouse.el (minor-mode-menu-from-indicator):
      * lisp/mpc.el (mpc-playlist-rename):
      * lisp/msb.el (msb--choose-menu):
      * lisp/net/ange-ftp.el (ange-ftp-shell-command):
      * lisp/net/imap.el (imap-interactive-login):
      * lisp/net/mairix.el (mairix-widget-create-query):
      * lisp/net/newst-backend.el (newsticker--sentinel-work):
      * lisp/net/newst-treeview.el (newsticker--treeview-load):
      * lisp/net/rlogin.el (rlogin):
      * lisp/obsolete/iswitchb.el (iswitchb-possible-new-buffer):
      * lisp/obsolete/otodo-mode.el (todo-more-important-p):
      * lisp/obsolete/pgg-gpg.el (pgg-gpg-process-region):
      * lisp/obsolete/pgg-pgp.el (pgg-pgp-process-region):
      * lisp/obsolete/pgg-pgp5.el (pgg-pgp5-process-region):
      * lisp/org/ob-core.el (org-babel-goto-named-src-block)
      (org-babel-goto-named-result):
      * lisp/org/ob-fortran.el (org-babel-fortran-ensure-main-wrap):
      * lisp/org/ob-ref.el (org-babel-ref-resolve):
      * lisp/org/org-agenda.el (org-agenda-prepare):
      * lisp/org/org-clock.el (org-clock-notify-once-if-expired)
      (org-clock-resolve):
      * lisp/org/org-ctags.el (org-ctags-ask-rebuild-tags-file-then-find-tag):
      * lisp/org/org-feed.el (org-feed-parse-atom-entry):
      * lisp/org/org-habit.el (org-habit-parse-todo):
      * lisp/org/org-mouse.el (org-mouse-popup-global-menu)
      (org-mouse-context-menu):
      * lisp/org/org-table.el (org-table-edit-formulas):
      * lisp/org/ox.el (org-export-async-start):
      * lisp/proced.el (proced-log):
      * lisp/progmodes/ada-mode.el (ada-get-indent-case)
      (ada-check-matching-start, ada-goto-matching-start):
      * lisp/progmodes/ada-prj.el (ada-prj-display-page):
      * lisp/progmodes/ada-xref.el (ada-find-executable):
      * lisp/progmodes/ebrowse.el (ebrowse-tags-apropos):
      * lisp/progmodes/etags.el (etags-tags-apropos-additional):
      * lisp/progmodes/flymake.el (flymake-parse-err-lines)
      (flymake-start-syntax-check-process):
      * lisp/progmodes/python.el (python-shell-get-process-or-error)
      (python-define-auxiliary-skeleton):
      * lisp/progmodes/sql.el (sql-comint):
      * lisp/progmodes/verilog-mode.el (verilog-load-file-at-point):
      * lisp/progmodes/vhdl-mode.el (vhdl-widget-directory-validate):
      * lisp/recentf.el (recentf-open-files):
      * lisp/replace.el (query-replace-read-from)
      (occur-after-change-function, occur-1):
      * lisp/scroll-bar.el (scroll-bar-columns):
      * lisp/server.el (server-get-auth-key):
      * lisp/simple.el (execute-extended-command)
      (undo-outer-limit-truncate, list-processes--refresh)
      (compose-mail, set-variable, choose-completion-string)
      (define-alternatives):
      * lisp/startup.el (site-run-file, tty-handle-args, command-line)
      (command-line-1):
      * lisp/subr.el (noreturn, define-error, add-to-list)
      (read-char-choice, version-to-list):
      * lisp/term/common-win.el (x-handle-xrm-switch)
      (x-handle-name-switch, x-handle-args):
      * lisp/term/x-win.el (x-handle-parent-id, x-handle-smid):
      * lisp/textmodes/reftex-ref.el (reftex-label):
      * lisp/textmodes/reftex-toc.el (reftex-toc-rename-label):
      * lisp/textmodes/two-column.el (2C-split):
      * lisp/tutorial.el (tutorial--describe-nonstandard-key)
      (tutorial--find-changed-keys):
      * lisp/type-break.el (type-break-noninteractive-query):
      * lisp/wdired.el (wdired-do-renames, wdired-do-symlink-changes)
      (wdired-do-perm-changes):
      * lisp/whitespace.el (whitespace-report-region):
      Prefer grave quoting in source-code strings used to generate help
      and diagnostics.
      * lisp/faces.el (face-documentation):
      No need to convert quotes, since the result is a docstring.
      * lisp/info.el (Info-virtual-index-find-node)
      (Info-virtual-index, info-apropos):
      Simplify by generating only curved quotes, since info files are
      typically that ways nowadays anyway.
      * lisp/international/mule-diag.el (list-input-methods):
      Don’t assume text quoting style is curved.
      * lisp/org/org-bibtex.el (org-bibtex-fields):
      Revert my recent changes, going back to the old quoting style.
      6afef3f6
  25. 04 Sep, 2015 1 commit
  26. 31 Aug, 2015 1 commit
    • Paul Eggert's avatar
      Documentation fixes re quotes · b5335522
      Paul Eggert authored
      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.
      b5335522
  27. 26 Aug, 2015 1 commit
    • 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:
      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.
      71781c31
  28. 24 Aug, 2015 1 commit
    • 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:
      http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00826.html
      http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00827.html
      * 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)
      (calc-user-function-list):
      * 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)
      (icalendar--add-diary-entry):
      * lisp/cedet/mode-local.el (mode-local-print-binding)
      (mode-local-describe-bindings-2):
      * 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)
      (cconv-analyze-form):
      * 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)
      (eldoc-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)
      (package-menu--list-to-prompt):
      * lisp/emacs-lisp/timer.el (timer-event-handler):
      * lisp/emacs-lisp/warnings.el (lwarn, warn):
      * lisp/emulation/viper-cmd.el:
      (viper-toggle-parse-sexp-ignore-comments)
      (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)
      (format-insert-file):
      * lisp/help-fns.el (help-fns--key-bindings)
      (help-fns--compiler-macro, help-fns--obsolete)
      (help-fns--interactive-only, describe-function-1)
      (describe-variable):
      * 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-interactively)
      (select-safe-coding-system, describe-input-method):
      * lisp/international/mule-conf.el (code-offset):
      * lisp/international/mule-diag.el (describe-character-set)
      (list-input-methods-1):
      * 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:
      (org-ctags-ask-rebuild-tags-file-then-find-tag):
      * 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)
      (tutorial--find-changed-keys):
      * 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.
      fbb5531f
  29. 23 Aug, 2015 2 commits
  30. 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.
      67de1b6f
  31. 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.
      244c8016
  32. 10 Apr, 2015 1 commit
    • Paul Eggert's avatar
      Minor quoting etc. fixes to lispref manual · a2940cd4
      Paul Eggert authored
      * doc/lispref/tips.texi (Documentation Tips):
      Distinguish more clearly among grave accent, apostrophe,
      and single quote.
      * doc/lispref/README, doc/lispref/buffers.texi:
      * doc/lispref/commands.texi, doc/lispref/control.texi:
      * doc/lispref/customize.texi, doc/lispref/display.texi:
      * doc/lispref/elisp.texi, doc/lispref/files.texi:
      * doc/lispref/frames.texi, doc/lispref/hash.texi:
      * doc/lispref/help.texi, doc/lispref/internals.texi:
      * doc/lispref/loading.texi, doc/lispref/makefile.w32-in:
      * doc/lispref/markers.texi, doc/lispref/modes.texi:
      * doc/lispref/nonascii.texi, doc/lispref/objects.texi:
      * doc/lispref/os.texi, doc/lispref/positions.texi:
      * doc/lispref/strings.texi, doc/lispref/syntax.texi:
      * doc/lispref/text.texi, doc/lispref/tips.texi:
      * doc/lispref/two-volume-cross-refs.txt, doc/lispref/windows.texi:
      Use American-style double quoting in ordinary text,
      and quote 'like this' when single-quoting in ASCII text.
      Also, fix some minor spacing issues.
      a2940cd4
  33. 01 Jan, 2015 2 commits