1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-15 04:11:53 -08:00
Commit graph

40817 commits

Author SHA1 Message Date
Khaled Hosny
68e675d5cf Set cluster level to one
Makes to possible to edit combining marks separately as now they get a
different cluster value from the base glyph.
2018-12-10 00:08:50 +02:00
Khaled Hosny
ca0b6e90f8 Cache hb_font_t
Not sure if the xftfont.c changes are really needed, but followed the
libotf code just in case.
2018-12-10 00:08:50 +02:00
Khaled Hosny
9014e05fcb Allow turning HarfBuzz off at run time
Useful for comparing the shaping result with that of m17n.
2018-12-10 00:08:50 +02:00
Khaled Hosny
a2bea377c7 First attempt at HarfBuzz shaping
Barely works, and unoptimized!
2018-12-10 00:08:50 +02:00
Khaled Hosny
ab93444cbb Add support for building with HarfBuzz
Not used yet.
2018-12-10 00:08:50 +02:00
Paul Eggert
d79bb75683 Add make_vector and make_nil_vector
This makes the callers a bit easier to read, and doubtless
improves efficiency very slightly.  It also simplifies
possible future changes to allow bignum indexes to buffers.
* src/alloc.c (allocate_vectorlike):
Prefer ptrdiff_t to size_t when either will do.
(make_vector): New function.
(Fmake_vector): Use it.
* src/buffer.c (syms_of_buffer):
* src/bytecode.c (syms_of_bytecode):
* src/category.c (Fmake_category_table, init_category_once):
* src/ccl.c (syms_of_ccl):
* src/character.c (syms_of_character):
* src/charset.c (Fdefine_charset_internal)
(Ffind_charset_region, Ffind_charset_string):
* src/chartab.c (copy_char_table):
* src/coding.c (Fdefine_coding_system_internal, syms_of_coding):
* src/composite.c (get_composition_id, Fcomposition_get_gstring):
* src/composite.h (LGLYPH_NEW):
* src/fns.c (concat, Flocale_info, make_hash_table):
* src/font.c (font_otf_ValueRecord, font_otf_anchor)
(build_style_table, syms_of_font):
* src/fontset.c (RFONT_DEF_NEW, fontset_find_font)
(dump_fontset, syms_of_fontset):
* src/image.c (xpm_make_color_table_v):
* src/keyboard.c (modify_event_symbol, menu_bar_items)
(parse_menu_item, parse_tool_bar_item, init_tool_bar_items)
(syms_of_keyboard):
* src/keymap.c (Fdefine_key, describe_map, describe_vector):
* src/lread.c (read_vector):
* src/macfont.m (macfont_shape):
* src/menu.c (init_menu_items):
* src/nsfns.m (ns_make_monitor_attribute_list):
* src/process.c (conv_sockaddr_to_lisp, network_interface_info):
* src/profiler.c (make_log):
* src/window.c (Fcurrent_window_configuration):
* src/xdisp.c (with_echo_area_buffer_unwind_data)
(format_mode_line_unwind_data):
* src/xfaces.c (Finternal_make_lisp_face)
(Fface_attributes_as_vector):
* src/xfns.c (x_make_monitor_attribute_list)
(Fx_display_monitor_attributes_list):
* src/xfont.c (syms_of_xfont):
* src/xselect.c (x_handle_dnd_message):
* src/xwidget.c (save_script_callback):
Prefer make_nil_vector (N) to Fmake_vector (make_fixnum (N), Qnil).
* src/callint.c (Fcall_interactively):
* src/charset.c (load_charset_map):
* src/chartab.c (Fmake_char_table, uniprop_encode_value_numeric):
* src/composite.c (get_composition_id)
* src/dispnew.c (Fframe_or_buffer_changed_p)
(syms_of_display):
* src/fns.c (make_hash_table, maybe_resize_hash_table):
* src/font.c (font_style_to_value):
* src/fontset.c (FONTSET_ADD, fontset_add):
* src/json.c (json_to_lisp):
* src/keymap.c (syms_of_keymap):
* src/lread.c (init_obarray):
* src/profiler.c (make_log, Fprofiler_cpu_log):
* src/term.c (term_get_fkeys_1):
Prefer make_vector (N, V) to Fmake_vector (make_fixnum (N), V).
* src/font.c (build_style_table):
* src/macfont.m (macfont_shape):
* src/process.c (conv_sockaddr_to_lisp, network_interface_info):
Prefer make_uninit_vector if the vector will be initialized soon.
* src/lisp.h (make_nil_vector): New function.
2018-12-09 00:23:55 -08:00
Paul Eggert
7515a1d493 * src/alloc.c (VECTOR_ELTS_MAX): Make sure it’s signed. 2018-12-08 23:00:18 -08:00
Paul Eggert
fa4dd8dd01 Port VECTOR_ELTS_MAX to older GCC etc.
Problem reported by Eli Zaretskii in:
https://lists.gnu.org/r/emacs-devel/2018-12/msg00182.html
* src/alloc.c (VECTOR_ELTS_MAX): Now a macro.
Needed for portability to older GCC and non-GCC.
2018-12-08 22:54:11 -08:00
Paul Eggert
7bcea8f8c1 Streamline and fix vector-size checks
* src/alloc.c (VECTOR_ELTS_MAX): New constant.
(allocate_vectorlike): LEN now must be positive.  Assume LEN
is in range.  All callers changed.
(allocate_vector): Arg is now ptrdiff_t, not EMACS_INT.
All callers changed.  Return zero vector here, not in
allocate_vectorlike.
* src/lisp.h (make_uninit_vector): Simplify.
* src/xwidget.c (webkit_js_to_lisp):
Check for overflow in ptrdiff_t calculations.
2018-12-08 16:58:40 -08:00
Paul Eggert
a9732737f2 Suppress WebKitGTK+ 2.21.1 diagnostics
* src/xwidget.c: Suppress deprecation warnings (Bug#33679).
2018-12-08 16:02:31 -08:00
Paul Eggert
a65c0929eb Fix integer overflow in oversize vectors
* src/alloc.c (allocate_vector): Fix integer overflow when
allocating very large vectors, by taking large_vector_offset
into account.  Assume C99.
2018-12-08 10:50:15 -08:00
Paul Eggert
9b099ce56b * src/alloc.c (allocate_vectorlike): Simplify. 2018-12-08 10:50:15 -08:00
Eli Zaretskii
e4a8f6ebbf Fix the value of default-directory upon startup on MS-Windows
* src/w32.c (w32_get_current_directory): New function.
(GetCachedVolumeInformation, init_environment): Use it.
(w32_init_current_directory): New function.
* src/w32.h (w32_init_current_directory): Add prototype.
* src/emacs.c (main) [WINDOWSNT]: Use w32_init_current_directory
to get the accurate value of cwd.  This is needed to record
the correct directory in emacs_wd, which is now initialized
way earlier in the startup process, when init_environment was
not yet called.  For details, see the problems reported in
http://lists.gnu.org/archive/html/emacs-devel/2018-12/msg00068.html.
Reported by Angelo Graziosi <angelo.g0@libero.it>.
2018-12-07 10:54:57 +02:00
Paul Eggert
c5b6f1672b struct image_type layout is private to image.c
* src/dispextern.h (struct image_type): Move from here ...
* src/image.c (struct image_type): ... to here.
2018-12-06 10:48:04 -08:00
Eli Zaretskii
2ff9dca17c Fix WINDOWSNT/DOS_NT build
Recent changes in sysdep.c and emacsclient unnecessarily
removed useful code from DOS_NT builds.  This changeset
reinstates that code.
* nt/inc/ms-w32.h (tcdrain): Redirect to _commit.
(fdatasync): No need to redirect anymore.

* lib-src/emacsclient.c (flush_stdout): Don't avoid calling
tcdrain on DOS_NT platforms.

* src/sysdep.c (reset_sys_modes): Don't ifdef away the call to
tcdrain on DOS_NT platforms.
2018-12-03 12:29:34 +02:00
Paul Eggert
f5090b9129 Use tcdrain, not fdatasync, to drain ttys
fdatasync is for storage devices, not ttys.
* admin/merge-gnulib (GNULIB_MODULES): Remove fdatasync.
* lib/fdatasync.c, m4/fdatasync.m4: Remove.
* lib-src/Makefile.in (LIB_FDATASYNC):
* src/Makefile.in (LIB_FDATASYNC):
Remove.  All uses removed.
* lib-src/emacsclient.c [!DOS_NT]:
Include <termios.h>, for tcdrain.
* lib-src/emacsclient.c (flush_stdout):
* src/sysdep.c (reset_sys_modes): On ttys, use tcdrain instead
of fdatasync (except don’t use either function if DOS_NT).
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
2018-12-02 23:55:01 -08:00
Glenn Morris
b6935dbe18 Merge from origin/emacs-26
317b354 ; Add notes about cross-compiling macOS versions
4b176eb Fix macOS run-time feature check
c03574b * etc/NEWS-*: Fix capitalization of "Emacs"

# Conflicts:
#	etc/NEWS
2018-12-02 10:32:24 -08:00
Alan Third
4b176eb863 Fix macOS run-time feature check
* src/nsterm.m (x_set_parent_frame) [NS_IMPL_COCOA]: Fix run-time
feature check.
2018-12-01 16:41:03 +00:00
Paul Eggert
7d9fa89fb3 Fix infloop in GC mark_kboards
* src/keyboard.c (KBD_BUFFER_SIZE): Now a constant, not a macro.
(kbd_fetch_ptr, kbd_store_ptr): These now always point somewhere
into kbd_buffer, instead of sometimes pointing just past the
end which led to serious bugs (Bug#33547).  All uses changed.
(kbd_store_ptr): No longer volatile.  This variable has not been
accessed by a signal handler for some time, it seems.
(next_kbd_event, prev_kbd_event): New functions.
(kbd_buffer_nr_stored, process_special_events): Simplify.
2018-11-30 14:27:02 -08:00
Paul Eggert
7ecf49b5a5 Fix core dump in dbus-message-internal
Backport from master.
* src/dbusbind.c (Fdbus_message_internal):
Don’t go past array end (Bug#33530).
2018-11-30 09:56:10 -08:00
Robert Pluim
5f67353da7 Convert NS face colors to RGBA when comparing with frame values
The NS port uses indexes into a color table to specify the colors of
faces, whereas frames use RGBA pixel values.  In
extend_face_to_end_of_line the two needed to be compared to ensure
that the backgrounds of certain faces are not extended to the edge of
the window, which was failing because of this difference, thus causing
a visual difference with other platforms.  Convert from index to RGBA
when doing such comparisons.

* src/dispextern.h (FACE_COLOR_TO_PIXEL) [HAVE_NS]: New macro.  Call
ns_color_index_to_rgba under NS only.

* src/nsgui.h: Add prototype for ns_color_index_to_rgba.

* src/nsterm.m (ns_color_index_to_rgba): New function.  Converts a
color_table entry to corresponding RGBA pixel value.

* src/xdisp.c (extend_face_to_end_of_line): Call FACE_COLOR_TO_PIXEL
on face background color when comparing with frame color.
2018-11-30 08:55:02 +01:00
Glenn Morris
415ef4a2b0 Merge from origin/emacs-26
74a3a79 (origin/emacs-26) Fix a typo in a doc string
911766d Minor markup fix in frames.texi
19ed1e9 * lisp/net/trampver.el (customize-package-emacs-version-alist...
d7132ad * lisp/mh-e/mh-e.el (customize-package-emacs-version-alist): ...
5f39260 * lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Pass format to m...
a291f62 Don't call xwidget functions until GTK has been initialized
f0531b8 Improve documentation of Ediff wordwise commands
2925ce5 Support Hunspell 1.7.0 in ispell.el
03bb7a8 Avoid clearing echo-area message by auto-save-visited-file-name
2018-11-28 07:51:12 -08:00
Glenn Morris
b58e8b82ed Merge from origin/emacs-26
094fcf6 Fix more drawing bugs in NS port (bug#32932)
2018-11-28 07:51:11 -08:00
Paul Eggert
cef3f8fbf9 Fix core dump in dbus-message-internal
* src/dbusbind.c (Fdbus_message_internal):
Don’t go past array end (Bug#33530).
2018-11-27 21:36:43 -08:00
Robert Pluim
a291f62428 Don't call xwidget functions until GTK has been initialized
Follow up fix to Bug#33294.

* src/gtkutil.c: Define xg_gtk_initialized.
(xg_initialize): Set it when GTK has finished initializing.

* src/gtkutil.h: Declare xg_gtk_initialized.

* src/xwidget.c (Fmake_xwidget): Error out if GTK has not been
initialized.
(xwidget_init_view): Likewise.
2018-11-27 09:41:59 +01:00
Alan Third
094fcf62d2 Fix more drawing bugs in NS port (bug#32932)
* src/nsterm.m (ns_row_rect): New function.
(ns_clip_to_row): Remove function.
(ns_copy_bits): Fix mistake.
(ns_shift_glyphs_for_insert): Mark the frame as dirty instead of
directly copying.
(ns_draw_fringe_bitmap): Stop using ns_clip_to_row.
(ns_draw_window_cursor): Stop using ns_clip_to_row and perform a
display when not in redisplay.
(ns_update_window_begin): Remove redundant code that never executes.
([EmacsView drawRect:]): Show the rectangle being exposed in NSTRACE.
* src/xdisp.c (expose_window_tree) [HAVE_NS]:
(expose_frame) [HAVE_NS]: Redraw even if the frame is garbaged.
2018-11-25 11:25:33 +00:00
Alan Third
ea624626cc Set tooltip text color (bug#33452)
; Do not merge into master

* src/nsmenu.m: ([EmacsTooltip init]): Set text color to black.
2018-11-25 11:25:33 +00:00
Glenn Morris
bb7b75d711 Merge from origin/emacs-26
070e82b ; * src/window.c (window_scroll): Improve commentary.
60457d7 Improve documentation of the window tree
ea1a014 Fix window scrolling on TTY frames when there's no mode line
df7ed10 Fix decoding XML files encoded in ISO-8859
7851ae8 (tag: emacs-26.1.90) ; ChangeLog.3 update
1958808 * etc/AUTHORS: Update.
7252507 Fix description of some window hooks
88762b4 Run 'window--adjust-process-windows' when frame size changes ...
d6542ea Avoid errors in zone.el when there's overlay at EOB
2018-11-20 09:38:42 -08:00
Eli Zaretskii
070e82b96b ; * src/window.c (window_scroll): Improve commentary. 2018-11-19 20:35:28 +02:00
Eli Zaretskii
60457d7ae0 Improve documentation of the window tree
* doc/lispref/windows.texi (Windows and Frames): More accurate
wording regarding the relation of a mini-window to its frame's
window tree.

* src/window.h (struct window): Improve commentary to some
fields.
2018-11-19 20:31:49 +02:00
Eli Zaretskii
ea1a014982 Fix window scrolling on TTY frames when there's no mode line
* src/window.c (window_internal_height): Remove tests for
next, prev, and parent pointers, as they are unrelated to
whether a window has a mode line.  (Bug#33363)
2018-11-19 20:12:04 +02:00
Stefan Monnier
81f0e05a02 * src/cmds.c (Fself_insert_command): Get last-command-event via (new) arg. 2018-11-17 10:47:48 -05:00
Glenn Morris
166f1400b4 Merge from origin/emacs-26
edcd6b7 Small documentation correction.
168a8c2 * src/coding.c (Fcheck_coding_systems_region): Doc fix.  (Bug...
3287a7c Fix Bug#33364
acee0a8 ; Cosmetic changes in etc/NEWS
a6ef167 * test/README: Explain $REMOTE_TEMPORARY_FILE_DIRECTORY.

# Conflicts:
#	etc/NEWS
2018-11-16 08:30:19 -08:00
Eli Zaretskii
168a8c258c * src/coding.c (Fcheck_coding_systems_region): Doc fix. (Bug#33372) 2018-11-14 17:59:05 +02:00
Eli Zaretskii
fb2514f3e2 Fix a thinko in fileio.c
* src/fileio.c (get_homedir): Fix last change.  Suggested by
Paul Eggert <eggert@cs.ucla.edu>.
2018-11-14 17:28:13 +02:00
Eli Zaretskii
4a5a17507f Fix recent change in fileio.c
* src/fileio.c (get_homedir) [WINDOWSNT]: Convert $HOME to UTF-8.
(Fexpand_file_name): Don't convert it here.
2018-11-13 22:01:57 +02:00
Paul Eggert
900276502f Act like POSIX sh if $HOME is relative
POSIX says sh ~/foo should act like $HOME/foo even if $HOME is
relative, so be consistent with that (Bug#33255).
* admin/merge-gnulib (GNULIB_MODULES): Add dosname.
* src/buffer.c (init_buffer): Use emacs_wd to get
initial working directory with slash appended if needed.
(default-directory): Say it must be absolute.
* src/emacs.c (emacs_wd): New global variable.
(init_cmdargs): Dir arg is now char const *.
(main): Set emacs_wd.
* src/emacs.c (main) [NS_IMPL_COCOA]:
* src/fileio.c (Fexpand_file_name):
Use get_homedir instead of egetenv ("HOME").
* src/fileio.c: Include dosname.h, for IS_ABSOLUTE_FILE_NAME.
(splice_dir_file, get_homedir): New functions.
* src/xrdb.c (gethomedir): Remove.  All callers changed
to use get_homedir and splice_dir_file.
* test/src/fileio-tests.el (fileio-tests--relative-HOME): New test.
2018-11-13 09:32:50 -08:00
Glenn Morris
b8bbbe54dd Avoid kill-emacs-hook errors hanging batch mode
* src/emacs.c (Fkill_emacs): Prevent errors from kill-emacs-hook
hanging Emacs in batch mode.  (Bug#29955)

(cherry picked from commit 109da684c5)
2018-11-12 14:03:18 -05:00
Glenn Morris
23209e2c19 Merge from origin/emacs-26
913c001 * lisp/files.el (write-file): Clarify the doc string.  (Bug#3...
d614b84 Fix typos in midnight.el
8c2778a Improve documentation of 'move-file-to-trash'
c7b8a51 ; * doc/lispref/functions.texi (Anonymous Functions): Fix typo.
92296de * src/data.c (Ftype_of): xwidget objects are possible! (bug#3...
a3242cc Improve documentation of Diff mode
39e85a0 Note that lex bound lambda forms are not self-quoting (Bug#33...
fa605f2 Rewrite buffer display related doc-strings and doc
aa55659 Fix call to GlobalMemoryStatusEx in w32.c

# Conflicts:
#	doc/emacs/files.texi
#	src/data.c
2018-11-12 09:38:27 -08:00
Sam Steingold
db711687c3 maybe_disable_address_randomization always returns "int argc"
maybe_disable_address_randomization needs a consistent signature
regardless of HAVE_PERSONALITY_ADDR_NO_RANDOMIZE.
2018-11-12 09:10:11 -05:00
Paul Eggert
1d79c2ebd9 Work around dumping bug on GNU/Linux ppc64le
Problem reported by Thomas Fitzsimmons (Bug#33174).
Do not merge to master, as we have a better fix there.
* src/Makefile.in (emacs$(EXEEXT)):
(bootstrap-emacs$(EXEEXT)):
Unset EMACS_HEAP_EXEC before invoking temacs.
2018-11-11 22:35:10 -08:00
Paul Eggert
c14eab222c Fix dumping on GNU/Linux ppc64le
Problem reported by Thomas Fitzsimmons (Bug#33174).
* src/emacs.c (main): Adjust to sysdep.c changes.
* src/sysdep.c (exec_personality): New static var.
(disable_address_randomization): Remove, replacing with ...
(maybe_disable_address_randomization): ... this new function.
Do not set or use an environment variable; use a command-line
argument instead, and set the new static var.  Migrate the emacs.c
personality-change code to here, where it belongs.
(emacs_exec_file): Simplify by using new static var.
2018-11-11 22:20:39 -08:00
Paul Eggert
b87c874aa1 Pacify gcc -Wmaybe-uninitialized without X11-XCB
I ran into this problem on Ubuntu 18.04.1 LTS.
* src/xterm.c (get_current_wm_state) [!USE_XCB]:
Mark reply_data as UNINIT here too.
2018-11-11 10:03:32 -08:00
Paul Eggert
2917238758 Pacify gcc -Wunused-macros in older GnuTLS
I ran into this problem on Ubuntu 18.04.1 LTS.
* src/gnutls.c (HAVE_GNUTLS_CIPHER_GET_IV_SIZE)
(HAVE_GNUTLS_CIPHER_GET_TAG_SIZE, HAVE_GNUTLS_DIGEST_LIST):
New macros.  This uses the same style as the other
macros that depend on GnuTLS version, as opposed to trying
to do things a bit more cleverly.
(gnutls_cipher_get_iv_size, gnutls_cipher_get_tag_size)
(gnutls_digest_list, gnutls_digest_get_name):
Define these macros only if they will be used.
2018-11-11 10:03:32 -08:00
Paul Eggert
9cd23a2914 Dissociate controlling tty better on Darwin
* src/process.c (dissociate_controlling_tty): New function.
(create_process): Use it to dissociate controlling tty if setsid
fails, which happens on Darwin after a vfork (Bug#33154).
Do this on all platforms, not just on Darwin, as a similar
problem is plausible elsewhere.
* src/callproc.c (call_process): Use the new function here, too,
for consistency and to avoid duplicate code.
2018-11-10 09:04:42 -08:00
Eli Zaretskii
d6b7b60cd0 Fix last change
* src/editfns.c (Fgroup_name): Fix the doc string.  Move
closer to the "group" functions.
* src/w32.c (getgrgid): Return NULL if GID is not the group ID
of the user of this Emacs session

* test/src/editfns-tests.el (test-group-name): Rename from
'group-name'.  Add tests for non-Posix hosts.  Test error when
the argument to group-name is invalid.

* etc/NEWS: Fix wording of last added entry.
2018-11-10 11:16:17 +02:00
Jules Tamagnan
ffb4c76d99 src/editfns.c (group-name): New function. 2018-11-10 10:06:50 +02:00
Stefan Monnier
92296de42b * src/data.c (Ftype_of): xwidget objects are possible! (bug#33294)
(syms_of_data): Define Qwidget here.
* src/xwidget.c (syms_of_xwidget): Instead of here.
2018-11-09 09:51:54 -05:00
Eli Zaretskii
aa556596fa Fix call to GlobalMemoryStatusEx in w32.c
* src/w32.c (system_process_attributes): Initialize the size
of the data structure passed to GlobalMemoryStatusEx,
otherwise it fails.
2018-11-06 17:49:58 +02:00
Glenn Morris
294a5246b2 * src/xfaces.c (face_at_buffer_position): Adapt lookup_basic_face call. 2018-11-04 09:45:59 -08:00