aboutsummaryrefslogtreecommitdiffstats
path: root/doc/lispref/strings.texi (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Move the documentation of 'string-glyph-split' to proper placeEli Zaretskii2021-10-301-20/+2
| | | | | | * doc/lispref/strings.texi (Creating Strings): Move the description of 'string-glyph-split' from here... * doc/lispref/display.texi (Size of Displayed Text): ...to here.
* Add new function string-glyph-splitLars Ingebrigtsen2021-10-301-0/+18
| | | | | | | * doc/lispref/strings.texi (Creating Strings): Document it. * lisp/emacs-lisp/shortdoc.el (string): Mention it. * lisp/emacs-lisp/subr-x.el (string-glyph-split): New function.
* Improve documentation of string truncation APIsEli Zaretskii2021-10-301-6/+12
| | | | | | | | | | | * doc/lispref/display.texi (Size of Displayed Text): * lisp/international/mule-util.el (truncate-string-to-width): Document caveats of using 'truncate-string-to-width' when character composition is involved. * lisp/emacs-lisp/subr-x.el (string-limit): * doc/lispref/strings.texi (Creating Strings): Improve the documentation of 'string-limit'.
* ; Remove various duplicated wordsMattias Engdegård2021-09-251-1/+1
| | | | | | | | | | | | | | | | | | * doc/lispref/searching.texi (Extending Rx): * doc/lispref/strings.texi (Creating Strings): * doc/misc/modus-themes.org (Measure color contrast (DIY)): * etc/NEWS: * lisp/find-file.el (ff-find-other-file): * lisp/gnus/gnus-group.el (gnus-group-suspend): * lisp/progmodes/cc-langs.el (c-ml-string-any-closer-re): * lisp/progmodes/flymake.el (flymake-list-only-diagnostics): * lisp/progmodes/xref.el (xref--group-name-for-display): * lisp/transient.el (transient-child, transient-files) (transient-infix-value): * src/alloc.c: * src/regex-emacs.c (regex_compile): Remove duplicate words in comments, documentation etc.
* Move string-trim functions to subr.elLars Ingebrigtsen2021-03-241-0/+16
| | | | | | | | | | | | * doc/lispref/strings.texi (Creating Strings): Document them. * lisp/faces.el: Don't require subr-x, because that leads to build errors. * lisp/subr.el (string-trim, string-trim-right) (string-trim-left): Move here from subr-x.el. * lisp/emacs-lisp/shortdoc.el (string): Adjust.
* Merge from origin/emacs-27Glenn Morris2021-01-041-3/+3
|\ | | | | | | a7c2793efe Fix last change
| * Fix last changeEli Zaretskii2021-01-021-3/+3
| | | | | | | | | | * doc/lispref/strings.texi (Creating Strings): Improve wording of last change. (Bug#45516)
| * Add a reference between the Strings node and Search/ReplaceLars Ingebrigtsen2021-01-021-1/+4
| | | | | | | | | | | | | | * doc/lispref/strings.texi (Creating Strings): Mention string-replace/replace-regexp-in-string (bug#45516). (cherry picked from commit b9359d4183a1a6923122d3aa12b922ab89693354)
| * Update copyright year to 2021Paul Eggert2021-01-011-1/+1
| | | | | | | | Run "TZ=UTC0 admin/update-copyright $(git ls-files)".
| * Correct 'concat' manual entry (bug#42296)Mattias Engdegård2020-07-111-4/+9
| | | | | | | | | | | | * doc/lispref/strings.texi (Creating Strings): 'concat' does not necessarily return a newly allocated string. This has been the case at least since 1997 (Emacs 20.3).
* | Update copyright year to 2021Paul Eggert2021-01-011-1/+1
| | | | | | | | Run "TZ=UTC0 admin/update-copyright".
* | Add a SPLIT parameter to `format-spec'Lars Ingebrigtsen2020-12-291-1/+11
| | | | | | | | | | | | | | * doc/lispref/strings.texi (Custom Format Strings): Document it. * lisp/format-spec.el (format-spec): Add an optional parameter to return a list of strings (bug#33740).
* | Add a reference between the Strings node and Search/ReplaceLars Ingebrigtsen2020-12-291-1/+4
| | | | | | | | | | * doc/lispref/strings.texi (Creating Strings): Mention string-replace/replace-regexp-in-string (bug#45516).
* | Allow `string-limit' to work on encoded stringsLars Ingebrigtsen2020-12-251-1/+8
| | | | | | | | | | | | | | * doc/lispref/strings.texi (Creating Strings): Document it. * lisp/emacs-lisp/subr-x.el (string-limit): Allow limiting on encoded strings.
* | Remove `string-slice' -- it's not very well definedLars Ingebrigtsen2020-12-251-11/+0
| | | | | | | | | | | | * doc/lispref/strings.texi (Creating Strings): Ditto. * lisp/emacs-lisp/subr-x.el (string-slice): Remove.
* | Make string-pad take an optional START parameterLars Ingebrigtsen2020-12-221-4/+4
| | | | | | | | | | * lisp/emacs-lisp/subr-x.el (string-pad): Alter the calling convention.
* | Change the string-limit parameter semanticsLars Ingebrigtsen2020-12-221-7/+6
| | | | | | | | | | * lisp/emacs-lisp/subr-x.el (string-limit): Alter the calling convention.
* | Add string-chop-newlineLars Ingebrigtsen2020-12-211-0/+4
| | | | | | | | | | * doc/lispref/strings.texi (Creating Strings): Document it. * lisp/emacs-lisp/subr-x.el (string-chop-newline): Add new function.
* | Rename slice-string to string-sliceLars Ingebrigtsen2020-12-211-2/+2
| | | | | | | | | | * lisp/emacs-lisp/subr-x.el (string-slice): Rename from slice-string. * doc/lispref/strings.texi (Creating Strings): Ditto.
* | Add `string-pad'Lars Ingebrigtsen2020-12-211-0/+9
| | | | | | | | | | | | | | * doc/lispref/strings.texi (Creating Strings): Document it. * lisp/emacs-lisp/shortdoc.el (string): Add example. * lisp/emacs-lisp/subr-x.el (string-pad): New function.
* | Beef up the Emacs string utility set a bitLars Ingebrigtsen2020-12-211-0/+38
| | | | | | | | | | | | | | | | | | * doc/lispref/strings.texi (Modifying Strings): Document them. * lisp/emacs-lisp/shortdoc.el (string): Add examples. * lisp/emacs-lisp/subr-x.el (string-clean-whitespace) (string-fill, string-limit, string-lines, slice-string): New functions.
* | string-search robustness and documentation improvement (bug#43598)Mattias Engdegård2020-09-251-1/+3
| | | | | | | | | | | | | | | | * src/fns.c (Fstring_search): Check START-POS argument range. Simplify logic. Improve doc string. * test/src/fns-tests.el (string-search): Add test cases. * doc/lispref/strings.texi (Text Comparison): Elaborate. * lisp/emacs-lisp/byte-opt.el (pure-fns): Mark string-search as pure.
* | Add a new function 'string-search'Lars Ingebrigtsen2020-09-251-0/+8
| | | | | | | | | | * doc/lispref/strings.texi (Text Comparison): Document it. * src/fns.c (Fstring_search): New function.
* | Correct 'concat' manual entry (bug#42296)Mattias Engdegård2020-07-111-4/+9
| | | | | | | | | | | | * doc/lispref/strings.texi (Creating Strings): 'concat' does not necessarily return a newly allocated string. This has been the case at least since 1997 (Emacs 20.3).
* | Fix and extend format-spec (bug#41758)Basil L. Contovounesios2020-06-181-9/+26
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/format-spec.el: Use lexical-binding. Remove dependence on subr-x.el. (format-spec-make): Clarify docstring. (format-spec--parse-modifiers): Rename to... (format-spec--parse-flags): ...this and simplify. In particular, don't bother parsing :space-pad which is redundant and unused. (format-spec--pad): Remove, replacing with... (format-spec--do-flags): ...this new helper function which performs more of format-spec's supported text manipulation. (format-spec): Autoload. Allow optional argument to take on special values 'ignore' and 'delete' for more control over what happens when a replacement for a format specification isn't provided. Bring back proper support for a precision modifier similar to that of 'format'. * lisp/battery.el (battery-format): Rewrite in terms of format-spec. (battery-echo-area-format, battery-mode-line-format): Mention support of format-spec syntax in docstrings. * doc/lispref/strings.texi (Custom Format Strings): * etc/NEWS: Document and announce these changes. * lisp/dired-aux.el (dired-do-compress-to): * lisp/erc/erc-match.el (erc-log-matches): * lisp/erc/erc.el (erc-update-mode-line-buffer): * lisp/gnus/gnus-sieve.el (gnus-sieve-update): * lisp/gnus/gssapi.el (open-gssapi-stream): * lisp/gnus/mail-source.el (mail-source-fetch-file) (mail-source-fetch-directory, mail-source-fetch-pop) (mail-source-fetch-imap): * lisp/gnus/message.el (message-insert-formatted-citation-line): * lisp/image-dired.el: * lisp/net/eww.el: * lisp/net/imap.el (imap-kerberos4-open, imap-gssapi-open) (imap-shell-open): * lisp/net/network-stream.el (network-stream-open-shell): * lisp/obsolete/tls.el (open-tls-stream): * lisp/textmodes/tex-mode.el: Remove extraneous loads and autoloads of format-spec now that it is autoloaded and simplify its uses where possible. * test/lisp/battery-tests.el (battery-format): Test new format-spec support. * test/lisp/format-spec-tests.el (test-format-spec): Rename to... (format-spec) ...this, extending test cases. (test-format-unknown): Rename to... (format-spec-unknown): ...this, extending test cases. (test-format-modifiers): Rename to... (format-spec-flags): ...this. (format-spec-make, format-spec-parse-flags, format-spec-do-flags) (format-spec-do-flags-truncate, format-spec-do-flags-pad) (format-spec-do-flags-chop, format-spec-do-flags-case): New tests.
* Improve format-spec documentation (bug#41571)Basil L. Contovounesios2020-06-021-0/+176
| | | | | | | | | * doc/lispref/text.texi (Interpolated Strings): Move from here... * doc/lispref/strings.texi (Custom Format Strings): ...to here, renaming the node and clarifying the documentation. (Formatting Strings): End node with sentence referring to the next one. * lisp/format-spec.el (format-spec): Clarify docstring.
* Don’t use “constant” for values you shouldn’t changePaul Eggert2020-05-161-7/+4
| | | | | | | | | | | | | | | | | | | | Inspired by patch proposed by Dmitry Gutov (Bug#40671#393) and by further comments by him and by Michael Heerdegen in the same bug report. * doc/lispintro/emacs-lisp-intro.texi (setcar): Don’t push mutability here. * doc/lispref/eval.texi (Self-Evaluating Forms, Quoting) (Backquote): * doc/lispref/lists.texi (Modifying Lists): * doc/lispref/objects.texi (Lisp Data Types, Mutability): * doc/lispref/sequences.texi (Array Functions, Vectors): * doc/lispref/strings.texi (String Basics, Modifying Strings): Don’t use the word “constant” to describe all values that a program should not change. * doc/lispref/objects.texi (Mutability): Rename from “Constants and Mutability”. All uses changed. In a footnote, contrast the Emacs behavior with that of Common Lisp, Python, etc. for clarity, and say the goal is to be nicer.
* Improve mutability documentationPaul Eggert2020-04-191-0/+1
| | | | | | | | | | | | | This change was inspired by comments from Štěpán Němec in: https://lists.gnu.org/r/emacs-devel/2020-04/msg01063.html * doc/lispref/objects.texi (Lisp Data Types): Mention mutability. (Constants and mutability): New section. * doc/lispintro/emacs-lisp-intro.texi (Lists diagrammed) (Indent Tabs Mode): Improve wording. * doc/lispref/eval.texi (Self-Evaluating Forms): Say that they return constants. * doc/lispref/lists.texi (Sets And Lists): Fix memql mistake/confusion that I recently introduced.
* Document constant vs mutable objects betterPaul Eggert2020-04-181-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | This patch builds on a suggested patch by Mattias Engdegård and on further comments by Eli Zaretskii. Original bug report by Kevin Vigouroux (Bug#40671). * doc/lispintro/emacs-lisp-intro.texi (set & setq, Review) (setcar, Lists diagrammed, Mail Aliases, Indent Tabs Mode): setq is a special form, not a function or command. * doc/lispintro/emacs-lisp-intro.texi (setcar): * doc/lispref/lists.texi (Modifying Lists, Rearrangement): * doc/lispref/sequences.texi (Sequence Functions) (Array Functions, Vectors): * doc/lispref/strings.texi (String Basics, Modifying Strings): Mention mutable vs constant objects. * doc/lispintro/emacs-lisp-intro.texi (setcar, setcdr) (kill-new function, cons & search-fwd Review): * doc/lispref/edebug.texi (Printing in Edebug): * doc/lispref/keymaps.texi (Changing Key Bindings): * doc/lispref/lists.texi (Setcar, Setcdr, Rearrangement) (Sets And Lists, Association Lists, Plist Access): * doc/lispref/sequences.texi (Sequence Functions) (Array Functions): * doc/lispref/strings.texi (Text Comparison): Fix examples so that they do not try to change constants.
* Update copyright year to 2020Paul Eggert2020-01-011-1/+1
| | | | Run "TZ=UTC0 admin/update-copyright $(git ls-files)".
* Support "%x" etc. formats on more floatsPaul Eggert2019-07-231-6/+4
| | | | | | | | | | | | | | * doc/lispref/strings.texi (Formatting Strings): Document this. * src/editfns.c (styled_format): Support %o, %x, and %X on finite floats less than zero or greater than UINTMAX_MAX. * test/src/editfns-tests.el (format-%x-large-float) (read-large-integer, format-%o-negative-float): Adjust tests to match extended behavior. Rename the latter test from format-%o-invalid-float, since the float is no longer invalid. * test/src/editfns-tests.el (format-%x-large-float) (read-large-integer): Test this.
* Merge from origin/emacs-26Paul Eggert2018-12-311-1/+1
|\ | | | | | | | | | | 2fcf2df Fix copyright years by hand 26bed8b Update copyright year to 2019 2814292 Fix value of default frame height. (Bug#33921)
| * Update copyright year to 2019Paul Eggert2019-01-011-1/+1
| | | | | | | | Run 'TZ=UTC0 admin/update-copyright $(git ls-files)'.
* | %o and %x can now format signed integersPaul Eggert2018-07-261-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Optionally treat integers as signed numbers with %o and %x format specifiers, instead of treating them as a machine-dependent two’s complement representation. This option is more machine-independent, allows formats like "#x%x" to be useful for reading later, and is better-insulated for future changes involving bignums. Setting the new variable ‘binary-as-unsigned’ to nil enables the new behavior (Bug#32252). This is a simplified version of the change proposed in: https://lists.gnu.org/r/emacs-devel/2018-07/msg00763.html I simplified that proposal by omitting bitwidth modifiers, as I could not find an any example uses in the Emacs source code that needed them and doing them correctly would have been quite a bit more work for apparently little benefit. * doc/lispref/strings.texi (Formatting Strings): Document that %x and %o format negative integers in a platform-dependent way. Also, document how to format numbers so that the same values can be read back in. * etc/NEWS: Document the change. * src/editfns.c (styled_format): Treat integers as signed numbers even with %o and %x, if binary-as-unsigned is nil. Support the + and space flags with %o and %x, since they’re about signs. (syms_of_editfns): New variable binary-as-unsigned. * test/src/editfns-tests.el (read-large-integer): Test that maximal integers can be read after printing with all integer formats, if binary-as-unsigned is nil.
* | (format "%#x" 0) yields "0", not "0x0"Paul Eggert2018-07-231-1/+1
| | | | | | | | | | * doc/lispref/strings.texi (Formatting Strings): * src/editfns.c (Fformat): Document this.
* | positive → nonnegative doc fixesPaul Eggert2018-07-231-4/+4
| | | | | | | | | | | | | | | | * doc/lispref/numbers.texi (Bitwise Operations) (Math Functions): * doc/lispref/strings.texi (Formatting Strings): * src/editfns.c (Fformat): Correct “positive” with “nonnegative” in some documentation.
* | (format "%d" F) now truncates floating FPaul Eggert2018-06-251-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem reported by Paul Pogonyshev (Bug#31938). * src/editfns.c: Include math.h, for trunc. (styled_format): For %d, truncate floating-point numbers and convert -0 to 0, going back to how Emacs 26 did things. * doc/lispref/strings.texi (Formatting Strings): Document behavior of %o, %d, %x, %X on floating-point numbers. * src/floatfns.c (trunc) [!HAVE_TRUNC]: Rename from emacs_trunc and make it an extern function, so that editfns.c can use it. All callers changed. * test/src/editfns-tests.el (format-%d-float): New test.
* | Fix documentation and tests for 'string-distance'Eli Zaretskii2018-04-281-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | * src/fns.c (Fstring_distance): Doc fix. * doc/lispref/strings.texi (Text Comparison): Document 'string-distance'. * etc/NEWS: Fix wording and mark as documented in the manuals. * test/src/fns-tests.el (test-string-distance): Move from subr-tests.el and rename.
* | Merge from origin/emacs-26Glenn Morris2018-02-281-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fd50238 (origin/emacs-26) * doc/lispref/streams.texi (Output Variable... 769ea57 Use "GTK+" where applicable in the manual 5e69219 Document print-escape-control-characters c00fea9 Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emac... a2ab0d0 * doc/emacs/killing.texi (Rectangles): Don't use @key for cha... 6288c3d * lisp/emulation/viper.el: Unbreak it. bf3535e More fixes in the Emacs manual c87d04e Avoid aborts in 'md5' 9743f48 Mark keys consistently in manuals ce557a9 Remove @key{} markups from @kindex entries in manuals 71243f0 * doc/emacs/display.texi (Standard Faces): Fix markup of inde... 7a069f3 Fix @kindex entries in manuals 6218933 Fix @cindex entries in manuals 57c9f12 Merge branch 'emacs-26' of git.sv.gnu.org:/srv/git/emacs into... e415309 Fix @cindex entries in org.texi 560a23e Document reserved keys 105d085 * doc/misc/ebrowse.texi: Use @key{} for keys. Conflicts: doc/misc/tramp.texi etc/NEWS
| * Fix @cindex entries in manualsMichael Albinus2018-02-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/emacs/custom.texi: * doc/emacs/dired.texi: * doc/emacs/display.texi: * doc/emacs/files.texi: * doc/emacs/frames.texi: * doc/emacs/killing.texi: * doc/emacs/maintaining.texi: * doc/emacs/misc.texi: * doc/emacs/msdos-xtra.texi: * doc/emacs/msdos.texi: * doc/emacs/search.texi: * doc/emacs/text.texi: * doc/emacs/trouble.texi: * doc/lispintro/emacs-lisp-intro.texi: * doc/lispref/strings.texi: * doc/lispref/text.texi: * doc/misc/cc-mode.texi: * doc/misc/efaq.texi: * doc/misc/eieio.texi: * doc/misc/emacs-mime.texi: * doc/misc/gnus.texi: * doc/misc/htmlfontify.texi: * doc/misc/idlwave.texi: * doc/misc/message.texi: * doc/misc/mh-e.texi: * doc/misc/sem-user.texi: * doc/misc/ses.texi: * doc/misc/tramp.texi: * doc/misc/vhdl-mode.texi: Fix @cindex entries.
* | Merge from origin/emacs-26Glenn Morris2018-02-241-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | 7e7f2ea (origin/emacs-26) * src/keyboard.c (syms_of_keyboard): Doc fi... c0676d4 Improve documentation of X resources d806d69 ; Use @minus for negative numbers in some texi files 4a8ea7d * lisp/international/mule.el (keyboard-coding-system): Doc fix. 8a73b80 Minor doc fixes, mostly for timestamp issues 361a8b9 * doc/emacs/mini.texi (Completion Styles): Improve indexing. 2dc24d5 Fix @findex and @vindex entries in manuals 76f5242 Document, in the Elisp manual, how to get a character's raw s... 5fb2957 Improvements in the Emacs manual de17b8e Tiny doc/misc markup fixes
| * Minor doc fixes, mostly for timestamp issuesPaul Eggert2018-02-231-1/+1
| |
* | Merge from origin/emacs-26Paul Eggert2018-01-011-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 63b04c11d5 Fix copyright years by hand 5c7dd8a783 Update copyright year to 2018 220a9ecba1 Merge from Gnulib 312c565566 Don't add empty keyboard macro to macro ring (Bug#24992) 39ca289a7a Allow customization of decoding of "man" command f8240815ea * etc/NEWS: Add security consideration note on passphrase ... 0c78822c70 Fix subtle problem with scroll-down when scroll-margin is ... acd289c5a4 Fix problems with indexing in User manual b240c7846b * lisp/help.el (describe-key): Only (copy-sequence elt) wh... e879a5444a * src/buffer.c (Frestore_buffer_modified_p): Fix bug#29846 81b1028b63 Improve documentation of 'inhibit-modification-hooks' and ... 7175496d7a Fix doc string of 'enable-recursive-minibuffers' 5b38406491 Fix documentation of delsel and of killing text # Conflicts: # etc/NEWS # etc/refcards/ru-refcard.tex
| * Update copyright year to 2018Paul Eggert2018-01-011-1/+1
| | | | | | | | Run admin/update-copyright.
* | Merge from origin/emacs-26Glenn Morris2017-12-271-0/+14
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fd35804971 (origin/emacs-26) * doc/lispref/strings.texi (Case Convers... 89e257d71b * doc/misc/speedbar.texi (Top): Fix grammar. a31ab5ffb5 * lisp/subr.el (with-silent-modifications): Doc fixes. 2ebc8dc3b6 Fix curved quotes in printed manual e4a881b5cf Say that "gnus-cloud" is a parody name 13c59d0a83 More improvements for text.texi 7850b7620e Adjudicate review comments for the "Text" chapter of user ... d7d3b14a99 * lisp/url/url-http.el (url-http-wait-for-headers-change-f... f3819ad13e In C-h k <mouse-n>, alert user to existence of any matchin... 99054fbef9 * net/eww.el (eww): Handle URLs without host part. de89c0b641 Make C-h c/k S-mouse-1 display message for mouse-appearanc... 720ed0b533 Avoid crashes when ':eval' deletes our frame 9105c9aa34 Fix scrolling up in pixel-scroll.el b882d4ef11 Fix problems with ligatures in PDF version of ELisp manual 289dd53bb3 (elisp-flymake-byte-compile): Handle killed buffer in sent... cf36c82127 Avoid some overfull lines in PDF lispref b07b56a351 Avoid some overfull lines in PDF manual 6b3118f025 * doc/emacs/arevert-xtra.texi (Auto Reverting the Buffer M... 7ffb7b1e01 ; lispref nil/t markup fixes # Conflicts: # doc/emacs/text.texi
| * * doc/lispref/strings.texi (Case Conversion):Glenn Morris2017-12-271-3/+3
| | | | | | | | Use a TeX font that support ligatures.
| * Fix problems with ligatures in PDF version of ELisp manualEli Zaretskii2017-12-231-0/+14
| | | | | | | | | | * doc/lispref/strings.texi (Case Conversion): Avoid problems with ligatures in printed versions of the manual. (Bug#29818)
* | Allow 'make-string' callers force creation of multibyte stringsEli Zaretskii2017-11-041-1/+8
|/ | | | | | | | | | | | | | | | | | | | * src/alloc.c (Fmake_string): Accept additional argument MULTIBYTE, and produce a multibyte string if it is non-nil. (make_event_array): * src/lread.c (read0): * src/editfns.c (Ftranslate_region_internal): * src/coding.c (Fdefine_coding_system_internal): * src/cmds.c (internal_self_insert): * src/xdisp.c (build_desired_tool_bar_string) (store_mode_line_string): All C callers changed. * doc/lispref/strings.texi (Creating Strings): Document the new optional argument. * etc/NEWS: Mention the new optional argument. * lisp/ruler-mode.el (ruler-mode-ruler): Call make-string with the 3rd argument non-nil.
* Speed up (format "%s" STRING) and the likePaul Eggert2017-10-041-3/+7
| | | | | | | | | | | | | | | | | | | | | | Although the Lisp manual said that ‘format’ returns a newly-allocated string, this was not true for a few cases like (format "%s" ""), and fixing the documentation to allow reuse of arguments lets us improve performance in common cases like (format "foo") and (format "%s" "foo") (Bug#28625). * doc/lispref/strings.texi (Formatting Strings): * etc/NEWS: Say that the result of ‘format’ might not be newly allocated. * src/callint.c (Fcall_interactively): * src/dbusbind.c (XD_OBJECT_TO_STRING): * src/editfns.c (Fmessage, Fmessage_box): * src/xdisp.c (vadd_to_log, Ftrace_to_stderr): Just use Fformat or Fformat_message, as that’s simpler and no longer makes unnecessary copies. * src/editfns.c (styled_format): Remove last argument, as it is no longer needed: all callers now want it to behave as if it were true. All remaining callers changed. Make this function static again. Simplify the function now that we no longer need to worry about whether the optimization is allowed.
* Amend documentation for text-quoting-style becoming a user option.Alan Mackenzie2017-10-011-10/+4
| | | | | | | | | | | | | | * doc/lispref/control.texi (Signaling Errors): * doc/lispref/display.texi (Displaying Messages): * doc/lispref/strings.texi (Formatting Strings): Edit for brevity, farming out the details to the new Text Quoting Style node. * doc/lispref/help.texi (Text Quoting Style): New section. Move detailed discussion of text-quoting-style here. Add discussion about how to output grave accent and apostrophe in documentation and messages. Adjust xrefs to point to this section when appropriate. * etc/NEWS: text-quoting-style semantics have not changed.