src/xterm.c (x_draw_composite_glyph_string_foreground):
src/w32term.c (x_draw_composite_glyph_string_foreground):
src/term.c (encode_terminal_code):
src/composite.c (composition_update_it, get_composition_id):
src/xdisp.c (get_next_display_element)
(fill_composite_glyph_string): Add comments about special meaning
of TAB characters in a composition.
Patch by Johan Bockgוrd <bojohan@gnu.org>
src/xdisp.c (try_cursor_movement): Only check for exact match if
cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
(selection_data_to_lisp_data): Assume incoming selection data are
signed integers, not unsigned. This is to be consistent with
outgoing selection data, which was modified to use signed integers
in as part of the fix to Bug#9196 in response to Jan Djärv's comment
in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
expects long, not unsigned long.
src/fileio.c (Finsert_file_contents): If the file cannot be opened,
set its "size" to -1. This will set the modtime_size field of
the corresponding buffer to -1, which is what
verify-visited-file-modtime expects for files that do not exist.
here ...
* lisp.h: ... from here. push_key_description is no longer
defined in keyboard.c, so its declaration should not be in
lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
logically belongs with push_key_description.
* window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
Operate on live windows only.
* window.el (window-deletable-p): Make sure window is live before
invoking window-prev-buffers.
Without this fix, the command to link temacs failed due to an
undefined symbol __builtin_isnan. This is because
/usr/include/iso/math_c99.h #defines isnan(x) to
__builtin_isnan(x), but the bundled gcc, which identifies itself
as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
a __builtin_isnan.
* configure.in (isnan): Remove now-unnecessary check.
* src/floatfns.c (isnan): #undef, and then #define to a clone of
what's in data.c.
(Fisnan): Always define, since it's always available now.
(syms_of_floatfns): Always define isnan at the Lisp level.
(window_scroll_line_based, Frecenter):
Check that an Emacs fixnum is in range before assigning it to 'int'.
(Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
values converted from Emacs fixnums.
(Frecenter): Don't wrap around a line count if it is out of 'int'
range; instead, treat it as an extreme value.
(Fset_window_configuration, compare_window_configurations):
Use ptrdiff_t, not int, for index that might exceed 2 GiB.
(Freplace_match): Use ptrdiff_t, not int, for indexes that can
exceed INT_MAX. Check that EMACS_INT value is in range before
assigning it to the (possibly-narrower) index.
(match_limit): Don't assume that a fixnum can fit in 'int'.
(position_indentation): Now takes ptrdiff_t, not int.
(Fvertical_motion): Don't wrap around LINES values that don't fit
in 'int'. Instead, treat them as extreme values. This is good
enough for windows, which can't have more than INT_MAX lines anyway.
* xml.c (parse_region): Don't call xmlCleanupParser after parsing,
since this reportedly can destroy thread storage.
* emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
The previous code assumed that file offsets (off_t values) fit in
EMACS_INT variables, which is not true on typical 32-bit hosts.
The code messed up by falsely reporting buffer overflow in cases
such as (insert-file-contents "big" nil 1 2) into an empty buffer
when "big" contains more than 2**29 bytes, even though this
inserts just one byte and does not overflow the buffer.
(Finsert_file_contents): Store file offsets as off_t
values, not as EMACS_INT values. Check for overflow when
converting between EMACS_INT and off_t. When checking for
buffer overflow or for overlap, take the offsets into account.
Don't use EMACS_INT for small values where int suffices.
When checking for overlap, fix a typo: ZV was used where
ZV_BYTE was intended.
(Fwrite_region): Don't assume off_t fits into 'long'.
* buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
* font.c (APPEND_SNPRINTF): Remove.
(font_unparse_xlfd):
* xterm.c (x_io_error_quitter):
Use esnprintf, not snprintf. That way, we don't have to worry
about porting to ancient platforms that lack snprintf.
(x_term_init): Use sprintf, not snprintf.