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

135718 commits

Author SHA1 Message Date
Paul Eggert
076ed98ff6 More regexp advice and clarifications
* doc/lispref/searching.texi (Regexp Special): Simplify style
advice for order of ], ^, and - in character alternatives.
Stick with saying that it’s not a good idea to put ‘-’ after a
range.  Remove the special case about raw 8-bit bytes and
unibyte characters, as this documentation is confusing and
seems to be incorrect in some cases.  Say that z-a is the
preferred style for reversed ranges, since it’s clearer and is
typically what’s used in practice.  Mention some bad styles:
duplicates in character alternatives, ranges that denote <=3
characters, and ‘-’ as the first character.
2019-04-02 00:18:28 -07:00
Paul Eggert
f81ec28f4f Merge from origin/emacs-26
0924b27bca Say which regexp ranges should be avoided

# Conflicts:
#	doc/lispref/searching.texi
2019-04-01 23:43:57 -07:00
Paul Eggert
f5d3449612 ; Merge from origin/emacs-26
The following commit was skipped:

297a141ca3 ; * lisp/ldefs-boot.el: Update.
2019-04-01 23:40:21 -07:00
Eric Abrahamsen
03ceee0e64 Refactor Gnus group name extraction in group completing read
* lisp/gnus/gnus-group.el (gnus-group-completing-read): Only do the
  unibyte check once; make sure it applies to hash table keys as
  well.
2019-04-01 12:41:36 -07:00
Paul Eggert
74b63d27a6 Make struct Lisp_Objfwd etc. objects read-only
Initialize these objects statically, and make them constants.
This is a bit safer and more efficient.
* src/data.c (XBOOLFWD, XKBOARD_OBJFWD, XFIXNUMFWD, XOBJFWD):
* src/lisp.h (XBUFFER_OBJFWD):
Return a pointer-to-const instead of an unrestricted pointer.
(lispfwd): fwdptr is now a pointer-to-const instead of an
unrestricted pointer.  All uses changed.
(SET_SYMBOL_FWD): Accept pointer-to-const instead of an
unrestricted pointer.
(DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL, DEFVAR_INT)
(DEFVAR_KBOARD): Initialize static structures statically
instead of dynamically, and make them const.
* src/lread.c (defvar_int, defvar_bool, defvar_lisp_nopro)
(defvar_lisp, defvar_kboard): Accept pointer-to-const instead
of an unrestricted pointer; it’s now the caller’s
responsibility to initialize the pointed-to storage.  No need
for a separate address argument any more.  All callers
changed.
2019-04-01 12:02:37 -07:00
Paul Eggert
9287813da1 Fix union Lisp_Fwd * alignment bug
It's not portable to cast (e.g.) struct Lisp_Objfwd * to union
Lisp_Fwd * and then back again, because the compiler can then assume
that the pointer is aligned for union Lisp_Fwd * when accessing
the struct Lisp_Objfwd * components, and this assumption might
be incorrect becase we don't force that alignment.
* src/lisp.h (lispfwd): New type, replacing ...
(union Lisp_Fwd): ... this type, which was removed.
All uses changed.
(SET_SYMBOL_FWD): 2nd arg is now void *, not lispfwd.
All uses changed (casts no longer needed; they were
not portable anyway).
2019-04-01 12:02:37 -07:00
Stefan Monnier
197fbfc71f * lisp/subr.el (setq-default): Define as a macro
* lisp/emacs-lisp/bytecomp.el (byte-compile-setq-default): Delete.
(byte-compile-set-default): Inline the part that it used.

* lisp/emacs-lisp/edebug.el (setq-default): Remove the debug spec.

