1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-19 20:30:29 -08:00
Commit graph

127 commits

Author SHA1 Message Date
Mattias Engdegård
497a1ed8bb string-search robustness and documentation improvement (bug#43598)
* 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.
2020-09-25 17:08:00 +02:00
Lars Ingebrigtsen
e51a98b0c2 Add a new function 'string-search'
* doc/lispref/strings.texi (Text Comparison): Document it.
* src/fns.c (Fstring_search): New function.
2020-09-25 01:53:16 +02:00
Mattias Engdegård
6cc35829e4 Correct 'concat' manual entry (bug#42296)
* 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).
2020-07-11 15:13:18 +02:00
Basil L. Contovounesios
0185d76e74 Fix and extend format-spec (bug#41758)
* 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.
2020-06-18 12:46:21 +01:00
Basil L. Contovounesios
b07e3b1d97 Improve format-spec documentation (bug#41571)
* 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.
2020-06-02 14:58:25 +01:00
Paul Eggert
6ac2326e5b Don’t use “constant” for values you shouldn’t change
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.
2020-05-16 18:24:07 -07:00
Paul Eggert
dca35b31d0 Improve mutability documentation
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.
2020-04-19 13:29:57 -07:00
Paul Eggert
eebfb72c90 Document constant vs mutable objects better
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.
2020-04-18 13:01:08 -07:00
Paul Eggert
365e01cc9f Update copyright year to 2020
Run "TZ=UTC0 admin/update-copyright $(git ls-files)".
2020-01-01 00:59:52 +00:00
Paul Eggert
dfb0ba79b5 Support "%x" etc. formats on more floats
* 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.
2019-07-23 01:46:41 -07:00
Paul Eggert
ba809612c0 Merge from origin/emacs-26
2fcf2df Fix copyright years by hand
26bed8b Update copyright year to 2019
2814292 Fix value of default frame height.  (Bug#33921)
2018-12-31 17:57:29 -08:00
Paul Eggert
26bed8ba10 Update copyright year to 2019
Run 'TZ=UTC0 admin/update-copyright $(git ls-files)'.
2019-01-01 01:01:13 +00:00
Paul Eggert
4a56ca5bbf %o and %x can now format signed integers
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.
2018-07-26 00:39:17 -07:00
Paul Eggert
90256285e1 (format "%#x" 0) yields "0", not "0x0"
* doc/lispref/strings.texi (Formatting Strings):
* src/editfns.c (Fformat): Document this.
2018-07-23 10:24:24 -07:00
Paul Eggert
109cb1520c positive → nonnegative doc fixes
* 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.
2018-07-23 00:07:02 -07:00
Paul Eggert
d0e2a341dd (format "%d" F) now truncates floating F
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.
2018-06-25 12:23:08 -07:00
Eli Zaretskii
a7a3918a16 Fix documentation and tests for 'string-distance'
* 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.
2018-04-28 10:27:53 +03:00
Glenn Morris
3959892419 Merge from origin/emacs-26
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
2018-02-28 09:40:40 -08:00
Michael Albinus
621893352f Fix @cindex entries in manuals
* 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.
2018-02-24 20:52:21 +01:00
Glenn Morris
80c2bf6e16 Merge from origin/emacs-26
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
2018-02-24 07:50:30 -08:00
Paul Eggert
8a73b80aa4 Minor doc fixes, mostly for timestamp issues 2018-02-23 11:52:18 -08:00
Paul Eggert
bb267f17f9 Merge from origin/emacs-26
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
2018-01-01 01:13:04 -08:00
Paul Eggert
5c7dd8a783 Update copyright year to 2018
Run admin/update-copyright.
2018-01-01 00:57:59 -08:00
Glenn Morris
08e1438a3b Merge from origin/emacs-26
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
2017-12-27 10:00:16 -08:00
Glenn Morris
fd35804971 * doc/lispref/strings.texi (Case Conversion):
Use a TeX font that support ligatures.
2017-12-27 09:55:35 -08:00
Eli Zaretskii
b882d4ef11 Fix problems with ligatures in PDF version of ELisp manual
* doc/lispref/strings.texi (Case Conversion): Avoid problems with
ligatures in printed versions of the manual.  (Bug#29818)
2017-12-23 10:34:42 +02:00
Eli Zaretskii
bd886c6f56 Allow 'make-string' callers force creation of multibyte strings
* 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.
2017-11-04 15:00:25 +02:00
Paul Eggert
3db388b0bf Speed up (format "%s" STRING) and the like
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.
2017-10-04 14:45:08 -07:00
Alan Mackenzie
8c18dcbc78 Amend documentation for text-quoting-style becoming a user option.
* 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.
2017-10-01 11:27:16 +00:00
Alan Mackenzie
5f76ac150a Make the value nil in text-quoting-style mean what it does in Emacs 25.
This is a partial reversion of yesterday's commit by the same author, which
changed the meaning of nil and introduced the new value t.

* src/doc.c (text_quoting_style, text-quoting-style)
(internal--text-quoting-flag): Revert yesterday's changes.

* lisp/cus-start.el: (top level): Amend the entry for text-quoting-style.

* etc/NEWS: Amend the entry for text-quoting-style.

* doc/lispref/control.texi (Signalling Errors)
* doc/lispref/display.texi (Displaying Messages)
* doc/lispref/strings.texi (Formatting Strings): Bind text-quoting-style to
grave rather than nil to inhibit translation of quotes.

* doc/lispref/help.texi (Keys in Documentation): Revert the description of the
proposed new default, t.
2017-10-01 11:27:16 +00:00
Alan Mackenzie
d5e4e004fa Make text-quoting-style customizable. Introduce t and new meaning for nil.
A value of nil for text-quoting-style now means "no translation".  t means
"Use curved quotes if displayable".

* src/doc.c (text-quoting-style (function)): modify for new semantics.
(text-quoting-style (variable)): Amend the doc string, set the default value
to t.

* lisp/cus-start.el: (top level): Create a customize entry for
text-quoting-style in group display.

* etc/NEWS: Amend the entry for text-quoting-style.

* doc/emacs/display.texi (Text Display): Describe the translation of ASCII
quotes to curved quotes, and how to influence or inhibit it.

* doc/lispref/control.texi (Signalling Errors)
* doc/lispref/display.texi (Displaying Messages)
* doc/lispref/strings.texi (Formatting Strings): Describe binding
text-quoting-style to nil to inhibit unwanted quote translation.

* doc/lispref/help.texi (Keys in Documentation): Change text-quoting-style
from a variable to a user option.  Describe its changed set of values.  State
that it can be customized freely.
2017-10-01 11:27:15 +00:00
Eli Zaretskii
fbd15836af * doc/lispref/strings.texi (Formatting Strings): Improve indexing. 2017-09-20 16:40:20 +03:00
Paul Eggert
d5fcf9e458 Tune ‘format’ after recent fix
* 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.
2017-06-04 08:42:53 -07:00
Paul Eggert
0147cdd4d9 Document uniqueness limitation of ‘format’
* doc/lispref/strings.texi (Formatting Strings):
* src/editfns.c (Fformat):
Document that field numbers should be unique within a format.
2017-06-03 01:31:52 -07:00
Paul Eggert
8de2581a64 Limit format fields to more POSIX-like spec
* 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.
2017-06-01 16:06:38 -07:00
Paul Eggert
5324710841 Minor improvements to format field numbers
* 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.
2017-06-02 00:25:48 +02:00
Philipp Stephani
0dd1bbb0bb Implement field numbers in format strings
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.
2017-06-02 00:22:13 +02:00
Jean-Christophe Helary
d35da215cd Improve documentation of 'split-string'
* doc/lispref/strings.texi (Creating Strings): Rearrange text to
make it more readable.  (Bug#26925)
2017-05-19 14:44:33 +03:00
Michal Nazarewicz
b3b9b258c4 Support casing characters which map into multiple code points (bug#24603)
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.
2017-04-06 20:54:58 +02:00
Paul Eggert
e6fd84d2d5 Merge from origin/emacs-25
ab0a60a ; * CONTRIBUTE (Generating ChangeLog entries): Drop duplicate...
7e02a47 Index byte-compile-debug
7c1e598 Document `byte-compile-debug' in the ELisp manual
4d81eb4 Document variable `byte-compile-debug'
72ef710 Fix call to debugger on assertion failure
ae8264c Call modification hooks in org-src fontify buffers
b3139da ; Fix last change in doc/lispref/strings.texi
c331f39 Improve documentation of 'format' conversions
9f52f67 Remove stale functions from ert manual
c416b14 Fix a typo in Eshell manual
06695a0 ; Fix a typo in ediff-merg.el
954e9e9 Improve documentation of hooks related to saving buffers
9fcab85 Improve documentation of auto-save-visited-file-name
2236c53 fix typo in mailcap-mime-extensions
85a3e4e Fix typos in flymake.el
a1ef10e More NEWS checking for admin.el's set-version

# Conflicts:
#	lisp/emacs-lisp/bytecomp.el
2017-03-19 12:29:06 -07:00
Eli Zaretskii
b3139da077 ; Fix last change in doc/lispref/strings.texi
* doc/lispref/strings.texi (Formatting Strings): One more
clarification to the last change.  (Bug#25557)
2017-01-28 11:14:28 +02:00
Eli Zaretskii
c331f393c1 Improve documentation of 'format' conversions
* 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)
2017-01-28 10:30:17 +02:00
Paul Eggert
bcf244ef9b Merge from origin/emacs-25
2e2a806 Fix copyright years by hand
5badc81 Update copyright year to 2017
2017-01-01 01:10:47 -08:00
Paul Eggert
5badc81c1c Update copyright year to 2017
Run admin/update-copyright.
2016-12-31 19:42:26 -08:00
Paul Eggert
e676b7b80b Merge from origin/emacs-25
d31298d Fix documentation of `window-combination-resize'
2086f4c Typo fixes in elisp manual
2016-12-07 12:41:04 -08:00
Bogdan Creanga
2086f4c0c6 Typo fixes in elisp manual
* 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
2016-11-29 19:07:15 +09:00
Paul Eggert
dcd90f60eb Merge from origin/emacs-25
0ffc9ce Update admin/authors.el
0ad7410 Update Antinews in ELisp manual
ea0f750 Fix comments on window height macros
0bbdeed Fix 'url-http-create-request' when cookies are used
0045998 Fix cross reference in frames.texi
1392894 ; * etc/DEBUG: Minor copyedits.
304a5c8 ; * etc/DEBUG: Improve documentation of getting control to GDB.
56bf7d7 Fix regexp-opt documentation (bug #17862)
803ad6f ; Fix documentation of seq-subseq
ed4530d * lisp/emacs-lisp/gv.el (gv-ref): Fix example of PLACE in doc...
88ea396 ; Spelling fixes
17197d0 Fix tags-query-replace docstring
80a7f8b Clarify documentation of precision in format specs
88a5052 Improve and clarify documentation of subprocesses
89eb09f * etc/PROBLEMS: Mention gnutls-cli 3.5.3 (Bug#24247).

# Conflicts:
#	etc/PROBLEMS
#	src/process.c
2016-09-26 13:32:28 -07:00
Eli Zaretskii
80a7f8be7b Clarify documentation of precision in format specs
* doc/lispref/strings.texi (Formatting Strings): Be less
definitive wrt what precision means in format specs other than
floating-point, %s and %S.  (Bug#24314)
2016-08-26 22:13:34 +03:00
Paul Eggert
6b780a2e97 Merge from origin/emacs-25
9ba51ed Document buffer-swap-text+save-excursion interaction
452aa94 Fix eieio vs cl-generic incompatibilities found in Rudel (bug...
248d5dd Include cl-generic in package--builtin-versions (bug#22817)
8f5a8b6 Improve timing in `tramp-test29-environment-variables'
05ba7a0 Add test for handling environment variables in Tramp
e393d4f * lisp/emacs-lisp/package.el (describe-package-1) (package-st...
5e38887 ; * lisp/net/tramp.el: Fix 2010-10-04 comment typo.  (Bug#23913)
90f2169 ; Spelling fixes
069fc05 Improve documentation of search functions
0a0144a Delete environment variables in Tramp when needed
f624671 Add "New in Emacs 25" section to the FAQ
658daf9 Fix 'vertical-motion' in non-interactive sessions
686b520 Fix memory leak in imagemagick-types
4069b71 Update ELisp manual to match 'string-collate-equalp' doc string
1b2d6a6 Clarify docstring of find-feature-regexp
aac62a6 Add details to cl-lib defining macros' docstrings
d6aa4da Clarify doc string of 'save-buffer'
03bcf11 Un-confuse doc string of 'string-collate-equalp'
c53135b Clarify documentation of 'mouse-on-link-p'

# Conflicts:
#	lisp/emacs-lisp/eieio-core.el
2016-08-05 14:09:08 -07:00
Eli Zaretskii
4069b716ad Update ELisp manual to match 'string-collate-equalp' doc string
* doc/lispref/strings.texi (Text Comparison): Remove reference to
sorting from the description of 'string-collate-equalp'.  (Bug#23902)
2016-07-10 17:34:34 +03:00