]> git.eshelyaron.com Git - emacs.git/log
emacs.git
5 years agoDon't create nil-severity diagnostics in the Flymake C/C++ backend
João Távora [Thu, 28 Mar 2019 17:51:12 +0000 (17:51 +0000)]
Don't create nil-severity diagnostics in the Flymake C/C++ backend

* lisp/progmodes/flymake-cc.el (flymake-cc--make-diagnostics): Use
`:error` as a diagnostic severity.

5 years agoRevert "Avoid occasional confusion of Flymake C/C++ backend"
João Távora [Thu, 28 Mar 2019 17:47:43 +0000 (17:47 +0000)]
Revert "Avoid occasional confusion of Flymake C/C++ backend"

This reverts commit 67c3a3af1d9e2582193d5ea33b6c190e79ad56e6, which
creates more problems than it solves.

5 years agoCC Mode: Improve handling of unbalanced strings
Alan Mackenzie [Tue, 2 Jul 2019 12:33:01 +0000 (12:33 +0000)]
CC Mode: Improve handling of unbalanced strings

* lisp/progmodes/cc-fonts.el (c-before-font-lock-functions): Add function
c-after-change-escape-NL-in-string into value for most languages.

* lisp/progmodes/cc-mode.el (c-after-change-escape-NL-in-string): New
function.
(c-before-change-check-unbalanced-strings): Handle the making and breaking of
escaped newlines, by removal or addition of text.

5 years agoBetter error message for C-h P RET
Mattias Engdegård [Mon, 1 Jul 2019 15:56:49 +0000 (17:56 +0200)]
Better error message for C-h P RET

Previously:
  package--incompatible-p: Wrong type argument: package-desc, nil
Now:
  No package specified

* lisp/emacs-lisp/package.el (describe-package): Don't use ## as input.

5 years agoFix performDragOperation: diagnostic typo
Paul Eggert [Tue, 2 Jul 2019 07:01:06 +0000 (00:01 -0700)]
Fix performDragOperation: diagnostic typo

* src/nsterm.m (performDragOperation:): Fix missing newline.

5 years agoFix regex-emacs debug format glitches
Paul Eggert [Tue, 2 Jul 2019 04:42:58 +0000 (21:42 -0700)]
Fix regex-emacs debug format glitches

These patches affect behavior only if REGEX_EMACS_DEBUG.
* src/regex-emacs.c (debug_putchar): Use unsigned for %x.
(print_compiled_pattern, ENSURE_FAIL_STACK, PUSH_FAILURE_POINT)
(POP_FAILURE_POINT): Use %td for ptrdiff_t.
(print_compiled_pattern, regex_compile, re_match_2_internal):
Put newlines at ends of lines, not at starts of next lines.
Omit white space at line ends.

5 years agoMerge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
Eli Zaretskii [Tue, 2 Jul 2019 02:18:47 +0000 (05:18 +0300)]
Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs

5 years agoMinor changes in tramp.texi
Michael Albinus [Mon, 1 Jul 2019 21:44:05 +0000 (23:44 +0200)]
Minor changes in tramp.texi

* doc/misc/tramp.texi (Obtaining Tramp): Mention file INSTALL.
(Cleanup remote connections): The session timer is also deleted.

5 years agoMore XFIXNUM fixes
Eli Zaretskii [Mon, 1 Jul 2019 18:12:55 +0000 (21:12 +0300)]
More XFIXNUM fixes

* src/hbfont.c (hbfont_shape): Don't assume LGLYPH_TO is
always a fixnum.
* src/fontset.c (fontset_find_font): A cleaner test for
matching charset_id.

5 years agoFix assertion violations in fontset_find_font
Eli Zaretskii [Mon, 1 Jul 2019 16:25:52 +0000 (19:25 +0300)]
Fix assertion violations in fontset_find_font

* src/fontset.c (fontset_find_font): Don't assume REPERTORY
must be a fixnum.

5 years agoAdjust return value of image-transforms-p
Eli Zaretskii [Mon, 1 Jul 2019 14:54:15 +0000 (17:54 +0300)]
Adjust return value of image-transforms-p

* src/image.c (Fimage_transforms_p):
* doc/lispref/display.texi (Image Descriptors):
image-transforms-p now returns at most (scale rotate90), even
if ImageMagick is available.

5 years ago; Auto-commit of loaddefs files.
Glenn Morris [Mon, 1 Jul 2019 13:26:46 +0000 (06:26 -0700)]
; Auto-commit of loaddefs files.

5 years agoExtract gnus-collect-urls from gnus-summary-browse-url
Sam Steingold [Fri, 28 Jun 2019 21:22:55 +0000 (17:22 -0400)]
Extract gnus-collect-urls from gnus-summary-browse-url

* lisp/gnus/gnus-sum.el (gnus-collect-urls): Extract from ...
(gnus-summary-browse-url): Use it here.
Extracting URLs from an article will be useful in BBDB interaction.

5 years agoImplement the otf_capability method for HarfBuzz
YAMAMOTO Mitsuharu [Mon, 1 Jul 2019 07:58:53 +0000 (16:58 +0900)]
Implement the otf_capability method for HarfBuzz

* src/hbfont.c: Include hb-ot.h.
[HAVE_NTGUI]: Add DEF_DLL_FN and #define for hb_tag_to_string,
hb_font_get_face, hb_ot_layout_table_get_script_tags,
hb_ot_layout_table_get_feature_tags, hb_ot_layout_script_get_language_tags,
and hb_ot_layout_language_get_feature_tags.
(hbfont_init_w32_funcs) [HAVE_NTGUI]: Add LOAD_DLL_FN for them.
(hbfont_otf_features, hbfont_otf_capability): New functions.

* src/font.h (hbfont_otf_capability) [HAVE_HARFBUZZ]: Add extern.

* src/ftcrfont.c (syms_of_ftcrfont_for_pdumper) [HAVE_HARFBUZZ]:
* src/ftfont.c (syms_of_ftfont_for_pdumper) [HAVE_HARFBUZZ]:
* src/w32uniscribe.c (syms_of_w32uniscribe_for_pdumper) [HAVE_HARFBUZZ]:
* src/xftfont.c (syms_of_xftfont_for_pdumper) [HAVE_HARFBUZZ]: Populate
otf_capability method with hbfont_otf_capability.

5 years agoRemove divide_double
Paul Eggert [Sun, 30 Jun 2019 15:08:02 +0000 (08:08 -0700)]
Remove divide_double

* src/image.c (divide_double): Remove.  All uses replaced
with inline equivalents.  Suggested by Eli Zaretskii in:
https://lists.gnu.org/r/emacs-devel/2019-06/msg01067.html

5 years agoC++ Mode: change the default doc comment style from nothing to gtkdoc
Alan Mackenzie [Sun, 30 Jun 2019 15:02:13 +0000 (15:02 +0000)]
C++ Mode: change the default doc comment style from nothing to gtkdoc

Also amend a pertinent regular expression.  This fixes bug #11865.

