* src/xfaces.c (Finternal_set_lisp_face_attribute): Check the
FRAME argument before using it. This avoids gratuitous aborts in
Emacs built with --enable-checking when the luser was unlucky
enough to get the argument list in wrong order.
* src/xftfont.c (syms_of_xftfont) <xft-font-ascent-descent-override>:
New variable.
(xftfont_open): Use it to work around problems with rendering some
fonts. (Bug#23360)
Problem reported by Matthias Clasen (Bug#23144).
This was fixed in a different way in master.
Do not merge to master.
* src/xterm.c (handle_one_xevent) [GTK_CHECK_VERSION (3, 20, 3)]:
Do not call xg_frame_resized in the MapNotify case.
* doc/lispref/processes.texi (Process Buffers): Document
'set-process-window-size' and
'window-adjust-process-window-size-function'.
* etc/NEWS: Mention the new functionality and variable.
* src/process.c (Fset_process_window_size): Improve the doc string.
* doc/emacs/text.texi, doc/lispintro/emacs-lisp-intro.texi:
* doc/lispref/control.texi, doc/lispref/display.texi:
* doc/lispref/help.texi, doc/lispref/strings.texi, lisp/subr.el:
* src/callint.c, src/doprnt.c, src/editfns.c:
Document quoting a bit more systematically.
Problem reported by Alan Mackenzie (Bug#23425).
* src/fns.c (Frequire): Mention `load-path' and fill the doc
string (bug#18829).
* src/lread.c (syms_of_lread): Mention that `require' uses
`load-path'.
(cherry picked from commit 3eca9a0381)
* src/minibuf.c (syms_of_minibuf): Mention
minibuffer-depth-indicator-mode in the doc string to
enable-recursive-minibuffers (bug#14147).
(cherry picked from commit 23ba488a5e)
* src/fns.c (sort_vector_copy): Use a different way to attempt to
work around GCC 3.0-and-earlier incompatibility with C99, one that
does not have problems with modern non-GCC compilers.
* config.bat:
* msdos/sedlisp.inp:
* msdos/sedlibmk.inp:
* msdos/sedleim.inp:
* msdos/sedadmin.inp:
* msdos/sed6.inp:
* msdos/sed3v2.inp:
* msdos/sed2v2.inp:
* msdos/sed1v2.inp: Adapt to Emacs 25.
* src/process.c (remove_slash_colon): Move out of "#ifdef
subprocesses" block, as it its called unconditionally. Move
ADD_SUBFEATURE calls into "#ifdef subprocesses" block, as they
reference variables only defined in that block.
* src/msdos.h: Provide prototypes for IT_set_frame_parameters,
faccessat, msdos_fatal_signal, syms_of_msdos, pthread_sigmask,
dos_keysns, dos_keyread, run_msdos_command, and
syms_of_win16select, to avoid compiler warnings.
* src/msdos.c (SYS_ENVIRON): Define to either '_environ' or
'environ', depending on the DJGPP version.
Remove declarations of externally-visible Lisp objects, like
Qbackground_color and Qreverse.
(run_msdos_command): First argument is not signed, not unsigned.
Use SYS_ENVIRON.
(sys_select): Use 'timespec_cmp' instead of 'timespec_sign', as
the latter doesn't work when 'time_t' is an unsigned data type.
This caused idle timers to behave incorrectly: they only fired
after a keyboard input event.
* src/frame.c (adjust_frame_size) [MSDOS]: Account for
FRAME_TOP_MARGIN that isn't counted in the frame's number of
lines, but dos_set_window_size needs it to be added.
* src/lread.c (INFINITY, NAN) [DJGPP < 2.05]: Provide definitions.
* src/fns.c (sort_vector_copy) [__GNUC__ < 4]: Provide a prototype
that works around compilation errors with older GCC versions.
* src/w16select.c: Don't declare QCLIPBOARD and QPRIMARY as Lisp
Objects.
* src/filelock.c [MSDOS]: Ifdef away most of the code. Provide
no-op implementations for 'lock_file' and 'unlock_file'.
(Ffile_locked_p) [MSDOS]: Always return nil. This avoids multiple
ifdefs in all users of filelock.c functionality.
* src/conf_post.h (EOVERFLOW, SIZE_MAX) [DJGPP < 2.04]: Define.
* src/emacs.c [MSDOS]: Include dosfns.h, to avoid compiler
warnings.
* src/dosfns.h: Provide prototypes for dos_cleanup,
syms_of_dosfns, and init_dosfns.
* src/deps.mk (atimer.o): Depend on msdos.h.
(emacs.o): Depend on dosfns.h.
* src/atimer.c [MSDOS]: Include msdos.h, to avoid compiler
warnings.
* lisp/window.el (window--adjust-process-windows): Skip the body
if 'process-list' is not available. This avoids failure to start
up on MS-DOS.
* lisp/vc/diff.el (diff-no-select): Test 'make-process', not
'start-process', as the latter is now available on all platforms.
* lisp/textmodes/ispell.el (ispell-async-processp): Replace
'start-process' with 'make-process' in a comment.
* lisp/term/internal.el (IT-unicode-translations): Modify and add
a few translations to display Info files with Unicode markup. Fix
an ancient off-by-one mismatch error with Unicode codepoints.
* lisp/progmodes/compile.el (compilation-start): Test
'make-process', not 'start-process', as the latter is now
available on all platforms.
* lisp/man.el (Man-build-man-command, Man-getpage-in-background):
Test 'make-process', not 'start-process', as the latter is now
available on all platforms.
* lisp/international/mule-cmds.el (set-coding-system-map): Test
'make-process', not 'start-process', as the latter is now
available on all platforms.
* lisp/eshell/esh-cmd.el (eshell-do-pipelines-synchronously): Doc
fix.
(eshell-execute-pipeline): Test 'make-process', not
'start-process', as the latter is now available on all platforms.
Problem reported by Thomas Klausner (Bug#23371).
* configure.ac (PAXCTL_dumped, PAXCTL_notdumped): New vars.
Set them to setfattr and/or paxctl commands appropriate for
GNU/Linux and/or NetBSD; the latter prefers paxctl +a. Search
for paxctl only if setfattr is not found.
* src/Makefile.in (PAXCTL_dumped, PAXCTL_notdumped):
New vars, replacing PAXCTL_if_present and SETFATTR_if_present.
All uses changed.
* src/xterm.c (x_set_window_size):
* src/w32term.c (x_set_window_size): Restore
do_pending_window_change calls after their stupid removal on
2015-08-31.
* src/w32fns.c (deliver_wm_chars): If the reported character is
ASCII, AND Meta modifier is a candidate, behave as if Meta is
present, i.e. fall back to the legacy code. (Bug#23251)
* src/w32heap.c (mmap_realloc): Only attempt extending a region if
the following region has the same allocation base. Also, use the
original allocation base and enlarged size to commit reserved
memory, to ensure that the allocation base stays at its original
value. This fixes several hard-to-debug problems whereby part of
buffer text was overwritten with binary nulls, because
mmap_realloc copied only part of buffer text when extending it.
See
http://lists.gnu.org/archive/html/emacs-devel/2016-04/msg00325.html
and http://debbugs.gnu.org/cgi/bugreport.cgi?bug=23223#55 for two
examples of the related problems.
Problem reported by Clément Pit--Claudel (Bug#23254).
* src/doc.c: Include intervals.h.
(Fsubstitute_command_keys): If the only substitutions are for
quotes, copy the source string’s text properties too, since no
substring lengths have changed.
* doc/lispref/os.texi (Time Zone Rules):
New section, mostly with material moved here from other sections.
* doc/emacs/cmdargs.texi (General Variables):
* doc/lispref/os.texi (Time Conversion, Time Parsing):
Xref new section.
* etc/NEWS, etc/PROBLEMS:
* lisp/org/org.el (org-timestamp-format):
* src/editfns.c (Fformat_time_string, Fdecode_time)
(Fencode_time, Fcurrent_time_string, Fcurrent_time_zone)
(Fset_time_zone_rule):
When documenting time zone rule strings, mention the TZ
environment variable in preference to mentioning the
sort-of-internal function set-time-zone-rule.
* src/xwidget.c (x_draw_xwidget_glyph_string): Use window_box
instead of calculating the clipping borders manually. Suggested
by YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>.
The arguments BEG and END were unused, and are now removed.
* display.texi (Xwidgets): Document the change
* xwidget.el (make-xwidget, xwidget-insert)
(xwidget-webkit-new-session): Reflect changed arguments
* xwidget.c (Fmake_xwidget, syms_of_xwidget): Reflect changed arguments
* src/xdisp.c (append_stretch_glyph, produce_xwidget_glyph)
(produce_image_glyph): Limit the pixel width of the produced glyph
to SHRT_MAX. (Bug#23178)
(append_composite_glyph, append_glyph, append_glyphless_glyph):
Add assertions to verify that the pixel width of the glyph will
never overflow a 'short'.
* src/term.c (append_composite_glyph): Add assertion to verify
that the pixel width of the glyph will never overflow a 'short'.
* src/xdisp.c (redisplay_window): Bind inhibit-redisplay non-nil
around the call to x_consider_frame_title, to prevent
resize_mini_window from undoing echo-area display. (Bug#23124)
* src/keyboard.c (requeued_events_pending_p, read_char)
(Finput_pending_p): Use CONSP instead of !NILP to see if there are
unread command events to be processed. (Bug#22976)
* src/xdisp.c (syms_of_xdisp) <truncate-partial-width-windows>:
Clarify in the doc string how the width of partial-width windows
is computed for the purposes of truncation decision. (Bug#4338)
* doc/emacs/windows.texi (Split Window): Clarify how the width of
windows is calculated for the purposes of truncation decision.
* doc/emacs/display.texi (Line Truncation): Remove a redundant
index entry.
* src/frame.c (DEFAULT_ROWS): Enlarge to 36, so that the initial
window displayed by "emacs -q" has enough space to show the whole
text even if it includes 2 lines talking about recovering crashes
sessions. (Bug#23074)
* lisp/startup.el (use-fancy-splash-screens-p): Fix off-by-one
error when computing the window-height from frame-height.
* etc/NEWS: Mention the change.
Problem reported by Mosè Giordano (Bug#18997).
* src/gtkutil.c (xg_get_pixbuf_from_pixmap): Remove.
(xg_get_pixbuf_from_pix_and_mask): Do not use
xg_get_pixbuf_from_pixmap, as it is poorly documented. Instead,
invoke XGetPixel directly. This is slow but speed is not
important here. Also, fail for unusual situations (not TrueColor,
or images that are not 8 bits per sample) instead of displaying
junk or crashing.
* src/alloc.c (make_save_ptr_ptr): Remove the !(defined
USE_X_TOOLKIT || defined USE_GTK) conditional. Reported by
Philipp Stephani <phst@google.com>. (Bug#23101)
* src/w32font.c (w32font_list_internal): Allow 'ascii-0' charset,
in addition to 'iso10646-1', 'unicode-bmp', and 'unicode-sip'.
This avoids rejecting many font families whose members are shown
by 'font-family-list', in particular 'courier' requested by
info.el. Without this change, many values of ':family' attribute
of a face have no effect on MS-Windows, because they are rejected
due to bogus mismatch of the charset.