Commit graph

41420 commits

Author SHA1 Message Date
Eli Zaretskii
e35708b454 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.
2019-06-26 19:23:34 +03:00
Lars Ingebrigtsen
8123f8cf9f 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.
2019-06-26 16:41:14 +02:00
Lars Ingebrigtsen
4b83e7d016 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).
2019-06-26 16:25:24 +02:00
Stefan Monnier
0b4e003766 Revert "* lisp/calc/calc-ext.el (math-scalarp): Fix typo"
This reverts commit 698ff554ac.
2019-06-26 10:24:59 -04:00
Stefan Monnier
698ff554ac * lisp/calc/calc-ext.el (math-scalarp): Fix typo 2019-06-26 10:03:48 -04:00
Noam Postavsky
9552ee4df7 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
2019-06-25 22:04:13 -04:00
Noam Postavsky
648fdbbcec 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.
2019-06-25 22:00:03 -04:00
Paul Eggert
824f784187 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.
2019-06-25 15:56:58 -07:00
Paul Eggert
d7c6836288 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.
2019-06-25 14:55:08 -07:00
Lars Ingebrigtsen
630e01a703 Make message_to_stderr do one single fwrite
* src/xdisp.c (message_to_stderr): When running as a batch
process, the output from `message' goes to stderr, and has a
newline appended.  Rewrite the code so that only one fwrite is
performed to enable messages that are shorter than PIPE_BUF
(usually 4096 on modern operating systems) are written out as one
chunk, as this will ensure that the messages are not interleaved
with messages from other processes that are writing at the same
time.  This does not affect other stderr outputs, just the ones
from `message'.
2019-06-25 00:46:20 +02:00
Eli Zaretskii
9f5f5ae638 Fix MS-Windows build as followup to pdumper executable lookup
* src/w32.c (w32_my_exename): New function.
* src/w32.h (w32_my_exename): Add prototype.
* src/emacs.c (load_pdump_find_executable) [WINDOWSNT]: Find
the actual file name of the program without looking along
PATH, by calling w32_my_exename.