* lisp/progmodes/cc-vars.el (c-doc-comment-style): Insert an entry for
c++-mode, namely gtkdoc.

* lisp/progmodes/cc-fonts.el (gtkdoc-font-lock-keywords): Amend the regexp
recognizing the introductory "/**" to allow subsequent characters on that
line.

5 years ago; Fix last change to profiler-report
Basil L. Contovounesios [Sun, 30 Jun 2019 12:30:03 +0000 (13:30 +0100)]
; Fix last change to profiler-report

* lisp/profiler.el (profiler-report): Make interactive
again (bug#22114).

5 years agoRelease Tramp 2.4.2
Michael Albinus [Sun, 30 Jun 2019 09:23:06 +0000 (11:23 +0200)]
Release Tramp 2.4.2

* lisp/net/tramp.el: Bump version.

* test/lisp/net/tramp-tests.el (tramp--test-instrument-test-case):
Add `add-name-to-file' error message.
(tramp--test-ignore-add-name-to-file-error): Make error handler
more explicit about the error.

5 years agoDoc fix
Andreas Schwab [Sun, 30 Jun 2019 08:43:55 +0000 (10:43 +0200)]
Doc fix

* doc/emacs/display.texi (Displaying Boundaries): Document
display-fill-column-indicator-character, not
display-fill-column-indicator-char.

5 years agoFix use of undefined macro
Andreas Schwab [Sun, 30 Jun 2019 06:22:53 +0000 (08:22 +0200)]
Fix use of undefined macro

* src/xdisp.c (append_space_for_newline): Use FRAME_FONT only
inside HAVE_WINDOW_SYSTEM.
(extend_face_to_end_of_line): Likewise.
(syms_of_xdisp): Doc fix.

5 years agoFix negation in elements of OTF feature list
YAMAMOTO Mitsuharu [Sun, 30 Jun 2019 07:09:56 +0000 (16:09 +0900)]
Fix negation in elements of OTF feature list

* src/ftfont.c (ftfont_get_open_type_spec):
* src/macfont.m (macfont_get_open_type_spec): Take bitwise or instead of and.

5 years agoFix error in mouse-set-font on GTK 3 with Harfbuzz (Bug#36288)
YAMAMOTO Mitsuharu [Sun, 30 Jun 2019 06:40:43 +0000 (15:40 +0900)]
Fix error in mouse-set-font on GTK 3 with Harfbuzz (Bug#36288)

* src/gtkutil.c (xg_get_font) [HAVE_GTK3]: Remove type property from font
spec.  This effectively undoes the fix for Bug#3228, but gives consistent
results overall.

5 years ago* src/xfns.c (x_create_tip_frame): Support inhibit-double-buffering.
YAMAMOTO Mitsuharu [Sun, 30 Jun 2019 06:27:41 +0000 (15:27 +0900)]
* src/xfns.c (x_create_tip_frame): Support inhibit-double-buffering.

5 years ago* src/xfns.c (Fx_show_tip): Call flush_frame. (Bug#34819)
YAMAMOTO Mitsuharu [Sun, 30 Jun 2019 06:26:27 +0000 (15:26 +0900)]
* src/xfns.c (Fx_show_tip): Call flush_frame.  (Bug#34819)

5 years agoPacify gcc and other image rotation tweaks
Paul Eggert [Sat, 29 Jun 2019 23:46:16 +0000 (16:46 -0700)]
Pacify gcc and other image rotation tweaks

* src/image.c: No need to include <float.h> as lisp.h does that.
(matrix3x3_copy): Remove; no longer needed.
(divide_double): New function, to avoid undefined behavior
when dividing by zero on non-IEEE hosts.
(image_set_transform): Simplify transformation computation
by avoiding the need to copy a matrix.  Pacify
gcc 9 -Wdouble-promotion and -Wmaybe-uninitialized.
Avoid unnecessary assignment of width and height.
Improve error reporting for unsupported native image rotation.

5 years agoSimplify workaround for Cygwin O_PATH bug
Ken Brown [Sat, 29 Jun 2019 19:03:34 +0000 (15:03 -0400)]
Simplify workaround for Cygwin O_PATH bug

Suggested by Paul Eggert (Bug#36405#22).
* configure.ac (HAVE_CYGWIN_O_PATH_BUG): New AC_DEFINE, for Cygwin
versions 3.0.0 through 3.0.7.
* src/dired.c (O_PATH) [__CYGWIN__]: Remove #undef.
(file_attributes) [HAVE_CYGWIN_O_PATH_BUG]: Don't use O_PATH.

5 years agoSupport native image transforms on MS-Windows
Eli Zaretskii [Sat, 29 Jun 2019 11:51:41 +0000 (14:51 +0300)]
Support native image transforms on MS-Windows

This changeset also rearranges native image transform code
for other platforms to make it cleaner, and also removes
the support for native cropping.  For the discussions, see
https://lists.gnu.org/archive/html/emacs-devel/2019-06/msg00242.html

* src/w32term.c (w32_image_rotations_p, transform): New functions.
(w32_draw_image_foreground): If image rotation is requested
and supported, call PlgBlt to transform the image.
(w32_initialize): Populate the PlgBlt function pointer if it
is supported.
* src/w32term.h (w32_image_rotations_p): Add prototype.
* src/dispextern.h (struct image) [HAVE_NTGUI]: New member xform.
* src/image.c (compute_image_rotation): Renamed from
image_set_rotation.  Only compute and returns the rotation
angle; leave the matrix calculation for later.  Log an error
message if the :rotation parameter is not a number.
(image_set_crop): Function deleted.  We no longer support
native cropping, as one can display an image slice instead.
(image_set_transform): Compute the transform matrix in its
entirety here, in two variants: one for XRender and Cairo, the
other for NS and MS-Windows.  call compute_image_size and
compute_image_rotation internally.
(lookup_image) [HAVE_NATIVE_TRANSFORMS]: Call only
image_set_transform.  No need to pass the transform matrix to
image_set_transform.
(Fimage_transforms_p): Return a list of transform capabilities
rather than a simple boolean.  Support TTY frames as well.
* src/nsimage.m (setTransform:): Don't invert the matrix, as
it is already inverted in image.c.

* test/manual/image-transforms-tests.el (test-cropping): State
in the text that only ImageMagick supports cropping.

* doc/lispref/display.texi (Image Descriptors): Update the
documentation of native image transforms.
(ImageMagick Images): Move the description of ':crop' here.

* etc/NEWS: Minor copyedits of the feature announcement.

5 years agoFix recent change in Tramp
Shuguang Sun [Sat, 29 Jun 2019 10:18:59 +0000 (12:18 +0200)]
Fix recent change in Tramp

* lisp/net/tramp-adb.el:
* lisp/net/tramp-archive.el:
* lisp/net/tramp-integration.el: Remove superfluous `progn' in
`with-eval-after-load'.

5 years agoCosmetic fix-up of message-forward-included-headers
Lars Ingebrigtsen [Sat, 29 Jun 2019 10:05:50 +0000 (12:05 +0200)]
Cosmetic fix-up of message-forward-included-headers

* lisp/gnus/message.el (message-forward-included-headers): Use
consistent capitalization in the regexps.

5 years agoFix display of fringe bitmaps for tooltips in echo area
Eli Zaretskii [Sat, 29 Jun 2019 09:48:15 +0000 (12:48 +0300)]
Fix display of fringe bitmaps for tooltips in echo area

* src/xdisp.c (display_line): Force redrawing of fringe
bitmaps when redisplaying a minibuffer window with
truncate-lines set to a non-nil value.  (Bug#36308)

5 years agoAllow empty argument to `regexp-opt-charset'
Mattias Engdegård [Sat, 29 Jun 2019 09:10:36 +0000 (11:10 +0200)]
Allow empty argument to `regexp-opt-charset'

* test/lisp/emacs-lisp/regexp-opt-tests.el (regexp-opt-charset):
Handle nil argument, and use regexp-quote for singletons.
* lisp/emacs-lisp/regexp-opt.el (regexp-opt-charset): Expand tests.

5 years agoRevert O_PATH change to fileio.c
Paul Eggert [Sat, 29 Jun 2019 06:11:27 +0000 (23:11 -0700)]
Revert O_PATH change to fileio.c

Ken Brown pointed out it wasn’t needed (Bug#36405#16):
* src/fileio.c (O_PATH) [__CYGWIN__]: Remove #undef.

5 years ago* test/src/json-tests.el (json-serialize/object): Fix spacing.
Andreas Schwab [Sat, 29 Jun 2019 05:41:18 +0000 (07:41 +0200)]
* test/src/json-tests.el (json-serialize/object): Fix spacing.

5 years agoFix json-serialize/object test failure
Pip Cet [Sat, 29 Jun 2019 05:01:00 +0000 (22:01 -0700)]
Fix json-serialize/object test failure

* test/src/json-tests.el (json-serialize/object):
Accept failure with different code.

5 years agoStrength-reduce `equal', `eql', `member' and `memql'
Mattias Engdegård [Wed, 19 Jun 2019 11:26:58 +0000 (13:26 +0200)]
Strength-reduce `equal', `eql', `member' and `memql'

When comparing against symbols, turn `equal' and `eql' into `eq',
and `member' and `memql' into `memq'.

* lisp/emacs-lisp/byte-opt.el (byte-optimize--constant-symbol-p)
(byte-optimize-equal, byte-optimize-member): New.
(member, memql, equal, eql): Use new byte-optimizers.

5 years agoDocument bookmark annotations in Emacs Manual (bug#36417)
Stefan Kangas [Fri, 28 Jun 2019 11:40:37 +0000 (13:40 +0200)]
Document bookmark annotations in Emacs Manual (bug#36417)

* doc/emacs/regs.texi (Bookmarks): Document annotations.
* lisp/bookmark.el (bookmark-use-annotations): Clarify docstring.

5 years agoCorrect regexp matching of raw bytes
Mattias Engdegård [Fri, 28 Jun 2019 08:20:55 +0000 (10:20 +0200)]
Correct regexp matching of raw bytes

Make regexp matching of raw bytes work in all combination of unibyte
and multibyte patterns and targets, as exact strings and in character
alternatives (bug#3687).

* src/regex-emacs.c (analyze_first):
Include raw byte in fastmap when pattern is a multibyte exact string.
Include leading byte in fastmap for raw bytes in character alternatives.
(re_match_2_internal):
Decrement the byte count by the number of bytes in the pattern character,
not 1.
* test/src/regex-emacs-tests.el (regexp-unibyte-unibyte)
(regexp-multibyte-unibyte, regexp-unibyte-mutibyte)
(regexp-multibyte-multibyte): New tests.

5 years agoTramp requires Emacs 24.4
Michael Albinus [Fri, 28 Jun 2019 14:32:12 +0000 (16:32 +0200)]
Tramp requires Emacs 24.4

* doc/misc/tramp.texi (Frequently Asked Questions):
Use `with-eval-after-load'. in example.

* doc/misc/trampver.texi: Set variable emacsver.

* lisp/net/tramp.el (tramp-send-string, tramp-call-process)
(tramp-call-process-region, tramp-process-lines):
* lisp/net/tramp-adb.el (tramp-adb-handle-file-truename)
(tramp-adb-sh-fix-ls-output, tramp-adb-maybe-open-connection):
* lisp/net/tramp-gvfs.el (tramp-gvfs-get-directory-attributes)
(tramp-gvfs-handle-file-notify-add-watch)
* lisp/net/tramp-sh.el (tramp-sh-handle-file-truename)
(tramp-do-copy-or-rename-file-out-of-band)
(tramp-sh-handle-file-notify-add-watch, tramp-find-executable)
(tramp-set-remote-path)
(tramp-open-connection-setup-interactive-shell)
(tramp-maybe-open-connection, tramp-send-command):
* lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory)
(tramp-smb-handle-file-acl, tramp-smb-handle-process-file)
(tramp-smb-handle-set-file-acl)
(tramp-smb-handle-start-file-process)
(tramp-smb-maybe-open-connection):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-set-file-acl):
(tramp-sudoedit-send-command): Use `string-join' and `string-empty-p'.

