aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog
diff options
context:
space:
mode:
authorJoakim Verona2012-05-30 14:08:12 +0200
committerJoakim Verona2012-05-30 14:08:12 +0200
commit70700d8c47a35b19e29607ac5f0ed322bdd78249 (patch)
tree4fa00d3fac00025354f0b6e23dcda1b58689a094 /src/ChangeLog
parent44fce8ffe7198991c41c985ff4e67ec7d407907e (diff)
parent72cb32cf2f0938dd7dc733eed77b1ed1e497b053 (diff)
downloademacs-70700d8c47a35b19e29607ac5f0ed322bdd78249.tar.gz
emacs-70700d8c47a35b19e29607ac5f0ed322bdd78249.zip
upstream
Diffstat (limited to 'src/ChangeLog')
-rw-r--r--src/ChangeLog965
1 files changed, 963 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 8697e70d51d..fabbcbef40d 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,964 @@
12012-05-30 Paul Eggert <eggert@cs.ucla.edu>
2
3 * alloc.c, lisp.h (make_pure_vector): Now static.
4
52012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
6
7 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
8 Move to byte-run.el.
9 (Fautoload): Do the hash-doc more carefully.
10 * data.c (Fdefalias): Purify definition, except for keymaps.
11 (Qdefun): Move from eval.c.
12 * lisp.h (Qdefun): Remove.
13 * lread.c (read1): Tiny simplification.
14
152012-05-29 Troels Nielsen <bn.troels@gmail.com>
16
17 Do not create empty overlays with the evaporate property (Bug#9642).
18 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
19 Bug#9642, but explicitly check that the buffer the overlay would
20 be moved to is live and rearrange lines to make sure that errors
21 will not put the overlay in an inconsistent state.
22 (Fdelete_overlay): Cosmetics.
23
242012-05-28 Eli Zaretskii <eliz@gnu.org>
25
26 * w32term.c (my_bring_window_to_top): New function.
27 (x_raise_frame): Use handle returned by DeferWindowPos, which
28 could be different from the original one.
29 Call my_bring_window_to_top instead of my_set_foreground_window.
30 (Bug#11513)
31
32 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
33 by calling BringWindowToTop.
34
35 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
36 (WM_EMACS_END): Increase by one.
37
382012-05-28 Paul Eggert <eggert@cs.ucla.edu>
39
40 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
41 This avoids undefined behavior that might cause the eassert
42 to not catch an out-of-range value.
43
442012-05-28 Juanma Barranquero <lekktu@gmail.com>
45
46 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
47 Update dependencies.
48
492012-05-27 Eli Zaretskii <eliz@gnu.org>
50
51 * bidi.c (bidi_mirror_char): Fix last change.
52
532012-05-27 Andreas Schwab <schwab@linux-m68k.org>
54
55 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
56 when referring to sectname field in printf format.
57
582012-05-27 Paul Eggert <eggert@cs.ucla.edu>
59
60 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
61 Only r_alloc_inhibit_buffer_relocation needed to be added;
62 the others were already declared.
63
64 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
65 before checking whether it's out of range. Put the check inside
66 eassert. See
67 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
68
692012-05-27 Ken Brown <kbrown@cornell.edu>
70
71 * callproc.c (Fcall_process): Restore a line that was accidentally
72 commented out in the 2011-02-13 change (bug#11547).
73
742012-05-27 Eli Zaretskii <eliz@gnu.org>
75
76 * lisp.h [REL_ALLOC]: Add prototypes for external functions
77 defined on ralloc.c.
78
79 * buffer.c [REL_ALLOC]: Remove prototypes of
80 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
81 they are now on lisp.h.
82
83 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
84
85 * search.c (search_buffer): Use it to inhibit relocation of buffer
86 text while re_search_2 is doing its job, because re_search_2 is
87 passed C pointers to buffer text. (Bug#11519)
88
89 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
90 Update value to 24.
91
92 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
93 state after an additional call to move_it_in_display_line_to, keep
94 the values of it->max_ascent and it->max_descent found for the
95 entire line.
96 (pos_visible_p): Revert the comparison against bottom_y to what it
97 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
98 (Bug#11464)
99
1002012-05-26 Paul Eggert <eggert@cs.ucla.edu>
101
102 Fix coding-related core dumps with gcc -ftrapv.
103 The code was computing A - B, where A and B are pointers, and B is
104 random garbage. This can lead to core dumps on platforms that
105 have special pointer registers, and it also leads to core dumps on
106 x86-64 when compiled with gcc -ftrapv. The fix is to compute
107 A - B only when B is initialized properly.
108 * coding.c (coding_set_source, coding_set_destination): Return void.
109 (coding_change_source, coding_change_destinations): New functions,
110 with the old behaviors of coding_set_source and coding_set_destination.
111 All callers that need an offset changed to use these new functions.
112
1132012-05-26 Glenn Morris <rgm@gnu.org>
114
115 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
116
1172012-05-26 Eli Zaretskii <eliz@gnu.org>
118
119 Extend mouse support on W32 text-mode console.
120 * xdisp.c (draw_row_with_mouse_face):
121 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
122
123 * w32console.c: Include window.h.
124 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
125 New functions.
126 (initialize_w32_display): Initialize mouse-highlight data.
127
128 * w32inevt.c: Include termchar.h and window.h.
129 (do_mouse_event): Support mouse-autoselect-window. When the mouse
130 moves, call note_mouse_highlight. If help_echo changed, call
131 gen_help_event to produce help-echo message in the echo area.
132 Call clear_mouse_face if mouse_face_hidden is set in the mouse
133 highlight info.
134
1352012-05-26 Paul Eggert <eggert@cs.ucla.edu>
136
137 * lread.c (read1): Simplify slightly to avoid an overflow warning
138 with GCC 4.7.0 on x86-64.
139
1402012-05-26 Eli Zaretskii <eliz@gnu.org>
141
142 * bidi.c (bidi_mirror_char): Revert last change: an int is
143 definitely wide enough here.
144
1452012-05-25 Paul Eggert <eggert@cs.ucla.edu>
146
147 Fix integer width and related bugs (Bug#9874).
148 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
149 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
150 (string_bytes, check_sblock, allocate_string_data):
151 (compact_small_strings, Fmake_bool_vector, make_string)
152 (make_unibyte_string, make_multibyte_string)
153 (make_string_from_bytes, make_specified_string)
154 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
155 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
156 (mark_vectorlike):
157 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
158 (allocate_pseudovector):
159 Use int, not EMACS_INT, where int is wide enough.
160 (inhibit_garbage_collection, Fgarbage_collect):
161 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
162 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
163 int might not be wide enough.
164 (bidi_cache_search, bidi_cache_find, bidi_init_it)
165 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
166 (bidi_at_paragraph_end, bidi_find_paragraph_start)
167 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
168 (bidi_level_of_next_char, bidi_move_to_visually_next):
169 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
170 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
171 (Fkill_buffer, Fset_buffer_major_mode)
172 (advance_to_char_boundary, Fbuffer_swap_text)
173 (Fset_buffer_multibyte, overlays_at, overlays_in)
174 (overlay_touches_p, struct sortvec, record_overlay_string)
175 (overlay_strings, recenter_overlay_lists)
176 (adjust_overlays_for_insert, adjust_overlays_for_delete)
177 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
178 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
179 (Foverlay_recenter, last_overlay_modification_hooks_used)
180 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
181 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
182 (validate_region): Omit unnecessary test for b <= e,
183 since that's guaranteed by the previous test.
184 (adjust_overlays_for_delete): Avoid pos + length overflow.
185 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
186 (report_overlay_modification):
187 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
188 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
189 Omit pointer cast, which isn't needed anyway, and doesn't work
190 after the EMACS_INT -> ptrdiff_t change.
191 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
192 * buffer.h: Adjust decls to match defn changes elsewhere.
193 (struct buffer_text, struct buffer):
194 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
195 Use EMACS_INT, not int, where int might not be wide enough.
196 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
197 not int, to avoid needless 32-bit limit on 64-bit hosts.
198 (exec_byte_code): Use tighter memory-full test, one that checks
199 for alloca overflow. Don't compute the address of the object just
200 before an array, as that's not portable. Use EMACS_INT, not
201 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
202 * callint.c (Fcall_interactively):
203 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
204 * callproc.c (call_process_kill, Fcall_process):
205 Don't assume pid_t fits into an Emacs fixnum.
206 (call_process_cleanup, Fcall_process, child_setup):
207 Don't assume pid_t fits into int.
208 (call_process_cleanup, Fcall_process, delete_temp_file)
209 (Fcall_process_region):
210 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
211 (Fcall_process): Simplify handling of volatile integers.
212 Use int, not EMACS_INT, where int will do.
213 * casefiddle.c (casify_object, casify_region, operate_on_word)
214 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
215 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
216 (casify_object): Avoid integer overflow when overallocating buffer.
217 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
218 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
219 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
220 * category.h (CATEGORYP): Don't assume arg is nonnegative.
221 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
222 integers are now checked earlier. All uses replaced with XINT.
223 (ccl_driver):
224 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
225 For CCL_MapSingle, check that content and value are in int range.
226 (ccl_driver, Fregister_code_conversion_map):
227 Check that Vcode_version_map_vector is a vector.
228 (resolve_symbol_ccl_program): Check that vector header is in range.
229 Always copy the vector, so that we can check its contents reliably
230 now rather than having to recheck each instruction as it's being
231 executed. Check that vector words fit in 'int'.
232 (ccl_get_compiled_code, Fregister_ccl_program)
233 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
234 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
235 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
236 contents are in range.
237 (Fccl_execute_on_string): Check that status is in range.
238 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
239 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
240 Accept and return EMACS_INT, not int, because callers can pass values
241 out of 'int' range.
242 (c_string_width, strwidth, lisp_string_width, chars_in_text)
243 (multibyte_chars_in_text, parse_str_as_multibyte)
244 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
245 (str_as_unibyte, str_to_unibyte, string_count_byte8)
246 (string_escape_byte8, Fget_byte):
247 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
248 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
249 avoid mishandling large integers.
250 * character.h: Adjust decls to match defn changes elsewhere.
251 * charset.c (load_charset_map_from_file, find_charsets_in_text)
252 (Ffind_charset_region):
253 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
254 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
255 (load_charset_map_from_vector, Fdefine_charset_internal):
256 Don't assume fixnum fits in int.
257 (load_charset_map_from_vector, Fmap_charset_chars):
258 Remove now-unnecessary CHECK_NATNUMs.
259 (Fdefine_charset_internal): Check ranges here, more carefully.
260 Don't rely on undefined behavior with signed left shift overflow.
261 Don't assume unsigned int fits into fixnum, or that fixnum fits
262 into unsigned int. Don't require max_code to be a valid fixnum;
263 that's not true for gb10830 4-byte on a 32-bit host. Allow
264 invalid_code to be a cons, for the same reason. Require code_offset
265 to be a character. Avoid int overflow if max_char is close
266 to INT_MAX.
267 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
268 this is intended anyway and avoids some undefined behavior.
269 (load_charset_map): Pass unsigned, not int, as 2nd arg of
270 INDEX_TO_CODE_POINT, as that's what it expects.
271 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
272 * charset.h (DECODE_CHAR): Return int, not unsigned;
273 this is what was intended anyway, and it avoids undefined behavior.
274 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
275 integer-overflow issues.
276 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
277 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
278 where the argument is EMACS_INT, and this behavior is not intended.
279 * chartab.c (Fmake_char_table, Fset_char_table_range)
280 (uniprop_get_decoder, uniprop_get_encoder):
281 Don't assume fixnum fits in int.
282 * cmds.c (move_point): New function, that does the gist of
283 Fforward_char and Fbackward_char, but does so while checking
284 for integer overflow more accurately.
285 (Fforward_char, Fbackward_char): Use it.
286 (Fforward_line, Fend_of_line, internal_self_insert)
287 (internal_self_insert):
288 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
289 Fix a FIXME, by checking for integer overflow when calculating
290 target_clm and actual_clm.
291 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
292 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
293 (ASSURE_DESTINATION, coding_alloc_by_realloc)
294 (coding_alloc_by_making_gap, alloc_destination)
295 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
296 (encode_coding_utf_16, detect_coding_emacs_mule)
297 (decode_coding_emacs_mule, encode_coding_emacs_mule)
298 (detect_coding_iso_2022, decode_coding_iso_2022)
299 (encode_invocation_designation, encode_designation_at_bol)
300 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
301 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
302 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
303 (encode_coding_ccl, encode_coding_raw_text)
304 (detect_coding_charset, decode_coding_charset)
305 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
306 (produce_composition, produce_charset, produce_annotation)
307 (decode_coding, handle_composition_annotation)
308 (handle_charset_annotation, consume_chars, decode_coding_gap)
309 (decode_coding_object, encode_coding_object, detect_coding_system)
310 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
311 (code_convert_region, code_convert_string)
312 (Fdefine_coding_system_internal)
313 (coding_set_source, coding_set_destination):
314 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
315 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
316 (Fdefine_coding_system_internal):
317 Don't assume fixnums fit in int.
318 (decode_coding_gap, decode_coding_object, encode_coding_object)
319 (Fread_coding_system, Fdetect_coding_region)
320 (Funencodable_char_position, Fcheck_coding_systems_region)
321 (get_translation, handle_composition_annotation, consume_chars):
322 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
323 (consume_chars): Rewrite to not calculate an address outside buffer.
324 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
325 Don't access memory outside of the args array.
326 (Fdefine_coding_system_internal): Check for charset-id overflow.
327 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
328 result of ENCODE_CHAR.
329 * coding.h: Adjust decls to match defn changes elsewhere.
330 (struct coding_system):
331 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
332 * composite.c (get_composition_id, find_composition)
333 (run_composition_function, update_compositions)
334 (compose_text, composition_gstring_put_cache)
335 (composition_gstring_p, composition_gstring_width)
336 (fill_gstring_header, fill_gstring_body, autocmp_chars)
337 (composition_compute_stop_pos, composition_reseat_it)
338 (composition_update_it, struct position_record)
339 (find_automatic_composition, composition_adjust_point)
340 (Fcomposition_get_gstring, Ffind_composition_internal):
341 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
342 (update_compositions):
343 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
344 * composite.h: Adjust decls to match defn changes elsewhere.
345 (struct composition):
346 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
347 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
348 Do not attempt to compute the address of the object just before a
349 buffer; this is not portable.
350 (Faref, Faset):
351 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
352 (Faset): Use int, not EMACS_INT, where int is wide enough.
353 (Fstring_to_number): Don't assume fixnums fit in int.
354 (Frem): Don't assume arg is nonnegative.
355 * dbusbind.c (xd_append_arg): Check for integers out of range.
356 (Fdbus_call_method): Don't overflow the timeout int.
357 (extract_signed, extract_unsigned): New functions.
358 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
359 (xd_get_connection_references): Return ptrdiff_t, not int.
360 All uses changed.
361 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
362 (xd_read_message_1):
363 Use int, not unsigned, where the dbus API uses int.
364 (Fdbus_message_internal): Don't overflow mtype.
365 (syms_of_dbusbind): Allocate right-sized buffer for integers.
366 * dired.c (directory_files_internal, file_name_completion, scmp)
367 (file_name_completion_stat):
368 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
369 (file_name_completion): Don't overflow matchcount.
370 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
371 * dispextern.h: Adjust decls to match defn changes elsewhere.
372 (struct text_pos, struct glyph, struct bidi_saved_info)
373 (struct bidi_string_data, struct bidi_it, struct composition_it)
374 (struct it):
375 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
376 (struct display_pos, struct composition_it, struct it):
377 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
378 * dispnew.c (increment_matrix_positions)
379 (increment_row_positions, mode_line_string)
380 (marginal_area_string):
381 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
382 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
383 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
384 (duration_to_sec_usec): New function, to check for overflow better.
385 (Fsleep_for, sit_for): Use it.
386 * doc.c (get_doc_string, store_function_docstring):
387 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
388 (get_doc_string, Fsnarf_documentation):
389 Use int, not EMACS_INT, where int is wide enough.
390 (get_doc_string):
391 Use SAFE_ALLOCA, not alloca.
392 Check for overflow when converting EMACS_INT to off_t.
393 * doprnt.c (doprnt):
394 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
395 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
396 Don't assume uid_t fits into fixnum.
397 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
398 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
399 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
400 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
401 (general_insert_function)
402 (Finsert_char, make_buffer_string, make_buffer_string_both)
403 (update_buffer_properties, Fbuffer_substring)
404 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
405 (Fsubst_char_in_region, check_translation)
406 (Ftranslate_region_internal, save_restriction_restore, Fformat)
407 (transpose_markers, Ftranspose_regions):
408 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
409 (clip_to_bounds): Move to lisp.h as an inline function).
410 (Fconstrain_to_field): Don't assume integers are nonnegative.
411 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
412 (Fsubst_char_in_region, Fsave_restriction):
413 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
414 (Femacs_pid): Don't assume pid_t fits into fixnum.
415 (lo_time): Use int, not EMACS_INT, when int suffices.
416 (lisp_time_argument): Check for usec out of range.
417 (Fencode_time): Don't assume fixnum fits in int.
418 (Fuser_login_name, Fuser_full_name): Signal an error
419 if a uid argument is out of range, rather than relying on
420 undefined behavior.
421 (Fformat_time_string): Remove now-unnecessary check.
422 lisp_time_argument checks for out-of-range usec now.
423 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
424 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
425 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
426 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
427 (init_cmdargs, Fdump_emacs):
428 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
429 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
430 the bottom (typically) 32 bits of the fixnum.
431 * eval.c (specpdl_size, call_debugger):
432 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
433 (when_entered_debugger, Fbacktrace_debug):
434 Don't assume fixnum can fit in int.
435 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
436 the object just before a buffer; this is not portable.
437 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
438 (grow_specpdl, unbind_to):
439 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
440 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
441 (grow_specpdl): Simplify allocation by using xpalloc.
442 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
443 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
444 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
445 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
446 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
447 (a_write, e_write):
448 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
449 (Fcopy_file, non_regular_nbytes, read_non_regular)
450 (Finsert_file_contents):
451 Use int, not EMACS_INT, where int is wide enough.
452 (READ_BUF_SIZE): Verify that it fits in int.
453 (Finsert_file_contents): Check that counts are in proper range,
454 rather than assuming fixnums fit into ptrdiff_t etc.
455 Don't assume fixnums fit into int.
456 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
457 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
458 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
459 (string_char_to_byte, string_byte_to_char)
460 (string_make_multibyte, string_to_multibyte)
461 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
462 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
463 (substring_both, Fdelete, internal_equal, Ffillarray)
464 (Fclear_string, mapcar1)
465 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
466 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
467 (larger_vector, make_hash_table, maybe_resize_hash_table)
468 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
469 (Fmaphash, secure_hash):
470 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
471 (concat): Check for string index and length overflow.
472 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
473 (Frequire):
474 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
475 (larger_vector): New API (vec, incr_min, size_max) replaces old
476 one (vec, new_size, init). This catches size overflow.
477 INIT was removed because it was always Qnil.
478 All callers changed.
479 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
480 the upper bound on a hash table index size.
481 (make_hash_table, maybe_resize_hash_table): Use it.
482 (secure_hash): Computer start_byte and end_byte only after
483 they're known to be in ptrdiff_t range.
484 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
485 (Ffont_get_glyphs, Ffont_at):
486 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
487 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
488 (Flist_fonts, Fopen_font):
489 Don't assume fixnum can fit in int.
490 (check_gstring): Don't assume index can fit in int.
491 (font_match_p): Check that fixnum is a character, not a nonnegative
492 fixnum, since the later code needs to stuff it into an int.
493 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
494 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
495 conversion overflow issues.
496 (Fopen_font): Check for integer out of range.
497 (Ffont_get_glyphs): Don't assume index can fit in int.
498 * font.h: Adjust decls to match defn changes elsewhere.
499 * fontset.c (reorder_font_vector): Redo score calculation to avoid
500 integer overflow.
501 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
502 printmax_t, where ptrdiff_t is wide enough.
503 (Finternal_char_font):
504 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
505 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
506 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
507 (Fset_frame_position, x_set_frame_parameters)
508 (x_set_line_spacing, x_set_border_width)
509 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
510 Check that fixnums are in proper range for system types.
511 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
512 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
513 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
514 Use SAFE_ALLOCA_LISP, not alloca.
515 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
516 intptr_t is wide enough.
517 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
518 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
519 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
520 Check for fixnum out of range.
521 * ftfont.c (ftfont_list): Don't assume index fits in int.
522 Check that fixnums are in proper range for system types.
523 (ftfont_shape_by_flt):
524 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
525 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
526 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
527 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
528 Check that fixnums are in proper range for system types.
529 * gnutls.h: Adjust decls to match defn changes elsewhere.
530 * gtkutil.c (xg_dialog_run):
531 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
532 (update_frame_tool_bar):
533 Check that fixnums are in proper range for system types.
534 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
535 (lookup_image): Check that fixnums are in range for system types.
536 * indent.c (last_known_column, last_known_column_point):
537 (current_column_bol_cache):
538 (skip_invisible, current_column, check_display_width):
539 (check_display_width, scan_for_column, current_column_1)
540 (Findent_to, Fcurrent_indentation, position_indentation)
541 (indented_beyond_p, Fmove_to_column, compute_motion):
542 (Fcompute_motion, Fvertical_motion):
543 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
544 (last_known_column_modified): Use EMACS_INT, not int.
545 (check_display_width):
546 (Fcompute_motion):
547 Check that fixnums and floats are in proper range for system types.
548 (compute_motion): Don't assume index or fixnum fits in int.
549 (compute_motion, Fcompute_motion):
550 Use int, not EMACS_INT, when it is wide enough.
551 (vmotion): Omit local var start_hpos that is always 0; that way
552 we don't need to worry about overflow in expressions involving it.
553 * indent.h: Adjust decls to match defn changes elsewhere.
554 (struct position):
555 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
556 Use int, not EMACS_INT, where int is wide enough.
557 Remove unused members ovstring_chars_done and tab_offset;
558 all uses removed.
559 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
560 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
561 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
562 (make_gap, copy_text, insert, insert_and_inherit)
563 (insert_before_markers, insert_before_markers_and_inherit)
564 (insert_1, count_combining_before, count_combining_after)
565 (insert_1_both, insert_from_string)
566 (insert_from_string_before_markers, insert_from_string_1)
567 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
568 (adjust_after_replace, adjust_after_insert, replace_range)
569 (replace_range_2, del_range, del_range_1, del_range_byte)
570 (del_range_both, del_range_2, modify_region)
571 (prepare_to_modify_buffer, signal_before_change)
572 (signal_after_change, Fcombine_after_change_execute):
573 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
574 * intervals.c (traverse_intervals, rotate_right, rotate_left)
575 (balance_an_interval, split_interval_right, split_interval_left)
576 (find_interval, next_interval, update_interval)
577 (adjust_intervals_for_insertion, delete_node, delete_interval)
578 (interval_deletion_adjustment, adjust_intervals_for_deletion)
579 (static_offset_intervals, offset_intervals)
580 (merge_interval_right, merge_interval_left, make_new_interval)
581 (graft_intervals_into_buffer, temp_set_point_both)
582 (temp_set_point, set_point, adjust_for_invis_intang)
583 (set_point_both, move_if_not_intangible, get_property_and_range)
584 (get_local_map, copy_intervals, copy_intervals_to_string)
585 (compare_string_intervals, set_intervals_multibyte_1):
586 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
587 * intervals.h: Adjust decls to match defn changes elsewhere.
588 (struct interval):
589 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
590 * keyboard.c (this_command_key_count, this_single_command_key_start)
591 (before_command_key_count, before_command_echo_length, echo_now)
592 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
593 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
594 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
595 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
596 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
597 (last_non_minibuf_size, last_point_position, echo_truncate)
598 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
599 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
600 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
601 (stuff_buffered_input):
602 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
603 (last_auto_save, command_loop_1, read_char):
604 Use EMACS_INT, not int, to avoid integer overflow.
605 (record_char): Avoid overflow in total_keys computation.
606 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
607 * keyboard.h: Adjust decls to match defn changes elsewhere.
608 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
609 (Fkey_description, Fdescribe_vector, Flookup_key):
610 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
611 (click_position): New function, to check that positions are in range.
612 (Fcurrent_active_maps):
613 (describe_command):
614 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
615 (Faccessible_keymaps, Fkey_description):
616 (preferred_sequence_p):
617 Don't assume fixnum can fit into int.
618 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
619 Check for integer overflow in size calculations.
620 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
621 avoid mishandling large integers.
622 * lisp.h: Adjust decls to match defn changes elsewhere.
623 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
624 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
625 (struct Lisp_Marker):
626 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
627 (clip_to_bounds): Now an inline function, moved here from editfns.c.
628 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
629 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
630 All callers changed.
631 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
632 Assume the arg has valid form, since it always does.
633 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
634 unsigned integer system type.
635 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
636 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
637 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
638 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
639 (duration_to_sec_usec): New decl.
640 * lread.c (read_from_string_index, read_from_string_index_byte)
641 (read_from_string_limit, readchar, unreadchar, openp)
642 (read_internal_start, read1, oblookup):
643 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
644 (Fload, readevalloop, Feval_buffer, Feval_region):
645 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
646 (openp): Check for out-of-range argument to 'access'.
647 (read1): Use int, not EMACS_INT, where int is wide enough.
648 Don't assume fixnum fits into int.
649 Fix off-by-one error that can read outside a buffer.
650 (read_filtered_event): Use duration_to_sec_usec
651 to do proper overflow checking on durations.
652 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
653 in size calculation.
654 (Fexecute_kbd_macro):
655 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
656 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
657 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
658 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
659 (set_marker_both, set_marker_restricted_both, marker_position)
660 (marker_byte_position, Fbuffer_has_markers_at):
661 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
662 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
663 * menu.c (ensure_menu_items): Rename from grow_menu_items.
664 It now merely ensures that the menu is large enough, without
665 necessarily growing it, as this avoids some integer overflow issues.
666 All callers changed.
667 (keymap_panes, parse_single_submenu, Fx_popup_menu):
668 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
669 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
670 Use SAFE_ALLOCA_LISP, not alloca.
671 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
672 to EMACS_INT. Check that fixnums are in proper range for system types.
673 * minibuf.c (minibuf_prompt_width, string_to_object)
674 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
675 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
676 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
677 (get_minibuffer, read_minibuf_unwind):
678 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
679 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
680 this simplifies overflow checking. All callers changed.
681 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
682 (Ftest_completion):
683 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
684 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
685 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
686 Check that fixnums are in proper range for system types.
687 (Fx_create_frame, Fx_show_tip):
688 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
689 * nsfont.m (ns_findfonts, nsfont_list_family):
690 Don't assume fixnum fits in long.
691 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
692 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
693 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
694 wide enough.
695 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
696 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
697 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
698 (PRINTDECLARE, PRINTPREPARE):
699 (strout, print_string):
700 (print, print_preprocess, print_check_string_charset_prop)
701 (print_object):
702 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
703 (PRINTDECLARE):
704 (temp_output_buffer_setup, Fprin1_to_string, print_object):
705 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
706 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
707 (printchar, strout): Use xpalloc to catch size calculation overflow.
708 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
709 (print_error_message): Use SAFE_ALLOCA, not alloca.
710 (print_object): Use int, not EMACS_INT, where int is wide enough.
711 (print_depth, new_backquote_output, print_number_index):
712 Use ptrdiff_t, not int, where int might not be wide enough.
713 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
714 (Fset_process_window_size, Fformat_network_address)
715 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
716 (sigchld_handler):
717 Check that fixnums are in proper range for system types.
718 (Fsignal_process): Simplify by avoiding a goto.
719 Check for process-ids out of pid_t range rather than relying on
720 undefined behavior.
721 (process_tick, update_tick): Use EMACS_INT, not int.
722 (Fformat_network_address, read_process_output, send_process)
723 (Fprocess_send_region, status_notify):
724 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
725 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
726 (wait_reading_process_output, read_process_output, exec_sentinel):
727 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
728 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
729 (Faccept_process_output): Use duration_to_sec_usec to do proper
730 overflow checking on durations.
731 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
732 Don't assume pid_t fits in int.
733 * process.h (struct Lisp_Process): Members tick and update_tick
734 are now of type EMACS_INT, not int.
735 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
736 configured --with-wide-int.
737 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
738 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
739 * search.c (looking_at_1, string_match_1):
740 (fast_string_match, fast_c_string_match_ignore_case)
741 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
742 (scan_newline, find_before_next_newline, search_command)
743 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
744 (set_search_regs, wordify):
745 (Freplace_match):
746 (Fmatch_data):
747 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
748 (string_match_1, search_buffer, set_search_regs):
749 (Fmatch_data):
750 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
751 (wordify): Check for overflow in size calculation.
752 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
753 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
754 Check that fixnums are in proper range for system types.
755 * sound.c (struct sound_device)
756 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
757 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
758 (Fplay_sound_internal):
759 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
760 * syntax.c (struct lisp_parse_state, find_start_modiff)
761 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
762 (Fparse_partial_sexp):
763 Don't assume fixnums can fit in int.
764 (struct lisp_parse_state, find_start_pos, find_start_value)
765 (find_start_value_byte, find_start_begv)
766 (update_syntax_table, char_quoted, dec_bytepos)
767 (find_defun_start, prev_char_comend_first, back_comment):
768 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
769 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
770 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
771 (Finternal_describe_syntax_value): Check that match_lisp is a
772 character, not an integer, since the code stuffs it into int.
773 (scan_words, scan_sexps_forward):
774 Check that fixnums are in proper range for system types.
775 (Fforward_word):
776 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
777 (scan_sexps_forward):
778 Use CHARACTERP, not INTEGERP, since the value must fit into int.
779 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
780 * syntax.h: Adjust decls to match defn changes elsewhere.
781 (struct gl_state_s):
782 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
783 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
784 MOST_POSITIVE_FIXNUM.
785 * sysdep.c (wait_for_termination_1, wait_for_termination)
786 (interruptible_wait_for_termination, mkdir):
787 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
788 (emacs_read, emacs_write):
789 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
790 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
791 and double all fit in int.
792 * term.c (set_tty_color_mode):
793 Check that fixnums are in proper range for system types.
794 * termhooks.h (struct input_event):
795 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
796 * textprop.c (validate_interval_range, interval_of)
797 (Fadd_text_properties, set_text_properties_1)
798 (Fremove_text_properties, Fremove_list_of_text_properties)
799 (Ftext_property_any, Ftext_property_not_all)
800 (copy_text_properties, text_property_list, extend_property_ranges)
801 (verify_interval_modification):
802 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
803 (Fnext_single_char_property_change)
804 (Fprevious_single_char_property_change):
805 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
806 (copy_text_properties):
807 Check for integer overflow in index calculation.
808 * undo.c (last_boundary_position, record_point, record_insert)
809 (record_delete, record_marker_adjustment, record_change)
810 (record_property_change):
811 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
812 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
813 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
814 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
815 (Fx_hide_tip, Fx_file_dialog):
816 * w32menu.c (set_frame_menubar):
817 Use ptrdiff_t, not int, for consistency with rest of code.
818 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
819 (select_window, Fdelete_other_windows_internal)
820 (window_scroll_pixel_based, window_scroll_line_based)
821 (Frecenter, Fset_window_configuration):
822 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
823 (Fset_window_hscroll, run_window_configuration_change_hook)
824 (set_window_buffer, temp_output_buffer_show, scroll_command)
825 (Fscroll_other_window, Frecenter):
826 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
827 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
828 Don't assume fixnum fits in int.
829 (Fset_window_scroll_bars):
830 Check that fixnums are in proper range for system types.
831 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
832 (string_pos, c_string_pos, number_of_chars, init_iterator)
833 (in_ellipses_for_invisible_text_p, init_from_display_pos)
834 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
835 (compute_display_string_end, handle_face_prop)
836 (face_before_or_after_it_pos, handle_invisible_prop)
837 (handle_display_prop, handle_display_spec, handle_single_display_spec)
838 (display_prop_intangible_p, string_buffer_position_lim)
839 (string_buffer_position, handle_composition_prop, load_overlay_strings)
840 (get_overlay_strings_1, get_overlay_strings)
841 (iterate_out_of_display_property, forward_to_next_line_start)
842 (back_to_previous_visible_line_start, reseat, reseat_to_string)
843 (get_next_display_element, set_iterator_to_next)
844 (get_visually_first_element, compute_stop_pos_backwards)
845 (handle_stop_backwards, next_element_from_buffer)
846 (move_it_in_display_line_to, move_it_in_display_line)
847 (move_it_to, move_it_vertically_backward, move_it_by_lines)
848 (add_to_log, message_dolog, message_log_check_duplicate)
849 (message2, message2_nolog, message3, message3_nolog
850 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
851 (current_message_1, truncate_echo_area, truncate_message_1)
852 (set_message, set_message_1, store_mode_line_noprop)
853 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
854 (text_outside_line_unchanged_p, check_point_in_composition)
855 (reconsider_clip_changes)
856 (redisplay_internal, set_cursor_from_row, try_scrolling)
857 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
858 (redisplay_window, find_last_unchanged_at_beg_row)
859 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
860 (trailing_whitespace_p, find_row_edges, display_line)
861 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
862 (display_mode_element, store_mode_line_string)
863 (pint2str, pint2hrstr, decode_mode_spec)
864 (display_count_lines, display_string, draw_glyphs)
865 (x_produce_glyphs, x_insert_glyphs)
866 (rows_from_pos_range, mouse_face_from_buffer_pos)
867 (fast_find_string_pos, mouse_face_from_string_pos)
868 (note_mode_line_or_margin_highlight, note_mouse_highlight):
869 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
870 (safe_call, init_from_display_pos, handle_fontified_prop)
871 (handle_single_display_spec, load_overlay_strings)
872 (with_echo_area_buffer, setup_echo_area_for_printing)
873 (display_echo_area, echo_area_display)
874 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
875 (update_tool_bar, hscroll_window_tree, redisplay_internal)
876 (redisplay_window, dump_glyph_row, display_mode_line)
877 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
878 (handle_display_spec, display_prop_string_p):
879 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
880 (handle_single_display_spec, build_desired_tool_bar_string)
881 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
882 (get_specified_cursor_type):
883 Check that fixnums are in proper range for system types.
884 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
885 (Flookup_image_map):
886 Don't assume fixnums fit in int.
887 (compare_overlay_entries):
888 Avoid mishandling comparisons due to subtraction overflow.
889 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
890 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
891 (handle_tool_bar_click):
892 Use int, not unsigned, since we prefer signed and the signedness
893 doesn't matter here.
894 (get_next_display_element, next_element_from_display_vector):
895 Use int, not EMACS_INT, when int is wide enough.
896 (start_hourglass): Use duration_to_sec_usec to do proper
897 overflow checking on durations.
898 * xfaces.c (Fbitmap_spec_p):
899 Check that fixnums are in proper range for system types.
900 (compare_fonts_by_sort_order):
901 Avoid mishandling comparisons due to subtraction overflow.
902 (Fx_family_fonts, realize_basic_faces):
903 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
904 (Fx_family_fonts):
905 Don't assume fixnum fits in int.
906 Use SAFE_ALLOCA_LISP, not alloca.
907 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
908 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
909 (face_at_buffer_position, face_for_overlay_string)
910 (face_at_string_position):
911 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
912 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
913 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
914 (Fx_show_tip):
915 Check that fixnums are in proper range for system types.
916 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
917 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
918 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
919 (Fx_change_window_property): Don't assume fixnums fit in int.
920 * xfont.c (xfont_chars_supported):
921 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
922 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
923 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
924 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
925 * xml.c (parse_region):
926 * xrdb.c (magic_file_p):
927 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
928 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
929 (x_get_local_selection, x_reply_selection_request)
930 (x_handle_selection_request, wait_for_property_change):
931 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
932 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
933 short is wide enough.
934 (x_send_client_event): Don't assume fixnum fits in int.
935 * xterm.c (x_x_to_emacs_modifiers):
936 Don't assume EMACS_INT overflows nicely into int.
937 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
938 may come from Lisp.
939 (handle_one_xevent): NATNUMP can eval its arg twice.
940 (x_connection_closed):
941 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
942 * xterm.h: Adjust decls to match defn changes elsewhere.
943 (struct scroll_bar): Use struct vectorlike_header
944 rather than rolling our own approximation.
945 (SCROLL_BAR_VEC_SIZE): Remove; not used.
946
9472012-05-25 Glenn Morris <rgm@gnu.org>
948
949 * lisp.mk (lisp): Update for more files being compiled now.
950
9512012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
952
953 * lread.c: Remove `read_pure' which makes no difference.
954 (read_pure): Remove var.
955 (unreadpure): Remove function.
956 (readevalloop): Don't call read_list with -1 flag.
957 (read1, read_vector): Don't test read_pure any more.
958 (read_list): Simplify.
959
960 * fileio.c, character.h: Minor style tweaks.
961
12012-05-24 Dmitry Antipov <dmantipov@yandex.ru> 9622012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
2 963
3 * window.h (clip_changed): Remove useless declaration. 964 * window.h (clip_changed): Remove useless declaration.
@@ -144,8 +1105,8 @@
144 1105
145 * xdisp.c (handle_single_display_spec): Return 1 for left-margin 1106 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
146 and right-margin display specs even if the spec is invalid or we 1107 and right-margin display specs even if the spec is invalid or we
147 are on a TTY, and thus unable to display on the fringes. That's 1108 are on a TTY, and thus unable to display on the fringes.
148 because the text with the property will not be displayed anyway, 1109 That's because the text with the property will not be displayed anyway,
149 so we need to signal to the caller that this is a "replacing" 1110 so we need to signal to the caller that this is a "replacing"
150 display spec. This fixes display when the spec is invalid or we 1111 display spec. This fixes display when the spec is invalid or we
151 are on a TTY. 1112 are on a TTY.