* nt/mingw-cfg.site (ac_cv_func_canonicalize_file_name)
(ac_cv_func_realpath, gl_cv_func_realpath_works): Disable
testing.
* nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_canonicalize-lgpl): Set
to true.
2019-06-24 20:06:34 +03:00
Daniel Colascione
65d45def8d Fix pdumper executable-finding code
* src/emacs.c:
(load_pdump_find_executable): New function.
(load_pdump): Use it.
2019-06-24 06:53:30 -07:00
Daniel Colascione
b9ac4f815e Fix locating pdump by symlink
* admin/merge-gnulib (GNULIB_MODULES): Add canonicalize-lgpl module
* build-aux/config.guess, build-aux/gitlog-to-changelog,
build-aux/update-copyright, lib/canonicalize-lgpl.c,
lib/gnulib.mk.in, lib/malloca.c, lib/malloca.h, lib/pathmax.h,
m4/canonicalize.m4, m4/double-slash-root.m4, m4/gnulib-comp.m4,
m4/malloca.m4, my/pathmax.4: copy from GNUlib or regenerate from
update
* src/emacs.c: find dump by canonical path
2019-06-23 18:19:08 -07:00
Paul Eggert
983e581376 Don’t line-buffer stderr
* src/sysdep.c (init_standard_fds) [DOS_NT]: Don’t line-buffer stderr.
This reverts 2019-06-20T07:32:17!eggert@cs.ucla.edu.  See:
https://lists.gnu.org/r/emacs-devel/2019-06/msg00882.html
2019-06-23 13:32:12 -07:00
Alexander Gramiak
807b21dc40 src/bytecode.c (exec_byte_code) Unroll Blist3 and Blist4
* src/bytecode.c (exec_byte_code): Unroll Blist3 and Blist4
(bug#35321).
2019-06-23 19:36:53 +02:00
Eli Zaretskii
a1deb6cac3 ; * src/image.c: Minor copyedits of native transform commentary. 2019-06-23 19:24:32 +03:00
Lars Ingebrigtsen
d2bbea23fa Document what the t' value for HIST in read-string' means
* src/minibuf.c (syms_of_minibuf): Say that `t' means "no history"
(bug#36324).
(Fread_from_minibuffer): Say the same for HIST.
2019-06-23 14:05:55 +02:00
Paul Eggert
f4f165f782 Bring macuvs.h back under Git control
* admin/unidata/Makefile.in (maintainer-clean):
Instead of removing macuvs.h here ...
(extraclean): ... Remove it here.
* admin/unidata/uvs.el (uvs-print-table-ivd):
Add to comment explaining why macuvs.h is in Git.
* src/macuvs.h: Regenerate and re-add to Git.
2019-06-22 11:41:49 -07:00
YAMAMOTO Mitsuharu
28035cb456 Make ftcr font backend driver more consistent with xft
* src/ftcrfont.c: Include charset.h.
(ftcrfont_has_char): Import font adstyle related code from ftfont_has_char.
2019-06-22 19:03:27 +09:00
Stefan Kangas
54256143ef Make toolbar show keyboard equivalents in its tooltips
* src/keyboard.c (parse_tool_bar_item): Add equivalent key binding to
the tooltip string of toolbar buttons.
* etc/NEWS: Announce it.
* etc/TODO: Remove its entry.  (Bug#36156)
2019-06-22 12:12:34 +03:00
Eli Zaretskii
d79fe1f777 Fix an off-by-one error in assertion
* src/fileio.c (Fexpand_file_name): Fix off-by-one error in an
assertion.  This avoids assertion violations when the home
directory is an empty string for some reason.  (Bug#36363)
2019-06-22 11:59:16 +03:00
YAMAMOTO Mitsuharu
27d28d43d1 Make ftcr font backend driver more consistent with xft
* src/ftcrfont.c (ftcrfont_open): Use metrics of glyph ID 0 if there is no
glyph for an ASCII printable.
2019-06-22 15:33:32 +09:00
YAMAMOTO Mitsuharu
a0797d32c9 * src/font.c (Ffont_xlfd_name): Don't use strcpy for overlapping strings. 2019-06-22 11:37:25 +09:00
Paul Eggert
7555f9321d Remove src/macuvs.h from Git repository
It can be generated automatically and easily during a normal
bootstrap, so there’s no need to keep it in the repository.
* admin/unidata/Makefile.in (maintainer-clean):
Behave like extraclean and remove macuvs.h etc.
* src/macuvs.h: Remove.
2019-06-21 15:01:14 -07:00
Juanma Barranquero
572e34bb6f Rename 'make-symbolic-link' argument NEWNAME to LINKNAME
* src/fileio.c (Fmake_symbolic_link): Fix docstring.
* doc/lispref/files.texi (Changing Files): Doc fix.
2019-06-21 21:42:36 +02:00
YAMAMOTO Mitsuharu
d63bfbcae4 * src/xterm.c (x_update_end) [USE_CAIRO]: Flush non-double-buffered surface. 2019-06-21 09:28:50 +09:00
YAMAMOTO Mitsuharu
2a229f495f Fix blank tooltips on cairo (Bug#36298)
* src/xterm.h (x_cr_update_surface_desired_size) [USE_CAIRO]: Add extern.
* src/xterm.c (x_cr_update_surface_desired_size) [USE_CAIRO]: Make non-static.
* src/xfns.c (Fx_show_tip) [USE_CAIRO]: Call x_cr_update_surface_desired_size.
2019-06-21 09:25:47 +09:00
YAMAMOTO Mitsuharu
2da3305c3c Fix broken display by frame maximization on cairo (Bug#23925)
* src/xterm.c (handle_one_xevent) [USE_CAIRO && USE_GTK]: Make calls to
x_cr_update_surface_desired_size coincide with those to xg_frame_resized.
2019-06-21 09:20:34 +09:00
Eli Zaretskii
e4e171bcac Fix aborts when the value of a display property causes redisplay
* src/xdisp.c (handle_single_display_spec): Protect the bidi
cache from evaluation that triggers redisplay.  (Bug#36312)
2019-06-20 21:07:37 +03:00
Lars Ingebrigtsen
de4e1bddb1 Make extraclean return tree to pristine state by deleting more
* src/Makefile.in (extraclean): Remove TAGS and config.in.

* Makefile.in (extraclean): Remove info, configure and
emacsver.texi in extraclean.
* admin/unidata/Makefile.in (extraclean): Make it depend on
distclean to remove .elc files.

* leim/Makefile.in (extraclean): Depend on bootstrap-clean to
remove generated .el files.

* lib/Makefile.in (extraclean): Added target to remove sys
directory and run distclean.

* lisp/Makefile.in (extraclean): Also remove loaddefs*.el~ files.
2019-06-20 17:04:04 +02:00
Robert Pluim
04477adedc Check that length of data returned by sysctl is non-zero
The length of the data returned by sysctl can be zero, which was not
checked for.  This could cause crashes, e.g. when querying
non-existent processes.  (Bug#36279)

* src/sysdep.c (list_system_processes) [DARWIN_OS || __FreeBSD__]:
(system_process_attributes) [__FreeBSD__]:
(system_process_attributes) [DARWIN_OS]:
* src/filelock.c (get_boot_time) [CTL_KERN && KERN_BOOTTIME]: Check
  for zero length data returned by sysctl.
2019-06-20 10:42:21 +02:00
Paul Eggert
920745eba2 Simplify stdout buffering
* src/sysdep.c (_sobuf): Remove; we no longer need this
microoptimization.
(init_sys_modes): Simplify by assuming setvbuf.
2019-06-20 00:41:13 -07:00
Paul Eggert
2dbe05d01a Remove no-longer-needed fflushes of stderr
* src/gmalloc.c (mabort) [GC_MCHECK && !__GNU_LIBRARY__]:
* src/term.c (vfatal): Remove fflush (stderr) when it is now a
no-op because newline automatically flushes stderr.
2019-06-20 00:41:13 -07:00
Paul Eggert
2079e40a3c Line-buffer stderr
* src/sysdep.c (init_standard_fds) [!DOS_NT]:
Use setvbuf to ensure stderr is line-buffered.
2019-06-20 00:41:13 -07:00
Paul Eggert
4e8083ec81 Fix arbitrary INT_MAX limit on referrer repr
* src/pdumper.c (print_paths_to_root_1):
Don’t assume strlen (repr) < INT_MAX.
2019-06-20 00:41:13 -07:00
Paul Eggert
5f32ac13c8 Minor putc tweaks
* src/emacs-module.c (module_abort):
* src/xdisp.c (vmessage):
Prefer fputc to putc, since speed isn’t crucial here.
* src/region-cache.c (pp_cache) [ENABLE_CHECKING]: Simplify.
2019-06-20 00:41:13 -07:00
YAMAMOTO Mitsuharu
fdbbbf94a5 Change font_put_extra value for property removal from Qnil to Qunbound
* font.c (font_put_extra): If VAL is Qunbound, delete the slot for PROP from
the list of extra properties.  Previous value Qnil is valid as boolean.
(font_clear_prop): Changed argument of font_put_extra for property removal.
2019-06-20 12:12:01 +09:00
YAMAMOTO Mitsuharu
0701634aa7 Fix failure of setting default face attribute in init script (Bug#36284)
* src/xsettings.c (apply_xft_settings): Undo replacing all #ifdef HAVE_XFT
with #if defined USE_CAIRO || defined HAVE_XFT for this function.
2019-06-20 11:58:36 +09:00
YAMAMOTO Mitsuharu
2419fa3937 Fix oversights of "support X core font driver on cairo" change
* src/Makefile.in (FONT_OBJ): Fix comment for USE_CAIRO.
* src/xfns.c (x_create_tip_frame) [USE_CAIRO]: Register xfont_driver.
2019-06-19 18:07:00 +09:00
Eli Zaretskii
922121e7dd Fix the handling of font backend supersedence on MS-Windows
* src/w32font.c (syms_of_w32font): Don't make the Uniscribe
font backend "superceded" here, ...
* src/w32uniscribe.c (syms_of_w32uniscribe_for_pdumper):
... make it "superceded" here, only if the HarfBuzz DLL was
successfully loaded.  This is because Emacs compiled with
HarfBuzz support might run on a system without the DLL.
* src/w32fns.c (Fx_create_frame, w32_create_tip_frame):
Register the HarfBuzz font backend only if it is available.
2019-06-18 20:21:40 +03:00
YAMAMOTO Mitsuharu
64767008f7 Support font driver supersession
* src/font.c (font_update_drivers): If argument NEW_DRIVERS is t, then don't
use superseded drivers.
(syms_of_font) <Qfont_driver_superseded_by>: New DEFSYM.

* src/ftfont.c (syms_of_ftfont) [HAVE_HARFBUZZ]:
* src/ftcrfont.c (syms_of_ftcrfont) [HAVE_HARFBUZZ]:
* src/w32font.c (syms_of_w32font) [HAVE_HARFBUZZ]:
* src/xftfont.c (syms_of_xftfont) [HAVE_HARFBUZZ]: Make Harfbuzz variants
supersede non-Harfbuzz ones.

* src/w32fns.c (Fx_create_frame, w32_create_tip_frame): Remove font backend
determination code.
2019-06-18 10:21:06 +09:00
Paul Eggert
7c8cb70fa3 * src/image.c (image_set_rotation): Do negation at compile-time. 2019-06-17 15:46:54 -07:00
YAMAMOTO Mitsuharu
8c56eb0525 Avoid rounding error in image rotation
* src/image.c (image_set_rotation): Halve translations as double values.
2019-06-17 10:43:31 +09:00
Lars Ingebrigtsen
fd9cff0279 Fix up the --no-print-directory changes in src/Makefile.in
* src/Makefile.in (AM_V_NO_PD): New macro written by Andreas
Schwab that can be either --no-print-directory or "".
(%.elc): Use it instead if the if statement.
2019-06-17 00:33:59 +02:00
Juanma Barranquero
4156dd384a Bump up max_specpdl_size to 1500. (Bug#36216)
* src/eval.c (init_eval_once): Set max_specpdl_size to 1500.
* doc/lispref/variables.texi (Local Variables): Document it.
2019-06-16 23:14:51 +02:00
Alan Third
beb572a7dd Revert "Simplify image transforms"
This reverts commit cf3081d208.

; Pushed in error.
2019-06-16 20:46:42 +01:00
Alan Third
cf3081d208 Simplify image transforms
* src/image.c: (image_set_rotation, image_set_size,
image_set_transform): Combine into image_set_transform.
(image_set_crop): Remove function.
(lookup_image): Remove calls to removed functions and remove
transform_matrix.
* test/manual/image-transforms-tests.el (test-cropping): Remove
function.
(test-transforms): Remove reference to test-cropping.
2019-06-16 20:24:53 +01:00
Alan Third
11b0e33462 Document image transforms
* doc/lispref/display.texi (Image Descriptors): Document :crop and
update :rotation.
* src/image.c: Describe the image transform matrix layout.
* test/manual/image-transforms-tests.el: New file.
2019-06-16 20:24:53 +01:00
Philipp Stephani
7e53f4f2da * src/xfaces.c (dump_realized_face): Fix incorrect format string. 2019-06-15 19:02:25 +02:00
Philipp Stephani
d67a7987c0 * src/xfaces.c (dump_realized_face): Fix format specifier. 2019-06-15 18:59:54 +02:00