* lisp/net/tramp-adb.el:
* lisp/net/tramp-archive.el:
* lisp/net/tramp-integration.el:
* lisp/net/tramp-ftp.el: Use `with-eval-after-load'.

* lisp/net/tramp-cmds.el (tramp-cleanup-connection)
(tramp-cleanup-all-connections): Cancel timer.

* lisp/net/tramp-compat.el (subr-x): Require.
(default-toplevel-value): Don't make it a defalias.

* lisp/net/tramp-gvfs.el: Use `dbus-event-error-functions'.  Do
not special handle `split-string'.

* lisp/net/tramp.el: Require Emacs 24.4.
(tramp-password-prompt-regexp): Use `password-word-equivalents'.
(tramp-user-error): Use `user-error'.
(tramp-replace-environment-variables): Use `substitute-env-vars'.
(tramp-wait-for-regexp): Rearrange `with-current-buffer' call.
(tramp-get-local-gid): Use `group-gid'.

* lisp/net/trampver.el: Check for Emacs 24.4.

* test/lisp/net/tramp-tests.el (tramp-test02-file-name-dissect)
(tramp-test02-file-name-dissect-simplified)
(tramp-test02-file-name-dissect-separate)
(tramp-test03-file-name-host-rules)
(tramp-test03-file-name-method-rules): Don't check for `user-error'.

5 years agoDoc fix for Gnus "very wide" reply commands
Lars Ingebrigtsen [Fri, 28 Jun 2019 14:20:05 +0000 (16:20 +0200)]
Doc fix for Gnus "very wide" reply commands

* lisp/gnus/gnus-msg.el (gnus-summary-very-wide-reply-with-original)
(gnus-summary-very-wide-reply): Clarify what a "very wide reply" is.

