1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-03 14:10:47 -08:00
Commit graph

40906 commits

Author SHA1 Message Date
Paul Eggert
227343947f decode-time: allow bignum years
* src/timefns.c (TM_YEAR_BASE):
Now a constant as it need not be a macro.
(Fdecode_time): Do not signal an overflow merely because the
Gregorian year number does not fix in a fixnum (which can
happen on hosts with 64-bit time_t and with 32-bit int and
EMACS_INT).
2019-01-01 11:33:37 -08:00
Paul Eggert
8e25ffeec6 Fix integer overflow check in json code
* src/json.c (json_to_lisp): Check for ptrdiff_t overflow,
not fixnum overflow.
2018-12-31 23:35:55 -08:00
Paul Eggert
a04bf15130 Update more copyright years
Update some other copyright years automatically, by running:
Run 'UPDATE_COPYRIGHT_YEAR=2019 \
UPDATE_COPYRIGHT_USE_INTERVALS=1 \
UPDATE_COPYRIGHT_MAX_LINE_LENGTH=79 admin/update-copyright'
followed by 'admin/merge-gnulib'.
2018-12-31 18:47:22 -08:00
Paul Eggert
ba809612c0 Merge from origin/emacs-26
2fcf2df Fix copyright years by hand
26bed8b Update copyright year to 2019
2814292 Fix value of default frame height.  (Bug#33921)
2018-12-31 17:57:29 -08:00
Paul Eggert
d9ba26ec2d Remove UCHAR typedef
* src/lisp.h (_UCHAR_T, UCHAR): Remove.  This workaround for
circa-1993 old-AIX has evidently not been needed for decades.
Tested on AIX 7.1, the oldest AIX version IBM still supports.
2019-01-01 01:12:44 +00:00
Paul Eggert
26bed8ba10 Update copyright year to 2019
Run 'TZ=UTC0 admin/update-copyright $(git ls-files)'.
2019-01-01 01:01:13 +00:00
Paul Eggert
bed56428a6 Fix assertion-violations on non-integers
These bugs were introduced after bignums were added.
* src/data.c (cons_to_unsigned, cons_to_signed):
* src/xdisp.c (calc_line_height_property):
Invoke integer_to_intmax and integer_to_uintmax only on integers.
2018-12-30 19:00:46 -08:00
Glenn Morris
a8e545ef6b Merge from origin/emacs-26
3abebeb * lisp/files.el (cd): Fix last change.  (Bug#33791)
7a60a4f Fix remote directories in Eshell on MS-Windows
822a2d0 Fix :type 'group' in defcustom
a731c56 Fix NS fringe bitmap drawing bug (bug#33864)
0c52459 Fix commentary in dispnew.c
c9fdd1b Improve accept-process-process doc
9578c2a Fix a simple bug in display-buffer-use-some-frame
0f9be72 Clarify thread switching while waiting for process output
24ddea0 Improve process doc. with respect to handling of large input ...
2931016 ; Cosmetic changes in etc/NEWS
85516b8 Minor copyedits in landmark.el

# Conflicts:
#	etc/NEWS
2018-12-30 16:57:36 -08:00
Martin Rudalics
d82e73f08f Handle 'unbound' like nil for 'window-point-insertion-type' (Bug#33871)
* src/window.c (save_window_save): When setting the marker
insertion type of saved window points treat a buffer local
value of 'unbound' for 'window-point-insertion-type' like
nil (Bug#33871).
2018-12-30 15:47:16 +01:00
Martin Rudalics
fb10834a60 Avoid that unwind_format_mode_line messes up buffer points (Bug#32777)
* src/xdisp.c (format_mode_line_unwind_data): Before
temporarily selecting a window on another frame, separately save
the point of that window's buffer too.
(unwind_format_mode_line): After undoing the temporary
selection of a window on another frame, separately restore the
buffer point of that window.  This is needed since the
operation that deselects that window will have stored back the
point of that window into its buffer's point which is wrong
since that window was never "officially" selected (Bug#32777).
2018-12-29 10:51:35 +01:00
Alan Third
a731c563a1 Fix NS fringe bitmap drawing bug (bug#33864)
* src/nsterm.m (ns_draw_fringe_bitmap): Check the rectangle to clear
correctly.
2018-12-28 21:38:11 +00:00
Eli Zaretskii
0c524597b3 Fix commentary in dispnew.c
* src/dispnew.c (buffer_posn_from_coords): Fix inaccuracies in
the commentary.
2018-12-28 16:28:51 +02:00
Paul Eggert
c9fdd1b496 Improve accept-process-process doc
* doc/lispref/processes.texi (Accepting Output):
* src/process.c (Faccept_process_output):
Document that (accept-process-output P) can return non-nil
even after P has exited, and that it can return nil even if P
is still running (Bug#33839).
2018-12-27 12:53:54 -08:00
Eli Zaretskii
a8576aba8f Avoid assertion violation in directory-files
* src/dired.c (directory_files_internal): Make sure MATCH is
either nil or a string.  (Bug#33889)
2018-12-27 18:52:30 +02:00
Michael Albinus
3ea89acac2 Handle `make-process' in Tramp and ange-ftp
* doc/lispref/processes.texi (Asynchronous Processes):
Explain, that not all file name handlers support `make-process'.

* lisp/net/ange-ftp.el:
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
* lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
* lisp/net/tramp.el (tramp-file-name-for-operation): Add `make-process'.

* lisp/vc/ediff-util.el:
* src/process.c:
* test/src/process-tests.el: Use "file name handler" consequently.
2018-12-23 09:48:05 +01:00
Philipp Stephani
039be4e025 Add file name handler support for 'make-process' (Bug#28691)
* src/process.c (Fmake_process): Add new keyword argument
':file-handler'.
(syms_of_process) <make-process, :file-handler>: Define new symbols.

* lisp/files.el (file-name-non-special): Add support for
'make-process'.

* test/src/process-tests.el (make-process/file-handler/found)
(make-process/file-handler/not-found)
(make-process/file-handler/disable): New unit tests.
(process-tests--file-handler): New helper function.

* test/lisp/files-tests.el
(files-tests-file-name-non-special-make-process): New unit test.

* doc/lispref/files.texi (Magic File Names): Document that
'make-process' can invoke file name handlers.

* doc/lispref/processes.texi (Asynchronous Processes): Document
':file-handlers' argument to 'make-process'.

* etc/NEWS (Lisp Changes in Emacs 27.1): Mention new
:file-handler argument for 'make-process'.
2018-12-22 22:10:48 +01:00
Charles A. Roelli
24ddea074a Improve process doc. with respect to handling of large input (Bug#33191)
* src/process.c (Fprocess_send_region, Fprocess_send_string):
Document that process input longer than the process input
buffer may be split into bunches.  Remove an outdated
reference to a 500 character split boundary.
* doc/lispref/processes.texi (Asynchronous Processes): Remove
mention of "stray character injections" in PTY processes.  See
also the comment about ICANON in src/sysdep.c, function
child_setup_tty.
2018-12-22 17:14:36 +01:00
Michael Albinus
88b41c40d0 Use "file name handler" consequently
* doc/lispref/files.texi:
* doc/lispref/processes.texi:
* doc/misc/ediff.texi:
* lisp/simple.el:
* lisp/vc/ediff-ptch.el:
* src/buffer.c:
* src/dired.c:
* src/fileio.c:
* src/image.c:
* src/insdel.c:
* src/w32fns.c: Use "file name handler" consequently.
2018-12-22 13:57:54 +01:00
Paul Eggert
5bd6074415 Minor fixes/simplifications to time functions
* doc/lispintro/emacs-lisp-intro.texi (Files List): Simplify.
* doc/lispref/os.texi (Time of Day): Mention format-time-string
as an alternative to current-time-string.
* lisp/arc-mode.el (archive-unixdate, archive-unixtime):
Port better to future versions of Emacs where (COUNT . HZ)
will take precedence to (HI . LO).
* lisp/arc-mode.el (archive-unixtime):
* lisp/calendar/todo-mode.el (todo-insert-item--basic)
(todo-item-done, todo-read-time):
Prefer format-time-string to substringing current-time-string.
* lisp/calc/calc-forms.el (calc-time, calcFunc-now):
Prefer decode-time to parsing the output of current-time-string.
* lisp/emacs-lisp/cl-extra.el (cl--random-time):
Prefer encode-time to hashing the output of current-time-string.
* lisp/gnus/gnus-score.el (gnus-score-headers)
(gnus-score-adaptive):
Avoid stringifying and then reparsing timestamp.
* src/timefns.c (Fencode_time): Omit redundant assignment.
2018-12-19 13:01:42 -08:00
Nicholas Drozd
5d6258518e * src/editfns.c (Finsert_char): Skip unnecessary fixnum check. 2018-12-19 08:56:31 -08:00
Chris Feng
305aca0a0a Backport: Handle unread-command-events consistently (bug#23980)
* src/keyboard.c (read_char): Events put into `unread-command-events'
with the form (t . EVENT) should always have the t stripped when read
out.
* test/src/keyboard-tests.el: New tests for `unread-command-events'.

(cherry picked from commit 1f3f4b1296)
2018-12-19 18:06:37 +02:00
Paul Eggert
cdaaaf2e1b Support (ash INTEGER BIGNUM)
* src/data.c (emacs_mpz_mul_2exp): 2nd arg is now a
nonnegative EMACS_INT not mp_bitcnt_t, to simplify checking.
(Fash): Support COUNT values that are bignums or that
exceed mp_bitcnt_t range.
* test/src/data-tests.el (data-tests-ash-lsh): Test this.
2018-12-18 12:23:02 -08:00
Paul Eggert
4d77c4ac3b Assume ‘emacs’ is defined in Emacs-only code
* src/charset.c, src/coding.c, src/coding.h, src/gmalloc.c:
* src/ralloc.c, src/regex-emacs.c: Simplify slightly by
assuming that ‘emacs’ is defined.  These modules have long
been specific to Emacs, and are not used elsewhere.
2018-12-17 09:31:53 -08:00
Paul Eggert
e8bb0420a0 More porting to GCC 8 of --enable-gcc-warnings
Backport from master.
I ran into this when building Emacs 26 with GCC 8 on Fedora 29 x86.
* lwlib/lwlib-Xaw.h (xaw_update_one_value, xaw_popup_menu):
* lwlib/lwlib-Xlw.h (xlw_update_one_value, xlw_pop_instance):
* lwlib/lwlib.h (lw_allow_resizing, lw_set_main_areas) [!USE_MOTIF]:
No longer const.
* src/emacs-module.c: Ignore -Wcast-function-type.
2018-12-17 08:16:17 -08:00
Glenn Morris
3edddba62b ; * src/macuvs.h: Regenerate with new header. 2018-12-15 15:24:31 -08:00
Glenn Morris
2e2fb82e5f Merge from origin/emacs-26
fa953b5 (origin/emacs-26) Fix an epg test for recent GnuPG versions (...
3015636 Document font structure layout constraints
f14d574 Document font structure layout constraints
f519aa1 Fix display of line numbers in empty lines beyond EOB
24b5026 Fix redisplay when a window's scroll bar or fringes are changed
5d1b158 Tiny markup fix in Elisp manual
2018-12-15 15:19:25 -08:00
Robert Pluim
3015636471 Document font structure layout constraints
This has to be the same as in src/ftcrfont.c and src/ftfont.c

* src/xftfont.c (struct xftfont_info): Document layout constraints.
2018-12-14 16:07:47 +01:00
Robert Pluim
f14d5742db Document font structure layout constraints
The layout of the initial members of ftcrfont_info must match
ftfont_info

* src/ftcrfont.c (struct ftcrfont_info): Likewise.

* src/ftfont.c (struct ftfont_info): Document layout constraints.
2018-12-14 15:05:20 +01:00
Eli Zaretskii
f519aa10b4 Fix display of line numbers in empty lines beyond EOB
* src/xdisp.c (maybe_produce_line_number): When the current
line is at EOB, use the 'line-number-current-line' face only
on that single line, but not on the rest of empty lines beyond
EOB.  (Bug#33732)
2018-12-14 10:43:37 +02:00
Paul Eggert
d08b75abe0 Fix stray CHECK_FIXNUM_COERCE_MARKER
* src/xdisp.c (Fbidi_resolved_levels): Don’t allow a marker arg;
markers are character positions not vertical positions.
2018-12-13 13:04:26 -08:00
Paul Eggert
8a247f6059 Simplify validate_interval_range and callers
* src/textprop.c (validate_interval_range):
Remove useless code.  Fix comment to match current behavior.
(set_text_properties, copy_text_properties): Simplify, as
validate_interval_range has not incremented START or END for
quite some time.
(copy_text_properties): Assume C99.  Fix an unlikely
integer overflow bug if WIDE_EMACS_INT.
2018-12-12 09:55:38 -08:00
Paul Eggert
23e9e8abaa set_text_properties_1 can assume START <= END
* src/textprop.c (set_text_properties_1):
Do not swap START and END.  All callers do that already,
and the test for swapping here is redundant.
2018-12-12 09:55:38 -08:00
Eli Zaretskii
6e76e11c42 Fix regression in expand-file-name with drive-relative HOME
* src/fileio.c (get_homedir) [DOS_NT]: Expand drive-relative
$HOME to begin with "X:/".

* test/src/fileio-tests.el (fileio-tests--relative-HOME): Add
testing of drive-relative value of $HOME on MS-Windows and
MS-DOS.
2018-12-12 18:27:05 +02:00
Eli Zaretskii
24b5026fb6 Fix redisplay when a window's scroll bar or fringes are changed
* src/window.c (set_window_fringes, set_window_scroll_bars):
Set windows_or_buffers_changed flag to cause immediate
thorough redisplay of a window when scroll bars or fringes are
changed.  (Bug#33694)
2018-12-11 12:32:11 +02:00
Paul Eggert
c8431a06e4 Fix bug when hashing reversed buffer regions
* src/fns.c (extract_data_from_object): When checking
file-coding-system-alist, calculate the coding system
correctly even if START and END are out of order.
Use bool for booleans.
2018-12-10 13:41:22 -08:00
Glenn Morris
3d353ce585 Merge from origin/emacs-26
908af9d Indexing followup to recent changes
505ac9a Improve documentation of cursor-sensor.el (bug#33664)
d817d2c * doc/lispref/commands.texi (Adjusting Point): Bug#33662
18442da Tramp multi-hop methods must be inline
1e3e24d ; * src/xterm.c (x_update_begin): Fix whitespace.
1d743d2 Fix scaling problem in Cairo builds
2b9e993 ; * doc/lispref/text.texi (Special Properties): Fix wording. ...
e568202 * lisp/simple.el (next-line-or-history-element): Use current-...
c7897c2 A few further fixes of window internals description

# Conflicts:
#	doc/misc/tramp.texi
2018-12-10 09:43:05 -08:00
Ari Roponen
0220391c00 Fix cairo scrolling for side-by-side windows
Backport: Fixes Bug#33442.

* src/xterm.c (x_scroll_run) [USE_CAIRO]: Fix scrolling for
side-by-side split windows.  (Bug#31288)

(cherry picked from commit 6e362a32bc)
2018-12-10 14:21:54 +01:00
Paul Eggert
48d7720993 Remove CHECK_FIXNUM_CAR etc.
* src/coding.c (CHECK_FIXNAT_CAR, CHECK_FIXNAT_CDR):
* src/lisp.h (CHECK_FIXNUM_CAR, CHECK_FIXNUM_CDR):
Remove.  All uses removed.  These seem to have been based on
the assumption that the argument cons needs to be modified,
an assumption that is incorrect for fixnums.
(Fdefine_coding_system_internal): Use CHECK_RANGED_INTEGER
instead of a special diagnostic for graphic register numbers.
2018-12-09 17:11:37 -08: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
1e3e24d957 ; * src/xterm.c (x_update_begin): Fix whitespace. 2018-12-08 11:50:58 +02:00
Ari Roponen
1d743d2461 Fix scaling problem in Cairo builds
* src/xterm.c (x_begin_cr_clip) [USE_GTK]:
(x_update_begin) [USE_CAIRO && USE_GTK]: Support scaling.
(Bug#33442)
2018-12-08 11:50:00 +02: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