* src/data.c (Fsetq_default): Delete.
(syms_of_data): Don't register.
2019-04-01 12:35:10 -04:00
Eli Zaretskii
20ef15fbe6 Fix a typo in xterm.c and w32term.c
* src/xterm.c (x_window_to_scroll_bar):
* src/w32term.c (x_window_to_scroll_bar): Fix a typo.
2019-04-01 17:39:30 +03:00
Glenn Morris
d5fdcccaca ; Auto-commit of loaddefs files. 2019-04-01 07:37:57 -04:00
Paul Eggert
1827197e91 Use update-game-score more often with Tetris
* lisp/play/gamegrid.el (gamegrid-add-score-with-update-game-score):
Go back to previous way of deciding whether to invoke
update-game-score, except do not try to invoke it if file-modes
fails on it (Bug#35056).
2019-03-31 20:02:03 -07:00
Basil L. Contovounesios
63471c837d Do not set indent-line-function in text-mode
* lisp/textmodes/text-mode.el (text-mode): Do not reset
indent-line-function to its global default value of indent-relative.
* doc/lispref/modes.texi (Example Major Modes):
* etc/NEWS: Document change accordingly.
2019-03-31 22:32:28 +01:00
Basil L. Contovounesios
2e3deb09bd Do not set indent-line-function in text-mode
For discussion, see thread starting at:
https://lists.gnu.org/archive/html/emacs-devel/2019-03/msg01012.html
* lisp/textmodes/text-mode.el (text-mode): Do not reset
indent-line-function to its global default value of indent-relative.
* doc/lispref/modes.texi (Example Major Modes):
* etc/NEWS: Document change accordingly.
2019-03-31 22:30:12 +01:00
Basil L. Contovounesios
4c9950d015 Use lexical-binding in text-mode.el
* lisp/textmodes/text-mode.el: Use lexical-binding.
(text-mode, paragraph-indent-minor-mode, text-mode-hook-identify):
Use setq-local.
(toggle-text-mode-auto-fill): Quote function symbols as such.
(center-line): Minor simplification.
* doc/lispref/modes.texi (Example Major Modes): Update code example
for these changes to text-mode.
2019-03-31 22:27:21 +01:00
Alan Third
07d7852b00 Use the correct filename for dump file in NS
* nextstep/Makefile.in (all):
(${ns_appbindir}/Emacs.pdmp):
(links): Use mixed case 'Emacs.pdmp' to match the executable name.
2019-03-31 18:14:31 +01:00
Basil L. Contovounesios
0cd250e958 Fix recently extended delete-indentation behavior
* doc/lispref/text.texi (User-Level Deletion): Document new optional
arguments of delete-indentation.

* lisp/simple.el (delete-indentation): Do not barf if called
interactively when region is inactive. (bug#35021)
Do not skip blank lines. (bug#35036)
Consistently deactivate mark even when no text was changed.
Handle active region spanning a single line.

* test/lisp/simple-tests.el (simple-test--buffer-substrings):
New convenience function.
(simple-test--dummy-buffer, simple-test--transpositions): Use it.
(simple-delete-indentation-no-region)
(simple-delete-indentation-inactive-region): Update commentary.
Call delete-indentation interactively when testing for behavior with
inactive region and region is not explicitly defined.
(simple-delete-indentation-blank-line)
(simple-delete-indentation-boundaries)
(simple-delete-indentation-region)
(simple-delete-indentation-prefix): New tests.
2019-03-31 17:08:21 +01:00
Eric Abrahamsen
99be0aba4d Check gnus-newsgroup-dependencies is hash table in gnus-id-to-thread
* lisp/gnus/gnus-sum.el (gnus-id-to-thread): If dependencies haven't
  been initialized yet, don't blow up. Mimicks previous (non hasht
  table) behavior.
2019-03-31 08:36:56 -07:00
Mattias Engdegård
6d7e18e801 Fix typo in regexp-opt example code
* doc/lispref/searching.texi (Regexp Functions):
Fix typo in example code (Bug#34596).
2019-03-31 15:53:52 +02:00
Alan Mackenzie
b619777dd6 Allow a CC Mode derived mode to have strings delimited by single quotes.
Also fix the bug where the delimiters of '\033', etc. got the error face.

* lisp/progmodes/cc-langs.el (c-single-quotes-quote-strings): Enhance the docr
string.
(c-string-delims): Change doc string to doc comment.

* listp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings): In
searches and comparisons, take account of the string delimiters possibly
being '.  Fix argument in call of c-before-change-check-unbalanced-strings.
(c-parse-quotes-before-change, c-parse-quotes-after-change): Bind
case-fold-search to nil.  Analyze escape constructs inside character constants
more accurately, in particular accepting as valid more than one character
after /[0-7], /x, /u, and /U.  Amend calculations to account for this extra
length.
2019-03-30 13:19:47 +00:00
Eli Zaretskii
dd7d83e1db Fix a thinko in a recent commit
* src/buffer.c (Fkill_buffer): Fix last change.  (Bug#31138)
Reported by Mattias Engdegård <mattiase@acm.org>.
2019-03-30 14:27:11 +03:00
Mattias Engdegård
f2c14b2f01 Release regexp before signalling overflow error
* src/search.c (looking_at_1, search_buffer_re): Unfreeze the regexp
buffer before signalling a matcher overflow, since the error
processing may require quite some regexp use as well (Bug#34910).
2019-03-30 11:54:10 +01:00
Mattias Engdegård
75ec1b1952 Fix spurious regexp reentrancy error
* src/search.c (compile_pattern): Don't give up if the last regexp
cache entry is busy.  Instead, use the last (least recently used)
non-busy entry, and only signal a reentrancy error if there is no free
entry at all (Bug#34910).
2019-03-30 11:48:25 +01:00
Eli Zaretskii
9c0fa1172f Don't run buffer-related hooks in " *code conversion work*" buffers
Note: portions of this change were mistakenly pushed as part
of an unrelated commit a35a1f6a9.

* src/buffer.c (Fget_buffer_create): Set inhibit_buffer_hooks
non-zero for temporary buffers created by coding.c.  Don't run
buffer-list-update-hook for such buffers.
(Frename_buffer, Fkill_buffer, record_buffer)
(Fbury_buffer_internal): Don't run hooks for buffers whose
inhibit_buffer_hooks flag is set.
* src/buffer.h (struct buffer): New member
inhibit_buffer_hooks.
* src/pdumper.c (dump_buffer): Dump the new field.  Update the
hash value in HASH_buffer_XXX.
* src/coding.c (make_conversion_work_buffer): Function deleted;
code moved to code_conversion_save.
(code_conversion_save): Insert code from
make_conversion_work_buffer, but arrange for unwind-protecting
the current buffer before switching to the work buffer.  This
avoids leaving reused_workbuf_in_use set if user presses C-g
during encoding/decoding.
(Vcode_conversion_workbuf_name): Now external variable.
* src/coding.h (Vcode_conversion_reused_workbuf): Declare.
2019-03-30 12:01:58 +03:00
Michael Albinus
273d7b3ee0 Extend comment about scope of tramp-test05-expand-file-name-relative 2019-03-29 17:22:25 +01:00
Stefan Monnier
fc2da0db49 Gnus: Automatically render text/calendar in a human-friendly way
* lisp/gnus/mm-decode.el (mm-inline-media-tests): Add text/calendar entry.
Use (fboundp 'device-sound-enabled-p) rather than fishing for features.
(mm-automatic-display): Add text/calendar entry.

* lisp/gnus/gnus-icalendar.el: Use lexical-binding.
Remove redundant :group args.
(gnus-icalendar-mm-inline): Add autoload cookie.
2019-03-29 08:46:29 -04:00
Alan Mackenzie
14e9a428c5 Fix (again) regexp bug in CC Mode.
* lisp/progmodes/cc-mode.el (c-after-change-mark-abnormal-strings): "|\\\r" ->
"\\|\r".
2019-03-29 10:34:51 +00:00
Mattias Engdegård
eb6bbd9fb1 Use memql instead of memq in pcase
* lisp/emacs-lisp/pcase.el (pcase--u1):
Use memql instead of memq to work with bignums (Bug#34781).
* test/lisp/emacs-lisp/pcase-tests.el (pcase-tests-member): Test the above.
2019-03-28 23:57:34 +01:00
Eric Abrahamsen
dd30154e27 Initiate gnus-active-hashtb before making ephemeral group
* lisp/gnus/gnus-group.el (gnus-group-read-ephemeral-group): Needs to
  be a hash table, not nil.
2019-03-28 15:39:53 -07:00
Eli Zaretskii
2da9f8bf42 Fix display of sliced images on MS-Windows
* src/w32term.c (x_draw_image_foreground): Fix detection of
scaled images for sliced images.  Scale the original width of
a slice and its coordinates of origin as well.
2019-03-28 18:00:06 +02:00
Michael Albinus
2654c0b61b * lisp/net/tramp.el (tramp-accept-process-output): Use `push'. 2019-03-28 11:43:09 +01:00
Paul Eggert
7f129f2ecf Simpler way to export HAVE_X_WINDOWS to GDB
* src/.gdbinit: Simplify by removing dependency on globals
implementation.  This is useful for a future performance
improvement that I have in mind.
* src/alloc.c (enum defined_HAVE_X_WINDOWS, defined_HAVE_X_WINDOWS):
New enum and constant.
(gdb_make_enums_visible) [__GNUC__]: Use it, to make
defined_HAVE_X_WINDOWS visible to GDB.
2019-03-27 21:51:57 -07:00
Paul Eggert
81795bb713 Tweak re_registers allocation
* src/regex-emacs.c (re_match_2_internal):
No need to allocate one extra trailing search register;
Emacs does not use it.  Avoid quadratic behavior on
reallocation.
2019-03-27 21:24:26 -07:00
Paul Eggert
eac5f967ca No need for m_search_regs_saved in thread.h
* src/search.c (save_search_regs, restore_search_regs):
Don’t use m_search_regs_saved; it’s equivalent to
saved_search_regs.num_regs != 0.
* src/thread.h (struct thread_state): Remove m_search_regs_saved.
2019-03-27 21:24:26 -07:00
Paul Eggert
361e88986f Fix search_regs memory leak when thread destroyed
* src/thread.c (free_search_regs): New function.
(finalize_one_thread): Use it.
2019-03-27 21:24:25 -07:00
Juri Linkov
4da44cdaaf * lisp/frame.el (make-frame-on-monitor): Add default value. (Bug#34516) 2019-03-27 23:46:39 +02:00
Michael Albinus
3f87676e75 * lisp/net/tramp.el (tramp-accept-process-output): Let progress reporter run. 2019-03-27 22:28:03 +01:00
Charles A. Roelli
538c66c306 * test/lisp/mail/rmail-tests.el (rmail-autoload): Fix its doc. 2019-03-27 20:48:16 +01:00
Paul Eggert
df167575d1 Tune css-mode regexp
* lisp/textmodes/css-mode.el (css--font-lock-keywords):
Omit unnecessary \(?: \) in regexp.  Suggested by Mattias Engdegård in:
https://lists.gnu.org/r/emacs-devel/2019-03/msg01042.html
2019-03-27 11:44:09 -07:00
Michael Heerdegen
6dfd28c320 Improve documentation of 'alist-get' (Bug#34708)
* lisp/subr.el (alist-get): Enhance part of docstring explaining usage
in place expressions.
2019-03-27 19:40:49 +01:00
Paul Eggert
92acab73e0 Use regexp-opt-charset to improve regexp tweaks
* lisp/emacs-lisp/regexp-opt.el (regexp-opt):
Reword confusing sentence in doc string.
* lisp/erc/erc.el (erc-lurker-maybe-trim):
* lisp/mail/footnote.el (footnote-hebrew-numeric-regex):
Improve by using regexp-opt-charset.
2019-03-27 11:37:47 -07:00
Eli Zaretskii
a35a1f6a94 Attempt to fix crashes under GDB on Windows 10
* src/pdumper.c (dump_discard_mem)
[VM_SUPPORTED == VM_MS_WINDOWS]: Don't pass NULL pointer as
last argument to VirtualProtect.  Reported by Martin Rudalics
<rudalics@gmx.at>.
2019-03-27 20:34:22 +02:00
Paul Eggert
a697d1e638 Minor xml.el tweaks
* lisp/xml.el (xml-name-start-char-re, xml-name-char-re):
No need to call concat.
(xml-name-char-re): Use \u escapes rather than chars inline,
so that the code matches the comments better and is easier
to audit.
2019-03-27 10:02:18 -07:00
Michael Albinus
907d11fc53 Use connection-local setting for tramp-remote-path
* doc/misc/tramp.texi (Remote programs): Mention connection-local
settings for `tramp-remote-path'.

* lisp/net/tramp-sh.el (tramp-get-remote-path): Expand connection-local
variables.
2019-03-27 16:28:08 +01:00
Basil L. Contovounesios
e50bfaaeae Avoid recently obsolete seq-contains in css-mode
* lisp/textmodes/css-mode.el (css--join-nested-selectors): Replace
recently obsolete seq-contains with new predicate seq-contains-p.
2019-03-27 13:56:22 +00:00
Mattias Engdegård
041d65a045 * lisp/xml.el (xml-name-char-re): Remove superfluous `-' in regexp. 2019-03-27 13:39:33 +01:00
Alan Mackenzie
29ec1e4888 Improve C++ raw string fontification.
Integrate the handling of raw string and ordinary string fontification.

* lisp/progmodes/cc-defs.el (c-font-lock-flush)
(c-search-forward-char-property-without-value-on-char): new macros.
(c-point): In the 'eoll arm, check for eobp.
(c-search-forward-char-property-with-value-on-char): Handle the &optional
limit argument being nil.
(c-clear-char-property-with-value-on-char-function)
(c-clear-char-property-with-value-on-char): Return the position of the first
cleared property.

* lisp/progmodes/cc-engine.el (c-find-decl-prefix-search): Don't spuriously
recognize the change of face at a ) as the start of a string (a
"pseudo match").
(c-old-beg-rs c-old-end-rs): New variables.
(c-raw-string-pos): Analyze raw string delimiters more carefully.
(c-raw-string-in-end-delim): New function.
(c-depropertize-raw-string): Largely rewritten.
(c-before-change-check-raw-strings): New functionality: only remove the
syntax-table text properties from raw strings whose delimiters are about to
change.
(c-propertize-raw-string-id): New function.
(c-after-change-re-mark-raw-strings): Remove, incorporating functionality into
other functions.
(c-propertize-raw-string-opener): Largely rewritten.
(c-after-change-re-mark-raw-strings): Removed.
(c-after-change-unmark-raw-strings, c-after-change-unmark-raw-strings): New
functions.

* lisp/progmodes/cc-fonts.el (c-font-lock-raw-strings): Largely rewritten.

* lisp/progmodes/cc-langs.el (c-before-font-lock-functions): Replace
c-after-change-re-mark-unbalanced-strings by
c-after-change-mark-abnormal-strings in the t, c+objc, c++ and java sections.
Add c-after-change-unmark-raw-strings and remove
c-after-change-re-mark-raw-strings from the c++ section.

* lisp/progmodes/cc-mode.el (c-old-BEG c-old-END): Remove.
(c-old-END-literality): New variable.
(c-depropertize-CPP): Remove syntax-table properties from raw strings within
macros.
(c-before-change-check-unbalanced-strings): Call
c-truncate-semi-nonlit-pos-cache to preserve the integrity of the cache.
(c-before-change-check-unbalanced-strings): Call
c-truncate-semi-nonlit-pos-cache, largely rewritten.
(c-after-change-re-mark-unbalanced-strings): Renamed to
c-after-change-mark-abnormal-strings.  Call c-maybe-re-mark-raw-string.
2019-03-27 11:50:53 +00:00
Andreas Schwab
c267044837 * lisp/calc/calc-forms.el (calc-hms-notation): Fix interactive
prompt.
2019-03-27 10:31:41 +01:00
Nicolas Petton
1d25613265
* lisp/emacs-lisp/map.el (map-inplace): Fix the message of the error. 2019-03-27 10:23:08 +01:00
YAMAMOTO Mitsuharu
2755cf1848 Support native image resizing on cairo
* src/xterm.c (x_cr_draw_image): Add arguments image_width and
image_height and support scaling.  All callers changed.
* src/image.c (Fimage_scaling_p): Return t when USE_CAIRO.
(x_set_image_size) [USE_CAIRO]: Record the scaled dimensions
in the image struct.
* src/dispextern.h (HAVE_NATIVE_SCALING): Define when
USE_CAIRO as well.

* etc/NEWS: Update the announcement of native image scaling.
2019-03-27 11:12:18 +09:00
YAMAMOTO Mitsuharu
d7e4426517 Fix cairo image drawing with box
* src/xterm.c (x_cr_draw_image): Don't call cr_clip for non-mask case.
(x_draw_image_foreground) [USE_CAIRO]: Draw image here ...
(x_draw_image_glyph_string) [USE_CAIRO]: ... instead of here.
(x_draw_image_foreground, x_draw_image_foreground_1)
(x_draw_image_glyph_string) [USE_CAIRO]: Ifdef away unused code path.
2019-03-27 11:12:17 +09:00
Paul Eggert
5d6a314475 2019-03-26 regex cleanup
Problems reported by Mattias Engdegård in:
https://lists.gnu.org/r/emacs-devel/2019-03/msg01028.html
* lisp/align.el (align-rules-list):
* lisp/speedbar.el (speedbar-check-read-only, speedbar-check-vc):
* lisp/vc/diff-mode.el (diff-add-change-log-entries-other-window):
* lisp/woman.el (woman-parse-numeric-arg):
Put "-" at end of character alternatives, since a range was not intended.
* lisp/erc/erc.el (font-lock):
* lisp/mail/footnote.el (cl-seq):
Avoid duplicate character alternatives by using cl-seq API.
* lisp/mail/footnote.el (footnote--current-regexp):
* lisp/textmodes/css-mode.el (css--font-lock-keywords):
Avoid repetition of repetition.
* lisp/net/webjump.el (webjump-url-encode):
Add ~ to character alternatives, and rewrite confusing range.
* lisp/progmodes/verilog-mode.el (verilog-compiler-directives)
(verilog-assignment-operator-re):
Remove duplicate.
* lisp/progmodes/verilog-mode.el (verilog-preprocessor-re):
* lisp/textmodes/css-mode.el (css--font-lock-keywords):
Don’t escape a char that doesn’t need it.
* lisp/textmodes/picture.el (picture-tab-chars): In docstring,
do not say regexp characters will be quoted; merely say in
another way that the syntax is that of character alternatives.
(picture-set-tab-stops, picture-tab-search): Don’t attempt
to regexp-quote picture-tab-chars.
(picture-tab-search): Quote \ in picture-tab-chars for
skip-chars-backwards, which treats \ differently than
regexp character alternatives do.
2019-03-26 19:07:21 -07:00