5 years agoRevert "Fontify _emphasis_ in info nodes"
Lars Ingebrigtsen [Fri, 28 Jun 2019 13:05:59 +0000 (15:05 +0200)]
Revert "Fontify _emphasis_ in info nodes"

This reverts commit 72963b4e82eef5767e3172f28bd9bd97f487c98a.

The change incorrectly fontified whole sentences as emphasis.

5 years agoInclude To and Cc headers when forwarding with Message
Lars Ingebrigtsen [Fri, 28 Jun 2019 13:01:31 +0000 (15:01 +0200)]
Include To and Cc headers when forwarding with Message

* lisp/gnus/message.el (message-forward-included-headers): Include
more of the important headers when forwarded: To and Cc.

5 years ago* lisp/gnus/gnus-art.el (gnus-article-stop-animations):
Michael Albinus [Fri, 28 Jun 2019 12:03:58 +0000 (14:03 +0200)]
* lisp/gnus/gnus-art.el (gnus-article-stop-animations):

Use `cancel-function-timers'.

5 years agoMore readable regexp debug output
Mattias Engdegård [Fri, 28 Jun 2019 08:35:41 +0000 (10:35 +0200)]
More readable regexp debug output

* src/regex-emacs.c (debug_putchar): New.
(print_fastmap, print_partial_compiled_pattern, print_double_string)
(regex_compile): Use debug_putchar.
(re_match_2_internal): Add newline.

5 years agoConsistently use stderr for debug output in regexp code
Mattias Engdegård [Fri, 28 Jun 2019 08:14:32 +0000 (10:14 +0200)]
Consistently use stderr for debug output in regexp code

* src/regex-emacs.c (DEBUG_PRINT, print_fastmap, print_compiled_pattern)
(print_double_string, regex_compile): Print to stderr instead of stdout.

5 years agoDon't inhibit quit in Gnus when prefetching articles
Lars Ingebrigtsen [Fri, 28 Jun 2019 10:01:46 +0000 (12:01 +0200)]
Don't inhibit quit in Gnus when prefetching articles

* lisp/gnus/gnus-async.el (gnus-async-prefetch-next): Don't
inhibit quit when running `gnus-async-prefetch-article'.

5 years ago* lisp/simple.el (undo): Make message less enthusiastic
Alex Branham [Fri, 14 Jun 2019 15:00:29 +0000 (10:00 -0500)]
* lisp/simple.el (undo): Make message less enthusiastic

5 years agoAllow underscore in defun-prompt-regex names for sh-script
Ola Nilsson [Sun, 23 Jun 2019 21:00:25 +0000 (23:00 +0200)]
Allow underscore in defun-prompt-regex names for sh-script

* lisp/progmodes/sh-script.el (defun-prompt-regexp):
Allow underscore in function names.

5 years agoImprove ‘equal’ and array doc
Paul Eggert [Thu, 27 Jun 2019 22:39:04 +0000 (15:39 -0700)]
Improve ‘equal’ and array doc

* doc/lispref/objects.texi (Array Type): Array sizes are
nonnegative fixnums, not arbitrary integers.
(Equality Predicates): Do not say that ‘eq’ equals ‘=’ on bignums.
Do not imply that ‘equal’ must signal an error on circular lists.

5 years ago* src/xfaces.c (resolve_face_name): Simplify.
Paul Eggert [Thu, 27 Jun 2019 22:01:01 +0000 (15:01 -0700)]
* src/xfaces.c (resolve_face_name): Simplify.

5 years agoRemove unnecessary tortoise checks.
Pip Cet [Thu, 27 Jun 2019 21:58:56 +0000 (14:58 -0700)]
Remove unnecessary tortoise checks.

* src/fns.c (Fplist_get, Fplist_put, Flax_plist_get)
(Flax_plist_put, Fplist_member): Remove unnecessary check.
* src/json.c (lisp_to_json_toplevel_1): Remove unnecessary check.

5 years agoWork around Cygwin bug with O_PATH
Paul Eggert [Thu, 27 Jun 2019 20:05:05 +0000 (13:05 -0700)]
Work around Cygwin bug with O_PATH

Problem reported by Ken Brown (Bug#36405).
* src/dired.c, src/fileio.c (O_PATH) [__CYGWIN__]: Undef.

5 years agoOmit a few minor unnecessary range checks
Paul Eggert [Thu, 27 Jun 2019 19:31:27 +0000 (12:31 -0700)]
Omit a few minor unnecessary range checks

Based on Pip Cet’s review (Bug#36370#19).
* src/fileio.c (Fdo_auto_save):
* src/image.c (lookup_image):
* src/textprop.c (Fnext_single_char_property_change):
Prefer XFIXNUM to XFIXNAT for clarity and consistency with
neighboring code, and to avoid unnecessary range checks.
* src/image.c (lookup_image): Omit unnecessary range checks.

5 years agoImprove XFIXNUM cleanup a bit
Paul Eggert [Thu, 27 Jun 2019 19:31:27 +0000 (12:31 -0700)]
Improve XFIXNUM cleanup a bit

Based on Pip Cet’s review (Bug#36370#13).
* src/ccl.c (Fccl_execute_on_string): Use clearer indexing.
* src/dosfns.c (Fint86, Fdos_memput):
Avoid runtime checks for negative fixnums when debugging.
This restores the earlier machine code.
* src/lisp.h (XFIXNUM, XUFIXNUM): Use eassert, not eassume.
(XFIXNAT): At the start, merely eassert FIXNUMP rather
than eassuming FIXNATP.  At the end, eassume that the
result is nonnegative.  This restores help to the compiler
that the previous patch mistakenly removed.

5 years agoClean up use of XFIXNUM etc.
Paul Eggert [Thu, 27 Jun 2019 19:31:27 +0000 (12:31 -0700)]
Clean up use of XFIXNUM etc.

A few bits of the code were relying on the fact that XFIXNUM,
XFIXNAT, and XUFIXNUM do something even with arguments that
are not fixnums/fixnats.  Separate these rare uses out into
XFIXNUM_RAW and XUFIXNUM_RAW.
Problem and original patch reported by Pip Cet (Bug#36370).
* src/ccl.c (Fccl_execute_on_string):
* src/fileio.c (Finsert_file_contents, a_write)
(Fdo_auto_save):
* src/process.c (conv_lisp_to_sockaddr):
* src/textprop.c (Fnext_single_char_property_change)
(Fprevious_single_char_property_change)
(Fnext_property_change, Fnext_single_property_change)
(Fprevious_property_change)
(Fprevious_single_property_change):
Don’t assume fixnums are nonnegative.
* src/ccl.c (Fccl_execute_on_string):
Fix range-checking bug if AREF (status, i) is out of int range.
* src/data.c (arith_driver): Use XFIXNUM_RAW as we want
efficient garbage if the value is not a fixnum.
* src/dosfns.c (Fint86, Fdos_memput):
Check that args are nonnegative.
* src/image.c (lookup_image): Check that args are in range.
* src/lisp.h (lisp_h_XHASH): Use XUFIXNUM_RAW, since this
is for hashing.
(lisp_h_XFIXNAT, XFIXNAT) [USE_LSB_TAG]: Remove macros.
(lisp_h_XFIXNUM_RAW, XFIXNUM_RAW) [USE_LSB_TAG]: New macros, with
the semantics of the old macros without _RAW.
(XFIXNUM_RAW, XUFIXNUM_RAW): New inline functions, with the
semantics of the old functions without _RAW.
(FIXNUMP): Move definition up to avoid forward use.
(XFIXNUM, XFIXNAT, XUFIXNUM): Use eassume to add a runtime
check (when debugging) that the argument has the proper form.
(XFIXNUM, XFIXNAT): Now inline functions only, since they
refer to their arguments more than once now that they use eassume.
* src/textprop.c (Fprevious_single_char_property_change):
Avoid fixnum overflow with invalid input.
(set_text_properties): Fix unlikely failure
to validate arguments, by using EQ instead of XFIXNAT.
* src/w32term.c (w32_draw_glyph_string):
* src/xterm.c (x_draw_glyph_string):
Treat negative minimums as 0 rather than as garbage patterns.

5 years agoCatch duplicate keywords in image specs
Paul Eggert [Thu, 27 Jun 2019 19:21:20 +0000 (12:21 -0700)]
Catch duplicate keywords in image specs

* src/image.c (struct image_keyword.count): Now bool, not int,
since it is either 0 or 1.
(parse_image_spec, xpm_image_p): Use bool for boolean.
(parse_image_spec): Fix a bug introduced in
2011-09-21T17:41:20!eggert@cs.ucla.edu that reported only
triplicate (or more) keywords, not duplicates.

5 years agoMention the new emacsclient -a/--eval behaviour
Lars Ingebrigtsen [Thu, 27 Jun 2019 19:18:42 +0000 (21:18 +0200)]
Mention the new emacsclient -a/--eval behaviour

5 years agoemacsclient: ignore --eval parameters when starting alternate editor
Lars Ingebrigtsen [Thu, 27 Jun 2019 18:59:50 +0000 (20:59 +0200)]
emacsclient: ignore --eval parameters when starting alternate editor

* lib-src/emacsclient.c (fail): If the user said --eval, don't
pass those arguments to the alternate editor as file names.
Suggested by a patch from Scott Turner (bug#11474).

5 years agoAllow for retrieving profiler logs after stopping
Vasilij Schneidermann [Thu, 27 Jun 2019 18:18:20 +0000 (20:18 +0200)]
Allow for retrieving profiler logs after stopping

* lisp/profiler.el (profiler-cpu-log, profiler-memory-log): New
variables.
(profiler-cpu-profile): Work even if the profiler is no longer
running (bug#22114).
(profiler-memory-profile): Ditto.
(profiler-stop): Save the data.
(profiler-reset): Clear the saved data.
(profiler-report-cpu, profiler-report-memory): Report on the saved
data.
(profiler-report): Save the data here, too.

5 years agoInclude the date in the bzr annotation buffer
Dan Nicolaescu [Thu, 27 Jun 2019 18:13:14 +0000 (20:13 +0200)]
Include the date in the bzr annotation buffer

* lisp/vc/vc-bzr.el (vc-bzr-annotate-command)
(vc-bzr-annotate-time)
(vc-bzr-annotate-extract-revision-at-line): Include a date in the
bzr annotation buffer (bug#5428).

5 years agoAdd new ispell-change-dictionary-hook (Bug#1110)
Stefan Kangas [Thu, 27 Jun 2019 18:02:56 +0000 (20:02 +0200)]
Add new ispell-change-dictionary-hook (Bug#1110)

* lisp/textmodes/ispell.el (ispell-change-dictionary-hook): New hook.
(ispell-change-dictionary): Call new hook (bug#1110).

5 years agoAdd a new regexp variable to control boring winner buffers
Thierry Volpiatto [Thu, 27 Jun 2019 17:20:50 +0000 (19:20 +0200)]
Add a new regexp variable to control boring winner buffers

* doc/emacs/windows.texi (Window Convenience): Mention it.

* lisp/winner.el (winner-boring-buffers-regexp): New variable.

* lisp/winner.el (winner-set): Use it (bug#11151).

5 years agoFix invoking Emacs via a symlink on Cygwin
Ken Brown [Thu, 27 Jun 2019 17:43:27 +0000 (13:43 -0400)]
Fix invoking Emacs via a symlink on Cygwin

* src/emacs.c (load_pdump) [CYGWIN]: Strip ".exe" suffix.

5 years agoAdd more fontification to regexp builder mode
Lennart Borgman [Thu, 27 Jun 2019 17:08:42 +0000 (19:08 +0200)]
Add more fontification to regexp builder mode

* lisp/emacs-lisp/re-builder.el (reb-copy): Work in the presence
of newlines in the regexps.
(reb-change-syntax): Use a dedicated history variable.
(reb-fontify-string-re): Fontify sub-matches.
(reb-regexp-grouping-backslash, reb-regexp-grouping-construct):
New faces.
(reb-string-font-lock-keywords): New variable.
(reb-mark-non-matching-parenthesis): Match parenthesis.
(reb-restart-font-lock): New function.

* lisp/emacs-lisp/re-builder.el (reb-mode-map): Add divider some
dividers (bug#6347).

5 years agoRename displayor to displayer in CEDET
Lars Ingebrigtsen [Thu, 27 Jun 2019 16:13:18 +0000 (18:13 +0200)]
Rename displayor to displayer in CEDET

* doc/misc/sem-user.texi (Idle Completions Mode): Rename
displayor->displayer throughout.
(Idle Completions Mode): Ditto.

* lisp/cedet/semantic/complete.el: Rename displayor->displayer
throughout and add aliases for all the methods that used that name.

5 years agoUse `default-indent-new-line' instead of `indent-new-comment-line'
Dmitry Gutov [Thu, 27 Jun 2019 14:57:47 +0000 (16:57 +0200)]
Use `default-indent-new-line' instead of `indent-new-comment-line'

* lisp/simple.el (default-indent-new-line): Doc string fix.

* lisp/textmodes/refill.el (refill-post-command-function): Make
default-indent-new-line work as indent-new-comment-line.

* lisp/textmodes/refill.el (refill-post-command-function): Bind
`M-C-j' and `M-j' to default-indent-new-line instead of
indent-new-comment-line to allow overriding via
`comment-line-break-function' (bug#12413).

5 years agoRevert "Apply font-lock in hexl-mode buffers"
Lars Ingebrigtsen [Thu, 27 Jun 2019 14:28:22 +0000 (16:28 +0200)]
Revert "Apply font-lock in hexl-mode buffers"

This reverts commit 573de396f03684efa89ead24a371b0f4c9bf8d5d.

The change wasn't necessary -- the hexl-mode buffer is automatically fontified.

5 years agoAllow generating wiki and mediawiki tables
Aaron S. Hawley [Thu, 27 Jun 2019 11:55:04 +0000 (13:55 +0200)]
Allow generating wiki and mediawiki tables

* lisp/textmodes/table.el (table--generate-source-prologue)
(table--generate-source-epilogue)
(table--generate-source-scan-rows)
(table--generate-source-cells-in-a-row): Insert the wiki/mediawiki
separators.

* lisp/textmodes/table.el (table-source-languages): Add support
for wiki and mediawiki tables (bug#13287).

2019-06-27  Lars Ingebrigtsen  <larsi@gnus.org>

* doc/emacs/text.texi (Table Misc): Mention the new wiki and
mediawiki formats.

5 years agoApply font-lock in hexl-mode buffers
Wilfred Hughes [Thu, 27 Jun 2019 11:30:36 +0000 (13:30 +0200)]
Apply font-lock in hexl-mode buffers

* lisp/hexl.el (hexl-mode): After setting font-lock-defaults, we
need to call `font-lock-ensure' to apply hexl-mode faces
(bug#24645).

5 years agoAdd :local specifier to defcustom
Juanma Barranquero [Thu, 27 Jun 2019 11:26:45 +0000 (13:26 +0200)]
Add :local specifier to defcustom

* lisp/custom.el (custom-declare-variable): Allow the new :local
parameter (bug#14591).
(defcustom): Document it.

5 years agoTweak ‘error’ and ‘user-error’ doc strings
Paul Eggert [Thu, 27 Jun 2019 09:33:36 +0000 (02:33 -0700)]
Tweak ‘error’ and ‘user-error’ doc strings

* lisp/net/tramp.el (tramp-user-error):
* lisp/subr.el (user-error):
Say that user errors are sometimes called pilot errors.
* lisp/subr.el (error, user-error):
Reorder wording to discuss mechanism first, then formatting advice,
rather than going back and forth between the two topics.
Tighten up the wording a bit.

5 years agoClarify error and user-error docstrings
Stefan Kangas [Thu, 27 Jun 2019 09:33:10 +0000 (02:33 -0700)]
Clarify error and user-error docstrings

* lisp/subr.el (error, user-error)
* lisp/net/tramp.el (tramp-user-error): Change "pilot error" to "user
error" and improve documentation.

5 years agoRemove gnus-bug from report-emacs-bug TODO entry
Basil L. Contovounesios [Wed, 26 Jun 2019 23:14:36 +0000 (00:14 +0100)]
Remove gnus-bug from report-emacs-bug TODO entry

For discussion, see the following thread:
https://lists.gnu.org/archive/html/emacs-devel/2019-04/msg01196.html
https://lists.gnu.org/archive/html/emacs-devel/2019-06/msg00967.html

* etc/TODO: Remove gnus-bug from list of obsolete bug-reporting
commands now that it is implemented in terms of report-emacs-bug.

5 years agoDocument bug in `replace-regexp-in-string'
Mattias Engdegård [Wed, 26 Jun 2019 09:23:32 +0000 (11:23 +0200)]
Document bug in `replace-regexp-in-string'

`replace-regexp-in-string' omits the first START characters of the
input string in its return value.  This is a clear bug, but fixing it
probably causes more trouble; document the behaviour instead (bug#36372).

* doc/lispref/searching.texi (Search and Replace)
* lisp/subr.el (replace-regexp-in-string):
Document current behaviour.

5 years ago* lisp/textmodes/page-ext.el (sort-pages-buffer): Fix typo
Stefan Monnier [Wed, 26 Jun 2019 16:49:01 +0000 (12:49 -0400)]
* lisp/textmodes/page-ext.el (sort-pages-buffer): Fix typo

Reported by Marco Wahl <marcowahlsoft@gmail.com>.
Update `Commentary:` to use the new command names.
(pages--ctl-x-ctl-p-map): Fix `mark-page` binding.
(pages-directory-mode-map): Update `add-new-page` => `pages-add-new-page`.

5 years agoSupport invoking Emacs via a symlink on MS-Windows
Eli Zaretskii [Wed, 26 Jun 2019 16:23:34 +0000 (19:23 +0300)]
Support invoking Emacs via a symlink on MS-Windows

* src/w32.c (w32_my_exename): Resolve symlinks in the
executable name, to support searching for the pdumper file
when the executable is found via a symlink.
* src/emacs.c (load_pdump): Add a comment about symlink
resolution on Windows.

5 years agoFix redisplay of registers in gdb-mi
Andrzej P [Mon, 6 Jan 2014 00:45:01 +0000 (00:45 +0000)]
Fix redisplay of registers in gdb-mi

* lisp/progmodes/gdb-mi.el (gdb-update): Call
gdb-get-changed-registers before updating the GDB-MI buffers.
(Bug#16366)

Copyright-paperwork-exempt: yes

5 years agoRestrict indirect lookups in Fdocumentation_property
Lars Ingebrigtsen [Wed, 26 Jun 2019 14:41:07 +0000 (16:41 +0200)]
Restrict indirect lookups in Fdocumentation_property

* src/doc.c (Fdocumentation_property): Only look up indirect
variables if we've been asked for the variable documentation.

5 years agoMerge branch 'master' of git+ssh://git.sv.gnu.org/srv/git/emacs into trunk
Stefan Monnier [Wed, 26 Jun 2019 14:27:36 +0000 (10:27 -0400)]
Merge branch 'master' of git+ssh://git.sv.gnu.org/srv/git/emacs into trunk

5 years ago* lisp/calc/calc-ext.el (math-scalarp): Fix typo
Bruce Stephens [Wed, 26 Jun 2019 14:26:18 +0000 (10:26 -0400)]
* lisp/calc/calc-ext.el (math-scalarp): Fix typo

5 years agoFdocumentation_property: Return doc string for indirect variables
Lars Ingebrigtsen [Wed, 26 Jun 2019 14:25:19 +0000 (16:25 +0200)]
Fdocumentation_property: Return doc string for indirect variables

* src/doc.c (Fdocumentation_property): When dealing with indirect
variables (i.e., aliases), also check the symbol being pointed to
for the doc string (bug #17180).

5 years agoRevert "* lisp/calc/calc-ext.el (math-scalarp): Fix typo"
Stefan Monnier [Wed, 26 Jun 2019 14:24:59 +0000 (10:24 -0400)]
Revert "* lisp/calc/calc-ext.el (math-scalarp): Fix typo"

This reverts commit 698ff554ac2699ec48fefc85a1307cbc4a183b0d.

5 years agohelp-C-file-name shouldn't error out if we can't find the name
Johan Claesson [Wed, 26 Jun 2019 14:05:54 +0000 (16:05 +0200)]
help-C-file-name shouldn't error out if we can't find the name

* lisp/help-fns.el (help-C-file-name): Make help-C-file-name
return nil instead of signalling an error if we can't find the
file name (bug#17250).

Copyright-paperwork-exempt: yes

5 years ago* test/lisp/calc/calc-tests.el (test-math-bignum, test-calc-23889): Disable
Stefan Monnier [Wed, 26 Jun 2019 14:04:52 +0000 (10:04 -0400)]
* test/lisp/calc/calc-tests.el (test-math-bignum, test-calc-23889): Disable

Not applicable any more with native bignums.

5 years ago* lisp/calc/calc-ext.el (math-scalarp): Fix typo
Stefan Monnier [Wed, 26 Jun 2019 14:03:48 +0000 (10:03 -0400)]
* lisp/calc/calc-ext.el (math-scalarp): Fix typo

5 years agoFix (rx-to-string (and (literal STR) (regexp STR)) regression
Noam Postavsky [Wed, 26 Jun 2019 12:47:56 +0000 (08:47 -0400)]
Fix (rx-to-string (and (literal STR) (regexp STR)) regression

* lisp/emacs-lisp/rx.el (rx-regexp, rx-literal): Check the cadr of the
form for stringness, not the form itself.
* test/lisp/emacs-lisp/rx-tests.el (rx-to-string-lisp-forms): New test.

5 years agoMerge consecutive constant `concat' args (bug#14769)
Mattias Engdegård [Sun, 16 Jun 2019 11:13:47 +0000 (13:13 +0200)]
Merge consecutive constant `concat' args (bug#14769)

Suggested by Shigeru Fukaya <shigeru.fukaya@gmail.com>

* lisp/emacs-lisp/byte-opt.el (byte-optimize-concat): New.
(concat): Add byte-optimizer.

5 years ago* lisp/calc/calc.el: Take advantage of native bignums.
Stefan Monnier [Wed, 26 Jun 2019 03:05:11 +0000 (23:05 -0400)]
* lisp/calc/calc.el: Take advantage of native bignums.

Remove redundant :group args.

(calc-trail-mode): Use inhibit-read-only.
(math-bignum-digit-length, math-bignum-digit-size)
(math-small-integer-size): Delete constants.
(math-normalize): Use native bignums.
(math-bignum, math-bignum-big): Delete functions.
(math-make-float): The mantissa can't be a calc bignum any more.
(math-neg, math-scale-left, math-scale-right, math-scale-rounding)
(math-add, math-sub, math-mul, math-idivmod, math-quotient)
(math-format-number, math-read-number, math-read-number-simple):
Don't bother handling calc bignums.
(math-div10-bignum, math-scale-left-bignum, math-scale-right-bignum)
(math-add-bignum, math-sub-bignum, math-mul-bignum, math-mul-bignum-digit)
(math-div-bignum, math-div-bignum-digit, math-div-bignum-big)
(math-div-bignum-part, math-div-bignum-try, math-format-bignum)
(math-format-bignum-decimal, math-read-bignum): Delete functions.
(math-numdigs): Don't presume that native ints are small enough to use
a slow algorithm.

* lisp/calc/calc-aent.el (calc-do-quick-calc):
* lisp/calc/calc-vec.el (calcFunc-vunpack):
* lisp/calc/calc-alg.el (math-beforep): Don't bother handling calc bignums.

* lisp/calc/calc-bin.el (math-bignum-logb-digit-size)
(math-bignum-digit-power-of-two): Remove constants.
(calcFunc-and, math-binary-arg, calcFunc-or, calcFunc-xor)
(calcFunc-diff, calcFunc-not, math-clip, math-format-twos-complement):
Use Emacs's builtin bignums.
(math-and-bignum, math-or-bignum, math-xor-bignum, math-diff-bignum)
(math-not-bignum, math-clip-bignum)
(math-format-bignum-radix, math-format-bignum-binary)
(math-format-bignum-octal, math-format-bignum-hex): Delete functions.
(math-format-binary): Fix old copy&paste error.

* lisp/calc/calc-comb.el (calc-prime-factors): Adjust for unused arg.
(math-prime-test): math-fixnum is now the identity.

* lisp/calc/calc-ext.el: Require cl-lib.
(math-oddp): Use cl-oddp.  Don't bother with calc bignums.
(math-integerp, math-natnump, math-ratp, math-realp, math-anglep)
(math-numberp, math-scalarp, math-vectorp, math-objvecp, math-primp)
(math-num-natnump, math-objectp, math-check-integer, math-compare):
Don't bother handling calc bignums.
(math-check-fixnum): Use fixnump.
(math-fixnum, math-fixnum-big, math-bignum-test): Remove functions.
(math--format-integer-fancy): Rename from math-format-bignum-fancy.
Adjust for internal bignums.

* lisp/calc/calc-funcs.el (calcFunc-besJ): Use cl-isqrt.

* lisp/calc/calc-macs.el (Math-zerop, Math-integer-negp)
(Math-integer-posp, Math-negp, Math-posp, Math-integerp)
(Math-natnump, Math-ratp, Math-realp, Math-anglep, Math-numberp)
(Math-scalarp, Math-vectorp, Math-objectp, Math-objvecp)
(Math-integer-neg, Math-primp, Math-num-integerp):
Don't bother handling calc bignums.
(Math-bignum-test): Delete function.

* lisp/calc/calc-math.el (math-use-emacs-fn): Remove unused `fx`.
(math-isqrt, math-sqrt): Use cl-isqrt.  Don't bother handling calc bignums.
(math-isqrt-bignum, math-isqrt-bignum-iter, math-isqrt-small):
Delete function.

* lisp/calc/calc-misc.el (math-fixnump, math-fixnatnump): Use fixnump.
(math-evenp): Use cl-evenp.
(math-zerop, math-negp, math-posp, math-div2): Don't bother handling
calc bignums.
(math-div2-bignum): Delete function.

5 years agoMerge from emacs-26
Noam Postavsky [Wed, 26 Jun 2019 02:04:13 +0000 (22:04 -0400)]
Merge from emacs-26

e62ad04963 Fix sgml-mode handling of quotes within parens (Bug#36347)
06b35b2f92 ; * lisp/frame.el: Enhance add-variable-watcher commentary.
572e34bb6f Rename 'make-symbolic-link' argument NEWNAME to LINKNAME
04477adedc Check that length of data returned by sysctl is non-zero
81535eeadb * test/lisp/progmodes/python-tests.el (python-virt-bin): D...
9d48979ca8 Fix Python tests depending on system-type
fcf6cc3177 Fix problem with wdired test when symlinks cannot be created.
4701e0663e Improve wording of documentation of click events

# Conflicts:
# lisp/textmodes/sgml-mode.el
# test/lisp/textmodes/sgml-mode-tests.el

5 years ago; Merge from emacs-26
Noam Postavsky [Wed, 26 Jun 2019 02:02:27 +0000 (22:02 -0400)]
; Merge from emacs-26

The following commit was skipped:

bea31a3794 Backport: Fix typo in regexp-opt example code

5 years agoMerge from emacs-26
Noam Postavsky [Wed, 26 Jun 2019 02:02:27 +0000 (22:02 -0400)]
Merge from emacs-26

2b765c650a Remove outdated comment in winner.el (Bug#36185)

5 years ago; Merge from emacs-26
Noam Postavsky [Wed, 26 Jun 2019 02:02:27 +0000 (22:02 -0400)]
; Merge from emacs-26

The following commit was skipped:

f87a9e359e Fix accidential change in tramp-tests; do not merge with m...

5 years agoDon't bind search-spaces-regexp around possible autoload (Bug#35802)
Noam Postavsky [Fri, 21 Jun 2019 11:09:44 +0000 (07:09 -0400)]
Don't bind search-spaces-regexp around possible autoload (Bug#35802)

* lisp/isearch.el (isearch-search-fun-default): Move possible autoload
trigger outside let-binding of search-spaces-regexp.
* lisp/char-fold.el (char-fold-make-table): Remove no longer needed
workaround.

* lisp/info.el (Info-search-whitespace-regexp):
* lisp/isearch.el (search-whitespace-regexp):
* src/search.c (syms_of_search) <search-spaces-regexp>: Add warning
about adding capturing groups to the value.

* test/lisp/char-fold-tests.el: Remove, binding search-spaces-regexp
to a different should be considered a bug.

5 years agoSupport (rx (and (regexp EXPR) (literal EXPR))) (Bug#36237)
Noam Postavsky [Fri, 14 Jun 2019 12:43:17 +0000 (08:43 -0400)]
Support (rx (and (regexp EXPR) (literal EXPR))) (Bug#36237)

* lisp/emacs-lisp/rx.el (rx-regexp): Allow non-string forms.
(rx-constituents): Add literal constituent, which is like a plain
STRING form, but allows arbitrary lisp expressions.
(rx-literal): New function.
(rx-compile-to-lisp): New variable.
(rx--subforms): New helper function for handling subforms, including
non-constant case.
(rx-group-if, rx-and, rx-or, rx-=, rx->=, rx-repeat, rx-submatch)
(rx-submatch-n, rx-kleene, rx-atomic-p): Use it to handle non-constant
subforms.
(rx): Document new form, wrap non-constant forms with concat call.
* test/lisp/emacs-lisp/rx-tests.el (rx-tests--match): New macro.
(rx-nonstring-expr, rx-nonstring-expr-non-greedy): New tests.
* etc/NEWS: Announce changes.

5 years agoFix PATH_MAX change to lib-src/emacsclient.c
Juanma Barranquero [Wed, 26 Jun 2019 00:05:53 +0000 (02:05 +0200)]
Fix PATH_MAX change to lib-src/emacsclient.c

* lib-src/emacsclient.c (get_current_dir_name): Declare pwdlen.

5 years agoFix previous patch to dired-mark-if
Lars Ingebrigtsen [Tue, 25 Jun 2019 23:15:06 +0000 (01:15 +0200)]
Fix previous patch to dired-mark-if

* lisp/dired.el (dired-mark-if): Don't use looking-at to check for
characters.

5 years agoFix sgml-mode handling of quotes within parens (Bug#36347)
Noam Postavsky [Mon, 24 Jun 2019 01:27:43 +0000 (21:27 -0400)]
Fix sgml-mode handling of quotes within parens (Bug#36347)

* lisp/textmodes/sgml-mode.el (sgml-syntax-propertize): Use
syntax-ppss-table if set.  This is only needed on the release branch,
on master the caller (syntax-propertize) already does this.
(sgml-mode): Set syntax-ppss-table to sgml-tag-syntax-table.  This
correctly classifies parens as punctuation, so they won't confuse the
parser.
* test/lisp/textmodes/sgml-mode-tests.el (sgml-tests--quotes-syntax):
New test copied from master, with two cases added for this bug.

5 years ago; * lisp/frame.el: Enhance add-variable-watcher commentary.
Noam Postavsky [Tue, 25 Jun 2019 22:57:30 +0000 (18:57 -0400)]
; * lisp/frame.el: Enhance add-variable-watcher commentary.

5 years agoPrefer PATH_MAX to MAXPATHLEN
Paul Eggert [Tue, 25 Jun 2019 22:54:37 +0000 (15:54 -0700)]
Prefer PATH_MAX to MAXPATHLEN

PATH_MAX is standardized, MAXPATHLEN is not.
Also, the Gnulib pathmax module fixes some rare bugs with PATH_MAX.
So prefer PATH_MAX to MAXPATHLEN unless we know the latter is
also correct (for some platform-specific code).
* admin/merge-gnulib (GNULIB_MODULES): Add pathmax.
This module was already present, as a dependency of canonicalize-lgpl,
but now Emacs is using it directly.  Sort.
* lib-src/emacsclient.c: Include stdint.h, pathmax.h.
(get_current_dir_name): Sync to current src/sysdep.c.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
* src/sysdep.c: Include pathmax.h.
(get_current_dir_name_or_unreachable):
Use PATH_MAX instead of MAXPATHLEN.

5 years agoView-search-... now hit all the matches, regardless of window position
Dima Kogan [Tue, 25 Jun 2019 22:49:24 +0000 (00:49 +0200)]
View-search-... now hit all the matches, regardless of window position

* lisp/view.el (view-search): Jump to the next/prev occurrence of
the search, even if it's displayed in the buffer (bug#18131).
This seems more logical than the previous (undocumented) behaviour.

5 years agoAvoid some strlen work, primarily via strnlen
Paul Eggert [Tue, 25 Jun 2019 21:53:39 +0000 (14:53 -0700)]
Avoid some strlen work, primarily via strnlen

* admin/merge-gnulib (GNULIB_MODULES): Add strnlen.
* lib-src/etags.c (find_entries):
* src/emacs.c (main):
* src/nsmenu.m (parseKeyEquiv:):
* src/nsterm.m (ns_xlfd_to_fontname):
* src/term.c (vfatal):
Prefer !*X to !strlen (X).
* lib-src/etags.c (pfnote, add_regex):
* lib-src/pop.c (pop_open):
* lib-src/update-game-score.c (main):
* lwlib/lwlib.c (lw_separator_p):
* src/doprnt.c (doprnt):
* src/emacs.c (main):
* src/inotify.c (inotifyevent_to_event):
* src/keyboard.c (menu_separator_name_p, parse_tool_bar_item):
* src/sysdep.c (get_current_dir_name_or_unreachable):
* src/xdisp.c (store_mode_line_string):
Use strnlen to avoid unnecessary work with strlen.
* lib-src/etags.c (Prolog_functions, prolog_pr)
(Erlang_functions, erlang_func):
Prefer ptrdiff_t to size_t when either will do.
(prolog_pr, erlang_func): New arg LASTLEN, to avoid
unnecessary strlen call. All callers changed.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
* lib/strnlen.c, m4/strnlen.m4: New files, copied from Gnulib.
* lwlib/lwlib.c (lw_separator_p):
* src/json.c (json_has_prefix):
Use strncmp to avoid unecessary work with strlen + memcmp.
* src/process.c (set_socket_option): Use SBYTES instead of strlen.