Inline setter functions for hash table members.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
e83064be
DA
12012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
2
3 Inline setter functions for hash table members.
4 * lisp.h (set_hash_key, set_hash_value, set_hash_next)
5 (set_hash_hash, set_hash_index): Rename with _slot suffix.
6 (set_hash_key_and_value, set_hash_index, set_hash_next)
7 (set_hash_hash): New functions.
8 * charset.c, fns.c: Adjust users.
9
4ce60d2e
DA
102012-08-20 Dmitry Antipov <dmantipov@yandex.ru>
11
12 Inline getter and setter functions for per-buffer values.
13 * buffer.h (per_buffer_default, set_per_buffer_default)
14 (per_buffer_value, set_per_buffer_value): New functions.
15 (PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove.
16 * buffer.c, data.c: Adjust users.
17
c06c9690
JB
182012-08-20 Juanma Barranquero <lekktu@gmail.com>
19
20 * makefile.w32-in ($(BLD)/vm-limit.$(O)): Update dependencies.
21
32bd4250
PE
222012-08-19 Paul Eggert <eggert@cs.ucla.edu>
23
bad03192 24 Rely on <config.h> + <unistd.h> to declare 'environ',
b69a6d22
PE
25 as gnulib does this if the system doesn't.
26 * callproc.c, editfns.c, process.c (environ) [!USE_CRT_DLL]:
27 * emacs.c (environ) [DOUG_LEA_MALLOC]:
28 * vm-limit.c (environ) [ORDINARY_LINK]: Remove decl.
29 * vm-limit.c: Include <unistd.h>, for 'environ'.
30
22d7feb2
PE
31 * unexaix.c, unexcoff.c: Include "mem-limits.h".
32 (start_of_data): Remove decl; mem-limits.h provides it.
33
32bd4250
PE
34 * xdisp.c (handle_invisible_prop): Make it a bit faster
35 and avoid a gcc -Wmaybe-uninitialized diagnostic.
36
450809af
CY
372012-08-19 Chong Yidong <cyd@gnu.org>
38
39 * xdisp.c (handle_invisible_prop): Fix ellipses at overlay string
40 ends (Bug#3874).
41
9e677988
AS
422012-08-19 Andreas Schwab <schwab@linux-m68k.org>
43
6b1319ce
AS
44 * .gdbinit: Use call instead of set when calling a function in the
45 inferior.
46
9e677988
AS
47 * data.c (set_internal): Don't use set_blv_found.
48 (Fkill_local_variable): Likewise.
49
d7191076
AA
502012-08-18 Alp Aker <alp.tekin.aker@gmail.com>
51
52 * nsfont.m (ns_ascii_average_width): Ensure the string
53 ascii_printable is initialized with a null-terminated character
54 array. Otherwise, it can contain undesired extra characters.
55
e757f1c6
PE
562012-08-18 Paul Eggert <eggert@cs.ucla.edu>
57
58 port new setting code to Sun C 5.8 2005/10/13
59 * chartab.c, lisp.h (char_table_set, char_table_set_range):
60 Return void, not Lisp_Object. Otherwise, the compiler
61 complains about (A?B:C) where B is void and C is Lisp_Object
62 when compiling CHAR_TABLE_SET, due to the recent change to
63 the API of sub_char_table_set_contents.
64
a999ce26
CY
652012-08-18 Chong Yidong <cyd@gnu.org>
66
67 * xdisp.c (handle_invisible_prop): Obey TEXT_PROP_MEANS_INVISIBLE
68 for the string case (Bug#3874).
69
3f22b86f
PE
702012-08-18 Paul Eggert <eggert@cs.ucla.edu>
71
39eb03f1
PE
72 * buffer.h (BSET): Remove (Bug#12215).
73 Replace all uses with calls to new setter functions.
74 (bset_bidi_paragraph_direction, bset_case_canon_table)
75 (bset_case_eqv_table, bset_directory, bset_display_count)
76 (bset_display_time, bset_downcase_table)
77 (bset_enable_multibyte_characters, bset_filename, bset_keymap)
78 (bset_last_selected_window, bset_local_var_alist)
79 (bset_mark_active, bset_point_before_scroll, bset_read_only)
80 (bset_truncate_lines, bset_undo_list, bset_upcase_table)
81 (bset_width_table):
82 * buffer.c (bset_abbrev_mode, bset_abbrev_table)
83 (bset_auto_fill_function, bset_auto_save_file_format)
84 (bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
85 (bset_bidi_display_reordering, bset_buffer_file_coding_system)
86 (bset_cache_long_line_scans, bset_case_fold_search)
87 (bset_ctl_arrow, bset_cursor_in_non_selected_windows)
88 (bset_cursor_type, bset_display_table, bset_extra_line_spacing)
89 (bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
90 (bset_fringe_indicator_alist, bset_fringes_outside_margins)
91 (bset_header_line_format, bset_indicate_buffer_boundaries)
92 (bset_indicate_empty_lines, bset_invisibility_spec)
93 (bset_left_fringe_width, bset_major_mode, bset_mark)
94 (bset_minor_modes, bset_mode_line_format, bset_mode_name)
95 (bset_name, bset_overwrite_mode, bset_pt_marker)
96 (bset_right_fringe_width, bset_save_length)
97 (bset_scroll_bar_width, bset_scroll_down_aggressively)
98 (bset_scroll_up_aggressively, bset_selective_display)
99 (bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
100 (bset_word_wrap, bset_zv_marker):
101 * category.c (bset_category_table):
102 * syntax.c (bset_syntax_table):
103 New setter functions.
104
6a09a33b
PE
105 * process.h (PSET): Remove (Bug#12215).
106 Replace all uses with calls to new setter functions.
107 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
108 (PROCESS_INLINE): New macro.
109 (pset_childp): New setter function.
110 (pset_gnutls_cred_type) [HAVE_GNUTLS]: New setter function.
111 * process.c (PROCESS_INLINE):
112 Define to EXTERN_INLINE, so that the corresponding functions
113 are compiled into code.
114 (pset_buffer, pset_command, pset_decode_coding_system)
115 (pset_decoding_buf, pset_encode_coding_system)
116 (pset_encoding_buf, pset_filter, pset_log, pset_mark, pset_name)
117 (pset_plist, pset_sentinel, pset_status, pset_tty_name)
118 (pset_type, pset_write_queue): New setter functions.
119
e8c17b81
PE
120 * window.h (WSET): Remove (Bug#12215).
121 Replace all uses with calls to new setter functions.
122 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
123 (WINDOW_INLINE): New macro.
124 (wset_buffer, wset_frame, wset_left_col, wset_next, wset_prev)
125 (wset_redisplay_end_trigger, wset_top_line, wset_total_cols)
126 (wset_total_lines, wset_vertical_scroll_bar)
127 (wset_window_end_pos, wset_window_end_valid)
128 (wset_window_end_vpos): New setter functions.
129 * window.c (WINDOW_INLINE):
130 Define to EXTERN_INLINE, so that the corresponding functions
131 are compiled into code.
132 (wset_combination_limit, wset_dedicated, wset_display_table)
133 (wset_hchild, wset_left_fringe_width, wset_left_margin_cols)
134 (wset_new_normal, wset_new_total, wset_next_buffers)
135 (wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
136 (wset_prev_buffers, wset_right_fringe_width)
137 (wset_right_margin_cols, wset_scroll_bar_width, wset_start)
138 (wset_temslot, wset_vchild, wset_vertical_scroll_bar_type)
139 (wset_window_parameters):
140 * xdisp.c (wset_base_line_number, wset_base_line_pos)
141 (wset_column_number_displayed, wset_region_showing):
142 New setter functions.
143
3f22b86f
PE
144 * termhooks.h (TSET): Remove (Bug#12215).
145 Replace all uses with calls to new setter functions.
146 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
147 (TERMHOOKS_INLINE): New macro.
148 (tset_charset_list, tset_selection_alist): New setter functions.
149 * terminal.c (TERMHOOKS_INLINE):
150 Define to EXTERN_INLINE, so that the corresponding functions
151 are compiled into code.
152 (tset_param_alist): New setter function.
153
742af32f
PE
1542012-08-17 Paul Eggert <eggert@cs.ucla.edu>
155
15dbb4d6
PE
156 * keyboard.h (KSET): Remove (Bug#12215).
157 Replace all uses with calls to new setter functions.
158 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
159 (KEYBOARD_INLINE): New macro.
160 (kset_default_minibuffer_frame, kset_defining_kbd_macro)
161 (kset_input_decode_map, kset_last_command, kset_last_kbd_macro)
162 (kset_prefix_arg, kset_system_key_alist, kset_window_system):
163 New setter functions.
164 * keyboard.c (KEYBOARD_INLINE):
165 Define to EXTERN_INLINE, so that the corresponding functions
166 are compiled into code.
167 (kset_echo_string, kset_kbd_queue)
168 (kset_keyboard_translate_table, kset_last_prefix_arg)
169 (kset_last_repeatable_command, kset_local_function_key_map)
170 (kset_overriding_terminal_local_map, kset_real_last_command)
171 (kset_system_key_syms): New setter functions.
172
f00af5b1
PE
173 * frame.h (FSET): Remove (Bug#12215).
174 Replace all uses with calls to new setter functions.
175 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
176 (FRAME_INLINE): New macro.
177 (fset_buffer_list, fset_buried_buffer_list, fset_condemned_scroll_bars)
178 (fset_current_tool_bar_string, fset_desired_tool_bar_string)
179 (fset_face_alist, fset_focus_frame, fset_icon_name, fset_menu_bar_items)
180 (fset_menu_bar_vector, fset_menu_bar_window, fset_name)
181 (fset_param_alist, fset_root_window, fset_scroll_bars)
182 (fset_selected_window, fset_title, fset_tool_bar_items)
183 (fset_tool_bar_position, fset_tool_bar_window): New functions.
184 * frame.c (FRAME_INLINE):
185 Define to EXTERN_INLINE, so that the corresponding functions
186 are compiled into code.
187 (fset_buffer_predicate, fset_minibuffer_window): New setter functions.
188
0c94c8d6
PE
189 A few more naming-convention fixes for getters and setters.
190 * buffer.c (set_buffer_overlays_before): Move here from buffer.h,
191 and rename from buffer_overlays_set_before.
192 (set_buffer_overlays_after): Move here from buffer.h, and rename
193 from buffer_overlays_set_after.
194 * buffer.h (buffer_intervals): Rename from buffer_get_intervals.
195 All uses changed.
196 (set_buffer_intervals): Rename from buffer_set_intervals.
197 * intervals.c (set_interval_object): Move here from intervals.h,
198 and rename from interval_set_object.
199 (set_interval_left): Move here from intervals.h, and rename from
200 interval_set_left.
201 (set_interval_right): Move here from intervals.h, and rename from
202 interval_set_right.
203 (copy_interval_parent): Move here from intervals.h, and rename from
204 interval_copy_parent.
205 * intervals.h (set_interval_parent): Rename from interval_set_parent.
206 (set_interval_plist): Rename from interval_set_plist.
207 Return void, not Lisp_Object, since no caller uses the result.
208 * lisp.h (string_intervals): Rename from string_get_intervals.
209 (set_string_intervals): Rename from string_set_intervals.
210
34dabdb7
PE
211 * lisp.h (set_char_table_extras): Rename from char_table_set_extras.
212 (set_char_table_contents): Rename from char_table_set_contents.
0b390a9d 213 (set_sub_char_table_contents): Rename from sub_char_table_set_contents.
34dabdb7
PE
214 All uses changed. See the end of
215 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00549.html>.
216
742af32f
PE
217 * lisp.h (CSET): Remove (Bug#12215).
218 (set_char_table_ascii, set_char_table_defalt, set_char_table_parent)
219 (set_char_table_purpose): New functions,
220 replacing CSET. All uses changed. For example, replace
221 "CSET (XCHAR_TABLE (char_table), parent, parent);" with
c24eb18a 222 "set_char_table_parent (char_table, parent);".
742af32f
PE
223 The old version was confusing because it used the same name
224 'parent' for two different things.
225
a04e2c62
DA
2262012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
227
228 Functions to get and set Lisp_Object fields of buffer-local variables.
229 * lisp.h (blv_found, set_blv_found, blv_value, set_blv_value)
230 (set_blv_where, set_blv_defcell, set_blv_valcell): New functions.
231 (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): Remove.
232 * data.c, eval.c, frame.c: Adjust users.
233
383dcbf9
CY
2342012-08-17 Chong Yidong <cyd@gnu.org>
235
236 * xfaces.c (merge_face_vectors): If the target font specfies a
237 font spec, make the font's attributes take precedence over
238 directly-specified attributes.
239 (merge_face_ref): Recognize :font.
240
44386687
DA
2412012-08-17 Dmitry Antipov <dmantipov@yandex.ru>
242
243 Do not use memcpy for copying intervals.
244 * intervals.c (reproduce_interval): New function.
245 (reproduce_tree, reproduce_tree_obj): Use it.
246 (reproduce_tree_obj): Remove prototype.
247
927c7216
PE
2482012-08-17 Paul Eggert <eggert@cs.ucla.edu>
249
250 * lisp.h (duration_to_sec_usec): Remove unused decl.
251
93044f7b
AA
2522012-08-17 Alp Aker <alp.tekin.aker@gmail.com>
253
254 * nsfont.m (ns_ascii_average_width): Send initWithFormat selector
255 to an allocated instance of NSString, not to the class itself.
256
9851e4a5
JB
2572012-08-17 Juanma Barranquero <lekktu@gmail.com>
258
259 * makefile.w32-in (C_CTYPE_H): New macro.
260 (LISP_H, $(BLD)/ccl.$(O), $(BLD)/doc.$(O), $(BLD)/w32console.$(O)):
261 ($(BLD)/fontset.$(O), $(BLD)/frame.$(O), $(BLD)/composite.$(O)):
262 ($(BLD)/sysdep.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
263
620f13b0
PE
2642012-08-16 Paul Eggert <eggert@cs.ucla.edu>
265
266 Use ASCII tests for character types.
267 * category.c, dispnew.c, doprnt.c, editfns.c, syntax.c, term.c:
268 * xfns.c, xterm.c:
269 Don't include <ctype.h>; was not needed.
270 * charset.c, doc.c, fileio.c, font.c, frame.c, gtkutil.c, image.c:
271 * sysdep.c, xfaces.c:
272 Include <c-ctype.h> instead of <ctype.h>.
273 * nsterm.m: Include <c-ctype.h>.
274 * charset.c (read_hex):
275 * doc.c (Fsnarf_documentation):
276 * fileio.c (IS_DRIVE) [WINDOWSNT]:
277 (DRIVE_LETTER) [DOS_NT]:
278 (Ffile_name_directory, Fexpand_file_name)
279 (Fsubstitute_in_file_name):
280 * font.c (font_parse_xlfd, font_parse_fcname):
281 * frame.c (x_set_font_backend):
282 * gtkutil.c (xg_get_font):
283 * image.c (xbm_scan, xpm_scan, pbm_scan_number):
284 * nsimage.m (hexchar):
285 * nsterm.m (ns_xlfd_to_fontname):
286 * sysdep.c (system_process_attributes):
287 * xfaces.c (hash_string_case_insensitive):
288 Use C-locale tests instead of locale-specific tests for character
289 types, since we want the ASCII interpretation here, not the
290 interpretation suitable for whatever happens to be the current locale.
291
52162052
MR
2922012-08-16 Martin Rudalics <rudalics@gmx.at>
293
294 Consistently check windows for validity/liveness
295 (Bug#11984, Bug#12025, Bug#12026).
296 * lisp.h (CHECK_VALID_WINDOW): New macro.
297 * window.c (decode_window): Rename to decode_live_window.
298 (decode_valid_window, Fwindow_valid_p): New functions.
299 (Fwindow_frame, Fframe_root_window, Fwindow_minibuffer_p)
300 (Fframe_first_window, Fframe_selected_window, Fwindow_parent)
301 (Fwindow_top_child, Fwindow_left_child, Fwindow_next_sibling)
302 (Fwindow_prev_sibling, Fwindow_combination_limit)
303 (Fset_window_combination_limit, Fwindow_use_time)
304 (Fwindow_total_height, Fwindow_total_width, Fwindow_new_total)
305 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_left_column)
306 (Fwindow_top_line, Fwindow_body_height, Fwindow_body_width)
307 (Fwindow_hscroll, Fset_window_hscroll)
308 (Fwindow_redisplay_end_trigger)
309 (Fset_window_redisplay_end_trigger, Fwindow_edges)
310 (Fwindow_pixel_edges, Fwindow_absolute_pixel_edges)
311 (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
312 (Fcoordinates_in_window_p, Fwindow_point, Fwindow_start)
313 (Fwindow_end, Fset_window_point, Fset_window_start)
314 (Fpos_visible_in_window_p, Fwindow_line_height)
315 (Fwindow_dedicated_p, Fset_window_dedicated_p)
316 (Fwindow_prev_buffers, Fset_window_prev_buffers)
317 (Fwindow_next_buffers, Fwindow_parameters, Fwindow_parameter)
318 (Fset_window_parameter, Fwindow_display_table)
319 (Fset_window_display_table, Fdelete_other_windows_internal)
320 (Fset_window_buffer, Fset_window_new_total)
321 (Fset_window_new_normal, Fdelete_window_internal)
322 (Fwindow_text_height, Fset_window_margins, Fwindow_margins)
323 (Fset_window_fringes, Fwindow_fringes, Fset_window_scroll_bars)
324 (Fwindow_scroll_bars): Check whether argument window is a valid or
325 live window. Update doc-strings.
326 (syms_of_window): New symbol Qwindow_valid_p.
327 * keyboard.c (Fposn_at_x_y): Check whether argument
328 frame_or_window denotes a valid window.
329
2751c80f
DA
3302012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
331
332 Fix previous char table change.
333 * lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents.
334 * chartab.c (optimize_sub_char_table): Likewise.
335
032a42c8
CY
3362012-08-16 Chong Yidong <cyd@gnu.org>
337
a2d19368
CY
338 * gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228).
339
032a42c8
CY
340 * xfont.c (xfont_open):
341 * xftfont.c (xftfont_open): Set the font's max_width field.
342
343 * nsfont.m (nsfont_open): Similar to the Xft backend, set
344 min_width to space_width and average_width to the average over
345 printable ASCII characters.
346 (ns_char_width): Code cleanup.
347 (ns_ascii_average_width): New utility function.
348
349 * font.h (struct font): Update comments.
350
a098c930
DA
3512012-08-16 Dmitry Antipov <dmantipov@yandex.ru>
352
032a42c8 353 Simple interface to set Lisp_Object fields of character tables.
a098c930
DA
354 * lisp.h (CSET): New macro.
355 (char_table_set_extras, char_table_set_contents)
356 (sub_char_table_set_contents): New function.
357 * casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c:
358 * syntax.c: Adjust users.
359
8be3a09c
SM
3602012-08-16 Stefan Monnier <monnier@iro.umontreal.ca>
361
362 * eval.c (eval_sub): Bind lexical-binding.
363 * lread.c (Qlexical_binding): Make non-static.
364
ac4845a6
JD
3652012-08-15 Jan Djärv <jan.h.d@swipnet.se>
366
ddee6515
JD
367 * nsmenu.m (popupSession): Remove.
368 (pop_down_menu): Remove endModalSession.
369 (timeout_handler:): New method.
370 (runDialogAt:): Get next timeout. Start a NSTimer with that timeout.
371 Call runModalForWindow. Check timer_fired when it returns.
372 If not set, cancel timer and break out of loop.
373 Otherwise loop again, with a new timeout.
374
375 * nsterm.m: Include fcntl.h if present.
376 (fd_entry, t_readfds, inNsSelect): Remove.
377 (select_writefds, select_valid, select_timeout, selfds)
378 (select_mutex, apploopnr): Add.
379 (EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr.
380 Otherwise call kbd_buffer_store_event.
381 (ns_send_appdefined): Remove release of fd_entry.
382 (ns_read_socket): Always send appdefined. Remove inNsSelect check.
383 Increment and decrement apploopnr.
384 (ns_select): If no file descriptors, just do a NSTimer.
385 Otherwise copy read/write masks and start select thread (fd_handler).
386 Start main loop and wait for application defined event.
387 Inform select thread to stop selecting after main loop is exited.
388 (ns_term_init): Create selfds pipe and set non-blocking.
389 Initialize select_mutex. Start the select thread (fd_handler).
390 (fd_handler:): Loop forever, wait for info from the main thread
391 to either start or stop selecting. When select returns, send
392 and appdefined event.
393 (sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set.
394 If not call kbd_buffer_store_event.
395
396 * nsterm.h (EmacsApp): fd_handler takes id argument.
397 (EmacsDialogPanel): Add timer_fired and timeout_handler.
398
ac4845a6
JD
399 * gtkutil.c (xg_mark_data): Use FRAME_X_P.
400
eb424fe3
EZ
4012012-08-15 Eli Zaretskii <eliz@gnu.org>
402
403 * region-cache.c (move_cache_gap): Update gap_len using the actual
404 growth of the boundaries array. Do not change cache_len.
405 (Bug#12196)
406
4e6a86c6
DA
4072012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
408
409 Generalize and cleanup font subsystem checks.
410 * font.h (FONT_DEBUG, font_assert): Remove.
8be3a09c
SM
411 * font.c, fontset.c, w32font.c, xfont.c, xftfont.c:
412 Change font_assert to eassert. Use eassert where appropriate.
4e6a86c6 413
5bf192ca
DA
4142012-08-15 Dmitry Antipov <dmantipov@yandex.ru>
415
416 * gtkutil.c (xg_get_font): Use pango_units_to_double.
417
f2045622
CY
4182012-08-15 Chong Yidong <cyd@gnu.org>
419
8be3a09c
SM
420 * gtkutil.c (xg_get_font): Rename from xg_get_font_name.
421 When using the new font chooser, use gtk_font_chooser_get_font_desc to
422 extract the font descriptor instead of just the font name.
423 In that case, return a font spec instead of a string.
f2045622
CY
424 (x_last_font_name): Move to this file from xfns.c.
425
426 * xfns.c (Fx_select_font): The return value can also be a font
427 spec. Move x_last_font_name management to gtkutil.c.
428
429 * xfaces.c: Make font weight and style symbols non-static.
430
7f6feb56
SM
4312012-08-15 Stefan Monnier <monnier@iro.umontreal.ca>
432
433 * minibuf.c (read_minibuf): Ignore caller's inhibit-read-only
434 (bug#12117).
435
fecbd8ff
SM
4362012-08-14 Stefan Monnier <monnier@iro.umontreal.ca>
437
438 * alloc.c (Fgarbage_collect): Use plural form consistently.
439
9b8d5165
EZ
4402012-08-14 Eli Zaretskii <eliz@gnu.org>
441
442 * keyboard.c (command_loop_1): Reset ignore_mouse_drag_p flag each
443 iteration through the command loop. Fixes a problem whereby mouse
444 movements are ignored until the first mouse click.
445
f5d9e83a
PE
4462012-08-14 Paul Eggert <eggert@cs.ucla.edu>
447
448 Use bool, not int, for Lisp booleans.
449 This is more natural, and on my platform (GCC 4.7.1 x86-64) it
450 makes Emacs a bit smaller and presumably a bit faster.
451 * lisp.h: Include <stdbool.h>.
452 (struct Lisp_Boolfwd, defvar_bool):
453 * lread.c (defvar_bool): Use bool, not int, for Lisp booleans.
454 * regex.c [!emacs]: Include <stdbool.h>.
455 (false, true): Remove; <stdbool.h> does this for us now.
456
55802e4a
CY
4572012-08-14 Chong Yidong <cyd@gnu.org>
458
4abcdac8
CY
459 * character.c (Fcharacterp): Doc fix (Bug#12076).
460
461 * data.c (Findirect_variable): Doc fix (Bug#11040).
462
55802e4a
CY
463 * chartab.c (Fmap_char_table): Doc fix (Bug#12061).
464
465 * editfns.c (Fformat): Doc fix (Bug#12059).
4abcdac8 466 (Fsave_current_buffer): Doc fix (Bug#11542).
55802e4a 467
8e99d072
BR
4682012-08-14 Barry OReilly <gundaetiapo@gmail.com> (tiny change)
469
470 * keyboard.c (access_keymap_keyremap): Accept anonymous functions
471 (bug#12022).
472
08908aca
MR
4732012-08-14 Martin Rudalics <rudalics@gmx.at>
474
475 * frame.c (make_frame_without_minibuffer, make_minibuffer_frame)
476 (delete_frame, Fmake_frame_invisible, Ficonify_frame):
477 * minibuf.c (choose_minibuf_frame, read_minibuf):
478 * w32fns.c (x_create_tip_frame):
479 * xfns.c (x_create_tip_frame): Call set_window_buffer instead of
480 Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026).
481
56120d6f
PE
4822012-08-14 Paul Eggert <eggert@cs.ucla.edu>
483
484 * intervals.c (offset_intervals): Remove obsolete comment.
485
67b77c0b
AS
4862012-08-14 Andreas Schwab <schwab@linux-m68k.org>
487
488 * gtkutil.c (find_rtl_image, update_frame_tool_bar): Use NILP.
489
f48b82fd
GR
4902012-08-14 Gergely Risko <gergely@risko.hu>
491
492 * coding.c (decode_coding): Record buffer modification before
493 disabling undo_list (Bug#11773).
494
fd318b54
DA
4952012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
496
497 Revert and cleanup some recent overlay changes.
498 * buffer.h (enum overlay_type): Remove.
499 (buffer_get_overlays, buffer_set_overlays): Likewise.
500 (buffer_set_overlays_before, buffer_set_overlays_after):
501 New function. Adjust users.
502 (unchain_both): Add eassert.
503
41a62dd9
DA
5042012-08-14 Dmitry Antipov <dmantipov@yandex.ru>
505
506 * gtkutil.c (update_frame_tool_bar): Use EQ where appropriate.
507
5884c324
PE
5082012-08-14 Paul Eggert <eggert@cs.ucla.edu>
509
510 * gtkutil.c (xg_mark_data): Don't assume C99.
511
ca06f160
JD
5122012-08-13 Jan Djärv <jan.h.d@swipnet.se>
513
514 * gtkutil.c (xg_frame_tb_info): New struct.
515 (TB_INFO_KEY): New define.
516 (xg_free_frame_widgets): Free xg_frame_tb_info for frame if present.
517 (xg_mark_data): Mark Lisp_Objects in xg_frame_tb_info.
518 (xg_create_tool_bar): Allocate and initialize a xg_frame_tb_info
519 if not present.
520 (update_frame_tool_bar): Return early if data in xg_frame_tb_info
521 is up to date. Otherwise store new data.
522 (free_frame_tool_bar): Free xg_frame_tb_info if present.
523
7864a3f7
DA
5242012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
525
526 Use KSET for write access to Lisp_Object members of struct kboard.
527 * keyboard.h (KSET): New macro.
528 * callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c:
529 * msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c:
530 * xterm.c: Adjust users.
531
4c31be61
DA
5322012-08-13 Dmitry Antipov <dmantipov@yandex.ru>
533
534 Use BSET for write access to Lisp_Object members of struct buffer.
535 * buffer.h (BSET): New macro.
536 * buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c:
537 * fileio.c, frame.c, indent.c, insdel.c, intervals.c, keymap.c:
538 * minibuf.c, print.c, process.c, syntax.c, undo.c, w32fns.c:
539 * window.c, xdisp.c, xfns.c: Adjust users.
540
14ae4239
BT
5412012-08-11 BT Templeton <bpt@hcoop.net> (tiny change)
542
543 * lread.c (syms_of_lread): Initialize Vlexical_binding.
544
32bcadb4
JD
5452012-08-11 Jan Djärv <jan.h.d@swipnet.se>
546
3d29b2ce
JD
547 * nsterm.m (not_in_argv): New function.
548 (application:openFile, application:openTempFile:):
549 (application:openFileWithoutUI:, application:openFiles:): Open file
550 if not_in_argv returns non-zero (bug#12171).
551
32bcadb4 552 * gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER)
14ae4239
BT
553 (gtk_font_chooser_set_font, gtk_font_chooser_get_font):
554 Define for Gtk+ versions less than 3.2.
32bcadb4
JD
555 (xg_get_font_name): Use those functions/macros here.
556 Reported by Frans Oilinki <moilinki@gmail.com>.
557
9ff9402d 5582012-08-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
8ccd072a
YM
559
560 * unexmacosx.c (copy_data_segment): Copy initialized data in
561 statically linked libraries from input file rather than memory.
562
db74a5fc
YM
563 * unexmacosx.c (print_load_command_name): Add cases LC_MAIN,
564 LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS.
565 (dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data.
566
25e65510
GM
5672012-08-10 Glenn Morris <rgm@gnu.org>
568
569 * conf_post.h (IF_LINT, lint_assume): Move here from lisp.h.
570 * lisp.h (IF_LINT, lint_assume): Move to conf_post.h.
571
7961135c
DA
5722012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
573
574 Fix last change to allow compilation with low optimization levels.
575 * intervals.c (INTERVALS_INLINE): Define to EXTERN_INLINE.
576 Reported by Jan Djärv <jan.h.d@swipnet.se>.
577
42b3a444
DA
5782012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
579
580 Use common inline syntax in intervals.h.
581 * intervals.h (INTERVALS_INLINE): New macro.
582 Change all users from LISP_INLINE.
583
9fb0c957
DA
5842012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
585
586 Define Qnone once for all platforms.
587 * frame.c (Qnone): Define here.
588 (syms_of_frame): DEFSYM it.
589 * lisp.h (Qnone): New declaration.
590 * nsfns.m, nsterm.h, nsterm.m, w32fns.c, w32font.c:
591 * xfns.c: Remove duplication. Adjust users.
592
65e8ee52
DA
5932012-08-10 Dmitry Antipov <dmantipov@yandex.ru>
594
595 Remove unused macros from intervals.h.
596 * intervals.h (MERGE_INSERTIONS, DISPLAY_INVISIBLE_GLYPH): Remove.
597 * intervals.c: Adjust comment.
598
9b855fd6
EZ
5992012-08-10 Eli Zaretskii <eliz@gnu.org>
600
601 * w32fns.c <w32_unicode_gui>: New static variable.
602 (globals_of_w32fns): Initialize it according to os_subtype.
603 (w32_init_class, w32_msg_pump, w32_wnd_proc): Use it instead of
604 testing os_subtype.
605
39cb9e56 6062012-08-10 Joakim Hårsman <joakim.harsman@gmail.com> (tiny change)
d30be705
EZ
607 Eli Zaretskii <eliz@gnu.org>
608
609 Fix bug #10299 with Unicode characters sent by customized
610 keyboards created by MSKLC.
611 * w32fns.c (INIT_WINDOW_CLASS): New macro.
612 (w32_init_class): Use it to initialize the Emacs class with either
613 ANSI or Unicode API calls.
614 (w32_msg_pump): Call GetMessageW and DispatchMessageW on NT and
615 later.
616 (w32_wnd_proc): If the character code sent by WM_CHAR or
617 WM_SYSCHAR is above 255, post a WM_UNICHAR message, not the
618 original message. Call DefWindowProcW on NT and later.
619
9374581a
GM
6202012-08-10 Glenn Morris <rgm@gnu.org>
621
4b94e8cf
GM
622 * Makefile.in (config_h): Fix conf_post.h out-of-tree build location.
623
9374581a
GM
624 * lisp.h (DIRECTORY_SEP): Let configure set it.
625
a2752828
DA
6262012-08-09 Dmitry Antipov <dmantipov@yandex.ru>
627
628 Use TSET for write access to Lisp_Object slots of struct terminal.
629 * termhooks.h (TSET): New macro.
630 * coding.c, terminal.c, xselect.c: Adjust users.
631
cc92c454
SM
6322012-08-08 Stefan Monnier <monnier@iro.umontreal.ca>
633
634 * xdisp.c (safe_eval_handler): Remove prototype. Receive args describing
635 the failing expression, include them in the error message.
636 * eval.c (internal_condition_case_n): Pass nargs and args to hfun.
637 * lisp.h (internal_condition_case_n): Update declaration.
638
4cb3e6b3
DA
6392012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
640
641 Inline functions to examine and change buffer overlays.
642 * buffer.c (unchain_both): New function.
643 * buffer.h (buffer_get_overlays, buffer_set_overlays):
644 (buffer_has_overlays): New function.
645 (enum overlay_type): New enum.
646 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c:
647 * insdel.c, intervals.c, print.c, xdisp.c: Adjust users.
648
8707c1e5
DA
6492012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
650
651 Inline functions to examine and change buffer intervals.
652 * alloc.c (mark_interval_tree): Remove.
653 (MARK_INTERVAL_TREE): Simplify.
654 (UNMARK_BALANCE_INTERVALS): Remove. Adjust users.
655 * intervals.c (buffer_balance_intervals): New function.
656 (graft_intervals_into_buffer): Adjust indentation.
657 (set_intervals_multibyte): Simplify.
658 * buffer.h (BUF_INTERVALS): Remove.
659 (buffer_get_intervals, buffer_set_intervals): New function.
660 * alloc.c, buffer.c, editfns.c, fileio.c, indent.c, insdel.c:
661 * intervals.c, textprop.c: Adjust users.
662
ad8c997f
DA
6632012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
664
665 Inline functions to examine and change string intervals.
666 * lisp.h (STRING_INTERVALS, STRING_SET_INTERVALS): Remove.
667 (string_get_intervals, string_set_intervals): New function.
668 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
669 * lread.c, print.c, textprop.c: Adjust users.
670
32ac3a6b
GM
6712012-08-08 Glenn Morris <rgm@gnu.org>
672
673 * lisp.mk (lisp): Remove language/persian.elc.
674
77c7bcb1
DA
6752012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
676
677 Cleanup intervals.
678 * intervals.h (NULL_INTERVAL, DEFAULT_INTERVAL): Remove.
679 (NULL_INTERVAL_P): Likewise. Adjust users.
14ae4239
BT
680 (FRONT_STICKY_P, END_NONSTICKY_P, FRONT_NONSTICKY_P):
681 Adjust comment. Move under #if 0.
77c7bcb1
DA
682 * alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
683 * print.c, syntax.c, textprop.c, xdisp.c: Adjust users.
684
9c08a8d4
DA
6852012-08-08 Dmitry Antipov <dmantipov@yandex.ru>
686
687 Check total length of intervals with eassert.
688 * intervals.h (CHECK_TOTAL_LENGTH): Remove.
689 * intervals.c: Change all users to eassert.
690
26d16b35
EZ
6912012-08-07 Eli Zaretskii <eliz@gnu.org>
692
14ae4239
BT
693 * .gdbinit (xframe, xwindow, nextcons, xcar, xcdr, xlist):
694 Rename fields to match removal of FGET and WGET and disuse of
26d16b35
EZ
695 INTERNAL_FIELD in Lisp_Cons.
696
c644523b
DA
6972012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
698
699 Revert and cleanup Lisp_Cons, Lisp_Misc and Lisp_Symbol things.
700 * lisp.h (struct Lisp_Symbol): Change xname to meaningful
701 name since all xname users are fixed long time ago. Do not
702 use INTERNAL_FIELD.
703 (set_symbol_name, set_symbol_function, set_symbol_plist):
704 (set_symbol_next, set_overlay_plist): New function.
705 (struct Lisp_Cons): Do not use INTERNAL_FIELD.
706 (struct Lisp_Overlay): Likewise.
707 (CVAR, MVAR, SVAR): Remove.
708 * alloc.c, buffer.c, buffer.h, bytecode.c, cmds.c, data.c:
709 * doc.c, eval.c, fns.c, keyboard.c, lread.c, nsselect.m:
710 * xterm.c: Adjust users.
711 * .gdbinit: Change to use name field of struct Lisp_Symbol
712 where appropriate.
713
6a3d20cc
DA
7142012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
715
716 Basic functions to set Lisp_Object and pointer slots of intervals.
717 * intervals.h (interval_set_parent, interval_set_object):
718 (interval_set_left, interval_set_right, interval_set_plist):
719 (interval_copy_parent): New function.
720 (SET_INTERVAL_OBJECT, SET_INTERVAL_PARENT, INTERVAL_PTR_SIZE): Remove.
14ae4239
BT
721 (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE):
722 Adjust indentation.
6a3d20cc
DA
723 (INTERVAL_SIZE): Remove. Adjust users.
724 * alloc.c, intervals.c, lread.c, textprop.c: Use new functions.
725
4d2b044c
DA
7262012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
727
728 Drop PGET and revert read access to Lisp_Objects slots of Lisp_Process.
729 * process.h (PGET): Remove.
730 (struct Lisp_Process): Do not use INTERNAL_FIELD.
731 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
732
d3d50620
DA
7332012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
734
735 Drop WGET and revert read access to Lisp_Objects slots of struct window.
736 * window.h (WGET): Remove.
737 (struct window): Do not use INTERNAL_FIELD.
738 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
739 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
740 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
741 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
742 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
743 Adjust users.
744
d10a51dc
CY
7452012-08-07 Chong Yidong <cyd@gnu.org>
746
747 * window.c (Fwindow_edges, Fwindow_pixel_edges)
748 (Fwindow_absolute_pixel_edges, Fdelete_other_windows_internal)
749 (Fdelete_window_internal): Signal an error if the window is not on
750 a live frame (Bug#12025).
751
e69b0960
DA
7522012-08-07 Dmitry Antipov <dmantipov@yandex.ru>
753
754 Drop FGET and revert read access to Lisp_Objects slots of struct frame.
755 * frame.h (FGET): Remove.
756 (struct frame): Do not use INTERNAL_FIELD.
757 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
758 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
759 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
760 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
761
25a20a3a
JB
7622012-08-06 Juanma Barranquero <lekktu@gmail.com>
763
764 * w32.c: Silence compiler warnings.
765 (map_w32_filename): Remove unused variable `is_fat'.
766 (chase_symlinks): Add parentheses around expression.
767
1c6f11f4
GM
7682012-08-06 Glenn Morris <rgm@gnu.org>
769
1db4583a
GM
770 * sysdep.c: Respect BROKEN_GETWD.
771
1c6f11f4
GM
772 * dispnew.c (GNU_LIBRARY_PENDING_OUTPUT_COUNT, PENDING_OUTPUT_COUNT):
773 Let configure handle it.
774 (stdio_ext.h) [DISPNEW_NEEDS_STDIO_EXT]: Include it.
775
2b90362b
DA
7762012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
777
778 Use GCALIGNMENT where appropriate.
779 * alloc.c (XMALLOC_HEADER_ALIGNMENT, roundup_size):
780 (union aligned_Lisp_Symbol, union aligned_Lisp_Misc):
781 (mark_maybe_pointer, pure_alloc): Change to use GCALIGNMENT.
782
5f50daf2
EZ
7832012-08-06 Eli Zaretskii <eliz@gnu.org>
784
14ae4239
BT
785 * w32menu.c (set_frame_menubar, initialize_frame_menubar):
786 Don't use FRAME_MENU_BAR_ITEMS as an lvalue.
5f50daf2 787
cbcc7007
SM
7882012-08-06 Stefan Monnier <monnier@iro.umontreal.ca>
789
790 * buffer.h (struct buffer): Revert `indirections' to a simple int;
791 that should be sufficient for everyone.
792
4d365fa4
JD
7932012-08-06 Jan Djärv <jan.h.d@swipnet.se>
794
795 * keyboard.c (timer_check_2): Add break so timer_check returns next
796 timeout.
797
dd86bd82
DA
7982012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
799
800 Fix Windows build errors introduced after converting to WGET and WSET.
801 * w32term.c (w32_set_vertical_scroll_bar): Change to use WSET.
802 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
803
054e1668
JD
8042012-08-06 Jan Djärv <jan.h.d@swipnet.se>
805
806 * nsterm.m (ns_frame_rehighlight): Use FSET.
807
808 * nsmenu.m (ns_update_menubar): Use FSET.
809
21238f11
DA
8102012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
811
812 Separate read and write access to Lisp_Object slots of Lisp_Process.
813 * process.h (PGET, PSET): New macros similar to AREF and ASET.
814 * gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
815
077288cf
DA
8162012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
817
818 Separate read and write access to Lisp_Object slots of struct window.
819 * window.h (WGET, WSET): New macros similar to AREF and ASET.
820 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
821 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
822 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
823 * nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
824 * w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
825 Adjust users.
826
71688bd7
DA
8272012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
828
829 Fix Windows build errors introduced after converting to FGET and FSET.
830 * w32term.c (x_frame_rehighlight, x_scroll_bar_create):
831 (w32_condemn_scroll_bars, w32_redeem_scroll_bar):
832 (w32_judge_scroll_bars): Change to use FSET.
833 Reported by Andy Moreton <andrewjmoreton@gmail.com>.
834
f99bac93
DA
8352012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
836
837 Fix replacement typo.
838 * window.c (replace_window): Set root_window instead of
839 selected_window. This fixes a total window subsystem
840 malfunction reported by Bastien Guerry <bzg@gnu.org>.
841
8c2a0f2d
GM
8422012-08-06 Glenn Morris <rgm@gnu.org>
843
844 * lisp.mk (lisp): Add language/persian.elc.
845
edd74c35
DA
8462012-08-06 Dmitry Antipov <dmantipov@yandex.ru>
847
848 Separate read and write access to Lisp_Object slots of struct frame.
849 * frame.h (FGET, FSET): New macros similar to AREF and ASET.
850 * buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
851 * fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
852 * print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
853 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
854
8671676c
AS
8552012-08-05 Andreas Schwab <schwab@linux-m68k.org>
856
857 * emacs.c (decode_env_path): Only use defaulted if WINDOWSNT.
858
663e2b3f
DA
8592012-08-05 Dmitry Antipov <dmantipov@yandex.ru>
860
861 Generalize common compile-time constants.
862 * lisp.h (header_size, bool_header_size, word_size): Now here.
863 (struct Lisp_Vector): Add comment.
864 (struct Lisp_Bool_Vector): Move up to define handy constants.
865 (VECSIZE, PSEUDOVECSIZE): Simplify.
866 (SAFE_ALLOCA_LISP): Use new constant. Adjust indentation.
867 * buffer.c, buffer.h, bytecode.c, callint.c, eval.c, fns.c:
868 * font.c, fontset.c, keyboard.c, keymap.c, macros.c, menu.c:
869 * msdos.c, w32menu.c, w32term.h, window.c, xdisp.c, xfaces.c:
870 * xfont.c, xmenu.c: Use word_size where appropriate.
871
d32e47af
LM
8722012-08-05 Lawrence Mitchell <wence@gmx.li>
873
874 * search.c (Freplace_match): Treat \? in the replacement text
875 literally (Bug#8161).
876
e5d9c0d1
CY
8772012-08-05 Chong Yidong <cyd@gnu.org>
878
879 * term.c (Vsuspend_tty_functions, Vresume_tty_functions):
880 * frame.c (Vdelete_frame_functions):
881 * emacs.c (Vkill_emacs_hook): Doc fix.
882
8da0576b
EZ
8832012-08-04 Eli Zaretskii <eliz@gnu.org>
884
885 * xfns.c (x_set_menu_bar_lines): Fix compilation error in
886 --with-x-toolkit=no builds.
887 Reported by Carsten Mattner <carstenmattner@gmail.com>.
888
02676e5d
CY
8892012-08-04 Chong Yidong <cyd@gnu.org>
890
891 * syntax.c (Fmodify_syntax_entry): Doc fix.
892
97147da9
EZ
8932012-08-04 Eli Zaretskii <eliz@gnu.org>
894
76151e2c
EZ
895 Fix startup warnings about ../site-lisp on MS-Windows. (Bug#11959)
896 * w32.c (init_environment): Change the default values of many
897 environment variables in dflt_envvars[] to NULL, to avoid pushing
14ae4239
BT
898 them into environment when they were not already defined.
899 Remove the code that deletes site-lisp subdirectories from the default
76151e2c 900 value of EMACSLOADPATH, as it is no longer needed.
14ae4239
BT
901 (check_windows_init_file): Now external, not static.
902 Use Vload_path as is, without adding anything, as this function is now
76151e2c
EZ
903 called when Vload_path is already set up.
904
905 * w32.h (check_windows_init_file): Add prototype.
906
907 * emacs.c (init_cmdargs) [WINDOWSNT]: When running from the build
908 directory, ignore the /*/i386/ tail in Vinvocation_directory, for
909 compatibility with Posix platforms.
910 (main): Move the call to check_windows_init_file to here from
911 w32.c.
912 (decode_env_path) [WINDOWSNT]: Expand the %emacs_dir%/ prefix, if
913 any, in the DEFALT argument into the root of the Emacs build or
914 installation tree, as appropriate.
915
916 * callproc.c (init_callproc_1): Call decode_env_path instead of
917 doing its equivalent by hand.
918 (init_callproc): Replace DOS_NT condition with MSDOS, thus letting
919 the code that sets Vexec_path run on MS-Windows.
920
921 * lread.c (init_lread): Add comments to #ifdef's.
922
97147da9
EZ
923 * msdos.c (dos_set_window_size, IT_update_begin)
924 (IT_frame_up_to_date, IT_set_frame_parameters): Use FVAR and WVAR
925 instead of direct references.
926
185ee146
PE
9272012-08-04 Paul Eggert <eggert@cs.ucla.edu>
928
929 Export DEFAULT_REHASH_* to GDB.
930 * lisp.h (DEFAULT_REHASH_THRESHOLD, DEFAULT_REHASH_SIZE):
931 Now constants, not macros.
932
8834c57a
PE
9332012-08-03 Paul Eggert <eggert@cs.ucla.edu>
934
98c6f1e3
PE
935 Remove unnecessary casts involving pointers.
936 These casts are no longer needed now that we assume C89 or later,
937 since they involve casting to or from void *.
938 * alloc.c (make_pure_string, make_pure_c_string, pure_cons)
939 (make_pure_float, make_pure_vector):
940 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP):
941 * macros.c (Fstart_kbd_macro):
942 * menu.c (find_and_return_menu_selection):
943 * minibuf.c (read_minibuf_noninteractive):
944 * sysdep.c (closedir):
945 * xdisp.c (x_produce_glyphs):
946 * xfaces.c (compare_fonts_by_sort_order):
947 * xfns.c (x_real_positions, select_visual):
948 * xselect.c (x_stop_queuing_selection_requests)
949 (x_get_window_property, x_get_window_property_as_lisp_data):
950 * xterm.c (x_set_frame_alpha, x_find_modifier_meanings):
951 Remove unnecessary pointer casts.
952 * alloc.c (record_xmalloc): New function.
953 * lisp.h (record_xmalloc): New decl.
954 (SAFE_ALLOCA): Now takes just one arg -- the size -- and acts
955 more like a function. This is because the pointer cast is not
956 needed. All uses changed.
957 * print.c (print_string, print_error_message): Avoid length recalc.
958
8834c57a
PE
959 Improve fix for macroexp crash with debugging (Bug#12118).
960 * lisp.h (ASET) [ENABLE_CHECKING]: Pay attention to
961 ARRAY_MARK_FLAG when checking subscripts, because ASET is
962 not supposed to be invoked from the garbage collector.
963 See Andreas Schwab in <http://bugs.gnu.org/12118#25>.
964 (gc_aset): New function, which is like ASET but can be
965 used in the garbage collector.
966 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
967 (set_hash_index): Use it instead of ASET.
968
6dad7178
EZ
9692012-08-03 Eli Zaretskii <eliz@gnu.org>
970
971 Support symlinks on latest versions of MS-Windows.
972 * w32.c: Include winioctl.h and aclapi.h.
973 (is_symlink, chase_symlinks, enable_privilege, restore_privilege)
974 (revert_to_self): Forward declarations of static functions.
975 <static BOOL g_b_init_get_security_info>:
976 <g_b_init_create_symbolic_link>: New static flags.
977 (globals_of_w32): Initialize them to zero.
978 (GetSecurityInfo_Proc, CreateSymbolicLink_Proc): New typedefs.
979 (map_w32_filename): Improve commentary. Simplify switch.
980 (SYMBOLIC_LINK_FLAG_DIRECTORY): Define if not defined in system
981 headers (most versions of MinGW w32api don't).
982 (get_security_info, create_symbolic_link)
983 (get_file_security_desc_by_handle, is_symlink, chase_symlinks):
984 New functions.
985 (sys_access, sys_chmod): Call 'chase_symlinks' to resolve symlinks
986 in the argument file name.
987 (sys_access): Call unc_volume_file_attributes only if
988 GetFileAttributes fails with network-related error codes.
989 (sys_rename): Diagnose renaming of a symlink when the user doesn't
990 have the required privileges.
14ae4239 991 (get_file_security_desc_by_name): Rename from
6dad7178
EZ
992 get_file_security_desc.
993 (stat_worker): New function, with most of the guts of 'stat', and
14ae4239
BT
994 with addition of handling of symlinks and support for 'lstat'.
995 If possible, get file's attributes and security information by
6dad7178
EZ
996 handle, not by name. Produce S_IFLNK bit for symlinks, when
997 called from 'lstat'.
998 (stat, lstat): New functions, call 'stat_worker'.
999 (symlink, readlink, careadlinkat): Rewritten to create and resolve
1000 symlinks when the underlying filesystem supports them.
1001
f162bcc3
PE
10022012-08-02 Paul Eggert <eggert@cs.ucla.edu>
1003
79ea6c20
PE
1004 Fix macroexp crash on Windows with debugging (Bug#12118).
1005 * lisp.h (ASET) [ENABLE_CHECKING]: Ignore ARRAY_MARK_FLAG when
1006 checking subscripts; problem introduced with the recent
1007 "ASET (a, i, v)" rather than "AREF (a, i) = v" patch.
1008 (ARRAY_MARK_FLAG): Now a macro as well as a constant,
1009 since it's used in non-static inline functions now.
1010
c0ce93fd
PE
1011 * xfaces.c (face_at_buffer_position, face_for_overlay_string):
1012 Don't assume buffer size fits in 'int'. Remove unused local.
c71f5156 1013
f162bcc3
PE
1014 Use C99-style 'extern inline' if available.
1015 * buffer.h (BUFFER_INLINE):
1016 * category.h (CATEGORY_INLINE):
1017 * character.h (CHARACTER_INLINE):
1018 * charset.h (CHARSET_INLINE):
1019 * composite.h (COMPOSITE_INLINE):
1020 * dispextern.h (DISPEXTERN_INLINE):
1021 * lisp.h (LISP_INLINE):
1022 * systime.h (SYSTIME_INLINE):
1023 New macro, replacing 'static inline' in this header.
1024 * buffer.h, category.h, character.h, charset.h, composite.h:
1025 * dispextern.h, lisp.h, systime.h:
1026 Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
1027 * alloc.c (LISP_INLINE):
1028 * buffer.c (BUFFER_INLINE):
1029 * category.c (CATEGORY_INLINE):
1030 * character.c (CHARACTER_INLINE):
1031 * charset.c (CHARSET_INLINE):
1032 * composite.c (COMPOSITE_INLINE):
1033 * dispnew.c (DISPEXTERN_INLINE):
1034 * sysdep.c (SYSTIME_INLINE):
1035 Define to EXTERN_INLINE, so that the corresponding functions
1036 are compiled into code.
1037 * conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN)
1038 (INLINE_HEADER_END): New macros.
1039 * lisp.h (PSEUDOVECTOR_FLAG): Now a macro as well as a constant,
1040 since it's used in non-static inline functions now.
a8333d03 1041 (VALMASK) [!USE_LSB_TAG]: Likewise.
f162bcc3 1042
837b365b
GM
10432012-08-02 Glenn Morris <rgm@gnu.org>
1044
d66b744d
GM
1045 * s/: Remove empty directory.
1046
837b365b
GM
1047 * s/ms-w32.h: Move to ../nt/inc.
1048 * makefile.w32-in (TAGS, TAGS-gmake, MS_W32_H):
1049 Update for new ms-w32.h location.
1050
13294f95
PE
10512012-08-02 Paul Eggert <eggert@cs.ucla.edu>
1052
1053 Port to Solaris 8.
1054 * syswait.h (WRETCODE): Remove, consistently with ../configure.ac.
1055
90df0db3
GM
10562012-08-02 Glenn Morris <rgm@gnu.org>
1057
1058 * nsterm.m (ns_exec_path, ns_load_path): Use SEPCHAR rather than
1059 hard-coding the path separator.
1060
4939150c
PE
10612012-08-01 Paul Eggert <eggert@cs.ucla.edu>
1062
1063 Use "ASET (a, i, v)" rather than "AREF (a, i) = v".
1064 This how ASET and AREF are supposed to work, and makes
1065 it easier to think about future improvements. See
1066 <http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00026.html>.
1067 * charset.h (set_charset_attr): New function.
1068 All lvalue-style uses of CHARSET_DECODER etc. changed to use it.
1069 * lisp.h (ASET): Rewrite so as not to use AREF in an lvalue style.
1070 (aref_addr): New function. All uses of &AREF(...) changed.
1071 (set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
1072 (set_hash_index): New functions. All lvalue-style uses of
1073 HASH_KEY etc. changed.
1074 * keyboard.c (set_prop): New function. All lvalue-style uses
1075 of PROP changed.
1076
947b2afd
AA
10772012-08-01 Alp Aker <alp.tekin.aker@gmail.com>
1078
1079 * nsterm.m (ns_set_vertical_scroll_bar, ns_redeem_scroll_bar)
1080 (EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:)
1081 (EmacsScroller-dealloc): Adjust to use WVAR. (Bug#12114)
1082 * nsfns.m (ns_set_name_as_filename): Likewise.
1083 * nsmenu.m (ns_update_menubar): Likewise.
1084 * nsselect.m (symbol_to_nsstring): Adjust to use SVAR.
1085
4f5d0325
EZ
10862012-08-01 Eli Zaretskii <eliz@gnu.org>
1087
2008beae
EZ
1088 * .gdbinit (xcar, xcdr, xlist, xwindow, nextcons, xprintsym):
1089 Adapt to latest changes in field names of the corresponding Lisp
288479f6 1090 objects.
2008beae 1091
4f5d0325
EZ
1092 * xdisp.c (try_window_id): Use WVAR in IF_DEBUG code.
1093
fe3cc771
GM
10942012-08-01 Glenn Morris <rgm@gnu.org>
1095
1096 * s/msdos.h: Remove file.
1097 * conf_post.h [MSDOS]: New section, moved from s/msdos.h.
1098 * Makefile.in (S_FILE): Remove.
1099 (config_h): Remove S_FILE.
1100
c90acc54
JB
11012012-08-01 Juanma Barranquero <lekktu@gmail.com>
1102
1103 * s/ms-w32.h (DEVICE_SEP, IS_DIRECTORY_SEP, IS_ANY_SEP):
1104 Remove; moved to nt/config.nt.
1105
d8a05828
DA
11062012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
1107
1108 Use INTERNAL_FIELD for conses and overlays.
1109 * lisp.h (struct Lisp_Cons): Use INTERNAL_FIELD.
1110 Remove obsolete comment.
1111 (MVAR): New macro.
1112 (struct Lisp_Overlay): Use INTERNAL_FIELD.
1113 * alloc.c, buffer.c, buffer.h, fns.c: Adjust users.
1114
8271d590
DA
11152012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
1116
1117 Use INTERNAL_FIELD for symbols.
1118 * lisp.h (SVAR): New macro. Adjust users.
1119 * alloc.c, bytecode.c, cmds.c, data.c, doc.c, eval.c:
1120 * fns.c, keyboard.c, lread.c, xterm.c: Users changed.
1121
3193acd2
DA
11222012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
1123
1124 Use INTERNAL_FIELD for processes.
1125 * process.h (PVAR): New macro. Adjust style.
1126 (struct Lisp_Process): Change Lisp_Object members to INTERNAL_FIELD.
1127 * print.c, process.c, sysdep.c, w32.c, xdisp.c: Users changed.
1128
3a45383a
DA
11292012-08-01 Dmitry Antipov <dmantipov@yandex.ru>
1130
1131 Use INTERNAL_FIELD for windows.
1132 * window.h (WVAR): New macro.
1133 (struct window): Change Lisp_Object members to INTERNAL_FIELD.
1134 * alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
1135 * fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
1136 * insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, nsterm.m, print.c:
1137 * textprop.c, w32fns.c, w32menu.c, w32term.c, window.c, xdisp.c:
1138 * xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
1139
c1dbc63c
PE
11402012-08-01 Paul Eggert <eggert@cs.ucla.edu>
1141
1142 * coding.h (CODING_ATTR_FLUSHING): Remove; unused and wouldn't work.
1143
5c0c0e8a
GM
11442012-08-01 Glenn Morris <rgm@gnu.org>
1145
1146 * lisp.h (IS_DIRECTORY_SEP, IS_DEVICE_SEP, IS_ANY_SEP):
1147 Move to configure.ac.
1148
552a99b4
JB
11492012-08-01 Juanma Barranquero <lekktu@gmail.com>
1150
1151 * makefile.w32-in (CONFIG_H): Update dependencies.
1152 (CONF_POST_H): New macro.
1153
1154 * s/ms-w32.h (SEPCHAR, NULL_DEVICE): Remove; moved to nt/config.nt.
1155
8d8e2dfe
GM
11562012-07-31 Glenn Morris <rgm@gnu.org>
1157
bc96620a
GM
1158 * Makefile.in (S_FILE): No longer set by configure.
1159
476b1b2d
GM
1160 * conf_post.h (config_opsysfile): Move earlier, so that WINDOWSNT
1161 is available.
1162 (alloca.h) [WINDOWSNT]: Don't include it on MS Windows.
1163
b2c7a106
GM
1164 * process.h (NULL_DEVICE):
1165 * emacs.c (SEPCHAR):
1166 * editfns.c (USER_FULL_NAME): Let configure set them.
1167
d53d062a
GM
1168 * s/README, s/template.h: Remove files.
1169
4515017f
GM
1170 * conf_post.h [HPUX]: Undefine HAVE_RANDOM and HAVE_RINT.
1171
8d8e2dfe
GM
1172 * conf_post.h (AMPERSAND_FULL_NAME, subprocesses):
1173 Move to configure.ac.
1174
5b20b3cc
EZ
11752012-07-31 Eli Zaretskii <eliz@gnu.org>
1176
1e0afd9a
EZ
1177 * .gdbinit (xframe): Adapt to introduction of FVAR and the
1178 resulting renaming of 'struct frame' members.
1179
5b20b3cc
EZ
1180 * w32menu.c (w32_menu_show): Revert bogus introduction of FVAR.
1181
1182 * fontset.c (dump_fontset): Fix compilation with ENABLE_CHECKING
1183 after introduction of FVAR.
1184
f1310128
JD
11852012-07-31 Jan Djärv <jan.h.d@swipnet.se>
1186
79e721e0
JD
1187 * nsmenu.m (update_frame_tool_bar): Change key from NSObject* to id.
1188
1189 * nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Use drawInRect
1190 instead of compositeToPoint.
1191 (applicationShouldTerminate): Pass NS String literal to NSRunAlertPanel.
1192
8d7c7eed 1193 * nsfns.m, nsmenu.m, nsterm.m: Adopt to struct frame/FVAR changes.
f1310128 1194
e34f7f79
DA
11952012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
1196
1197 Generalize INTERNAL_FIELD between buffers, keyboards and frames.
1198 * lisp.h (INTERNAL_FIELD): New macro.
14ae4239 1199 * buffer.h (BUFFER_INTERNAL_FIELD): Remove.
e34f7f79
DA
1200 (BVAR): Change to use INTERNAL_FIELD.
1201 * keyboard.h (KBOARD_INTERNAL_FIELD): Likewise.
1202 (KVAR): Change to use INTERNAL_FIELD.
1203 * frame.h (FVAR): New macro.
1204 (struct frame): Use INTERNAL_FIELD for all Lisp_Object fields.
3a45383a
DA
1205 * alloc.c, buffer.c, data.c, dispnew.c, dosfns.c, eval.c, frame.c:
1206 * fringe.c, gtkutil.c, minibuf.c, nsfns.m, nsterm.m, print.c:
1207 * term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
e34f7f79
DA
1208 * xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
1209
c09bfb2f
DA
12102012-07-31 Dmitry Antipov <dmantipov@yandex.ru>
1211
1212 Miscellaneous fixes for non-default X toolkits.
1213 * xfns.c (Fx_file_dialog): Change to SSDATA to avoid warnings.
1214 * xterm.c (x_frame_of_widget): Remove redundant prototype.
1215 Move under #ifdef USE_LUCID.
1216 (x_create_toolkit_scroll_bar): Adjust scroll_bar_name
1217 definition and usage to avoid warnings.
1218
14c114ae
JD
12192012-07-31 Jan Djärv <jan.h.d@swipnet.se>
1220
1221 * nsterm.m (openFiles): Fix previous checkin.
1222
3bd21e82
PE
12232012-07-31 Paul Eggert <eggert@cs.ucla.edu>
1224
1225 * indent.c (compute_motion): Remove unused local.
1226
c1529ded
GM
12272012-07-31 Glenn Morris <rgm@gnu.org>
1228
400d5621
GM
1229 * s/usg5-4-common.h (wait3, WRETCODE): Let configure set them.
1230
268e2432
GM
1231 * conf_post.h [USG5_4]:
1232 Move remaining contents of s/usg5-4-common.h here.
1233 * s/usg5-4-common.h: Remove file.
1234
7552f3ee
GM
1235 * conf_post.h [IRIX6_5]: Move remaining contents of s/irix6-5.h here.
1236 * s/irix6-5.h: Remove file.
1237
6a381852
GM
1238 * conf_post.h [DARWIN_OS]: Move remaining contents of s/darwin.h here.
1239 * s/darwin.h: Remove file.
1240
c1529ded
GM
1241 * conf_post.h [HPUX]: Move random, srandom here from s/hpux10-20.h.
1242 * s/hpux10-20.h: Remove file, which is now empty.
1243
b429a4ee
GM
12442012-07-30 Glenn Morris <rgm@gnu.org>
1245
1246 * conf_post.h: New, split from configure.ac's AH_BOTTOM.
1247 * Makefile.in (config_h): Add conf_post.h.
1248 * makefile.w32-in (CONFIG_H): Add conf_post.h.
1249
adff3182
JD
12502012-07-30 Jan Djärv <jan.h.d@swipnet.se>
1251
1252 * nsterm.m (ns_do_open_file): New variable.
b9031d69 1253 (ns_term_init): Set ns_do_open_file to YES after run returns.
14ae4239
BT
1254 (openFile, openTempFile, openFileWithoutUI, openFiles):
1255 Open files only if ns_do_open_file.
adff3182 1256
c32af1e4
PE
12572012-07-30 Paul Eggert <eggert@cs.ucla.edu>
1258
7393bcbb
PE
1259 * lisp.h (SWITCH_ENUM_CAST): Remove. All uses removed.
1260 This no-op macro hasn't been needed for many years.
1261 * src/regex.c (SWITCH_ENUM_CAST) [!emacs]: Likewise.
1262
c32af1e4
PE
1263 Export DIRECTORY_SEP, TYPEMASK, VALMASK to GDB.
1264 * alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Add lsb_bits.
1265 * lisp.h (enum lsb_bits) [USE_LSB_TAG]: New enum, for
1266 gdb_make_enums_visible.
1267 (TYPEMASK, VALMASK) [USE_LSB_TAGS]: Now enum constants, not macros.
1268 (DIRECTORY_SEP): Now a constant, not a macro.
1269
302fc036
EZ
12702012-07-30 Eli Zaretskii <eliz@gnu.org>
1271
1272 * w32fns.c (w32_wnd_proc): Pass w32_keyboard_codepage to
1273 w32_kbd_patch_key as the 2nd arg. (Bug#12082)
1274
1275 * w32term.c <w32_keyboard_codepage>: Renamed from
1276 keyboard_codepage and now external. All users changed.
1277
1278 * w32term.h: Add declaration of w32_keyboard_codepage.
1279
1280 * w32inevt.c (w32_kbd_patch_key): Accept an additional argument --
1281 the codepage to translate keys to Unicode. If this argument is
1282 -1, use the value returned by GetConsoleCP. All callers changed.
1283
88fb40b4
PE
12842012-07-30 Paul Eggert <eggert@cs.ucla.edu>
1285
0aee6912
PE
1286 Update .PHONY listings in makefiles.
1287 * Makefile.in (.PHONY): Add all, mostlyclean, clean,
1288 bootstrap-clean, distclean, maintainer-clean, versioclean,
1289 extraclean, frc.
1290
88fb40b4
PE
1291 * lisp.h (STRING_BYTES_BOUND): Cast entire result to ptrdiff_t.
1292 This is a bit clearer. Fix some commentary typos.
1293
0a763bd1
GM
12942012-07-30 Glenn Morris <rgm@gnu.org>
1295
32bac6d6
GM
1296 * s/netbsd.h: Let configure include signal.h if needed.
1297 Remove file, which is now empty.
1298
b65e7c46
GM
1299 * s/usg5-4-common.h (_longjmp, _setjmp, TIOCSIGSEND):
1300 Let configure set them.
1301 * s/irix6-5.h (_longjmp, _setjmp, TIOCSIGSEND):
1302 No more need to undefine.
0a763bd1 1303
169304bd
AS
13042012-07-30 Andreas Schwab <schwab@linux-m68k.org>
1305
1306 * keymap.c (Fkey_description): Don't remove 0x80 bit from
1307 non-single-byte char when adding meta modifier. (Bug#12090)
1308
6cd7a139
DA
13092012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
1310
1311 Convert safe_call to use variable number of arguments.
1312 * xdisp.c (safe_call): Convert to use varargs. Adjust users.
1313 (safe_call2): Fix comment.
1314 * lisp.h (safe_call): Adjust prototype.
1315 * coding.c (encode_coding_object): Change to use safe_call2.
1316 * xfaces.c (merge_face_heights): Change to use safe_call1.
1317
d34d6ffc
GM
13182012-07-30 Glenn Morris <rgm@gnu.org>
1319
7b8a48e4 1320 * s/aix4-2.h (sigmask): No need to undefine it, since syssignal.h
227f5bd0 1321 does that unconditionally. Remove file, which is now empty.
7b8a48e4 1322
d34d6ffc
GM
1323 * s/freebsd.h, s/gnu-linux.h, s/sol2-6.h, s/unixware.h:
1324 Remove empty files.
1325
03a660a6
PE
13262012-07-30 Paul Eggert <eggert@cs.ucla.edu>
1327
1328 Export to GDB most of lisp.h's remaining object-like macros.
1329 * lisp.h (min, max): Move earlier, because they're used earlier now.
1330 (INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK)
1331 (CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0)
1332 (CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3)
1333 (DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE)
1334 (COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING)
1335 (COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT)
1336 (CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS)
1337 (MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA):
1338 Now constants, for GDB. They need not be macros.
1339 (MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND):
1340 Now constants, for GDB, as well as macros, for static initializers.
1341 (CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS):
1342 Move to after the definition of struct Lisp_Char_Table,
1343 since the former now needs that type defined.
1344 (enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS)
1345 (enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits)
1346 (enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA):
1347 New enums, for gdb_make_enums_visible.
1348 (GLYPH_MODE_LINE_FACE): Remove; unused.
88fb40b4 1349 * alloc.c (STRING_BYTES_MAX): Now a constant, not a macro.
03a660a6
PE
1350 (gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum
1351 CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE,
1352 enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled,
1353 enum maxargs, enum MAX_ALLOCA.
1354 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove.
1355 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove;
1356 no longer needed, now that they are done in lisp.h.
1357
e499d0ee
DA
13582012-07-30 Dmitry Antipov <dmantipov@yandex.ru>
1359
1360 Cleanup string bytes checking.
1361 * alloc.c (GC_STRING_BYTES, CHECK_STRING_BYTES): Remove. Convert
1362 all users to STRING_BYTES or string_bytes if GC_CHECK_STRING_BYTES.
1363 (check_string_bytes): Define to empty if not GC_CHECK_STRING_BYTES.
1364 (check_sblock, compact_small_strings): Simplify.
1365
d5040d2d
PE
13662012-07-29 Paul Eggert <eggert@cs.ucla.edu>
1367
1368 * lisp.h (LISP_INT_TAG, LISP_INT1_TAG, LISP_STRING_TAG): Remove.
1369 These macros are confusing and no longer need to be defined, as
1370 the enum values now suffice. All uses replaced with definiens.
1371 (Lisp_Int1, Lisp_String): Define directly; this is clearer.
1372
7f259ae6
JB
13732012-07-29 Juanma Barranquero <lekktu@gmail.com>
1374
1375 * makefile.w32-in (LISP_H, $(BLD)/emacs.$(O), $(BLD)/w32inevt.$(O))
1376 ($(BLD)/w32console.$(O)): Update dependencies.
1377
7e63e0c3
DA
13782012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
1379
1380 Remove HIDE_LISP_IMPLEMENTATION and cleanup cons free list check.
1381 * lisp.h (HIDE_LISP_IMPLEMENTATION): Remove as useless for a long
1382 time. Adjust users.
1383 (CHECK_CONS_LIST): Remove. Convert all users to check_cons_list.
1384
ffd817eb
JD
13852012-07-29 Jan Djärv <jan.h.d@swipnet.se>
1386
1387 * lread.c (init_lread): Remove if-statement in ifdef HAVE_NS before
1388 setting sitelisp (Bug#12010).
1389
417a7a0e
EZ
13902012-07-29 Eli Zaretskii <eliz@gnu.org>
1391
14ae4239 1392 * w32heap.h (OS_9X): Rename from OS_WINDOWS_95.
417a7a0e
EZ
1393
1394 * w32heap.c (cache_system_info):
1395 * w32.c (sys_rename):
1396 * w32proc.c (find_child_console, sys_kill): All users changed.
1397
387d4d92
PE
13982012-07-29 Paul Eggert <eggert@cs.ucla.edu>
1399
1400 * alloc.c (Fgarbage_collect): Indent as per usual Emacs style.
1401
55a6cca6
EZ
14022012-07-29 Eli Zaretskii <eliz@gnu.org>
1403
1404 * makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h.
1405
dbcf001c
DA
14062012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
1407
1408 Cleanup statistics calculation in Fgarbage_collect.
14ae4239
BT
1409 * alloc.c (Fgarbage_collect): Rename t1 to meaningful start.
1410 Fix zombies percentage calculation. Simplify elapsed time calculation.
dbcf001c 1411
e2688e4a
DA
14122012-07-29 Dmitry Antipov <dmantipov@yandex.ru>
1413
1414 Generalize marker debugging code under MARKER_DEBUG and use eassert.
1415 * insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove.
1416 (gap_left, gap_right, adjust_markers_for_delete, insert_1_both)
1417 (insert_from_string_1, insert_from_gap, insert_from_buffer_1)
1418 (replace_range, replace_range_2, del_range_2): Change to eassert.
1419 * marker.c (byte_char_debug_check): Adjust style.
1420
b46a6a83
PE
14212012-07-29 Paul Eggert <eggert@cs.ucla.edu>
1422
1423 Don't use the abbreviation "win" to refer to Windows (Bug#10421).
1424 * regex.c (MAX_BUF_SIZE): Remove some incorrect and
1425 long-ago-commented-out code that talks about "WIN32".
1426 * w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95.
1427 All uses changed.
1428
e32a5799
PE
14292012-07-28 Paul Eggert <eggert@cs.ucla.edu>
1430
1431 Use Gnulib stdalign module (Bug#9772, Bug#9960).
1432 * alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc):
1433 Simplify by using alignof.
1434 (pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values.
1435 * lisp.h: Include <stdalign.h>.
1436 (GCALIGNMENT): New macro and constant.
1437 (DECL_ALIGN): Remove. All uses replaced by alignas (GCALIGNMENT).
1438 (USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN.
1439 (stdalign): New macro, if not already defined.
1440
df81cd29
EZ
14412012-07-28 Eli Zaretskii <eliz@gnu.org>
1442
01bd1b0d
EZ
1443 Fix non-ASCII input in non-GUI frames on MS-Windows. (Bug#12055)
1444 * w32inevt.c: Include w32inevt.h.
1445 (w32_read_console_input): New inline function, calls either
1446 ReadConsoleInputA or ReadConsoleInputW, depending on the value of
1447 w32_console_unicode_input.
1448 (fill_queue): Call w32_read_console_input instead of ReadConsoleInput.
1449 (w32_kbd_patch_key, key_event): Use the codepage returned by
1450 GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo.
1451 (key_event): use uChar.UnicodeChar only if
1452 w32_console_unicode_input is non-zero.
1453
1454 * w32console.c: Include w32heap.h.
1455 <w32_console_unicode_input>: New global variable.
1456 (initialize_w32_display): Set w32_console_unicode_input to 1 on NT
1457 family of Windows, zero otherwise.
1458
1459 * w32inevt.h: Declare w32_console_unicode_input.
1460
df81cd29
EZ
1461 * xdisp.c (init_iterator): Don't reference tip_frame in a build
1462 --without-x. (Bug#11742)
1463
c20fdd9e
PE
14642012-07-27 Paul Eggert <eggert@cs.ucla.edu>
1465
1466 Adjust GDB to reflect pvec_type changes (Bug#12036).
1467 * .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the
14ae4239
BT
1468 2012-07-04 changes to pseudovector representation.
1469 Problem reported by Eli Zaretskii in <http://bugs.gnu.org/12036#30>.
c20fdd9e 1470
32770973 14712012-07-27 Michael Albinus <michael.albinus@gmx.de>
e518bc71
MA
1472
1473 * dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session
1474 bus address.
1475 (xd_close_bus, Fdbus_init_bus): Handle reference counter properly.
1476
3438fe21
EZ
14772012-07-27 Eli Zaretskii <eliz@gnu.org>
1478
bcfbc9de
EZ
1479 * alloc.c (listn): Fix the order the arguments are consed onto the
1480 list.
1481
3438fe21
EZ
1482 * lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
1483 enumeration constants, as PURE and HEAP are too general, and clash
1484 with other headers and sources, such as gmalloc.c and the
1485 MS-Windows system headers. All users changed.
1486
eeaea515
DA
14872012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
1488
1489 Revert last save_excursion_save and save_excursion_restore changes.
1490 * alloc.c, editfns.c, marker.c, lisp.h: Revert.
1491 Lots of crashes reported by Chong Yidong <cyd@gnu.org>.
1492
073c88c2
DA
14932012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
1494
1495 Fix recently-introduced typos in Windows port.
1496 Reported by Martin Rudalics <rudalics@gmx.at>.
1497 * w32.c (init_environment): Replace comma with semicolon.
eeaea515 1498 * w32fns.c (syms_of_w32fns): Add missing parenthesis.
073c88c2 1499
4706125e
PE
15002012-07-27 Paul Eggert <eggert@cs.ucla.edu>
1501
1502 Improve GDB symbol export (Bug#12036).
1503 * .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different
1504 arms of an 'if', not using conditional expressions; otherwise GDB
1505 complains about the types in the unevaluated arm when the argument
1506 is an integer literal.
1507 (xgetint): Simplify expression.
1508 * alloc.c (gdb_make_enums_visible): New constant. This ports to
1509 GCC 3.4.2 the export of symbols to GDB. Problem reported by Eli
1510 Zaretskii in <http://bugs.gnu.org/12036#13>.
1511 * lisp.h (PUBLISH_TO_GDB): Remove. All uses removed. No longer
1512 needed now that we have gdb_make_enums_visible.
1513 (enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits)
1514 (enum enum_USE_LSB_TAG):
1515 New enum types, packaging up enums that need to be exported to GDB.
1516
694b6c97
DA
15172012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
1518
1519 Utility function to make a list from specified amount of objects.
1520 * lisp.h (enum constype): New datatype.
1521 (listn): New prototype.
1522 * alloc.c (listn): New function.
1523 (Fmemory_use_count, syms_of_alloc): Use it.
1524 * buffer.c (syms_of_buffer): Likewise.
1525 * callint.c (syms_of_callint): Likewise.
1526 * charset.c (define_charset_internal): Likewise.
1527 * coding.c (syms_of_coding): Likewise.
1528 * keymap.c (syms_of_keymap): Likewise.
1529 * search.c (syms_of_search): Likewise.
1530 * syntax.c (syms_of_syntax): Likewise.
1531 * w32.c (init_environment): Likewise.
1532 * w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
1533 * xdisp.c (syms_of_xdisp): Likewise.
1534 * xfns.c (syms_of_xfns): Likewise.
1535
6195f384
DA
15362012-07-27 Dmitry Antipov <dmantipov@yandex.ru>
1537
1538 Fast save_excursion_save and save_excursion_restore.
1539 * lisp.h (struct Lisp_Excursion): New data type.
1540 (PVEC_EXCURSION): New pseudovector type.
1541 (XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
1542 to deal with it. Adjust comments.
1543 (init_marker, attach_marker): New prototype.
1544 (unchain_marker): Adjust prototype.
1545 * marker.c (attach_marker): Change to global.
1546 (init_marker): New function.
1547 * alloc.c (Fmake_marker, build_marker): Use it.
1548 (build_marker): More easserts.
1549 (mark_object): Handle struct Lisp_Excursion.
1550 * editfns.c (save_excursion_save, save_excursion_restore):
1551 Reimplement to use struct Lisp_Excursion. Add comments.
1552
5eceb8fb
PE
15532012-07-26 Paul Eggert <eggert@cs.ucla.edu>
1554
1555 Fix export of symbols to GDB (Bug#12036).
1556 * alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL)
1557 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from
1558 emacs.c, as this is a more-suitable home. Had this been done earlier
1559 the fix for 12036 would have avoided some of the problems noted in
1560 <http://bugs.gnu.org/12036#13> by Eli Zaretskii, as the scope problems
1561 would have been more obvious.
562157c8
PE
1562 * emacs.c: Do not include <verify.h>; no longer needed.
1563 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS)
5eceb8fb
PE
1564 (gdb_GCTYPEBITS, gdb_USE_LSB_TAG)
1565 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
1566 Remove; now done in lisp.h.
1567 * lisp.h (PUBLISH_TO_GDB): New macro.
1568 (GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type)
1569 (DATA_SEG_BITS): Use it.
1570 (GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB.
1571 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB.
1572 * mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need
1573 not be usable in #if. This simplifies things.
1574
d6749401
JB
15752012-07-26 Juanma Barranquero <lekktu@gmail.com>
1576
1577 * makefile.w32-in ($(BLD)/emacs.$(O)): Update dependencies.
1578
1781b9e9
PE
15792012-07-26 Paul Eggert <eggert@cs.ucla.edu>
1580
d89518db 1581 Simplify export of symbols to GDB (Bug#12036).
1781b9e9
PE
1582 * .gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix =
1583 $bugfix.i", as this doesn't work (with GDB 7.4.1, anyway).
1584 (xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr):
1585 Adjust to changes in lisp.h and emacs.c, by using
1586 CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead
1587 of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits,
1588 INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of
1589 gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS
1590 instead of gdb_valbits.
1591 (xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use
1592 PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG
1593 instead of gdb_array_mark_flag.
1594 (xboolvector): Get size from $->size, not $->header.size.
1595 Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants.
1596 (xreload, hook-run, hookpost-run): Remove.
1597 * emacs.c: Include <verify.h>.
1598 (gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits)
1599 (gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type):
1600 Remove.
1601 (gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS)
1602 (gdb_USE_LSB_TAG): New enum constants.
1603 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
1604 Also define these as enum constants, so they're visible to GDB.
1605 (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros.
1606 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these
1607 as constants, so they're visible to GDB.
1608 * lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS)
1609 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR):
1610 Now enum constants, not macros, so they're visible to GDB.
1611 (CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is
1612 more convenient now. All uses changed.
1613 (VALMASK) [USE_LSB_TAG]: Also define in this case.
1614 * mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change.
1615
3628596a
DA
16162012-07-26 Dmitry Antipov <dmantipov@yandex.ru>
1617
1618 Explicitly free restriction data that are not needed anymore.
1619 * editfns.c (save_restriction_restore): Free restriction data.
1620
7abaf5cc
SM
16212012-07-26 Stefan Monnier <monnier@iro.umontreal.ca>
1622
1623 * eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp,
1624 add argument, tune behavior, and adjust all callers.
1625
71f88e00
PE
16262012-07-25 Paul Eggert <eggert@cs.ucla.edu>
1627
1628 Use typedef for EMACS_INT, EMACS_UINT.
1629 * lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
1630 than macros. This simplifies debugging in the usual case, since
1631 it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
1632 and it allows expressions involving EMACS_INT casts.
1633 * .gdbinit (xreload): Simplify by using EMACS_INT cast.
1634
57ec3034
JD
16352012-07-25 Jan Djärv <jan.h.d@swipnet.se>
1636
1637 * nsterm.m (ns_read_socket): Return early if there is a modal
1638 window (Bug#12043).
1639
8137e7b3
MR
16402012-07-25 Martin Rudalics <rudalics@gmx.at>
1641
1642 * frame.c (Fredirect_frame_focus): In doc-string don't mention
1643 that FOCUS-FRAME can be omitted.
1644
04e9897c
DA
16452012-07-25 Dmitry Antipov <dmantipov@yandex.ru>
1646
1647 Adjust buffer text indirection counters at the end of Fkill_buffer.
1648 * buffer.c (Fkill_buffer): Adjust indirection counters when the
1649 buffer is definitely dead. This should really fix an issue reported
1650 by Christoph Scholtes again. (Bug#12007).
1651 (init_buffer_once): Initialize indirection counters of
1652 buffer_defaults and buffer_local_symbols (for sanity and safety).
1653
8a0484e1
EZ
16542012-07-24 Eli Zaretskii <eliz@gnu.org>
1655
1656 * xdisp.c (init_iterator): Don't compute dimensions of truncation
1657 and continuation glyphs on tooltip frames, leave them at zero.
1658 Avoids continued lines in tooltips. (Bug#11832)
1659
fa691a83
DA
16602012-07-24 Dmitry Antipov <dmantipov@yandex.ru>
1661
1662 Simplify copy_overlay.
04e9897c 1663 * buffer.c (copy_overlay): Simplify. Use build_marker.
fa691a83
DA
1664 * lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks.
1665
436bc8e0
EZ
16662012-07-23 Eli Zaretskii <eliz@gnu.org>
1667
1668 * print.c (print_object): Don't crash when a frame's name is nil
1669 or invalid. (Bug#12025)
1670
1671 * window.c (decode_any_window): Disable CHECK_LIVE_FRAME test, as
1672 it signals an error when a tooltip frame is being created.
1673
d7a7fda3
DA
16742012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
1675
1676 Cleanup miscellaneous objects allocation and initialization.
1677 * alloc.c (allocate_misc): Change to static. Add argument to
1678 specify the subtype. Adjust comment and users.
1679 (build_overlay): New function.
1680 * buffer.c (copy_overlays, Fmake_overlay): Use it.
1681 * lisp.h (struct Lisp_Overlay): Remove obsolete comment.
1682 (allocate_misc): Remove prototype.
1683 (build_overlay): Add prototype.
1684
16852012-07-23 Dmitry Antipov <dmantipov@yandex.ru>
372f8ffc
DA
1686
1687 Swap buffer text indirection counters in Fbuffer_swap_text.
1688 * buffer.c (Fbuffer_swap_text): Swap indirections too.
1689 This avoids crash reported by Christoph Scholtes at
1690 http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-07/msg00785.html.
1691
9d7fa573
JD
16922012-07-22 Jan Djärv <jan.h.d@swipnet.se>
1693
1694 * nsmenu.m (Popdown_data): New struct.
1695 (pop_down_menu): p->pointer is Popdown_data. Release the pool and
1696 free Popdown_data.
1697 (ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu.
1698 (initWithContentRect): Make imgView and contentView non-static
1699 and autorelease them. Also autorelease img and matrix (Bug#12005).
1700 (dealloc): Remove (Bug#12005).
1701
0dd6d66d
DA
17022012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
1703
1704 Adjust consing_since_gc when objects are explicitly freed.
1705 * alloc.c (GC_DEFAULT_THRESHOLD): New macro.
1706 (Fgarbage_collect): Use it. Change minimum to 1/10 of default.
1707 (free_cons, free_misc): Subtract object size from consing_since_gc.
1708
d36d71df
DA
17092012-07-22 Dmitry Antipov <dmantipov@yandex.ru>
1710
1711 Simplify and cleanup markers positioning code.
1712 * marker.c (attach_marker): More useful eassert.
1713 (live_buffer, set_marker_internal): New function.
1714 (Fset_marker, set_marker_restricted): Use set_marker_internal.
1715 (set_marker_both, set_marker_restricted_both): Use live_buffer.
1716
fb9ea40f
PE
17172012-07-22 Paul Eggert <eggert@cs.ucla.edu>
1718
1719 * buffer.h (struct buffer.indirections): Now ptrdiff_t, not int,
1720 as it's limited by the amount of memory, not by INT_MAX.
1721
2d5c5f7d
EZ
17222012-07-21 Eli Zaretskii <eliz@gnu.org>
1723
07fb592e
EZ
1724 * keyboard.c (keys_of_keyboard): Bind language-change to 'ignore'
1725 in special-event-map. See the discussion at
1726 http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00417.html
1727 for the reasons.
1728
37a9eac8 1729 * w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning
14ae4239
BT
1730 info.dwItemData. Fixes crashes on 64-bit Windows.
1731 Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
2d5c5f7d 1732
c4328746
JD
17332012-07-21 Jan Djärv <jan.h.d@swipnet.se>
1734
1735 * nsterm.m (accessibilityAttributeValue): New function. (Bug#11134).
4b17afa7 1736 (conversationIdentifier): Return value is NSInteger.
784051c4 1737 * nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA.
c4328746 1738
6e5d1c12
CY
17392012-07-21 Chong Yidong <cyd@gnu.org>
1740
1741 * window.c (decode_any_window): Signal an error if the window is
1742 on a dead frame (Bug#11984).
1743
9928463d
DA
17442012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
1745
1746 Add indirection counting to speed up Fkill_buffer.
1747 * buffer.h (struct buffer): New member.
1748 * buffer.c (Fget_buffer_create): Set indirection counter to 0.
1749 (Fmake_indirect_buffer): Set indirection counter to -1, increment
1750 base buffer indirection counter.
1751 (compact_buffer): If ENABLE_CHECKING, verify indirection counters.
1752 (Fkill_buffer): Adjust indirection counters as needed, don't walk
1753 through buffer list if indirection counter is 0.
1754
f8643a6b
DA
17552012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
1756
1757 Extend the value returned by Fgarbage_collect with heap statistics.
1758 * alloc.c (Qheap): New symbol.
1759 (syms_of_alloc): DEFSYM it.
1760 (Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data.
1761 (Fmemory_free): Remove.
1762 (syms_of_alloc): Don't defsubr it.
1763 * buffer.c (Fcompact_buffer): Remove.
1764 (syms_of_buffer): Don't defsubr it.
1765
dac616ff
DA
17662012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
1767
1768 Make maybe_gc inline.
1769 Verify that inlining is always possible (GCC 4.7.1, -O3 -Winline).
1770 * lisp.h (consing_since_gc, gc_relative_threshold)
1771 (memory_full_cons_threshold): Revert declaration.
1772 (maybe_gc): Remove prototype, define as inline.
1773 * alloc.c: Remove old commented-out code.
1774 (consing_since_gc, gc_relative_threshold)
1775 (memory_full_cons_threshold): Revert to global.
1776 (maybe_gc): Remove.
1777
d7ea76b4
DA
17782012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
1779
1780 Simple wrapper for make_unibyte_string, adjust font_open_by_name.
1781 * lisp.h (build_unibyte_string): New function.
1782 * dosfns.c, fileio.c, fns.c, ftfont.c, process.c:
1783 * sysdep.c, w32fns.c, xfns.c: Use it.
1784 * font.c (font_open_by_name): Change 2nd and 3rd args to the only arg
1785 of type Lisp_Object to avoid redundant calls to make_unibyte_string.
1786 Adjust users accordingly.
1787 * font.h (font_open_by_name): Adjust prototype.
1788
765e61e3
DA
17892012-07-20 Dmitry Antipov <dmantipov@yandex.ru>
1790
1791 Cleanup calls to Fgarbage_collect.
1792 * lisp.h (maybe_gc): New prototype.
1793 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
1794 Remove declarations.
1795 * alloc.c (maybe_gc): New function.
1796 (consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
1797 Make them static.
1798 * bytecode.c (MAYBE_GC): Use maybe_gc.
1799 * eval.c (eval_sub, Ffuncall): Likewise.
1800 * keyboard.c (read_char): Likewise. Adjust call to maybe_gc
1801 to avoid dependency from auto-save feature.
1802
52b852c7
PE
18032012-07-19 Paul Eggert <eggert@cs.ucla.edu>
1804
1805 * buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'.
1806 (FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from
1807 'for_each_per_buffer_object_at'.
1808 All uses changed. It's better to use upper-case for macros that
1809 cannot be implemented as functions, to give the reader a clue
1810 that they're special.
1811
5db81e33
SM
18122012-07-19 Stefan Monnier <monnier@iro.umontreal.ca>
1813
1814 * alloc.c (Fgarbage_collect): Tweak docstring.
1815
5b835e1d
DA
18162012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
1817
1818 Tweak the value returned from Fgarbage_collect again.
1819 * alloc.c (Fgarbage_collect): New return value, as confirmed in
1820 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00418.html.
1821 Adjust documentation.
1822 (total_vector_bytes): Rename to total_vector_slots, adjust
1823 accounting.
1824 (total_free_vector_bytes): Rename to total_free_vector_slots,
1825 adjust accounting.
1826 (Qstring_bytes, Qvector_slots): New symbols.
1827 (syms_of_alloc): DEFSYM them.
1828
9cd47b72
DA
18292012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
1830
1831 Buffer compaction primitive which may be used from Lisp.
1832 * buffer.c (compact_buffer, Fcompact_buffer): New function.
1833 (syms_of_buffer): Register Fcompact_buffer.
1834 * alloc.c (Fgarbage_collect): Use compact_buffer.
1835 * buffer.h (compact_buffer): New prototype.
1836 (struct buffer_text): New member.
1837
d17337e5
DA
18382012-07-19 Dmitry Antipov <dmantipov@yandex.ru>
1839
1840 New macro to iterate over all buffers, miscellaneous cleanups.
1841 * lisp.h (all_buffers): Remove declaration.
1842 * buffer.h (all_buffers): Add declaration, with comment.
1843 (for_each_buffer): New macro.
1844 * alloc.c (Fgarbage_collect, mark_object): Use it.
1845 * buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte)
1846 (init_buffer): Likewise.
1847 * data.c (Fset_default): Likewise.
1848 * coding.c (code_conversion_restore): Remove redundant check
1849 for dead buffer.
1850 * buffer.c (Fkill_buffer): Likewise. Remove obsolete comment.
1851
60cfd278
AS
18522012-07-18 Andreas Schwab <schwab@linux-m68k.org>
1853
1854 Fix bug that created negative-length intervals.
1855 * intervals.c (merge_interval_right, merge_interval_left):
1856 Do not zero out this interval if it is absorbed by its children,
1857 as this interval's total length doesn't change in that case. See
1858 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00403.html>.
1859
d06714cb
PE
18602012-07-18 Paul Eggert <eggert@cs.ucla.edu>
1861
83713154
PE
1862 * alloc.c (Fmake_bool_vector): Fix off-by-8 bug
1863 when invoking (make-bool-vector N t) and N is a positive
1864 multiple of 8 -- the last 8 bits were mistakenly cleared.
1865
d06714cb
PE
1866 Remove some struct layout assumptions in bool vectors.
1867 * alloc.c (bool_header_size): New constant.
1868 (header_size, word_size): Move earlier, as they're now used earlier.
1869 Use 'word_size' in a few more places, where it's appropriate.
1870 (Fmake_bool_vector, sweep_vectors): Don't assume that there is no
1871 padding before the data member of a bool vector.
1872 (sweep_vectors): Use PSEUDOVECTOR_TYPEP, in an eassert, rather
1873 than doing the check by hand with an abort ().
1874
464d5a5e
SM
18752012-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
1876
5fbc0409
SM
1877 * eval.c (Fdefvar): Don't check constants since we only set the var if
1878 it's not yet defined anyway (bug#11904).
1879
464d5a5e
SM
1880 * lisp.h (last_undo_boundary): Declare new var.
1881 * keyboard.c (command_loop_1): Set it.
1882 * cmds.c (Fself_insert_command): Use it to only remove boundaries that
1883 were auto-added by the command loop (bug#11774).
1884
8dc2e44a
AS
18852012-07-18 Andreas Schwab <schwab@linux-m68k.org>
1886
1887 * w32font.c (Qsymbol): Remove local definition.
1888 (syms_of_w32font): Don't DEFSYM it.
1889
169925ec
DA
18902012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
1891
1892 Fix sweep_vectors to handle large bool vectors correctly.
1893 * alloc.c (sweep_vectors): Account total_vector_bytes for
1894 bool vectors larger than VBLOCK_BYTES_MAX.
1895
5fbfb018
CY
18962012-07-18 Chong Yidong <cyd@gnu.org>
1897
1898 * frame.c (x_set_frame_parameters): Revert bogus change introduced
1899 in 2012-05-25 commit by Paul Eggert (Bug#11738).
1900
3ab6e069
DA
19012012-07-18 Dmitry Antipov <dmantipov@yandex.ru>
1902
1903 Return more descriptive data from Fgarbage_collect.
1904 Suggested by Stefan Monnier in
1905 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00369.html.
1906 * alloc.c (bounded_number): New function.
1907 (total_buffers, total_vectors): New variable.
1908 (total_string_size): Rename to total_string_bytes, adjust users.
1909 (total_vector_size): Rename to total_vector_bytes, adjust users.
1910 (sweep_vectors): Account total_vectors and total_vector_bytes.
1911 (Fgarbage_collect): New return value. Adjust documentation.
1912 (gc_sweep): Account total_buffers.
1913 (Fmemory_free, Fmemory_use_counts): Use bounded_number.
1914 (VECTOR_SIZE): Remove.
1915 * data.c (Qfloat, Qvector, Qsymbol, Qstring, Qcons): Make global.
1916 (Qinterval, Qmisc): New symbols.
1917 (syms_of_data): Initialize them.
1918 * lisp.h (Qinterval, Qsymbol, Qstring, Qmisc, Qvector, Qfloat)
1919 (Qcons, Qbuffer): New declarations.
1920
6d02fe5b
PE
19212012-07-17 Paul Eggert <eggert@cs.ucla.edu>
1922
1923 * alloc.c (Fmemory_free): Account for memory-free's own storage.
1924 Round up, not down. Improve doc.
1925
b7ffe040
DA
19262012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
1927
1928 Restore old code in allocate_string_data to avoid Faset breakage.
1929 Reported by Julien Danjou <julien@danjou.info> in
1930 http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00371.html.
1931 * alloc.c (allocate_string_data): Restore old code with minor
1932 adjustments, fix comment to explain this subtle issue.
1933
4dc7c8d5
SM
19342012-07-17 Eli Zaretskii <eliz@gnu.org>
1935
1936 Remove FILE_SYSTEM_CASE.
1937 * s/msdos.h (FILE_SYSTEM_CASE): Don't define.
1938
1939 * fileio.c (FILE_SYSTEM_CASE): Don't define.
1940 (Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE.
1941 Fixes problems on MS-DOS with Vtemp_file_name_pattern when
1942 call-process-region passes it through expand-file-name.
1943
1944 * dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE.
1945
19462012-07-17 Andreas Schwab <schwab@linux-m68k.org>
1947
1948 Fix crash when creating indirect buffer (Bug#11917)
1949 * buffer.c (buffer_lisp_local_variables): Add argument CLONE.
1950 Don't handle unbound variables specially if non-zero.
1951 (Fbuffer_local_variables): Pass zero.
1952 (clone_per_buffer_values): Pass non-zero.
1953
19542012-07-17 Andreas Schwab <schwab@linux-m68k.org>
1955
1956 * gnutls.c (emacs_gnutls_handshake): Revert last change. Add QUIT
1957 to make the loop interruptible.
1958
19592012-07-17 Andreas Schwab <schwab@linux-m68k.org>
1960
1961 * gnutls.c (emacs_gnutls_handshake): Only retry if
1962 GNUTLS_E_INTERRUPTED.
1963
cce7fefc
DA
19642012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
1965
1966 Cleanup and convert miscellaneous checks to eassert.
1967 * alloc.c (mark_interval): Fix comment, partially rephrase
1968 old comment from intervals.h (see below).
1969 * intervals.c (find_interval, adjust_intervals_for_insertion)
1970 (delete_interval, adjust_intervals_for_deletion)
1971 (graft_intervals_into_buffer, temp_set_point_both, copy_intervals):
1972 Convert to eassert.
1973 (adjust_intervals_for_insertion, make_new_interval):
1974 Remove obsolete and unused code.
1975 * intervals.h (struct interval): Remove obsolete comment.
1976 * textprotp.c (erase_properties): Remove unused code.
1977 (Fadd_text_properties, set_text_properties_1, Fremove_text_properties)
1978 (Fremove_list_of_text_properties): Convert to eassert.
1979
9ea10cc3
CY
19802012-07-17 Chong Yidong <cyd@gnu.org>
1981
1982 * editfns.c (Finsert_char): Doc fix.
1983
3900d5de
DA
19842012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
1985
1986 Fix previous change to make Fmemory_free always accurate.
1987 * alloc.c (make_interval): Update total_free_intervals.
1988 (make_float): Likewise for total_free_floats.
1989 (free_cons, Fcons): Likewise for total_free_conses.
1990 (SETUP_ON_FREE_LIST, allocate_vector_from_block):
1991 Likewise for total_free_vector_bytes.
1992 (Fmake_symbol): Likewise for total_free_symbols.
1993 (bytes_free): Remove.
1994
7098646f
DA
19952012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
1996
1997 Simple free memory accounting feature.
1998 * alloc.c (bytes_free, total_free_vector_bytes): New variable.
1999 (sweep_vectors): Accumulate size of free vectors.
2000 (Fgarbage_collect): Setup bytes_free.
2001 (Fmemory_free): New function.
2002 (syms_of_alloc): Register it.
2003
22657b40
DA
20042012-07-17 Dmitry Antipov <dmantipov@yandex.ru>
2005
2006 Cleanup overlays checking.
2007 * buffer.h (OVERLAY_VALID): Remove as useless synonym of OVERLAYP.
2008 * buffer.c (overlay_touches_p, recenter_overlay_lists): Change to
2009 eassert and OVERLAYP.
2010 (sort_overlays): Change to use OVERLAYP.
2011
ddfc8813
RK
20122012-07-16 René Kyllingstad <Rene@Kyllingstad.com> (tiny change)
2013
2014 * editfns.c (Finsert_char): Make it interactive, and make the
2015 second arg optional. Copy interactive spec and docstring from
2016 ucs-insert.
2017
7c26cf3c
PE
20182012-07-17 Paul Eggert <eggert@cs.ucla.edu>
2019
2020 * floatfns.c (Fabs): Do not wrap fabs inside IN_FLOAT (Bug#11913).
2021 Unlike the other wrapped functions, fabs has an unspecified
2022 effect on errno.
2023
5d127af9
JD
20242012-07-16 Jan Djärv <jan.h.d@swipnet.se>
2025
2026 * nsterm.m (keyDown): Interpret flags without left/right bits
2027 as the left key (Bug#11670).
2028
6a0dd1d7
DA
20292012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
2030
2031 Remove empty and useless init functions.
2032 * lisp.h (init_character_once, init_fns, init_image)
2033 (init_filelock, init_sound): Remove prototype.
2034 * character.c (init_character_once): Remove.
2035 * filelock.c (init_filelock): Likewise.
2036 * fns.c (init_fns): Likewise.
2037 * image.c (init_image): Likewise.
2038 * sound.c (init_sound): Likewise.
2039 * emacs.c (main): Adjust accordingly.
2040
7a6136fd
DA
20412012-07-16 Dmitry Antipov <dmantipov@yandex.ru>
2042
2043 * gtkutil.h: Tiny cleanups.
2044 (use_old_gtk_file_dialog): Remove useless declaration.
2045 (xg_uses_old_file_dialog): Add suggested const attribute.
2046
ce811ad9
EZ
20472012-07-15 Eli Zaretskii <eliz@gnu.org>
2048
2049 * bidi.c (MAX_STRONG_CHAR_SEARCH): New macro.
2050 (bidi_paragraph_init): Use it to limit search forward for a strong
2051 directional character in abnormally large paragraphs full of
2052 neutral or weak characters. (Bug#11943)
2053
c9adfeaa
SF
20542012-07-15 Stefano Facchini <stefano.facchini@gmail.com> (tiny change)
2055
2056 * gtkutil.c (xg_create_tool_bar): Apply "primary-toolbar" style to
2057 the toolbar (Bug#9451).
2058 (xg_make_tool_item): Give the widget event box a transparent
2059 background.
2060
fff62aa9
DA
20612012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
2062
2063 Cleanup basic allocation variables and functions.
2064 * alloc.c (ignore_warnings, init_intervals, init_float)
2065 (init_cons, init_symbol, init_marker): Remove.
2066 (interval_block_index): Initialize to INTERVAL_BLOCK_SIZE.
2067 (float_block_index): Initialize to FLOAT_BLOCK_SIZE.
2068 (cons_block_index): Initialize to CONS_BLOCK_SIZE.
2069 (symbol_block_size): Initialize to SYMBOL_BLOCK_SIZE.
2070 (marker_block_index): Initialize to MARKER_BLOCK_SIZE.
2071 (staticidx, init_alloc_once, init_strings, free_ablock):
2072 Remove redundant initialization.
2073 * fns.c (init_weak_hash_tables): Remove.
2074 * lisp.h (init_weak_hash_tables): Remove prototype.
2075
9730daca
DA
20762012-07-15 Dmitry Antipov <dmantipov@yandex.ru>
2077
2078 Use zero_vector where appropriate.
2079 * alloc.c (zero_vector): Define as Lisp_Object. Adjust users
2080 accordingly.
2081 * lisp.h (zero_vector): New declaration.
2082 * font.c (null_vector): Remove.
2083 (syms_of_font): Remove initialization and staticpro.
2084 (font_list_entities, font_find_for_lface): Change to use zero_vector.
2085 * keymap.c (Faccessible_keymaps): Likewise.
2086
2e2d2a13
LL
20872012-07-15 Leo Liu <sdl.web@gmail.com>
2088
2089 * fringe.c: Fix typo in comments.
2090
cd276f6e
LL
20912012-07-14 Leo Liu <sdl.web@gmail.com>
2092
2093 * fringe.c: Add a new bitmap exclamation-mark.
2094
5a1131d9
EZ
20952012-07-14 Eli Zaretskii <eliz@gnu.org>
2096
2097 * gmalloc.c (GMALLOC_INHIBIT_VALLOC): Don't reference.
2098
2099 * s/msdos.h (BSD_SYSTEM, DATA_START, GC_SETJMP_WORKS, HAVE_MOUSE)
2100 (HAVE_MENUS): Don't define, defined by editing config.in with
2101 msdos/sed2v2.inp.
2102 (GMALLOC_INHIBIT_VALLOC): Don't define.
2103 (MODE_LINE_BINARY_TEXT): Remove, not used anymore.
2104
22e983b7
JB
21052012-07-14 Juanma Barranquero <lekktu@gmail.com>
2106
2107 * s/ms-w32.h (GC_SETJMP_WORKS, GC_MARK_STACK): Set in nt/config.nt.
2108
5b3f250f
GM
21092012-07-14 Glenn Morris <rgm@gnu.org>
2110
2111 * s/aix4-2.h, s/freebsd.h, s/gnu-linux.h, s/hpux10-20.h:
2112 * s/irix6-5.h, s/netbsd.h, s/sol2-6.h, s/unixware.h:
2113 Let configure set GC_SETJMP_WORKS, GC_MARK_STACK.
2114
33d63ff4
GM
21152012-07-13 Glenn Morris <rgm@gnu.org>
2116
5b633342
GM
2117 * s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Let configure set it.
2118
33d63ff4
GM
2119 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Let configure set it.
2120 * s/irix6-5.h (SETUP_SLAVE_PTY): No more need to unset it.
2121
b55b9f85
JD
21222012-07-13 Jan Djärv <jan.h.d@swipnet.se>
2123
0dc8cf50
JD
2124 * nsterm.m (uRect): Only define if NS_IMPL_GNUSTEP.
2125 (x_free_frame_resources): Pass x_free_frame_resources to NSTRACE.
2126 (ns_lisp_to_color, ns_string_to_lispmod, ns_term_init)
2127 (ns_term_shutdown, requestService, initFrameFromEmacs): Use SSDATA
2128 where appropriate.
2129 (ns_exec_path, ns_load_path, changeFont): Put () around assignment used
2130 as boolean expression.
2131 (x_set_window_size): Remove unused variable toolbar.
2132 (ns_get_color_default, ns_mod_to_lisp): Remove.
2133 (ns_mouse_position): Remove unused variables xchar and ychar.
2134 (ns_compute_glyph_string_overhangs): Remove unused variable face.
2135 (ns_set_vertical_scroll_bar): Remove unused variable count.
2136 (ns_delete_terminal): Remove unused variable i.
2137 (ns_term_init): Remove unused variables r, g and b.
2138 (mouseDown): Remove unused variable window.
2139 (windowDidResize): Move definition of theWindow inside NS_IMPL_GNUSTEP.
2140 (initFrameFromEmacs): Remove unused variable vbextra.
2141 (mouseEntered): Remove unused variables p and dpyinfo.
2142 (mouseExited): Remove unused variables p and r.
2143 (ns_define_frame_cursor, ns_clear_frame_area)
2144 (ns_draw_window_cursor, ns_initialize_display_info): Make static.
2145 (menuDown): Assign [sender tag] to variable and cast the variable.
2146
2147 * nsterm.h (menuDown): Add id as type to argument sender.
2148 (ns_display_info_for_name): Add Lisp_Object argument.
2149 (ns_term_init): Add Lisp_Object argument.
2150 (ns_map_event_to_object): Add void argument.
2151 (ns_string_from_pasteboard, ns_string_to_pasteboard): Add correct
2152 prototype with arguments and only declare if __OBJC__.
2153 (nxatoms_of_nsselect): Add void argument.
2154 (ns_lisp_to_cursor_type): Add Lisp_Object argument.
2155 (ns_alloc_autorelease_pool): Add void argument.
2156 (ns_release_autorelease_pool): Add void* argument.
2157 (ns_get_defaults_value): Add const char* argument.
2158
2159 * nsmenu.m (ns_update_menubar, ns_menu_show, process_dialog)
2160 (initFromContents): Use SSDATA where appropriate.
2161 (ns_update_menubar): Add braces to ambigous if-else.
2162 (initWithTitle): Put () around assignment in if statement.
2163 (ns_menu_show): Remove unused variables window and keymap.
2164 (update_frame_tool_bar): Remove unused variable selected_p.
2165 (initWithContentRect): Remove unused variable this_cmd_name.
2166
2167 * nsimage.m (ns_load_image, allocInitFromFile): Use SSDATA where
2168 appropriate.
2169 (setXBMColor): Remove unused variable len.
2170 (setPixmapData): Put () around assignment in loop statement.
2171
2172 * nsfont.m (ns_get_family, ns_lang_to_script, ns_otf_to_script)
2173 (ns_registry_to_script, ns_get_req_script, nsfont_open): Use SSDATA
2174 where appropriate.
2175 (ns_get_covering_families, ns_findfonts, nsfont_list_family): Put ()
2176 around assignment in loop statement.
2177 (nsfont_open): Remove unused variable i.
2178 (nsfont_open): Remove unused variable len.
2179 (nsfont_draw): Remove unused variable cs.
2180
2181 * nsfns.m (x_set_icon_name, ns_set_name_internal)
2182 (ns_set_name_as_filename, ns_implicitly_set_icon_type)
2183 (x_set_icon_type, ns_lisp_to_cursor_type, Fns_read_file_name)
2184 (Fns_get_resource, Fns_set_resource, Fx_open_connection)
2185 (Fns_font_name, Fns_perform_service)
2186 (Fns_convert_utf8_nfd_to_nfc, ns_do_applescript)
2187 (Fns_do_applescript, Fx_show_tip): Use SSDATA where appropriate.
2188 (ns_set_name): Remove unused variable view.
2189 (x_set_menu_bar_lines): Remove unused variable olines.
2190 (x_set_tool_bar_lines): Remove unused variable root_window.
2191 (Fns_list_colors): Put () around assignment in while statement.
2192 (Fns_perform_service): Remove unused variable len.
2193 (Fns_display_usable_bounds): Remove unused variable top.
2194 (syms_of_nsfns): Remove unused variable i.
2195
b55b9f85
JD
2196 * nsmenu.m (ns_update_menubar): Exchange place of argument 2 and 3 to
2197 memcpy (Bug#11907).
2198
ed9265fc 21992012-07-13 Kalle Kankare <kalle.kankare@iki.fi> (tiny change)
2277de02
JD
2200
2201 * image.c (Fimagemagick_types): Initialize ex with GetExceptionInfo
2202 and free it with DestroyExceptionInfo (Bug#11558).
2203
ef099b57
JB
22042012-07-13 Juanma Barranquero <lekktu@gmail.com>
2205
2206 * s/ms-w32.h (FIRST_PTY_LETTER, HAVE_SOCKETS): Move to nt/config.nt.
2207 (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE___BUILTIN_UNWIND_INIT):
2208 Set here, not in nt/config.nt.
2209
ea814a5d
EZ
22102012-07-13 Eli Zaretskii <eliz@gnu.org>
2211
2212 * xdisp.c (move_it_in_display_line_to): On GUI terminals, allow
2213 cursor overflow into the last glyph on display line when the right
2214 fringe is off. (Bug#11832)
2215
1a952767
PE
22162012-07-13 Paul Eggert <eggert@cs.ucla.edu>
2217
2218 * xdisp.c (produce_special_glyphs): Now static.
2219 * dispextern.h (produce_special_glyphs): Remove decl.
2220
983188fd
GM
22212012-07-13 Glenn Morris <rgm@gnu.org>
2222
8d7c7eed 2223 * s/bsd-common.h, s/cygwin.h: Remove empty files.
32fb4bb6
GM
2224 * s/freebsd.h, s/netbsd.h: Do not include bsd-common.h.
2225
983188fd
GM
2226 * s/usg5-4-common.h (USG, USG5):
2227 * s/template.h (USG5, USG, HPUX, BSD4_2, BSD_SYSTEM):
2228 * s/sol2-6.h (SOLARIS2):
2229 * s/irix6-5.h (IRIX6_5):
2230 * s/hpux10-20.h (USG, USG5, HPUX):
2231 * s/gnu-linux.h (USG, GNU_LINUX):
2232 * s/freebsd.h (BSD_SYSTEM):
2233 * s/darwin.h (BSD4_2, BSD_SYSTEM, DARWIN_OS):
2234 * s/cygwin.h (CYGWIN):
2235 * s/bsd-common.h (BSD_SYSTEM, BSD4_2):
2236 * s/aix4-2.h (USG, USG5, _AIX): Move "system type" macros to configure.
2237
d1e68667 22382012-07-13 BT Templeton <bpt@hcoop.net> (tiny change)
24ef80ae
PE
2239
2240 * nsfont.m (ns_charset_covers): Don't abort if no bitmap (Bug#11853).
24ef80ae 2241
6de0e799
GM
22422012-07-13 Glenn Morris <rgm@gnu.org>
2243
739ae010
GM
2244 * s/usg5-4-common.h (NSIG_MINIMUM): Let configure set it.
2245
dbee5793
GM
2246 * s/gnu-linux.h, s/irix6-5.h: Let configure set ULIMIT_BREAK_VALUE.
2247
6de0e799
GM
2248 * process.c (init_process_emacs): Replace MIN_PTY_KERNEL_VERSION.
2249 * s/darwin.h (MIN_PTY_KERNEL_VERSION): Remove single-use macro.
2250
b82da769
GM
22512012-07-12 Glenn Morris <rgm@gnu.org>
2252
4fae5a7a 2253 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Move to configure.
b82da769
GM
2254
2255 * process.c (init_process_emacs): Rename from init_process.
2256 The old name is also the name of a Mach system call.
2257 * lisp.h, emacs.c: Update for this name change.
2258 * nsgui.h, sysselect.h, s/darwin.h: Remove workaround that is no
2259 longer needed.
2260
5a979817
EZ
22612012-07-12 Eli Zaretskii <eliz@gnu.org>
2262
2263 * xdisp.c (insert_left_trunc_glyphs): Fix incorrect size in
2264 memmove call that removes glyphs covered by the left truncation
2265 glyph. Improve commentary.
2266 (display_line): Fix display of continuation glyphs on GUI frames
2267 when the right fringe is turned off and variable-size fonts are
2268 used in the window. Move the code that appends a stretch glyph to
2269 produce_special_glyphs, so that it could be used for truncation
2270 and continuation glyphs alike.
2271 (produce_special_glyphs) [HAVE_WINDOW_SYSTEM]: Produce a stretch
2272 glyph of a suitably computed width, to align the special glyphs at
2273 the window margin. Code moved from display_line. (Bug#11832)
2274
3e91a053
GM
22752012-07-12 Glenn Morris <rgm@gnu.org>
2276
ba9e4b84
GM
2277 * s/aix4-2.h, s/hpux10-20.h: Let configure set NO_EDITRES.
2278
2279 * s/gnu-linux.h, s/hpux10-20.h:
2280 Do not unconditionally define HAVE_XRMSETDATABASE.
2281
3e91a053
GM
2282 * s/gnu-linux.h (UNIX98_PTYS): Let configure set it.
2283
b300b1f4
PE
22842012-07-12 Paul Eggert <eggert@cs.ucla.edu>
2285
2286 Fix typos that broke OS X build.
2287 Reported by Randal L. Schwartz in
2288 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00225.html>.
2289 * nsterm.m (ns_timeout): Add missing local decl.
2290 (ns_get_color): snprintf -> sprintf, to fix typo.
2291
6e777848
GM
22922012-07-12 Glenn Morris <rgm@gnu.org>
2293
3f922c37
GM
2294 * src/s/aix4-2.h, src/s/cygwin.h, src/s/darwin.h:
2295 * src/s/gnu-linux.h, src/s/hpux10-20.h, src/s/irix6-5.h:
2296 * src/s/sol2-6.h, src/s/unixware.h, src/s/usg5-4-common.h:
2297 Move PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF to configure.
2298
0ab7b23a
GM
2299 * s/cygwin.h, s/darwin.h, s/gnu-linux.h, s/irix6-5.h:
2300 Move PTY_OPEN to configure.
2301
6e777848
GM
2302 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
2303 * s/gnu-linux.h, s/hpux10-20.h, s/irix6-5.h, s/template.h:
2304 * s/usg5-4-common.h: Move FIRST_PTY_LETTER, PTY_ITERATION to configure.
2305
4a7edc24
DA
23062012-07-12 Dmitry Antipov <dmantipov@yandex.ru>
2307
2308 Use empty_unibyte_string where applicable.
2309 * keyboard.c (parse_tool_bar_item): Use empty_unibyte_string.
2310 * lread.c (read1): Likewise.
2311 * xsettings.c (syms_of_xsettings): Likewise.
2312
308aab79
GM
23132012-07-12 Glenn Morris <rgm@gnu.org>
2314
42bd1719
GM
2315 * s/cygwin.h (G_SLICE_ALWAYS_MALLOC):
2316 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN):
7ccad002
GM
2317 * s/irix6-5.h (SETPGRP_RELEASES_CTTY, PREFER_VSUSP):
2318 * s/hpux10-20.h (RUN_TIME_REMAP):
2319 * s/bsd-common.h (TABDLY): Move to configure.
2320
2321 * s/hpux10-20.h, s/sol2-6.h: Move XOS_NEEDS_TIME_H to configure.
2322
2323 * s/bsd-common.h, s/darwin.h: Move TAB3 to configure.
2324
ea0bbd17 2325 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
42bd1719 2326 (BROKEN_SIGPOLL, BROKEN_GET_CURRENT_DIR_NAME): Let configure set them.
ea0bbd17
GM
2327
2328 * s/darwin.h (NO_ABORT, NO_MATHERR): Let configure set them.
51c3b9b4 2329
308aab79
GM
2330 * s/bsd-common.h, s/cygwin.h, s/gnu-linux.h, s/irix6-5.h:
2331 * s/template.h: Move NARROWPROTO to configure.
2332
ee1cf5cf
GM
23332012-07-11 Glenn Morris <rgm@gnu.org>
2334
30fe9bf4
GM
2335 * s/gnu-linux.h, s/sol2-6.h: No longer define POSIX,
2336 unused since 2011-01-17 change to systty.h.
2337
ee1cf5cf
GM
2338 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h, s/gnu-linux.h:
2339 * s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
2340 Move HAVE_PTYS and HAVE_SOCKETS to configure.
2341
63e47e07
PE
23422012-07-11 Paul Eggert <eggert@cs.ucla.edu>
2343
2344 * s/sol2-6.h (HAVE_LIBKSTAT): Remove. (Bug#11914)
2345
c43fb4c3
GM
23462012-07-11 Glenn Morris <rgm@gnu.org>
2347
2348 * s/darwin.h, s/gnu-linux.h, s/template.h:
2349 Move INTERRUPT_INPUT to configure.
2350
e8df9267
DA
23512012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
2352
2353 Minor adjustments to interning code.
2354 * lisp.h (intern, intern_c_string): Redefine as static inline
2355 wrappers for intern_1 and intern_c_string_1, respectively.
2356 (intern_1, intern_c_string_1): Rename prototypes.
14ae4239
BT
2357 * lread.c (intern_1, intern_c_string_1, oblookup):
2358 Simplify Vobarray checking.
e8df9267
DA
2359 * font.c (font_intern_prop): Likewise. Adjust comment.
2360 * w32font.c (intern_font_name): Likewise.
2361
34348bd4
AS
23622012-07-11 Andreas Schwab <schwab@linux-m68k.org>
2363
d96a1e0c
AS
2364 * gnutls.c (Fgnutls_boot): Properly parse :keylist argument.
2365
34348bd4
AS
2366 * coding.c (Fdefine_coding_system_internal): Use XCAR/XCDR instead
2367 of Fcar/Fcdr if possible.
2368 * font.c (check_otf_features): Likewise.
2369 * fontset.c (Fnew_fontset): Likewise.
2370 * gnutls.c (Fgnutls_boot): Likewise.
2371 * minibuf.c (read_minibuf): Likewise.
2372 * msdos.c (IT_set_frame_parameters): Likewise.
2373 * xmenu.c (Fx_popup_dialog): Likewise.
2374 * w32menu.c (Fx_popup_dialog): Likewise.
2375
c8add24e
GM
23762012-07-11 Glenn Morris <rgm@gnu.org>
2377
4b575b3c
GM
2378 * s/bsd-common.h, s/cygwin.h: No need to undefine INTERRUPT_INPUT,
2379 since nothing has defined it on these platforms.
2380
09f4e3b0
GM
2381 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h:
2382 * s/irix6-5.h: Move SIGNALS_VIA_CHARACTERS to configure.
2383
172bedef
GM
2384 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
2385 * s/gnu-linux.h, s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
2386 Move CLASH_DETECTION to configure.
2387
249685df
GM
2388 * s/gnu.h: Remove file, which is now empty.
2389
c8add24e
GM
2390 * s/gnu.h, s/gnu-linux.h:
2391 Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure.
2392
b41253a3
JW
23932012-07-11 John Wiegley <johnw@newartisans.com>
2394
2395 * alloc.c (mark_memory): Guard the "no_address_safety_analysis"
2396 function attribute, so we only use it if it exists in the
2397 compiler.
2398
d923b542
DA
23992012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
2400
2401 Avoid call to strlen in fast_c_string_match_ignore_case.
2402 * search.c (fast_c_string_match_ignore_case): Change to use
2403 length argument. Adjust users accordingly.
2404 * lisp.h (fast_c_string_match_ignore_case): Adjust prototype.
2405
5ebbef1d
PE
24062012-07-11 Paul Eggert <eggert@cs.ucla.edu>
2407
bb352260
PE
2408 Assume mkdir, rmdir.
2409 * sysdep.c (mkdir) [!HAVE_MKDIR]: Remove.
2410 * sysdep.c (rmdir) [!HAVE_RMDIR]: Remove.
2411
57054ddd
PE
2412 Assume rename.
2413 * sysdep.c (rename) [!HAVE_RENAME]: Remove.
2414
b747d3f7
PE
2415 Assume perror.
2416 * s/hpux10-20.h (HAVE_PERROR): Remove.
2417 * sysdep.c (perror) [HPUX && !HAVE_PERROR]:
2418 Remove dummy definition, as this problem was obsolete long ago.
2419
5ebbef1d
PE
2420 Assume strerror.
2421 * sysdep.c (strerror) [!HAVE_STRERROR && !WINDOWSNT]: Remove.
2422
984e7f30
DA
24232012-07-11 Dmitry Antipov <dmantipov@yandex.ru>
2424
2425 Avoid calls to strlen in font processing functions.
2426 * font.c (font_parse_name, font_parse_xlfd, font_parse_fcname)
14ae4239
BT
2427 (font_open_by_name): Change to use length argument.
2428 Adjust users accordingly.
d923b542
DA
2429 * font.h (font_open_by_name, font_parse_xlfd, font_unparse_xlfd):
2430 Adjust prototypes.
2431 * xfont.c (xfont_decode_coding_xlfd, font_unparse_xlfd):
2432 Change to return ptrdiff_t.
984e7f30
DA
2433 (xfont_list_pattern, xfont_match): Use length returned by
2434 xfont_decode_coding_xlfd.
2435 * xfns.c (x_default_font_parameter): Omit useless xstrdup.
2436
20e94fdd
GM
24372012-07-11 Glenn Morris <rgm@gnu.org>
2438
9d596af3
GM
2439 * s/darwin.h, s/freebsd.h, s/netbsd.h:
2440 Move DONT_REOPEN_PTY to configure.
2441
20e94fdd
GM
2442 * sound.c (DEFAULT_SOUND_DEVICE) [!WINDOWSNT]:
2443 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Let configure set it.
2444
e99a530f
PE
24452012-07-10 Paul Eggert <eggert@cs.ucla.edu>
2446
22ffb973
PE
2447 Remove "#define unix" that is no longer needed (Bug#11905).
2448 * s/aix4-2.h (unix): Remove; no longer needed.
2449
e9a9ae03
PE
2450 EMACS_TIME simplification (Bug#11875).
2451 This replaces macros (which typically do not work in GDB)
2452 with functions, typedefs and enums, making the code easier to debug.
2453 The functional style also makes code easier to read and maintain.
2454 * systime.h: Include <sys/time.h> on all hosts, not just if
2455 WINDOWSNT, since 'struct timeval' is needed in general.
2456 (EMACS_TIME): Now a typedef, not a macro.
2457 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants,
2458 not macros.
2459 (EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P)
2460 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ)
2461 (EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT)
2462 (EMACS_TIME_LE): Now functions, not macros.
2463 (EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS)
2464 (EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros,
2465 which are not functions. All uses rewritten to use:
2466 (make_emacs_time): New function.
2467 (EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME)
2468 (EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are
2469 not functions. All uses rewritten to use the following, respectively:
2470 (emacs_secs_addr, invalid_emacs_time, get_emacs_time)
2471 (add_emacs_time, sub_emacs_time): New functions.
ed9265fc 2472 * atimer.c: Don't include <sys/time.h>, as "systime.h" does this.
e9a9ae03
PE
2473 * fileio.c (Fcopy_file):
2474 * xterm.c (XTflash): Get the current time closer to when it's used.
2475 * makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
2476
ffacb126
PE
2477 * bytecode.c (targets): Suppress -Woverride-init warnings.
2478
e99a530f
PE
2479 Simplify by avoiding confusing use of strncpy etc.
2480 * doc.c (Fsnarf_documentation):
2481 * fileio.c (Ffile_name_directory, Fsubstitute_in_file_name):
2482 * frame.c (Fmake_terminal_frame):
2483 * gtkutil.c (get_utf8_string):
2484 * lread.c (openp):
2485 * nsmenu.m (ns_update_menubar):
2486 * regex.c (regerror):
2487 Prefer memcpy to strncpy and strncat when either will do.
2488 * fileio.c (Fsubstitute_in_file_name):
2489 * keyboard.c (MULTI_LETTER_MOD, parse_modifiers_uncached)
2490 (menu_separator_name_p):
2491 * nsmenu.m (ns_update_menubar):
2492 Prefer memcmp to strncmp when either will do.
2493 * nsterm.m: Include <ftoastr.h>.
2494 (ns_get_color):
2495 * s/gnu-linux.h, s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF):
2496 Prefer snprintf to strncpy.
2497 * nsterm.m (ns_term_init):
2498 * widget.c (set_frame_size) [0]: Prefer xstrdup to xmalloc + strncpy.
2499 * nsterm.m (ns_term_init):
2500 Avoid the need for strncpy, by using build_string or
2501 make_unibyte_string directly. Use dtoastr, not snprintf.
2502 * process.c (Fmake_network_process): Diagnose service names that
2503 are too long, rather than silently truncating them or creating
2504 non-null-terminated names.
2505 (Fnetwork_interface_info): Likewise, for interface names.
2506 * sysdep.c (system_process_attributes) [GNU_LINUX]:
2507 Prefer sprintf to strncat.
2508 * xdisp.c (debug_method_add) [GLYPH_DEBUG]:
2509 Prefer vsnprintf to vsprintf + strncpy.
2510
c59592b3
GM
25112012-07-10 Glenn Morris <rgm@gnu.org>
2512
2513 * dispnew.c (PENDING_OUTPUT_COUNT) [!__GNU_LIBRARY__]:
2514 Clarify fallback case.
2515
7d7bbefd
DA
25162012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
2517
2518 Use XCAR and XCDR instead of Fcar and Fcdr where possible.
2519 * callint.c, coding.c, doc.c, editfns.c, eval.c, font.c, fontset.c,
2520 * frame.c, gnutls.c, minibuf.c, msdos.c, textprop.c, w32fns.c,
d923b542 2521 * w32menu.c, window.c, xmenu.c: Change to use XCAR and XCDR
7d7bbefd
DA
2522 where argument type is known to be a Lisp_Cons.
2523
3a4c8000
TT
25242012-07-10 Tom Tromey <tromey@redhat.com>
2525
2526 * bytecode.c (BYTE_CODE_THREADED): New macro.
2527 (BYTE_CODES): New macro. Replaces all old byte-code defines.
2528 (enum byte_code_op): New type.
2529 (CASE, NEXT, FIRST, CASE_DEFAULT, CASE_ABORT): New macros.
2530 (exec_byte_code): Use them. Use token threading when applicable.
2531
2a0213a6
DA
25322012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
2533
2534 Optimize pure C strings initialization.
2535 * lisp.h (make_pure_string): Fix prototype.
2536 (build_pure_c_string): New function, defined as static inline. This
2537 provides a better opportunity to optimize away calls to strlen when
2538 the function is called with compile-time constant argument.
2539 * alloc.c (make_pure_c_string): Fix comment. Change to add nchars
2540 argument, adjust users accordingly. Use build_pure_c_string where
2541 appropriate.
2542 * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c,
2543 * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c,
2544 * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
2545
cb1caeaf
DA
25462012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
2547
2548 Avoid calls to strlen in miscellaneous functions.
2549 * buffer.c (init_buffer): Use precalculated len, adjust if needed.
2550 * font.c (Ffont_xlfd_name): Likewise. Change to call make_string.
2551 * lread.c (openp): Likewise.
2552
c293e30c
DA
25532012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
2554
2555 Avoid calls to strlen in path processing functions.
2556 * fileio.c (file_name_as_directory): Add comment. Change to add
2557 srclen argument and return the length of result. Adjust users
2558 accordingly.
2559 (directory_file_name): Fix comment. Change to add srclen argument,
14ae4239
BT
2560 swap 1st and 2nd arguments to obey the common convention.
2561 Adjust users accordingly.
c293e30c
DA
2562 * filelock.c (fill_in_lock_file_name): Avoid calls to strlen.
2563
9e059e3f
GM
25642012-07-10 Glenn Morris <rgm@gnu.org>
2565
d02eb359
GM
2566 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/netbsd.h, s/unixware.h:
2567 Move PENDING_OUTPUT_COUNT definition to configure.
2568
882cf227
GM
2569 * s/irix6-5.h (DATA_START, DATA_SEG_BITS):
2570 * s/hpux10-20.h (DATA_SEG_BITS, DATA_START):
2571 * s/gnu.h (DATA_START): Move definitions to configure.
2572
af6e839f
GM
2573 * s/irix6-5.h (SETUP_SLAVE_PTY, PTY_NAME_SPRINTF): Drop ifdef guards.
2574 We include usg5-4-common.h, which defines them both.
2575
40289a12
GM
2576 * s/gnu.h: Don't include fcntl.h (every file in Emacs that uses
2577 O_RDONLY already includes it).
2578
9e059e3f
GM
2579 Stop ns builds setting the EMACSLOADPATH environment variable.
2580 * nsterm.m (ns_load_path): Rename from ns_init_paths.
2581 Now it does not set EMACSLOADPATH, just returns the load-path string.
2582 * nsterm.h: Update accordingly.
2583 * lread.c [HAVE_NS]: Include nsterm.h.
2584 (init_lread) [HAVE_NS]: Use ns_load_path.
2585 * emacs.c (main) [HAVE_NS]: No longer call ns_init_paths.
2586
7c4e8ec0
GM
25872012-07-09 Glenn Morris <rgm@gnu.org>
2588
d4f600ff
GM
2589 * s/gnu.h (SIGNALS_VIA_CHARACTERS): No need to define it here,
2590 since the included bsd-common.h does so.
2591
cbb31951
GM
2592 Stop ns builds setting the EMACSPATH environment variable.
2593 * nsterm.m (ns_exec_path): New function, split from ns_init_paths.
2594 (ns_init_paths): Do not set EMACSPATH.
2595 * nsterm.h (ns_exec_path): Add it.
2596 * callproc.c (init_callproc_1, init_callproc) [HAVE_NS]:
2597 Use ns_exec_path.
2598
7c4e8ec0
GM
2599 * nsterm.m, nsterm.h (ns_etc_directory): Fix type, empty return.
2600
26bccfae
PE
26012012-07-09 Paul Eggert <eggert@cs.ucla.edu>
2602
a0bee46f
PE
2603 * process.c (wait_reading_process_output): 'waitchannels' was unset
2604 when read_kbd || !NILP (wait_for_cell); fix this.
2605
5994c183
PE
2606 Add GCC-style 'const' attribute to functions that can use it.
2607 * character.h (char_resolve_modifier_mask):
2608 * keyboard.h (make_ctrl_char):
2609 * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe)
2610 (init_character_once, next_almost_prime, init_fns, init_image)
2611 (flush_pending_output, init_sound):
2612 * mem-limits.h (start_of_data):
2613 * menu.h (finish_menu_items):
2614 Add ATTRIBUTE_CONST.
2615 * emacs.c (DEFINE_DUMMY_FUNCTION):
2616 Declare the dummy function with ATTRIBUTE_CONST.
2617 * lisp.h (Fbyteorder, Fmax_char, Fidentity):
2618 Add decls with ATTRIBUTE_CONST.
2619
26bccfae
PE
2620 Minor improvements to make_formatted_string.
2621 * alloc.c (make_formatted_string): Prefer int to ptrdiff_t
2622 where int is good enough, as vsprintf returns an int.
2623 * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF.
2624
a8290ec3
DA
26252012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
2626
2627 Use make_formatted_string to avoid double length calculation.
2628 * lisp.h (make_formatted_string): New prototype.
2629 * alloc.c (make_formatted_string): New function.
2630 * buffer.c (Fgenerate_new_buffer_name): Use it.
2631 * dbus.c (syms_of_dbusbind): Likewise.
2632 * editfns.c (Fcurrent_time_zone): Likewise.
2633 * filelock.c (get_boot_time): Likewise.
2634 * frame.c (make_terminal_frame, set_term_frame_name)
2635 (x_report_frame_params): Likewise.
2636 * image.c (gs_load): Likewise.
2637 * minibuf.c (get_minibuffer): Likewise.
2638 * msdos.c (dos_set_window_size): Likewise.
2639 * process.c (make_process): Likewise.
2640 * xdisp.c (ensure_echo_area_buffers): Likewise.
2641 * xsettings.c (apply_xft_settings): Likewise.
2642
d01ba2f1
GM
26432012-07-09 Glenn Morris <rgm@gnu.org>
2644
2645 Stop ns builds polluting the environment with EMACSDATA, EMACSDOC.
2646 * nsterm.m (ns_etc_directory): New function, split from ns_init_paths.
2647 (ns_init_paths): Do not set EMACSDATA, EMACSDOC.
2648 * nsterm.h (ns_etc_directory): Add it.
2649 * callproc.c [HAVE_NS]: Include nsterm.h.
2650 (init_callproc_1, init_callproc) [HAVE_NS]: Use ns_etc_directory.
2651
f1f924b6
DA
26522012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
2653
2654 Move marker debugging code under MARKER_DEBUG.
2655 * marker.c (MARKER_DEBUG): Move marker debugging code under
2656 #ifdef MARKER_DEBUG because byte_char_debug_check is too slow
2657 for bootstrap with --enable-checking (~3x slowdown reported
2658 by Juanma Barranquero <lekktu@gmail.com>).
2659 (verify_bytepos): Move under #ifdef MARKER_DEBUG.
2660
ab531b66
PE
26612012-07-08 Paul Eggert <eggert@cs.ucla.edu>
2662
2663 * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t.
2664 See <http://bugs.gnu.org/11825#29>.
2665
c4b3bc8a
EZ
26662012-07-08 Eli Zaretskii <eliz@gnu.org>
2667
2668 * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph
2669 has no font, use the frame's font. (Bug#11813)
3434fe8a
EZ
2670 (display_line): Add commentary about displaying truncation glyphs
2671 on GUI frames.
2672 (produce_special_glyphs): Move here from term.c.
2673
2674 * term.c (produce_special_glyphs): Move to xdisp.c.
2675
2676 * dispextern.h (produce_special_glyphs): Move prototype to xdisp.c
2677 section.
c4b3bc8a 2678
b676b881
AS
26792012-07-07 Andreas Schwab <schwab@linux-m68k.org>
2680
f17c5273
AS
2681 * xdisp.c (display_line): Avoid warning about implicit declaration
2682 of FRAME_FONT.
2683
298819b9
AS
2684 * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM.
2685
b676b881
AS
2686 * lisp.h: Remove empty conditional.
2687
6045c4fd
PE
26882012-07-07 Paul Eggert <eggert@cs.ucla.edu>
2689
b3350bf9
PE
2690 * lread.c (load_path_check): Now static.
2691
6045c4fd
PE
2692 Fix some minor --with-ns problems found by static checking.
2693 * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]:
2694 (x_set_font) [!HAVE_X_WINDOWS]:
2695 * image.c (xpm_load_image) [HAVE_NS]:
2696 (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]:
2697 (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]:
2698 Remove unused local.
2699 (Fx_parse_geometry) [HAVE_NS]: Don't return garbage.
2700 (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label.
2701 * image.c (x_create_bitmap_from_file) [HAVE_NS]:
2702 (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]:
2703 * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal):
2704 * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]:
2705 Fix pointer signedness problem.
2706 * xfaces.c (FRAME_X_FONT_TABLE):
2707 * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros.
2708
929e7845
GM
27092012-07-07 Glenn Morris <rgm@gnu.org>
2710
2711 * lread.c (load_path_check): New function, split from init_lread.
2712 (init_lread): Reorganize. Motivation:
2713 If EMACSLOADPATH is set, check/warn about that rather than the
2714 defaults, which we are not going to use. Hence we can remove
2715 the turn_off_warning and WINDOWSNT || HAVE_NS tests.
2716 Don't warn if site-lisp directories are missing.
2717 If not installed, start from a blank load-path, since
2718 PATH_LOADSEARCH refers to the eventual installation directories.
2719
58dd0aa4
EZ
27202012-07-07 Eli Zaretskii <eliz@gnu.org>
2721
2722 Support truncation and continuation glyphs on GUI frames, when
2723 fringes are disabled. (Bug#11832)
2724 * xdisp.c (init_iterator): Get dimensions of truncation and
14ae4239
BT
2725 continuation glyphs even if on GUI frames.
2726 Adjust it->last_visible_x on GUI frames when the left or right fringes,
58dd0aa4
EZ
2727 or both, are absent.
2728 (start_display, move_it_in_display_line_to): Handle the case of a
2729 GUI frame without a fringe to display continuation or truncation
2730 glyphs.
2731 (insert_left_trunc_glyphs): Support GUI frames: make sure
2732 truncation glyphs overwrite enough glyphs from the current line to
2733 have sufficient space in pixels.
2734 (display_line): Support truncation and continuation glyphs on GUI
2735 frames. If some spare pixels are left on the line after inserting
2736 the truncation glyphs, fill that space with a stretch glyph of a
2737 suitably computed width.
2738
2739 * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not
2740 produce_glyphs, to support GUI sessions.
2741
31571fd7
PE
27422012-07-07 Paul Eggert <eggert@cs.ucla.edu>
2743
5a16b9bc
PE
2744 * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781).
2745
f3047c75
PE
2746 * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797).
2747
31571fd7
PE
2748 Do not require float-time's arg to fit in time_t (Bug#11825).
2749 This works better on hosts where time_t is unsigned, and where
2750 float-time is applied to the (negative) difference between two times.
2751 * editfns.c (decode_time_components): Last arg is now double *,
2752 not int *, and means to store all the result as a double, without
2753 worrying about whether the seconds part fits in time_t.
2754 All callers changed.
2755 (lisp_time_argument): Remove last int * arg, as it's no longer needed.
2756 All callers changed.
2757 (Ffloat_time): Do not fail merely because the specified time falls
2758 outside of time_t range.
2759
4516fbef
GM
27602012-07-07 Glenn Morris <rgm@gnu.org>
2761
2762 * s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV):
2763 * s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM):
2764 * s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively).
2765
07adc2c6
JB
27662012-07-07 Juanma Barranquero <lekktu@gmail.com>
2767
2768 * makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)):
2769 Update dependencies.
2770
2771 * s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp.
2772
fd573f31
PE
27732012-07-06 Paul Eggert <eggert@cs.ucla.edu>
2774
fee5959d
PE
2775 Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
2776 * dispextern.h, nsfns.m, nsterm.m: Include <c-strcase.h>.
2777 * dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp.
2778 * nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp.
2779 * nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp.
2780 * xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove.
2781
fd573f31
PE
2782 * xfont.c (compare_font_names): Redo to omit the need for casts.
2783
ddadbc0e
AS
27842012-07-06 Andreas Schwab <schwab@linux-m68k.org>
2785
fca8d6b6
AS
2786 * xfns.c (Fx_change_window_property): Doc fix.
2787 * w32fns.c (Fx_change_window_property): Doc fix.
2788
ddadbc0e
AS
2789 * w32fns.c (Fx_window_property): Accept the same arguments as the
2790 X Windows version. Doc fix.
2791 * xfns.c (Fx_window_property): Doc fix. (Bug#11870)
2792
ed9265fc 27932012-07-06 Juanma Barranquero <lekktu@gmail.com>
f247498e
JB
2794 Eli Zaretskii <eliz@gnu.org>
2795
2796 * s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt.
2797 Windows-specific code from nt/config.nt moved here.
2798 Obsolete settings removed.
2799
216ee680
PE
28002012-07-06 Paul Eggert <eggert@cs.ucla.edu>
2801
2802 * process.c: Avoid unnecessary calls to gettime.
2803 (wait_reading_process_output): Don't get the time of day
2804 when gobbling data immediately and not waiting, as there's no need
2805 for it in that case. This removes a FIXME.
2806
bdd091e4
JD
28072012-07-06 Jan Djärv <jan.h.d@swipnet.se>
2808
2809 * gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3
2810 is defined (Bug#11768).
2811
9d44f8ce
DA
28122012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
2813
2814 Fix marker debugging code.
2815 * marker.c (byte_char_debug_check): Do not perform the check
2816 if buffer is not multibyte.
090bd7cb
JB
2817 (buf_charpos_to_bytepos, buf_bytepos_to_charpos):
2818 Call byte_char_debug_check with correct arguments.
9d44f8ce 2819
90fc4786
DA
28202012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
2821
2822 Compile marker debugging code only if ENABLE_CHECKING is defined.
090bd7cb
JB
2823 * marker.c (byte_char_debug_check, count_markers):
2824 Use only if ENABLE_CHECKING is defined.
90fc4786
DA
2825 (byte_debug_flag): Remove.
2826 (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos):
2827 Always call byte_char_debug_check if ENABLE_CHECKING is defined.
2828
7b7ae965
DA
28292012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
2830
4e57b342
DA
2831 Avoid code repetition in marker-related functions.
2832 * marker.c (attach_marker): New function.
2833 (Fset_marker, set_marker_restricted, set_marker_both)
2834 (set_marker_restricted_both): Use it.
2835 (Fset_marker, set_marker_restricted, Fbuffer_has_markers_at):
2836 Consistently rename charno to charpos.
2837 (marker_position): Add eassert.
2838 (marker_byte_position): Convert to eassert.
2839
28402012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
2841
2842 Simplify list operations in unchain_overlay and unchain_marker.
7b7ae965 2843 * buffer.c (unchain_overlay): Simplify. Add comment.
4e57b342 2844 * marker.c (unchain_marker): Simplify. Fix comments.
7b7ae965 2845
657924ff
DA
28462012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
2847
2848 Introduce fast path for the widely used marker operation.
2849 * alloc.c (build_marker): New function.
2850 * lisp.h (build_marker): New prototype.
2851 * buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it.
2852 * composite.c (autocmp_chars): Likewise.
2853 * editfns.c (buildmark): Remove.
2854 (Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker)
2855 (save_restriction_save): Use build_marker.
2856 * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
2857 * window.c (save_window_save): Likewise.
2858
041a49a6
DA
28592012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
2860
2861 Do not use Fdelete_overlay in delete_all_overlays
2862 to avoid redundant calls to unchain_overlay.
2863 * buffer.c (drop_overlay): New function.
2864 (delete_all_overlays, Fdelete_overlay): Use it.
2865 * minibuf.c (get_minibuffer): Fix comment.
2866
7dca65a4
PE
28672012-07-06 Paul Eggert <eggert@cs.ucla.edu>
2868
2869 Port to OpenBSD 5.1 amd64.
2870 * sysdep.c [BSD_SYSTEM]: Include <sys/param.h> before <sys/sysctl.h>.
2871 This is needed for OpenBSD, and should be harmless on all BSD systems.
2872 Also, include <sys/sysctl.h>, as it should be available on all
2873 BSD_SYSTEM hosts given that we're already calling sysctl in that case.
2874 (list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but
2875 use p_pid member, not kp_proc.pid.
2876
8eb876e2
GM
28772012-07-06 Glenn Morris <rgm@gnu.org>
2878
2879 * Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows.
2880
38182d90
PE
28812012-07-05 Paul Eggert <eggert@cs.ucla.edu>
2882
2883 More xmalloc and related cleanup.
2884 * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
2885 * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
2886 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
2887 * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
2888 * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
2889 * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
2890 * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
2891 * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
2892 * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
2893 * xterm.c:
2894 Omit needless casts involving void * pointers and allocation.
2895 Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
2896 as the former is more robust if P's type is changed.
2897 Prefer xzalloc to xmalloc + memset 0.
2898 Simplify malloc-or-realloc to realloc.
2899 Don't worry about xmalloc returning a null pointer.
2900 Prefer xstrdup to xmalloc + strcpy.
2901 * editfns.c (Fmessage_box): Grow message_text by at least 80 when
2902 growing it.
2903 * keyboard.c (apply_modifiers_uncached): Prefer local array to
2904 alloca of a constant.
2905
6dd5a677
EZ
29062012-07-05 Eli Zaretskii <eliz@gnu.org>
2907
2908 * xdisp.c (display_line): Fix horizontal pixel coordinates when
2909 hscroll is larger than the line width. Fixes long and futile
2910 looping inside extend_face_to_end_of_line (on a TTY) producing
2911 glyphs that are not needed and thrown away.
2912
6b312f0f
DA
29132012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
2914
2915 * marker.c (set_marker_restricted_both): Simplify by using
2916 clip_to_bounds.
2917
f520ef9b
PE
29182012-07-05 Paul Eggert <eggert@cs.ucla.edu>
2919
2920 * editfns.c (region_limit): Simplify by using clip_to_bounds.
2921
383b7c95
JD
29222012-07-05 Jan Djärv <jan.h.d@swipnet.se>
2923
2924 * gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is
2925 not defined (Bug#11768).
2926 (xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768).
2927 (xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser)
2928 (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new
2929 followed by gtk_box_set_homogeneous (Bug#11768).
2930 (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768).
090bd7cb
JB
2931 (update_theme_scrollbar_width, xg_create_scroll_bar):
2932 Use gtk_scrollbar_new (Bug#11768).
383b7c95
JD
2933 (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3.
2934 (is_box_type): New function (Bug#11768).
2935 (xg_tool_item_stale_p): Call is_box_type.
5293d758 2936 (xg_initialize): Get settings by calling gtk_settings_get_for_screen
383b7c95
JD
2937 with default display (Bug#11768).
2938
d6e7bf45
EZ
29392012-07-05 Eli Zaretskii <eliz@gnu.org>
2940
2941 * xdisp.c (window_hscroll_limited): New function.
2942 (pos_visible_p, init_iterator): Use it to avoid overflow of pixel
2943 coordinates when window's hscroll is set to insanely large
2944 values. (Bug#11857)
2945
431391ec
JB
29462012-07-05 Juanma Barranquero <lekktu@gmail.com>
2947
2948 * makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo.
2949 ($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies.
2950
23f86fce
DA
29512012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
2952
2953 Cleanup xmalloc.
2954 * lisp.h (xzalloc): New prototype. Omit needless casts.
2955 * alloc.c (xzalloc): New function. Omit needless casts.
2956 * charset.c: Omit needless casts. Convert all calls to
2957 xmalloc with following memset to xzalloc.
2958 * dispnew.c: Likewise.
2959 * fringe.c: Likewise.
2960 * image.c: Likewise.
2961 * sound.c: Likewise.
2962 * term.c: Likewise.
2963 * w32fns.c: Likewise.
2964 * w32font.c: Likewise.
2965 * w32term.c: Likewise.
2966 * xfaces.c: Likewise.
2967 * xfns.c: Likewise.
2968 * xterm.c: Likewise.
2969 * atimer.c: Omit needless casts.
2970 * buffer.c: Likewise.
2971 * callproc.c: Likewise.
2972 * ccl.c: Likewise.
2973 * coding.c: Likewise.
2974 * composite.c: Likewise.
2975 * doc.c: Likewise.
2976 * doprnt.c: Likewise.
2977 * editfns.c: Likewise.
2978 * emacs.c: Likewise.
2979 * eval.c: Likewise.
2980 * filelock.c: Likewise.
2981 * fns.c: Likewise.
2982 * gtkutil.c: Likewise.
2983 * keyboard.c: Likewise.
2984 * lisp.h: Likewise.
2985 * lread.c: Likewise.
2986 * minibuf.c: Likewise.
2987 * msdos.c: Likewise.
2988 * print.c: Likewise.
2989 * process.c: Likewise.
2990 * region-cache.c: Likewise.
2991 * search.c: Likewise.
2992 * sysdep.c: Likewise.
2993 * termcap.c: Likewise.
2994 * terminal.c: Likewise.
2995 * tparam.c: Likewise.
2996 * w16select.c: Likewise.
2997 * w32.c: Likewise.
2998 * w32reg.c: Likewise.
2999 * w32select.c: Likewise.
3000 * w32uniscribe.c: Likewise.
3001 * widget.c: Likewise.
3002 * xdisp.c: Likewise.
3003 * xmenu.c: Likewise.
3004 * xrdb.c: Likewise.
3005 * xselect.c: Likewise.
3006
0497dc44
PE
30072012-07-05 Paul Eggert <eggert@cs.ucla.edu>
3008
3009 * fileio.c (time_error_value): Check the right error number.
3010 Problem reported by Troels Nielsen in
3011 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00095.html>.
3012
356e7178
PE
30132012-07-04 Paul Eggert <eggert@cs.ucla.edu>
3014
4e71fd89
PE
3015 * window.c (set_window_hscroll): Revert the 100000 hscroll limit.
3016 This should be fixed in a better way; see Eli Zaretskii in
3017 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00088.html>.
3018 (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.
3019
f0941253
PE
3020 * fileio.c (time_error_value): Rename from special_mtime.
3021 The old name's problems were noted by Eli Zaretskii in
3022 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00087.html>.
3023
065c9eb4
PE
3024 * emacs.c (gdb_pvec_type): Change it back to enum pvec_type.
3025 This variable's comment says Emacs needs at least one GDB-visible
3026 symbol of type enum pvec_type, to work around GDB problems.
3027 The symbol's value doesn't matter.
3028
356e7178
PE
3029 * alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';'
3030 that causes compilation to fail on pre-C99 compilers.
3031
ed9265fc 30322012-07-04 Juanma Barranquero <lekktu@gmail.com>
95f61aa2
JB
3033
3034 * s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY)
3035 (HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete.
3036
3884d954
DA
30372012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
3038
d209e2fb 3039 * buffer.c (init_buffer_once): Fix initialization of
3884d954
DA
3040 headers for buffer_defaults and buffer_local_symbols.
3041 Reported by Juanma Barranquero <lekktu@gmail.com>.
3042
ee28be33
SM
30432012-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
3044
3045 Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
3046 * lisp.h (enum pvec_type): Use fewer bits.
3047 (PSEUDOVECTOR_SIZE_BITS): New constant.
3048 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
3049 (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
3050 change in pvec_type.
3051 (PSEUDOVECTOR_TYPEP): New macro.
3052 (TYPED_PSEUDOVECTORP): Use it.
3053 * fns.c (internal_equal): Adapt code to extract pvectype.
3054 * emacs.c (gdb_pvec_type): Update type.
3055 * alloc.c (PSEUDOVECTOR_NBYTES): New macro.
3056 (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
3057 (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
3058 (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
3059 (sweep_vectors): Use it. Use local var `total_bytes' instead of
3060 abusing vector->header.next.nbytes.
3061 (live_vector_p): Use PVEC_TYPE.
3062 (mark_object): Adapt code to extract pvectype. Use switch.
3063
c7f2cd7f
PE
30642012-07-04 Paul Eggert <eggert@cs.ucla.edu>
3065
3066 * doprnt.c (doprnt): Don't assume string length fits in 'int'.
3067 Tighten new eassert a bit.
3068
8ce70ed2
DA
30692012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
3070
3071 Fix compilation with --enable-gcc-warnings and -O1
3072 optimization level.
3073 * doprnt.c (doprnt): Change type of tem to int, initialize
3074 to avoid compiler warning. Add eassert.
3075 * search.c (simple_search): Initialize match_byte to avoid
3076 compiler warning. Add eassert.
3077
dea7f1e5
PE
30782012-07-04 Paul Eggert <eggert@cs.ucla.edu>
3079
24a212eb
PE
3080 Avoid weird behavior with large horizontal scrolls.
3081 Without this change, for example, large hscroll values would
3082 mess up Emacs's display on Fedora 15 x86, presumably due to
3083 overflows in int calculations in the display code.
3084 Also, if buffers had long lines, Emacs would freeze.
3085 * window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB.
3086 (set_window_hscroll): New function, containing the old guts of
3087 Fset_window_hscroll. Return the clipped value.
3088 (Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it.
3089 This avoids the need to check against PTRDIFF_MAX.
3090
dea7f1e5
PE
3091 * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.
3092
76046526
DA
30932012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
3094
3095 * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.
3096
39adff0d
PE
30972012-07-04 Paul Eggert <eggert@cs.ucla.edu>
3098
63807d47
PE
3099 * regex.c: Suppress GCC warning on RHEL 6. (Bug#11207)
3100 Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later,
3101 since GCC 4.4.6 issues a bogus warning for them.
3102
39adff0d
PE
3103 Fix bugs in file timestamp newness comparisons.
3104 * fileio.c (Ffile_newer_than_file_p):
3105 * lread.c (Fload): Use full timestamp resolution of files,
3106 not just the 1-second resolution, so that files that are only
3107 slightly newer still count as newer.
3108 * fileio.c (Ffile_newer_than_file_p): Don't assume file
3109 timestamps fit in 'int'; this fixes a Y2038 bug on most hosts.
3110
dbeed9a6
PE
31112012-07-03 Paul Eggert <eggert@cs.ucla.edu>
3112
3113 * fileio.c: Improve handling of file time marker. (Bug#11852)
3114 (special_mtime): New function.
3115 (Finsert_file_contents, Fverify_visited_file_modtime):
3116 Use it to set special mtime values consistently.
3117
636334d6
AS
31182012-07-03 Andreas Schwab <schwab@linux-m68k.org>
3119
3120 * fileio.c (Finsert_file_contents): Properly handle st_mtime
3121 marker for non-existing file. (Bug#11852)
3122
e2017fe2
GM
31232012-07-03 Glenn Morris <rgm@gnu.org>
3124
3125 * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN
3126 and did not make it into globals.h).
3127
404dbd37
TT
31282012-07-03 Tom Tromey <tromey@redhat.com>
3129
3130 * window.c (Fset_window_margins, Fset_window_fringes)
3131 (Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
3132 * textprop.c (Fprevious_property_change): No longer static.
3133 * syntax.c (Fsyntax_table_p): No longer static.
3134 * process.c (Fget_process, Fprocess_datagram_address): No longer
3135 static.
3136 * keymap.c (Flookup_key, Fcopy_keymap): No longer static.
3137 * keyboard.c (Fcommand_execute): No longer static.
3138 Remove EXFUN.
3139 * insdel.c (Fcombine_after_change_execute): No longer static.
3140 * image.c (Finit_image_library): No longer static.
3141 * fileio.c (Fmake_symbolic_link): No longer static.
3142 * eval.c (Ffetch_bytecode): No longer static.
3143 * editfns.c (Fuser_full_name): No longer static.
d209e2fb
JB
3144 * doc.c (Fdocumentation_property, Fsnarf_documentation):
3145 No longer static.
404dbd37
TT
3146 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
3147 static.
3148 * dired.c (Ffile_attributes): No longer static.
3149 * composite.c (Fcomposition_get_gstring): No longer static.
3150 * callproc.c (Fgetenv_internal): No longer static.
3151
3152 * ccl.h: Remove EXFUNs.
3153 * buffer.h: Remove EXFUNs.
3154 * dispextern.h: Remove EXFUNs.
3155 * intervals.h: Remove EXFUNs.
3156 * fontset.h: Remove EXFUN.
3157 * font.h: Remove EXFUNs.
3158 * dosfns.c (system_process_attributes): Remove EXFUN.
3159 * keymap.h: Remove EXFUNs.
3160 * lisp.h: Remove EXFUNs.
3161 * w32term.h: Remove EXFUNs.
3162 * window.h: Remove EXFUNs.
3163 * xsettings.h: Remove EXFUN.
3164 * xterm.h: Remove EXFUN.
3165
8e4fd1e1
GM
31662012-07-03 Glenn Morris <rgm@gnu.org>
3167
3168 * lisp.h (Frandom): Make it visible to C.
3169 * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new
3170 buffer for invisible buffers. (Bug#1229)
3171
ca95b3eb
DA
31722012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
3173
3174 Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
3175 values which aren't power of 2.
14ae4239
BT
3176 * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro.
3177 Verify it's value and the value of VECTOR_BLOCK_SIZE. Adjust users
ca95b3eb
DA
3178 accordingly.
3179
7555c33f
SM
31802012-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
3181
3182 * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better.
3183
3184 * alloc.c (mark_object): Revert part of last patch to use `switch'.
3185
d12e8f5a
DA
31862012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
3187
3188 * alloc.c (allocate_vector_block): Remove redundant
3189 calls to mallopt if DOUG_LEA_MALLOC is defined.
3190 (allocate_vectorlike): If DOUG_LEA_MALLOC is defined,
3191 avoid calls to mallopt if zero_vector is returned.
3192
296094c3
DA
31932012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
3194
3195 * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES
3196 is enabled, avoid dereferencing NULL current_sblock if
3197 running undumped.
3198
36429c89
DA
31992012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
3200
3201 Cleanup basic buffer management.
3202 * buffer.h (struct buffer): Change layout to use generic vector
3203 marking code. Fix some comments. Change type of 'clip_changed'
3204 to bitfield. Remove unused #ifndef old.
3205 (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
3206 (GET_OVERLAYS_AT): Fix indentation.
3207 (for_each_per_buffer_object_at): New macro.
3208 * buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
3209 (Fbuffer_local_variables): Use it.
3210 (init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
3211 * alloc.c (allocate_buffer): Adjust to match new layout of
3212 struct buffer. Fix comment.
3213 (mark_overlay): New function.
3214 (mark_buffer): Use it. Use mark_vectorlike to mark normal
3215 Lisp area of struct buffer.
3216 (mark_object): Use it. Adjust marking of misc objects
3217 and related comments.
3218
3b3e4cac
PE
32192012-07-02 Paul Eggert <eggert@cs.ucla.edu>
3220
3221 * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS"
3222 wrapper that is not needed because the wrapped code is a no-op (zero
3223 machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined.
3224 This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64.
3225
cf5c0175
DA
32262012-07-02 Dmitry Antipov <dmantipov@yandex.ru>
3227
3228 * alloc.c (mark_buffer): Simplify. Remove prototype.
3229 (mark_object): Add comment. Reorganize marking of vector-like
faf611c7 3230 objects. Use CHECK_LIVE for all vector-like objects except buffers
14ae4239
BT
3231 and subroutines when GC_CHECK_MARKED_OBJECTS is defined.
3232 Avoid redundant calls to mark_vectorlike for bool vectors.
cf5c0175 3233
ca26824c
GM
32342012-06-30 Glenn Morris <rgm@gnu.org>
3235
2e4c5312
GM
3236 * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp.
3237
ca26824c
GM
3238 * epaths.in (PATH_SITELOADSEARCH): New.
3239 * lread.c (init_lread): Use PATH_SITELOADSEARCH.
3240 This is rather than relying on --enable-locallisppath elements
3241 having "site-lisp" in their names. (Bug#10208#25, 11658)
3242
0d23c240
EZ
32432012-06-30 Eli Zaretskii <eliz@gnu.org>
3244
c9240d7a
EZ
3245 * w32proc.c (sys_select): Accept and ignore one more argument.
3246
3247 * w32.c (emacs_gnutls_pull): Call select with one more argument.
3248
0d23c240 3249 * sysselect.h [DOS_NT]: Don't include sys/select.h.
9ff8f76b 3250 (pselect) [!MS_DOS]: Redirect to sys_select.
0d23c240
EZ
3251
3252 * sysdep.c: Don't include dos.h and dosfns.h.
3253
3254 * process.c (sys_select):
3255 * msdos.c (sys_select): Accept one more argument and ignore it.
3256
3257 * msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
3258 adapt data types and code to that.
3259
3260 * dosfns.c:
3261 * msdos.c (gettime, settime): Define away the prototypes in dos.h,
3262 which clashes with the gnulib function of the same name.
3263
af5a5a98
AS
32642012-06-30 Andreas Schwab <schwab@linux-m68k.org>
3265
c5e4379c
AS
3266 * font.c (font_style_to_value, font_style_symbolic)
3267 (font_prop_validate_style): Add type checks for values in
3268 font_style_table.
3269
af5a5a98
AS
3270 * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first
3271 argument.
3272 * character.c, charset.c, menu.c, process.c, window.c: Adjust all
3273 uses.
3274
8d38f461
EZ
32752012-06-29 Eli Zaretskii <eliz@gnu.org>
3276
2e5a6631
EZ
3277 * xdisp.c (try_window_id): Undo last change.
3278
8d38f461
EZ
3279 * w32.c (getwd): Adjust commentary about startup_dir.
3280 (init_environment): Always call sys_access, even in non-MSVC
3281 builds. Don't chdir to the directory of the Emacs executable.
3282 This undoes code from 1997 which was justified by the need to
3283 "avoid conflicts when removing and renaming directories". But its
3284 downside was that every relative file name was being interpreted
3285 relative to the directory of the Emacs executable, which can never
3286 be TRT. In particular, it broke sys_access when called with
3287 relative file names.
3288 (sys_access): Map GetLastError to errno.
3289
2af3565e
DA
32902012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
3291
3292 * window.h (struct window): Change type of 'fringes_outside_margins'
3293 to bitfield. Fix comment. Adjust users accordingly.
cf5c0175 3294 (struct window): Change type of 'window_end_bytepos' to ptrdiff_t.
2af3565e
DA
3295 Adjust comment.
3296 * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos'
3297 to ptrdiff_t.
3298
c8d3a25c 32992012-06-29 Andreas Schwab <schwab@linux-m68k.org>
57570cd3 3300
c8d3a25c
GM
3301 * gnutls.c (emacs_gnutls_handshake):
3302 Add QUIT to make the loop interruptible.
57570cd3 3303
c8d3a25c 33042012-06-29 Glenn Morris <rgm@gnu.org>
d01fd55f 3305
c8d3a25c
GM
3306 * charset.c (init_charset): Make lack of etc/charsets fatal.
3307
3e984ee8
DA
33082012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
3309
3310 * editfns.c (region_limit): Fix type mismatch.
3311
ef884f23
DA
33122012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
3313
3314 * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be
3315 undefined. Convert from xassert to eassert.
3316 * nsmenu.m: Convert from xassert to eassert.
3317 * nsterm.m: Likewise.
3318
7d7e0027
SM
33192012-06-28 Stefan Monnier <monnier@iro.umontreal.ca>
3320
3321 * editfns.c (region_limit): Clip to narrowing (bug#11770).
3322
aa754e6a
PE
33232012-06-28 Paul Eggert <eggert@cs.ucla.edu>
3324
3325 Avoid integer overflow on scroll-left and scroll-right.
3326 * window.c (HSCROLL_MAX): New macro.
3327 (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer
3328 overflow when requested scroll falls outside ptrdiff_t range.
3329
80b00b08
DA
33302012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
3331
3332 * window.h (struct window): Change type of 'hscroll',
3333 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
3334 'last_modified' and 'last_overlay_modified' to EMACS_INT.
3335 Adjust users accordingly.
3336 * xdisp.c (try_cursor_movement): Replace type check with eassert.
3337 * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
3338 from EMACS_INT to ptrdiff_t.
3339 (make_window): Omit redundant initialization.
3340
62b2bcf6
JB
33412012-06-28 Juanma Barranquero <lekktu@gmail.com>
3342
3343 * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
3344
45942c7d
DA
33452012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
3346
3347 * window.h (struct window): Change type of 'use_time' and
3348 'sequence_number' from Lisp_Object to int.
3349 * frame.c (make_frame): Adjust users accordingly.
3350 * print.c (print_object): Likewise.
3351 * window.c (select_window, Fwindow_use_time, make_parent_window)
3352 (make_window): Likewise.
3353
e509cfa6
DA
33542012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
3355
3356 * dispextern.h (GLYPH_DEBUG): Now defined in config.h if
3357 enabled with --enable-checking=[all,glyphs] configure option.
3358 Fix GLYPH_DEBUG usage assuming that it may be undefined,
3359 adjust comments accordingly.
3360 * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
3361 undefined, adjust comments accordingly.
3362 * image.c: Likewise.
3363 * scroll.c: Likewise.
3364 * w32fns.c: Likewise.
3365 * w32term.c: Likewise.
3366 * xdisp.c: Likewise.
3367 * xfaces.c: Likewise.
3368 * xfns.c: Likewise.
3369 * xterm.c: Likewise.
3370
a54e2c05
DA
33712012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
3372
3373 Generalize run-time debugging checks.
3374 * dispextern.h (XASSERTS): Remove.
3375 * fontset.c (xassert): Remove.
3376 Convert from xassert to eassert.
3377 * alloc.c: Convert from xassert to eassert.
3378 * bidi.c: Likewise.
3379 * dispnew.c: Likewise.
3380 * fns.c: Likewise.
3381 * fringe.c: Likewise.
3382 * ftfont.c: Likewise.
3383 * gtkutil.c: Likewise.
3384 * image.c: Likewise.
3385 * keyboard.c: Likewise.
3386 * menu.c: Likewise.
3387 * process.c: Likewise.
3388 * scroll.c: Likewise.
3389 * sound.c: Likewise.
3390 * term.c: Likewise.
3391 * w32console.c: Likewise.
3392 * w32fns.c: Likewise.
3393 * w32term.c: Likewise.
3394 * window.c: Likewise.
3395 * xdisp.c: Likewise.
3396 * xfaces.c: Likewise.
3397 * xfns.c: Likewise.
3398 * xselect.c: Likewise.
3399 * xterm.c: Likewise.
3400
1ec4b7b2
SM
34012012-06-27 Stefan Monnier <monnier@iro.umontreal.ca>
3402
3403 * fns.c (maybe_resize_hash_table): Output message when growing the
3404 purify-hashtable.
3405
2014308a
DA
34062012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
3407
3408 * alloc.c (allocate_string_data): Remove dead code.
3409 * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
3410 avoid GCC warning about unused macro.
3411
246155eb
DA
34122012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
3413
3414 * alloc.c (allocate_string): Omit intervals initialization.
3415 * alloc.c (make_uninit_multibyte_string): Initialize intervals
3416 as in make_pure_string and make_pure_c_string.
3417
43184b7b
DA
34182012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
3419
d209e2fb 3420 * alloc.c (allocate_string): Fix last change.
43184b7b 3421
3fe6dd74
DA
34222012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
3423
d209e2fb 3424 * alloc.c (allocate_string): Remove two redundant calls
3fe6dd74
DA
3425 to memset, add explicit initialization where appropriate.
3426
1ba6038a
GM
34272012-06-27 Glenn Morris <rgm@gnu.org>
3428
3429 * lisp.mk (lisp): Remove paths.elc.
3430
c89926a5
CY
34312012-06-27 Chong Yidong <cyd@gnu.org>
3432
3433 * doc.c (Fsubstitute_command_keys): Fix punctuation.
3434
ed6b3510
JW
34352012-06-26 John Wiegley <johnw@newartisans.com>
3436
1ec4b7b2 3437 * unexmacosx.c (copy_data_segment): Add two section names used
157e99e4
JW
3438 on Mac OS X Lion: __mod_init_func and __mod_term_func.
3439
ed6b3510
JW
3440 * alloc.c (mark_memory): Do not check with -faddress-sanitizer
3441 when building with Clang.
3442
8edd4a2b
SM
34432012-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
3444
3445 * eval.c (Fapply): Allow calling it with a single argument.
3446
f6f62d1b
EZ
34472012-06-26 Eli Zaretskii <eliz@gnu.org>
3448
3449 * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
3450 _stricmp and _strnicmp.
3451 (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
3452
62efea5e
DA
34532012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
3454
3455 * alloc.c (allocate_window): Zero out non-Lisp part of newly
3456 allocated window.
3457 (allocate_process): Likewise for new process.
8edd4a2b 3458 (allocate_terminal): Change to use offsetof.
62efea5e
DA
3459 (allocate_frame): Likewise.
3460 * frame.c (make_frame): Omit redundant initialization.
3461 * window.c (make_parent_window): Use memset.
3462 (make_window): Omit redundant initialization.
3463 * process.c (make_process): Omit redundant initialization.
3464 * terminal.c (create_terminal): Likewise.
3465
42997f4d
DA
34662012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
3467
3468 * term.c (delete_tty): Remove redundant call to memset.
3469
1130ecfc
DA
34702012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
3471
3472 * alloc.c: Remove build_string.
3473 * lisp.h: Define build_string as static inline. This provides
3474 a better opportunity to optimize away calls to strlen when the
3475 function is called with compile-time constant argument.
3476 * image.c (imagemagick_error): Convert to build_string.
3477 * w32proc.c (sys_spawnve): Likewise.
3478 * xterm.c (x_term_init): Likewise.
3479
cf38a720
PE
34802012-06-26 Paul Eggert <eggert@cs.ucla.edu>
3481
99027bdd
PE
3482 Use sprintf return value instead of invoking strlen on result.
3483 In the old days this wasn't portable, since some sprintf
3484 implementations returned char *. But they died out years ago and
3485 Emacs already assumes sprintf returns int.
3486 Similarly for float_to_string.
3487 This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
3488 * ccl.c (ccl_driver):
3489 * character.c (string_escape_byte8):
3490 * data.c (Fnumber_to_string):
3491 * doprnt.c (doprnt):
3492 * print.c (print_object):
3493 * xdisp.c (message_dolog):
3494 * xfns.c (syms_of_xfns):
3495 Use sprintf or float_to_string result to avoid need to call strlen.
3496 * data.c (Fnumber_to_string):
3497 Use make_unibyte_string, since the string must be ASCII.
3498 * lisp.h, print.c (float_to_string): Now returns int length.
3499 * term.c (produce_glyphless_glyph):
3500 Use sprintf result rather than recomputing it.
3501
cf38a720
PE
3502 Clean out last vestiges of the old HAVE_CONFIG_H stuff.
3503 * Makefile.in (ALL_CFLAGS):
3504 * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
3505 * gmalloc.c, regex.c: Include <config.h> unconditionally.
3506
3511c784
DA
35072012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
3508
0a08eb21 3509 * dispextern.h (xstrcasecmp): Define to library function
3511c784
DA
3510 strcasecmp if available.
3511 * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
3512
fb7da12e
AS
35132012-06-25 Andreas Schwab <schwab@linux-m68k.org>
3514
3515 * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
3516 Avoid comma operator.
3517 * menu.c (push_submenu_start, push_submenu_end)
3518 (push_left_right_boundary, push_menu_pane): Likewise.
3519 * msdos.c (dos_rawgetc): Likewise.
3520
afa2ffd8
DA
35212012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
3522
3523 * xfns.c (xic_create_fontsetname): Remove redundant calls
3524 to memset.
3525
b3b4476b
PE
35262012-06-25 Paul Eggert <eggert@cs.ucla.edu>
3527
4495ff38
PE
3528 * gtkutil.c (get_utf8_string): Remove redundant assignment.
3529 sprintf already null-terminates its output.
3530
b3b4476b
PE
3531 * xfns.c (x_window): Remove redundant cast.
3532
b00876c9
DA
35332012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
3534
3535 * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
3536 `const char *' to `char *' to avoid compiler warning.
3537
d188e26b
PE
35382012-06-24 Paul Eggert <eggert@cs.ucla.edu>
3539
885d1d74
PE
3540 * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
3541 instead of truncating it to 63 (admittedly a generous limit).
3542
d188e26b
PE
3543 * process.c: Fix spelling and caps in comments.
3544
e2f560b1
DN
35452012-06-24 Dan Nicolaescu <dann@ics.uci.edu>
3546
e86db54b 3547 * emacs.c (setpgrp): Remove definition, unused.
e2f560b1
DN
3548 * sysdep.c (setpgrp): Remove definition, not used in this file.
3549
7583a3a1
JB
35502012-06-24 Juanma Barranquero <lekktu@gmail.com>
3551
3552 * makefile.w32-in: Update dependencies.
3553
696056c2
EZ
35542012-06-24 Eli Zaretskii <eliz@gnu.org>
3555
3556 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
3557 (SYSTIME_H): Add nt/inc/sys/time.h.
3558
3559 * systime.h [WINDOWSNT]: Include sys/time.h.
3560
3561 * s/ms-w32.h (struct timespec): Definition moved from
3562 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
3563
845ca893
PE
35642012-06-24 Paul Eggert <eggert@cs.ucla.edu>
3565
3566 Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
3567 * buffer.h (buffer_slot_type_mismatch):
3568 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
3569 * eval.c (unwind_to_catch):
3570 * image.c (my_png_error, my_error_exit):
3571 * keyboard.c (quit_throw_to_read_char, user_error)
3572 (Fexit_recursive_edit, Fabort_recursive_edit):
3573 * lisp.h (die, args_out_of_range, args_out_of_range_3)
3574 (wrong_type_argument, buffer_overflow, __executable_start)
3575 (memory_full, buffer_memory_full, string_overflow, Fthrow)
3576 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
3577 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
3578 (fatal):
3579 (child_setup) [!DOS_NT]:
3580 * lread.c (end_of_file_error, invalid_syntax):
3581 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
3582 * puresize.h (pure_write_error):
3583 * search.c (matcher_overflow):
3584 * sound.c (sound_perror, alsa_sound_perror):
3585 * sysdep.c, syssignal.h (croak):
3586 * term.c (maybe_fatal, vfatal):
3587 * textprop.c (text_read_only):
3588 * undo.c (user_error):
3589 * unexmacosx.c (unexec_error):
3590 * xterm.c (x_ins_del_lines, x_delete_glyphs):
3591 Use _Noreturn rather than NO_RETURN.
3592 No need for separate decl merely because of _Noreturn.
3593 * sound.c (sound_warning, parse_sound):
3594 Remove unnecessary forward decls.
3595
f1dd8073
PE
35962012-06-24 Paul Eggert <eggert@cs.ucla.edu>
3597
3598 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
3599 * lisp.h (WAIT_READING_MAX): New macro.
3600 * dispnew.c (Fsleep_for, sit_for):
3601 * keyboard.c (kbd_buffer_get_event):
3602 * process.c (Faccept_process_output):
3603 Use it to avoid bogus compiler warnings with obsolescent GCC versions.
3604 This improves on the previous patch, which introduced a bug
3605 when time_t is unsigned and as wide as intmax_t.
3606 See <http://bugs.gnu.org/9000#51>.
3607
b82c1755
EZ
36082012-06-23 Eli Zaretskii <eliz@gnu.org>
3609
3610 * dispnew.c (sit_for, Fsleep_for):
3611 * keyboard.c (kbd_buffer_get_event):
3612 * process.c (Faccept_process_output): Avoid compiler warnings when
3613 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
3614
ca300656
JB
36152012-06-23 Juanma Barranquero <lekktu@gmail.com>
3616
049ec95b
JB
3617 * makefile.w32-in: Update dependencies.
3618
ca300656
JB
3619 * w32.c (ltime): Add return type and declare static.
3620 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
3621
db7b8d06
PE
36222012-06-23 Paul Eggert <eggert@cs.ucla.edu>
3623
3624 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
3625 Privately reported by Herbert J. Skuhra.
3626 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
3627 All uses changed.
3628 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
3629 not make_lisp_timeval, when the argument is of type EMACS_TIME.
3630
0bd8297f
EZ
36312012-06-23 Eli Zaretskii <eliz@gnu.org>
3632
96512555
EZ
3633 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
3634 last argument of make_unibyte_string.
3635
0bd8297f
EZ
3636 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
3637 language ID in the event parameters.
3638
3639 * w32term.c (w32_read_socket): Put the new keyboard codepage into
3640 event.code, not the obscure "character set ID".
3641
63def6b6
CY
36422012-06-23 Chong Yidong <cyd@gnu.org>
3643
3644 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
3645
e8a02204
EZ
36462012-06-23 Eli Zaretskii <eliz@gnu.org>
3647
388cdec0
EZ
3648 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
3649 * w32.c (fdutimens): New function.
3650
3651 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
3652
3653 * s/ms-w32.h (pselect): Redirect to sys_select.
3654
3655 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
3656
e8a02204
EZ
3657 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
3658 in the logic of incrementing and decrementing the value of
3659 use_relocatable_buffers.
3660
d054f3fb
PE
36612012-06-23 Paul Eggert <eggert@cs.ucla.edu>
3662
3663 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
3664 Privately reported by Herbert J. Skuhra.
3665 [__FreeBSD__]: Remove "*/" typo after "#include".
3666 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
3667 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
3668 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
3669 Don't assume EMACS_TIME and struct timeval are the same type.
3670
d35af63c
PE
36712012-06-22 Paul Eggert <eggert@cs.ucla.edu>
3672
3673 Support higher-resolution time stamps (Bug#9000).
3674 The time stamps are only nanosecond-resolution at the C level,
3675 since that's the best that any real-world system supports now.
3676 But they are picosecond-resolution at the Lisp level, as that's
3677 easy, and leaves room for future OS improvements.
3678
3679 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
3680 (LIBES): Use it.
3681
3682 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
3683 Don't get current time unless it's needed.
3684
3685 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
3686 now provides it if it's absent.
3687 (start_atimer): Port to higher-res time stamps.
3688 Check for time stamp overflow. Don't get current time more
3689 often than is needed.
3690
3691 * buffer.h (struct buffer): Buffer modtime now has high resolution.
3692 Include systime.h, not time.h.
3693 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
3694
3695 * dired.c: Include stat-time.h.
3696 (Ffile-attributes): File times now have higher resolution.
3697
3698 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
3699 (struct image): Timestamp now has higher resolution.
3700
3701 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
3702 has at least microseconds now. All uses removed.
3703 (update_frame, update_single_window, update_window, update_frame_1)
3704 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
927c7216 3705 (duration_to_sec_usec): Remove; no longer needed.
d35af63c
PE
3706
3707 * editfns.c (time_overflow): Now extern.
3708 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
3709 (float-time, Fformat_time_string, Fcurrent_time_string)
3710 (Fcurrent_time_zone): Accept and generate higher-resolution
3711 time stamps.
3712 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
3713 (decode_time_components, lisp_seconds_argument): New functions.
3714 (make_time): Now static.
3715 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
3716 Report an error if the time is invalid, rather than having the caller
3717 do that.
3718
3719 * fileio.c: Include <stat-time.h>
3720 (Fcopy_file): Copy higher-resolution time stamps.
3721 Prefer to set the time stamp via a file descriptor if that works.
3722 (Fset_file_times, Finsert_file_contents, Fwrite_region)
3723 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
3724 (Fvisited_file_modtime, Fset_visited_file_modtime):
3725 Support higher-resolution time stamps.
3726
3727 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
3728
3729 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
3730
3731 * image.c (prepare_image_for_display, clear_image_cache)
3732 (lookup_image): Port to higer-resolution time stamps.
3733
3734 * keyboard.c (start_polling, bind_polling_period):
3735 Check for time stamp overflow.
3736 (read_char, kbd_buffer_get_event, timer_start_idle)
3737 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
3738 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
3739 Port to higher-resolution time stamps. Do not assume time_t is signed.
3740 (decode_timer): New function. Timers are now vectors of length 9,
3741 not 8, to accommodate the picosecond component.
3742 (timer_check_2): Use it.
3743
3744 * nsterm.m (select_timeout, timeval_subtract): Remove.
3745 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
3746 as they're a bit more accurate and handle overflow better.
3747 (ns_select): Change prototype to be compatible with pselect.
3748 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
3749 * nsterm.h (ns_select): Adjust prototype.
3750
3751 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
3752 us-resolution time stamps.
3753 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
3754
3755 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
3756
3757 * lisp.h (time_overflow): New decl.
3758 (wait_reading_process_output): First arg is now intmax_t, not int,
3759 to accommodate larger waits.
3760
3761 * process.h (struct Lisp_Process.read_output_delay):
3762 Now counts nanoseconds, not microseconds.
3763 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
3764 EMACS_HAS_USECS.
3765 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
3766 (wait_reading_process_output):
3767 Port to ns-resolution time stamps.
3768 (Faccept_process_output, wait_reading_process_output):
3769 Check for time stamp overflow. Do not assume time_t is signed.
3770 (select_wrapper): Remove; we now use pselect.
3771 (Fprocess_attributes): Now generates ns-resolution time stamps.
3772
3773 * sysdep.c: Include utimens.h. Don't include utime.h
3774 or worry about struct utimbuf; gnulib does that for us now.
3775 (gettimeofday): Remove; gnulib provides a substitute.
3776 (make_timeval): New function.
3777 (set_file_times): Now sets ns-resolution time stamps.
3778 New arg FD; all uses changed.
3779 (time_from_jiffies, ltime_from_jiffies, get_up_time)
3780 (system_process_attributes):
3781 Now returns ns-resolution time stamp. All uses changed.
3782 Check for time stamp overflow.
3783
3784 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
3785 provides a substitute now.
3786
3787 * systime.h: Include timespec.h rather than sys/time.h and time.h,
3788 since it guarantees struct timespec.
3789 (EMACS_TIME): Now struct timespec, so that we can support
3790 ns-resolution time stamps.
3791 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
3792 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
3793 (EMACS_USECS): Remove.
3794 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
3795 so multiply the arg by 1000 before storing it.
3796 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
3797 New macros.
3798 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
3799 Port to ns-resolution time stamps.
3800 (EMACS_TIME_NEG_P): Remove; replaced by....
3801 (EMACS_TIME_SIGN): New macro.
3802 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
3803 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
3804 (set_file_times, make_time, lisp_time_argument): Adjust signature.
3805 (make_timeval, make_lisp_time, decode_time_components): New decls.
3806 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
3807 that it mishandled time_t overflow. You can't compare by subtracting!
3808 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
3809 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
3810
3811 * term.c: Include <sys/time.h>.
3812 (timeval_to_Time): New function, for proper overflow wraparound.
3813 (term_mouse_position, term_mouse_click): Use it.
3814
3815 * undo.c (record_first_change): Support higher-resolution time stamps
3816 in the undo buffer.
3817 (Fprimitive_undo): Use them when restoring time stamps.
3818
3819 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
3820 (w32_get_internal_run_time):
3821 Port to higher-resolution Emacs time stamps.
3822 (ltime): Now accepts single 64-bit integer, as that's more convenient
3823 for callers.
3824
3825 * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
3826
3827 * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
3828 for compatibility with pselect. Support ns-resolution time stamps.
3829
3830 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
3831
3832 * xselect.c (wait_for_property_change, x_get_foreign_selection):
3833 Check for time stamp overflow, and support ns-resolution time stamps.
3834
3835 * xterm.c: Don't include sys/time.h; gnulib does that for us now.
3836 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
3837 (timeval_subtract): Remove; no longer needed.
3838 (XTflash, XTring_bell, x_wait_for_event):
3839 Port to ns-resolution time stamps. Don't assume time_t is signed.
3840
b6a92dfe
CY
38412012-06-22 Chong Yidong <cyd@gnu.org>
3842
3843 * xdisp.c (x_consider_frame_title): Revert last change.
3844
d251c37c
EZ
38452012-06-22 Eli Zaretskii <eliz@gnu.org>
3846
3847 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
3848 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
3849 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
3850 staticidx goes up to 1597 out of 1600 = 0x640.)
3851
f10deafb
PE
38522012-06-20 Paul Eggert <eggert@cs.ucla.edu>
3853
3854 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
3855 Otherwise, the umask might be mistakenly 0 while handling input signals.
3856
ec6de1e2
SM
38572012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
3858
3859 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
3860
28be1ada
DA
38612012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
3862
3863 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
3864 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
3865 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
3866 access to `contents' member of Lisp_Vector objects with AREF and ASET
3867 where appropriate.
3868
c6bf3022
CY
38692012-06-19 Chong Yidong <cyd@gnu.org>
3870
3871 * frame.c (delete_frame): When selecting a frame on a different
3872 text terminal, do not alter the terminal's top-frame.
3873
3874 * xdisp.c (format_mode_line_unwind_data): Record the target
3875 frame's selected window and its terminal's top-frame.
3876 (unwind_format_mode_line): Restore them.
3877 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
3878 Callers changed.
3879 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
3880 since tty frames can be explicitly named.
3881 (prepare_menu_bars): Likewise.
3882
3883 * term.c (Ftty_top_frame): New function.
3884
defd4196
PE
38852012-06-18 Paul Eggert <eggert@cs.ucla.edu>
3886
3887 Port byte-code-meter to modern targets.
3888 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
3889 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
8b5257e1 3890 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
defd4196
PE
3891 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
3892 (METER_1, METER_2): Simplify.
3893
1053a871
SM
38942012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
3895
3896 * data.c (Fdefalias): Return `symbol' (bug#11686).
3897
b7e8d081
MR
38982012-06-18 Martin Rudalics <rudalics@gmx.at>
3899
3900 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
1053a871
SM
3901 gets killed during executing of this function (Bug#11665).
3902 Try to always return Qt when the buffer has been actually killed.
b7e8d081
MR
3903 (Vkill_buffer_query_functions): In doc-string say that functions
3904 run by this hook should not change the current buffer.
3905
7ea2b339
PE
39062012-06-18 Paul Eggert <eggert@cs.ucla.edu>
3907
3908 Fix recently-introduced process.c problems found by static checking.
3909 * process.c (write_queue_push, write_queue_pop, send_process):
3910 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
3911 (write_queue_pop): Fix pointer signedness problem.
3912 (send_process): Remove unused local.
3913
96a313a1
CY
39142012-06-17 Chong Yidong <cyd@gnu.org>
3915
3916 * xdisp.c (redisplay_internal): No need to redisplay terminal
3917 frames that are not on top.
3918
20ca2e94
TN
39192012-06-17 Troels Nielsen <bn.troels@gmail.com>
3920
3921 * process.c (make_process): Initialize write_queue.
3922 (write_queue_push, write_queue_pop): New functions.
3923 (send_process): Use them to maintain correct ordering of process
3924 writes (Bug#10815).
3925
9a900ca9
PE
39262012-06-17 Paul Eggert <eggert@cs.ucla.edu>
3927
310fbfa8
PE
3928 * lisp.h (eassert): Assume C89 or later.
3929 This removes the need for CHECK.
3930 (CHECK): Remove. Its comments about always evaluating its
3931 argument were confusing, as 'eassert' typically does not evaluate
3932 its argument.
3933
27bb1ca4
PE
3934 * coding.c (produce_chars): Use ptrdiff_t, not int.
3935
9a900ca9
PE
3936 * xterm.c (x_draw_underwave): Check for integer overflow.
3937 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
3938
41b7f8bc 39392012-06-17 Jan Djärv <jan.h.d@swipnet.se>
50a93863
JD
3940
3941 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
3942 referenced (Bug#11583).
3943
9b0e3eba
AA
39442012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
3945
3946 Implement wave-style variant of underlining.
3947 * dispextern.h (face_underline_type): New enum.
3948 (face): Add field for underline type.
3949 * nsterm.m (ns_draw_underwave): New function.
3950 (ns_draw_text_decoration): Use it.
3951 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
3952 New functions.
3953 (x_draw_glyph_string): Use them.
3954 * xfaces.c (Qline, Qwave): New Lisp objects.
3955 (check_lface_attrs, merge_face_ref)
1053a871
SM
3956 (Finternal_set_lisp_face_attribute, realize_x_face):
3957 Handle wave-style underline face attributes.
9b0e3eba
AA
3958 * xterm.c (x_draw_underwave): New function.
3959 (x_draw_glyph_string): Use it.
3960
0fb52f11
JB
39612012-06-16 Juanma Barranquero <lekktu@gmail.com>
3962
3963 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
3964 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
3965 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
3966 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
3967 ($(BLD)/w32select.$(O)): Update dependencies.
3968
e5560ff7
AS
39692012-06-16 Andreas Schwab <schwab@linux-m68k.org>
3970
3971 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
3972 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
3973 * character.c (_fetch_multibyte_char_p): Remove.
3974 * alloc.c: Include "character.h" before "buffer.h".
3975 * bidi.c: Likewise.
3976 * buffer.c: Likewise.
3977 * bytecode.c: Likewise.
3978 * callint.c: Likewise.
3979 * callproc.c: Likewise.
3980 * casefiddle.c: Likewise.
3981 * casetab.c: Likewise.
3982 * category.c: Likewise.
3983 * cmds.c: Likewise.
3984 * coding.c: Likewise.
3985 * composite.c: Likewise.
3986 * dired.c: Likewise.
3987 * dispnew.c: Likewise.
3988 * doc.c: Likewise.
3989 * dosfns.c: Likewise.
3990 * editfns.c: Likewise.
3991 * emacs.c: Likewise.
3992 * fileio.c: Likewise.
3993 * filelock.c: Likewise.
3994 * font.c: Likewise.
3995 * fontset.c: Likewise.
3996 * fringe.c: Likewise.
3997 * indent.c: Likewise.
3998 * insdel.c: Likewise.
3999 * intervals.c: Likewise.
4000 * keyboard.c: Likewise.
4001 * keymap.c: Likewise.
4002 * lread.c: Likewise.
4003 * macros.c: Likewise.
4004 * marker.c: Likewise.
4005 * minibuf.c: Likewise.
4006 * nsfns.m: Likewise.
4007 * nsmenu.m: Likewise.
4008 * print.c: Likewise.
4009 * process.c: Likewise.
4010 * regex.c: Likewise.
4011 * region-cache.c: Likewise.
4012 * search.c: Likewise.
4013 * syntax.c: Likewise.
4014 * term.c: Likewise.
4015 * textprop.c: Likewise.
4016 * undo.c: Likewise.
4017 * unexsol.c: Likewise.
4018 * w16select.c: Likewise.
4019 * w32fns.c: Likewise.
4020 * w32menu.c: Likewise.
4021 * window.c: Likewise.
4022 * xdisp.c: Likewise.
4023 * xfns.c: Likewise.
4024 * xmenu.c: Likewise.
4025 * xml.c: Likewise.
4026 * xselect.c: Likewise.
4027
2f07e6af
EZ
40282012-06-16 Eli Zaretskii <eliz@gnu.org>
4029
1053a871
SM
4030 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
4031 If all the glyphs of the glyph row came from strings, and we have no
2f07e6af 4032 cursor positioning clues, put the cursor on the first glyph of the
1097afe4
EZ
4033 row.
4034 (handle_face_prop): Use chunk-relative overlay string index when
4035 indexing into it->string_overlays array. (Bug#11653)
946fdb73
EZ
4036 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
4037 the rightmost. (Bug#11720)
2f07e6af 4038
29b83cec
AS
40392012-06-16 Andreas Schwab <schwab@linux-m68k.org>
4040
4041 * category.h (CHAR_HAS_CATEGORY): Define as inline.
4042 (CATEGORY_MEMBER): Enforce 1/0 value.
4043 * category.c (_temp_category_set): Remove.
4044
4c5501e9
EZ
40452012-06-16 Eli Zaretskii <eliz@gnu.org>
4046
4047 * window.c (Fdelete_other_windows_internal)
4048 (Fdelete_window_internal): Don't access frame's mouse highlight
4049 info of the initial frame. (Bug#11677)
4050
2b570124
PE
40512012-06-14 Paul Eggert <eggert@cs.ucla.edu>
4052
e93864f9
PE
4053 * .gdbinit (xgetint): Fix recently-introduced paren typo.
4054 Assume USE_2_TAGS_FOR_INTS.
4055 (xreload): Adjust $tagmask width to match recent lisp.h change.
4056
2b570124
PE
4057 Simplify lisp.h in minor ways that should not affect code.
4058 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
4059 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
4060 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
4061 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
4062 (INTTYPEBITS): New macro, for clarity.
4063 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
1053a871
SM
4064 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
4065 Simplify now that USE_LSB_TAG is always defined.
2b570124
PE
4066 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
4067 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
4068
81755f69
JB
40692012-06-13 Juanma Barranquero <lekktu@gmail.com>
4070
4071 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
4072
16192a57
GM
40732012-06-13 Glenn Morris <rgm@gnu.org>
4074
4075 * s/bsd-common.h (BSD4_3):
4076 * s/usg5-4-common.h (USG5_4): No longer define; unused.
4077
646b5f55
AS
40782012-06-13 Andreas Schwab <schwab@linux-m68k.org>
4079
4080 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
4081 instead of union.
4082 (XLI, XIL): Define.
1053a871
SM
4083 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
4084 Use them.
4085 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
646b5f55 4086 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
1053a871 4087 * alloc.c (widen_to_Lisp_Object): Remove.
646b5f55
AS
4088 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
4089 * frame.c (delete_frame): Remove outdated comment.
4090 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
4091 USE_LISP_UNION_TYPE.
4092 (Fw32_unregister_hot_key): Likewise.
4093 (Fw32_toggle_lock_key): Likewise.
4094 * w32menu.c (add_menu_item): Likewise.
4095 (w32_menu_display_help): Use XIL instead of checking
4096 USE_LISP_UNION_TYPE.
4097 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
4098 (init_heap): Likewise.
4099 * w32term.c (w32_read_socket): Update comment.
4100
1d3823c9
GM
41012012-06-13 Glenn Morris <rgm@gnu.org>
4102
c62ff706
GM
4103 * s/usg5-4-common.h, src/s/unixware.h:
4104 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
4105
1d3823c9
GM
4106 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
4107
bfe3e0a2
PE
41082012-06-13 Paul Eggert <eggert@cs.ucla.edu>
4109
4110 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
4111 * alloc.c (make_number) [!defined make_number]:
4112 Remove, as lisp.h always defines this now.
4113 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
4114 (roundup_size): Verify that it is a power of 2.
4115 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
4116 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
4117 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
4118 -DUSE_LSB_TAG=0, to override the automatically-selected default.
4119 USE_LSB_TAG now is always defined to be either 0 or 1.
4120 All uses changed.
4121 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
4122 code works fine either way, and efficiency is not a concern here,
4123 as the union type is for debugging, not for production.
4124 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
4125 Use an inline function on all platforms when using the union type,
4126 since this is simpler and 'static inline' can be used portably
4127 within Emacs now.
4128 (LISP_INITIALLY_ZERO): New macro.
4129 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
4130 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
4131
45fa9c0f
GM
41322012-06-12 Glenn Morris <rgm@gnu.org>
4133
b4492cba
GM
4134 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
4135
4136 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
0d369729 4137
45fa9c0f
GM
4138 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
4139 Move BROKEN_SIGIO to configure.
4140
4141 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
4142 Move NO_TERMIO to configure.
4143
0e25d334
CY
41442012-06-12 Chong Yidong <cyd@gnu.org>
4145
4146 * image.c (imagemagick_load_image): Use MagickFlattenImage if
4147 MagickMergeImageLayers is undefined. Use pixel pusher loop if
4148 MagickExportImagePixels is undefined.
4149
43682bb6
PE
41502012-06-12 Paul Eggert <eggert@cs.ucla.edu>
4151
4152 * image.c (imagemagick_load_image): Remove unused label.
4153
a9be7d2b
GM
41542012-06-11 Glenn Morris <rgm@gnu.org>
4155
4156 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
4157 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
4158 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
4159 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
4160
3017f87f
SM
41612012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
4162
4163 * alloc.c (make_byte_code): New function.
4164 (Fmake_byte_code): Use it. Don't purify here.
4165 * lread.c (read1): Use it as well to avoid extra allocation.
4166
1b9b4cf4
CY
41672012-06-11 Chong Yidong <cyd@gnu.org>
4168
4169 * image.c (imagemagick_load_image): Implement transparency.
4170
95988fcf
AS
41712012-06-10 Andreas Schwab <schwab@linux-m68k.org>
4172
4173 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
4174 account for preceding backslashes. (Bug#11663)
4175
cd4eb164
CY
41762012-06-09 Chong Yidong <cyd@gnu.org>
4177
4178 * term.c: Support italics in capable terminals (Bug#9652).
4179 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
4180 (turn_on_face): Output using TS_enter_italic_mode if available.
4181 Don't handle unused blinking and alt-charset cases.
4182 (turn_off_face): Handle italic case; discard unused tty_blinking_p
4183 and tty_alt_charset_p cases.
4184 (tty_capable_p, init_tty): Support italics.
4185
4186 * termchar.h (struct tty_display_info): Add field for italics.
4187 Remove unused blink field.
4188
4189 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
4190 Handle slant.
4191
4192 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
4193 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
4194 tty_alt_charset_p. Add tty_italic_p.
4195
ff88beb8
MA
41962012-06-09 Michael Albinus <michael.albinus@gmx.de>
4197
4198 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
4199 dbus_type_is_basic if available.
4200 (xd_extract_signed, xd_extract_unsigned): Rename from
4201 extract_signed and extract_unsigned, respectively. Adapt callers.
4202
44286096
CY
42032012-06-09 Chong Yidong <cyd@gnu.org>
4204
1682701f
CY
4205 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
4206
44286096
CY
4207 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
4208 case (Bug#9752).
4209
d86feb17
PE
42102012-06-08 Paul Eggert <eggert@cs.ucla.edu>
4211
4212 * xdisp.c (vmessage): Treat frame message as multibyte.
4213 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
4214 would generate the diagnostic "Making \302\247 buffer-local while
4215 let-bound!".
4216
d5c20fe8
EZ
42172012-06-08 Eli Zaretskii <eliz@gnu.org>
4218
4219 * dispnew.c (showing_window_margins_p): Undo last change, which
4220 was done due to an inadvertent commit.
4221 (adjust_frame_glyphs_for_frame_redisplay): Do call
4222 showing_window_margins_p.
4223
513749ee
SM
42242012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
4225
4226 * eval.c (Fmake_var_non_special): New primitive.
4227 (syms_of_eval): Defsubr it.
4228 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
4229
d4a8f5c1
JB
42302012-06-08 Juanma Barranquero <lekktu@gmail.com>
4231
4232 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
4233 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
4234
8bbbc977
EZ
42352012-06-08 Eli Zaretskii <eliz@gnu.org>
4236
4237 * alloc.c (allocate_vectorlike): Fix last change.
4238
f3372c87
DA
42392012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
4240
4241 Block-based vector allocation of small vectors.
4242 * lisp.h (struct vectorlike_header): New field `nbytes',
4243 adjust comment accordingly.
4244 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
4245 to denote vector blocks. Adjust users (live_vector_p,
4246 mark_maybe_pointer, valid_lisp_object_p) accordingly.
4247 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
4248 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES),
4249 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX),
4250 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST),
4251 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
4252 (roundup_size): New constant.
4253 (struct vector_block): New data type.
4254 (vector_blocks, vector_free_lists, zero_vector): New variables.
513749ee 4255 (all_vectors): Rename to `large_vectors'.
f3372c87
DA
4256 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
4257 (sweep_vectors): New functions.
4258 (allocate_vectorlike): Return `zero_vector' as the only vector of
4259 0 items. Allocate new vector from block if vector size is less than
4260 or equal to VBLOCK_BYTES_MAX.
4261 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
4262 (init_alloc_once): Add call to init_vectors.
4263
4f18a4ed
SM
42642012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
4265
4266 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
4267
86f158bc
PE
42682012-06-07 Paul Eggert <eggert@cs.ucla.edu>
4269
4270 * doprnt.c (doprnt): Truncate multibyte char correctly.
4271 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
4272 would mishandle a string argument "Xc" if X was a multibyte
4273 character of length 2: it would truncate after X's first byte
4274 rather than including all of X.
4275
c5cfcbe0
CY
42762012-06-06 Chong Yidong <cyd@gnu.org>
4277
4278 * buffer.c (word_wrap): Doc fix.
4279
c05cf390
PE
42802012-06-04 Paul Eggert <eggert@cs.ucla.edu>
4281
4282 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
4283
0c3461de
GM
42842012-06-03 Glenn Morris <rgm@gnu.org>
4285
4286 * xdisp.c (tool-bar-style): Doc fix.
4287
c71232db
UM
42882012-06-03 Ulrich Müller <ulm@gentoo.org>
4289
4290 * Makefile.in (PAXCTL): Define.
4291 (temacs$(EXEEXT)): Disable memory randomization for the temacs
4292 binary via PaX flags if the paxctl utility is available.
4293 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
4294 Restore PaX flags to their default. (Bug#11398)
4295
383f7350
CY
42962012-06-03 Chong Yidong <cyd@gnu.org>
4297
4298 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
4299 buffer (Bug#11226).
4300
5f2c76c6
CY
43012012-06-03 Chong Yidong <cyd@gnu.org>
4302
4303 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
4304 (note_mode_line_or_margin_highlight): If there is no help echo,
4305 use mode-line-default-help-echo. Handle the case where the mouse
4306 position is past the end of the mode line string.
4307
4308 * buffer.c (buffer_local_value_1): New function, split from
4309 Fbuffer_local_value; can return Qunbound.
4310 (Fbuffer_local_value): Use it.
4311 (Vmode_line_format): Docstring tweaks.
4312
773d47f6
PE
43132012-06-02 Paul Eggert <eggert@cs.ucla.edu>
4314
4315 * sysdep.c (system_process_attributes): Improve comment.
4316
f2d6a3df
SM
43172012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
4318
4319 * keyboard.c: Export real-this-command to Elisp.
4320 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
4321 and DEFVAR it. Update all users.
4322
63810350
PE
43232012-06-02 Paul Eggert <eggert@cs.ucla.edu>
4324
7bd5c1f4
PE
4325 * minibuf.c (Fassoc_string): Remove duplicate declaration.
4326
63810350
PE
4327 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
4328 Convert pctcpu and pctmem to Lisp float properly.
4329 Let the compiler fold better, as 100.0/0x8000 is exact.
4330
a2821611
AS
43312012-06-02 Andreas Schwab <schwab@linux-m68k.org>
4332
4333 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
4334 cons_block.
4335
5fceba1d
PE
43362012-06-01 Paul Eggert <eggert@cs.ucla.edu>
4337
4338 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
4339
c98ff5dd
DA
43402012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
4341
4342 For a 'struct window', replace some Lisp_Object fields to
4343 bitfields where appropriate, remove unused fields.
4344 * window.h (struct window): Remove unused 'last_mark_x' and
4345 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
4346 change it's type from Lisp_Object to bitfield.
4347 Change type of 'force_start', 'optional_new_start',
4348 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
4349 fields from Lisp_Object to bitfield. Adjust users accordingly.
4350
ca34e0be
PE
43512012-05-31 Paul Eggert <eggert@cs.ucla.edu>
4352
4353 Pacify gcc -Wdouble-precision when using Xaw.
4354 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
4355 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
4356 Use 'float' consistently, rather than 'float' in most places
4357 and 'double' in a couple of places.
4358
efc00ab1 43592012-05-31 Eli Zaretskii <eliz@gnu.org>
d5fd2c54
EZ
4360
4361 * xdisp.c (handle_stop): Detect whether we have overlay strings
4362 loaded by testing it->current.overlay_string_index to be
4363 non-negative, instead of checking whether n_overlay_strings is
4364 positive. (Bug#11587)
4365
efc00ab1 43662012-05-31 Chong Yidong <cyd@gnu.org>
353c87f6
CY
4367
4368 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
4369
4370 * doc.c (Fsubstitute_command_keys): Doc fix.
4371
efc00ab1 43722012-05-31 Eli Zaretskii <eliz@gnu.org>
a02ae4e5
EZ
4373
4374 * search.c (search_buffer): Remove calls to
4375 r_alloc_inhibit_buffer_relocation, as it is now called by
4376 maybe_unify_char, which was the cause of relocation of buffer text
4377 in bug#11519.
4378
efc00ab1 43792012-05-31 Eli Zaretskii <eliz@gnu.org>
291d430f
EZ
4380
4381 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
4382 for the duration of call to load_charset, to avoid problems with
4383 callers of maybe_unify_char that access buffer text through C
4384 pointers.
4385
4386 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
4387 decrement the inhibition flag, instead of just setting or
4388 resetting it.
4389
ba93a187
PE
43902012-05-31 Paul Eggert <eggert@cs.ucla.edu>
4391
4392 Remove obsolete '#define static' cruft.
4393 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
4394 This #undef was "temporary" in 2000; it is no longer needed
4395 now that '#define static' has gone away.
4396 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
4397 (gray_bitmap_bits): Remove; no longer needed.
4398 All uses replaced with definiens.
4399 * xterm.c: Include "bitmaps/gray.xbm".
4400
9e4bf381
PE
44012012-05-30 Paul Eggert <eggert@cs.ucla.edu>
4402
4403 Clean up __executable_start, monstartup when --enable-profiling.
4404 The following changes affect the code only when profiling.
4405 * dispnew.c (__executable_start): Rename from safe_bcopy.
4406 Define only on platforms that need it.
4407 * emacs.c: Include <sys/gmon.h> when profiling.
4408 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
4409 (__executable_start): Remove decl, since lisp.h does it now.
4410 (safe_bcopy): Remove decl; no longer has that name.
4411 (main): Coalesce #if into single bit of code, for simplicity.
4412 Cast pointers to uintptr_t, since standard libraries want integers
4413 and not pointers.
4414 * lisp.h (__executable_start): New decl.
4415
32d72c2f
GM
44162012-05-31 Glenn Morris <rgm@gnu.org>
4417
4418 * image.c (Fimagemagick_types): Doc fix.
4419
baac5bc7
JM
44202012-05-30 Jim Meyering <meyering@redhat.com>
4421
4422 * callproc.c (Fcall_process_region): Include directory component
4423 in mkstemp error message (Bug#11586).
4424
72cb32cf
PE
44252012-05-30 Paul Eggert <eggert@cs.ucla.edu>
4426
4427 * alloc.c, lisp.h (make_pure_vector): Now static.
4428
61b108cc
SM
44292012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
4430
4431 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
4432 Move to byte-run.el.
4433 (Fautoload): Do the hash-doc more carefully.
4434 * data.c (Fdefalias): Purify definition, except for keymaps.
4435 (Qdefun): Move from eval.c.
4436 * lisp.h (Qdefun): Remove.
4437 * lread.c (read1): Tiny simplification.
4438
471fe23d
TN
44392012-05-29 Troels Nielsen <bn.troels@gmail.com>
4440
934f3f58 4441 Do not create empty overlays with the evaporate property (Bug#9642).
471fe23d
TN
4442 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
4443 Bug#9642, but explicitly check that the buffer the overlay would
4444 be moved to is live and rearrange lines to make sure that errors
4445 will not put the overlay in an inconsistent state.
4446 (Fdelete_overlay): Cosmetics.
4447
85d0efd1
EZ
44482012-05-28 Eli Zaretskii <eliz@gnu.org>
4449
4450 * w32term.c (my_bring_window_to_top): New function.
4451 (x_raise_frame): Use handle returned by DeferWindowPos, which
61b108cc
SM
4452 could be different from the original one.
4453 Call my_bring_window_to_top instead of my_set_foreground_window.
85d0efd1
EZ
4454 (Bug#11513)
4455
4456 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
4457 by calling BringWindowToTop.
4458
4459 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
4460 (WM_EMACS_END): Increase by one.
4461
da92a98c
PE
44622012-05-28 Paul Eggert <eggert@cs.ucla.edu>
4463
4464 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
4465 This avoids undefined behavior that might cause the eassert
4466 to not catch an out-of-range value.
4467
74d1f848
JB
44682012-05-28 Juanma Barranquero <lekktu@gmail.com>
4469
4470 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
4471 Update dependencies.
4472
9e1a06fc
EZ
44732012-05-27 Eli Zaretskii <eliz@gnu.org>
4474
4475 * bidi.c (bidi_mirror_char): Fix last change.
4476
f3dd7312
AS
44772012-05-27 Andreas Schwab <schwab@linux-m68k.org>
4478
4479 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
4480 when referring to sectname field in printf format.
4481
81899c91
PE
44822012-05-27 Paul Eggert <eggert@cs.ucla.edu>
4483
57b81a9f
PE
4484 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
4485 Only r_alloc_inhibit_buffer_relocation needed to be added;
4486 the others were already declared.
4487
81899c91
PE
4488 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
4489 before checking whether it's out of range. Put the check inside
4490 eassert. See
4491 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
4492
33017faf 44932012-05-27 Ken Brown <kbrown@cornell.edu>
2f9b9adb
KB
4494
4495 * callproc.c (Fcall_process): Restore a line that was accidentally
4496 commented out in the 2011-02-13 change (bug#11547).
4497
33017faf 44982012-05-27 Eli Zaretskii <eliz@gnu.org>
52c55cc7
EZ
4499
4500 * lisp.h [REL_ALLOC]: Add prototypes for external functions
4501 defined on ralloc.c.
4502
4503 * buffer.c [REL_ALLOC]: Remove prototypes of
4504 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
4505 they are now on lisp.h.
4506
4507 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
4508
4509 * search.c (search_buffer): Use it to inhibit relocation of buffer
4510 text while re_search_2 is doing its job, because re_search_2 is
4511 passed C pointers to buffer text. (Bug#11519)
4512
23415acf
EZ
4513 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
4514 Update value to 24.
4515
44e27368
EZ
4516 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
4517 state after an additional call to move_it_in_display_line_to, keep
4518 the values of it->max_ascent and it->max_descent found for the
4519 entire line.
4520 (pos_visible_p): Revert the comparison against bottom_y to what it
4521 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
4522 (Bug#11464)
4523
c1892f11
PE
45242012-05-26 Paul Eggert <eggert@cs.ucla.edu>
4525
4526 Fix coding-related core dumps with gcc -ftrapv.
4527 The code was computing A - B, where A and B are pointers, and B is
4528 random garbage. This can lead to core dumps on platforms that
4529 have special pointer registers, and it also leads to core dumps on
4530 x86-64 when compiled with gcc -ftrapv. The fix is to compute
4531 A - B only when B is initialized properly.
4532 * coding.c (coding_set_source, coding_set_destination): Return void.
4533 (coding_change_source, coding_change_destinations): New functions,
4534 with the old behaviors of coding_set_source and coding_set_destination.
4535 All callers that need an offset changed to use these new functions.
4536
eb7afdad
GM
45372012-05-26 Glenn Morris <rgm@gnu.org>
4538
4539 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
4540
f12fdf02
EZ
45412012-05-26 Eli Zaretskii <eliz@gnu.org>
4542
53a63be6 4543 Extend mouse support on W32 text-mode console.
61b108cc
SM
4544 * xdisp.c (draw_row_with_mouse_face):
4545 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
eb3f6f01 4546
eb3f6f01 4547 * w32console.c: Include window.h.
61b108cc
SM
4548 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
4549 New functions.
eb3f6f01
EZ
4550 (initialize_w32_display): Initialize mouse-highlight data.
4551
53a63be6
EZ
4552 * w32inevt.c: Include termchar.h and window.h.
4553 (do_mouse_event): Support mouse-autoselect-window. When the mouse
4554 moves, call note_mouse_highlight. If help_echo changed, call
4555 gen_help_event to produce help-echo message in the echo area.
4556 Call clear_mouse_face if mouse_face_hidden is set in the mouse
4557 highlight info.
4558
4cfd81f6
PE
45592012-05-26 Paul Eggert <eggert@cs.ucla.edu>
4560
4561 * lread.c (read1): Simplify slightly to avoid an overflow warning
4562 with GCC 4.7.0 on x86-64.
4563
4446092a
EZ
45642012-05-26 Eli Zaretskii <eliz@gnu.org>
4565
4566 * bidi.c (bidi_mirror_char): Revert last change: an int is
4567 definitely wide enough here.
4568
42b2a986 45692012-05-25 Paul Eggert <eggert@cs.ucla.edu>
3164aeac 4570
42b2a986 4571 Fix integer width and related bugs (Bug#9874).
eb106a49 4572 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
d311d28c
PE
4573 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
4574 (string_bytes, check_sblock, allocate_string_data):
4575 (compact_small_strings, Fmake_bool_vector, make_string)
4576 (make_unibyte_string, make_multibyte_string)
4577 (make_string_from_bytes, make_specified_string)
4578 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
4579 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
4580 (mark_vectorlike):
4581 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4582 (allocate_pseudovector):
4583 Use int, not EMACS_INT, where int is wide enough.
4584 (inhibit_garbage_collection, Fgarbage_collect):
4585 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4586 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
4587 int might not be wide enough.
4588 (bidi_cache_search, bidi_cache_find, bidi_init_it)
4589 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
4590 (bidi_at_paragraph_end, bidi_find_paragraph_start)
4591 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
4592 (bidi_level_of_next_char, bidi_move_to_visually_next):
4593 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4594 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
4595 (Fkill_buffer, Fset_buffer_major_mode)
4596 (advance_to_char_boundary, Fbuffer_swap_text)
4597 (Fset_buffer_multibyte, overlays_at, overlays_in)
4598 (overlay_touches_p, struct sortvec, record_overlay_string)
4599 (overlay_strings, recenter_overlay_lists)
4600 (adjust_overlays_for_insert, adjust_overlays_for_delete)
4601 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
4602 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
4603 (Foverlay_recenter, last_overlay_modification_hooks_used)
4604 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
4605 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
977b0e45
PE
4606 (validate_region): Omit unnecessary test for b <= e,
4607 since that's guaranteed by the previous test.
d311d28c
PE
4608 (adjust_overlays_for_delete): Avoid pos + length overflow.
4609 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
4610 (report_overlay_modification):
4611 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4612 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
4613 Omit pointer cast, which isn't needed anyway, and doesn't work
4614 after the EMACS_INT -> ptrdiff_t change.
02481186 4615 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
d311d28c
PE
4616 * buffer.h: Adjust decls to match defn changes elsewhere.
4617 (struct buffer_text, struct buffer):
4618 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4619 Use EMACS_INT, not int, where int might not be wide enough.
39b5db3b
PE
4620 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
4621 not int, to avoid needless 32-bit limit on 64-bit hosts.
4622 (exec_byte_code): Use tighter memory-full test, one that checks
4623 for alloca overflow. Don't compute the address of the object just
4624 before an array, as that's not portable. Use EMACS_INT, not
4625 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
d311d28c
PE
4626 * callint.c (Fcall_interactively):
4627 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4628 * callproc.c (call_process_kill, Fcall_process):
4629 Don't assume pid_t fits into an Emacs fixnum.
4630 (call_process_cleanup, Fcall_process, child_setup):
4631 Don't assume pid_t fits into int.
4632 (call_process_cleanup, Fcall_process, delete_temp_file)
4633 (Fcall_process_region):
4634 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4635 (Fcall_process): Simplify handling of volatile integers.
4636 Use int, not EMACS_INT, where int will do.
4637 * casefiddle.c (casify_object, casify_region, operate_on_word)
4638 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
4639 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4640 (casify_object): Avoid integer overflow when overallocating buffer.
4641 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
45c2afd6 4642 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
d311d28c
PE
4643 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
4644 * category.h (CATEGORYP): Don't assume arg is nonnegative.
4645 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
4646 integers are now checked earlier. All uses replaced with XINT.
4647 (ccl_driver):
4648 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4649 For CCL_MapSingle, check that content and value are in int range.
c801946a
PE
4650 (ccl_driver, Fregister_code_conversion_map):
4651 Check that Vcode_version_map_vector is a vector.
d311d28c
PE
4652 (resolve_symbol_ccl_program): Check that vector header is in range.
4653 Always copy the vector, so that we can check its contents reliably
4654 now rather than having to recheck each instruction as it's being
4655 executed. Check that vector words fit in 'int'.
4656 (ccl_get_compiled_code, Fregister_ccl_program)
4657 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
4658 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
4659 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
4660 contents are in range.
4661 (Fccl_execute_on_string): Check that status is in range.
4662 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
4663 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
4664 Accept and return EMACS_INT, not int, because callers can pass values
4665 out of 'int' range.
4666 (c_string_width, strwidth, lisp_string_width, chars_in_text)
4667 (multibyte_chars_in_text, parse_str_as_multibyte)
4668 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
4669 (str_as_unibyte, str_to_unibyte, string_count_byte8)
4670 (string_escape_byte8, Fget_byte):
4671 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
a14e1568 4672 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
d311d28c
PE
4673 avoid mishandling large integers.
4674 * character.h: Adjust decls to match defn changes elsewhere.
4675 * charset.c (load_charset_map_from_file, find_charsets_in_text)
4676 (Ffind_charset_region):
4677 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4678 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
4679 (load_charset_map_from_vector, Fdefine_charset_internal):
3c7649c1 4680 Don't assume fixnum fits in int.
d311d28c
PE
4681 (load_charset_map_from_vector, Fmap_charset_chars):
4682 Remove now-unnecessary CHECK_NATNUMs.
4683 (Fdefine_charset_internal): Check ranges here, more carefully.
3c7649c1
PE
4684 Don't rely on undefined behavior with signed left shift overflow.
4685 Don't assume unsigned int fits into fixnum, or that fixnum fits
4686 into unsigned int. Don't require max_code to be a valid fixnum;
4687 that's not true for gb10830 4-byte on a 32-bit host. Allow
4688 invalid_code to be a cons, for the same reason. Require code_offset
4689 to be a character. Avoid int overflow if max_char is close
4690 to INT_MAX.
4691 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
4692 this is intended anyway and avoids some undefined behavior.
4693 (load_charset_map): Pass unsigned, not int, as 2nd arg of
4694 INDEX_TO_CODE_POINT, as that's what it expects.
4695 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
60ad3eab
PE
4696 * charset.h (DECODE_CHAR): Return int, not unsigned;
4697 this is what was intended anyway, and it avoids undefined behavior.
4698 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
4699 integer-overflow issues.
4700 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
4701 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
4702 where the argument is EMACS_INT, and this behavior is not intended.
d311d28c
PE
4703 * chartab.c (Fmake_char_table, Fset_char_table_range)
4704 (uniprop_get_decoder, uniprop_get_encoder):
4705 Don't assume fixnum fits in int.
4706 * cmds.c (move_point): New function, that does the gist of
4707 Fforward_char and Fbackward_char, but does so while checking
4708 for integer overflow more accurately.
c96e5d6a 4709 (Fforward_char, Fbackward_char): Use it.
d311d28c
PE
4710 (Fforward_line, Fend_of_line, internal_self_insert)
4711 (internal_self_insert):
4712 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4713 Fix a FIXME, by checking for integer overflow when calculating
4714 target_clm and actual_clm.
4715 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
8f50130c 4716 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
d311d28c
PE
4717 (ASSURE_DESTINATION, coding_alloc_by_realloc)
4718 (coding_alloc_by_making_gap, alloc_destination)
4719 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
4720 (encode_coding_utf_16, detect_coding_emacs_mule)
4721 (decode_coding_emacs_mule, encode_coding_emacs_mule)
4722 (detect_coding_iso_2022, decode_coding_iso_2022)
4723 (encode_invocation_designation, encode_designation_at_bol)
4724 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
4725 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
4726 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
4727 (encode_coding_ccl, encode_coding_raw_text)
4728 (detect_coding_charset, decode_coding_charset)
4729 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
4730 (produce_composition, produce_charset, produce_annotation)
4731 (decode_coding, handle_composition_annotation)
4732 (handle_charset_annotation, consume_chars, decode_coding_gap)
4733 (decode_coding_object, encode_coding_object, detect_coding_system)
4734 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
4735 (code_convert_region, code_convert_string)
8f50130c
PE
4736 (Fdefine_coding_system_internal)
4737 (coding_set_source, coding_set_destination):
d311d28c
PE
4738 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4739 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
4740 (Fdefine_coding_system_internal):
4741 Don't assume fixnums fit in int.
4742 (decode_coding_gap, decode_coding_object, encode_coding_object)
5895d7b9 4743 (Fread_coding_system, Fdetect_coding_region)
2c6a9faa
PE
4744 (Funencodable_char_position, Fcheck_coding_systems_region)
4745 (get_translation, handle_composition_annotation, consume_chars):
d311d28c 4746 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
977b0e45 4747 (consume_chars): Rewrite to not calculate an address outside buffer.
d311d28c 4748 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
7b09a37a 4749 Don't access memory outside of the args array.
d311d28c 4750 (Fdefine_coding_system_internal): Check for charset-id overflow.
47664caa
PE
4751 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
4752 result of ENCODE_CHAR.
d311d28c
PE
4753 * coding.h: Adjust decls to match defn changes elsewhere.
4754 (struct coding_system):
4755 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4756 * composite.c (get_composition_id, find_composition)
4757 (run_composition_function, update_compositions)
4758 (compose_text, composition_gstring_put_cache)
4759 (composition_gstring_p, composition_gstring_width)
4760 (fill_gstring_header, fill_gstring_body, autocmp_chars)
4761 (composition_compute_stop_pos, composition_reseat_it)
4762 (composition_update_it, struct position_record)
4763 (find_automatic_composition, composition_adjust_point)
4764 (Fcomposition_get_gstring, Ffind_composition_internal):
4765 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4766 (update_compositions):
4767 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4768 * composite.h: Adjust decls to match defn changes elsewhere.
4769 (struct composition):
4770 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4771 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
4772 Do not attempt to compute the address of the object just before a
4773 buffer; this is not portable.
4774 (Faref, Faset):
4775 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4776 (Faset): Use int, not EMACS_INT, where int is wide enough.
4777 (Fstring_to_number): Don't assume fixnums fit in int.
4778 (Frem): Don't assume arg is nonnegative.
4779 * dbusbind.c (xd_append_arg): Check for integers out of range.
4780 (Fdbus_call_method): Don't overflow the timeout int.
42b2a986 4781 (extract_signed, extract_unsigned): New functions.
243e0530
PE
4782 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
4783 (xd_get_connection_references): Return ptrdiff_t, not int.
4784 All uses changed.
4785 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
4786 (xd_read_message_1):
4787 Use int, not unsigned, where the dbus API uses int.
4788 (Fdbus_message_internal): Don't overflow mtype.
4789 (syms_of_dbusbind): Allocate right-sized buffer for integers.
d311d28c
PE
4790 * dired.c (directory_files_internal, file_name_completion, scmp)
4791 (file_name_completion_stat):
4792 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4793 (file_name_completion): Don't overflow matchcount.
4794 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
4795 * dispextern.h: Adjust decls to match defn changes elsewhere.
4796 (struct text_pos, struct glyph, struct bidi_saved_info)
4797 (struct bidi_string_data, struct bidi_it, struct composition_it)
4798 (struct it):
4799 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4800 (struct display_pos, struct composition_it, struct it):
4801 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4802 * dispnew.c (increment_matrix_positions)
4803 (increment_row_positions, mode_line_string)
4804 (marginal_area_string):
4805 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
54e1617f 4806 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
d311d28c
PE
4807 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4808 (duration_to_sec_usec): New function, to check for overflow better.
4809 (Fsleep_for, sit_for): Use it.
4810 * doc.c (get_doc_string, store_function_docstring):
4811 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4812 (get_doc_string, Fsnarf_documentation):
4813 Use int, not EMACS_INT, where int is wide enough.
4814 (get_doc_string):
4815 Use SAFE_ALLOCA, not alloca.
4816 Check for overflow when converting EMACS_INT to off_t.
4817 * doprnt.c (doprnt):
4818 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4819 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
4820 Don't assume uid_t fits into fixnum.
4821 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
4822 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
4823 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
4824 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
4825 (general_insert_function)
4826 (Finsert_char, make_buffer_string, make_buffer_string_both)
4827 (update_buffer_properties, Fbuffer_substring)
4828 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
4829 (Fsubst_char_in_region, check_translation)
4830 (Ftranslate_region_internal, save_restriction_restore, Fformat)
4831 (transpose_markers, Ftranspose_regions):
4832 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4833 (clip_to_bounds): Move to lisp.h as an inline function).
4834 (Fconstrain_to_field): Don't assume integers are nonnegative.
4835 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
4836 (Fsubst_char_in_region, Fsave_restriction):
4837 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4838 (Femacs_pid): Don't assume pid_t fits into fixnum.
4839 (lo_time): Use int, not EMACS_INT, when int suffices.
4840 (lisp_time_argument): Check for usec out of range.
4841 (Fencode_time): Don't assume fixnum fits in int.
3f4eabd1
PE
4842 (Fuser_login_name, Fuser_full_name): Signal an error
4843 if a uid argument is out of range, rather than relying on
4844 undefined behavior.
c8d5c857
PE
4845 (Fformat_time_string): Remove now-unnecessary check.
4846 lisp_time_argument checks for out-of-range usec now.
243e0530 4847 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
d311d28c
PE
4848 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
4849 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
4850 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
4851 (init_cmdargs, Fdump_emacs):
4852 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4853 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
4854 the bottom (typically) 32 bits of the fixnum.
4855 * eval.c (specpdl_size, call_debugger):
4856 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4857 (when_entered_debugger, Fbacktrace_debug):
4858 Don't assume fixnum can fit in int.
4859 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
4860 the object just before a buffer; this is not portable.
4861 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
4862 (grow_specpdl, unbind_to):
4863 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4864 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
4865 (grow_specpdl): Simplify allocation by using xpalloc.
856bbc81 4866 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
d311d28c
PE
4867 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
4868 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
4869 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4870 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
4871 (a_write, e_write):
4872 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4873 (Fcopy_file, non_regular_nbytes, read_non_regular)
4874 (Finsert_file_contents):
4875 Use int, not EMACS_INT, where int is wide enough.
4876 (READ_BUF_SIZE): Verify that it fits in int.
4877 (Finsert_file_contents): Check that counts are in proper range,
4878 rather than assuming fixnums fit into ptrdiff_t etc.
4879 Don't assume fixnums fit into int.
125b3835 4880 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
5895d7b9
PE
4881 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
4882 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
d311d28c
PE
4883 (string_char_to_byte, string_byte_to_char)
4884 (string_make_multibyte, string_to_multibyte)
4885 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
4886 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
4887 (substring_both, Fdelete, internal_equal, Ffillarray)
4888 (Fclear_string, mapcar1)
4889 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
4890 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
4891 (larger_vector, make_hash_table, maybe_resize_hash_table)
4892 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
4893 (Fmaphash, secure_hash):
4894 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4895 (concat): Check for string index and length overflow.
4896 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
4897 (Frequire):
4898 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4899 (larger_vector): New API (vec, incr_min, size_max) replaces old
4900 one (vec, new_size, init). This catches size overflow.
4901 INIT was removed because it was always Qnil.
4902 All callers changed.
4903 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
4904 the upper bound on a hash table index size.
4905 (make_hash_table, maybe_resize_hash_table): Use it.
4906 (secure_hash): Computer start_byte and end_byte only after
4907 they're known to be in ptrdiff_t range.
4908 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
4909 (Ffont_get_glyphs, Ffont_at):
4910 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4911 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
4912 (Flist_fonts, Fopen_font):
4913 Don't assume fixnum can fit in int.
4914 (check_gstring): Don't assume index can fit in int.
4915 (font_match_p): Check that fixnum is a character, not a nonnegative
4916 fixnum, since the later code needs to stuff it into an int.
4917 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
4918 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
4919 conversion overflow issues.
4920 (Fopen_font): Check for integer out of range.
4921 (Ffont_get_glyphs): Don't assume index can fit in int.
4922 * font.h: Adjust decls to match defn changes elsewhere.
4923 * fontset.c (reorder_font_vector): Redo score calculation to avoid
4924 integer overflow.
4925 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
4926 printmax_t, where ptrdiff_t is wide enough.
4927 (Finternal_char_font):
4928 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4929 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
4930 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
4931 (Fset_frame_position, x_set_frame_parameters)
4932 (x_set_line_spacing, x_set_border_width)
4933 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
4934 Check that fixnums are in proper range for system types.
4935 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
4936 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4937 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
4938 Use SAFE_ALLOCA_LISP, not alloca.
4939 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
4940 intptr_t is wide enough.
4941 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
4942 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
4943 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
4944 Check for fixnum out of range.
4945 * ftfont.c (ftfont_list): Don't assume index fits in int.
4946 Check that fixnums are in proper range for system types.
4947 (ftfont_shape_by_flt):
4948 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
d311d28c
PE
4949 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
4950 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4951 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
4952 Check that fixnums are in proper range for system types.
4953 * gnutls.h: Adjust decls to match defn changes elsewhere.
4954 * gtkutil.c (xg_dialog_run):
4955 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
4956 (update_frame_tool_bar):
4957 Check that fixnums are in proper range for system types.
4958 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
5895d7b9 4959 (lookup_image): Check that fixnums are in range for system types.
d311d28c
PE
4960 * indent.c (last_known_column, last_known_column_point):
4961 (current_column_bol_cache):
4962 (skip_invisible, current_column, check_display_width):
4963 (check_display_width, scan_for_column, current_column_1)
4964 (Findent_to, Fcurrent_indentation, position_indentation)
4965 (indented_beyond_p, Fmove_to_column, compute_motion):
4966 (Fcompute_motion, Fvertical_motion):
4967 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4968 (last_known_column_modified): Use EMACS_INT, not int.
4969 (check_display_width):
4970 (Fcompute_motion):
4971 Check that fixnums and floats are in proper range for system types.
4972 (compute_motion): Don't assume index or fixnum fits in int.
4973 (compute_motion, Fcompute_motion):
4974 Use int, not EMACS_INT, when it is wide enough.
4975 (vmotion): Omit local var start_hpos that is always 0; that way
4976 we don't need to worry about overflow in expressions involving it.
4977 * indent.h: Adjust decls to match defn changes elsewhere.
4978 (struct position):
4979 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4980 Use int, not EMACS_INT, where int is wide enough.
4981 Remove unused members ovstring_chars_done and tab_offset;
4982 all uses removed.
4983 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
4984 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
4985 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
4986 (make_gap, copy_text, insert, insert_and_inherit)
4987 (insert_before_markers, insert_before_markers_and_inherit)
4988 (insert_1, count_combining_before, count_combining_after)
4989 (insert_1_both, insert_from_string)
4990 (insert_from_string_before_markers, insert_from_string_1)
4991 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
4992 (adjust_after_replace, adjust_after_insert, replace_range)
4993 (replace_range_2, del_range, del_range_1, del_range_byte)
4994 (del_range_both, del_range_2, modify_region)
4995 (prepare_to_modify_buffer, signal_before_change)
4996 (signal_after_change, Fcombine_after_change_execute):
4997 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
4998 * intervals.c (traverse_intervals, rotate_right, rotate_left)
4999 (balance_an_interval, split_interval_right, split_interval_left)
5000 (find_interval, next_interval, update_interval)
5001 (adjust_intervals_for_insertion, delete_node, delete_interval)
5002 (interval_deletion_adjustment, adjust_intervals_for_deletion)
5003 (static_offset_intervals, offset_intervals)
5004 (merge_interval_right, merge_interval_left, make_new_interval)
5005 (graft_intervals_into_buffer, temp_set_point_both)
5006 (temp_set_point, set_point, adjust_for_invis_intang)
5007 (set_point_both, move_if_not_intangible, get_property_and_range)
5008 (get_local_map, copy_intervals, copy_intervals_to_string)
5009 (compare_string_intervals, set_intervals_multibyte_1):
5010 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5011 * intervals.h: Adjust decls to match defn changes elsewhere.
5012 (struct interval):
5013 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5014 * keyboard.c (this_command_key_count, this_single_command_key_start)
5015 (before_command_key_count, before_command_echo_length, echo_now)
5016 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
5017 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
5018 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
5019 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
5020 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5021 (last_non_minibuf_size, last_point_position, echo_truncate)
5022 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
5023 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
5024 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
5025 (stuff_buffered_input):
5026 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5027 (last_auto_save, command_loop_1, read_char):
5028 Use EMACS_INT, not int, to avoid integer overflow.
5029 (record_char): Avoid overflow in total_keys computation.
5030 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
5031 * keyboard.h: Adjust decls to match defn changes elsewhere.
5032 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
5033 (Fkey_description, Fdescribe_vector, Flookup_key):
5034 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5035 (click_position): New function, to check that positions are in range.
5036 (Fcurrent_active_maps):
5037 (describe_command):
5038 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5039 (Faccessible_keymaps, Fkey_description):
5040 (preferred_sequence_p):
5041 Don't assume fixnum can fit into int.
5042 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
5043 Check for integer overflow in size calculations.
5044 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
5045 avoid mishandling large integers.
5046 * lisp.h: Adjust decls to match defn changes elsewhere.
5047 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
5048 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
5049 (struct Lisp_Marker):
5050 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5051 (clip_to_bounds): Now an inline function, moved here from editfns.c.
d311d28c
PE
5052 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
5053 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
5054 All callers changed.
5055 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
5056 Assume the arg has valid form, since it always does.
5057 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
5058 unsigned integer system type.
5059 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
5060 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
5061 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5062 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
5063 (duration_to_sec_usec): New decl.
5064 * lread.c (read_from_string_index, read_from_string_index_byte)
5065 (read_from_string_limit, readchar, unreadchar, openp)
5066 (read_internal_start, read1, oblookup):
5067 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5068 (Fload, readevalloop, Feval_buffer, Feval_region):
5069 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5070 (openp): Check for out-of-range argument to 'access'.
5071 (read1): Use int, not EMACS_INT, where int is wide enough.
5072 Don't assume fixnum fits into int.
6efdadfd 5073 Fix off-by-one error that can read outside a buffer.
1ab7b8ac
PE
5074 (read_filtered_event): Use duration_to_sec_usec
5075 to do proper overflow checking on durations.
d311d28c
PE
5076 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
5077 in size calculation.
5078 (Fexecute_kbd_macro):
5079 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5080 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
5081 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
5082 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
5083 (set_marker_both, set_marker_restricted_both, marker_position)
5084 (marker_byte_position, Fbuffer_has_markers_at):
5085 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5086 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
61b108cc 5087 * menu.c (ensure_menu_items): Rename from grow_menu_items.
d311d28c
PE
5088 It now merely ensures that the menu is large enough, without
5089 necessarily growing it, as this avoids some integer overflow issues.
5090 All callers changed.
5091 (keymap_panes, parse_single_submenu, Fx_popup_menu):
5092 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5093 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
5094 Use SAFE_ALLOCA_LISP, not alloca.
5095 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
5096 to EMACS_INT. Check that fixnums are in proper range for system types.
5097 * minibuf.c (minibuf_prompt_width, string_to_object)
5098 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
5099 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
5100 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5101 (get_minibuffer, read_minibuf_unwind):
5102 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5103 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
5104 this simplifies overflow checking. All callers changed.
5105 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
5106 (Ftest_completion):
5107 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5108 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
5109 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
5110 Check that fixnums are in proper range for system types.
5111 (Fx_create_frame, Fx_show_tip):
5112 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5113 * nsfont.m (ns_findfonts, nsfont_list_family):
5114 Don't assume fixnum fits in long.
5115 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
5116 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5117 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
5118 wide enough.
17fdb222 5119 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
d311d28c
PE
5120 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5121 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
5122 (PRINTDECLARE, PRINTPREPARE):
5123 (strout, print_string):
5124 (print, print_preprocess, print_check_string_charset_prop)
5125 (print_object):
5126 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5127 (PRINTDECLARE):
5128 (temp_output_buffer_setup, Fprin1_to_string, print_object):
5129 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5130 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
d311d28c 5131 (printchar, strout): Use xpalloc to catch size calculation overflow.
0fd11aa5 5132 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
d311d28c
PE
5133 (print_error_message): Use SAFE_ALLOCA, not alloca.
5134 (print_object): Use int, not EMACS_INT, where int is wide enough.
a8b7caa3
PE
5135 (print_depth, new_backquote_output, print_number_index):
5136 Use ptrdiff_t, not int, where int might not be wide enough.
d311d28c
PE
5137 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
5138 (Fset_process_window_size, Fformat_network_address)
5139 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
d44287d4 5140 (sigchld_handler):
d311d28c 5141 Check that fixnums are in proper range for system types.
d44287d4 5142 (Fsignal_process): Simplify by avoiding a goto.
d83cf4cc
PE
5143 Check for process-ids out of pid_t range rather than relying on
5144 undefined behavior.
e4d81efc 5145 (process_tick, update_tick): Use EMACS_INT, not int.
d311d28c
PE
5146 (Fformat_network_address, read_process_output, send_process)
5147 (Fprocess_send_region, status_notify):
5148 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5149 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
5150 (wait_reading_process_output, read_process_output, exec_sentinel):
5151 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5152 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
5153 (Faccept_process_output): Use duration_to_sec_usec to do proper
5154 overflow checking on durations.
dde14581
PE
5155 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
5156 Don't assume pid_t fits in int.
02481186
PE
5157 * process.h (struct Lisp_Process): Members tick and update_tick
5158 are now of type EMACS_INT, not int.
b62b53e8
PE
5159 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
5160 configured --with-wide-int.
d311d28c
PE
5161 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
5162 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
5163 * search.c (looking_at_1, string_match_1):
5164 (fast_string_match, fast_c_string_match_ignore_case)
5165 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
5166 (scan_newline, find_before_next_newline, search_command)
5167 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
5168 (set_search_regs, wordify):
5169 (Freplace_match):
5170 (Fmatch_data):
5171 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5172 (string_match_1, search_buffer, set_search_regs):
5173 (Fmatch_data):
5174 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5175 (wordify): Check for overflow in size calculation.
5176 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
5177 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
5178 Check that fixnums are in proper range for system types.
5179 * sound.c (struct sound_device)
5180 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
5181 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5182 (Fplay_sound_internal):
5183 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
eacd378d 5184 * syntax.c (struct lisp_parse_state, find_start_modiff)
d311d28c
PE
5185 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
5186 (Fparse_partial_sexp):
5187 Don't assume fixnums can fit in int.
5188 (struct lisp_parse_state, find_start_pos, find_start_value)
5189 (find_start_value_byte, find_start_begv)
5190 (update_syntax_table, char_quoted, dec_bytepos)
5191 (find_defun_start, prev_char_comend_first, back_comment):
5192 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
5193 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
5194 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5195 (Finternal_describe_syntax_value): Check that match_lisp is a
5196 character, not an integer, since the code stuffs it into int.
5197 (scan_words, scan_sexps_forward):
5198 Check that fixnums are in proper range for system types.
5199 (Fforward_word):
5200 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5201 (scan_sexps_forward):
5202 Use CHARACTERP, not INTEGERP, since the value must fit into int.
5203 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
5204 * syntax.h: Adjust decls to match defn changes elsewhere.
5205 (struct gl_state_s):
5206 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
e4ecdc9c
PE
5207 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
5208 MOST_POSITIVE_FIXNUM.
d311d28c
PE
5209 * sysdep.c (wait_for_termination_1, wait_for_termination)
5210 (interruptible_wait_for_termination, mkdir):
5211 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
5212 (emacs_read, emacs_write):
5213 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
225a2cff
PE
5214 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
5215 and double all fit in int.
d311d28c
PE
5216 * term.c (set_tty_color_mode):
5217 Check that fixnums are in proper range for system types.
5218 * termhooks.h (struct input_event):
5219 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5220 * textprop.c (validate_interval_range, interval_of)
5221 (Fadd_text_properties, set_text_properties_1)
5222 (Fremove_text_properties, Fremove_list_of_text_properties)
5223 (Ftext_property_any, Ftext_property_not_all)
5224 (copy_text_properties, text_property_list, extend_property_ranges)
5225 (verify_interval_modification):
5226 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5227 (Fnext_single_char_property_change)
5228 (Fprevious_single_char_property_change):
5229 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5895d7b9
PE
5230 (copy_text_properties):
5231 Check for integer overflow in index calculation.
d311d28c
PE
5232 * undo.c (last_boundary_position, record_point, record_insert)
5233 (record_delete, record_marker_adjustment, record_change)
5234 (record_property_change):
5235 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5236 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
5237 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5238 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
5239 (Fx_hide_tip, Fx_file_dialog):
5240 * w32menu.c (set_frame_menubar):
5241 Use ptrdiff_t, not int, for consistency with rest of code.
5242 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
5243 (select_window, Fdelete_other_windows_internal)
5244 (window_scroll_pixel_based, window_scroll_line_based)
5245 (Frecenter, Fset_window_configuration):
5246 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5247 (Fset_window_hscroll, run_window_configuration_change_hook)
5248 (set_window_buffer, temp_output_buffer_show, scroll_command)
5895d7b9 5249 (Fscroll_other_window, Frecenter):
d311d28c
PE
5250 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5251 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
5252 Don't assume fixnum fits in int.
5253 (Fset_window_scroll_bars):
5254 Check that fixnums are in proper range for system types.
5255 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
5256 (string_pos, c_string_pos, number_of_chars, init_iterator)
5257 (in_ellipses_for_invisible_text_p, init_from_display_pos)
5258 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
5259 (compute_display_string_end, handle_face_prop)
5895d7b9
PE
5260 (face_before_or_after_it_pos, handle_invisible_prop)
5261 (handle_display_prop, handle_display_spec, handle_single_display_spec)
d311d28c
PE
5262 (display_prop_intangible_p, string_buffer_position_lim)
5263 (string_buffer_position, handle_composition_prop, load_overlay_strings)
5264 (get_overlay_strings_1, get_overlay_strings)
5265 (iterate_out_of_display_property, forward_to_next_line_start)
5266 (back_to_previous_visible_line_start, reseat, reseat_to_string)
5267 (get_next_display_element, set_iterator_to_next)
5268 (get_visually_first_element, compute_stop_pos_backwards)
5269 (handle_stop_backwards, next_element_from_buffer)
5270 (move_it_in_display_line_to, move_it_in_display_line)
5271 (move_it_to, move_it_vertically_backward, move_it_by_lines)
5272 (add_to_log, message_dolog, message_log_check_duplicate)
5273 (message2, message2_nolog, message3, message3_nolog
5274 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
5275 (current_message_1, truncate_echo_area, truncate_message_1)
5276 (set_message, set_message_1, store_mode_line_noprop)
5277 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
5278 (text_outside_line_unchanged_p, check_point_in_composition)
5279 (reconsider_clip_changes)
5280 (redisplay_internal, set_cursor_from_row, try_scrolling)
5281 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
5282 (redisplay_window, find_last_unchanged_at_beg_row)
5283 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
5284 (trailing_whitespace_p, find_row_edges, display_line)
5285 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
5286 (display_mode_element, store_mode_line_string)
5287 (pint2str, pint2hrstr, decode_mode_spec)
5288 (display_count_lines, display_string, draw_glyphs)
5289 (x_produce_glyphs, x_insert_glyphs)
5290 (rows_from_pos_range, mouse_face_from_buffer_pos)
5291 (fast_find_string_pos, mouse_face_from_string_pos)
5292 (note_mode_line_or_margin_highlight, note_mouse_highlight):
5293 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5294 (safe_call, init_from_display_pos, handle_fontified_prop)
5295 (handle_single_display_spec, load_overlay_strings)
5296 (with_echo_area_buffer, setup_echo_area_for_printing)
5297 (display_echo_area, echo_area_display)
5298 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
5299 (update_tool_bar, hscroll_window_tree, redisplay_internal)
5895d7b9
PE
5300 (redisplay_window, dump_glyph_row, display_mode_line)
5301 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
43ad2e9a 5302 (handle_display_spec, display_prop_string_p):
d311d28c
PE
5303 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5304 (handle_single_display_spec, build_desired_tool_bar_string)
5305 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
5306 (get_specified_cursor_type):
5307 Check that fixnums are in proper range for system types.
5308 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
5309 (Flookup_image_map):
5310 Don't assume fixnums fit in int.
5311 (compare_overlay_entries):
5312 Avoid mishandling comparisons due to subtraction overflow.
5313 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
5314 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
5315 (handle_tool_bar_click):
5316 Use int, not unsigned, since we prefer signed and the signedness
5317 doesn't matter here.
5318 (get_next_display_element, next_element_from_display_vector):
5319 Use int, not EMACS_INT, when int is wide enough.
5320 (start_hourglass): Use duration_to_sec_usec to do proper
5321 overflow checking on durations.
5322 * xfaces.c (Fbitmap_spec_p):
5323 Check that fixnums are in proper range for system types.
5324 (compare_fonts_by_sort_order):
5325 Avoid mishandling comparisons due to subtraction overflow.
5326 (Fx_family_fonts, realize_basic_faces):
5327 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5328 (Fx_family_fonts):
5329 Don't assume fixnum fits in int.
5330 Use SAFE_ALLOCA_LISP, not alloca.
5331 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
5332 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
5333 (face_at_buffer_position, face_for_overlay_string)
5334 (face_at_string_position):
5335 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5336 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
5337 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
5338 (Fx_show_tip):
5339 Check that fixnums are in proper range for system types.
5340 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
5341 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
5342 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5343 (Fx_change_window_property): Don't assume fixnums fit in int.
5344 * xfont.c (xfont_chars_supported):
5345 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5346 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
5347 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
5348 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5349 * xml.c (parse_region):
5350 * xrdb.c (magic_file_p):
5351 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
5352 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
5353 (x_get_local_selection, x_reply_selection_request)
5354 (x_handle_selection_request, wait_for_property_change):
5355 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5356 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
5357 short is wide enough.
5358 (x_send_client_event): Don't assume fixnum fits in int.
5359 * xterm.c (x_x_to_emacs_modifiers):
5360 Don't assume EMACS_INT overflows nicely into int.
5361 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
5362 may come from Lisp.
5363 (handle_one_xevent): NATNUMP can eval its arg twice.
5364 (x_connection_closed):
5365 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5366 * xterm.h: Adjust decls to match defn changes elsewhere.
5367 (struct scroll_bar): Use struct vectorlike_header
5368 rather than rolling our own approximation.
5369 (SCROLL_BAR_VEC_SIZE): Remove; not used.
5370
c6574eb5
GM
53712012-05-25 Glenn Morris <rgm@gnu.org>
5372
5373 * lisp.mk (lisp): Update for more files being compiled now.
5374
e8d32c7e
SM
53752012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
5376
48def666
SM
5377 * lread.c: Remove `read_pure' which makes no difference.
5378 (read_pure): Remove var.
5379 (unreadpure): Remove function.
5380 (readevalloop): Don't call read_list with -1 flag.
5381 (read1, read_vector): Don't test read_pure any more.
5382 (read_list): Simplify.
5383
e8d32c7e
SM
5384 * fileio.c, character.h: Minor style tweaks.
5385
4b2addb7
DA
53862012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
5387
5388 * window.h (clip_changed): Remove useless declaration.
5389
584461b2
JB
53902012-05-22 Juanma Barranquero <lekktu@gmail.com>
5391
5392 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
5393 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
5394
34374650
PE
53952012-05-22 Paul Eggert <eggert@cs.ucla.edu>
5396
5397 Remove src/m/*.
5398 This directory predates autoconf and is no longer needed nowadays.
5399 Move its few remaining bits of functionality to where they're needed.
5400 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
5401 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
5402 * m/template.h: Remove.
5403 * Makefile.in (M_FILE): Remove. All uses removed.
5404 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
5405 * lisp.h (USE_LSB_TAG):
5406 * mem-limits.h (EXCEEDS_LISP_PTR):
5407 Use VAL_MAX, not VALBITS, in #if.
5408 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
5409 (EMACS_UINT): Define unconditionally now.
5410 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
5411 (BITS_PER_EMACS_INT): New constants, replacing
5412 what used to be in config.h, but not useful in #if.
5413 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
5414 define them any more.
5415 (VAL_MAX): New macro.
5416 (VALMASK): Use it.
5417 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
5418 BITS_PER_EMACS_INT, in #if.
5419 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
5420 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
5421 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
5422 * s/ms-w32.h (DATA_START):
5423 Move here from removed file m/intel386.h.
5424 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
5425 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
5426
261cb4bb
PE
54272012-05-21 Paul Eggert <eggert@cs.ucla.edu>
5428
5429 Assume C89 or later.
5430 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
5431 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
5432 (xrealloc):
5433 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
5434 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
5435 * textprop.c, tparam.c (NULL): Remove.
5436 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
5437 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
5438 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
5439 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
5440 * xterm.c (input_signal_count): Assume volatile works.
5441
ff23cd9f
KB
54422012-05-21 Ken Brown <kbrown@cornell.edu>
5443
5444 * xgselect.c (xg_select): Fix first argument in call to 'select'
5445 (bug#11508).
5446
1b170bc6
KB
54472012-05-20 Ken Brown <kbrown@cornell.edu>
5448
5449 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
bd7239f5 5450 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
1b170bc6 5451
b2f4d39f
KB
54522012-05-19 Ken Brown <kbrown@cornell.edu>
5453
5454 * xfns.c (x_in_use): Remove `static' qualifier.
5455 * xterm.h (x_in_use): Declare.
5456 * xgselect.c: Include xterm.h.
5457 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
5458 and `display_arg' (bug#9754).
5459
003fdae2
PE
54602012-05-19 Paul Eggert <eggert@cs.ucla.edu>
5461
9232a6d9
PE
5462 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
5463
003fdae2
PE
5464 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
5465 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
5466
784b56e2
EZ
54672012-05-18 Eli Zaretskii <eliz@gnu.org>
5468
5469 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
5470
5471 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
090bd7cb 5472 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c.
784b56e2
EZ
5473
5474 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
5475 reference to image_cache->refcount.
5476 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
5477
a0a79cde
JL
54782012-05-17 Juri Linkov <juri@jurta.org>
5479
5480 * search.c (Fword_search_regexp, Fword_search_backward)
5481 (Fword_search_forward, Fword_search_backward_lax)
5482 (Fword_search_forward_lax): Move functions to isearch.el
5483 (bug#10145, bug#11381).
5484
b0572523
PE
54852012-05-16 Paul Eggert <eggert@cs.ucla.edu>
5486
5487 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
5488
9660f5fc
SM
54892012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
5490
5491 * lread.c (init_obarray): Declare Qt and Qnil as special.
5492
4374de83
GM
54932012-05-14 Glenn Morris <rgm@gnu.org>
5494
5495 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
985584ae 5496 Put "libexec" before "bin", for the sake of init_callproc_1.
4374de83 5497
dc44c39a
PE
54982012-05-14 Paul Eggert <eggert@cs.ucla.edu>
5499
078c97cb
PE
5500 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
5501
dc44c39a
PE
5502 * unexaix.c: Port to more-recent AIX compilers.
5503 (report_error, report_error_1, make_hdr, copy_sym)
5504 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
5505 Make arguments const char *, not char *, to avoid violations of C
5506 standard and to fix some AIX warnings reported by Gilles Pion.
5507
e18afed7 55082012-05-14 Eli Zaretskii <eliz@gnu.org>
ac268e67
EZ
5509
5510 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
5511 already have overlays loaded.
5512 (handle_single_display_spec): Before returning without displaying
5513 fringe bitmap, synchronize the bidi iterator with the main display
5514 iterator, by calling iterate_out_of_display_property.
5515 (iterate_out_of_display_property): Detect buffer iteration by
5516 testing that it->string is a Lisp string.
5517 (get_next_display_element): When the current object is exhausted,
5518 and there's something on it->stack, call set_iterator_to_next to
5519 proceed with what's on the stack, instead of returning zero.
5520 (set_iterator_to_next): If called at the end of a Lisp string,
5521 proceed to consider_string_end without incrementing string
5522 position. Don't increment display vector index past the end of
5523 the display vector. (Bug#11417)
c8fb9dc6
EZ
5524 (pos_visible_p): Don't report a position visible when move_it_to
5525 stopped at the last line of window, which happens to be scanned
5526 backwards by the bidi iteration. (Bug#11464)
ac268e67 5527
e18afed7 55282012-05-14 Eli Zaretskii <eliz@gnu.org>
82f9b393
EZ
5529
5530 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
5531 and right-margin display specs even if the spec is invalid or we
61b108cc
SM
5532 are on a TTY, and thus unable to display on the fringes.
5533 That's because the text with the property will not be displayed anyway,
82f9b393
EZ
5534 so we need to signal to the caller that this is a "replacing"
5535 display spec. This fixes display when the spec is invalid or we
5536 are on a TTY.
5537
e18afed7 55382012-05-14 Paul Eggert <eggert@cs.ucla.edu>
297834cd
PE
5539
5540 * unexaix.c (make_hdr): Fix typo in prototype.
5541 This bug broke the build on AIX. Problem reported by Gilles Pion.
5542
9d0a235a
MA
55432012-05-14 Michael Albinus <michael.albinus@gmx.de>
5544
5545 * keyboard.c (kbd_buffer_get_event): Read special events also in
5546 batch mode. (Bug#11415)
5547
9e6b06ed
GM
55482012-05-12 Glenn Morris <rgm@gnu.org>
5549
5550 * ns.mk: Update for ns_appbindir no longer having trailing "/".
5551
c1a1d7a3
EZ
55522012-05-12 Eli Zaretskii <eliz@gnu.org>
5553
5554 * lisp.mk (lisp): Add newcomment.elc.
5555
3fe7cdc8
GM
55562012-05-12 Glenn Morris <rgm@gnu.org>
5557
5558 * Makefile.in (MKDIR_P): New, set by configure.
5559 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
5560
53f7d2c0
PE
55612012-05-11 Paul Eggert <eggert@cs.ucla.edu>
5562
5563 Remove unused function hourglass_started.
5564 * dispextern.h (hourglass_started):
5565 * w32fns.c (hourglass_started):
5566 * xdisp.c (hourglass_started): Remove.
5567
75aafb17
JB
55682012-05-10 Juanma Barranquero <lekktu@gmail.com>
5569
5570 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
5571 Update dependencies.
5572
12959e8e
PE
55732012-05-10 Paul Eggert <eggert@cs.ucla.edu>
5574
97107e2e
PE
5575 * xgselect.c (xg_select): Put maxfds+1 into a var.
5576 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
5577
12959e8e
PE
5578 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
5579
836d29b3
DA
55802012-05-10 Dave Abrahams <dave@boostpro.com>
5581
5582 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
5583 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
5584
5cb67954
MA
55852012-05-09 Michael Albinus <michael.albinus@gmx.de>
5586
5587 * dbusbind.c (xd_registered_buses): New internal Lisp object.
5588 Rename all occurences of Vdbus_registered_buses to xd_registered_buses.
5589 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
5590 Initialize xd_registered_buses.
5591
3478ec45
PE
55922012-05-09 Paul Eggert <eggert@cs.ucla.edu>
5593
b263a6b0
PE
5594 Untag more efficiently if USE_LSB_TAG.
5595 This is based on a proposal by YAMAMOTO Mitsuharu in
5596 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
5597 For an admittedly artificial (nth 8000 longlist) benchmark on
5598 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
5599 Emacs's overall text size by 1%.
5600 * lisp.h (XUNTAG): New macro.
5601 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
5602 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
5603 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
5604 * eval.c (Fautoload):
5605 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
5606 * frame.h (XFRAME): Use XUNTAG.
5607
3478ec45
PE
5608 Port recent dbusbind.c changes to 32-bit --with-wide-int.
5609 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
5610 Remove unportable assumptions about print widths of types like
5611 dbus_uint32_t.
5612 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
5613 intptr_t when converting between pointer and integer, to avoid GCC
5614 warnings about wrong width.
5615
666b903b 56162012-05-09 Eli Zaretskii <eliz@gnu.org>
0d887c7d
EZ
5617
5618 * w32proc.c (new_child): Force Windows to reserve only 64KB of
5619 stack for each reader_thread, instead of defaulting to 8MB
5620 determined by the linker. This avoids failures in creating
5621 subprocesses on Windows 7, see the discussion in this thread:
5622 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
5623
b120cc17
JC
56242012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
5625
5626 Fix up display of the *Minibuf-0* buffer in the mini window.
5627 * keyboard.c (read_char): Don't clear the echo area if there's no
5628 message to clear.
5629 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
2fed2689 5630 contents of *Minibuf-0*) if there's no message displayed in its stead.
b120cc17 5631
9a4b36f8
MA
56322012-05-07 Michael Albinus <michael.albinus@gmx.de>
5633
5634 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
5635 batch mode.
5636
e5f9458f
CY
56372012-05-06 Chong Yidong <cyd@gnu.org>
5638
5639 * lisp.mk (lisp): Update.
5640
eceeb5fc 56412012-05-05 Jim Meyering <meyering@redhat.com>
bf98199c
JM
5642
5643 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
5644
71873e2b
SM
56452012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
5646
5647 * data.c (PUT_ERROR): New macro.
5648 (syms_of_data): Use it. Add new error type `user-error'.
5649 * undo.c (user_error): New function.
5650 (Fprimitive_undo): Use it.
5651 * print.c (print_error_message): Adjust print style for `user-error'.
5652 * keyboard.c (user_error): New function.
5653 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
5654
ab0fa4e4
PE
56552012-05-03 Paul Eggert <eggert@cs.ucla.edu>
5656
5657 Do not limit current-time-string to years 1000..9999.
5658 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
5659 (Fcurrent_time_string): Support any year that is supported by the
5660 underlying localtime representation. Don't use asctime, as it
5661 has undefined behavior for years outside the range -999..9999.
5662
7ed806a7
PE
56632012-05-02 Paul Eggert <eggert@cs.ucla.edu>
5664
5665 Fix race conditions involving setenv, gmtime, localtime, asctime.
5666 Without this fix, interrupts could mess up code that uses these
5667 nonreentrant functions, since setting TZ invalidates existing
5668 tm_zone or tzname values, and since most of these functions return
5669 pointers to static storage.
5670 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
5671 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
5672 Grow the critical sections to include not just invoking
5673 localtime/gmtime, but also accessing these functions' results
5674 including their tm_zone values if any, and any related TZ setting.
5675 (format_time_string): Last arg is now struct tm *, not struct tm **,
71873e2b
SM
5676 so that the struct tm is saved in the critical section.
5677 All callers changed. Simplify allocation of initial buffer, partly
7ed806a7
PE
5678 motivated by the fact that memory allocation needs to be outside
5679 the critical section.
5680
0c16dfed
DA
56812012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
5682
5683 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
5684 with RESET_INTERVAL.
5685
5686 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
5687 Remove duplicated buffer name initialization.
5688
3f83ace8
JM
56892012-05-02 Jim Meyering <jim@meyering.net>
5690
5691 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
5692
c7b8541e
JM
5693 * xfns.c (x_window): Use xstrdup (Bug#11375).
5694
90207a15 56952012-05-02 Eli Zaretskii <eliz@gnu.org>
2fa85638
EZ
5696
5697 * xdisp.c (pos_visible_p): If already at a newline from the
5698 display string before the 'while' loop, don't walk back the glyphs
5699 from it3.glyph_row. Solves assertion violation when the display
5700 string begins with a newline (egg.el). (Bug#11367)
5701
b593d6a9
AH
57022012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
5703
5704 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
5705 Move to simple.el.
5706
4737362e
GM
57072012-05-01 Glenn Morris <rgm@gnu.org>
5708
99cf43f9
GM
5709 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
5710 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
5711 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
5712 All were removed before 23.1.
5713
9311dcff
GM
5714 * dispnew.c: Remove HAVE_LIBNCURSES test;
5715 it is always true on relevant platforms.
5716
4d5c6349
GM
5717 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
5718 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
5719
4737362e
GM
5720 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
5721
74dd3a6b
AS
57222012-04-30 Andreas Schwab <schwab@linux-m68k.org>
5723
5724 * .gdbinit (xpr): Remove checks for no longer existing misc types.
5725 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
5726 Remove.
5727
13c379ee
PE
57282012-04-28 Paul Eggert <eggert@cs.ucla.edu>
5729
5730 Do not avoid creating empty evaporating overlays (Bug#9642).
5731 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
5732 That is, do not delete an evaporating overlay if it becomes
5733 empty after its bounds are adjusted to fit within its buffer.
5734 This fix caused other problems, and I'm reverting it until we get
5735 to the bottom of them.
5736
a8e7d6d7 57372012-04-27 Chong Yidong <cyd@gnu.org>
9be2fd9b
CY
5738
5739 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
5740
a8e7d6d7 57412012-04-27 Eli Zaretskii <eliz@gnu.org>
f0ee99a0
EZ
5742
5743 * xdisp.c (pos_visible_p): If the window start position is beyond
5744 ZV, start the display from buffer beginning. Prevents assertion
5745 violation in init_iterator when the minibuffer window is scrolled
5746 via the scroll bar.
5747
5748 * window.c (window_scroll_pixel_based): Likewise.
5749
a8e7d6d7 57502012-04-27 Chong Yidong <cyd@gnu.org>
9ec7751f
CY
5751
5752 * keymap.c (where_is_internal): Doc fix (Bug#10872).
5753
a8e7d6d7 57542012-04-27 Glenn Morris <rgm@gnu.org>
24c51a09
GM
5755
5756 * fileio.c (Fcopy_file, Fset_file_selinux_context):
5757 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
5758
a8e7d6d7 57592012-04-27 Eli Zaretskii <eliz@gnu.org>
73055685 5760
b593d6a9
AH
5761 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
5762 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
73055685 5763
1c6900d9
EZ
57642012-04-26 Eli Zaretskii <eliz@gnu.org>
5765
4c3fa1d9
EZ
5766 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
5767 display element, check also the underlying string or buffer
5768 character. (Bug#11341)
5769
1c6900d9
EZ
5770 * w32menu.c: Include w32heap.h.
5771 (add_menu_item): If the call to AppendMenuW (via
5772 unicode_append_menu) fails, disable Unicode menus only if we are
5773 running on Windows 9X/Me.
5774
42bf8205
AS
57752012-04-24 Andreas Schwab <schwab@linux-m68k.org>
5776
5777 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
5778 (xgetint): Add missing shift for LSB tags.
5779
b1bac16e
MR
57802012-04-24 Martin Rudalics <rudalics@gmx.at>
5781
5782 * keyboard.c (read_char): Don't wipe echo area for select window
5783 events: These might get delayed via `mouse-autoselect-window'
5784 (Bug#11304).
5785
d69621cc
JB
57862012-04-24 Juanma Barranquero <lekktu@gmail.com>
5787
5788 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
5789 manipulation of :loaded-from data.
5790
02fd101b
JB
57912012-04-23 Juanma Barranquero <lekktu@gmail.com>
5792
5793 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
5794 now a cons (bug#11311).
5795
888bec30
PE
57962012-04-23 Paul Eggert <eggert@cs.ucla.edu>
5797
89a438bd
PE
5798 Do not create empty overlays with the evaporate property (Bug#9642).
5799 * buffer.c (Fmove_overlay): Delete an evaporating overlay
5800 if it becomes empty after its bounds are adjusted to fit within
5801 its buffer. Without this fix, in a nonempty buffer (let ((o
5802 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
5803 yields an empty overlay that has the evaporate property, which is
5804 not supposed to happen.
5805
1068fe4d
PE
5806 Fix minor GTK3 problems found by static checking.
5807 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
5808 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
5809 (struct _EmacsFixedClass, emacs_fixed_get_type):
5810 Move decls here from emacsgtkfixed.h, since they needn't be public.
5811 (emacs_fixed_get_type): Now static.
5812 (emacs_fixed_class_init): Omit unused local.
5813 (emacs_fixed_child_type): Remove; unused.
5814 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
5815 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
5816 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
5817 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
5818 (EMACS_FIXED_GET_CLASS): Remove; unused.
5819 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
5820
888bec30
PE
5821 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
5822 Problem reported by Juanma Barranquero for Windows -Wunused-function.
5823
de85e130
PE
58242012-04-22 Paul Eggert <eggert@cs.ucla.edu>
5825
d0baac98 5826 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
bd7239f5 5827 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
d0baac98
PE
5828 (__malloc_size_t, __malloc_ptrdiff_t):
5829 Remove. All uses removed, replaced by the definiens if needed,
5830 since we can assume C89 or better now.
5831 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
5832 (protect_malloc_state, align, get_contiguous_space)
5833 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
5834 (malloc_atfork_handler_child, malloc_enable_thread)
5835 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
5836 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
5837 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
5838 (special_realloc, _realloc_internal_nolock, _realloc_internal)
5839 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
5840 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
5841 Define using prototypes, not old style.
5842 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
5843 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
5844 (align): Don't assume that signed integer overflow wraps around.
5845 Omit unused local var.
5846 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
5847 (_free_internal_nolock, memalign, mallochook, reallochook):
5848 Omit no-longer-needed casts.
5849 (valloc): Use getpagesize, not __getpagesize.
5850 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
5851 (struct hdr): The 'magic' member is now size_t, not unsigned long.
5852
de85e130
PE
5853 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
5854
dcbf5805
MA
58552012-04-22 Michael Albinus <michael.albinus@gmx.de>
5856
5857 Move functions from C to Lisp. Make non-blocking method calls
5858 the default. Implement further D-Bus standard interfaces.
5859
5860 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
5861 (QCdbus_request_name_allow_replacement)
5862 (QCdbus_request_name_replace_existing)
5863 (QCdbus_request_name_do_not_queue)
5864 (QCdbus_request_name_reply_primary_owner)
5865 (QCdbus_request_name_reply_in_queue)
5866 (QCdbus_request_name_reply_exists)
5867 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
5868 (QCdbus_registered_serial, QCdbus_registered_method)
5869 (QCdbus_registered_signal): New Lisp objects.
5870 (XD_DEBUG_MESSAGE): Use sizeof.
5871 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
5872 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
5873 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
5874 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
5875 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
5876 (xd_signature, xd_append_arg): Allow float for integer types.
5877 (xd_get_connection_references): New function.
b593d6a9
AH
5878 (xd_get_connection_address): Rename from xd_initialize.
5879 Return cached address.
dcbf5805
MA
5880 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
5881 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
5882 level.
5883 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
9a4b36f8 5884 Return number of refcounts.
dcbf5805
MA
5885 (Fdbus_get_unique_name): Make stronger parameter check.
5886 (Fdbus_message_internal): New defun.
5887 (Fdbus_call_method, Fdbus_call_method_asynchronously)
5888 (Fdbus_method_return_internal, Fdbus_method_error_internal)
5889 (Fdbus_send_signal, Fdbus_register_service)
5890 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
5891 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
5892 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
5893 (Vdbus_compiled_version, Vdbus_runtime_version)
5894 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
5895 (Vdbus_message_type_method_return, Vdbus_message_type_error)
5896 (Vdbus_message_type_signal): New defvars.
b593d6a9
AH
5897 (Vdbus_registered_buses, Vdbus_registered_objects_table):
5898 Adapt docstring.
dcbf5805 5899
52828e02
PE
59002012-04-22 Paul Eggert <eggert@cs.ucla.edu>
5901
da05bc4c
PE
5902 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
5903 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
5904 Do not assume ptrdiff_t is the same width as 'int'.
5905
52828e02
PE
5906 * alloc.c: Handle unusual debugging option combinations.
5907 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
5908 since the two debugging options are incompatible.
5909 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
5910 is defined.
5911 (mem_init, mem_insert, mem_insert_fixup):
5912 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
5913 (NEED_MEM_INSERT): Remove; no longer needed.
5914
f01769f9
LL
59152012-04-22 Leo Liu <sdl.web@gmail.com>
5916
5917 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
5918
5790543d
PE
59192012-04-22 Paul Eggert <eggert@cs.ucla.edu>
5920
5921 * sysdep.c [__FreeBSD__]: Minor cleanups.
5922 (list_system_processes, system_process_attributes) [__FreeBSD__]:
5923 Use Emacs indenting style more consistently. Avoid some casts.
5924 Use 'double' consistently rather than mixing 'float' and 'double'.
5925
b91b7e4d
EW
59262012-04-21 Eduard Wiebe <usenet@pusto.de>
5927
b593d6a9
AH
5928 * sysdep.c (list_system_processes, system_process_attributes):
5929 Add implementation for FreeBSD (Bug#5243).
b91b7e4d 5930
6114eb15
AS
59312012-04-21 Andreas Schwab <schwab@linux-m68k.org>
5932
5933 * lisp.mk (lisp): Update.
5934
2f38dff7
PE
59352012-04-20 Paul Eggert <eggert@cs.ucla.edu>
5936
5937 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
5938 It is never used otherwise.
5939
4ae29f89
SM
59402012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
5941
5942 * print.c (print_preprocess): Only check print_depth if print-circle
5943 is nil.
5944 (print_object): Check for cycles even when print-circle is nil and
5945 print-gensym is t, but only check print_depth if print-circle is nil.
5946
f30d612a
CY
59472012-04-20 Chong Yidong <cyd@gnu.org>
5948
5949 * process.c (wait_reading_process_output): If EIO occurs on a pty,
5950 set the status to "failed" and ensure that sentinel is run.
5951
c07a4c0b 59522012-04-20 Glenn Morris <rgm@gnu.org>
016a35df
GM
5953
5954 * process.c (Fset_process_inherit_coding_system_flag)
5955 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
4373fd43 5956 (Fmake_network_process, Fmake_serial_process): Doc fix.
016a35df 5957
c07a4c0b 59582012-04-20 Eli Zaretskii <eliz@gnu.org>
20a68157
EZ
5959
5960 * xdisp.c (string_buffer_position_lim): Limit starting position to
5961 BEGV.
5962 (set_cursor_from_row): If called for a mode-line or header-line
5963 row, return zero immediately.
5964 (try_cursor_movement): If inside continuation line, don't back up
4ae29f89
SM
5965 farther than the first row after the header line, if any.
5966 Don't consider the header-line row as "partially visible", even if
20a68157
EZ
5967 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
5968
c07a4c0b 59692012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 5970
4ae29f89
SM
5971 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
5972 (bug#11238).
ad3a2b41 5973
c07a4c0b 59742012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
6c94c34f 59752012-04-18 Paul Eggert <eggert@cs.ucla.edu>
ae6e112d
PE
5976
5977 configure: new option --enable-gcc-warnings (Bug#11207)
5978 * Makefile.in (C_WARNINGS_SWITCH): Remove.
5979 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
5980 (ALL_CFLAGS): Use new macros rather than old.
5981 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
5982 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
5983 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
5984 -Wunused-result, -Wunused-variable. This should go away once
5985 the Emacs and Gnulib regex code is merged.
5986 (xmalloc, xrealloc): Now static.
5987
aba027e8
PE
59882012-04-17 Paul Eggert <eggert@cs.ucla.edu>
5989
5990 * dired.c (Fsystem_groups): Remove unused local.
5991
e5a36063
GM
59922012-04-17 Glenn Morris <rgm@gnu.org>
5993
5994 * dired.c (Fsystem_users): Doc fix.
5995
316411f0
DA
59962012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
5997
5998 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
5999 (syms_of_dired): Add them.
6000
9426aba4
PE
60012012-04-16 Paul Eggert <eggert@cs.ucla.edu>
6002
b62a57be
PE
6003 Fix minor alloc.c problems found by static checking.
6004 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
6005 New extern decls, to avoid calling undeclared functions.
6006 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
6007 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
6008 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
6009 (NEED_MEM_INSERT): New macro.
6010 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
4b5afbb0 6011 Remove one incorrect comment and fix another.
b62a57be 6012
3539f31f
PE
6013 Fix minor ralloc.c problems found by static checking.
6014 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
6015 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
6016 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
6017 (r_alloc_sbrk): Now static.
6018
a041960a
PE
6019 Improve ralloc.c interface checking.
6020 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
6021 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
6022 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
6023 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
6024 [REL_ALLOC]: ... to here, to check interface.
6025 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
6026 Remove decls. This fixes an "It stinks!".
6027
9426aba4
PE
6028 * alloc.c (which_symbols): Fix alignment issue / type clash.
6029
d55c12ed
AS
60302012-04-15 Andreas Schwab <schwab@linux-m68k.org>
6031
6032 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
6033 (struct Lisp_Misc_Any): Likewise.
6034 (struct Lisp_Free): Likewise.
6035 * alloc.c (union aligned_Lisp_Symbol): Define.
6036 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
6037 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
6038 (union aligned_Lisp_Misc): Define.
6039 (MARKER_BLOCK_SIZE, struct marker_block): Use union
6040 aligned_Lisp_Misc instead of union Lisp_Misc.
4ae29f89 6041 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
d55c12ed 6042
b948ce8b
PE
60432012-04-14 Paul Eggert <eggert@cs.ucla.edu>
6044
6045 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
6046 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
6047 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
6048 * s/netbsd.h, s/sol2-6.h:
6049 Remove definition of GC_MARK_STACK, since the default now works.
6050 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
6051 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
6052 no longer the default.
6053 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
6054
35dc09a1 60552012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 6056
35dc09a1
GM
6057 * lread.c (lisp_file_lexically_bound_p):
6058 Fix hang at ";-*-\n" (bug#11238).
ad3a2b41 6059
35dc09a1
GM
60602012-04-14 Eli Zaretskii <eliz@gnu.org>
6061
6062 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
6063 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
6064
60652012-04-14 Jan Djärv <jan.h.d@swipnet.se>
6066
6067 * nsterm.m (constrainFrameRect): Always constrain when there is only
6068 one screen (Bug#10962).
6069
bcd86815
KB
60702012-04-13 Ken Brown <kbrown@cornell.edu>
6071
6072 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
6073
c25df26e
RT
60742012-04-13 Reuben Thomas <rrt@sc3d.org>
6075
6076 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
6077
0fc59f1e
DC
60782012-04-11 Daniel Colascione <dancol@dancol.org>
6079
6080 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
6081 against is gone. It's better to use vfork now so that when Cygwin
6082 gains a new, working vfork, we use it automatically (bug#10398).
6083
de8c03dc
SM
60842012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
6085
6086 * window.c (save_window_save): Obey window-point-insertion-type.
6087
2f097256
GM
60882012-04-11 Glenn Morris <rgm@gnu.org>
6089
6090 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
6091
453b951e
SM
60922012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
6093
6094 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
6095
75f1671a 60962012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
6bbef4e5
JC
6097
6098 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
6099 (force_quit_count): New var.
6100 (handle_interrupt): Use it.
6101
2a8ce227
JB
61022012-04-10 Juanma Barranquero <lekktu@gmail.com>
6103
6104 * w32.c (w32_delayed_load): Record the full path of the library
6105 being loaded (bug#10424).
6106
935396c0
GM
61072012-04-09 Glenn Morris <rgm@gnu.org>
6108
05920a43
GM
6109 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
6110 not just in the obarray, before snarfing them. (Bug#11036)
6111
935396c0
GM
6112 * Makefile.in ($(leimdir)/leim-list.el):
6113 Pass EMACS rather than BUILT_EMACS.
6114
a18ecafa
TZ
61152012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
6116
6117 * process.c (make_process):
6118 * process.h: Add integer `gnutls_handshakes_tried' member to
6119 process struct.
6120
6bbef4e5
JC
6121 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
6122 Add convenience `GNUTLS_LOG2i' macro.
a18ecafa
TZ
6123
6124 * gnutls.c (gnutls_log_function2i): Convenience log function.
6125 (emacs_gnutls_read): Use new log functions,
6126 `gnutls_handshakes_tried' process member, and
6127 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
6128 attempts per process (connection).
6129
b4d3bc10
CY
61302012-04-09 Chong Yidong <cyd@gnu.org>
6131
6132 * eval.c (Fuser_variable_p, user_variable_p_eh)
6133 (lisp_indirect_variable): Functions deleted.
6134 (Fdefvar): Caller changed.
6135
6136 * callint.c (Finteractive, Fcall_interactively):
6137 * minibuf.c (Fread_variable): Callers changed.
6138
70f4d973
EZ
61392012-04-09 Eli Zaretskii <eliz@gnu.org>
6140
6141 * xdisp.c (set_cursor_from_row): If the display string appears in
6142 the buffer at position that is closer to point than the position
6143 after the display string, display the cursor on the first glyph of
6144 the display string. Fixes cursor display when a 'display' text
6145 property immediately follows invisible text. (Bug#11094)
6146
cb3c2e3e
PE
61472012-04-09 Paul Eggert <eggert@cs.ucla.edu>
6148
6149 composite.c: use 'double' consistently
6150 * composite.c (get_composition_id): Use 'double' consistently
6151 instead of converting 'float' to 'double' and vice versa; this is
6152 easier to understand and avoids a GCC warning.
6153
fd06db5d
GM
61542012-04-09 Glenn Morris <rgm@gnu.org>
6155
50fe702a
GM
6156 * Makefile.in: Generate leim-list with bootstrap-emacs, in
6157 preparation for dumping it with emacs. (Bug#4789)
6158 (leimdir): New variable.
6159 ($(leimdir)/leim-list.el): New rule.
6160 (emacs$(EXEEXT)): Depend on leim-list.el.
6161
fd06db5d
GM
6162 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
6163 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
6164 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
6165
55c131ee
AS
61662012-04-08 Andreas Schwab <schwab@linux-m68k.org>
6167
6168 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
6169 proper alignment.
6170
9209588f
JB
61712012-04-07 Juanma Barranquero <lekktu@gmail.com>
6172
6173 * xml.c (init_libxml2_functions) [WINDOWSNT]:
6174 Remove unused local variable.
6175
e3fb2efb
PE
61762012-04-07 Paul Eggert <eggert@cs.ucla.edu>
6177
6178 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
6179 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
6180 (mark_memory): Mark Lisp_Objects only if pointers might hide in
6181 objects, as mark_maybe_pointer will catch them otherwise.
6182 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
6183 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
6184
b5385551
PE
61852012-04-07 Paul Eggert <eggert@cs.ucla.edu>
6186
6187 Fix typo that broke non-Windows builds.
6188 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
6189
9078ead6
EZ
61902012-04-07 Eli Zaretskii <eliz@gnu.org>
6191
6192 Support building on MS-Windows with libxml2.
6193
6194 * makefile.w32-in (OBJ2): Add xml.$(O).
6195 (GLOBAL_SOURCES): Add xml.c.
6196 ($(BLD)/xml.$(O)): New dependency list.
6197
6198 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
6199 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
6200 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
6201 [!WINDOWSNT]: New macros.
6202 (init_libxml2_functions, libxml2_loaded_p): New functions.
6203 (parse_region): Call fn_xmlCheckVersion instead of using the macro
6204 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
6205 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
6206 Calls xmlCleanupParser only if libxml2 was loaded (or statically
6207 linked in).
6bbef4e5
JC
6208 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
6209 Call init_libxml2_functions before calling libxml2 functions.
9078ead6
EZ
6210 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
6211
6212 * emacs.c: Don't include libxml/parser.h.
6213 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
6214 xmlCleanupParser directly.
6215
6216 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
6217
3811fdf3
EZ
62182012-04-07 Eli Zaretskii <eliz@gnu.org>
6219
6220 * indent.c (Fvertical_motion): If there is a display string at
6221 point, use it.vpos to compute how many lines to backtrack after
6222 move_it_to point. (Bug#11133)
6223
2f8e16b2
EZ
62242012-04-06 Eli Zaretskii <eliz@gnu.org>
6225
6226 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
6227 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
6228 about subtle differences between FETCH_CHAR* and STRING_CHAR*
6229 macros related to unification of CJK characters. For the details,
6230 see the discussion following the message here:
6231 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
6232
3d439cd1
CY
62332012-04-04 Chong Yidong <cyd@gnu.org>
6234
6235 * keyboard.c (Vdelayed_warnings_list): Doc fix.
6236
8bc53d00
EZ
62372012-04-01 Eli Zaretskii <eliz@gnu.org>
6238
6239 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
6240 instead of alloca. (Bug#11138)
6241
3b0512a3
AS
62422012-04-01 Andreas Schwab <schwab@linux-m68k.org>
6243
6244 * w32menu.c (is_simple_dialog): Properly check lisp types.
6245 (Bug#11141)
6246
8427ddd2
EZ
62472012-03-31 Eli Zaretskii <eliz@gnu.org>
6248
979022ef
EZ
6249 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
6250 position we get to after a call to move_it_to fails the
6251 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
6252 only if we wind up in a string from display property. (Bug#11063)
6253
a6b1c7cc
EZ
6254 * window.c (Fdelete_other_windows_internal): Invalidate the row
6255 and column information about mouse highlight, so that redisplay
6256 restores it after reallocating the glyph matrices. (Bug#7464)
6257
8427ddd2
EZ
6258 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
6259 string comes from a `display' text property, use the buffer
6260 position of that property as if we actually saw that position in
6261 the row's glyphs.
697ba24b
EZ
6262 (move_it_by_lines): Remove the assertion that
6263 "it->current_x == 0 && it->hpos == 0" which can be legitimately
6264 violated when there's a before-string at the beginning of a line.
6265 (Bug#11063)
8427ddd2 6266
65a0a738
EZ
62672012-03-30 Eli Zaretskii <eliz@gnu.org>
6268
6269 * xdisp.c (append_space_for_newline): If the default face was
6270 remapped, use the remapped face for the appended newline.
6271 (extend_face_to_end_of_line): Use the remapped default face for
6272 extending the face to the end of the line.
6273 (display_line): Call extend_face_to_end_of_line when the default
6274 face was remapped. (Bug#11068)
6275
581355cc
EZ
62762012-03-29 Eli Zaretskii <eliz@gnu.org>
6277
6278 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
6279
e8fc049f
SM
62802012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
6281
6282 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
6283
4fb9a543
GM
62842012-03-27 Glenn Morris <rgm@gnu.org>
6285
6286 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
6287 Doc fixes.
6288
679910f1
KH
62892012-03-26 Kenichi Handa <handa@m17n.org>
6290
6291 * dispextern.h (struct glyph): Fix previous change. Change the
6292 bit length of glyphless.ch to 25 (Bug#11082).
6293
90d49b7f
CY
62942012-03-26 Chong Yidong <cyd@gnu.org>
6295
6296 * keyboard.c (Vselection_inhibit_update_commands): New variable.
6297 (command_loop_1): Use it; inhibit selection update for
6298 handle-select-window too (Bug#8996).
6299
f514f6f0
FP
63002012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
6301
e8fc049f 6302 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
f514f6f0 6303
bf43fa51
KH
63042012-03-25 Kenichi Handa <handa@m17n.org>
6305
6306 * dispextern.h (struct glyph): Change the bit length of
6307 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
6308
8a0c01dd
EZ
63092012-03-24 Eli Zaretskii <eliz@gnu.org>
6310
6311 * s/ms-w32.h (tzname): Include time.h before redirecting to
6312 _tzname. Fixes the MSVC build. (Bug#9960)
6313
7d1c3a76
AS
63142012-03-24 Andreas Schwab <schwab@linux-m68k.org>
6315
8ed79523
AS
6316 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
6317 characters.
6318
7d1c3a76
AS
6319 * xterm.c (XTread_socket): Only modify handling_signal if
6320 !SYNC_INPUT. (Bug#11080)
6321
e99a9b8b
EZ
63222012-03-23 Eli Zaretskii <eliz@gnu.org>
6323
6324 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
6325 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
6326 when fetching a multibyte character consumes more bytes than
6327 CHAR_BYTES returns, due to unification of CJK characters in
6328 string_char. (Bug#11073)
6329
5063c0e1
TN
63302012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
6331
6332 * process.c (wait_reading_process_output): Handle pty disconnect
6333 by refraining from sending oneself a SIGCHLD (bug#10933).
6334
9f851fbd
CY
63352012-03-22 Chong Yidong <cyd@gnu.org>
6336
6337 * dispextern.h (struct it): New member string_from_prefix_prop_p.
6338
5063c0e1 6339 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
9f851fbd
CY
6340 Mark string as coming from a prefix property.
6341 (handle_face_prop): Use default face for prefix strings (Bug#4281).
6342 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
6343
fb5b8aca
CY
63442012-03-21 Chong Yidong <cyd@gnu.org>
6345
6346 * xfaces.c (Vface_remapping_alist): Doc fix.
6347
62356a1b
EZ
63482012-03-20 Eli Zaretskii <eliz@gnu.org>
6349
6350 * w32proc.c (Fw32_set_console_codepage)
5063c0e1
TN
6351 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
6352 Doc fixes.
62356a1b 6353
025de85b
CY
63542012-03-20 Chong Yidong <cyd@gnu.org>
6355
6356 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
6357 to reflect default non-nil value of redisplay-dont-pause.
6358
4827f94e
KH
63592012-03-19 Kenichi Handa <handa@m17n.org>
6360
6361 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
6362 it fit in a valid range (Bug#11003).
6363
e50a24a2
EZ
63642012-03-18 Eli Zaretskii <eliz@gnu.org>
6365
6366 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
6367 that is not from display property, accept the row as a "cursor
6368 row" if one of the string's character has a non-nil `cursor'
6369 property. Fixes cursor positioning when there are newlines in
6370 overlay strings, e.g. in icomplete.el. (Bug#11035)
6371
9af5ed87
PE
63722012-03-12 Paul Eggert <eggert@cs.ucla.edu>
6373
6374 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
6375
d1f55f16
CY
63762012-03-12 Chong Yidong <cyd@gnu.org>
6377
6378 * eval.c (inhibit_lisp_code): Rename from
6379 inhibit_window_configuration_change_hook; move from window.c.
6380
6381 * xfns.c (unwind_create_frame_1, Fx_create_frame):
6382 * window.c (run_window_configuration_change_hook)
6383 (syms_of_window): Callers changed.
6384
66c5eebd
CY
63852012-03-11 Chong Yidong <cyd@gnu.org>
6386
413df973
CY
6387 * keymap.c (Fkey_description): Doc fix (Bug#9700).
6388
66c5eebd
CY
6389 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
6390
1de11f56
CY
63912012-03-10 Chong Yidong <cyd@gnu.org>
6392
6393 * frame.c (other_visible_frames): Don't assume the selected frame
6394 is visible (Bug#10955).
6395
cae07000
SM
63962012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
6397
6398 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
6399
89c94350
JD
64002012-03-08 Jan Djärv <jan.h.d@swipnet.se>
6401
6402 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
6403 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
6404 zero (Bug#10954).
6405
999dd333
GM
64062012-03-03 Glenn Morris <rgm@gnu.org>
6407
01a6dcc8 6408 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
999dd333 6409
de0100f2
EZ
64102012-03-02 Eli Zaretskii <eliz@gnu.org>
6411
6412 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
6413 position past the first glyph_row that ends at ZV. (Bug#10902)
b8456c5c
EZ
6414 (redisplay_window, next_element_from_string): Fix typos in
6415 comments.
3e441275
EZ
6416 (redisplay_window): Pass to move_it_vertically the margin in
6417 pixels, not in screen lines.
de0100f2 6418
96a72ee9
GM
64192012-03-02 Glenn Morris <rgm@gnu.org>
6420
6421 * buffer.c (buffer-list-update-hook): Doc fix.
6422
312508d7
EZ
64232012-02-29 Eli Zaretskii <eliz@gnu.org>
6424
6425 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
6426 push_it before setting up the iterator for the first overlay
6427 string, even if we have an empty string loaded.
6428 (next_overlay_string): If there's an empty string on the iterator
6429 stack, pop the stack. (Bug#10903)
6430
27f3c637
PE
64312012-02-25 Paul Eggert <eggert@cs.ucla.edu>
6432
6433 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
6434 Suggested by Stefan Monnier in
6435 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
6436 * alloc.c (widen_to_Lisp_Object): New static function.
6437 (mark_memory): Also mark Lisp_Objects by fetching pointer words
6438 and widening them to Lisp_Objects. This would work even if
6439 USE_LSB_TAG is defined and wide integers are used, which might
6440 happen in a future version of Emacs.
6441
3c9dfce6
CY
64422012-02-25 Chong Yidong <cyd@gnu.org>
6443
fa74b241
CY
6444 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
6445 Doc fix.
6446
3c9dfce6
CY
6447 * xselect.c (Fx_selection_exists_p): Doc fix.
6448 (x_clipboard_manager_save_all): Print an informative message
6449 before saving to clipboard manager.
6450
9486df08
CY
64512012-02-24 Chong Yidong <cyd@gnu.org>
6452
6453 * keyboard.c (process_special_events): Handle all X selection
6454 requests in kbd_buffer, not just the next one (Bug#8869).
6455
f01d3321
CY
64562012-02-23 Chong Yidong <cyd@gnu.org>
6457
6458 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
6459 call when setting menu-bar-lines and tool-bar-lines parameters.
6460 (unwind_create_frame_1): New helper function.
6461
6462 * window.c (inhibit_window_configuration_change_hook): New var.
6463 (run_window_configuration_change_hook): Obey it.
b2e4ca7d 6464 (syms_of_window): Initialize it.
f01d3321 6465
86b847b6
CY
64662012-02-22 Chong Yidong <cyd@gnu.org>
6467
6468 * xterm.c (x_draw_image_relief): Add missing type check for
6469 Vtool_bar_button_margin (Bug#10743).
6470
a59225b1
CY
64712012-02-21 Chong Yidong <cyd@gnu.org>
6472
6473 * fileio.c (Vfile_name_handler_alist): Doc fix.
6474
6475 * buffer.c (Fget_file_buffer): Protect against invalid file
6476 handler return value.
6477
310f5bd4
PE
64782012-02-20 Paul Eggert <eggert@cs.ucla.edu>
6479
cb3a28cc
PE
6480 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
6481 when computing $valmask.
6482
310f5bd4
PE
6483 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
6484 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
6485 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
6486 It's useless in that case, and it can cause problems on hosts
6487 that allocate halves of EMACS_INT values separately.
6488 Reported by Dan Horák. Diagnosed by Andreas Schwab in
6489 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
6490 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
6491 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
6492 it avoids undefined behavior on hosts where shifting right by more
6493 than the word width has undefined behavior.
6494
2375c96a
CY
64952012-02-19 Chong Yidong <cyd@gnu.org>
6496
6497 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
6498 (Funhandled_file_name_directory, Ffile_name_as_directory)
6499 (Fdirectory_file_name, Fexpand_file_name)
6500 (Fsubstitute_in_file_name): Protect against invalid file handler
6501 return values (Bug#10845).
6502
3eb49e71
EZ
65032012-02-18 Eli Zaretskii <eliz@gnu.org>
6504
6505 * .gdbinit (pitx): Fix incorrect references to fields of the
6506 iterator stack.
6507
7b926f3f
CY
65082012-02-17 Chong Yidong <cyd@gnu.org>
6509
6510 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
6511
11273115
PE
65122012-02-15 Paul Eggert <eggert@cs.ucla.edu>
6513
6514 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
6515 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
6516
c3a70e2b
CY
65172012-02-15 Chong Yidong <cyd@gnu.org>
6518
6519 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
6520 marked as special. Also, starting docstrings with * is obsolete.
6521
0ca43699
AS
65222012-02-13 Andreas Schwab <schwab@linux-m68k.org>
6523
6524 * gnutls.c (emacs_gnutls_write): Fix last change.
6525
2e8f3c56
LI
65262012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
6527
6528 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
6529 send_process.
6530
af70074f
SM
65312012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
6532
6533 * keymap.c (Fsingle_key_description): Handle char ranges.
6534
95986d52
CY
65352012-02-12 Chong Yidong <cyd@gnu.org>
6536
afd83bd1
CY
6537 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
6538 as that creates a dangerous corner case.
6539
95986d52
CY
6540 * window.c (Fdelete_window_internal): Invalidate the mouse
6541 highlight (Bug#9904).
6542
bd7da63e
GM
65432012-02-12 Glenn Morris <rgm@gnu.org>
6544
6545 * xselect.c (Fx_own_selection_internal)
6546 (Fx_get_selection_internal, Fx_disown_selection_internal)
6547 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
6548 * nsselect.m (Fx_own_selection_internal)
6549 (Fx_disown_selection_internal, Fx_selection_exists_p)
6550 (Fx_selection_owner_p, Fx_get_selection_internal):
6551 Sync docs and argument specs with the xselect.c versions.
6552
77abcbc2
LI
65532012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
6554
6555 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
6556
90b671e2
EZ
65572012-02-11 Eli Zaretskii <eliz@gnu.org>
6558
1c0ca0b7
EZ
6559 * w32select.c (Fx_selection_exists_p): Sync doc string and
6560 argument list with xselect.c. (Bug#10783)
6561
6562 * w16select.c (Fx_selection_exists_p): Sync doc string and
6563 argument list with xselect.c. (Bug#10783)
90b671e2 6564
49241268
GM
65652012-02-10 Glenn Morris <rgm@gnu.org>
6566
6567 * fns.c (Fsecure_hash): Doc fix.
6568
f998bbe7 65692012-02-09 Kenichi Handa <handa@m17n.org>
5c1ca13d
KH
6570
6571 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
6572
0992bd9c
CY
65732012-02-07 Chong Yidong <cyd@gnu.org>
6574
6575 * buffer.c (Fbuffer_local_variables)
6576 (buffer_lisp_local_variables): Handle unbound vars correctly;
6577 don't let Qunbound leak into Lisp.
6578
af008560
GM
65792012-02-07 Glenn Morris <rgm@gnu.org>
6580
dd605cc4
GM
6581 * image.c (Fimagemagick_types): Doc fix.
6582
af008560
GM
6583 * image.c (imagemagick-render-type): Change it from a lisp object
6584 to an integer. Move the doc here from the lisp manual.
6585 Treat all values not equal to 0 the same.
6586
1449fa1d
CY
65872012-02-06 Chong Yidong <cyd@gnu.org>
6588
6589 * doc.c (store_function_docstring): Avoid applying docstring of
6590 alias to base function (Bug#2603).
6591
3723ec07
AS
65922012-02-04 Andreas Schwab <schwab@linux-m68k.org>
6593
6594 * .gdbinit (pp1, pv1): Remove redundant defines.
6595 (pr): Use pp.
6596
79c1cc1e
CY
65972012-02-04 Chong Yidong <cyd@gnu.org>
6598
6599 * nsterm.m: Declare a global (Bug#10694).
6600
d7f29f8e
EZ
66012012-02-04 Eli Zaretskii <eliz@gnu.org>
6602
cae07000
SM
6603 * w32.c (get_emacs_configuration_options):
6604 Include --enable-checking, if specified, in the return value.
d7f29f8e 6605
3b95a6f9
MR
66062012-02-04 Martin Rudalics <rudalics@gmx.at>
6607
6608 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
6609 after rounding frame sizes. (Bug#9723)
6610
d6fa96a6
EZ
66112012-02-04 Eli Zaretskii <eliz@gnu.org>
6612
6613 * keyboard.c (adjust_point_for_property): Don't position point
6614 before BEGV. (Bug#10696)
6615
df0b2940
PE
66162012-02-03 Paul Eggert <eggert@cs.ucla.edu>
6617
6618 Handle overflow when computing char display width (Bug#9496).
6619 * character.c (char_width): Return EMACS_INT, not int.
6620 (char_width, c_string_width): Check for overflow when
6621 computing the width; this is possible now that individual
6622 characters can have unbounded width. Problem introduced
6623 by merge from Emacs 23 on 2012-01-19.
6624
6bee44d6
MA
66252012-02-02 Michael Albinus <michael.albinus@gmx.de>
6626
6627 * dbusbind.c (Fdbus_register_method): Mention the return value
6628 :ignore in the docstring.
6629
44f92739
GM
66302012-02-02 Glenn Morris <rgm@gnu.org>
6631
1b9f60cc
GM
6632 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
6633
44f92739
GM
6634 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
6635 Unconditionally set to t. (Bug#10673)
6636 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
6637 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
6638 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
6639
c5d3843c
KH
66402012-02-02 Kenichi Handa <handa@m17n.org>
6641
6642 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
6643 0, do not call append_composite_glyph.
6644
159462d4 66452012-02-02 Kenichi Handa <handa@m17n.org>
d2a51fd7
KH
6646
6647 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
6648 NULL (Bug#6988).
6649 (x_produce_glyphs): If the component of a composition is a null
6650 string, set it->pixel_width to 1 to avoid zero-width glyph.
6651
78cef877
EZ
66522012-02-01 Eli Zaretskii <eliz@gnu.org>
6653
6654 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
6655 first 2 arguments are identical. This makes inserting large
6656 output from a subprocess an order of magnitude faster on
6657 MS-Windows, where all sbrk'ed memory is always contiguous.
6658
97897668
GM
66592012-01-31 Glenn Morris <rgm@gnu.org>
6660
6661 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
c78c6e0b 6662 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
97897668
GM
6663 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
6664
31fd3586
GM
66652012-01-29 Glenn Morris <rgm@gnu.org>
6666
6667 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
6668
0e24a8b2
CY
66692012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
6670
6671 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
6672
cc0adcb0
CY
66732012-01-28 Chong Yidong <cyd@gnu.org>
6674
6675 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
6676
acc28cb9
CY
66772012-01-26 Chong Yidong <cyd@gnu.org>
6678
9c69cfb7
CY
6679 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
6680
acc28cb9
CY
6681 * search.c (Fsearch_forward, Fsearch_backward): Document negative
6682 repeat counts (Bug#10507).
6683
48da7392
GM
66842012-01-26 Glenn Morris <rgm@gnu.org>
6685
6686 * lread.c (syms_of_lread): Doc fix.
6687
14af5f7f
CY
66882012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
6689
6690 * coding.c (encode_designation_at_bol): Change return value to
6691 EMACS_INT.
6692
0b21c100
CY
66932012-01-25 Chong Yidong <cyd@gnu.org>
6694
6695 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
6696
3c2907f7
CY
66972012-01-21 Chong Yidong <cyd@gnu.org>
6698
6699 * floatfns.c (Fcopysign): Make the second argument non-optional,
6700 since nil is not allowed anyway.
6701
959ad23f
AS
67022012-01-21 Andreas Schwab <schwab@linux-m68k.org>
6703
6704 * process.c (read_process_output): Use p instead of XPROCESS (proc).
6705 (send_process): Likewise.
6706
34a02f46
MR
67072012-01-19 Martin Rudalics <rudalics@gmx.at>
6708
6709 * window.c (save_window_save, Fcurrent_window_configuration)
cae07000
SM
6710 (Vwindow_persistent_parameters): Do not use Qstate.
6711 Rewrite doc-strings.
34a02f46 6712
1259009a 67132012-01-19 Kenichi Handa <handa@m17n.org>
25ed9e61
KH
6714
6715 * character.c (char_width): New function.
70d4fdf6
GM
6716 (Fchar_width, c_string_width, lisp_string_width):
6717 Use char_width (Bug#9496).
25ed9e61 6718
6a6ee00d
MR
67192012-01-16 Martin Rudalics <rudalics@gmx.at>
6720
6721 * window.c (Vwindow_persistent_parameters): New variable.
6722 (Fset_window_configuration, save_window_save): Handle persistent
6723 window parameters.
6724
c85efaf7
EZ
67252012-01-14 Eli Zaretskii <eliz@gnu.org>
6726
6727 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
6728 thrashing the stack of the thread. (Bug#9087)
6729
5944709e
PE
67302012-01-12 Paul Eggert <eggert@cs.ucla.edu>
6731
6732 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
6733
e71f5d99
EZ
67342012-01-11 Eli Zaretskii <eliz@gnu.org>
6735
6736 * xdisp.c (rows_from_pos_range): Handle the case where the
6737 highlight ends on a newline. (Bug#10464)
6738 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
6739 he end column for display of highlight that ends on a newline
6740 before a R2L line.
6741
ce316182
GM
67422012-01-11 Glenn Morris <rgm@gnu.org>
6743
6744 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
6745 from load-path also when installation-directory is nil. (Bug#10208)
6746
5b43da69
GM
67472012-01-10 Glenn Morris <rgm@gnu.org>
6748
74cc8ff9
GM
6749 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
6750
7d8d6e4e
GM
6751 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
6752 Update template values to be closer to their typical values these days.
5b43da69 6753
a0db8d43
EZ
67542012-01-09 Eli Zaretskii <eliz@gnu.org>
6755
6756 * xdisp.c (rows_from_pos_range): Accept additional argument
6757 DISP_STRING, and accept any glyph in a row whose object is that
6758 string as eligible for mouse highlight. Fixes mouse highlight of
6759 display strings from overlays. (Bug#10464)
6760
9a0115ab 67612012-01-07 Paul Eggert <eggert@cs.ucla.edu>
09450bae 6762
b9110d6a 6763 emacs: fix an auto-save permissions race condition (Bug#10400)
09450bae
PE
6764 * fileio.c (auto_saving_dir_umask): New static var.
6765 (Fmake_directory_internal): Use it.
6766 (do_auto_save_make_dir): Set it, instead of invoking chmod after
6767 creating the directory. The old code temporarily assigns
6768 too-generous permissions to the directory.
6769 (do_auto_save_eh): Clear it.
b9110d6a 6770 (Fdo_auto_save): Catch all errors, not just file errors, so
09450bae
PE
6771 that the var is always cleared.
6772
6c1bd3f3
EZ
67732012-01-07 Eli Zaretskii <eliz@gnu.org>
6774
6775 * search.c (scan_buffer): Pass character positions to
6776 know_region_cache, not byte positions. (Bug#6540)
6777
069d2b50
L
67782012-01-07 LynX <_LynX@bk.ru> (tiny change)
6779
6780 * w32.c (sys_rename): Report EXDEV when rename of a directory
6781 fails because the target is on another logical disk. (Bug#10284)
6782
75bf0d33
DB
67832012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
6784
6785 * xterm.c (x_embed_request_focus): New function.
6786
6787 * xterm.h: Add prototype.
6788
6789 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
6790
1c6e5a32
GM
67912012-01-05 Glenn Morris <rgm@gnu.org>
6792
6793 * emacs.c (emacs_copyright): Update short copyright year to 2012.
6794
651e947e
EZ
67952012-01-01 Eli Zaretskii <eliz@gnu.org>
6796
6797 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
6798 Load gnutls_transport_set_lowat only if GnuTLS version is below
6799 2.11.1.
6800 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
6801 GnuTLS versions below 2.11.1.
6802
3778cdd8
AL
68032011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
6804
6805 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
6806 to the doc string advising against its use for altering the way
6807 windows are scrolled.
6808
0e5317f7
KH
68092011-12-28 Kenichi Handa <handa@m17n.org>
6810
6811 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
6812 coding-system ASCII compatible only when it does not produce BOM
6813 on encoding (Bug#10383).
6814
93d5ca1f
JD
68152011-12-26 Jan Djärv <jan.h.d@swipnet.se>
6816
6817 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
6818 can scroll.
6819 (create_and_show_popup_menu): Always use menu_position_func for
6820 Gtk3 (Bug#10361).
6821
ca22b785
AS
68222011-12-24 Andreas Schwab <schwab@linux-m68k.org>
6823
6824 * callint.c (Fcall_interactively): Don't truncate prompt string.
6825
d048e1e6
EZ
68262011-12-23 Eli Zaretskii <eliz@gnu.org>
6827
6828 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
6829 property that ends at ZV, so that the bidi iteration could be
3ba1a2ad 6830 resumed from there (after widening). (Bug#10360)
d048e1e6 6831
5ccaba1f
JD
68322011-12-22 Jan Djärv <jan.h.d@swipnet.se>
6833
6834 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
6835
204ee57f
JD
68362011-12-21 Jan Djärv <jan.h.d@swipnet.se>
6837
b81d40f0
JB
6838 * nsterm.m (x_free_frame_resources):
6839 Release f->output_data.ns->miniimage.
204ee57f
JD
6840 (ns_index_color): Fix indentation. Do not retain
6841 color_table->colors[i].
6842
6843 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
6844 before returning.
6845
6846 * nsfns.m (x_set_background_color): Assign return value from
6847 ns_index_color to face-background instead of NSColor*.
6848 (ns_implicitly_set_icon_type): Fix indentation.
6849 Change assignment in for loop to comparison.
6850
6851 * emacs.c (ns_pool): New variable.
6852 (main): Assign ns_pool.
6853 (Fkill_emacs): Call ns_release_autorelease_pool.
6854
6855 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
6856 autorelease fdesc, release fdAttrs and tdict.
6857 (ns_get_covering_families): Release charset.
6858 (ns_findfonts): Release NSFontDescriptor created with new.
6859 (ns_uni_to_glyphs): Fix indentation.
6860 (setString): Release attrStr before assigning new value.
6861
c803b2b7
JD
68622011-12-18 Jan Djärv <jan.h.d@swipnet.se>
6863
678f4426
JD
6864 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
6865 and NS_IMPL_COCOA.
6866 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
6867 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
6868
cd394be1 68692011-12-18 David Reitter <reitter@cmu.edu>
678f4426 6870
5fecd5fc
JD
6871 * nsterm.m (ns_term_init): Subscribe for notifications
6872 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
6873 to method trackingNotification in EmacsMenu.
6874
6875 * nsmenu.m (trackingMenu): New variable.
3771cb17 6876 (trackingNotification): New method (from Aquamacs).
5fecd5fc 6877 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
3771cb17 6878 from Aquamacs (Bug#7030).
678f4426
JD
6879
68802011-12-18 Jan Djärv <jan.h.d@swipnet.se>
5fecd5fc 6881
c803b2b7
JD
6882 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
6883 (symbol_to_nsstring): Fix indentation.
6884 (ns_symbol_to_pb): New function.
cae07000
SM
6885 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
6886 (Fns_rotate_cut_buffers_internal): Remove.
6887 (Fns_store_selection_internal): Rename from
c803b2b7
JD
6888 Fns_store_cut_buffer_internal.
6889 (ns_get_foreign_selection, Fx_own_selection_internal)
6890 (Fx_disown_selection_internal, Fx_selection_exists_p)
b81d40f0
JB
6891 (Fns_get_selection_internal, Fns_store_selection_internal):
6892 Use ns_symbol_to_pb and check if return value is nil.
6893 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
6894 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
c803b2b7
JD
6895 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
6896 renamed to Sns_store_selection_internal.
6897 (ns_handle_selection_request): Move code to Fx_own_selection_internal
6898 and remove this function.
6899 (ns_handle_selection_clear): Remove, never used.
6900 (Fx_own_selection_internal): Move code from ns_handle_selection_request
6901 here.
6902
e1b01a3a
KB
69032011-12-17 Ken Brown <kbrown@cornell.edu>
6904
6905 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
6906 GID is unknown (Bug#10257).
6907
2adb6e85
PE
69082011-12-17 Paul Eggert <eggert@cs.ucla.edu>
6909
6910 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
6911 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
6912 which caused a build failure on GNU/Linux IA-64. This problem was
6913 introduced by my 2011-10-07 patch.
6914
d1d7b339
JL
69152011-12-15 Juri Linkov <juri@jurta.org>
6916
6917 * image.c (imagemagick_error): New function. (Bug#10112)
6918 (imagemagick_load_image): Comment out `MagickSetResolution' call.
6919 Use `imagemagick_error' where ImageMagick functions return
6920 `MagickFalse'.
6921 (Fimagemagick_types): Add `Fnreverse' to return the list in the
6922 proper order.
6923
100d5755
KH
69242011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
6925
6926 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
6927 fill background (Bug#8992).
6928
454592a6
MR
69292011-12-13 Martin Rudalics <rudalics@gmx.at>
6930
6931 * window.c (Vwindow_combination_resize)
6932 (Vwindow_combination_limit): Use t instead of non-nil in
6933 doc-strings.
61d4b438
MR
6934 (Vrecenter_redisplay): Add first sentence of doc-string on
6935 separate line.
53524d93 6936 (Frecenter): Fix doc-string typo.
454592a6 6937
3633e3aa
KH
69382011-12-11 Kenichi Handa <handa@m17n.org>
6939
6940 * coding.c (Funencodable_char_position): Pay attention to the
6941 buffer text relocation (Bug#9389).
6942
7b9d523a 69432011-12-10 Jan Djärv <jan.h.d@swipnet.se>
61ccba97 6944
7b9d523a
JD
6945 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
6946 gtk_init (Bug#10100).
6947
b73189c6
EZ
69482011-12-10 Eli Zaretskii <eliz@gnu.org>
6949
6950 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
6951 IT->string is nil. (Bug#10263)
6952
f7dfe5d6
JD
69532011-12-10 Jan Djärv <jan.h.d@swipnet.se>
6954
83faebb4
JD
6955 * nsterm.h (x_free_frame_resources): Declare.
6956
f7dfe5d6
JD
6957 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
6958 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
6959
6960 * nsterm.h (ns_get_defaults_value): Declare.
6961
6962 * nsterm.m (ns_default): Call ns_get_defaults_value.
6963
7cd4e72c
EZ
69642011-12-09 Eli Zaretskii <eliz@gnu.org>
6965
6966 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
6967 (Bug#10170)
6968
b34d7317
YM
69692011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
6970
6971 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
6972 that where the value of an _OBJC_* symbol points to is in the .bss
6973 section (Bug#10240).
6974
76470ad1
KH
69752011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
6976
6977 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
2fac8180 6978 after the loop to call ccl_driver at least once (Bug#8619).
76470ad1 6979
745fff94
KH
69802011-12-08 Kenichi Handa <handa@m17n.org>
6981
6982 * ftfont.c (get_adstyle_property): Fix previous change
6983 (Bug#10233).
6984
6e44397c
JB
69852011-12-07 Juanma Barranquero <lekktu@gmail.com>
6986
6987 * w32.c (init_environment): If no_site_lisp, remove site-lisp
6988 dirs from the default value of EMACSLOADPATH (bug#10208).
6989
7efa6272
GM
69902011-12-07 Glenn Morris <rgm@gnu.org>
6991
6992 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
6993 installation and source directories as well. (Bug#10208)
6994
f6fc4d87
CY
69952011-12-06 Chong Yidong <cyd@gnu.org>
6996
6997 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
6998
2bf26180
GM
69992011-12-06 Glenn Morris <rgm@gnu.org>
7000
7001 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
7002 as an error, not just -1. (Bug#10217)
7003
3a6ad4f0
CY
70042011-12-05 Chong Yidong <cyd@gnu.org>
7005
7006 * keyboard.c (process_special_events): New function.
7007 (swallow_events, Finput_pending_p): Use it (Bug#10195).
7008
75a3b399
PE
70092011-12-05 Paul Eggert <eggert@cs.ucla.edu>
7010
7011 * coding.c (encode_designation_at_bol): Don't use uninitialized
7012 local variable (Bug#9318).
7013
c3c9e25e
KH
70142011-12-05 Kenichi Handa <handa@m17n.org>
7015
7016 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
7017 return Qnil (Bug#8046, Bug#10193).
7018
5eb05ea3
KH
70192011-12-05 Kenichi Handa <handa@m17n.org>
7020
7021 * coding.c (encode_designation_at_bol): New args charbuf_end and
7022 dst. Return the number of produced bytes. Callers changed.
a79703f5
KH
7023 (coding_set_source): Return how many bytes coding->source was
7024 relocated.
7025 (coding_set_destination): Return how many bytes
7026 coding->destination was relocated.
7027 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
cae07000 7028 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
5eb05ea3
KH
7029
70302011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
7031
7032 * coding.c (CODING_CHAR_CHARSET_P): New macro.
7033 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
7034 macro (Bug#9318).
7035
70362011-12-05 Andreas Schwab <schwab@linux-m68k.org>
7037
7038 The following changes are to fix Bug#9318.
7039
a79703f5 7040 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
5eb05ea3
KH
7041 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
7042 (encode_coding_iso_2022, encode_coding_sjis)
a79703f5 7043 (encode_coding_big5, encode_coding_charset): Use the above macros.
5eb05ea3 7044
7dbda6df
JB
70452011-12-05 Juanma Barranquero <lekktu@gmail.com>
7046
7047 * lisp.h (process_quit_flag): Fix external declaration.
7048
6d5eb5b0
SM
70492011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
7050
7051 Don't macro-inline non-performance-critical code.
7052 * eval.c (process_quit_flag): New function.
7053 * lisp.h (QUIT): Use it.
7054
a0c3fad0
JD
70552011-12-04 Jan Djärv <jan.h.d@swipnet.se>
7056
7057 * nsfns.m (get_geometry_from_preferences): New function.
7058 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
7059
6c07aac2
AS
70602011-12-04 Andreas Schwab <schwab@linux-m68k.org>
7061
7062 * emacs.c (Qkill_emacs): Define.
7063 (syms_of_emacs): Initialize it.
7064 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
7065 Qquit_flag to `kill-emacs' instead.
6d5eb5b0
SM
7066 (quit_throw_to_read_char): Add parameter `from_signal'.
7067 All callers changed. Call Fkill_emacs if requested and safe.
6c07aac2
AS
7068 * lisp.h (QUIT): Call Fkill_emacs if requested.
7069
c052ead4
JD
70702011-12-03 Jan Djärv <jan.h.d@swipnet.se>
7071
7072 * widget.c (update_wm_hints): Return if wmshell is null.
7073 (widget_update_wm_size_hints): New function.
7074
7075 * widget.h (widget_update_wm_size_hints): Declare.
7076
7077 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
7078 widget_update_wm_size_hints (Bug#10104).
7079
9e49252b
EZ
70802011-12-03 Eli Zaretskii <eliz@gnu.org>
7081
7082 * xdisp.c (handle_invisible_prop): If the invisible text ends just
7083 before a newline, prepare the bidi iterator for consuming the
7084 newline, and keep the current paragraph direction. (Bug#10183)
e9a49426 7085 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
9e49252b 7086
02b16839
JL
70872011-12-02 Juri Linkov <juri@jurta.org>
7088
7089 * search.c (Fword_search_regexp): New Lisp function created from
7090 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
7091 (Fword_search_backward, Fword_search_forward)
7092 (Fword_search_backward_lax, Fword_search_forward_lax):
7093 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
7094 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
7095
0068070e
SM
70962011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
7097
7098 * fileio.c (Finsert_file_contents): Move after-change-function call
7099 to before the "handled:" label, since all "goto handled" appear in
7100 cases where the *-change-functions have already been properly called
7101 (bug#10117).
7102
3360a3fc
AS
71032011-12-01 Andreas Schwab <schwab@linux-m68k.org>
7104
7105 * keyboard.c (interrupt_signal): Don't call kill-emacs when
7106 waiting for input. (Bug#10169)
7107
73d6c093
EZ
71082011-11-30 Eli Zaretskii <eliz@gnu.org>
7109
7110 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
7111 verifies glyph row's hash code--we have just reallocated the
7112 glyphs, so their contents can be complete garbage. (Bug#10164)
7113
febe6bea
JB
71142011-11-30 Juanma Barranquero <lekktu@gmail.com>
7115
7116 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
7117
801a4313
EZ
71182011-11-30 Eli Zaretskii <eliz@gnu.org>
7119
7120 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
7121 attributes are tested _before_ calling verify_row_hash, to protect
7122 against GCC re-ordering of the tests. (Bug#10164)
7123
2b56b87e
JD
71242011-11-29 Jan Djärv <jan.h.d@swipnet.se>
7125
7126 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
7127
7128 * xterm.c (handle_one_xevent): Only set async_visible and friends
7129 if net_wm_state_hidden_seen is non-zero (Bug#10002)
7dbda6df 7130 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
2b56b87e
JD
7131 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
7132
dbf31225
PE
71332011-11-28 Paul Eggert <eggert@cs.ucla.edu>
7134
7135 Remove GCPRO-related macros that exist only to avoid shadowing locals.
7136 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
7137 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
7138 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
7139 All uses changed to use GCPRO1 etc.
7140 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
7141 Revert to old implementation (i.e., before 2011-03-11).
7142
1305621b
YM
71432011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7144
7145 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
7146 of scroll runs so as to avoid assigning disabled bogus rows and
7147 unnecessary graphics copy operations.
7148
8c9afb46
EZ
71492011-11-27 Eli Zaretskii <eliz@gnu.org>
7150
7151 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
7152 (snprintf) [_MSC_VER]: Redirect to _snprintf.
7153 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
7154 (malloc, free, realloc, calloc): Redirect to e_* only when
7155 compiling Emacs.
7156
7157 * lisp.h (GCTYPEBITS): Move before first use.
7158 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
7159 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
7160 this macro definition.
7161
7162 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
7163 _MSC_VER.
7164
54e9e3bf
JD
71652011-11-27 Jan Djärv <jan.h.d@swipnet.se>
7166
6d5eb5b0
SM
7167 * gtkutil.c (xg_create_frame_widgets):
7168 Call gtk_window_set_has_resize_grip (FALSE) if that function is
54e9e3bf
JD
7169 present with Gtk+ 2.0.
7170
83aca1cb
PE
71712011-11-26 Paul Eggert <eggert@cs.ucla.edu>
7172
7173 * fileio.c (Finsert_file_contents): Undo previous change; see
7174 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
7175
5b76caa4
PE
71762011-11-26 Paul Eggert <eggert@cs.ucla.edu>
7177
7178 Rename locals to avoid shadowing.
7179 * fileio.c (Finsert_file_contents):
7180 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
7181 * process.c (wait_reading_process_output):
7182 Rename inner 'proc' to 'p' to avoid shadowing.
7183 Indent for consistency with usual Emacs style.
7184
8c535114
EZ
71852011-11-25 Eli Zaretskii <eliz@gnu.org>
7186
7187 * xdisp.c (redisplay_window): If cursor row is not fully visible
7188 after recentering, and scroll-conservatively is set to a large
7189 number, scroll window by a few more lines to make the cursor fully
7190 visible and out of scroll-margin. (Bug#10105)
91b4a718
EZ
7191 (start_display): Don't move to the next line if the display should
7192 start at a newline that is part of a display vector or an overlay
7193 string. (Bug#10119)
8c535114 7194
fa4fdb5c
JL
71952011-11-24 Juri Linkov <juri@jurta.org>
7196
7197 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
7198 after the `MagickPingImage' call. (Bug#10112)
7199
90ec88df
CY
72002011-11-23 Chong Yidong <cyd@gnu.org>
7201
7202 * window.c (Fcoordinates_in_window_p): Accept only live windows.
7203
56e2e794
MR
72042011-11-23 Martin Rudalics <rudalics@gmx.at>
7205
7206 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
7207 making another buffer current. (Bug#10114)
7208
b6e64c41
GM
72092011-11-23 Glenn Morris <rgm@gnu.org>
7210
7211 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
7212
6b21de18
CY
72132011-11-23 Chong Yidong <cyd@gnu.org>
7214
7215 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
7216 using it (Bug#5984).
7217
b12cd789
EZ
72182011-11-22 Eli Zaretskii <eliz@gnu.org>
7219
7220 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
7221 and header-lines, as they don't have one computed for them.
7222 (Bug#10098)
7223
7224 * .gdbinit (prow): Make displayed values more self-explaining.
7225 Add row's hash code.
7226
261b6fd4
LMI
72272011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
7228
7229 * process.c (wait_reading_process_output): Fix asynchrounous
7230 GnuTLS socket handling on some versions of the GnuTLS library.
16c1ad08 7231 (wait_reading_process_output): Add comment and URL.
261b6fd4 7232
e7cfd277
JD
72332011-11-21 Jan Djärv <jan.h.d@swipnet.se>
7234
7235 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
7236
a9b9b7f5
CY
72372011-11-21 Chong Yidong <cyd@gnu.org>
7238
7239 * window.c (Fnext_window, Fprevious_window): Doc fix.
7240
b0d15b4f
SM
72412011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
7242
7243 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
7244
fe7a3057
JB
72452011-11-20 Juanma Barranquero <lekktu@gmail.com>
7246
7247 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
7248
d2999b1a
MR
72492011-11-20 Martin Rudalics <rudalics@gmx.at>
7250
7251 * window.c (Fset_window_combination_limit): Rename argument
7252 STATUS to LIMIT.
7253 (Vwindow_combination_limit): Remove "status" from doc-string.
7254
d5ff9cd0
AS
72552011-11-20 Andreas Schwab <schwab@linux-m68k.org>
7256
7257 * m/ibms390.h: Remove.
7258 * m/ibms390x.h: Don't include "ibms390.h".
7259
a5bb9bd3
SM
72602011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
7261
7262 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
7263 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
7264
cd1181db
JB
72652011-11-20 Juanma Barranquero <lekktu@gmail.com>
7266
7267 * casetab.c (Fset_case_table):
7268 * charset.c (Fcharset_after): Fix typos.
7269
615a3b8d 72702011-11-20 Paul Eggert <eggert@cs.ucla.edu>
6a0bf43d 7271
17e845af
PE
7272 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
7273 Otherwise, valgrind does not work on some platforms.
7274 Problem reported by Andreas Schwab in
6a0bf43d
PE
7275 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
7276 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
7277 is set, removing the need for VIRT_ADDRESS_VARIES.
7278 (PURE_P): Use a more-efficient implementation that needs just one
7279 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
7280 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
7281 to 4 (xorl, subq, cmpq, setbe).
7282 * alloc.c (pure): Always extern now, since that's the
7283 VIRT_ADDR_VARIES behavior.
7284 (PURE_POINTER_P): Use a single comparison, not two, for
7285 consistency with the new puresize.h.
7286 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
7287 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
7288 Remove VIRT_ADDR_VARIES no longer needed.
7289
f8fe6f96
EZ
72902011-11-19 Eli Zaretskii <eliz@gnu.org>
7291
7292 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
7293 (erase_phys_cursor, update_window_cursor, show_mouse_face)
7294 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
7295 behave as if the cursor position were at the window margin.
7296
7297 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
7298 and the cursor position is out of bounds, behave as if the cursor
7299 position were at the window margin. (Bug#10075)
7300
df05a53c
CY
73012011-11-18 Chong Yidong <cyd@gnu.org>
7302
7303 * window.c (Fwindow_combination_limit): Make first argument
7304 non-optional, since it is meaningless for live windows like the
7305 selected window.
61ccba97 7306
2071918e
DA
73072011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
7308
7309 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
7310
b50a28de
SM
73112011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
7312
7313 * intervals.c: Fix grafting over the whole buffer (bug#10071).
7314 (graft_intervals_into_buffer): Simplify.
7315
015137db
EZ
73162011-11-18 Eli Zaretskii <eliz@gnu.org>
7317
7318 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
7319 hash values of the two rows.
7320 (copy_row_except_pointers): Preserve the used[] arrays and the
7321 hash values of the two rows. (Bug#10035)
68c95424 7322 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
015137db
EZ
7323
7324 * xdisp.c (row_hash): New function, body extracted from
7325 compute_line_metrics.
7326 (compute_line_metrics): Call row_hash, instead of computing the
7327 hash code inline.
7328
7329 * dispnew.c (verify_row_hash): Call row_hash for computing the
7330 hash code of a row, instead of duplicating code from xdisp.c.
7331
7332 * dispextern.h (row_hash): Add prototype.
7333
a2addb04
TH
73342011-11-18 Tassilo Horn <tassilo@member.fsf.org>
7335
7336 * frame.c (delete_frame): Don't delete the terminal when the last
7337 X frame is closed if emacs is built with GTK toolkit.
7338
df85d315
JB
73392011-11-17 Juanma Barranquero <lekktu@gmail.com>
7340
7341 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
7342
a0c2d0ae
MR
73432011-11-17 Martin Rudalics <rudalics@gmx.at>
7344
7345 * window.c (Vwindow_splits): Rename to
7346 Vwindow_combination_resize. Suggested by Juri Linkov.
7347 (Fsplit_window_internal): Use Vwindow_combination_resize instead
7348 of Vwindow_splits.
7349
58179cce
JB
73502011-11-16 Juanma Barranquero <lekktu@gmail.com>
7351
7877f373
JB
7352 * nsfns.m (Fns_font_name):
7353 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
58179cce 7354
b6f67890
MR
73552011-11-16 Martin Rudalics <rudalics@gmx.at>
7356
7357 * window.h (window): Rename slot "nest" to "combination_limit".
7358 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
7359 (Fset_window_nest): Rename to Fset_window_combination_limit.
7360 (Vwindow_nest): Rename to Vwindow_combination_limit.
7361 (recombine_windows, make_parent_window, make_window)
7362 (Fsplit_window_internal, saved_window)
7363 (Fset_window_configuration, save_window_save): Rename all
7364 occurrences of window_nest to window_combination_limit.
7365
c7015153
JB
73662011-11-15 Juanma Barranquero <lekktu@gmail.com>
7367
7368 * image.c (imagemagick_load_image): Fix typo.
7369
322ad6ec
EZ
73702011-11-14 Eli Zaretskii <eliz@gnu.org>
7371
7372 * xdisp.c (display_line): Move the call to
7373 highlight_trailing_whitespace before the call to
7374 compute_line_metrics, since the latter needs to see the final
6d5eb5b0
SM
7375 faces of all the glyphs to compute ROW's hash value.
7376 Fixes assertion violations in row_equal_p. (Bug#10035)
322ad6ec 7377
f067b8ec
JB
73782011-11-14 Juanma Barranquero <lekktu@gmail.com>
7379
7380 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
7381 just return (bug#10044).
7382
1e5b2111
EZ
73832011-11-12 Eli Zaretskii <eliz@gnu.org>
7384
7ef3cbd5
EZ
7385 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
7386 with user-defined heap size. Bump the default size of the temacs
7387 heap to 27MB, to avoid memory warning when running temacs.
7388 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
7389
1e5b2111
EZ
7390 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
7391 current_matrix and desired_matrix. (Bug#9990)
7a7270dd
EZ
7392 (verify_row_hash) [XASSERTS]: New function.
7393 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
7394 that the hash value of glyph rows is correct.
1e5b2111 7395
89d61221
MR
73962011-11-12 Martin Rudalics <rudalics@gmx.at>
7397
7398 * window.h (window): Remove splits slot.
7399 * window.c (Fwindow_splits, Fset_window_splits): Remove.
7400 (Fdelete_other_windows_internal, make_parent_window)
7401 (make_window, Fsplit_window_internal, Fdelete_window_internal)
7402 (Fset_window_configuration, save_window_save): Don't deal with
7403 split status of windows.
7404 (saved_window): Remove splits slot.
7405 (Vwindow_splits): Rewrite doc-string.
7406
97f18cc8
JD
74072011-11-11 Jan Djärv <jan.h.d@swipnet.se>
7408
7409 * xfns.c (unwind_create_frame):
7410 * nsfns.m (unwind_create_frame):
7411 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
7412 Vframe_list (Bug#9999).
7413
22a648b4
DA
74142011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
7415
0b381c7e 7416 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
22a648b4 7417
659afede
KH
74182011-11-11 Kenichi Handa <handa@m17n.org>
7419
7420 * callproc.c (Fcall_process): Set the member dst_multibyte of
7421 process_coding.
7422
9ac0394b
KH
74232011-11-11 Johan Bockgård <bojohan@gnu.org>
7424
7425 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
7426 avoid a crash (bug#9496).
7427
2fbdc249
CY
74282011-11-09 Chong Yidong <cyd@gnu.org>
7429
7430 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
7431 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
7432
ac6b1f81
PE
74332011-11-08 Paul Eggert <eggert@cs.ucla.edu>
7434
7435 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
7436
09db192c
PE
74372011-11-08 Paul Eggert <eggert@cs.ucla.edu>
7438
7439 Avoid some portability problems by eschewing 'extern inline' functions.
7440 The trivial performance wins aren't worth the portability hassles; see
7441 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
7442 et seq.
7443 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
7444 (window_box_width, window_box_left, window_box_left_offset)
7445 (window_box_right, window_box_right_offset): Undo previous change,
7446 by removing the "extern"s.
7447 * intervals.c (adjust_intervals_for_insertion)
7448 (adjust_intervals_for_deletion): Undo previous change,
7449 making these static again.
7450 (offset_intervals, temp_set_point_both, temp_set_point)
7451 (copy_intervals_to_string): No longer inline.
7452 * xdisp.c (window_text_bottom_y, window_box_width)
7453 (window_box_height, window_box_left_offset)
7454 (window_box_right_offset, window_box_left, window_box_right)
7455 (window_box): No longer inline.
7456
105216ed
CY
74572011-11-08 Chong Yidong <cyd@gnu.org>
7458
7459 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
6d5eb5b0
SM
7460 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
7461 Signal an error if not a live window.
105216ed
CY
7462 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
7463 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
7464
ae9e237f
JB
74652011-11-07 Juanma Barranquero <lekktu@gmail.com>
7466
7467 * lisp.h (syms_of_abbrev): Remove declaration.
7468 Reported by CHENG Gao <chenggao@royau.me>.
7469
c7aa8333
EZ
74702011-11-07 Eli Zaretskii <eliz@gnu.org>
7471
7472 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
7473 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
7474 of temacs in GUI mode.
7475
be7f5545
MR
74762011-11-07 Martin Rudalics <rudalics@gmx.at>
7477
7478 * window.h: Declare delete_all_child_windows instead of
7479 delete_all_subwindows.
7480 * window.c (Fwindow_nest, Fset_window_nest)
7481 (Fset_window_new_total, Fset_window_new_normal)
7482 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
7483 (delete_all_subwindows): Rename to delete_all_child_windows.
7484 (Fdelete_other_windows_internal, Fset_window_configuration):
7485 Call delete_all_child_windows instead of delete_all_subwindows.
7486 * frame.c (delete_frame): Call delete_all_child_windows instead
7487 of delete_all_subwindows.
7488
ca78dc43
PE
74892011-11-07 Paul Eggert <eggert@cs.ucla.edu>
7490
7491 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
7492 This is also needed for porting to any host where GC_MARK_STACK is
7493 not GC_MAKE_GCPROS_NOOPS.
7494 (which_symbols): Use it.
7495
a0241d01
KH
74962011-11-07 Kenichi Handa <handa@m17n.org>
7497
7498 * coding.c (coding_set_destination): Check coding->src_pos only
7499 when coding->src_object is a buffer (bug#9910).
7500
7501 * process.c (send_process): Set the member src_multibyte of coding
7502 to 0 (bug#9911) when sending a unibyte text.
7503
7504 * callproc.c (Fcall_process): Set the member src_multibyte of
7505 process_coding to 0 (bug#9912).
7506
a64bfdfa 75072011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
ba24cea2
YM
7508
7509 * xmenu.c (cleanup_widget_value_tree): New function.
7510 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
7511 calling free_menubar_widget_value_tree directly (Bug#9830).
7512
cb41b32a
PE
75132011-11-06 Paul Eggert <eggert@cs.ucla.edu>
7514
7515 Fix some portability problems with 'inline'.
7516 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
7517 (window_box_width, window_box_left, window_box_left_offset)
7518 (window_box_right, window_box_right_offset): Declare extern.
7519 Otherwise, these inline functions do not conform to C99 and
7520 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
7521 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
7522 * intervals.c (adjust_intervals_for_insertion)
7523 (adjust_intervals_for_deletion): Now extern, because otherwise the
7524 extern inline functions 'offset_intervals' couldn't refer to it.
7525 (static_offset_intervals): Remove.
7526 (offset_intervals): Rewrite using the old contents of
7527 static_offset_intervals. The old version didn't conform to C99
7528 because an extern inline function contained a reference to an
7529 identifier with static linkage.
7530
b7041366
AS
75312011-11-06 Andreas Schwab <schwab@linux-m68k.org>
7532
7533 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
7534 GC.
7535
88a37c4d
EZ
75362011-11-06 Eli Zaretskii <eliz@gnu.org>
7537
7538 * xdisp.c (init_iterator, reseat_to_string): Don't set the
7539 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
7540 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
7541 return Qleft_to_right.
7542
49745b39
CY
75432011-11-06 Chong Yidong <cyd@gnu.org>
7544
7545 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
7546 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
7547 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
7548 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
7549 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
7550 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
7551 (Fwindow_vscroll): Doc fix.
7552 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
7553 argument, since it makes no sense to pass a live window and for
7554 consistency with window-child.
7555
1f05cd82
CS
75562011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
7557
7558 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
7559 support MSVC.
7560
22610910
JR
75612011-11-05 Jason Rumney <jasonr@gnu.org>
7562
7563 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
7564 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
7565 fonts (Bug#6029).
7566 (add_font_entity_to_list): Fix logic errors in mixed boolean and
7567 bitwise arithmetic preventing use of unicode-sip and non-truetype
7568 opentype fonts.
7569
a06776b2
EZ
75702011-11-05 Eli Zaretskii <eliz@gnu.org>
7571
3ad924ba
EZ
7572 * s/ms-w32.h (fstat, stat, utime): Move redirections to
7573 "emacs"-only part.
7574
a06776b2
EZ
7575 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
7576 initialization code to keep similarity to xfns.c after changes
7577 from 2011-11-05.
7578
c9e7db78
JD
75792011-11-05 Jan Djärv <jan.h.d@swipnet.se>
7580
a97f8f3f
JD
7581 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
7582 (unwind_create_frame): New function (Bug#9943).
7583 (Fx_create_frame): Restructure code to be more similar to the one in
7584 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
7585 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
7586 Move terminal->reference_count++ just before making the frame official
7587 (Bug#9943).
7588
7589 * nsterm.m (x_free_frame_resources): New function.
7590 (x_destroy_window): Move code to x_free_frame_resources.
7591
c9e7db78 7592 * xfns.c (unwind_create_frame): Fix comment.
6d5eb5b0
SM
7593 (Fx_create_frame, x_create_tip_frame):
7594 Move terminal->reference_count++ just before making the frame
75f1671a 7595 official. Move initialization of image_cache_refcount and
c9e7db78
JD
7596 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
7597
a6fc3b5c
EZ
75982011-11-05 Eli Zaretskii <eliz@gnu.org>
7599
7600 Support MSVC build with newer versions of Visual Studio.
7601 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
7602 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
7603 nt/gmake.defs.
7604
7605 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
7606 which are not supported by MSVC.
7607 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
7608 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
7609 bitfields.
7610 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
7611 types in bitfields.
7612 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
7613
7614 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
7615
58179cce 76162011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
a6fc3b5c
EZ
7617
7618 Support MSVC build with newer versions of Visual Studio.
7619 * w32.c: Don't include w32api.h for MSVC.
7620 (init_environment) [_MSC_VER]: Call sys_access, not _access.
7621
7622 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
7623 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
7624 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
7625 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
7626 e_* cousins.
7627 (alloca) [_MSC_VER]: Define to _alloca.
7628
7629 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
7630
7631 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
7632
a58c13ed
EZ
76332011-11-04 Eli Zaretskii <eliz@gnu.org>
7634
7635 * xdisp.c (note_mouse_highlight): If either of
7636 previous/next-single-property-change returns nil, treat that as
7637 the beginning or the end of the buffer. (Bug#9955)
7638
fe0b6370
JD
76392011-11-04 Jan Djärv <jan.h.d@swipnet.se>
7640
a58c13ed 7641 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
fe0b6370
JD
7642 label is not null (Bug#9951).
7643 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
7644 may be NULL.
7645
89bd5ee1
EZ
76462011-11-04 Eli Zaretskii <eliz@gnu.org>
7647
7648 * window.c (Fwindow_body_size): Mention in the doc string that the
7649 return value is in frame's canonical units. (Bug#9949)
7650
84c3edb9
EZ
76512011-11-03 Eli Zaretskii <eliz@gnu.org>
7652
4e2fb5c7
EZ
7653 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
7654
84c3edb9 7655 * w32fns.c (unwind_create_frame): If needed, free the glyph
3ab15fd6 7656 matrices of the partially constructed frame. (Bug#9943)
2a58bbc1 7657 * xfns.c (unwind_create_frame): Likewise.
84c3edb9 7658
bc17a887
EZ
76592011-11-01 Eli Zaretskii <eliz@gnu.org>
7660
7661 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
7662 Don't stop backward scan on the continuation glyph, even though
7663 its CHARPOS is positive.
6d5eb5b0
SM
7664 (mouse_face_from_buffer_pos, note_mouse_highlight):
7665 Rename cover_string to disp_string.
bc17a887 7666
4ee88440
MR
76672011-11-01 Martin Rudalics <rudalics@gmx.at>
7668
7669 * window.c (temp_output_buffer_show): Don't use
7670 Vtemp_buffer_show_specifiers.
7671 (Vtemp_buffer_show_specifiers): Remove unused variable.
7672
c2ff3c02
EZ
76732011-10-30 Eli Zaretskii <eliz@gnu.org>
7674
7675 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
7676 past the beginning of the current glyph matrix.
7677
58179cce 76782011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
6e56383b
JD
7679
7680 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
7681 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
7682 HAVE_GTK3 (Bug#9869).
b77a6a7f 7683
3b574623
JD
7684 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
7685 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
7686
b77a6a7f
JD
7687 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
7688
7689 * xterm.c: Declare x_handle_net_wm_state to return int.
7690 (handle_one_xevent): Check if we are iconified but don't have
7691 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
7692 (get_current_wm_state): Return non-zero if not hidden,
7693 check for _NET_WM_STATE_HIDDEN (Bug#9893).
7694 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
7695 (x_handle_net_wm_state): Return what get_current_wm_state returns.
7696 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
7697
196e41e4
PE
76982011-10-29 Paul Eggert <eggert@cs.ucla.edu>
7699
7700 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
7701 so that this new function doesn't get optimized away by a
7702 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
7703
021f2e1a
AS
77042011-10-29 Andreas Schwab <schwab@linux-m68k.org>
7705
7706 * frame.h (MOUSE_HL_INFO): Remove excess parens.
7707
8b058d44
EZ
77082011-10-29 Eli Zaretskii <eliz@gnu.org>
7709
7710 Fix the `xbytecode' command.
7711 * .gdbinit (xprintbytestr): New command.
b50a28de 7712 (xwhichsymbols): Rename from `which'; all callers changed.
8b058d44
EZ
7713 (xbytecode): Print the byte-code string as well.
7714
4452fb80
EZ
77152011-10-29 Kim Storm <storm@cua.dk>
7716
8b058d44
EZ
7717 * alloc.c (which_symbols): New function.
7718
21b72067
AS
77192011-10-29 Andreas Schwab <schwab@linux-m68k.org>
7720
7721 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
7722 line. (Bug#9903)
7723
83ed7b5c
GM
77242011-10-29 Glenn Morris <rgm@gnu.org>
7725
7726 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
7727 Not clear what it was for, and it causes various bugs. (Bug#9839)
7728
5a7a728b
EZ
77292011-10-28 Eli Zaretskii <eliz@gnu.org>
7730
7731 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
7732 possible random value that matches one of those tested as
7733 condition to clear the mouse face.
7734
d3d0842f
CY
77352011-10-28 Chong Yidong <cyd@gnu.org>
7736
7737 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
7738
31b39d13
DN
77392011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
7740
7741 * window.c (make_window): Initialize phys_cursor_on_p.
7742
9aba6043
SM
77432011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
7744
7745 * lisp.h (struct Lisp_Symbol): Update comments.
7746
c20992f4
JB
77472011-10-28 Juanma Barranquero <lekktu@gmail.com>
7748
7749 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
7750
db4f02f2
EZ
77512011-10-28 Eli Zaretskii <eliz@gnu.org>
7752
7753 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
7754 <oslsachem@gmail.com> for helping to debug this.
7755
7756 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
7757 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
7758 (g_b_init_get_glyph_outline_w): New static variables.
7759 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
7760 (GetGlyphOutlineW_Proc): New typedefs.
7761 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
9aba6043
SM
7762 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
7763 New functions.
7764 (w32font_open_internal, compute_metrics):
7765 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
db4f02f2
EZ
7766 instead of calling the "wide" APIs directly.
7767
7768 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
7769
7770 * w32.h (syms_of_w32font): Add prototype.
7771
87e68db4
JB
77722011-10-27 Juanma Barranquero <lekktu@gmail.com>
7773
7774 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
7775 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
7776 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
7777 (Fmove_to_window_line): Doc fix.
7778
435c1d67
CY
77792011-10-27 Chong Yidong <cyd@gnu.org>
7780
7781 * process.c (make_process): Set gnutls_state to NULL.
7782
7783 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
7784 non-NULL, regardless of GNUTLS_INITSTAGE.
7785 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
7786 an error. Set process slots as soon as we allocate them.
7787
7788 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
7789
9c6c6f49
CY
77902011-10-27 Chong Yidong <cyd@gnu.org>
7791
9aba6043
SM
7792 * gnutls.c (emacs_gnutls_deinit): New function.
7793 Deallocate credentials structures as well as calling gnutls_deinit.
9c6c6f49
CY
7794 (Fgnutls_deinit, Fgnutls_boot): Use it.
7795
7796 * process.c (make_process): Initialize GnuTLS credentials to NULL.
7797 (deactivate_process): Call emacs_gnutls_deinit.
7798
657d08d3
JB
77992011-10-27 Juanma Barranquero <lekktu@gmail.com>
7800
7801 * image.c (x_create_x_image_and_pixmap):
7802 * w32.c (sys_rename, w32_delayed_load):
7803 * w32font.c (fill_in_logfont):
7804 * w32reg.c (x_get_string_resource): Silence compiler warnings.
7805
5430d399
JB
78062011-10-26 Juanma Barranquero <lekktu@gmail.com>
7807
7808 * w32fns.c (w32_default_color_map): New function,
7809 extracted from Fw32_default_color_map.
a7ef684b 7810 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
5430d399 7811
fe0055fa
PE
78122011-10-25 Paul Eggert <eggert@cs.ucla.edu>
7813
7814 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
7815
e6346438
SM
78162011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
7817
7818 * keyboard.c (test_undefined): New function (bug#9751).
7819 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
7820
e112cc37
ET
78212011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
7822
7823 * sysdep.c (init_sys_modes): Fix the check for the controlling
7824 terminal (Bug#6649).
7825
7b5d6677
EZ
78262011-10-20 Eli Zaretskii <eliz@gnu.org>
7827
7828 * dispextern.h (struct bidi_it): New member next_en_type.
7829
7830 * bidi.c (bidi_line_init): Initialize the next_en_type member.
7831 (bidi_resolve_explicit_1): When next_en_pos is valid for the
7832 current character, check also for next_en_type being WEAK_EN.
7833 (bidi_resolve_weak): Don't enter the expensive loop if the current
7834 position is before next_en_pos. Record the bidi type of the first
7835 non-ET, non-BN character we find, in addition to its position.
7836 (bidi_level_of_next_char): Invalidate next_en_type when
7837 next_en_pos is over-stepped.
7838
7da0b018
PE
78392011-10-20 Paul Eggert <eggert@cs.ucla.edu>
7840
7841 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
7842 * editfns.c: Rewrite current-time-zone so that it invokes
7843 the equivalent of (format-time-string "%Z") to get the time zone name.
7844 This fixes a bug when the time zone name contains characters that
7845 need converting from the system time locale to Emacs internal format.
7846 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
7847 that patch fixed format-time-string to do the conversion, but
7848 I forgot to fix current-time-zone.
7849 (format_time_string): New function, containing most of
7850 what Fformat_time_string used to contain.
7851 (Fformat_time_string): Rewrite in terms of format_time_string.
7852 This doesn't change this function's behavior.
7853 (current-time-zone): Rewrite to use format_time_string.
7854 This fixes the bug reported by Michael Schierl in
7855 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
7856 Jason Rumney's 2007-06-07 change worked around this bug, but
7857 didn't fix it.
7858 * systime.h (tzname, timezone): Remove no-longer-used declarations.
7859
8547b010
EZ
78602011-10-19 Eli Zaretskii <eliz@gnu.org>
7861
7862 * xdisp.c (start_display): If the character at POS is displayed
7863 via a display vector, reset IT->current.dpvec_index to zero.
12b32963
EZ
7864 (try_window_reusing_current_matrix): If a line ends in a display
7865 vector or the next line starts in a display vector, continue
7866 redrawing the window even though the character position of
7867 start_row was reached.
8547b010
EZ
7868 (Bug#9771, part 2)
7869
4e948d15
CY
78702011-10-18 Chong Yidong <cyd@gnu.org>
7871
7872 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
7873 with nobreak-char-display too.
7874
4787455f
EZ
78752011-10-18 Eli Zaretskii <eliz@gnu.org>
7876
7877 Fix part 3 of bug#9771.
7878 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
7879 (bidi_resolve_neutral): Don't enter the expensive loop looking for
7880 non-neutral characters if the current character is a paragraph
7881 separator (a.k.a. Newline). This avoids running the same
7882 expensive loop twice, once when we consume the preceding newline
7883 and the other time when the line actually needs to be displayed.
7884 Avoid the loop when we see neutrals on the base embedding level
7885 following a character whose directionality is the same as the
7886 paragraph's. This avoids running the expensive loop when a line
7887 ends in a long sequence of neutrals, like control characters.
7888 Add assertion against STRONG_AL type. Slightly rearrange code
7889 that determines the type of a neutral given the first non-neutral
7890 that follows it.
7891 (bidi_level_of_next_char): Set next_en_pos to zero when
7892 invalidating its info.
7893
2c91f553
EZ
78942011-10-17 Eli Zaretskii <eliz@gnu.org>
7895
7896 * xdisp.c (push_display_prop): Determine whether to record string
7897 or buffer position by IT->string, not by IT->method. Allow
7898 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
f2ff9e88
EZ
7899 (move_it_vertically_backward): Don't look for character position
7900 immediately after the newline when in a continuation line.
7901 (Bug#9771, part 1)
2c91f553 7902
c7b08b0d
MR
79032011-10-15 Martin Rudalics <rudalics@gmx.at>
7904
7905 * window.c (coordinates_in_window): Rewrite and delabelize
7906 vertical border check. (Bug#5357) (Bug#9618)
7907
6b02f655
SM
79082011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
7909
7910 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
7911 errors in XSetWindowBorder (bug#9310).
7912
81d40c92
DA
79132011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
7914
7915 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
7916 avoid crash when xmalloc overrun checking is enabled.
7917
d4172c3b
EZ
79182011-10-13 Eli Zaretskii <eliz@gnu.org>
7919
7920 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
7921 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
7922 cursor motion with <left> and <right> arrow keys.
7923
7924 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
7925 some callers set that themselves.
7926
b00eea75
EZ
79272011-10-12 Eli Zaretskii <eliz@gnu.org>
7928
7929 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
7930 display string and the previous row comes from the same string and
7931 is empty. (Bug#9739) (Bug#9738)
7932
8fe012c4
SM
79332011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
7934
7935 * doc.c (get_doc_string): Encode file name (bug#9735).
7936
0074aef2
EZ
79372011-10-12 Eli Zaretskii <eliz@gnu.org>
7938
79beb178
EZ
7939 * bidi.c (bidi_level_of_next_char):
7940 * xdisp.c (get_visually_first_element): Remove old incorrect
7941 comments regarding the Unicode Line Separator character.
7942
0074aef2
EZ
7943 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
7944
6e4b3fbe
DA
79452011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
7946
7947 * alloc.c (Fgc_status): Do not access beyond zombies array
7948 boundary if nzombies > MAX_ZOMBIES.
7949 * alloc.c (dump_zombies): Add missing format specifier.
7950
0324f3af
PE
79512011-10-12 Paul Eggert <eggert@cs.ucla.edu>
7952
b5525cac
PE
7953 * xdisp.c (set_cursor_from_row): Simplify conditionals,
7954 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
7955
0324f3af
PE
7956 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
7957 Some packages use them to denote characters with modifiers.
7958
e9b5f888
AS
79592011-10-11 Andreas Schwab <schwab@linux-m68k.org>
7960
7961 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
7962 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
7963 matching a pp-number. Rename parameter var to var1.
7964
127827c0
SM
79652011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
7966
7967 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
7968
c8fd3bd0
GM
79692011-10-08 Glenn Morris <rgm@gnu.org>
7970
7971 * callint.c (Fcall_interactively): Give a more explicit error for the
7972 'c' case with a non-character input. (Bug#8479)
7973
352ec8ff
EZ
79742011-10-08 Eli Zaretskii <eliz@gnu.org>
7975
03669ccb
EZ
7976 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
7977 lines.
7061c986
EZ
7978 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
7979 lines that are hscrolled on the left.
03669ccb 7980
352ec8ff
EZ
7981 * dispnew.c (buffer_posn_from_coords): Account for a possible
7982 presence of header-line. (Bug#4426)
7983
a66cfb1c
SM
79842011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
7985
6b02f655
SM
7986 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
7987 Don't advertise functionality which we discourage or doesn't work.
a66cfb1c 7988
7c5ee88e
PE
79892011-10-07 Paul Eggert <eggert@cs.ucla.edu>
7990
7991 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
7992 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
7993 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
7994 this makes Emacs dump core during garbage collection on rare
7995 occasions. sizeof is obviously inferior to offsetof here, so
7996 stick with offsetof.
7997 (GC_POINTER_ALIGNMENT): New macro.
7998 (mark_memory): Omit 3rd (offset) arg; caller changed.
7999 Don't assume EMACS_INT alignment is the same as pointer alignment.
8000
df1bbe5b
SM
80012011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
8002
8003 * keyboard.c (read_key_sequence_remapped): New var.
8004 (read_key_sequence): Compute remapping in the right buffer.
8005 (command_loop_1): Use read_key_sequence's remapping directly.
8006
51553db6
SM
80072011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
8008
32c1fffd
SM
8009 * dired.c (file_name_completion): Don't expand file name.
8010 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
8011 before checking file name handler.
8012
51553db6
SM
8013 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
8014 they've been requested explicitly (bug#9591).
8015
b6bd1599 80162011-10-01 Andreas Schwab <schwab@linux-m68k.org>
fa2ec41f
AS
8017
8018 * keymap.c (Fsingle_key_description): Use make_specified_string
8019 instead of build_string to build string from push_key_description.
8020 (Bug#5193)
8021
f701dc2a
PE
80222011-09-30 Paul Eggert <eggert@cs.ucla.edu>
8023
4222c55d
PE
8024 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
8025 This fixes a Y2038 bug on 64-bit hosts.
8026 * buffer.c (reset_buffer):
8027 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
8028 (Fclear_buffer_auto_save_failure):
8029 Use 0, not -1, to represent an unset failure time, since time_t
8030 might not be signed.
8031
f701dc2a
PE
8032 Remove dependency on glibc malloc internals.
8033 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
8034 Move back here from lisp.h, but with their new implementations.
8035 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
8036 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
8037 * charset.c (charset_table_init): New static var.
8038 (syms_of_charset): Use it instead of xmalloc. This removes a
8039 dependency on glibc malloc internals. See Eli Zaretskii's comment in
8040 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
8041 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
8042 Move back to alloc.c.
8043 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
8044 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
8045
9ceebf39
JD
80462011-09-30 Jan Djärv <jan.h.d@swipnet.se>
8047
8048 * nsterm.m (windowDidResize): Call x_set_window_size only when
8049 ns_in_resize is true. Otherwise set pixelwidth/height and
8050 call change_frame_size (Bug#9628).
8051
cb993c58
PE
80522011-09-30 Paul Eggert <eggert@cs.ucla.edu>
8053
3930c88b
PE
8054 Port --enable-checking=all to Fedora 14 x86-64.
8055 * charset.c (syms_of_charset): Also account for glibc malloc's
8056 internal overhead when calculating the initial malloc maximum.
8057
cb993c58
PE
8058 Port --enable-checking=all to Fedora 14 x86.
8059 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
8060 Move to lisp.h.
8061 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
8062 (overrun_check_realloc, overrun_check_free):
8063 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
8064 That way, xmalloc returns a properly-aligned pointer even if
8065 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
8066 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
8067 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
8068 into account when calculating the initial malloc maximum.
8069 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
8070 Move here from alloc.c, so that charset.c can use it too.
8071 Properly align; the old code wasn't right for common 32-bit hosts
8072 when configured with --enable-checking=all.
8073 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
8074 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
8075
31bed486
EZ
80762011-09-29 Eli Zaretskii <eliz@gnu.org>
8077
04c70788 8078 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
31bed486
EZ
8079 use EDOM.
8080
fbcaa2f3
EZ
80812011-09-28 Eli Zaretskii <eliz@gnu.org>
8082
8083 * xdisp.c (compute_display_string_end): If there's no display
8084 string at CHARPOS, return -1.
8085
8086 * bidi.c (bidi_fetch_char): When compute_display_string_end
8087 returns a negative value, treat the character as a normal
8088 character not covered by a display string. (Bug#9624)
8089
a239d4e9
JB
80902011-09-28 Juanma Barranquero <lekktu@gmail.com>
8091
8092 * lread.c (Fread_from_string): Fix typo in docstring.
8093
88652fd5
EZ
80942011-09-27 Eli Zaretskii <eliz@gnu.org>
8095
8096 * xdisp.c (handle_invisible_prop): If invisible text ends on a
8097 newline, reseat the iterator instead of bidi-iterating there one
8098 character at a time. (Bug#9610)
32c1fffd
SM
8099 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
8100 TO_CHARPOS if the bidi iterator is at base embedding level.
88652fd5 8101
ed497dd4
AS
81022011-09-27 Andreas Schwab <schwab@linux-m68k.org>
8103
8104 * lread.c (readevalloop): Use correct code for NBSP.
8105 (read1): Likewise. (Bug#9608)
8106
b2bf61aa
MA
81072011-09-25 Michael Albinus <michael.albinus@gmx.de>
8108
8109 * dbusbind.c (Fdbus_register_signal): When service is not
8110 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
8111
32bbb17c
GM
81122011-09-25 Glenn Morris <rgm@gnu.org>
8113
8114 * buffer.c (truncate-lines): Doc fix.
8115
94e0933e
CY
81162011-09-24 Chong Yidong <cyd@stupidchicken.com>
8117
8118 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
8119 (Fset_window_next_buffers): Doc fix.
8120
cddde921
GM
81212011-09-24 Glenn Morris <rgm@gnu.org>
8122
8123 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
8124
1260aef1
PE
81252011-09-24 Paul Eggert <eggert@cs.ucla.edu>
8126
25b4bfa0
PE
8127 Fix minor problems found by static checking.
8128 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
1260aef1
PE
8129 * indent.c (Fvertical_motion): Fix == vs = typo.
8130
e3cbd34b
EZ
81312011-09-24 Eli Zaretskii <eliz@gnu.org>
8132
a66cfb1c
SM
8133 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
8134 Default value is now t. Doc fix.
6bf7006f 8135
e3cbd34b 8136 * indent.c (Fvertical_motion): Compute and apply the overshoot
32c1fffd 8137 logic when moving up, not only when moving down. Fix the
e3cbd34b 8138 confusing name and values of the it_overshoot_expected variable;
32c1fffd 8139 logic changes accordingly. (Bug#9254) (Bug#9549)
e3cbd34b
EZ
8140
8141 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
8142 CHARPOS is covered by a display string which includes newlines.
8143 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
8144 is covered by a display string with embedded newlines.
8145
a3de0cbd
MA
81462011-09-24 Michael Albinus <michael.albinus@gmx.de>
8147
8148 * dbusbind.c (Fdbus_register_signal): Add match rule to
8149 Vdbus_registered_objects_table. (Bug#9581)
a66cfb1c
SM
8150 (Fdbus_register_method, Vdbus_registered_objects_table):
8151 Fix docstring.
a3de0cbd 8152
b260039d
JM
81532011-09-24 Jim Meyering <meyering@redhat.com>
8154
32c1fffd 8155 do not ignore write error for any output size
b260039d
JM
8156 The previous change was incomplete.
8157 While it makes emacs --batch detect the vast majority of stdout
8158 write failures, errors were still ignored whenever the output size is
8159 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
8160 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
8161 && echo FAIL: ignored write error
8162 FAIL: ignored write error
8163 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
8164 && echo FAIL: ignored write error
8165 FAIL: ignored write error
8166 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
8167
8eca8a7c
AS
81682011-09-23 Andreas Schwab <schwab@linux-m68k.org>
8169
8170 * emacs.c (Fkill_emacs): In noninteractive mode exit
8171 non-successfully if a write error occurred on stdout. (Bug#9574)
8172
3341db62
EZ
81732011-09-21 Eli Zaretskii <eliz@gnu.org>
8174
8175 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
8176 the xassert test.
8177
8178 * dispextern.h (struct it): Update the comment documenting what
8179 can it->OBJECT be.
8180
8c203dbf
EZ
81812011-09-20 Eli Zaretskii <eliz@gnu.org>
8182
8183 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
8184 a display string, extend search for cursor position to end of row.
8185 (find_row_edges): If the row ends in a newline from a display
8186 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
8187 Handle the case of a display string with multiple newlines.
fd317ddf
EZ
8188 (Fcurrent_bidi_paragraph_direction): Fix search for previous
8189 non-empty line. Fixes confusing cursor motion with arrow keys at
8190 the beginning of a line that starts with whitespace.
8c203dbf 8191
a4824228
LMI
81922011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
8193
8194 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
8195 (bug#9493).
8196
33ed493b
CY
81972011-09-18 Chong Yidong <cyd@stupidchicken.com>
8198
8199 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
8200 boolean (Bug#9154).
8201
56cd55c8
EZ
82022011-09-18 Eli Zaretskii <eliz@gnu.org>
8203
8204 * xdisp.c (display_line): Record maximum and minimum buffer
8205 positions even if no glyphs were produced (e.g., by a zero-width
8206 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
8207 buffer positions that will be removed from the glyph row because
8208 they don't fit.
c02dcedf
EZ
8209 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
8210 column is beyond frame width: don't subtract 1 "pixel" when
8211 computing width of the stretch.
3e62b7e0
EZ
8212 (reseat_at_next_visible_line_start): Undo the change made on
8213 2011-09-17 that saved paragraph information and restored it after
8214 the call to `reseat'. (Bug#9545)
56cd55c8 8215
5ed99d36 82162011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3390454c
YM
8217
8218 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
8219 and turn window cursor on if cleared (Bug#9415).
8220
5ed99d36 82212011-09-18 Andreas Schwab <schwab@linux-m68k.org>
edb7b4dc
AS
8222
8223 * search.c (boyer_moore): Take unibyte characters from pattern
8224 literally. (Bug#9458)
8225
9bade7b2
EZ
82262011-09-18 Eli Zaretskii <eliz@gnu.org>
8227
8228 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
8229
e5e9d610
PE
82302011-09-18 Paul Eggert <eggert@cs.ucla.edu>
8231
87e4427a
PE
8232 Fix minor problem found by static checking.
8233 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
8234 initialized, to pacify gcc -Wuninitialized.
8235
e5e9d610
PE
8236 * fileio.c: Report proper errno when syscall falls.
8237 (Finsert_file_contents): Save and restore errno,
8238 so that report_file_error outputs the correct diagnostic.
8239 (Fwrite_region) [CLASH_DETECTION]: Likewise.
8240
a1674f0b
EZ
82412011-09-18 Eli Zaretskii <eliz@gnu.org>
8242
8243 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
8244
fbfb6dd4
EZ
82452011-09-17 Eli Zaretskii <eliz@gnu.org>
8246
8247 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
8248 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
8249
bb187662
EZ
82502011-09-17 Eli Zaretskii <eliz@gnu.org>
8251
1137e8b8 8252 * xdisp.c (reseat_at_next_visible_line_start): Keep information
6b02f655 8253 about the current paragraph and restore it after the call to reseat.
1137e8b8
EZ
8254
8255 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
8256 (bidi_find_paragraph_start): Search back for paragraph beginning
8257 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
8258 (bidi_move_to_visually_next): Only trigger paragraph-related
8259 computations when the last character is a newline or at EOB, not
8260 just any NEUTRAL_B. (Bug#9470)
8261
bb187662
EZ
8262 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
8263 truncated lines if point is covered by a display string. (Bug#9524)
8264
2e621251
PE
82652011-09-16 Paul Eggert <eggert@cs.ucla.edu>
8266
8267 * xselect.c: Relax test for outgoing X longs (Bug#9498).
8268 (cons_to_x_long): New function.
8269 (lisp_data_to_selection_data): Use it. Correct the test for
8270 short-versus-long data; it was negated. Break out of vector
8271 loop, for efficiency, when a long datum is discovered.
8272
91a15bc6
SM
82732011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
8274
8275 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
8276
b41c3a35
EZ
82772011-09-16 Eli Zaretskii <eliz@gnu.org>
8278
8279 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
8280 GCC PR/17406) by declaring this function with external scope.
8281
7812ba2d
PE
82822011-09-15 Paul Eggert <eggert@cs.ucla.edu>
8283
8284 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
8285 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
8286
cf7edc2a
AS
82872011-09-15 Andreas Schwab <schwab@linux-m68k.org>
8288
8289 * editfns.c (Fformat): Correctly handle text properties on "%%".
8290
bd01620e
EZ
82912011-09-15 Eli Zaretskii <eliz@gnu.org>
8292
8293 * xterm.c (x_draw_composite_glyph_string_foreground):
8294 * w32term.c (x_draw_composite_glyph_string_foreground):
8295 * term.c (encode_terminal_code):
8296 * composite.c (composition_update_it, get_composition_id):
8297 * xdisp.c (get_next_display_element)
8298 (fill_composite_glyph_string): Add comments about special meaning
8299 of TAB characters in a composition.
8300
a02719a3
PE
83012011-09-15 Paul Eggert <eggert@cs.ucla.edu>
8302
8303 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
4c122725
PE
8304 This occurs when processing a multibyte format.
8305 Problem reported by Wolfgang Jenker.
a02719a3 8306
72589a3c
JB
83072011-09-15 Johan Bockgård <bojohan@gnu.org>
8308
8309 * xdisp.c (try_cursor_movement): Only check for exact match if
8310 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
8311
1c14176c
PE
83122011-09-14 Paul Eggert <eggert@cs.ucla.edu>
8313
8314 Remove unused external symbols.
8315 * dispextern.h (calc_pixel_width_or_height): Remove decl.
8316 * xdisp.c (calc_pixel_width_or_height): Now static.
8317 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
8318 * indent.c (check_display_width):
8319 * w32term.c: Fix comment to match code.
8320 * xterm.c, xterm.h (x_catching_errors): Remove.
8321
d2eea5b5
PE
83222011-09-14 Paul Eggert <eggert@cs.ucla.edu>
8323
8324 * xselect.c: Use signed conversions more consistently (Bug#9498).
8325 (selection_data_to_lisp_data): Assume incoming selection data are
8326 signed integers, not unsigned. This is to be consistent with
8327 outgoing selection data, which was modified to use signed integers
8328 in as part of the fix to Bug#9196 in response to Jan D.'s comment
8329 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
8330 expects long, not unsigned long.
8331
46888499
EZ
83322011-09-14 Eli Zaretskii <eliz@gnu.org>
8333
8334 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
8335 computation of loop end. Reported by Johan Bockgård
8336 <bojohan@gnu.org>.
8337
ef8ef9fb
CY
83382011-09-13 Chong Yidong <cyd@stupidchicken.com>
8339
8340 * frame.c (Fother_visible_frames_p): Function deleted.
8341
fa819fed
EZ
83422011-09-12 Eli Zaretskii <eliz@gnu.org>
8343
8344 * indent.c (compute_motion): Process display vector front to back
8345 rather than the other way around. (Bug#2496)
8346
2ba8e008
SM
83472011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
8348
8349 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
8350
20f53c69
CY
83512011-09-11 Chong Yidong <cyd@stupidchicken.com>
8352
8353 * minibuf.c (Fread_from_minibuffer): Doc fix.
8354
d562d7a4
EZ
83552011-09-11 Eli Zaretskii <eliz@gnu.org>
8356
8357 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
8358 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
8359
1c4d7f3d
LMI
83602011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
8361
8362 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
8363 value for non-existent files.
8364
b885bf36
EZ
83652011-09-11 Eli Zaretskii <eliz@gnu.org>
8366
8367 * fileio.c (Finsert_file_contents): If the file cannot be opened,
8368 set its "size" to -1. This will set the modtime_size field of
8369 the corresponding buffer to -1, which is what
8370 verify-visited-file-modtime expects for files that do not exist.
8371 (Bug#9139)
8372
6612f0bf
PE
83732011-09-11 Paul Eggert <eggert@cs.ucla.edu>
8374
8375 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
8376 here ...
8377 * lisp.h: ... from here. push_key_description is no longer
8378 defined in keyboard.c, so its declaration should not be in
8379 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
8380 logically belongs with push_key_description.
8381
dfb3f755
PE
83822011-09-10 Paul Eggert <eggert@cs.ucla.edu>
8383
8384 * buffer.h: Include <sys/types.h> instead of <time.h>.
8385 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
8386 Problem reported by Herbert J. Skuhra.
8387
3134906c
LMI
83882011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
8389
8390 * xml.c (parse_region): Make the parsing work for
8391 non-comment-starting XML files again (bug#9144).
8392
8d903f4e
AS
83932011-09-10 Andreas Schwab <schwab@linux-m68k.org>
8394
8395 * image.c (gif_load): Fix calculation of bottom and right corner.
8396 (Bug#9468)
8397
80ad64f4
EZ
83982011-09-10 Eli Zaretskii <eliz@gnu.org>
8399
8400 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
8401 redisplay in small windows.
8402
208a048d
EZ
84032011-09-09 Eli Zaretskii <eliz@gnu.org>
8404
8405 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
8406
9b1c252e
MR
84072011-09-08 Martin Rudalics <rudalics@gmx.at>
8408
8409 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
8410 Operate on live windows only.
8411
2949f33b
JB
84122011-09-08 Juanma Barranquero <lekktu@gmail.com>
8413
8414 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
8415
e08dcafd
EZ
84162011-09-07 Eli Zaretskii <eliz@gnu.org>
8417
8418 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
8419 only under bidi iteration.
8420
115b96bd
JD
84212011-09-07 Jan Djärv <jan.h.d@swipnet.se>
8422
8423 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
8424
c8199d0f
PE
84252011-09-06 Paul Eggert <eggert@cs.ucla.edu>
8426
8427 isnan: Fix porting problem to Solaris 10 with bundled gcc.
8428 Without this fix, the command to link temacs failed due to an
8429 undefined symbol __builtin_isnan. This is because
8430 /usr/include/iso/math_c99.h #defines isnan(x) to
8431 __builtin_isnan(x), but the bundled gcc, which identifies itself
8432 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
8433 a __builtin_isnan.
8434 * floatfns.c (isnan): #undef, and then #define to a clone of
8435 what's in data.c.
8436 (Fisnan): Always define, since it's always available now.
8437 (syms_of_floatfns): Always define isnan at the Lisp level.
8438
e39b275c 84392011-09-06 Paul Eggert <eggert@cs.ucla.edu>
1c262cae
PE
8440
8441 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
8442
b2db44d9 84432011-09-06 Paul Eggert <eggert@cs.ucla.edu>
728f8f0a 8444
f4af5137 8445 * fileio.c: Fix bugs with large file offsets (Bug#9428).
728f8f0a
PE
8446 The previous code assumed that file offsets (off_t values) fit in
8447 EMACS_INT variables, which is not true on typical 32-bit hosts.
8448 The code messed up by falsely reporting buffer overflow in cases
8449 such as (insert-file-contents "big" nil 1 2) into an empty buffer
8450 when "big" contains more than 2**29 bytes, even though this
8451 inserts just one byte and does not overflow the buffer.
8452 (Finsert_file_contents): Store file offsets as off_t
8453 values, not as EMACS_INT values. Check for overflow when
8454 converting between EMACS_INT and off_t. When checking for
8455 buffer overflow or for overlap, take the offsets into account.
8456 Don't use EMACS_INT for small values where int suffices.
8457 When checking for overlap, fix a typo: ZV was used where
8458 ZV_BYTE was intended.
8459 (Fwrite_region): Don't assume off_t fits into 'long'.
8460 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
8461
ecfc0a49
MA
84622011-09-05 Michael Albinus <michael.albinus@gmx.de>
8463
8464 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
8465
6511acf2 84662011-09-04 Paul Eggert <eggert@cs.ucla.edu>
61bfeeb7 8467
0999621a 8468 sprintf-related integer and memory overflow issues (Bug#9412).
62f19c19
PE
8469
8470 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
8666506e 8471 (esprintf, exprintf, evxprintf): New functions.
62f19c19 8472 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
6b02f655 8473 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
62f19c19
PE
8474 (modify_event_symbol): Do not assume that the length of
8475 name_alist_or_stem is safe to alloca and fits in int.
8476 (Fexecute_extended_command): Likewise for function name and binding.
8477 (Frecursion_depth): Wrap around reliably on integer overflow.
8478 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
8479 since some callers pass EMACS_INT values.
8480 (Fsingle_key_description): Don't crash if symbol name contains more
8481 than MAX_ALLOCA bytes.
8482 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
8483 (get_minibuffer): Arg is now EMACS_INT, not int.
8484 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
8666506e 8485 (esprintf, exprintf, evxprintf): New decls.
62f19c19
PE
8486 * window.h (command_loop_level, minibuf_level): Reflect API changes.
8487
2be7d702
PE
8488 * dbusbind.c (signature_cat): New function.
8489 (xd_signature, Fdbus_register_signal):
2ea16b89
PE
8490 Do not overrun buffer; instead, report string overflow.
8491
9d1df220
PE
8492 * dispnew.c (add_window_display_history): Don't overrun buffer.
8493 Truncate instead; this is OK since it's just a log.
8494
33ef5c64
PE
8495 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
8496 even if the time zone offset is outlandishly large.
8497 Don't mishandle offset == INT_MIN.
8498
66c6fdd5
PE
8499 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
8500 when creating daemon; the previous buffer-overflow check was incorrect.
8501
d749b01b
PE
8502 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
8503 which has the guts of the old verror function.
8504
b5cd1905
PE
8505 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
8506 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
8507
6e1a67fb
PE
8508 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
8509 (font_unparse_xlfd): Don't blindly alloca long strings.
c21721cc 8510 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
8666506e 8511 fits in int, when using sprintf. Use single snprintf to count
c21721cc
PE
8512 length of string rather than counting it via multiple sprintfs;
8513 that's simpler and more reliable.
c21721cc
PE
8514 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
8515 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
8516 sprintf, in case result does not fit in int.
8517
c57b67fc
PE
8518 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
8519 (fontset_from_font): Print it.
8520
8a401434
PE
8521 * frame.c (tty_frame_count): Now printmax_t, not int.
8522 (make_terminal_frame, set_term_frame_name): Print it.
8523 (x_report_frame_params): In X, window IDs are unsigned long,
8524 not signed long, so print them as unsigned.
8525 (validate_x_resource_name): Check for implausibly long names,
8526 and don't assume name length fits in 'int'.
8527 (x_get_resource_string): Don't blindly alloca invocation name;
8528 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
8529 not fit in int.
8530
6e1a67fb
PE
8531 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
8532 (xg_check_special_colors, xg_set_geometry):
84722b3d
PE
8533 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
8534
0df02bf3
PE
8535 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
8536 Use esprintf, not sprintf, in case result does not fit in int.
8537
48e30793
PE
8538 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
8539 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
8540 it as a large positive number.
8541 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
8542 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
8543
a66ff6d8
PE
8544 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
8545 in case result does not fit in int.
8546
aca216ff
PE
8547 * print.c (float_to_string): Detect width overflow more reliably.
8548 (print_object): Make sprintf buffer a bit bigger, to avoid potential
8549 buffer overrun. Don't assume list length fits in 'int'. Treat
8550 print length of 0 as 0, not as infinity; to be consistent with other
8551 uses of print length in this function. Don't overflow print length
8552 index. Don't assume hash table size fits in 'long', or that
8553 vectorlike size fits in 'unsigned long'.
8554
31c286f7
PE
8555 * process.c (make_process): Use printmax_t, not int, to format
8556 process-name gensyms.
8557
55e5faa1
PE
8558 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
8559
80f2e268
PE
8560 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
8561 to avoid potential buffer overrun.
8562
670741ab
PE
8563 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
8564 if X resource line is longer than 512 bytes.
8565
b7163a50
PE
8566 * xfns.c (x_window): Make sprintf buffer a bit bigger
8567 to avoid potential buffer overrun.
8568
ae58ff1f
PE
8569 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
8570
c43c8a6a
PE
8571 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
8572
3f8236f4
PE
85732011-09-04 Paul Eggert <eggert@cs.ucla.edu>
8574
53e9fe90 8575 Integer overflow fixes for scrolling, etc.
6511acf2
PE
8576 Without these, Emacs silently mishandles large integers sometimes.
8577 For example, "C-u 4294967297 M-x recenter" was treated as if
53e9fe90
PE
8578 it were "C-u 1 M-x recenter" on a typical 64-bit host.
8579
6511acf2
PE
8580 * xdisp.c (try_window_id): Check Emacs fixnum range before
8581 converting to 'int'.
806add1d 8582
6511acf2 8583 * window.c (window_scroll_line_based, Frecenter):
71f02bc5
PE
8584 Check that an Emacs fixnum is in range before assigning it to 'int'.
8585 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
8586 values converted from Emacs fixnums.
8587 (Frecenter): Don't wrap around a line count if it is out of 'int'
8588 range; instead, treat it as an extreme value.
8589 (Fset_window_configuration, compare_window_configurations):
8590 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
8591
6511acf2
PE
8592 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
8593 that can exceed INT_MAX. Check that EMACS_INT value is in range
8594 before assigning it to the (possibly-narrower) index.
a0efffc8
PE
8595 (match_limit): Don't assume that a fixnum can fit in 'int'.
8596
6511acf2 8597 * print.c (print_object): Use ptrdiff_t, not int, for index that can
29ebea3b
PE
8598 exceed INT_MAX.
8599
6511acf2 8600 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
3f8236f4
PE
8601 (Fvertical_motion): Don't wrap around LINES values that don't fit
8602 in 'int'. Instead, treat them as extreme values. This is good
8603 enough for windows, which can't have more than INT_MAX lines anyway.
8604
fcb901a7
LMI
86052011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
8606
0f2f6b6d
LMI
8607 * Require libxml/parser.h to avoid compilation warning.
8608
fcb901a7
LMI
8609 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
8610
8611 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
8612 since this reportedly can destroy thread storage.
8613
6e20a0d4
CY
86142011-08-30 Chong Yidong <cyd@stupidchicken.com>
8615
8616 * syntax.c (find_defun_start): Update all cache variables if
8617 exiting early (Bug#9401).
8618
148ae00e
EZ
86192011-08-30 Eli Zaretskii <eliz@gnu.org>
8620
f6cfbd8f
EZ
8621 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
8622
148ae00e
EZ
8623 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
8624 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
8625 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
8626
8627 * term.c (tty_append_glyph): New function.
8628 (produce_stretch_glyph): Static function and its prototype deleted.
8629
a66cfb1c
SM
8630 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
8631 Add prototypes.
148ae00e 8632
c4a07a4c
PE
86332011-08-29 Paul Eggert <eggert@cs.ucla.edu>
8634
8635 * image.c (parse_image_spec): Check for nonnegative, not for positive,
8636 when checking :margin (Bug#9390).
8637 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
a66cfb1c 8638 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
c4a07a4c
PE
8639 so that the name doesn't mislead. All uses changed.
8640
6bc8cd65
JB
86412011-08-28 Johan Bockgård <bojohan@gnu.org>
8642
8643 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
8644 set_tty_hooks.
8645
dca4927e
EZ
86462011-08-27 Eli Zaretskii <eliz@gnu.org>
8647
8648 * xdisp.c (move_it_to): Don't bail out early when reaching
8649 position beyond to_charpos, if we are scanning backwards.
8650 (move_it_vertically_backward): When DY == 0, make sure we get to
8651 the first character in the line after the newline.
8652
f2cad773
PE
86532011-08-27 Paul Eggert <eggert@cs.ucla.edu>
8654
8655 * ccl.c: Improve and simplify overflow checking (Bug#9196).
8656 (ccl_driver): Do not generate an out-of-range pointer.
8657 (Fccl_execute_on_string): Remove unnecessary check for
8658 integer overflow, noted by Stefan Monnier in
8659 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
8660 Remove a FIXME that didn't need fixing.
8661 Simplify the newly-introduced buffer reallocation code.
8662
0cae2cdb
JB
86632011-08-27 Juanma Barranquero <lekktu@gmail.com>
8664
8665 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
8666
5fc295a4 86672011-08-26 Paul Eggert <eggert@cs.ucla.edu>
ddff3151 8668
70c60eb2 8669 Integer and memory overflow issues (Bug#9196).
726e0ab1 8670
d31850da
PE
8671 * doc.c (get_doc_string): Rework so that
8672 get_doc_string_buffer_size is the actual buffer size, rather than
8673 being 1 less than the actual buffer size; this makes xpalloc more
8674 convenient.
8675
a69fbedb
PE
8676 * image.c (x_allocate_bitmap_record, cache_image):
8677 * xselect.c (Fx_register_dnd_atom):
8678 Simplify previous changes by using xpalloc.
8679
fe5c5d37
PE
8680 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
8681 since either will do and ptrdiff_t is convenient with xpalloc.
8682
0065d054
PE
8683 * charset.c (charset_table_size)
8684 (struct charset_sort_data.priority): Now ptrdiff_t.
8685 (charset_compare): Don't overflow if priorities differ greatly.
8686 (Fsort_charsets): Don't assume list length fits in int.
8687 Check for size-calculation overflow when allocating sort data.
8688 (syms_of_charset): Allocate an initial charset table that is
8689 just under 64 KiB, to avoid problems with glibc malloc and mmap.
8690
8691 * cmds.c (internal_self_insert): Check for size-calculation overflow.
8692
8693 * composite.h (struct composition.glyph_len): Now int, not unsigned.
8694 The actual value is always <= INT_MAX, and leaving it unsigned made
8695 overflow checking harder.
8696
8697 * dispextern.h (struct glyph_matrix.rows_allocated)
8698 (struct face_cache.size): Now ptrdiff_t, for convenience in use
8699 with xpalloc. The values are still always <= INT_MAX.
8700
8701 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
8702
8703 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
8704 (SAFE_NALLOCA): New macro.
8705
8706 * region-cache.c (struct boundary.pos, find_cache_boundary)
8707 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
8708 (set_cache_region, invalidate_region_cache)
8709 (revalidate_region_cache, know_region_cache, region_cache_forward)
8710 (region_cache_backward, pp_cache):
8711 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
8712 so that ptrdiff_t * can be passed to xpalloc.
8713 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
8714 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
8715 (pp_cache): Don't assume cache_len fits in int.
8716 * region-cache.h: Adjust extern decls to match.
8717
8718 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
8719 EMACS_INT, since either will do, for xpalloc.
8720
8721 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
8722 (xnmalloc, xnrealloc, xpalloc): New functions.
8723
726e0ab1
PE
8724 * bidi.c (bidi_shelve_header_size): New constant.
8725 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
8726 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
8727
51f30bc5 8728 * bidi.c (bidi_cache_shrink):
726e0ab1
PE
8729 * buffer.c (overlays_at, overlays_in, record_overlay_string)
8730 (overlay_strings):
8731 Don't update size of array until after memory allocation succeeds,
8732 because xmalloc/xrealloc may not return.
0065d054
PE
8733 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
8734 now that we have proper integer overflow checking.
8735 (record_overlay_string, overlay_strings): Catch overflows when
8736 calculating size of overlay_str_buf.
726e0ab1 8737
0065d054
PE
8738 * callproc.c (Fcall_process): Check for size overflow when
8739 calculating size of args2.
8740 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
8741 Normally we prefer signed values, but sticking with ptrdiff_t would
8742 require adding more-complicated checks.
726e0ab1
PE
8743
8744 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
8745 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
8746 Redo buffer-overflow calculations to avoid integer overflow.
0065d054 8747 Add a FIXME comment where memory seems to be over-allocated.
726e0ab1
PE
8748
8749 * character.c (Fstring): Check for size-calculation overflow.
8750
8751 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
8752 unnecessary integer overflow. Check for size overflow.
8753 (encode_coding_object): Don't update size until xmalloc succeeds.
8754
8755 * composite.c (get_composition_id): Check for overflow in glyph
8756 length calculations.
8757
8758 Integer and memory overflow fixes for display code.
8759 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
8760 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
8761 (scrolling_window): Check for overflow in size calculations.
8762 (line_draw_cost, realloc_glyph_pool, add_row_entry):
8763 Don't assume glyph table len fits in int.
8764 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
8765 (row_table_size): Now ptrdiff_t, not int.
8766 (scrolling_window): Avoid overflow in size calculations.
8767 Don't update size until allocation succeeds.
8768 * fns.c (concat): Check for overflow in size calculations.
8769 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
8770 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
8771 (NEXT_ALMOST_PRIME_LIMIT): New constant.
8772
8773 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
8774 (get_doc_string): Check for size calculation overflow.
8775 Don't update size until allocation succeeds.
8776 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
8777 EMACS_INT, where ptrdiff_t will do.
8778 (Fsubstitute_command_keys): Check for string overflow.
8779
8780 * editfns.c (set_time_zone_rule): Don't assume environment length
8781 fits in int.
8782 (message_length): Now ptrdiff_t, not int.
8783 (Fmessage_box): Don't update size until allocation succeeds.
8784 Don't assume message length fits in int.
8785 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
8786
0065d054
PE
8787 * emacs.c (main): Do not reallocate argv, since there is a null at
8788 the end that can be overwritten, and this way there's no need to
8789 worry about size-calculation overflow.
8790 (sort_args): Check for size-calculation overflow.
726e0ab1
PE
8791
8792 * eval.c (init_eval_once, grow_specpdl): Don't update size until
8793 alloc succeeds.
8794 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
8795
8796 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
8797 (x_set_scroll_bar_width, x_figure_window_size):
8798 Check for integer overflow.
8799 (x_set_alpha): Do not assume XINT fits in int.
8800
8801 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
8802 This is for the members text_lines, text_cols, total_lines, total_cols,
8803 where the system imposes an 'int' limit.
8804
8805 * fringe.c (Fdefine_fringe_bitmap):
8806 Don't update size until alloc works.
8807
8808 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
8809 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
8810
8811 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
8812 Check for size-calculation overflow.
8813 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
8814 do, as we prefer signed integers.
8815 (id_to_widget.max_size, id_to_widget.used)
8816 (xg_store_widget_in_map, xg_remove_widget_from_map)
8817 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
8818 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
8819 Use and return ptrdiff_t, not int.
8820 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
8821 * gtkutil.h: Change prototypes to match the above.
8822
8823 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
8824 are duplicate now that they've been promoted to lisp.h.
8825 (x_allocate_bitmap_record, x_alloc_image_color)
8826 (make_image_cache, cache_image, xpm_load):
8827 Don't update size until alloc is done.
8828 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
8829 (x_detect_edges):
3256efce 8830 Check for size calculation overflow.
726e0ab1
PE
8831 (ct_colors_allocated_max): New constant.
8832 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
8833 overflow.
3256efce 8834
726e0ab1
PE
8835 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
8836 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
8837 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
8838 Use ptrdiff_t, not int, to count maps.
8839 (read_char_minibuf_menu_prompt): Check for overflow in size
a66cfb1c
SM
8840 calculations. Don't update size until allocation succeeds.
8841 Redo calculations to avoid overflow.
726e0ab1
PE
8842 * keyboard.h: Change prototypes to match the above.
8843
8844 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
8845 to count maps.
8846 (current_minor_maps): Check for size calculation overflow.
8847 * keymap.h: Change prototypes to match the above.
8848
8849 * lread.c (read1, init_obarray): Don't update size until alloc done.
8850
8851 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
8852 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
8853
726e0ab1
PE
8854 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
8855 Now ptrdiff_t, not int.
8856 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
8857 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
8858
8859 * process.c (Fnetwork_interface_list): Check for overflow
8860 in size calculation.
8861
8862 * region-cache.c (move_cache_gap): Check for size calculation overflow.
8863
8864 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
8865 overflow. Don't bother calling xmalloc when xrealloc will do.
8866
8867 * search.c (Freplace_match): Check for size calculation overflow.
8868 (Fset_match_data): Don't assume list lengths fit in 'int'.
8869
8870 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
8871 for command line length. Do not attempt to address one before the
8872 beginning of an array, as that's not portable.
8873
8874 * term.c (max_frame_lines): Remove; unused.
8875 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
8876 not int.
8877 (encode_terminal_code, calculate_costs): Check for size
8878 calculation overflow.
8879 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
8880 table lengths and related sizes. Don't update size until alloc
8881 done. Redo calculations to avoid overflow.
8882 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
8883
8884 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
8885 subtracting pointers.
8886 (gobble_line): Check for overflow more carefully. Don't update size
8887 until alloc done.
8888
8889 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
8890 Don't update size until alloc done.
8891 Redo size calculations to avoid overflow.
8892 Check for size calculation overflow.
0065d054 8893 (main) [DEBUG]: Fix typo in invoking tparam1.
726e0ab1
PE
8894
8895 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
8896 Use ptrdiff_t, not int, for sizes.
8897 (store_mode_line_noprop_char): Don't update size until alloc done.
8898
0065d054
PE
8899 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
8900 Use ptrdiff_t, not int, for sizes.
8901 (Finternal_make_lisp_face, cache_face):
8902 Check for size calculation overflow.
8903 (cache_face): Treat size calculation overflows as if they were
8904 memory exhaustion (the usual treatment), rather than aborting.
726e0ab1
PE
8905
8906 * xfns.c (x_encode_text, x_set_name_internal)
8907 (Fx_change_window_property): Use ptrdiff_t, not int, to count
8908 sizes, since they can exceed INT_MAX in size. Check for size
8909 calculation overflow.
8910
0065d054
PE
8911 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
8912 (xg_select): Check for size calculation overflow.
726e0ab1
PE
8913 Don't update size until alloc done.
8914
0065d054 8915 * xrdb.c (get_environ_db): Don't assume path length fits in int,
726e0ab1 8916 as sprintf is limited to int lengths.
1d526e2f 8917
252c5ee1
PE
8918 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
8919 (X_LONG_MIN): New macros.
864d7ce7
PE
8920 Use them to make the following changes clearer.
8921 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
8922 This change doesn't affect the value now, but it may help remind
8923 future maintainers not to raise the value too much later.
8924 (SELECTION_QUANTUM): Remove, replacing with ...
8925 (selection_quantum): ... new function, which avoids overflow.
8926 All uses changed.
8927 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
8928 assumption that selection length fits in 'int'.
8929 (x_reply_selection_request, x_handle_selection_request)
8930 (x_get_window_property, receive_incremental_selection)
8931 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
8932 (lisp_data_to_selection_data, clean_local_selection_data):
8933 Use ptrdiff_t, not int, to record length of selection.
8934 (x_reply_selection_request, x_get_window_property)
8935 (receive_incremental_selection, x_property_data_to_lisp):
8936 Redo calculations to avoid overflow.
8937 (x_reply_selection_request): When sending hint, ceiling it at
252c5ee1 8938 X_LONG_MAX rather than relying on wraparound overflow to send
864d7ce7
PE
8939 something.
8940 (x_get_window_property, receive_incremental_selection)
8941 (lisp_data_to_selection_data, x_property_data_to_lisp):
8942 Check for size-calculation overflow.
8943 (x_get_window_property, receive_incremental_selection)
8944 (lisp_data_to_selection_data, Fx_register_dnd_atom):
8945 Don't store size until memory allocation succeeds.
8946 (x_get_window_property): Plug memory leak on memory exhaustion.
8947 Don't double-block input; malloc is safe here. Don't assume 2**34
8948 - 4 fits in unsigned long. Add an xassert to check
8949 XGetWindowProperty overflow. Be more careful about overflow
8950 calculations, and distinguish size from memory overflow better.
8951 (receive_incremental_selection): When tracing, don't assume
8952 unsigned int is less than INT_MAX.
8953 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
8954 harmful) conversions of unsigned short to int.
8955 (lisp_data_to_selection_data): Don't assume that integers
8956 in the range -65535 through -1 fit in an X unsigned short.
8957 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
8958 result parameters unless successful. Rely on cons_to_unsigned
8959 to report problems with elements; the old code wasn't right anyway.
8960 (x_check_property_data): Check for int overflow; we cannot use
8961 a wider type due to X limits.
8962 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
8963
726e0ab1 8964 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
34db673b 8965
0065d054
PE
8966 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
8967 (x_term_init): Check for size calculation overflow.
726e0ab1
PE
8968 (x_color_cells): Don't store size until memory allocation succeeds.
8969 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
0065d054 8970 Don't assume alloca size is less than MAX_ALLOCA.
726e0ab1
PE
8971 (x_term_init): Don't assume length fits in int (sprintf is limited
8972 to int size).
bc18e09d 8973
ebfa62c0
PE
8974 Use ptrdiff_t for composition IDs.
8975 * character.c (lisp_string_width):
8976 * composite.c (composition_table_size, n_compositions)
8977 (get_composition_id, composition_gstring_from_id):
8978 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
8979 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
8980 * window.c (Frecenter):
8981 Use ptrdiff_t, not int, for composition IDs.
8982 * composite.c (get_composition_id): Check for integer overflow.
8983 * composite.h: Adjust prototypes to match the above changes.
8984
d3411f89
PE
8985 Use ptrdiff_t for hash table indexes.
8986 * category.c (hash_get_category_set):
8987 * ccl.c (ccl_driver):
8988 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
8989 * coding.c (coding_system_charset_list, detect_coding_system):
8990 * coding.h (struct coding_system.id):
8991 * composite.c (get_composition_id, gstring_lookup_cache):
8992 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
8993 * image.c (xpm_get_color_table_h):
8994 * lisp.h (hash_lookup, hash_put):
8995 * minibuf.c (Ftest_completion):
8996 Use ptrdiff_t for hash table indexes, not int (which is too
8997 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
8998 32-bit --with-wide-int hosts).
8999
e097a6fa
PE
9000 * charset.c (Fdefine_charset_internal): Check for integer overflow.
9001 Add a FIXME comment about memory leaks.
9002 (syms_of_charset): Don't assume xmalloc returns.
9003
5637687f
PE
9004 Don't assume that stated character widths fit in int.
9005 * character.c (Fchar_width, c_string_width, lisp_string_width):
9006 * character.h (CHAR_WIDTH):
9007 * indent.c (MULTIBYTE_BYTES_WIDTH):
9008 Use sanitize_char_width to avoid undefined and/or bad behavior
9009 with outlandish widths.
a66cfb1c 9010 * character.h (sanitize_tab_width): Rename from sanitize_width,
5637687f
PE
9011 now that we have two such functions. All uses changed.
9012 (sanitize_char_width): New inline function.
9013
a2271ba2
PE
9014 Don't assume that tab-width fits in int.
9015 * character.h (sanitize_width): New inline function.
9016 (SANE_TAB_WIDTH): New macro.
9017 (ASCII_CHAR_WIDTH): Use it.
9018 * indent.c (sane_tab_width): Remove. All uses replaced by
9019 SANE_TAB_WIDTH (current_buffer).
9020 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
9021
18c52557
PE
9022 * fileio.c: Integer overflow issues with file modes.
9023 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
9024
caeeedc1
PE
9025 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
9026 Remove unreachable code.
9027 (read_hex, load_charset_map_from_file): Check for integer overflow.
9028
6df6ae42 9029 * xterm.c: Don't go over XClientMessageEvent limit.
50849c52
PE
9030 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
9031 (x_send_scroll_bar_event): Likewise. Check that the size does not
9032 exceed limits imposed by XClientMessageEvent, as well as the usual
9033 ptrdiff_t and size_t limits.
9034
b13995db
PE
9035 * keyboard.c: Overflow, signedness and related fixes.
9036 (make_lispy_movement): Use same integer type in forward decl
9037 that is used in the definition.
9038 (read_key_sequence, keyremap_step):
9039 Change bufsize argument back to int, undoing my 2011-03-30 change.
9040 We prefer signed types, and int is wide enough here.
9041 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
9042 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
9043 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
9044 length, not size_t. Use ptrdiff_t for index, not int.
9045 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
9046 possibility of integer overflow.
9047
13464394
PE
9048 Overflow, signedness and related fixes for images.
9049
9050 * dispextern.h (struct it.stack[0].u.image.image_id)
9051 (struct_it.image_id, struct image.id, struct image_cache.size)
9052 (struct image_cache.used, struct image_cache.ref_count):
9053 * gtkutil.c (update_frame_tool_bar):
9054 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
9055 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
9056 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
9057 * nsmenu.m (update_frame_tool_bar):
9058 * xdisp.c (calc_pixel_width_or_height):
9059 * xfns.c (image_cache_refcount):
9060 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
9061 on typical 64-bit hosts.
9062
9063 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
9064 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
9065 Omit unnecessary casts to int.
9066 (parse_image_spec): Check that integers fall into 'int' range
9067 when the callers expect that.
9068 (image_ascent): Redo ascent calculation to avoid int overflow.
9069 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
9070 (lookup_image): Remove unnecessary tests.
9071 (xbm_image_p): Locals are now of int, not EMACS_INT,
9072 since parse_image_check makes sure they fit into int.
9073 (png_load, gif_load, svg_load_image):
9074 Prefer int to unsigned where either will do.
9075 (tiff_handler): New function, combining the cores of the
a66cfb1c
SM
9076 old tiff_error_handler and tiff_warning_handler.
9077 This function is rewritten to use vsnprintf and thereby avoid
13464394
PE
9078 stack buffer overflows. It uses only the features of vsnprintf
9079 that are common to both POSIX and native Microsoft.
9080 (tiff_error_handler, tiff_warning_handler): Use it.
9081 (tiff_load, gif_load, imagemagick_load_image):
9082 Don't assume :index value fits in 'int'.
9083 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
9084 (imagemagick_load_image): Check that crop parameters fit into
9085 the integer types that MagickCropImage accepts. Don't assume
9086 Vimagemagick_render_type has a nonnegative value. Don't assume
9087 size_t fits in 'long'.
9088 (gs_load): Use printmax_t to print the widest integers possible.
9089 Check for integer overflow when computing image height and width.
9090
c11821d4
EZ
90912011-08-26 Eli Zaretskii <eliz@gnu.org>
9092
9093 * xdisp.c (redisplay_window): Don't force window start if point
9094 will be invisible in the resulting window. (Bug#9324)
9095
0c95fcf7
EZ
90962011-08-25 Eli Zaretskii <eliz@gnu.org>
9097
9098 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
9099 the display spec is of the form `(space ...)'.
9100 (handle_display_spec): Return the value returned by
9101 handle_single_display_spec, not just 1 or zero.
9102 (handle_single_display_spec): If the display spec is of the form
9103 `(space ...)', and specifies display in the text area, return 2
9104 rather than 1.
fee65a97 9105 (try_cursor_movement): Check for the need to scroll more
a66cfb1c
SM
9106 accurately, and prefer exact match for point under bidi.
9107 Don't advance `row' beyond the last row of the window.
0c95fcf7
EZ
9108
9109 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
9110 into disp_prop; all users changed.
9111
9112 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
9113 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
9114 for the text covered by the display property.
9115
e4ed06f1
CY
91162011-08-25 Chong Yidong <cyd@stupidchicken.com>
9117
9118 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
9119 Change return value to nil.
9120 (Frecord_buffer): Delete unused function.
9121
f67cdd7f
EZ
91222011-08-24 Eli Zaretskii <eliz@gnu.org>
9123
5980d4c6
EZ
9124 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
9125 buffers, return left-to-right.
8610fe8b
EZ
9126 (set_cursor_from_row): Consider candidate row a win if its glyph
9127 represents a newline and point is on that newline. Fixes cursor
9128 positioning on the newline at EOL of R2L text within L2R
9129 paragraph, and vice versa.
9130 (try_cursor_movement): Check continued rows, in addition to
9131 continuation rows. Fixes unwarranted scroll when point enters a
9132 continued line of R2L text within an L2R paragraph, or vice versa.
9133 (cursor_row_p): Consider the case of point being equal to
9134 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
9135 from the end of a short line to the beginning of a continued line
9136 of R2L text within L2R paragraph.
9137 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
9138 composed characters.
5980d4c6 9139
f67cdd7f
EZ
9140 * bidi.c (bidi_check_type): Use xassert.
9141 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
9142 members.
9143
bca633fb
EZ
91442011-08-23 Eli Zaretskii <eliz@gnu.org>
9145
9146 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
9147 a character.
9148
4a5885a7
CY
91492011-08-23 Chong Yidong <cyd@stupidchicken.com>
9150
9151 * nsfont.m (ns_otf_to_script): Fix typo.
9152
0902a04e
KH
91532011-08-22 Kenichi Handa <handa@m17n.org>
9154
9155 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
9156 extra slot even if the purpose is char-code-property-table.
9157
1a2e6670
EZ
91582011-08-23 Eli Zaretskii <eliz@gnu.org>
9159
8ddde651
EZ
9160 * xdisp.c (redisplay_window): When computing centering_position,
9161 account for the height of the header line. (Bug#8874)
9162
425cc014
EZ
9163 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
9164 instead of CHAR_TO_BYTE. Fixes a crash when a completion
9165 candidate is selected by the mouse, and that candidate has a
9166 composed character under the mouse.
9167
1a2e6670
EZ
9168 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
9169 coordinates reported by pos-visible-in-window-p for a composed
9170 character in column zero.
9171
8b76d6f8
SM
91722011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
9173
9174 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
9175
dac347dd
EZ
91762011-08-22 Eli Zaretskii <eliz@gnu.org>
9177
9178 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
9179 consider it a hit if to_charpos is anywhere in the range of the
9180 composed buffer positions.
9181
e013fb34
CY
91822011-08-22 Chong Yidong <cyd@stupidchicken.com>
9183
9184 * image.c (gif_load): Don't assume that each subimage has the same
9185 dimensions as the base image. Handle disposal method that is
9186 "undefined" by the gif spec (Bug#9335).
9187
bd1ba3e8
CY
91882011-08-20 Chong Yidong <cyd@stupidchicken.com>
9189
9190 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
024a2d76 9191 (Fcondition_case): Document `debug' symbol in error handler.
bd1ba3e8 9192
54a1215b
EZ
91932011-08-19 Eli Zaretskii <eliz@gnu.org>
9194
823564e5
EZ
9195 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
9196 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
9197 from an Org mode buffer to a Speedbar frame.
9198
54a1215b
EZ
9199 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
9200 a composition, take its buffer position from IT->cmp_it.charpos.
9201 Fixes cursor positioning at the beginning of a line that begins
9202 with a composed character.
9203
9778ebcc
EZ
92042011-08-18 Eli Zaretskii <eliz@gnu.org>
9205
0be6ee06
EZ
9206 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
9207 character bidirectional type, use STRONG_L instead. Fixes crashes
9208 in a buffer produced by `describe-categories'.
9209
9778ebcc
EZ
9210 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
9211 members before the level stack, so they would be saved and
9212 restored when copying iterator state. Fixes incorrect reordering
9213 around TABs covered by display properties.
9214
156bffbe
AS
92152011-08-18 Andreas Schwab <schwab@linux-m68k.org>
9216
6b02f655 9217 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
156bffbe 9218
72ad093b
CY
92192011-08-17 Chong Yidong <cyd@stupidchicken.com>
9220
9221 * eval.c (internal_condition_case, internal_condition_case_1)
8b76d6f8
SM
9222 (internal_condition_case_2, internal_condition_case_n):
9223 Remove unnecessary aborts (Bug#9081).
72ad093b 9224
35774242
EZ
92252011-08-17 Eli Zaretskii <eliz@gnu.org>
9226
9227 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
9228 has no `load' handler, try opening the file locally. (Bug#9311)
9229
db76dd85
KB
92302011-08-16 Ken Brown <kbrown@cornell.edu>
9231
9232 * gmalloc.c: Expand comment.
9233
b215eee5
EZ
92342011-08-16 Eli Zaretskii <eliz@gnu.org>
9235
9236 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
9237 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
9238
a4579d33
KB
92392011-08-16 Ken Brown <kbrown@cornell.edu>
9240
9241 Fix memory allocation problems in Cygwin build (Bug#9273).
9242
9243 * unexcw.c ( __malloc_initialized): Declare external variable.
9244 (fixup_executable): Force the dumped emacs to reinitialize malloc.
9245
8b76d6f8
SM
9246 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
9247 New variables.
a4579d33
KB
9248 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
9249 dumped emacs.
9250 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
9251 in the static heap.
9252 [CYGWIN] (special_realloc): New function.
9253 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
9254 requests to realloc storage in the static heap.
9255
3ebec551
PE
92562011-08-15 Paul Eggert <eggert@cs.ucla.edu>
9257
9258 * bidi.c (bidi_initialize): Remove unused local.
9259
9fd8be00
EZ
92602011-08-15 Eli Zaretskii <eliz@gnu.org>
9261
6b02f655
SM
9262 * bidimirror.h:
9263 * biditype.h: Remove file.
9264 * makefile.w32-in ($(BLD)/bidi.$(O)):
9265 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
474a8465
EZ
9266
9267 * dispextern.h: Fix a typo in the comment to bidi_type_t.
9268
9269 * chartab.c: Improve commentary for the uniprop_table API.
9270
32413314
EZ
9271 * bidi.c (bidi_paragraph_init): Support zero value of
9272 bidi_ignore_explicit_marks_for_paragraph_level.
474a8465
EZ
9273 (bidi_initialize): Use uniprop_table instead of including
9274 biditype.h and bidimirror.h.
32413314 9275
9fd8be00
EZ
9276 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
9277 coordinates of the iterator when restoring from ppos_it.
9278 (Bug#9296)
9279
5cf2b69b
KH
92802011-08-14 Kenichi Handa <handa@m17n.org>
9281
9282 * process.c (create_process): Call setup_process_coding_systems
72ad093b 9283 after the pid of the process is set to -1 (Bug#8162).
5cf2b69b 9284
daf17d00
EZ
92852011-08-14 Eli Zaretskii <eliz@gnu.org>
9286
9287 * xdisp.c (move_it_in_display_line_to): Don't invoke
9288 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
9289 ppos_it. Fixes vertical cursor motion when line beginning is
9290 covered by an image. (Bug#9296)
9291
08e3161a
JD
92922011-08-14 Jan Djärv <jan.h.d@swipnet.se>
9293
9294 * nsterm.h (ns_run_ascript): Declare.
9295 (NSAPP_DATA2_RUNASSCRIPT): Define.
9296
9297 * nsfns.m (as_script, as_result, as_status): New static variables.
9298 (ns_run_ascript): New function.
5e617bc2 9299 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
08e3161a
JD
9300 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
9301 the event loop. Get status from as_status (Bug#7276).
9302
9303 * nsterm.m (sendEvent): If event is NSApplicationDefined and
9304 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
9305 the event loop (Bug#7276).
9306
a3720aa2
AS
93072011-08-14 Andreas Schwab <schwab@linux-m68k.org>
9308
9309 * gnutls.c (QCgnutls_bootprop_priority)
9310 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
9311 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
9312 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
9313 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
9314 (QCgnutls_bootprop_verify_hostname_error)
9315 (QCgnutls_bootprop_callbacks_verify): Rename from
9316 Qgnutls_bootprop_..., all uses changed.
9317
9318 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
9319 uses changed.
9320
0a0d27fb
PE
93212011-08-14 Paul Eggert <eggert@cs.ucla.edu>
9322
19d5c50c
PE
9323 * xfaces.c (Qframe_set_background_mode): Now static.
9324 * dispextern.h (Qframe_set_background_mode): Remove decl.
9325
0a0d27fb
PE
9326 * process.c (Fnetwork_interface_info): Declare local only if needed.
9327
377538cb
JD
93282011-08-13 Jan Djärv <jan.h.d@swipnet.se>
9329
9330 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
9331 (Fnetwork_interface_list): Allocate in increments of bytes instead
9332 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
9333 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
9334 sockaddr.
9335 (struct ifflag_def): notrailers is smart on OSX.
9336 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
9337 Get hardware address with getifaddrs if available.
9338
08fff70c
EZ
93392011-08-12 Eli Zaretskii <eliz@gnu.org>
9340
9341 * xdisp.c (iterate_out_of_display_property): xassert that
9342 IT->position is set to within IT->object's boundaries. Break from
9343 the loop as soon as EOB is reached; avoids infloops in redisplay
8b76d6f8
SM
9344 when IT->position is set up wrongly due to some bug.
9345 Set IT->current to match the bidi iterator unconditionally.
08fff70c
EZ
9346 (push_display_prop): Allow GET_FROM_STRING as IT->method on
9347 entry. Force push_it to save on the stack the current
9348 buffer/string position, to be restored by pop_it. Fix flags in
9349 the iterator structure wrt the object coming from a display
9350 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
9351 properties. (Bug#9284)
9352
7be1c708 93532011-08-09 Andreas Schwab <schwab@linux-m68k.org>
aac0c6e3 9354
7be1c708
CY
9355 * fontset.c (fontset_get_font_group): Add proper type checks.
9356 (Bug#9172)
aac0c6e3 9357
7be1c708 93582011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
aac0c6e3 9359
7be1c708
CY
9360 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
9361 and LC_VERSION_MIN_MACOSX.
9362 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
9363 (dump_it) [LC_FUNCTION_STARTS]: Use it.
aac0c6e3 9364
97bb72a6
EZ
93652011-08-08 Eli Zaretskii <eliz@gnu.org>
9366
9367 * xdisp.c (forward_to_next_line_start): Allow to use the
8b76d6f8
SM
9368 no-display-properties-and-no-overlays under bidi display.
9369 Set disp_pos in the bidi iterator to avoid searches for display
757664a4 9370 properties and overlays.
97bb72a6 9371
d5617611
CY
93722011-08-08 Chong Yidong <cyd@stupidchicken.com>
9373
37e11a63
CY
9374 * editfns.c (Fset_time_zone_rule): Document relationship with the
9375 setenv function.
9376
d5617611
CY
9377 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
9378 the font entity extracted from the cache (Bug#8109).
9379
58872834
CY
93802011-08-07 Chong Yidong <cyd@stupidchicken.com>
9381
9382 * composite.c (autocmp_chars): Don't reset point. That is done by
9383 restore_point_unwind (Bug#5984).
9384
75bfc667
JL
93852011-08-07 Juri Linkov <juri@jurta.org>
9386
9387 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
9388 to show the arg `TIME' instead of `TIMEVAL'.
9389
d1410150
EZ
93902011-08-06 Eli Zaretskii <eliz@gnu.org>
9391
9392 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
9393 display property strides EOL and includes a newline, as in
9394 longlines-mode. (Bug#9254)
75b771e4
EZ
9395 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
9396 word-wrap under bidirectional display. (Bug#9224)
d1410150
EZ
9397
9398 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
9399 is non-zero, even if the data buffer is NULL. Fixes a crash in
9400 vertical-motion with longlines-mode. (Bug#9254)
9401
35928349
EZ
94022011-08-05 Eli Zaretskii <eliz@gnu.org>
9403
ec7cc85b
EZ
9404 * bidi.c <bidi_cache_total_alloc>: Now static.
9405 (bidi_initialize): Initialize bidi_cache_total_alloc.
9406
8b76d6f8 9407 * xdisp.c (display_line): Release buffer allocated for shelved bidi
35928349
EZ
9408 cache. (Bug#9221)
9409
9410 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
9411 amount allocated this far in `bidi_cache_total_alloc'.
9412 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
9413 non-zero, only free the data buffer without restoring the cache
9414 contents. All callers changed.
9415
9416 * dispextern.h (bidi_unshelve_cache): Update prototype.
9417
9418 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
9419 (move_it_in_display_line, move_it_to)
9420 (move_it_vertically_backward, move_it_by_lines): Replace the call
9421 to xfree to an equivalent call to bidi_unshelve_cache.
9422 (move_it_in_display_line_to): Fix logic of returning
412b6358 9423 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
35928349 9424
e2e2423b
EZ
94252011-08-05 Eli Zaretskii <eliz@gnu.org>
9426
9427 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
9428 came from a string character with a `cursor' property. (Bug#9229)
9429
ae9e757a
JD
94302011-08-04 Jan Djärv <jan.h.d@swipnet.se>
9431
9432 * Makefile.in (LIB_PTHREAD): New variable.
9433 (LIBES): Add LIB_PTHREAD (Bug#9216).
9434
9435 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
9436 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
9437
213bd7f2
AS
94382011-08-04 Andreas Schwab <schwab@linux-m68k.org>
9439
6b02f655 9440 * regex.c (re_iswctype): Remove some redundant boolean conversions.
213bd7f2 9441
99aaf75f
JD
94422011-08-04 Jan Djärv <jan.h.d@swipnet.se>
9443
9444 * xterm.c (x_find_topmost_parent): New function.
9445 (x_set_frame_alpha): Find topmost parent window with
9446 x_find_topmost_parent and set the property there also (bug#9181).
9447 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
9448
c74e9d86
PE
94492011-08-04 Paul Eggert <eggert@cs.ucla.edu>
9450
9451 * callproc.c (Fcall_process): Avoid vfork clobbering
9452 the local vars buffer, coding_systems, current_dir.
9453
640c8776
SM
94542011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
9455
9456 * keymap.c (Fmake_composed_keymap): Move to subr.el.
9457
f26d0e4c
PE
94582011-08-03 Paul Eggert <eggert@cs.ucla.edu>
9459
8a10d76c
PE
9460 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
9461 so that it is not optimized away.
9462
f26d0e4c
PE
9463 * xdisp.c (compute_display_string_pos): Remove unused local.
9464
55439c61
EZ
94652011-08-02 Eli Zaretskii <eliz@gnu.org>
9466
9467 Fix slow cursor motion and scrolling in large buffers with
9468 selective display, like Org Mode buffers. (Bug#9218)
9469
9470 * dispextern.h (struct bidi_it): New member disp_prop_p.
9471
9472 * xdisp.c: Remove one-slot cache of display string positions.
9473 (compute_display_string_pos): Accept an additional argument
5e617bc2 9474 DISP_PROP_P; callers changed. Scan at most 5K characters forward
55439c61
EZ
9475 for a display string or property. If found, set DISP_PROP_P
9476 non-zero.
9477
9478 * bidi.c (bidi_fetch_char): Accept an additional argument
640c8776
SM
9479 DISP_PROP_P, and pass it to compute_display_string_pos.
9480 Only handle text covered by a display string if DISP_PROP_P is returned
55439c61
EZ
9481 non-zero. All callers of bidi_fetch_char changed.
9482
fb33fa43
SM
94832011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
9484
9485 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
9486
b099e063
DM
94872010-12-03 Don March <don@ohspite.net>
9488
9489 * keymap.c (Fdefine_key): Fix non-prefix key error message when
9490 last character M-[char] is translated to ESC [char] (bug#7541).
9491
5cc7f7af
KH
94922011-08-02 Kenichi Handa <handa@m17n.org>
9493
d0fffa3f 9494 * lisp.h (uniprop_table): Extern it.
5cc7f7af
KH
9495
9496 * chartab.c (uniprop_table): Make it non-static.
9497
525d5e6e
EZ
94982011-08-01 Eli Zaretskii <eliz@gnu.org>
9499
9500 * xdisp.c (forward_to_next_line_start): Accept additional argument
9501 BIDI_IT_PREV, and store into it the state of the bidi iterator had
9502 on the newline.
9503 (reseat_at_next_visible_line_start): Use the bidi iterator state
9504 returned by forward_to_next_line_start to restore the state of
9505 it->bidi_it after backing up to previous newline. (Bug#9212)
9506
31011111
AS
95072011-07-30 Andreas Schwab <schwab@linux-m68k.org>
9508
9509 * regex.c (re_comp): Protoize.
9510 (re_exec): Fix return type.
9511 (regexec): Fix type of `ret'. (Bug#9203)
9512
476371c4
PE
95132011-07-28 Paul Eggert <eggert@cs.ucla.edu>
9514
e5d76069
PE
9515 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
9516 This is needed if max-image-size is a floating-point number.
9517
9a79b20c
AS
95182011-07-28 Andreas Schwab <schwab@linux-m68k.org>
9519
9520 * print.c (print_object): Print empty symbol as ##.
9521
9522 * lread.c (read1): Read ## as empty symbol.
9523
d8c2fa78
AA
95242011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
9525
9526 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
9527 setting frame foreground color (Bug#9175).
9528 (x_set_background_color): Likewise.
9529
ffe57a7a
AA
9530 * nsmenu.m (-setText): Size tooltip dimensions precisely to
9531 contents (Bug#9176).
9532 (EmacsTooltip -init): Remove bezels and add shadows to
9533 tooltip windows.
9534
bf3492a5
AA
9535 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
9536 or scroll bar (Bug#8470).
9537
d55e9c53
AA
9538 * nsfont.m (nsfont_open): Remove assignment to voffset and
9539 unnecessary vars hshink, expand, hd, full_height, min_height.
9540 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
9541
9542 * nsterm.h (nsfont_info): Remove voffset field.
9543
d8c2fa78 95442011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
4843aac3
AA
9545
9546 Implement strike-through and overline on NextStep (Bug#8863).
9547
9548 * nsfont.m (nsfont_open): Use underline position provided by font,
9549 instead of hard-coded value of 2.
9550 (nsfont_draw): Call ns_draw_text_decoration instead.
9551
9552 * nsterm.h: Add declaration for ns_draw_text_decoration.
9553
9554 * nsterm.m (ns_draw_text_decoration): New function for drawing
9555 underline, overline, and strike-through.
9556 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
9557 ns_draw_text_decoration. Change treatment of cursor drawing to
8d5ed899 9558 accommodate underlining, etc.
4843aac3 9559
4cc60b9b
EZ
95602011-07-28 Eli Zaretskii <eliz@gnu.org>
9561
bc7ece87
EZ
9562 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
9563 default.
4cc60b9b 9564
476371c4
PE
95652011-07-28 Paul Eggert <eggert@cs.ucla.edu>
9566
66606eea
PE
9567 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
9568 Without this fix, if a signal arrives just after memory fills up,
9569 'malloc' might be invoked reentrantly.
9570
476371c4
PE
9571 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
9572 In other words, assume that every image size is allowed, on non-X
9573 hosts. This assumption is probably wrong, but it lets Emacs compile.
9574
f3fcc40d
AS
95752011-07-28 Andreas Schwab <schwab@linux-m68k.org>
9576
9577 * regex.c (re_iswctype): Convert return values to boolean.
9578
350c992f
EZ
95792011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
9580
9581 * xdisp.c (compute_display_string_pos): Don't use cached display
9582 string position if the buffer had its restriction changed.
9583 (Bug#9184)
9584
5266b4bb
PE
95852011-07-28 Paul Eggert <eggert@cs.ucla.edu>
9586
9587 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
9588
2573a837 95892011-07-28 Paul Eggert <eggert@cs.ucla.edu>
ca4aa935 9590
41f55ccd 9591 Integer signedness and overflow and related fixes. (Bug#9079)
cf950e6b 9592
39e378da
PE
9593 * bidi.c: Integer size and overflow fixes.
9594 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
9595 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
9596 (bidi_cache_find_level_change, bidi_cache_ensure_space)
9597 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
9598 (bidi_find_other_level_edge):
9599 Use ptrdiff_t instead of EMACS_INT where either will do.
9600 This works better on 32-bit hosts configured --with-wide-int.
9601 (bidi_cache_ensure_space): Check for size-calculation overflow.
9602 Use % rather than repeated addition, for better worst-case speed.
9603 Don't set bidi_cache_size until after xrealloc returns, because it
9604 might not return.
9605 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
f0eb61e9
PE
9606 (bidi_cache_ensure_space): Also check that the bidi cache size
9607 does not exceed that of the largest Lisp string or buffer. See Eli
9608 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
39e378da 9609
5e927815
PE
9610 * alloc.c (__malloc_size_t): Remove.
9611 All uses replaced by size_t. See Andreas Schwab's note
9612 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
9613
ca4aa935
PE
9614 * image.c: Improve checking for integer overflow.
9615 (check_image_size): Assume that f is nonnull, since
9616 it is always nonnull in practice. This is one less thing to
9617 worry about when checking for integer overflow later.
9618 (x_check_image_size): New function, which checks for integer
9619 overflow issues inside X.
9620 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
9621 This removes the need for a memory_full check.
9622 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
9623 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
9624 (xbm_read_bitmap_data): Change locals back to 'int', since
9625 their values must fit in 'int'.
9626 (xpm_load_image, png_load, tiff_load):
9627 Invoke x_create_x_image_and_pixmap earlier,
9628 to avoid much needless work if the image is too large.
9629 (tiff_load): Treat overly large images as if
9630 x_create_x_image_and_pixmap failed, not as malloc failures.
9631 (gs_load): Use x_check_image_size.
9632
5f8f9cc2
PE
9633 * gtkutil.c: Omit integer casts.
9634 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
9635 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
9636
5adf60bc
PE
9637 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
9638
c8907a93
PE
9639 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
9640 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
9641 would wrongly return t on a 64-bit host.
9642
e3c25c68
PE
9643 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
9644 The plain *_OVERFLOW macros run afoul of GCC bug 49705
9645 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
9646 and therefore cause GCC to emit a bogus diagnostic in some cases.
9647
3f791afe
PE
9648 * image.c: Integer signedness and overflow and related fixes.
9649 This is not an exhaustive set of fixes, but it's time to
9650 record what I've got.
9651 (lookup_pixel_color, check_image_size): Remove redundant decls.
9652 (check_image_size): Don't assume that arbitrary EMACS_INT values
9653 fit in 'int', or that arbitrary 'double' values fit in 'int'.
9654 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
9655 (tiff_load, imagemagick_load_image):
9656 Check for overflow in size calculations.
9657 (x_create_x_image_and_pixmap): Remove unnecessary test for
9658 xmalloc returning NULL; that can't happen.
9659 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
9660 (xpm_color_bucket): Use better integer hashing function.
9661 (xpm_cache_color): Don't possibly over-allocate memory.
9662 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
9663 (gif_memory_source):
9664 Use ptrdiff_t, not int or size_t, to record sizes.
9665 (png_load): Don't assume values greater than 2**31 fit in 'int'.
9666 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
9667 either works, as we prefer signed integers.
9668 (tiff_read_from_memory, tiff_write_from_memory):
9669 Return tsize_t, not size_t, since that's what the TIFF API wants.
9670 (tiff_read_from_memory): Don't fail simply because the read would
9671 go past EOF; instead, return a short read.
9672 (tiff_load): Omit no-longer-needed casts.
9673 (Fimagemagick_types): Don't assume size fits into 'int'.
9674
3cc5a532
PE
9675 Improve hashing quality when configured --with-wide-int.
9676 * fns.c (hash_string): New function, taken from sxhash_string.
9677 Do not discard information about ASCII character case; this
9678 discarding is no longer needed.
9679 (sxhash-string): Use it. Change sig to match it. Caller changed.
9680 * lisp.h: Declare it.
9681 * lread.c (hash_string): Remove, since we now use fns.c's version.
9682 The fns.c version returns a wider integer if --with-wide-int is
9683 specified, so this should help the quality of the hashing a bit.
9684
b312a492
PE
9685 * emacs.c: Integer overflow minor fix.
9686 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
9687 Define only if GNU_LINUX.
9688 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
9689
dfd153ae
PE
9690 * dispnew.c: Integer signedness and overflow fixes.
9691 Remove unnecessary forward decls, that were a maintenance hassle.
9692 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
9693 All uses changed.
9694 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
9695 (scrolling_window): Use ptrdiff_t, not int, for byte count.
9696 (prepare_desired_row, line_draw_cost):
9697 Use int, not unsigned, where either works.
9698 (save_current_matrix, restore_current_matrix):
9699 Use ptrdiff_t, not size_t, where either works.
9700 (init_display): Check for overflow more accurately, and without
9701 relying on undefined behavior.
9702
a81d11a3
PE
9703 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
9704 Remove, replacing with the new symbols in lisp.h. All uses changed.
9705 * fileio.c (make_temp_name):
9706 * filelock.c (lock_file_1, lock_file):
9707 * xdisp.c (message_dolog):
9708 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
9709 Use pMd etc. instead.
9710 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
9711 replacing the pWIDE etc. symbols removed from editfns.c.
9712
3300e6fd
PE
9713 * keyboard.h (num_input_events): Now uintmax_t.
9714 This is (very slightly) less likely to mess up due to wraparound.
9715 All uses changed.
9716
fd05c7e9
PE
9717 * buffer.c: Integer signedness fixes.
9718 (alloc_buffer_text, enlarge_buffer_text):
9719 Use ptrdiff_t rather than size_t when either will do, as we prefer
9720 signed integers.
9721
903fe15d
PE
9722 * alloc.c: Integer signedness and overflow fixes.
9723 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
9724 (__malloc_size_t): Default to size_t, not to int.
9725 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
9726 (Fgarbage_collect, mark_object_loop_halt, mark_object):
9727 Prefer ptrdiff_t to size_t when either would do, as we prefer
9728 signed integers.
9729 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
9730 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
9731 Now const. Initialize with values that are in range even if char
9732 is signed.
9733 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
9734 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
9735 These functions do the right thing with sizes > 2**32.
9736 (check_depth): Now ptrdiff_t, not int.
9737 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
9738 Adjust to new way of storing sizes. Check for size overflow bugs
9739 in rest of code.
9740 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
9741 slightly wrong anyway, as it missed one instance of
9742 XMALLOC_OVERRUN_CHECK_OVERHEAD.
9743 (refill_memory_reserve): Omit needless cast to size_t.
9744 (mark_object_loop_halt): Mark as externally visible.
9745
ac82cc6a
PE
9746 * xselect.c: Integer signedness and overflow fixes.
9747 (Fx_register_dnd_atom, x_handle_dnd_message):
9748 Use ptrdiff_t, not size_t, since we prefer signed.
9749 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
9750 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
9751 x_dnd_atoms_size and x_dnd_atoms_length.
9752
c2d1e36d
PE
9753 * doprnt.c: Prefer signed to unsigned when either works.
9754 * eval.c (verror):
9755 * doprnt.c (doprnt):
9756 * lisp.h (doprnt):
9757 * xdisp.c (vmessage):
9758 Use ptrdiff_t, not size_t, when using or implementing doprnt,
9759 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
9760 prefer signed arithmetic to avoid comparison confusion.
9761 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
9762 but is a bit tricky.
9763
0e926e56
PE
9764 Assume freestanding C89 headers, string.h, stdlib.h.
9765 * data.c, doprnt.c, floatfns.c, print.c:
9766 Include float.h unconditionally.
9767 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
9768 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
9769 * regex.c: Likewise for stddef.h, string.h.
9770 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
9771 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
9772 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
9773 (STDC_HEADERS): Remove obsolete defines.
9774 * sysdep.c: Include limits.h unconditionally.
9775
9cfdb3ec
PE
9776 Assume support for memcmp, memcpy, memmove, memset.
9777 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
9778 * regex.c (memcmp, memcpy):
9779 Remove; we assume C89 now.
9780
9781 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
9782 (__malloc_safe_bcopy): Remove; no longer needed.
9783
cf950e6b 9784 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
6089c567
PE
9785 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
9786 well either way, and we prefer signed to unsigned.
9787
dbf38e02
LMI
97882011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
9789
9790 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
9791 closes the connection while we're reading (bug#9182).
9792
d6f0886c 97932011-07-25 Jan Djärv <jan.h.d@swipnet.se>
24e0f6b1 9794
d6f0886c
JD
9795 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
9796 are specified (Bug#9168).
24e0f6b1 9797
2eb1f9e6
PE
97982011-07-25 Paul Eggert <eggert@cs.ucla.edu>
9799
9800 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
9801 Found by GCC static checking and --with-wide-int on a 32-bit host.
9802
22381272 98032011-07-25 Eli Zaretskii <eliz@gnu.org>
7daee910
EZ
9804
9805 * xdisp.c (compute_display_string_pos): Fix logic of caching
9806 previous display string position. Initialize cached_prev_pos to
9807 -1. Fixes slow-down at the beginning of a buffer.
9808
f25e39b4
EZ
98092011-07-24 Eli Zaretskii <eliz@gnu.org>
9810
9811 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
9812 for attrs[LFACE_FONTSET_INDEX].
9813
04c4b52e
PE
98142011-07-23 Paul Eggert <eggert@cs.ucla.edu>
9815
9816 * xml.c (parse_region): Remove unused local
9817 that was recently introduced.
9818
c1734fbd
EZ
98192011-07-23 Eli Zaretskii <eliz@gnu.org>
9820
be18c5a5
EZ
9821 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
9822 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
9823
c1734fbd
EZ
9824 * xdisp.c (move_it_in_display_line_to): Record the best matching
9825 position for TO_CHARPOS while scanning the line, and restore it on
640c8776
SM
9826 exit if none of the characters scanned was an exact match.
9827 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
a9269c18
EZ
9828 when exact match is impossible due to invisible text, and the
9829 lines are truncated.
9830
a258d627
JD
98312011-07-23 Jan Djärv <jan.h.d@swipnet.se>
9832
9833 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
9834 for OSX >= 10.7.
9835
b6d5a689
EZ
98362011-07-22 Eli Zaretskii <eliz@gnu.org>
9837
0f74f785
EZ
9838 Fix a significant slow-down of cursor motion with C-n, C-p,
9839 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
9840 auto-repeat under bidi redisplay in fontified buffers.
b6d5a689 9841 * xdisp.c (compute_stop_pos_backwards): New function.
b6d5a689
EZ
9842 (next_element_from_buffer): Call compute_stop_pos_backwards to
9843 find a suitable prev_stop when we find ourselves before
0f74f785
EZ
9844 base_level_stop.
9845 (reseat): Don't look for prev_stop, as that could mean a very long
9846 run.
9847 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
9848 <cached_disp_overlay_modiff>: Cache for last found display string
9849 position.
551918c1 9850 (compute_display_string_pos): Return the cached position if asked
0f74f785
EZ
9851 about the same buffer in the same area of character positions, and
9852 the buffer wasn't changed since the time the display string
9853 position was cached.
551918c1 9854
b2d0c91a
EZ
98552011-07-22 Eli Zaretskii <eliz@gnu.org>
9856
9857 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
9858 is an integer, which is important for empty lines. (Bug#9149)
9859
043604ee
CY
98602011-07-22 Chong Yidong <cyd@stupidchicken.com>
9861
9862 * frame.c (Fmodify_frame_parameters): In tty case, update the
9863 default face if necessary (Bug#4238).
9864
da4adb04
CY
98652011-07-21 Chong Yidong <cyd@stupidchicken.com>
9866
9867 * editfns.c (Fstring_to_char): No need to explain what a character
9868 is in the docstring (Bug#6576).
9869
9abd0532
LMI
98702011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
9871
9872 * xml.c (parse_region): Make sure we always return a tree.
9873
36881d16
HK
98742011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
9875
9876 * xml.c (parse_region): If a document contains only comments,
9877 return that, too.
9878
1e98674d
LMI
98792011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
9880
9881 * xml.c (make_dom): Return comments, too.
9882
590bd467
PE
98832011-07-19 Paul Eggert <eggert@cs.ucla.edu>
9884
9885 Port to OpenBSD.
9886 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
9887 and the surrounding thread.
9888 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
9889 rather than fgets, and retry after EINTR. Otherwise, 'emacs
9890 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
9891 timer goes off.
9892 * s/openbsd.h (BROKEN_SIGIO): Define.
9893 * unexelf.c (unexec) [__OpenBSD__]:
9894 Don't update the .mdebug section of the Alpha COFF symbol table.
9895
f41628b2
LMI
98962011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
9897
9898 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
9899 (bug#8460).
9900
b59b67c5
PE
99012011-07-18 Paul Eggert <eggert@cs.ucla.edu>
9902
15e3a074
PE
9903 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
9904 This fixes some race conditions on the permissions of any newly
9905 created file.
9906
41bed37d
PE
9907 * alloc.c (valid_pointer_p): Use pipe, not open.
9908 This fixes some permissions issues when debugging.
9909
b59b67c5
PE
9910 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
9911 If fchown fails to set both uid and gid, try to set just gid,
9912 as that is sometimes allowed. Adjust the file's mode to eliminate
9913 setuid or setgid bits that are inappropriate if fchown fails.
9914
925a6be7
SM
99152011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
9916
9917 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
9918 to compare Lisp_Objects.
9919 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
9920 global_gnutls_log_level, don't mistake it for a Lisp_Object.
9921 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
9922
52968808
AS
99232011-07-17 Andreas Schwab <schwab@linux-m68k.org>
9924
0a6a104b
AS
9925 * lread.c (read_integer): Unread even EOF character.
9926 (read1): Likewise. Properly record start position of symbol.
9927
52968808
AS
9928 * lread.c (read1): Read `#:' as empty uninterned symbol if no
9929 symbol character follows.
9930
9e381cdd
PE
99312011-07-17 Paul Eggert <eggert@cs.ucla.edu>
9932
9933 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
9934 This works around a problem with the previous change to Fcopy_file.
9935 Recent glibc declares fchown with __attribute__((warn_unused_result)),
9936 and without this change, GCC might complain about discarding
9937 fchown's return value.
9938
b5641435
JB
99392011-07-16 Juanma Barranquero <lekktu@gmail.com>
9940
9941 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
9942
a8031457
PE
99432011-07-16 Paul Eggert <eggert@cs.ucla.edu>
9944
9945 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
9946
dd889327
LMI
99472011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
9948
750c33f7
LMI
9949 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
9950 it's used from the C level.
9951
dd889327
LMI
9952 * process.c: Use the same condition for POLL_FOR_INPUT in both
9953 keyboard.c and process.c (bug#1858).
9954
87e86684
LM
99552011-07-09 Lawrence Mitchell <wence@gmx.li>
9956
9957 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
9958 (Fgnutls_boot): Use it.
9959
64348f40
AS
99602011-07-15 Andreas Schwab <schwab@linux-m68k.org>
9961
9962 * doc.c (Fsubstitute_command_keys): Revert last change.
9963
1d698799
LMI
99642011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
9965
f863868c
LMI
9966 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
9967 quotes the next character, and doesn't affect other longer
9968 sequences (bug#8935).
9969
1d698799
LMI
9970 * lread.c (syms_of_lread): Clarify that is isn't only
9971 `eval-buffer' and `eval-defun' that's affected by
9972 `lexical-binding' (bug#8460).
9973
aa4b6df6
EZ
99742011-07-15 Eli Zaretskii <eliz@gnu.org>
9975
9976 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
6b02f655 9977 bidi redisplay when a line includes both an image and is truncated.
aa4b6df6 9978
5d856da6
PE
99792011-07-14 Paul Eggert <eggert@cs.ucla.edu>
9980
ad6042bb
PE
9981 Fix minor problems found by static checking.
9982 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
9983 (elsz): Now a signed constant, not a size_t var. We prefer signed
9984 types to unsigned, to avoid integer comparison confusion. Without
9985 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
9986 "cannot optimize loop, the loop counter may overflow", a symptom
9987 of the confusion.
f00bbb22 9988 * indent.c (Fvertical_motion): Mark locals as initialized.
5d856da6
PE
9989 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
9990
6468f31c
LMI
99912011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
9992
49080b10
LMI
9993 * search.c (Fre_search_backward): Mention `case-fold-search' in
9994 all the re_search_* functions (bug#8138).
9995
6468f31c
LMI
9996 * keyboard.c (Fopen_dribble_file): Document when the file is
9997 closed (bug#8056).
9998
c965adc5
EZ
99992011-07-14 Eli Zaretskii <eliz@gnu.org>
10000
df9733bf
EZ
10001 * bidi.c (bidi_dump_cached_states): Fix format of displaying
10002 bidi_cache_idx.
10003
0bb23927
EZ
10004 Support bidi reordering of display and overlay strings.
10005 * xdisp.c (compute_display_string_pos)
10006 (compute_display_string_end): Accept additional argument STRING.
10007 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
10008 (reseat_to_string): Initialize bidi_it->string.s and
10009 bidi_it->string.schars.
10010 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
640c8776
SM
10011 NULL (avoids a crash in bidi_paragraph_init).
10012 Initialize itb.string.lstring.
0bb23927
EZ
10013 (init_iterator): Call bidi_init_it only of a valid
10014 buffer position was specified. Initialize paragraph_embedding to
10015 L2R.
10016 (reseat_to_string): Initialize the bidi iterator.
10017 (display_string): If we need to ignore text properties of
10018 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
10019 original value of -1 will not work with bidi.)
10020 (compute_display_string_pos): First arg is now struct
10021 `text_pos *'; all callers changed. Support display properties on
10022 Lisp strings.
10023 (compute_display_string_end): Support display properties on Lisp
10024 strings.
10025 (init_iterator, reseat_1, reseat_to_string): Initialize the
10026 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
10027 when iterating on a string not from display properties).
640c8776
SM
10028 (compute_display_string_pos, compute_display_string_end):
10029 Fix calculation of the object to scan. Fixes an error when using
0bb23927
EZ
10030 arrow keys.
10031 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
640c8776
SM
10032 base_level_stop; instead, set base_level_stop to BEGV.
10033 Fixes crashes in vertical-motion.
0bb23927
EZ
10034 (next_element_from_buffer): Improve commentary for when
10035 the iterator is before prev_stop.
10036 (init_iterator): Initialize bidi_p from the default value of
10037 bidi-display-reordering, not from buffer-local value. Use the
10038 buffer-local value only if initializing for buffer iteration.
10039 (handle_invisible_prop): Support invisible properties on strings
10040 that are being bidi-reordered.
10041 (set_iterator_to_next): Support bidi reordering of C strings and
10042 Lisp strings.
10043 (next_element_from_string): Support bidi reordering of Lisp
10044 strings.
10045 (handle_stop_backwards): Support Lisp strings as well.
640c8776
SM
10046 (display_string): Support display of R2L glyph rows.
10047 Use IT_STRING_CHARPOS when displaying from a Lisp string.
0bb23927
EZ
10048 (init_iterator): Don't initialize it->bidi_p for strings
10049 here.
10050 (reseat_to_string): Initialize it->bidi_p for strings here.
10051 (next_element_from_string, next_element_from_c_string)
10052 (next_element_from_buffer): Add xassert's for correspondence
10053 between IT's object being iterated and it->bidi_it.string
10054 structure.
10055 (face_before_or_after_it_pos): Support bidi iteration.
10056 (next_element_from_c_string): Handle the case of the first string
10057 character that is not the first one in the visual order.
10058 (get_visually_first_element): New function, refactored from common
10059 parts of next_element_from_buffer, next_element_from_string, and
10060 next_element_from_c_string.
10061 (tool_bar_lines_needed, redisplay_tool_bar)
10062 (display_menu_bar): Force left-to-right direction. Add a FIXME
10063 comment for making that be controlled by a user option.
10064 (push_it, pop_it): Save and restore the state of the
10065 bidi iterator. Save and restore the bidi_p flag.
10066 (pop_it): Iterate out of display property for string iteration as
10067 well.
10068 (iterate_out_of_display_property): Support iteration over strings.
10069 (handle_single_display_spec): Set up it->bidi_it for iteration
10070 over a display string, and call bidi_init_it.
10071 (handle_single_display_spec, next_overlay_string)
10072 (get_overlay_strings_1, push_display_prop): Set up the bidi
10073 iterator for displaying display or overlay strings.
10074 (forward_to_next_line_start): Don't use the shortcut if
10075 bidi-iterating.
10076 (back_to_previous_visible_line_start): If handle_display_prop
10077 pushed the iterator stack, restore the internal state of the bidi
10078 iterator by calling bidi_pop_it same number of times.
10079 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
10080 and we are bidi-iterating, don't decrement the iterator position;
10081 instead, set the first_elt flag in the bidi iterator, to produce
10082 the same effect.
10083 (reseat_1): Remove redundant setting of string_from_display_prop_p.
10084 (push_display_prop): xassert that we are iterating a buffer.
10085 (push_it, pop_it): Save and restore paragraph_embedding member.
10086 (handle_single_display_spec, next_overlay_string)
10087 (get_overlay_strings_1, reseat_1, reseat_to_string)
10088 (push_display_prop): Set up the `unibyte' member of bidi_it.string
10089 correctly. Don't assume unibyte strings are not bidi-reordered.
10090 (compute_display_string_pos)
10091 (compute_display_string_end): Fix handling the case of C string.
10092 (push_it, pop_it): Save and restore from_disp_prop_p.
10093 (handle_single_display_spec, push_display_prop): Set the
10094 from_disp_prop_p flag.
10095 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
10096 (pop_it): Call iterate_out_of_display_property only if we are
10097 popping after iteration over a string that came from a display
10098 property. Fix a typo in popping stretch info. Add an assertion
10099 for verifying that the iterator position is in sync with the bidi
10100 iterator.
10101 (handle_single_display_spec, get_overlay_strings_1)
10102 (push_display_prop): Fix initialization of paragraph direction for
10103 string when that of the parent object is not yet determined.
10104 (reseat_1): Call bidi_init_it to resync the bidi
10105 iterator with IT's position. (Bug#7616)
10106 (find_row_edges): If ROW->start.pos gives position
10107 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
10108 (handle_stop, back_to_previous_visible_line_start, reseat_1):
10109 Reset the from_disp_prop_p flag.
10110 (SAVE_IT, RESTORE_IT): New macros.
10111 (pos_visible_p, face_before_or_after_it_pos)
10112 (back_to_previous_visible_line_start)
10113 (move_it_in_display_line_to, move_it_in_display_line)
10114 (move_it_to, move_it_vertically_backward, move_it_by_lines)
10115 (try_scrolling, redisplay_window, display_line): Use them when
10116 saving a temporary copy of the iterator and restoring it back.
10117 (back_to_previous_visible_line_start, reseat_1)
10118 (init_iterator): Empty the bidi cache "stack".
10119 (move_it_in_display_line_to): If iterator ended up at
10120 EOL, but we never saw any buffer positions smaller than
10121 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
10122 motion in bidi-reordered lines.
10123 (move_it_in_display_line_to): Record prev_method and prev_pos
10124 immediately before the call to set_iterator_to_next. Fixes cursor
10125 motion in bidi-reordered lines with stretch glyphs and strings
10126 displayed in margins. (Bug#8133) (Bug#8867)
10127 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
10128 TO_CHARPOS.
640c8776
SM
10129 (pos_visible_p): Support positions in bidi-reordered lines.
10130 Save and restore bidi cache.
0bb23927
EZ
10131
10132 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
10133 (bidi_paragraph_info): Delete unused struct.
10134 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
10135 (bidi_cache_start): New variable.
10136 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
10137 to zero.
10138 (bidi_cache_fetch_state, bidi_cache_search)
10139 (bidi_cache_find_level_change, bidi_cache_iterator_state)
10140 (bidi_cache_find, bidi_peek_at_next_level)
10141 (bidi_level_of_next_char, bidi_find_other_level_edge)
10142 (bidi_move_to_visually_next): Compare cache index with
10143 bidi_cache_start rather than with zero.
10144 (bidi_fetch_char): Accept new argument STRING; all callers
10145 changed. Support iteration over a string. Support strings with
10146 display properties. Support unibyte strings. Fix the type of
10147 `len' according to what STRING_CHAR_AND_LENGTH expects.
10148 (bidi_paragraph_init, bidi_resolve_explicit_1)
10149 (bidi_resolve_explicit, bidi_resolve_weak)
640c8776
SM
10150 (bidi_level_of_next_char, bidi_move_to_visually_next):
10151 Support iteration over a string.
0bb23927
EZ
10152 (bidi_set_sor_type, bidi_resolve_explicit_1)
10153 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
10154 can now be zero (for strings); special values 0 and -1 were
10155 changed to -1 and -2, respectively.
10156 (bidi_char_at_pos): New function.
10157 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
10158 Call it instead of FETCH_MULTIBYTE_CHAR.
10159 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
10160 initialized to valid values.
10161 (bidi_init_it): Don't initialize charpos and bytepos with invalid
10162 values.
10163 (bidi_level_of_next_char): Allow the sentinel "position" to pass
10164 the test for valid cached positions. Fix the logic for looking up
10165 the sentinel state in the cache. GCPRO the Lisp string we are
10166 iterating.
10167 (bidi_push_it, bidi_pop_it): New functions.
10168 (bidi_initialize): Initialize the bidi cache start stack pointer.
10169 (bidi_cache_ensure_space): New function, refactored from part of
10170 bidi_cache_iterator_state. Don't assume the required size is just
10171 one BIDI_CACHE_CHUNK away.
10172 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
10173 (bidi_count_bytes, bidi_char_at_pos): New functions.
10174 (bidi_cache_search): Don't assume bidi_cache_last_idx is
10175 always valid if bidi_cache_idx is valid.
10176 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
10177 is valid if it's going to be used.
10178 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
10179 (bidi_cache_fetch_state, bidi_cache_search)
c965adc5
EZ
10180 (bidi_cache_find_level_change, bidi_cache_ensure_space)
10181 (bidi_cache_iterator_state, bidi_cache_find)
640c8776
SM
10182 (bidi_find_other_level_edge, bidi_cache_start_stack):
10183 All variables related to cache indices are now EMACS_INT.
c965adc5 10184
0bb23927
EZ
10185 * dispextern.h (struct bidi_string_data): New structure.
10186 (struct bidi_it): New member `string'. Make flag members be 1-bit
10187 fields, and put them last in the struct.
640c8776
SM
10188 (compute_display_string_pos, compute_display_string_end):
10189 Update prototypes.
0bb23927
EZ
10190 (bidi_push_it, bidi_pop_it): Add prototypes.
10191 (struct iterator_stack_entry): New members bidi_p,
10192 paragraph_embedding, and from_disp_prop_p.
10193 (struct it): Member bidi_p is now a bit field 1 bit wide.
640c8776
SM
10194 (bidi_shelve_cache, bidi_unshelve_cache):
10195 Declare prototypes.
0bb23927
EZ
10196
10197 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
10198 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
10199 and vector-like objects.
10200
10201 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
10202 cache around display iteration.
10203
10204 * window.c (Fwindow_end, window_scroll_pixel_based)
10205 (displayed_window_lines, Frecenter): Save and restore the bidi
10206 cache around display iteration.
10207
3bbd2265
LMI
102082011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
10209
10210 * editfns.c (Fdelete_region): Clarify the use of the named
10211 parameters (bug#6788).
10212
adc47434
MR
102132011-07-14 Martin Rudalics <rudalics@gmx.at>
10214
10215 * indent.c (Fvertical_motion): Set and restore w->pointm when
10216 saving and restoring the window's buffer (Bug#9006).
10217
837c31f8
LMI
102182011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
10219
10220 * editfns.c (Fstring_to_char): Clarify just what is returned
10221 (bug#6576). Text by Eli Zaretskii.
10222
ac389d0c
JB
102232011-07-13 Juanma Barranquero <lekktu@gmail.com>
10224
10225 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
10226
0be0ce47
EZ
102272011-07-13 Eli Zaretskii <eliz@gnu.org>
10228
10229 * buffer.c (mmap_find): Fix a typo.
10230
cd18e7e3
JB
102312011-07-13 Johan Bockgård <bojohan@gnu.org>
10232
10233 Fix execution of x selection hooks.
10234 * xselect.c (Qx_lost_selection_functions)
10235 (Qx_sent_selection_functions): New vars.
10236 (syms_of_xselect): DEFSYM them.
10237 (x_handle_selection_request): Pass Qx_sent_selection_functions
10238 rather than Vx_sent_selection_functions to Frun_hook_with_args.
10239 (x_handle_selection_clear,x_clear_frame_selections):
10240 Pass Qx_lost_selection_functions rather than
10241 Vx_lost_selection_functions to Frun_hook_with_args.
10242
47ea7f44
PE
102432011-07-13 Paul Eggert <eggert@cs.ucla.edu>
10244
ac389d0c 10245 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
2941c447
PE
10246 The old code sometimes used this field without initializing it.
10247
47ea7f44
PE
10248 * alloc.c (gc_sweep): Don't read past end of array.
10249 In theory, the old code could also have corrupted Emacs internals,
10250 though it'd be very unlikely.
10251
bc985c87
AS
102522011-07-12 Andreas Schwab <schwab@linux-m68k.org>
10253
10254 * character.c (Fcharacterp): Don't advertise optional ignored
ac389d0c 10255 argument. (Bug#4026)
bc985c87 10256
0cf34688
LMI
102572011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
10258
b3dadd76
LMI
10259 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
10260 key" (bug#4257).
10261
0cf34688
LMI
10262 * window.c (Fset_window_start): Doc fix (bug#4199).
10263 (Fset_window_hscroll): Ditto.
10264
270768cd
PE
102652011-07-12 Paul Eggert <eggert@cs.ucla.edu>
10266
077e3dda 10267 Fix minor new problems caught by GCC 4.6.1.
270768cd 10268 * term.c (init_tty): Remove unused local.
490011a6 10269 * xsettings.c (store_monospaced_changed): Define this function only
077e3dda 10270 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
490011a6 10271 not used otherwise.
270768cd 10272
b1f58454
CY
102732011-07-12 Chong Yidong <cyd@stupidchicken.com>
10274
10275 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
10276
22b9578d
LMI
102772011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
10278
6e70ab07
LMI
10279 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
10280 are the mini-buffer and the echo area (bug#3320).
10281
22b9578d
LMI
10282 * term.c (init_tty): Remove support for supdup, c10 and perq
10283 terminals, which are no longer supported (bug#1482).
10284
8974cc9f
JB
102852011-07-10 Johan Bockgård <bojohan@gnu.org>
10286
10287 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
10288
a560d974
JD
102892011-07-10 Jan Djärv <jan.h.d@swipnet.se>
10290
10291 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
10292 for non-popups (Bug#3642).
10293
1dae0f0a
AS
102942011-07-10 Andreas Schwab <schwab@linux-m68k.org>
10295
268c2c36 10296 * alloc.c (reset_malloc_hooks): Protoize.
1dae0f0a 10297 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
268c2c36
AS
10298 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
10299 * cm.c (losecursor): Likewise.
1dae0f0a
AS
10300 * data.c (fmod): Likewise.
10301 * dispnew.c (swap_glyphs_in_rows): Likewise.
10302 * emacs.c (memory_warning_signal): Likewise.
10303 * floatfns.c (float_error): Likewise.
10304 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
10305 (otf_open, font_otf_capability, generate_otf_features)
10306 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
10307 Likewise.
10308 * image.c (pbm_read_file): Likewise.
10309 * indent.c (string_display_width): Likewise.
10310 * intervals.c (check_for_interval, search_for_interval)
10311 (inc_interval_count, count_intervals, root_interval)
10312 (adjust_intervals_for_insertion, make_new_interval): Likewise.
10313 * lread.c (defalias): Likewise.
268c2c36 10314 * ralloc.c (r_alloc_check): Likewise.
1dae0f0a
AS
10315 * regex.c (set_image_of_range_1, set_image_of_range)
10316 (regex_grow_registers): Likewise.
10317 * sysdep.c (strerror): Likewise.
10318 * termcap.c (valid_filename_p, tprint, main): Likewise.
10319 * tparam.c (main): Likewise.
10320 * unexhp9k800.c (run_time_remap, save_data_space)
10321 (update_file_ptrs, read_header, write_header, calculate_checksum)
10322 (copy_file, copy_rest, display_header): Likewise.
10323 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
10324 Likewise.
10325 * xdisp.c (check_it): Likewise.
10326 * xfaces.c (register_color, unregister_color, unregister_colors):
10327 Likewise.
10328 * xfns.c (print_fontset_result): Likewise.
10329 * xrdb.c (member, fatal, main): Likewise.
10330
99033785
PE
103312011-07-10 Paul Eggert <eggert@cs.ucla.edu>
10332
10333 Fix minor problems found by static checking (Bug#9031).
10334 * chartab.c (char_table_set_range, map_sub_char_table):
10335 Remove unused locals.
10336 (uniprop_table): Now static.
10337 * composite.c (_work_char): Remove unused static var.
10338
9cb2ac56
JB
103392011-07-09 Juanma Barranquero <lekktu@gmail.com>
10340
10341 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
10342
f25661f0
JD
103432011-07-09 Jan Djärv <jan.h.d@swipnet.se>
10344
10345 * gtkutil.c (qttip_cb): Remove code without function.
10346
8278c4fe
EZ
103472011-07-09 Eli Zaretskii <eliz@gnu.org>
10348
10349 * w32.c (pthread_sigmask): New stub.
10350
1692ae2d 103512011-07-08 Paul Eggert <eggert@cs.ucla.edu>
123403e4 10352
8a6ebd58 10353 Use pthread_sigmask, not sigprocmask (Bug#9010).
123403e4
PE
10354 sigprocmask is portable only for single-threaded applications, and
10355 Emacs can be multi-threaded when it uses GTK.
1301ac26
PE
10356 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
10357 (LIBES): Use it.
10358 * callproc.c (Fcall_process):
10359 * process.c (create_process):
10360 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
10361 Use pthread_sigmask, not sigprocmask.
123403e4 10362
1b854618
JD
103632011-07-08 Jan Djärv <jan.h.d@swipnet.se>
10364
10365 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
10366 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
10367 wrong (Bug#8591).
10368
3fe4b549
JD
103692011-07-08 Jan Djärv <jan.h.d@swipnet.se>
10370
0ce7e563
JD
10371 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
10372 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
10373 (xg_hide_tooltip): Fix comment.
10374
3fe4b549
JD
10375 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
10376 in registerServicesMenuSendTypes.
10377 (validRequestorForSendType): Don't check ns_return_types.
10378
10379 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
10380 ns_return_type.
10381
5df75e47
JR
103822011-07-08 Jason Rumney <jasonr@gnu.org>
10383
22610910
JR
10384 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
10385 SH_SHOW for hidden windows (Bug#5482).
10386
5df75e47
JR
10387 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
10388 frame struct members of non-existent frames (Bug#6284).
10389
699c10bd
JD
103902011-07-08 Jan Djärv <jan.h.d@swipnet.se>
10391
4393663b
JD
10392 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
10393 variable firstTime not needed on OSX >= 10.6.
10394 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
10395 >= 10.5. Use setKnobProportion, setDoubleValue.
10396
10397 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
10398 (MAC_OS_X_VERSION_10_5): Define if not defined.
10399 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
10400 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
10401 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
10402
10403 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
090bd7cb 10404 cString and lossyCString on OSX >= 10.4.
4393663b 10405
58179cce 10406 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
4393663b
JD
10407 sizeToFit on OSX >= 10.2.
10408
10409 * nsimage.m (allocInitFromFile): Don't use deprecated method
10410 bestRepresentationForDevice on OSX >= 10.6.
10411
10412 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
10413 to avoid warning.
10414
10415 * emacs.c: Declare unexec_init_emacs_zone.
10416
a63e0781
JD
10417 * nsgui.h: Fix compiler warning about gnulib redefining verify.
10418
699c10bd
JD
10419 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
10420
10421 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
10422 on svcsMenu (Bug#8842).
10423
10424 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
10425 ns_return_types.
10426 (Fns_list_services): Just return Qnil on 10.6, code not working there.
10427
10428 * nsterm.m (QUTF8_STRING): Declare.
10429 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
10430 (validRequestorForSendType): Return type is (id).
10431 Change indexOfObjectIdenticalTo to indexOfObject.
10432 Check if we have local selection before returning self (Bug#8842).
10433 (writeSelectionToPasteboard): Put local selection into paste board
10434 if we have a local selection (Bug#8842).
10435 (syms_of_nsterm): DEFSYM QUTF8_STRING.
10436
10437 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
10438 (ns_get_local_selection): Declare.
10439
54e10184
LMI
104402011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
10441
9888ff71
LMI
10442 * keymap.c (describe_map_tree): Don't insert a double newline at
10443 the end of the buffer (bug#1169) and return whether we inserted
10444 something.
10445
54e10184
LMI
10446 * callint.c (Fcall_interactively): Change "reading args" to
10447 "providing args" to try to clarify what it does (bug#1010).
10448
15fa4783
KH
104492011-07-07 Kenichi Handa <handa@m17n.org>
10450
10451 * composite.c (composition_compute_stop_pos): Ignore a static
10452 composition starting before CHARPOS (Bug#8915).
10453
10454 * xdisp.c (handle_composition_prop): Likewise.
10455
a8815b00
EZ
104562011-07-07 Eli Zaretskii <eliz@gnu.org>
10457
10458 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
10459 (Bug#9015)
10460
ef7b981d 104612011-07-07 Kenichi Handa <handa@m17n.org>
c805dec0
KH
10462
10463 * character.h (unicode_category_t): New enum type.
10464
10465 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
10466 (Qchar_code_property_table): New variable.
10467 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
10468 (UNIPROP_COMPRESSED_FORM_P): New macros.
10469 (char_table_ascii): Uncompress the compressed values.
10470 (sub_char_table_ref): New arg is_uniprop. Callers changed.
10471 Uncompress the compressed values.
ac389d0c 10472 (sub_char_table_ref_and_range): Likewise.
c805dec0
KH
10473 (char_table_ref_and_range): Uncompress the compressed values.
10474 (sub_char_table_set): New arg is_uniprop. Callers changed.
10475 Uncompress the compressed values.
10476 (sub_char_table_set_range): Args changed. Callers changed.
10477 (char_table_set_range): Adjuted for the above change.
10478 (map_sub_char_table): Delete args default_val and parent. Add arg
10479 top. Give decoded values to a Lisp function.
640c8776 10480 (map_char_table): Adjust for the above change. Give decoded
c805dec0
KH
10481 values to a Lisp function. Gcpro more variables.
10482 (uniprop_table_uncompress)
10483 (uniprop_decode_value_run_length): New functions.
10484 (uniprop_decoder, uniprop_decoder_count): New variables.
10485 (uniprop_get_decoder, uniprop_encode_value_character)
10486 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
10487 New functions.
10488 (uniprop_encoder, uniprop_encoder_count): New variables.
10489 (uniprop_get_encoder, uniprop_table)
10490 (Funicode_property_table_internal, Fget_unicode_property_internal)
10491 (Fput_unicode_property_internal): New functions.
10492 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
10493 Sunicode_property_table_internal, Sget_unicode_property_internal,
5e617bc2 10494 and Sput_unicode_property_internal. Defvar_lisp
c805dec0
KH
10495 char-code-property-alist.
10496
640c8776 10497 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
c805dec0
KH
10498 Vunicode_category_table.
10499
640c8776 10500 * font.c (font_range): Adjust for the change of
c805dec0
KH
10501 Vunicode_category_table.
10502
76b397fb
DN
105032011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
10504
10505 * m/iris4d.h: Remove file, move contents ...
10506 * s/irix6-5.h: ... here.
10507
22b4128e
PE
105082011-07-06 Paul Eggert <eggert@cs.ucla.edu>
10509
10510 Remove unportable assumption about struct layout (Bug#8884).
8a5c77bb
PE
10511 * alloc.c (mark_buffer):
10512 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
10513 (clone_per_buffer_values): Don't assume that
22b4128e
PE
10514 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
10515 This isn't true in general, and it's particularly not true
10516 if Emacs is configured with --with-wide-int.
10517 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
10518 New macros, used in the buffer.c change.
10519
869795d6
JD
105202011-07-05 Jan Djärv <jan.h.d@swipnet.se>
10521
10522 * xsettings.c: Use both GConf and GSettings if both are available.
10523 (store_config_changed_event): Add comment.
10524 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
10525 (store_tool_bar_style_changed): New functions.
5e617bc2 10526 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
869795d6
JD
10527 (struct xsettings): Move font inside HAVE_XFT.
10528 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
640c8776 10529 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
869795d6 10530 Move inside HAVE_XFT.
640c8776 10531 (something_changed_gsettingsCB): Rename from something_changedCB.
869795d6
JD
10532 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
10533 also.
10534 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
5e617bc2 10535 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
640c8776 10536 (something_changed_gconfCB): Rename from something_changedCB.
869795d6
JD
10537 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
10538 (parse_settings): Move check for font inside HAVE_XFT.
10539 (read_settings, apply_xft_settings): Add comment.
10540 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
10541 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
10542 call store_font_name_changed.
10543 (xft_settings_event): Add comment.
10544 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
10545 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
10546 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
10547 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
10548 (xsettings_initialize): Call init_gsettings last.
640c8776
SM
10549 (xsettings_get_system_font, xsettings_get_system_normal_font):
10550 Add comment.
869795d6 10551
d8ed26bd
PE
105522011-07-05 Paul Eggert <eggert@cs.ucla.edu>
10553
10554 Random fixes. E.g., (random) never returned negative values.
10555 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
10556 subseconds part to the entropy, as that's a bit more random.
10557 Prefer signed to unsigned, since the signedness doesn't matter and
10558 in general we prefer signed. When given a limit, use a
10559 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
10560 latter isn't right if USE_2_TAGS_FOR_INTS.
10561 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
10562 not 0..VALMASK. Don't discard "excess" bits that random () returns.
10563
cabf1cac
SM
105642011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
10565
10566 * textprop.c (text_property_stickiness):
10567 Obey Vtext_property_default_nonsticky.
10568 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
10569 * w32fns.c (syms_of_w32fns):
10570 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
10571
6e9b2be9
PE
105722011-07-04 Paul Eggert <eggert@cs.ucla.edu>
10573
10574 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
10575 This is more efficient than Ffile_directory_p and avoids a minor race.
10576
90186c68
LMI
105772011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
10578
7c301272
LMI
10579 * buffer.c (Foverlay_put): Say what the return value is
10580 (bug#7835).
10581
c4f2d8d4
LMI
10582 * fileio.c (barf_or_query_if_file_exists): Check first if the file
10583 is a directory before asking whether to use the file name
10584 (bug#7564).
ad637907
LMI
10585 (barf_or_query_if_file_exists): Make the "File is a directory"
10586 error be more correct.
c4f2d8d4 10587
90186c68
LMI
10588 * fns.c (Frequire): Remove the mention of the .gz files, since
10589 that's installation-specific, but keep the mention of
10590 `get-load-suffixes'.
10591
da64016e
PE
105922011-07-04 Paul Eggert <eggert@cs.ucla.edu>
10593
10594 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
10595 Report string overflow if the output is too long.
10596
7d47b580
JB
105972011-07-04 Juanma Barranquero <lekktu@gmail.com>
10598
a555cb87
JB
10599 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
10600 (syms_of_gnutls): Remove duplicate DEFSYM for
10601 Qgnutls_bootprop_verify_hostname_error, an error for
10602 Qgnutls_bootprop_verify_error (which is no longer used).
10603
7d47b580
JB
10604 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
10605 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
10606 Also (re)move comments that are misplaced or no longer relevant.
10607
1e49bfab
LMI
106082011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
10609
10610 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
10611
1485f4c0
CY
106122011-07-03 Chong Yidong <cyd@stupidchicken.com>
10613
10614 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
10615 and background color parameters if they have been changed.
10616
a9ab721e
LMI
106172011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
10618
10619 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
10620
cf7cff57
PE
106212011-07-03 Paul Eggert <eggert@cs.ucla.edu>
10622
2e13213d
PE
10623 * xsettings.c (SYSTEM_FONT): Define only when used.
10624 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
10625
cf7cff57
PE
10626 * keymap.c (access_keymap_1): Now static.
10627
7a8e04f7
CY
106282011-07-02 Chong Yidong <cyd@stupidchicken.com>
10629
10630 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
10631 leave any prefix arg for the up event (Bug#1586).
10632
61352f62
LMI
106332011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
10634
69bb1ef7
LMI
10635 * lread.c (syms_of_lread): Mention single symbols defined by
10636 `defvar' or `defconst' (bug#7154).
10637
61352f62 10638 * fns.c (Frequire): Mention .el.gz files (bug#7314).
7b3747f9 10639 (Frequire): Mention get-load-suffixes.
61352f62 10640
28545e04
MR
106412011-07-02 Martin Rudalics <rudalics@gmx.at>
10642
10643 * window.h (window): Remove clone_number slot.
10644 * window.c (Fwindow_clone_number, Fset_window_clone_number):
10645 Remove.
10646 (make_parent_window, make_window, saved_window)
10647 (Fset_window_configuration, save_window_save): Don't deal with
10648 clone numbers.
10649 * buffer.c (Qclone_number): Remove declaration.
10650 (sort_overlays, overlay_strings): Don't deal with clone numbers.
10651
3349e122
SM
106522011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
10653
10654 Add multiple inheritance to keymaps.
10655 * keymap.c (Fmake_composed_keymap): New function.
10656 (Fset_keymap_parent): Simplify.
10657 (fix_submap_inheritance): Remove.
10658 (access_keymap_1): New function extracted from access_keymap to handle
10659 embedded parents and handle lists of maps.
10660 (access_keymap): Use it.
10661 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
10662 (Fcopy_keymap): Handle embedded parents.
10663 (Fcommand_remapping, define_as_prefix): Simplify.
10664 (Fkey_binding): Simplify.
10665 (syms_of_keymap): Move minibuffer-local-completion-map,
10666 minibuffer-local-filename-completion-map,
10667 minibuffer-local-must-match-map, and
10668 minibuffer-local-filename-must-match-map to Elisp.
10669 (syms_of_keymap): Defsubr make-composed-keymap.
10670 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
10671 (parse_menu_item): Trivial simplification.
10672
3279eb87
GM
106732011-07-01 Glenn Morris <rgm@gnu.org>
10674
10675 * Makefile.in (SETTINGS_LIBS): Fix typo.
10676
39cb9e56 106772011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
4550efdf
KI
10678
10679 * coding.c (Fencode_coding_string): Record the last coding system
10680 used, as the function doc string says (bug#8738).
10681
0949d2b6
JD
106822011-07-01 Jan Djärv <jan.h.d@swipnet.se>
10683
10684 * xsettings.c (store_monospaced_changed): Take new font as arg and
10685 check for change against current_mono_font.
10686 (EMACS_TYPE_SETTINGS): Remove this and related defines.
10687 (emacs_settings_constructor, emacs_settings_get_property)
10688 (emacs_settings_set_property, emacs_settings_class_init)
10689 (emacs_settings_init, gsettings_obj): Remove.
10690 (something_changedCB): New function for HAVE_GSETTINGS.
10691 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
10692 with value as argument.
10693 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
10694 g_settings_new (Bug#8967). Do not create gsettings_obj.
9173deec 10695 Remove calls to g_settings_bind. Connect something_changedCB to
0949d2b6
JD
10696 "changed".
10697
10698 * xgselect.c: Add defined (HAVE_GSETTINGS).
10699 (xgselect_initialize): Ditto.
10700
10701 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
10702 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
10703 xg_select.
10704
bbc6b304
PE
107052011-07-01 Paul Eggert <eggert@cs.ucla.edu>
10706
10707 * eval.c (struct backtrace): Simplify and port the data structure.
10708 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
10709 signed bit field, as this assumption is not portable and it makes
10710 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
10711 "char debug_on_exit : 1" as this is not portable either; instead,
10712 use the portable "unsigned int debug_on_exit : 1". Remove unused
10713 member evalargs. Remove obsolete comments about cc bombing out.
10714
9851bfc5
JD
107152011-06-30 Jan Djärv <jan.h.d@swipnet.se>
10716
51bb811f 10717 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
9851bfc5
JD
10718 Let HAVE_GSETTINGS override HAVE_GCONF.
10719 (store_monospaced_changed): New function.
10720 (EMACS_SETTINGS): A new type derived from GObject to handle
10721 GSettings notifications.
10722 (emacs_settings_constructor, emacs_settings_get_property)
10723 (emacs_settings_set_property, emacs_settings_class_init):
10724 New functions.
10725 (gsettings_client, gsettings_obj): New variables.
10726 (GSETTINGS_SCHEMA): New define.
10727 (something_changedCB): Call store_monospaced_changed.
10728 (init_gsettings): New function.
10729 (xsettings_initialize): Call init_gsettings.
10730 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
10731 to NULL.
10732
640c8776 10733 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
9851bfc5
JD
10734 GCONF_CFLAGS/LIBS.
10735
5386012d
MR
107362011-06-29 Martin Rudalics <rudalics@gmx.at>
10737
10738 * window.c (resize_root_window, grow_mini_window)
10739 (shrink_mini_window): Rename Qresize_root_window to
10740 Qwindow_resize_root_window and Qresize_root_window_vertically to
10741 Qwindow_resize_root_window_vertically.
10742
f13e0b08
PE
107432011-06-28 Paul Eggert <eggert@cs.ucla.edu>
10744
10745 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
10746
94515237
JB
107472011-06-27 Juanma Barranquero <lekktu@gmail.com>
10748
10749 * makefile.w32-in: Redesign dependencies so they reflect more
10750 clearly which files are directly included by each source file,
10751 and not through other includes.
10752
e43b6e43
MR
107532011-06-27 Martin Rudalics <rudalics@gmx.at>
10754
10755 * buffer.c (Qclone_number): Declare static and DEFSYM it.
10756 (sort_overlays, overlay_strings): When an overlay's clone number
10757 matches the window's clone number process the overlay even if
10758 the overlay's window property doesn't match the current window.
10759
d68443dc
MR
10760 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
10761 (Fwindow_hchild): Rename to Fwindow_left_child.
10762 (Fwindow_next): Rename to Fwindow_next_sibling.
10763 (Fwindow_prev): Rename to Fwindow_prev_sibling.
d615d6d2
MR
10764 (resize_window_check): Rename to window_resize_check.
10765 (resize_window_apply): Rename to window_resize_apply.
10766 (Fresize_window_apply): Rename to Fwindow_resize_apply.
10767 (Fdelete_other_windows_internal, resize_frame_windows)
10768 (Fsplit_window_internal, Fdelete_window_internal)
10769 (grow_mini_window, shrink_mini_window)
10770 (Fresize_mini_window_internal): Fix callers accordingly.
d68443dc 10771
c7e73be5
JD
107722011-06-26 Jan Djärv <jan.h.d@swipnet.se>
10773
10774 * emacsgtkfixed.h: State that this is only used with Gtk+3.
10775 (emacs_fixed_set_min_size): Remove.
10776 (emacs_fixed_new): Take frame as argument.
10777
10778 * emacsgtkfixed.c: State that this is only used with Gtk+3.
10779 (_EmacsFixedPrivate): Remove minwidth/height.
10780 Add struct frame *f.
10781 (emacs_fixed_init): Initialize priv->f.
10782 (get_parent_class, emacs_fixed_set_min_size): Remove.
10783 (emacs_fixed_new): Set priv->f to argument.
10784 (emacs_fixed_get_preferred_width)
10785 (emacs_fixed_get_preferred_height): Use min_width/height from
10786 frames size_hint to set minimum and natural (Bug#8919).
10787 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
10788 and use min_width/height from frames size_hint to set
10789 min_width/height (Bug#8919).
10790
10791 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
9173deec
JB
10792 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
10793 Fix indentation.
c7e73be5 10794
cf99dcf8
EZ
107952011-06-26 Eli Zaretskii <eliz@gnu.org>
10796
10797 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
10798 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
10799 called at ZV.
10800
029529ac
CY
108012011-06-26 Chong Yidong <cyd@stupidchicken.com>
10802
10803 * process.c (wait_reading_process_output): Bypass select if
10804 waiting for a cell while ignoring keyboard input, and input is
10805 pending. Suggested by Jan Djärv (Bug#8869).
10806
7a7ef429
PE
108072011-06-25 Paul Eggert <eggert@cs.ucla.edu>
10808
10809 Use gnulib's dup2 module instead of rolling our own.
10810 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
10811
11fdef7d 108122011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
989b42d2
YM
10813
10814 * dispnew.c (scrolling_window): Before scrolling, turn off a
10815 mouse-highlight in the window being scrolled.
10816
cd3520a4
JB
108172011-06-24 Juanma Barranquero <lekktu@gmail.com>
10818
10819 Move DEFSYM to lisp.h and use everywhere.
10820
10821 * character.h (DEFSYM): Move declaration...
10822 * lisp.h (DEFSYM): ...here.
10823
10824 * gnutls.c:
10825 * minibuf.c:
10826 * w32menu.c:
10827 * w32proc.c:
10828 * w32select.c: Don't include character.h.
10829
10830 * alloc.c (syms_of_alloc):
10831 * buffer.c (syms_of_buffer):
10832 * bytecode.c (syms_of_bytecode):
10833 * callint.c (syms_of_callint):
10834 * casefiddle.c (syms_of_casefiddle):
10835 * casetab.c (init_casetab_once):
10836 * category.c (init_category_once, syms_of_category):
10837 * ccl.c (syms_of_ccl):
10838 * cmds.c (syms_of_cmds):
10839 * composite.c (syms_of_composite):
10840 * dbusbind.c (syms_of_dbusbind):
10841 * dired.c (syms_of_dired):
10842 * dispnew.c (syms_of_display):
10843 * doc.c (syms_of_doc):
10844 * editfns.c (syms_of_editfns):
10845 * emacs.c (syms_of_emacs):
10846 * eval.c (syms_of_eval):
10847 * fileio.c (syms_of_fileio):
10848 * fns.c (syms_of_fns):
10849 * frame.c (syms_of_frame):
10850 * fringe.c (syms_of_fringe):
10851 * insdel.c (syms_of_insdel):
10852 * keymap.c (syms_of_keymap):
10853 * lread.c (init_obarray, syms_of_lread):
10854 * macros.c (syms_of_macros):
10855 * msdos.c (syms_of_msdos):
10856 * print.c (syms_of_print):
10857 * process.c (syms_of_process):
10858 * search.c (syms_of_search):
10859 * sound.c (syms_of_sound):
10860 * syntax.c (init_syntax_once, syms_of_syntax):
10861 * terminal.c (syms_of_terminal):
10862 * textprop.c (syms_of_textprop):
10863 * undo.c (syms_of_undo):
10864 * w32.c (globals_of_w32):
10865 * window.c (syms_of_window):
10866 * xdisp.c (syms_of_xdisp):
10867 * xfaces.c (syms_of_xfaces):
10868 * xfns.c (syms_of_xfns):
10869 * xmenu.c (syms_of_xmenu):
10870 * xsettings.c (syms_of_xsettings):
10871 * xterm.c (syms_of_xterm): Use DEFSYM.
10872
4228cf16
TZ
108732011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
10874
cd3520a4 10875 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
4228cf16 10876
7fcccf1e
PE
108772011-06-23 Paul Eggert <eggert@cs.ucla.edu>
10878
7efb4e0e
PE
10879 Integer and buffer overflow fixes (Bug#8873).
10880
ff5844ad
PE
10881 * print.c (printchar, strout): Check for string overflow.
10882 (PRINTPREPARE, printchar, strout):
10883 Don't set size unless allocation succeeds.
10884
90532f02
PE
10885 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
10886 for sizes. Check for string overflow more accurately.
10887 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
10888
6d84508d
PE
10889 * macros.c: Integer and buffer overflow fixes.
10890 * keyboard.h (struct keyboard.kbd_macro_bufsize):
10891 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
10892 Use ptrdiff_t, not int, for sizes.
10893 Don't increment bufsize until after realloc succeeds.
10894 Check for size-calculation overflow.
10895 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
10896
437b2cb4
PE
10897 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
10898
8b9ac8b4
PE
10899 * lread.c: Integer overflow fixes.
10900 (read_integer): Radix is now EMACS_INT, not int,
10901 to improve quality of diagnostics for out-of-range radices.
10902 Calculate buffer size correctly for out-of-range radices.
10903 (read1): Check for integer overflow in radices, and in
10904 read-circle numbers.
82cb60d3
PE
10905 (read_escape): Avoid int overflow.
10906 (Fload, openp, read_buffer_size, read1)
10907 (substitute_object_recurse, read_vector, read_list, map_obarray):
10908 Use ptrdiff_t, not int, for sizes.
10909 (read1): Use EMACS_INT, not int, for sizes.
20270765 10910 Check for size overflow.
8b9ac8b4 10911
7fcccf1e
PE
10912 * image.c (cache_image): Check for size arithmetic overflow.
10913
bfbbd7e7
PE
10914 * lread.c: Integer overflow issues.
10915 (saved_doc_string_size, saved_doc_string_length)
10916 (prev_saved_doc_string_size, prev_saved_doc_string_length):
10917 Now ptrdiff_t, not int.
10918 (read1): Don't assume doc string length fits in int. Check for
10919 out-of-range doc string lengths.
10920 (read_list): Don't assume file position fits in int.
39019e54 10921 (read_escape): Check for hex character overflow.
bfbbd7e7 10922
4e323265
LL
109232011-06-22 Leo Liu <sdl.web@gmail.com>
10924
10925 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
10926 Move to minibuffer.el.
10927
85fece3e
PE
109282011-06-22 Paul Eggert <eggert@cs.ucla.edu>
10929
20b84ce9 10930 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
85fece3e
PE
10931 The following patches are for when GLYPH_DEBUG && !XASSERT.
10932 * dispextern.h (trace_redisplay_p, dump_glyph_string):
10933 * dispnew.c (flush_stdout):
10934 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
10935 Mark as externally visible.
10936 * dispnew.c (check_window_matrix_pointers): Now static.
10937 * dispnew.c (window_to_frame_vpos):
10938 * xfns.c (unwind_create_frame):
10939 * xterm.c (x_check_font): Remove unused local.
10940 * scroll.c (CHECK_BOUNDS):
10941 * xfaces.c (cache_fache): Rename local to avoid shadowing.
10942 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
10943 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
10944 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
10945 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
10946 Now static.
10947 (debug_method_add): Use va_list and vsprintf rather than relying
10948 on undefined behavior with wrong number of arguments.
10949 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
10950 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
10951 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
10952 since we're not interested in debugging glyphs with old libraries.
10953 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
10954 GCC 4.6.0's static checking.
10955
0766b489
PE
109562011-06-22 Paul Eggert <eggert@cs.ucla.edu>
10957
31fd4b32
PE
10958 Integer overflow and signedness fixes (Bug#8873).
10959 A few related buffer overrun fixes, too.
10960
b79e8648
PE
10961 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
10962
0766b489
PE
10963 * dispextern.h (struct face.stipple):
10964 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
10965 (x_bitmap_mask, x_allocate_bitmap_record)
10966 (x_create_bitmap_from_data, x_create_bitmap_from_file)
10967 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
10968 (x_create_bitmap_from_xpm_data):
10969 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
10970 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
10971 (.bitmaps_last):
10972 * xfaces.c (load_pixmap):
10973 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
10974 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
10975 (.bitmaps_last, struct x_output.icon_bitmap):
10976 Use ptrdiff_t, not int, for bitmap indexes.
10977 (x_allocate_bitmap_record): Check for size overflow.
10978 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
10979
b081724f
PE
10980 Use ptrdiff_t, not int, for overlay counts.
10981 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
10982 * editfns.c (overlays_around, get_pos_property):
10983 * textprop.c (get_char_property_and_overlay):
10984 * xdisp.c (next_overlay_change, note_mouse_highlight):
10985 * xfaces.c (face_at_buffer_position):
21514da7
PE
10986 * buffer.c (OVERLAY_COUNT_MAX): New macro.
10987 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
10988 (Fnext_overlay_change, Fprevious_overlay_change)
10989 (mouse_face_overlay_overlaps, Foverlays_in):
b081724f 10990 Use ptrdiff_t, not int, for sizes.
21514da7 10991 (overlays_at, overlays_in): Check for size-calculation overflow.
b081724f 10992
3de73e5e
PE
10993 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
10994
2606c57b
PE
10995 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
10996 (x_session_initialize): Do not assume string length fits in int.
10997
aaafe47a
PE
10998 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
10999 This is unlikely, but can occur if DPI is outlandish.
11000
2674ddc8 11001 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
3a5077c5
PE
11002 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
11003
28154962
PE
11004 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
11005 * xrdb.c (magic_file_p, search_magic_path):
11006 Omit last arg SUFFIX; it was always 0. All callers changed.
11007 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
11008
7de51af5
PE
11009 * xfont.c (xfont_match): Avoid need for strlen.
11010
25ed6cc3
PE
11011 * xfns.c: Don't assume strlen fits in int.
11012 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
11013
4eab31dd
PE
11014 * xdisp.c (message_log_check_duplicate): Return intmax_t,
11015 not unsigned long, as we prefer signed integers. All callers changed.
11016 Detect integer overflow in repeat count.
11017 (message_dolog): Don't assume print length fits in 39 bytes.
df1f27af 11018 (display_mode_element): Don't assume strlen fits in int.
4eab31dd 11019
171e2a58
PE
11020 * termcap.c: Don't assume sizes fit in int and never overflow.
11021 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
11022 (gobble_line): Check for size-calculation overflow.
11023
ad39faca 11024 * minibuf.c (Fread_buffer):
6e5bb2dc 11025 * lread.c (intern, intern_c_string):
74ca2eb3
PE
11026 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
11027 Don't assume string length fits in int.
11028
52c61c22 11029 * keyboard.c (parse_tool_bar_item):
9bda3520
PE
11030 * gtkutil.c (style_changed_cb): Avoid need for strlen.
11031
b5b8c9e5
PE
11032 * font.c: Don't assume string length fits in int.
11033 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
11034 Use ptrdiff_t, not int.
ccd6111c
PE
11035 (font_intern_prop): Don't assume string length fits in int.
11036 Don't assume integer property fits in fixnum.
11037 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
b5b8c9e5 11038
882f0d81 11039 * filelock.c: Fix some buffer overrun and integer overflow issues.
51cab52b 11040 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
882f0d81
PE
11041 Reformulate so as not to need the command string.
11042 Invoke gzip -cd rather than gunzip, as it's more portable.
11043 (lock_info_type, lock_file_1, lock_file):
11044 Don't assume pid_t and time_t fit in unsigned long.
11045 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
11046 (current_lock_owner): Prefer signed type for sizes.
11047 Use memcpy, not strncpy, where memcpy is what is really wanted.
11048 Don't assume (via atoi) that time_t and pid_t fit in int.
11049 Check for time_t and/or pid_t out of range, e.g., via a network share.
11050 Don't alloca where an auto var works fine.
11051
93f4cf88
PE
11052 * fileio.c: Fix some integer overflow issues.
11053 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
11054 Don't assume string length fits in int.
11055 (directory_file_name): Don't assume string length fits in long.
11056 (make_temp_name): Don't assume pid fits in int, or that its print
11057 length is less than 20.
11058
f3e92b69
PE
11059 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
11060
1bfdaf10
PE
11061 * coding.c (make_subsidiaries): Don't assume string length fits in int.
11062
35016e9a
PE
11063 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
11064
3d1e65a1
PE
11065 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
11066 We prefer signed integers, even for size calculations.
11067
0b963a93
PE
11068 * emacs.c: Don't assume string length fits in 'int'.
11069 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
11070 (main): Don't invoke strlen when not needed.
11071
573f4b54
PE
11072 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
11073 (XD_DEBUG_MESSAGE): Don't waste a byte.
11074
989f33ba
PE
11075 * callproc.c (getenv_internal_1, getenv_internal)
11076 (Fgetenv_internal):
965d34eb
PE
11077 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
11078
e4d29b33
PE
11079 * lread.c (invalid_syntax): Omit length argument.
11080 All uses changed. This doesn't fix a bug, but it simplifies the
11081 code away from its former Hollerith-constant appearance, and it's
11082 one less 'int' to worry about when looking at integer-overflow issues.
51cab52b 11083 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
e4d29b33 11084
eb49b136
PE
11085 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
11086 This didn't break anything, but it didn't help either.
11087 It's confusing to put a bogus integer in a place where the actual
11088 value does not matter.
9f62aeb1 11089 (LIST_END_P): Remove unused macro and its bogus comment.
cbeff735 11090 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
eb49b136 11091
15375a22
PE
11092 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
11093 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
11094 implementation.
b61cc01c
PE
11095 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
11096 We prefer signed types, and the value cannot exceed the EMACS_INT
11097 range anyway (because otherwise the length would not be representable).
9a8e8d9b
PE
11098 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
11099 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
11100 This avoids a GCC warning when WIDE_EMACS_INT.
15375a22 11101
53b2623d
PE
11102 * indent.c (sane_tab_width): New function.
11103 (current_column, scan_for_column, Findent_to, position_indentation)
11104 (compute_motion): Use it. This is just for clarity.
8fcaf9cc 11105 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
53b2623d 11106
51cab52b 11107 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
45aebb64 11108
f2ed8a70
PE
11109 * lisp.h (lint_assume): New macro.
11110 * composite.c (composition_gstring_put_cache):
11111 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
11112
abe80cc6
PE
11113 * editfns.c, insdel.c:
11114 Omit unnecessary forward decls, to simplify future changes.
a9e860e1 11115
b02c740e
PE
11116 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
11117
ebc96716
PE
11118 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
11119
b4e50fa0 11120 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
f03dc6ef 11121 Use much-faster test for byte-length change.
311d5d7c 11122 Don't assume string byte-length fits in 'int'.
a4cf38e4 11123 Check that character arg fits in 'int'.
85461888 11124 (mapcar1): Declare byte as byte, for clarity.
b4e50fa0 11125
c0c1ee9f
PE
11126 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
11127
a498d7f4
PE
11128 * fns.c (concat): Catch string overflow earlier.
11129 Do not rely on integer wraparound.
11130
51cab52b
PE
11131 * dispextern.h (struct it.overlay_strings_charpos)
11132 (struct it.selective): Now EMACS_INT, not int.
87830974
PE
11133 * xdisp.c (forward_to_next_line_start)
11134 (back_to_previous_visible_line_start)
11135 (reseat_at_next_visible_line_start, next_element_from_buffer):
11136 Don't arbitrarily truncate the value of 'selective' to int.
11137
76031fad
PE
11138 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
11139
5eb55db9
PE
11140 * composite.c: Don't truncate sizes to 'int'.
11141 (composition_gstring_p, composition_reseat_it)
11142 (composition_adjust_point): Use EMACS_INT, not int.
7d100a81
PE
11143 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
11144 not EMACS_UINT, for indexes.
5eb55db9 11145
0703a717
PE
11146 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
11147
d6202519
PE
11148 * buffer.c: Include <verify.h>.
11149 (struct sortvec.priority, struct sortstr.priority):
8961a454 11150 Now EMACS_INT, not int.
c20998a7 11151 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
67c36fce
PE
11152 (struct sortstr.size, record_overlay_string)
11153 (struct sortstrlist.size, struct sortlist.used):
11154 Don't truncate size to int.
11155 (record_overlay_string): Check for size-calculation overflow.
d6202519 11156 (init_buffer_once): Check at compile-time, not run-time.
fadf4e30 11157
d5a19415
JM
111582011-06-22 Jim Meyering <meyering@redhat.com>
11159
029529ac 11160 Don't leak an XBM-image-sized buffer
d5a19415
JM
11161 * image.c (xbm_load): Free the image buffer after using it.
11162
a9041e6c
PE
111632011-06-21 Paul Eggert <eggert@cs.ucla.edu>
11164
11165 Port to Sun C.
11166 * composite.c (find_automatic_composition): Omit needless 'return 0;'
11167 that Sun C diagnosed.
11168 * fns.c (secure_hash): Fix pointer signedness issue.
11169 * intervals.c (static_offset_intervals): New function.
11170 (offset_intervals): Use it.
11171
7f3f739f
LL
111722011-06-21 Leo Liu <sdl.web@gmail.com>
11173
11174 * deps.mk (fns.o):
11175 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
11176 sha512.h.
11177
11178 * fns.c (secure_hash): Rename from crypto_hash_function and change
11179 the first arg to accept symbols.
5b66d427 11180 (Fsecure_hash): New primitive.
7f3f739f
LL
11181 (syms_of_fns): New symbols.
11182
76147d94
DD
111832011-06-20 Deniz Dogan <deniz@dogan.se>
11184
11185 * process.c (Fset_process_buffer): Clarify return value in
11186 docstring.
11187
7d7d0045
CY
111882011-06-18 Chong Yidong <cyd@stupidchicken.com>
11189
11190 * dispnew.c (add_window_display_history): Use BVAR.
11191
11192 * xdisp.c (debug_method_add): Use BVAR.
11193 (check_window_end, dump_glyph_matrix, dump_glyph)
11194 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
11195
11196 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
11197 Likewise.
11198
11199 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
11200 check till after the cache is created in init_frame_faces.
11201
ff2bc410
SM
112022011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
11203
11204 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
11205
28177add
PE
112062011-06-16 Paul Eggert <eggert@cs.ucla.edu>
11207
dd3482fe
PE
11208 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
11209 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
11210 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
11211
393d71f3 11212 Improve buffer-overflow checking (Bug#8873).
1c8e352f
PE
11213 * fileio.c (Finsert_file_contents):
11214 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
11215 Remove the old (too-loose) buffer overflow checks.
11216 They weren't needed, since make_gap checks for buffer overflow.
11217 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
11218 The old code merely checked for Emacs fixnum overflow, and relied
11219 on undefined (wraparound) behavior. The new code avoids undefined
11220 behavior, and also checks for ptrdiff_t and/or size_t overflow.
11221
2e6813b0 11222 * editfns.c (Finsert_char): Don't dump core with very negative counts.
21d890a4
PE
11223 Tune. Don't use wider integers than needed. Don't use alloca.
11224 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
2e6813b0 11225
599a9e4f
PE
11226 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
11227
99561444
PE
11228 * insdel.c, lisp.h (buffer_overflow): New function.
11229 (insert_from_buffer_1, replace_range, replace_range_2):
11230 * insdel.c (make_gap_larger):
11231 * editfns.c (Finsert_char):
11232 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
11233
28177add
PE
11234 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
11235
e69dafad
PE
112362011-06-15 Paul Eggert <eggert@cs.ucla.edu>
11237
4baa020d 11238 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
ff672d2c 11239
b1c46f02
PE
11240 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
11241 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
11242
e69dafad
PE
11243 * fileio.c: Don't assume EMACS_INT fits in off_t.
11244 (emacs_lseek): New static function.
11245 (Finsert_file_contents, Fwrite_region): Use it.
11246 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
11247
566684ea
PE
11248 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
11249
e6966cd6
PE
11250 * fns.c: Don't overflow int when computing a list length.
11251 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
11252 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
11253 truncation on 64-bit hosts. Check for QUIT every
11254 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
11255 faster and is responsive enough.
11256 (Flength): Report an error instead of overflowing an integer.
11257 (Fsafe_length): Return a float if the value is not representable
11258 as a fixnum. This shouldn't happen except in contrived situations.
6346d301 11259 (Fnthcdr, Fsort): Don't assume list length fits in int.
de41a810 11260 (Fcopy_sequence): Don't assume vector length fits in int.
00c604f2 11261
dd0b0efb
PE
11262 * alloc.c: Check that resized vectors' lengths fit in fixnums.
11263 (header_size, word_size): New constants.
11264 (allocate_vectorlike): Don't check size overflow here.
11265 (allocate_vector): Check it here instead, since this is the only
11266 caller of allocate_vectorlike that could cause overflow.
11267 Check that the new vector's length is representable as a fixnum.
11268
86fe5cfe
PE
11269 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
11270 The previous code was bogus. For example, next_almost_prime (32)
11271 returned 39, which is undesirable as it is a multiple of 3; and
11272 next_almost_prime (24) returned 25, which is a multiple of 5 so
11273 why was the code bothering to check for multiples of 7?
11274
80e88859
PE
11275 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
11276
4a2f0ad6
PE
11277 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
11278
f66c7cf8
PE
11279 Variadic C functions now count arguments with ptrdiff_t.
11280 This partly undoes my 2011-03-30 change, which replaced int with size_t.
11281 Back then I didn't know that the Emacs coding style prefers signed int.
11282 Also, in the meantime I found a few more instances where arguments
4a2f0ad6
PE
11283 were being counted with int, which may truncate counts on 64-bit
11284 machines, or EMACS_INT, which may be unnecessarily wide.
f66c7cf8
PE
11285 * lisp.h (struct Lisp_Subr.function.aMANY)
11286 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
11287 Arg counts are now ptrdiff_t, not size_t.
11288 All variadic functions and their callers changed accordingly.
11289 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
11290 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
11291 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
11292 * callint.c (Fcall_interactively): Check arg count for overflow,
11293 to avoid potential buffer overrun. Use signed char, not 'int',
11294 for 'varies' array, so that we needn't bother to check its size
11295 calculation for overflow.
11296 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
11297 * eval.c (apply_lambda):
11298 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
11299 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
11300 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
11301
a1759b76
PE
11302 * callint.c (Fcall_interactively): Don't use index var as event count.
11303
d96be9fc
PE
11304 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
11305 * mem-limits.h (SIZE): Remove; no longer used.
11306
a690a978 11307 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
5efd304b 11308
578c21e6
PE
11309 Remove unnecessary casts.
11310 * xterm.c (x_term_init):
11311 * xfns.c (x_set_border_pixel):
11312 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
11313 These aren't needed now that we assume ANSI C.
11314
96f53c6c
PE
11315 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
11316 It's more likely to cause problems (due to unsigned overflow)
11317 than to cure them.
11318
83c77d31
PE
11319 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
11320
ee2079f1
PE
11321 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
11322
6da65536
PE
11323 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
11324
7147c4a4
PE
11325 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
11326
193e32d9
PE
11327 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
11328
e5533da6
PE
11329 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
11330
9910e595
PE
11331 GLYPH_CODE_FACE returns EMACS_INT, not int.
11332 * dispextern.h (merge_faces):
11333 * xfaces.c (merge_faces):
01103c44
PE
11334 * xdisp.c (get_next_display_element, next_element_from_display_vector):
11335 Don't assume EMACS_INT fits in int.
9910e595 11336
2638320e
PE
11337 * character.h (CHAR_VALID_P): Remove unused parameter.
11338 * fontset.c, lisp.h, xdisp.c: All uses changed.
11339
045eb8d9
PE
11340 * editfns.c (Ftranslate_region_internal): Omit redundant test.
11341
c1f134b5
PE
11342 * fns.c (concat): Minor tuning based on overflow analysis.
11343 This doesn't fix any bugs. Use int to hold character, instead
11344 of constantly refetching from Emacs object. Use XFASTINT, not
11345 XINT, for value known to be a character. Don't bother comparing
11346 a single byte to 0400, as it's always less.
11347
395fcb93 11348 * floatfns.c (Fexpt):
327eeec8
PE
11349 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
11350
abbd3d23
PE
11351 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
11352 for characters.
11353
684a03ef
PE
11354 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
11355
0fed43f3
PE
11356 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
11357 Without this fix, on a 64-bit host (aset S 0 4294967386) would
11358 incorrectly succeed when S was a string, because 4294967386 was
11359 truncated before it was used.
11360
8fd02eb7
PE
11361 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
11362 Otherwise, an out-of-range integer could cause undefined behavior
11363 on a 64-bit host.
11364
f8c86b69
PE
11365 * composite.c: Use int, not EMACS_INT, for characters.
11366 (fill_gstring_body, composition_compute_stop_pos): Use int, not
11367 EMACS_INT, for values that are known to be in character range.
11368 This doesn't fix any bugs but is the usual style inside Emacs and
11369 may generate better code on 32-bit machines.
11370
34206dd2
PE
11371 Make sure a 64-bit char is never passed to ENCODE_CHAR.
11372 This is for reasons similar to the recent CHAR_STRING fix.
11373 * charset.c (Fencode_char): Check that character arg is actually
11374 a character. Pass an int to ENCODE_CHAR.
11375 * charset.h (ENCODE_CHAR): Verify that the character argument is no
11376 wider than 'int', as a compile-time check to prevent future regressions
11377 in this area.
11378
c5958d4c 11379 * character.c (char_string): Remove unnecessary casts.
13bdea59
PE
11380
11381 Make sure a 64-bit char is never passed to CHAR_STRING.
11382 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
11383 by silently ignoring the top 32 bits, allowing some values
11384 that were far too large to be valid characters.
11385 * character.h: Include <verify.h>.
11386 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
11387 arguments are no wider than unsigned, as a compile-time check
11388 to prevent future regressions in this area.
11389 * data.c (Faset):
01103c44 11390 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
13bdea59
PE
11391 (Fsubst_char_in_region):
11392 * fns.c (concat):
11393 * xdisp.c (decode_mode_spec_coding):
11394 Adjust to CHAR_STRING's new requirement.
11395 * editfns.c (Finsert_char, Fsubst_char_in_region):
11396 * fns.c (concat): Check that character args are actually
11397 characters. Without this test, these functions did the wrong
11398 thing with wildly out-of-range values on 64-bit hosts.
11399
d37ca623
PE
11400 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
11401 These casts should not be needed on 32-bit hosts, either.
11402 * keyboard.c (read_char):
11403 * lread.c (Fload): Remove casts to unsigned.
11404
ea204efb
PE
11405 * lisp.h (UNSIGNED_CMP): New macro.
11406 This fixes comparison bugs on 64-bit hosts.
11407 (ASCII_CHAR_P): Use it.
11408 * casefiddle.c (casify_object):
01103c44 11409 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
ea204efb
PE
11410 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
11411 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
11412 * dispextern.h (FACE_FROM_ID):
11413 * keyboard.c (read_char): Use UNSIGNED_CMP.
11414
41cb286c
PE
11415 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
11416 not to EMACS_INT, to avoid GCC warning.
11417
4a1b9832
PE
11418 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
11419
55daad71
PE
11420 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
11421 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
11422 isn't needed on 32-bit machines.
8f95c75c 11423
01103c44
PE
11424 * buffer.c (Fgenerate_new_buffer_name):
11425 Use EMACS_INT for count, not int.
0ceccced 11426 (advance_to_char_boundary): Return EMACS_INT, not int.
e762cafe
PE
11427
11428 * data.c (Qcompiled_function): Now static.
11429
c6f072e7
PE
11430 * window.c (window_body_lines): Now static.
11431
20ce5912
PE
11432 * image.c (gif_load): Rename local to avoid shadowing.
11433
9c4c5f81
PE
11434 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
11435 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
11436 * alloc.c (make_save_value): Integer argument is now of type
11437 ptrdiff_t, not int.
11438 (mark_object): Use ptrdiff_t, not int.
11439 * lisp.h (pD): New macro.
11440 * print.c (print_object): Use it.
11441
c0c5c8ae
PE
11442 * alloc.c: Use EMACS_INT, not int, to count objects.
11443 (total_conses, total_markers, total_symbols, total_vector_size)
11444 (total_free_conses, total_free_markers, total_free_symbols)
01103c44
PE
11445 (total_free_floats, total_floats, total_free_intervals)
11446 (total_intervals, total_strings, total_free_strings):
c0c5c8ae
PE
11447 Now EMACS_INT, not int. All uses changed.
11448 (Fgarbage_collect): Compute overall total using a double, so that
11449 integer overflow is less likely to be a problem. Check for overflow
11450 when converting back to an integer.
5a25e253
PE
11451 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
11452 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
11453 These were 'int' variables that could overflow on 64-bit hosts;
11454 they were never used, so remove them instead of repairing them.
211a0b2a 11455 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
6349ae4d
PE
11456 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
11457 Previously, this ceilinged at INT_MAX, but that doesn't work on
11458 64-bit machines.
e46bb31a 11459 (allocate_pseudovector): Don't use EMACS_INT when int would do.
c0c5c8ae 11460
c78baabf 11461 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
86f61a15 11462 (allocate_vectorlike): Check for ptrdiff_t overflow.
b6439961
PE
11463 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
11464 when a (possibly-narrower) signed value would do just as well.
11465 We prefer using signed arithmetic, to avoid comparison confusion.
c78baabf 11466
c9d624c6
PE
11467 * alloc.c: Catch some string size overflows that we were missing.
11468 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
11469 for convenience in STRING_BYTES_MAX.
11470 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
11471 The definition here is exact; the one in lisp.h was approximate.
11472 (allocate_string_data): Check for string overflow. This catches
11473 some instances we weren't catching before. Also, it catches
11474 size_t overflow on (unusual) hosts where SIZE_MAX <= min
11475 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
11476 and ptrdiff_t and EMACS_INT are both 64 bits.
c78baabf 11477
c9d624c6
PE
11478 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
11479 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
640c8776 11480 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
c9d624c6 11481
353032ce
PE
11482 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
11483
2bccce07
PE
11484 * alloc.c (Fmake_string): Check for out-of-range init.
11485
0ac30604
SM
114862011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
11487
11488 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
11489
c195f2de
JD
114902011-06-14 Jan Djärv <jan.h.d@swipnet.se>
11491
11492 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
11493 xg_get_default_scrollbar_width.
11494
11495 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
11496 (int_gtk_range_get_value): Move to the scroll bar part of the file.
11497 (style_changed_cb): Call update_theme_scrollbar_width and call
11498 x_set_scroll_bar_default_width and xg_frame_set_char_size for
11499 all frames (Bug#8505).
11500 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
11501 Call gtk_window_set_resizable if HAVE_GTK3.
11502 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
11503 and height if HAVE_GTK3 (Bug#8505).
11504 (scroll_bar_width_for_theme): New variable.
11505 (update_theme_scrollbar_width): New function.
11506 (xg_get_default_scrollbar_width): Move code to
11507 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
11508 (xg_initialize): Call update_theme_scrollbar_width.
11509
11510 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
11511
11512 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
11513
e10ac9f1
MR
115142011-06-12 Martin Rudalics <rudalics@gmx.at>
11515
11516 * frame.c (make_frame): Call other_buffer_safely instead of
11517 other_buffer.
11518
11519 * window.c (temp_output_buffer_show): Call display_buffer with
11520 second argument Vtemp_buffer_show_specifiers and reset latter
11521 immediately after the call.
11522 (Vtemp_buffer_show_specifiers): New variable.
11523 (auto_window_vscroll_p, next_screen_context_lines)
11524 (Vscroll_preserve_screen_position): Remove leading asterisks from
11525 doc-strings.
11526
2d3c217e 115272011-06-12 Paul Eggert <eggert@cs.ucla.edu>
4475bec4 11528
7b7f97e8 11529 Fix minor problems found by GCC 4.6.0 static checking.
4475bec4
PE
11530 * buffer.c (Qclone_number): Remove for now, as it's unused.
11531 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
11532 (record_buffer): Remove unused local.
11533 * frame.c (other_visible_frames, frame_buffer_list): Now static.
11534 (set_frame_buffer_list): Remove; unused.
11535 * frame.h (other_visible_frames): Remove decl.
11536 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
11537 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
11538 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
11539 if HAVE_GPM.
11540 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
11541 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
11542 Define only if HAVE_GPM.
11543 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
11544 (update_hints_inhibit): Remove; never set. All uses removed.
11545 * widgetprv.h (emacsFrameClassRec): Remove decl.
11546 * window.c (delete_deletable_window): Now returns void, since it
11547 wasn't returning anything.
11548 (compare_window_configurations): Remove unused locals.
11549 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
11550 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
4475bec4
PE
11551 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
11552 the same widths as pointers. This follows up on the 2011-05-06 patch.
11553 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
11554 * xterm.h: Likewise.
11555 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
11556
1384b89e
JB
115572011-06-12 Juanma Barranquero <lekktu@gmail.com>
11558
11559 * makefile.w32-in: Update dependencies.
11560 (LISP_H): Add lib/intprops.h.
11561
1100a63c
CY
115622011-06-11 Chong Yidong <cyd@stupidchicken.com>
11563
11564 * image.c (gif_load): Add animation frame delay to the metadata.
11565 (syms_of_image): Use DEFSYM. New symbol `delay'.
11566
6198ccd0
MR
115672011-06-11 Martin Rudalics <rudalics@gmx.at>
11568
11569 * window.c (delete_deletable_window): Re-add.
11570 (Fset_window_configuration): Rewrite to handle dead buffers and
11571 consequently deletable windows.
11572 (window_tree, Fwindow_tree): Remove. Supply functionality in
11573 window.el.
11574 (compare_window_configurations): Simplify code.
11575
b6e3633c
AS
115762011-06-11 Andreas Schwab <schwab@linux-m68k.org>
11577
1ab0dee5
AS
11578 * image.c (imagemagick_load_image): Fix type mismatch.
11579 (Fimagemagick_types): Likewise.
11580
b6e3633c
AS
11581 * window.h (replace_buffer_in_windows): Declare.
11582
9397e56f
MR
115832011-06-11 Martin Rudalics <rudalics@gmx.at>
11584
11585 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
11586 Qclone_number. Remove external declaration of Qdelete_window.
11587 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
11588 code.
640c8776
SM
11589 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
11590 Run Qbuffer_list_update_hook if allowed.
9397e56f
MR
11591 (Fother_buffer): Rewrite doc-string. Major rewrite for new
11592 buffer list implementation.
11593 (other_buffer_safely): New function.
11594 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
11595 calls to replace_buffer_in_windows and
11596 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
11597 if allowed.
11598 (record_buffer): Inhibit quitting and rewrite using quittable
11599 functions. Run Qbuffer_list_update_hook if allowed.
11600 (Frecord_buffer, Funrecord_buffer): New functions.
640c8776
SM
11601 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
11602 Move switch-to-buffer to window.el.
9397e56f
MR
11603 (bury-buffer): Move to window.el.
11604 (Vbuffer_list_update_hook): New variable.
11605
11606 * lisp.h (other_buffer_safely): Add prototype in buffer.c
11607 section.
11608
11609 * window.h (resize_frame_windows): Move up in code.
11610 (Fwindow_frame): Remove EXFUN.
11611 (replace_buffer_in_all_windows): Remove prototype.
11612 (replace_buffer_in_windows_safely): Add prototype.
11613
11614 * window.c: Declare Qdelete_window static again. Move down
11615 declaration of select_count.
11616 (Fnext_window, Fprevious_window): Rewrite doc-strings.
11617 (Fother_window): Move to window.el.
11618 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
11619 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
11620 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
11621 window.el.
11622 (replace_buffer_in_windows): Implement by calling
11623 Qreplace_buffer_in_windows.
11624 (replace_buffer_in_all_windows): Remove with some functionality
11625 moved into replace_buffer_in_windows_safely.
11626 (replace_buffer_in_windows_safely): New function.
11627 (select_window_norecord, select_frame_norecord): Move in front
11628 of run_window_configuration_change_hook. Remove now obsolete
11629 declarations.
640c8776
SM
11630 (Fset_window_buffer): Rewrite doc-string.
11631 Call Qrecord_window_buffer.
9397e56f
MR
11632 (keys_of_window): Move binding for other-window to window.el.
11633
b50691aa
CY
116342011-06-11 Chong Yidong <cyd@stupidchicken.com>
11635
11636 * dispextern.h (struct image): Replace data member, whose int_val
11637 and ptr_val fields were not used by anything, with a single
11638 lisp_val object.
11639
11640 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
11641 (gif_clear_image, gif_load, imagemagick_load_image)
11642 (gs_clear_image, gs_load): Callers changed.
11643
3f754b86
PE
116442011-06-10 Paul Eggert <eggert@cs.ucla.edu>
11645
cca69397
PE
11646 * buffer.h: Include <time.h>, for time_t.
11647 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
11648
109e28d0
PE
11649 Fix minor problems found by static checking.
11650
60737f02
PE
11651 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
11652
4b66faf3
PE
11653 Make identifiers static if they are not used in other modules.
11654 * data.c (Qcompiled_function, Qframe, Qvector):
11655 * image.c (QimageMagick, Qsvg):
11656 * minibuf.c (Qmetadata):
11657 * window.c (resize_window_check, resize_root_window): Now static.
11658 * window.h (resize_window_check, resize_root_window): Remove decls.
11659
109e28d0
PE
11660 * window.c (window_deletion_count, delete_deletable_window):
11661 Remove; unused.
46a4ce9e
PE
11662 (window_body_lines): Now static.
11663 (Fdelete_other_windows_internal): Mark vars as initialized.
11664 Make sure 'resize_failed' is initialized.
11665 (run_window_configuration_change_hook): Rename local to avoid shadowing.
11666 (resize_window_apply): Remove unused local.
11667 * window.h (delete_deletable_window): Remove decl.
11668
109e28d0 11669 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
33290528
PE
11670 (imagemagick_load_image): Fix pointer signedness problem by changing
11671 last arg from unsigned char * to char *. All uses changed.
11672 Also, fix a local for similar reasons.
11673 Remove unused locals. Remove locals to avoid shadowing.
11674 (fn_rsvg_handle_free): Remove; unused.
11675 (svg_load, svg_load_image): Fix pointer signedness problem.
f7e13da3 11676 (imagemagick_load_image): Don't use garbage pointer image_wand.
33290528 11677
3f754b86
PE
11678 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
11679
2547adb1
CY
116802011-06-10 Chong Yidong <cyd@stupidchicken.com>
11681
11682 * image.c (gif_load): Fix omitted cast error introduced by
11683 2011-06-06 change.
11684
2c8e37d4
MR
116852011-06-10 Martin Rudalics <rudalics@gmx.at>
11686
11687 * window.h (resize_proportionally, orig_total_lines)
11688 (orig_top_line): Remove from window structure.
11689 (set_window_height, set_window_width, change_window_heights)
11690 (Fdelete_window): Remove prototypes.
11691 (resize_frame_windows): Remove duplicate declaration.
11692
440a42e3
EZ
116932011-06-10 Eli Zaretskii <eliz@gnu.org>
11694
11695 * window.h (resize_frame_windows, resize_window_check)
11696 (delete_deletable_window, resize_root_window)
11697 (resize_frame_windows): Declare prototypes.
11698
11699 * window.c (resize_window_apply): Make definition be "static" to
11700 match the prototype.
11701
562dd5e9
MR
117022011-06-10 Martin Rudalics <rudalics@gmx.at>
11703
11704 * window.c: Remove declarations of Qwindow_size_fixed,
11705 window_min_size_1, window_min_size_2, window_min_size,
11706 size_window, window_fixed_size_p, enlarge_window, delete_window.
11707 Remove static from declaration of Qdelete_window, it's
11708 temporarily needed by Fbury_buffer.
11709 (replace_window): Don't assign orig_top_line and
11710 orig_total_lines.
11711 (Fdelete_window, delete_window): Remove. Window deletion is
11712 handled by window.el.
640c8776
SM
11713 (window_loop): Remove DELETE_OTHER_WINDOWS case.
11714 Replace Fdelete_window calls with calls to Qdelete_window.
562dd5e9
MR
11715 (Fdelete_other_windows): Remove. Deleting other windows is
11716 handled by window.el.
11717 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
11718 handled in window.el.
11719 (window_min_size_2, window_min_size_1, window_min_size): Remove.
11720 Window minimum sizes are handled in window.el.
11721 (shrink_windows, size_window, set_window_height)
11722 (set_window_width, change_window_heights, window_height)
11723 (window_width, CURBEG, CURSIZE, enlarge_window)
11724 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
11725 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
11726 handled in window.el.
11727 (make_dummy_parent): Rename to make_parent_window and give it a
11728 second argument horflag.
11729 (make_window): Don't set resize_proportionally any more.
11730 (Fsplit_window): Remove. Windows are split in window.el.
11731 (save_restore_action, save_restore_orig_size)
11732 (shrink_window_lowest_first, save_restore_orig_size): Remove.
11733 Resize mini windows in window.el.
11734 (grow_mini_window, shrink_mini_window): Implement by calling
11735 Qresize_root_window_vertically, resize_window_check and
11736 resize_window_apply.
640c8776
SM
11737 (saved_window, Fset_window_configuration, save_window_save):
11738 Do not handle orig_top_line, orig_total_lines, and
562dd5e9
MR
11739 resize_proportionally.
11740 (window_min_height, window_min_width): Move to window.el.
11741 (keys_of_window): Move bindings for delete-other-windows,
11742 split-window, delete-window and enlarge-window to window.el.
11743
11744 * buffer.c: Temporarily extern Qdelete_window.
11745 (Fbury_buffer): Temporarily call Qdelete_window instead of
11746 Fdelete_window (Fbury_buffer will move to window.el soon).
11747
11748 * frame.c (set_menu_bar_lines_1): Remove code handling
11749 orig_top_line and orig_total_lines.
11750
11751 * dispnew.c (adjust_frame_glyphs_initially): Don't use
11752 set_window_height but set heights directly.
11753 (change_frame_size_1): Use resize_frame_windows.
11754
11755 * xdisp.c (init_xdisp): Don't use set_window_height but set
11756 heights directly.
11757
640c8776
SM
11758 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
11759 Use resize_frame_windows instead of change_window_heights and run
562dd5e9
MR
11760 run_window_configuration_change_hook.
11761
11762 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
11763 instead of change_window_heights and run
11764 run_window_configuration_change_hook.
11765
1a13852e
MR
117662011-06-09 Martin Rudalics <rudalics@gmx.at>
11767
11768 * window.c (replace_window): Rename second argument REPLACEMENT to
11769 NEW. New third argument SETFLAG. Rewrite.
11770 (delete_window, make_dummy_parent): Call replace_window with
11771 third argument 1.
11772 (window_list_1): Move down in code.
11773 (run_window_configuration_change_hook): Move set_buffer part
11774 before select_frame_norecord part in order to unwind correctly.
11775 Rename count1 to count.
11776 (recombine_windows, delete_deletable_window, resize_root_window)
11777 (Fdelete_other_windows_internal)
11778 (Frun_window_configuration_change_hook, make_parent_window)
11779 (resize_window_check, resize_window_apply, Fresize_window_apply)
11780 (resize_frame_windows, Fsplit_window_internal)
640c8776
SM
11781 (Fdelete_window_internal, Fresize_mini_window_internal):
11782 New functions.
1a13852e
MR
11783 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
11784
f3d1777e
MR
117852011-06-08 Martin Rudalics <rudalics@gmx.at>
11786
496e208e
MR
11787 * window.h (window): Add some new members to window structure -
11788 normal_lines, normal_cols, new_total, new_normal, clone_number,
11789 splits, nest, prev_buffers, next_buffers.
11790 (WINDOW_TOTAL_SIZE): Move here from window.c.
b9e809c2 11791 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
496e208e 11792
f3d1777e
MR
11793 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
11794 Remove.
496e208e
MR
11795 (make_dummy_parent): Set new members of windows structure.
11796 (make_window): Move down in code. Handle new members of window
11797 structure.
11798 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
11799 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
11800 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
11801 (Fset_window_prev_buffers, Fwindow_next_buffers)
640c8776
SM
11802 (Fset_window_next_buffers, Fset_window_clone_number):
11803 New functions.
496e208e
MR
11804 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
11805 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
11806 Doc-string fixes.
11807 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
11808 Argument WINDOW can be now internal window too.
11809 (Fwindow_use_time): Move up in code.
11810 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
11811 Rewrite doc-string.
11812 (Fset_window_configuration, saved_window)
11813 (Fcurrent_window_configuration, save_window_save): Handle new
11814 members of window structure.
b9e809c2
MR
11815 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
11816 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
11817 (syms_of_window): New Lisp objects Qrecord_window_buffer,
11818 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
11819 Qget_mru_window, Qresize_root_window,
11820 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
11821 Qauto_buffer_name; staticpro them.
f3d1777e 11822
abde8f8c
MR
118232011-06-07 Martin Rudalics <rudalics@gmx.at>
11824
11825 * window.c (Fwindow_total_size, Fwindow_left_column)
11826 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
11827 (Fwindow_list_1): New functions.
11828 (window_box_text_cols): Replace with window_body_cols.
640c8776
SM
11829 (Fwindow_width, Fscroll_left, Fscroll_right):
11830 Use window_body_cols instead of window_box_text_cols.
11831 (delete_window, Fset_window_configuration):
11832 Call delete_all_subwindows with window as argument.
fa8a67e6
MR
11833 (delete_all_subwindows): Take a window as argument and not a
11834 structure. Rewrite.
190b47e6
MR
11835 (window_loop): Remove handling of GET_LRU_WINDOW and
11836 GET_LARGEST_WINDOW.
11837 (Fget_lru_window, Fget_largest_window): Move to window.el.
abde8f8c
MR
11838
11839 * window.h: Extern window_body_cols instead of
fa8a67e6
MR
11840 window_box_text_cols. delete_all_subwindows now takes a
11841 Lisp_Object as argument.
abde8f8c 11842
640c8776
SM
11843 * indent.c (compute_motion, Fcompute_motion):
11844 Use window_body_cols instead of window_box_text_cols.
abde8f8c 11845
fa8a67e6
MR
11846 * frame.c (delete_frame): Call delete_all_subwindows with root
11847 window as argument.
11848
a54e3482
DC
118492011-06-07 Daniel Colascione <dan.colascione@gmail.com>
11850
11851 * fns.c (Fputhash): Document return value.
11852
60002bf5
CY
118532011-06-06 Chong Yidong <cyd@stupidchicken.com>
11854
11855 * image.c (gif_load): Implement gif89a spec "no disposal" method.
11856
0c671da6 118572011-06-06 Paul Eggert <eggert@cs.ucla.edu>
ccd9a01a 11858
b862a52a 11859 Cons<->int and similar integer overflow fixes (Bug#8794).
77984278 11860
be44ca6c
PE
11861 Check for overflow when converting integer to cons and back.
11862 * charset.c (Fdefine_charset_internal, Fdecode_char):
11863 Use cons_to_unsigned to catch overflow.
11864 (Fencode_char): Use INTEGER_TO_CONS.
11865 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
11866 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
11867 * data.c (long_to_cons, cons_to_long): Remove.
11868 (cons_to_unsigned, cons_to_signed): New functions.
11869 These signal an error for invalid or out-of-range values.
11870 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
11871 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
11872 * font.c (Ffont_variation_glyphs):
11873 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
11874 * lisp.h: Include <intprops.h>.
11875 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
11876 (cons_to_signed, cons_to_unsigned): New decls.
11877 (long_to_cons, cons_to_long): Remove decls.
11878 * undo.c (record_first_change): Use INTEGER_TO_CONS.
11879 (Fprimitive_undo): Use CONS_TO_INTEGER.
11880 * xfns.c (Fx_window_property): Likewise.
11881 * xselect.c: Include <limits.h>.
11882 (x_own_selection, selection_data_to_lisp_data):
11883 Use INTEGER_TO_CONS.
11884 (x_handle_selection_request, x_handle_selection_clear)
11885 (x_get_foreign_selection, Fx_disown_selection_internal)
11886 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
11887 (lisp_data_to_selection_data): Use cons_to_unsigned.
11888 (x_fill_property_data): Use cons_to_signed.
11889 Report values out of range.
11890
d1f3d2af
PE
11891 Check for buffer and string overflow more precisely.
11892 * buffer.h (BUF_BYTES_MAX): New macro.
11893 * lisp.h (STRING_BYTES_MAX): New macro.
11894 * alloc.c (Fmake_string):
11895 * character.c (string_escape_byte8):
11896 * coding.c (coding_alloc_by_realloc):
11897 * doprnt.c (doprnt):
11898 * editfns.c (Fformat):
11899 * eval.c (verror):
11900 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
11901 since they may not be the same number.
11902 * editfns.c (Finsert_char):
11903 * fileio.c (Finsert_file_contents):
11904 Likewise for BUF_BYTES_MAX.
11905
dd52fcea
PE
11906 * image.c: Use ptrdiff_t, not int, for sizes.
11907 (slurp_file): Switch from int to ptrdiff_t.
11908 All uses changed.
11909 (slurp_file): Check that file size fits in both size_t (for
11910 malloc) and ptrdiff_t (for sanity and safety).
11911
7f9bbdbb
PE
11912 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
11913 if b->modtime has its maximal value.
11914
dfe18f82
PE
11915 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
11916
84acfcf0
PE
11917 Don't assume time_t can fit into int.
11918 * buffer.h (struct buffer.modtime): Now time_t, not int.
11919 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
11920 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
11921
ccd9a01a
PE
11922 Minor fixes for signed vs unsigned integers.
11923 * character.h (MAYBE_UNIFY_CHAR):
11924 * charset.c (maybe_unify_char):
11925 * keyboard.c (read_char, reorder_modifiers):
11926 XINT -> XFASTINT, since the integer must be nonnegative.
11927 * ftfont.c (ftfont_spec_pattern):
11928 * keymap.c (access_keymap, silly_event_symbol_error):
11929 XUINT -> XFASTINT, since the integer must be nonnegative.
11930 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
11931 since it makes no difference and we prefer signed.
11932 * keyboard.c (record_char): Use XUINT when all the neighbors do.
11933 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
11934 nonnegative.
11935
d6d100dd
SM
119362011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
11937
11938 * window.h (Fwindow_frame): Declare.
11939
2b6148e4
PE
119402011-06-06 Paul Eggert <eggert@cs.ucla.edu>
11941
11942 * alloc.c: Simplify handling of large-request failures (Bug#8800).
11943 (SPARE_MEMORY): Always define.
11944 (LARGE_REQUEST): Remove.
11945 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
11946
f230ecc9
MR
119472011-06-06 Martin Rudalics <rudalics@gmx.at>
11948
727e958e
MR
11949 * lisp.h: Move EXFUNS for Fframe_root_window,
11950 Fframe_first_window and Fset_frame_selected_window to window.h.
11951
11952 * window.h: Move EXFUNS for Fframe_root_window,
11953 Fframe_first_window and Fset_frame_selected_window here from
11954 lisp.h.
11955
11956 * frame.c (Fwindow_frame, Fframe_first_window)
11957 (Fframe_root_window, Fframe_selected_window)
11958 (Fset_frame_selected_window): Move to window.c.
11959 (Factive_minibuffer_window): Move to minibuf.c.
11960 (Fother_visible_frames_p): New function.
11961
11962 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
11963
f230ecc9
MR
11964 * window.c (decode_window, decode_any_window): Move up in code.
11965 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
11966 (inhibit_frame_unsplittable): Remove unused variable.
bf60a96b
MR
11967 (Fwindow_buffer): Move up and rewrite doc-string.
11968 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
11969 (Fwindow_prev): New functions.
727e958e
MR
11970 (Fwindow_frame): Move here from frame.c. Accept any window as
11971 argument.
11972 (Fframe_root_window, Fframe_first_window)
11973 (Fframe_selected_window): Move here from frame.c. Accept frame
11974 or arbitrary window as argument. Update doc-strings.
11975 (Fminibuffer_window): Move up in code.
11976 (Fwindow_minibuffer_p): Move up in code and simplify.
d6d100dd
SM
11977 (Fset_frame_selected_window): Move here from frame.c.
11978 Marginal rewrite.
727e958e
MR
11979 (Fselected_window, select_window, Fselect_window): Move up in
11980 code. Minor doc-string fixes.
f230ecc9 11981
4d09bcf6
PE
119822011-06-06 Paul Eggert <eggert@cs.ucla.edu>
11983
11984 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
11985 Do not assume that spare memory exists; that assumption is valid
11986 only if SYSTEM_MALLOC.
11987 (LARGE_REQUEST): New macro, so that the issue of large requests
11988 is separated from the issue of spare memory.
11989
810928a2
AS
119902011-06-05 Andreas Schwab <schwab@linux-m68k.org>
11991
172418ad
AS
11992 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
11993 format. (Bug#8806)
11994
43f862f7
AS
11995 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
11996
810928a2
AS
11997 * xfns.c (x_set_scroll_bar_default_width): Move declarations
11998 before statements.
11999
a059fe24
JD
120002011-06-05 Jan Djärv <jan.h.d@swipnet.se>
12001
12002 * gtkutil.c (xg_get_default_scrollbar_width): New function.
12003
12004 * gtkutil.h: Declare xg_get_default_scrollbar_width.
12005
12006 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
12007 min width by calling x_set_scroll_bar_default_width (Bug#8505).
12008
989bf368
JB
120092011-06-05 Juanma Barranquero <lekktu@gmail.com>
12010
12011 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
12012
4b80f674
CY
120132011-06-04 Chong Yidong <cyd@stupidchicken.com>
12014
12015 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
12016 (x_clipboard_manager_save): Add return value.
d6d100dd
SM
12017 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
12018 New error handlers.
4b80f674
CY
12019 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
12020 Obey Vx_select_enable_clipboard_manager. Catch errors in
12021 x_clipboard_manager_save (Bug#8779).
12022 (Vx_select_enable_clipboard_manager): New variable.
de65b42c 12023 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
4b80f674 12024
99a33b77 120252011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
8b3115e7
DN
12026
12027 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
12028
99a33b77 120292011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14eca62f
YM
12030
12031 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
12032 in the current matrix if keep_current_p is non-zero.
12033
8264569d
EZ
120342011-06-04 Eli Zaretskii <eliz@gnu.org>
12035
12036 * bidi.c (bidi_level_of_next_char): Fix last change.
12037
57f97249
EZ
120382011-06-03 Eli Zaretskii <eliz@gnu.org>
12039
fec2107c 12040 Support bidi reordering of text covered by display properties.
57f97249 12041
fec2107c
EZ
12042 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
12043 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
12044 (bidi_cache_search, bidi_cache_iterator_state)
12045 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
d6d100dd
SM
12046 (bidi_level_of_next_char, bidi_move_to_visually_next):
12047 Support character positions inside a run of characters covered by a
fec2107c
EZ
12048 display string.
12049 (bidi_paragraph_init, bidi_resolve_explicit_1)
12050 (bidi_level_of_next_char): Call bidi_fetch_char and
12051 bidi_fetch_char_advance instead of FETCH_CHAR and
12052 FETCH_CHAR_ADVANCE.
12053 (bidi_init_it): Initialize new members.
12054 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
12055 definitions.
12056 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
12057 instead of using explicit *_CHAR codes.
d6d100dd
SM
12058 (bidi_resolve_explicit, bidi_resolve_weak):
12059 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
fec2107c
EZ
12060 bidirectional text is supported only in multibyte buffers.
12061 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
12062 it to initialize the frame_window_p member of struct bidi_it.
12063 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
12064 (bidi_resolve_explicit, bidi_resolve_weak)
12065 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
12066 bidi_it->nchars is non-positive.
12067 (bidi_level_of_next_char): Don't try to lookup the cache for the
12068 next/previous character if nothing is cached there yet, or if we
12069 were just reseat()'ed to a new position.
c40e2fb2 12070
0e14fe90
EZ
12071 * xdisp.c (set_cursor_from_row): Set start and stop points
12072 according to the row's direction when priming the loop that looks
12073 for the glyph on which to display cursor.
12074 (single_display_spec_intangible_p): Function deleted.
12075 (display_prop_intangible_p): Reimplement to call
12076 handle_display_spec instead of single_display_spec_intangible_p.
d6d100dd
SM
12077 Accept 3 additional arguments needed by handle_display_spec.
12078 This fixes incorrect cursor motion across display property with complex
0e14fe90
EZ
12079 values: lists, `(when COND...)' forms, etc.
12080 (single_display_spec_string_p): Support property values that are
12081 lists with the argument STRING its top-level element.
12082 (display_prop_string_p): Fix the condition for processing a
12083 property that is a list to be consistent with handle_display_spec.
fec2107c 12084 (handle_display_spec): New function, refactored from the
fc6f18ce
EZ
12085 last portion of handle_display_prop.
12086 (compute_display_string_pos): Accept additional argument
12087 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
12088 value of a `display' property is a "replacing spec".
12089 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
12090 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
12091 the display property, but just return a value indicating whether
12092 the display property will replace the characters it covers.
12093 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
12094 frame_window_p members of struct bidi_it.
d6d100dd
SM
12095 (compute_display_string_pos, compute_display_string_end):
12096 New functions.
fec2107c
EZ
12097 (push_it): Accept second argument POSITION, where pop_it should
12098 jump to continue iteration.
12099 (reseat_1): Initialize bidi_it.disp_pos.
fc6f18ce 12100
fec2107c
EZ
12101 * keyboard.c (adjust_point_for_property): Adjust the call to
12102 display_prop_intangible_p to its new signature.
fc6f18ce
EZ
12103
12104 * dispextern.h (struct bidi_it): New member frame_window_p.
fec2107c
EZ
12105 (bidi_init_it): Update prototypes.
12106 (display_prop_intangible_p): Update prototype.
d6d100dd
SM
12107 (compute_display_string_pos, compute_display_string_end):
12108 Declare prototypes.
fec2107c
EZ
12109 (struct bidi_it): New members nchars and disp_pos. ch_len is now
12110 EMACS_INT.
fc6f18ce 12111
40087514 121122011-06-02 Paul Eggert <eggert@cs.ucla.edu>
0de4bb68 12113
57f53182
PE
12114 Malloc failure behavior now depends on size of allocation.
12115 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
12116 * lisp.h: Change signatures accordingly.
12117 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
12118 All callers changed. (Bug#8762)
12119
12120 * gnutls.c: Use Emacs's memory allocators.
12121 Without this change, the gnutls library would invoke malloc etc.
12122 directly, which causes problems on non-SYNC_INPUT hosts, and which
12123 runs afoul of improving memory_full behavior. (Bug#8761)
12124 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
12125 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
12126 xfree instead of the default malloc, realloc, free.
12127 (Fgnutls_boot): No need to check for memory allocation failure,
12128 since xmalloc does that for us.
12129
ac32cd99 12130 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
3870d916
PE
12131 * category.c (hash_get_category_set):
12132 * ccl.c (ccl_driver):
12133 * charset.c (Fdefine_charset_internal):
12134 * charset.h (struct charset.hash_index):
12135 * composite.c (get_composition_id, gstring_lookup_cache)
12136 (composition_gstring_put_cache):
12137 * composite.h (struct composition.hash_index):
12138 * dispextern.h (struct image.hash):
12139 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
12140 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
12141 (hashfn_equal, hashfn_user_defined, make_hash_table)
12142 (maybe_resize_hash_table, hash_lookup, hash_put)
12143 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
12144 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
12145 (Fsxhash, Fgethash, Fputhash, Fmaphash):
12146 * image.c (make_image, search_image_cache, lookup_image)
12147 (xpm_put_color_table_h):
12148 * lisp.h (struct Lisp_Hash_Table):
0de4bb68 12149 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
ac389d0c 12150 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
3870d916 12151 for hashes and hash indexes, instead of 'unsigned' and 'int'.
40087514
PE
12152 * alloc.c (allocate_vectorlike):
12153 Check for overflow in vector size calculations.
12154 * ccl.c (ccl_driver):
12155 Check for overflow when converting EMACS_INT to int.
0de4bb68
PE
12156 * fns.c, image.c: Remove unnecessary static decls that would otherwise
12157 need to be updated by these changes.
40087514
PE
12158 * fns.c (make_hash_table, maybe_resize_hash_table):
12159 Check for integer overflow with large hash tables.
0de4bb68
PE
12160 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
12161 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
12162 (SXHASH_REDUCE): New macro.
12163 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
12164 Use it instead of discarding useful hash info with large hash values.
12165 (sxhash_float): New function.
12166 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
12167 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
40087514
PE
12168 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
12169 Rewrite to use FIXNUM_BITS, as this simplifies things.
0de4bb68
PE
12170 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
12171 Adjust signatures to match updated version of code.
12172 (consing_since_gc): Now EMACS_INT, since a single hash table can
12173 use more than INT_MAX bytes.
12174
698d32e2
DN
121752011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
12176
12177 Make it possible to build with GCC-4.6+ -O2 -flto.
12178
12179 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
12180
fd6fa53f
SM
121812011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
12182
12183 * minibuf.c (get_minibuffer, read_minibuf_unwind):
12184 Call minibuffer-inactive-mode.
12185
864db017
JB
121862011-05-31 Juanma Barranquero <lekktu@gmail.com>
12187
12188 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
12189 Update dependencies.
12190
2ad0baf4
DN
121912011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
12192
12193 * data.c (init_data): Remove code for UTS, this system is not
12194 supported anymore.
12195
4fcc2638
DN
121962011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
12197
12198 Don't force ./temacs to start in terminal mode.
12199
12200 * frame.c (make_initial_frame): Initialize faces in all cases, not
12201 only when CANNOT_DUMP is defined.
12202 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
12203
c56e0fd5
DN
122042011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
12205
12206 * dispnew.c (add_window_display_history): Use const for the string
12207 pointer. Remove declaration, not needed.
12208
333d54da 122092011-05-31 Paul Eggert <eggert@cs.ucla.edu>
9cf9f756 12210
55d4c1b2 12211 Use 'inline', not 'INLINE'.
333d54da 12212 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
55d4c1b2
PE
12213 * alloc.c, fontset.c (INLINE): Remove.
12214 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
12215 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
12216 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
12217 * gmalloc.c (register_heapinfo): Use inline unconditionally.
12218 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
12219
738db178
DN
122202011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
12221
12222 Make it possible to run ./temacs.
12223
12224 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
12225 syms_of_callproc does the same thing. Remove test for
12226 "initialized", do it in the caller.
12227 * emacs.c (main): Avoid calling set_initial_environment when dumping.
12228
620c53a6
SM
122292011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
12230
12231 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
12232 (read_minibuf): Use get_minibuffer.
12233 (syms_of_minibuf): Use DEFSYM.
12234 (Qmetadata): New var.
12235 * data.c (Qbuffer): Don't make it static.
12236 (syms_of_data): Use DEFSYM.
12237
e003a292
PE
122382011-05-31 Paul Eggert <eggert@cs.ucla.edu>
12239
12240 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
12241 (CCL_CODE_MIN): New macro.
12242
ed008a6d
PE
122432011-05-30 Paul Eggert <eggert@cs.ucla.edu>
12244
3687c2ef
PE
12245 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
12246
ed008a6d
PE
12247 * eval.c (Qdebug): Now static.
12248 * lisp.h (Qdebug): Remove decl. This reverts a part of the
12249 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
12250 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
12251
d66c4c7c
CY
122522011-05-29 Chong Yidong <cyd@stupidchicken.com>
12253
12254 * image.c: Various fixes to ImageMagick code comments.
12255 (Fimagemagick_types): Doc fix.
12256
5fbc2025
PE
122572011-05-29 Paul Eggert <eggert@cs.ucla.edu>
12258
0196f88a
PE
12259 Minor fixes prompted by GCC 4.6.0 warnings.
12260
12261 * xselect.c (converted_selections, conversion_fail_tag): Now static.
12262
5fbc2025
PE
12263 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
12264 (x_clipboard_manager_save_all): Move extern decl to ...
12265 * xterm.h: ... here, so that it can be checked for consistency.
12266
1dd3c2d9
CY
122672011-05-29 Chong Yidong <cyd@stupidchicken.com>
12268
12269 * xselect.c (x_clipboard_manager_save_frame)
12270 (x_clipboard_manager_save_all): New functions.
12271 (Fx_clipboard_manager_save): Lisp function deleted.
12272
12273 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
12274 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
12275
12276 * xterm.h: Update prototype.
12277
5ba6571d
WX
122782011-05-28 William Xu <william.xwl@gmail.com>
12279
12280 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
12281 exiting (Bug#8239).
12282
3eaff834
JM
122832011-05-28 Jim Meyering <meyering@redhat.com>
12284
e1900994 12285 Avoid a sign-extension bug in crypto_hash_function.
3eaff834
JM
12286 * fns.c (to_uchar): Define.
12287 (crypto_hash_function): Use it to convert some newly-signed
12288 variables to unsigned, to avoid sign-extension bugs. For example,
12289 without this change, (md5 "truc") would evaluate to
12290 45723a2aff78ff4fff7fff1114760e62 rather than the expected
12291 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
e1900994 12292 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
3eaff834 12293
0f6990a7
PE
122942011-05-27 Paul Eggert <eggert@cs.ucla.edu>
12295
12296 Integer overflow fixes.
c8a9ca5a 12297
08686060
PE
12298 * dbusbind.c: Serial number integer overflow fixes.
12299 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
08686060
PE
12300 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
12301 to hold a serial number that is too large for a fixnum.
12302 (Fdbus_method_return_internal, Fdbus_method_error_internal):
12303 Check for serial numbers out of range. Decode any serial number
59568bf0 12304 that was so large that it became a float. (Bug#8722)
08686060 12305
2d1fc3c7
PE
12306 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
12307 (Fdbus_call_method, Fdbus_call_method_asynchronously):
12308 Use XFASTINT rather than XUINT when numbers are nonnegative.
12309 (xd_append_arg, Fdbus_method_return_internal):
12310 (Fdbus_method_error_internal): Likewise. Also, for unsigned
12311 arguments, check that Lisp number is nonnegative, rather than
59568bf0 12312 silently wrapping negative numbers around. (Bug#8722)
30217ff0 12313 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
59568bf0 12314 (Bug#8722)
2d1fc3c7 12315
c8a9ca5a
PE
12316 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
12317
519e1d69
PE
12318 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
12319
6df6ae42 12320 ccl: Add integer overflow checks.
30569699
PE
12321 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
12322 (IN_INT_RANGE): New macros.
12323 (ccl_driver): Use them to check for integer overflow when
12324 decoding a CCL program. Many of the new checks are whether XINT (x)
12325 fits in int; it doesn't always, on 64-bit hosts. The new version
12326 doesn't catch all possible integer overflows, but it's an
847044ea 12327 improvement. (Bug#8719)
30569699 12328
c11285dc
PE
12329 * alloc.c (make_event_array): Use XINT, not XUINT.
12330 There's no need for unsigned here.
12331
fdccd48e
PE
12332 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
12333 This follows up to the 2011-05-06 change that substituted uintptr_t
12334 for EMACS_INT. This case wasn't caught back then.
12335
37910ab2
PE
12336 Rework Fformat to avoid integer overflow issues.
12337 * editfns.c: Include <float.h> unconditionally, as it's everywhere
12338 now (part of C89). Include <verify.h>.
12339 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
12340 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
12341 (Fformat): Avoid the prepass trying to compute sizes; it was only
12342 approximate and thus did not catch overflow reliably. Instead, walk
12343 through the format just once, formatting and computing sizes as we go,
12344 checking for integer overflow at every step, and allocating a larger
12345 buffer as needed. Keep track separately whether the format is
12346 multibyte. Keep only the most-recently calculated precision, rather
12347 than them all. Record whether each argument has been converted to
12348 string. Use EMACS_INT, not int, for byte and char and arg counts.
12349 Support field widths and precisions larger than INT_MAX. Avoid
12350 sprintf's undefined behavior with conversion specifications such as %#d
12351 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
12352 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
12353 formatting out-of-range floating point numbers with int
9173deec 12354 formats. (Bug#8668)
37910ab2 12355
2e6578fb
PE
12356 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
12357
0ae6bdee
PE
12358 * data.c: Avoid integer truncation in expressions involving floats.
12359 * data.c: Include <intprops.h>.
12360 (arith_driver): When there's an integer overflow in an expression
12361 involving floating point, convert the integers to floating point
12362 so that the resulting value does not suffer from catastrophic
12363 integer truncation. For example, on a 64-bit host (* 4
12364 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
12365 Do not rely on undefined behavior after integer overflow.
12366
de883a70
PE
12367 merge count_size_as_multibyte, parse_str_to_multibyte
12368 * character.c, character.h (count_size_as_multibyte):
fd6fa53f 12369 Rename from parse_str_to_multibyte; all uses changed.
de883a70
PE
12370 Check for integer overflow.
12371 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
12372 since it's now a duplicate of the other. This is more of
12373 a character than a buffer op, so better that it's in character.c.
12374 * fns.c, print.c: Adjust to above changes.
12375
2ff916cb
PE
123762011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
12377
12378 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
12379
f1b54466
PE
123802011-05-27 Paul Eggert <eggert@cs.ucla.edu>
12381
fb1ac845
PE
12382 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
12383 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
12384 (x_clipboard_manager_save): Now static.
12385 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
12386
f1b54466
PE
12387 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
12388 (crypto_hash_function): Now static.
12389 Fix pointer signedness problems. Avoid unnecessary initializations.
12390
a9f737ee
CY
123912011-05-27 Chong Yidong <cyd@stupidchicken.com>
12392
12393 * termhooks.h (Vselection_alist): Make it terminal-local.
12394
12395 * terminal.c (create_terminal): Initialize it.
12396
12397 * xselect.c: Support for clipboard managers.
12398 (Vselection_alist): Move to termhooks.h as terminal-local var.
12399 (LOCAL_SELECTION): New macro.
12400 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
12401 (symbol_to_x_atom): Remove gratuitous arg.
12402 (x_handle_selection_request, lisp_data_to_selection_data)
12403 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
620c53a6
SM
12404 (x_own_selection, x_get_local_selection, x_convert_selection):
12405 New arg, specifying work frame. Use terminal-local Vselection_alist.
a9f737ee
CY
12406 (some_frame_on_display): Delete unused function.
12407 (Fx_own_selection_internal, Fx_get_selection_internal)
12408 (Fx_disown_selection_internal, Fx_selection_owner_p)
12409 (Fx_selection_exists_p): New optional frame arg.
12410 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
12411 (x_handle_selection_clear): Don't treat other terminals with the
12412 same keyboard specially. Use the terminal-local Vselection_alist.
12413 (x_clear_frame_selections): Use Frun_hook_with_args.
12414
12415 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
12416
12417 * xterm.h: Add support for those atoms.
12418
e067f0c1
CY
124192011-05-26 Chong Yidong <cyd@stupidchicken.com>
12420
12421 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
12422 (converted_selections, conversion_fail_tag): New global variables.
12423 (x_selection_request_lisp_error): Free the above.
12424 (x_get_local_selection): Remove unnecessary code.
12425 (x_reply_selection_request): Args changed; handle arbitrary array
620c53a6
SM
12426 of converted selections stored in converted_selections.
12427 Separate the XChangeProperty and SelectionNotify steps.
e067f0c1
CY
12428 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
12429 (x_convert_selection): New function.
12430 (x_handle_selection_event): Simplify.
12431 (x_get_foreign_selection): Don't ignore incoming requests while
12432 waiting for an answer; this will fail when we implement
12433 SAVE_TARGETS, and seems unnecessary anyway.
12434 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
12435 (Vx_sent_selection_functions): Doc fix.
12436
0f4aebc0
LL
124372011-05-26 Leo Liu <sdl.web@gmail.com>
12438
12439 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
12440
e61124cd
YM
124412011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
12442
12443 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
12444
12445 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
12446 for fringe update if it has periodic bitmap.
ac389d0c 12447 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
e61124cd
YM
12448 and fringe_bitmap_periodic_p.
12449
12450 * fringe.c (get_fringe_bitmap_data): New function.
12451 (draw_fringe_bitmap_1, update_window_fringes): Use it.
12452 (update_window_fringes): Record periodicity of fringe bitmap in glyph
12453 row. Mark glyph row for fringe update if periodicity changed.
12454
12455 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
12456 for fringe update unless it has periodic bitmap.
12457
f16d9837
KH
124582011-05-25 Kenichi Handa <handa@m17n.org>
12459
12460 * xdisp.c (get_next_display_element): Set correct it->face_id for
12461 a static composition.
12462
e1b90ef6
LL
124632011-05-24 Leo Liu <sdl.web@gmail.com>
12464
12465 * deps.mk (fns.o):
12466 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
12467
12468 * fns.c (crypto_hash_function, Fsha1): New function.
12469 (Fmd5): Use crypto_hash_function.
12470 (syms_of_fns): Add Ssha1.
12471
7400048f
PE
124722011-05-22 Paul Eggert <eggert@cs.ucla.edu>
12473
12474 * gnutls.c: Remove unused macros.
12475 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
12476 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
12477 Remove macros that are defined and never used.
12478 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
12479
abb71cf4
CY
124802011-05-22 Chong Yidong <cyd@stupidchicken.com>
12481
12482 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
12483 (Fx_get_selection_internal): Minor cleanup.
12484 (Fx_own_selection_internal): Rename arguments for consistency with
12485 select.el.
12486
6307db39
PE
124872011-05-22 Paul Eggert <eggert@cs.ucla.edu>
12488
12489 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
12490
f3d4e0a4
CY
124912011-05-22 Chong Yidong <cyd@stupidchicken.com>
12492
12493 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
12494
4d8ade89
YM
124952011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
12496
12497 * dispnew.c (scrolling_window): Don't exclude the case that the
12498 last enabled row in the desired matrix touches the bottom boundary.
12499
32078c8d
GM
125002011-05-21 Glenn Morris <rgm@gnu.org>
12501
12502 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
33cf345f
GM
12503 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
12504 and add some more files.
32078c8d 12505
7285dc67
EZ
125062011-05-20 Eli Zaretskii <eliz@gnu.org>
12507
12508 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
12509 report_file_error introduced by the change from 2011-05-07.
12510
89d1bd22
PE
125112011-05-20 Paul Eggert <eggert@cs.ucla.edu>
12512
12513 * systime.h (Time): Define only if emacs is defined.
12514 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
12515 where the include path doesn't have X11/X.h by default. See
12516 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
12517
cd394be1 125182011-05-20 Kenichi Handa <handa@m17n.org>
31bfc35c
KH
12519
12520 * composite.c (find_automatic_composition): Fix previous change.
12521
b9704ad9
GM
125222011-05-20 Glenn Morris <rgm@gnu.org>
12523
12524 * lisp.mk: New file, split from Makefile.in.
12525 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
12526 (shortlisp): Remove.
12527 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
12528
4a720484
GM
125292011-05-19 Glenn Morris <rgm@gnu.org>
12530
12531 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
12532 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
12533 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
12534 (lisp): Set the order to that of loadup.el.
12535 (shortlisp): Make it a copy of $lisp.
12536 (SOME_MACHINE_LISP): Remove.
12537 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
12538 Use just $shortlisp, not $SOME_MACHINE_LISP too.
12539
a28d4396
KH
125402011-05-18 Kenichi Handa <handa@m17n.org>
12541
12542 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
12543 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
12544 (find_automatic_composition): Mostly rewrite for efficiency.
12545
a2b1fa8e
JB
125462011-05-18 Juanma Barranquero <lekktu@gmail.com>
12547
12548 * makefile.w32-in: Update dependencies.
12549
8e1f5610
CS
125502011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
12551
12552 * menu.c: Include limits.h (fixes the MS-Windows build broken by
7d7d0045 12553 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
8e1f5610 12554
7025ee00 125552011-05-18 Paul Eggert <eggert@cs.ucla.edu>
cb93f9be 12556
cdfa6eab
PE
12557 Fix some integer overflow issues, such as string length overflow.
12558
06d6db33
PE
12559 * insdel.c (count_size_as_multibyte): Check for string overflow.
12560
2b4560a8
PE
12561 * character.c (lisp_string_width): Check for string overflow.
12562 Use EMACS_INT, not int, for string indexes and lengths; in
12563 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
12564 the resulting string length overflows an EMACS_INT; instead,
12565 report a string overflow if no precision given. When checking for
12566 precision exhaustion, use a check that cannot possibly have
12567 integer overflow. (Bug#8675)
12568 * character.h (lisp_string_width): Adjust to new signature.
12569
cb93f9be
PE
12570 * alloc.c (string_overflow): New function.
12571 (Fmake_string): Use it. This doesn't change behavior, but saves
12572 a few bytes and will simplify future changes.
12573 * character.c (string_escape_byte8): Likewise.
12574 * lisp.h (string_overflow): New decl.
12575
1a1f3366
PE
12576 Fixups, following up to the user-interface timestamp change.
12577 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
12578 for UI timestamps, instead of unsigned long.
9fbd6841
PE
12579 * msdos.c (mouse_get_pos): Likewise.
12580 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
1a1f3366
PE
12581 * w32gui.h (Time): Define by including "systime.h" rather than by
12582 declaring it ourselves. (Bug#8664)
12583
d4e3e4d3
PE
12584 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
12585 * image.c (clear_image_cache): Likewise.
12586
f6a24d19
PE
12587 * term.c (term_mouse_position): Don't assume time_t wraparound.
12588
08dc5ae6
PE
12589 Be more systematic about user-interface timestamps.
12590 Before, the code sometimes used 'Time', sometimes 'unsigned long',
620c53a6
SM
12591 and sometimes 'EMACS_UINT', to represent these timestamps.
12592 This change causes it to use 'Time' uniformly, as that's what X uses.
08dc5ae6
PE
12593 This makes the code easier to follow, and makes it easier to catch
12594 integer overflow bugs such as Bug#8664.
12595 * frame.c (Fmouse_position, Fmouse_pixel_position):
12596 Use Time, not unsigned long, for user-interface timestamps.
12597 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
12598 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
12599 * keyboard.h (last_event_timestamp): Likewise.
12600 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
12601 * menu.h (xmenu_show): Likewise.
12602 * term.c (term_mouse_position): Likewise.
12603 * termhooks.h (struct input_event.timestamp): Likewise.
12604 (struct terminal.mouse_position_hook): Likewise.
12605 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
12606 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
12607 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
12608 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
12609 what it was before.
12610 * menu.h, termhooks.h: Include "systime.h", for Time.
12611
8e55734a
PE
12612 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
12613 Don't assume that the difference between two unsigned long values
12614 can fit into an integer. At this point, we know button_down_time
12615 <= event->timestamp, so the difference must be nonnegative, so
12616 there's no need to cast the result if double-click-time is
12617 nonnegative, as it should be; check that it's nonnegative, just in
12618 case. This bug is triggered when events are more than 2**31 ms
86db42d2 12619 apart (about 25 days). (Bug#8664)
8e55734a 12620
841f1b75 12621 * xselect.c (last_event_timestamp): Remove duplicate decl.
6434756c 12622 (x_own_selection): Remove needless cast to unsigned long.
841f1b75 12623
3e26f69c
PE
12624 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
12625 that always fit in int. Use a sentinel instead of a counter, to
12626 avoid a temp and to allay GCC's concerns about possible int overflow.
d230cb74
PE
12627 * frame.h (struct frame): Use int for menu_bar_items_used
12628 instead of EMACS_INT, since it always fits in int.
3e26f69c 12629
5cc152c0
PE
12630 * menu.c (grow_menu_items): Check for int overflow.
12631
d89eb65e
PE
12632 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
12633
5235bd3e
PE
12634 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
12635 Before, the code was not consistent. These values cannot exceed
12636 2**31 - 1 so there's no need to make them unsigned.
12637 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
12638 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
12639 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
12640 as modifiers.
12641 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
12642
bc827e23
PE
12643 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
12644 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
12645 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
12646 presumably because the widths might not match.
12647
78eb494e
PE
12648 * window.c (size_window): Avoid needless test at loop start.
12649
04f2d78b
CB
126502011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
12651
12652 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
12653
d2fc7e3d 126542011-05-12 Drew Adams <drew.adams@oracle.com>
e531bdff
DA
12655
12656 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
12657
d2fc7e3d 126582011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7db47798
YM
12659
12660 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
12661 `width' to `bar_area_x' and `bar_area_width', respectively.
12662 (x_scroll_run): Take account of fringe background extension.
12663
04f2d78b
CB
12664 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
12665 Rename local vars `left' and `width' to `bar_area_x' and
7db47798
YM
12666 `bar_area_width', respectively.
12667 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
12668 background extension.
12669
79b70037
GM
126702011-05-10 Jim Meyering <meyering@redhat.com>
12671
12672 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
12673
2f142cc5
JB
126742011-05-10 Juanma Barranquero <lekktu@gmail.com>
12675
12676 * image.c (Finit_image_library): Return t for built-in image types,
12677 like pbm and xbm. (Bug#8640)
12678
57679c86
AS
126792011-05-09 Andreas Schwab <schwab@linux-m68k.org>
12680
12681 * w32menu.c (set_frame_menubar): Fix submenu allocation.
12682
888c9e86
EZ
126832011-05-07 Eli Zaretskii <eliz@gnu.org>
12684
b0512a1d
EZ
12685 * w32console.c (Fset_screen_color): Doc fix.
12686 (Fget_screen_color): New function.
12687 (syms_of_ntterm): Defsubr it.
12688
7285dc67
EZ
12689 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
12690 unlink the temporary file if Fcall_process didn't create it in the
12691 first place.
12692 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
12693 child process will be redirected to a file specified with `:file'.
888c9e86
EZ
12694 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
12695 cue to call_process_cleanup not to close that handle.
12696
4d3fcc8e
BK
126972011-05-07 Ben Key <bkey76@gmail.com>
12698
12699 * makefile.w32-in: The bootstrap-temacs rule now makes use of
12700 one of two shell specific rules, either bootstrap-temacs-CMD or
12701 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
12702 to the previous implementation of the bootstrap-temacs rule.
12703 The bootstrap-temacs-CMD rule is similar to the previous
12704 implementation of the bootstrap-temacs rule except that it
12705 makes use of the ESC_CFLAGS variable instead of the CFLAGS
12706 variable.
12707
12708 These changes, along with some changes to nt/configure.bat,
12709 nt/gmake.defs, and nt/nmake.defs, are required to extend my
12710 earlier fix to add support for --cflags and --ldflags options
12711 that include quotes so that it works whether make uses cmd or
12712 sh as the shell.
12713
b4289b64
MA
127142011-05-06 Michael Albinus <michael.albinus@gmx.de>
12715
12716 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
12717 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
12718 is a constant.
12719 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
12720 a string. Handle both cases.
12721 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
12722 (Fdbus_register_method): Use Qinvalid_function.
12723
af4c0e28
JB
127242011-05-06 Juanma Barranquero <lekktu@gmail.com>
12725
12726 * makefile.w32-in: Update dependencies.
12727 (LISP_H): Add inttypes.h and stdin.h.
12728 (PROCESS_H): Add unistd.h.
12729
c51453d9
EZ
127302011-05-06 Eli Zaretskii <eliz@gnu.org>
12731
12732 * lread.c: Include limits.h (fixes the MS-Windows build broken by
12733 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
12734
8ff0ac3c 127352011-05-06 Paul Eggert <eggert@cs.ucla.edu>
c032b5f8 12736
4c4b566b
PE
12737 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
12738
aab2b9b5
PE
12739 * term.c (vfatal): Remove stray call to va_end.
12740 It's not needed and the C Standard doesn't allow it here anyway.
12741
c378da0b
PE
12742 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
12743 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
12744
288b08c7
PE
12745 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
12746 bytes.
12747
e3601888
PE
12748 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
12749
db6c0e74
PE
12750 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
12751
dd5963ea
PE
12752 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
12753
88c9450f
PE
12754 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
12755
2f9442b8
PE
12756 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
12757
c032b5f8
PE
12758 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
12759 * charset.c (Fdefine_charset_internal): Don't initialize
12760 charset.code_space[15]. The value was garbage, on hosts with
2d38271b 12761 32-bit int (Bug#8600).
a108c10b
PE
12762
12763 * lread.c (read_integer): Be more consistent with string-to-number.
12764 Use string_to_number to do the actual conversion; this avoids
12765 rounding errors and fixes some other screwups. Without this fix,
12766 for example, #x1fffffffffffffff was misread as -2305843009213693952.
12767 (digit_to_number): Move earlier, for benefit of read_integer.
12768 Return -1 if the digit is out of range for the base, -2 if it is
48e400f0 12769 not a digit in any supported base. (Bug#8602)
a108c10b 12770
ad5f9eea
PE
12771 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
12772
aec1708a
PE
12773 * dispnew.c (scrolling_window): Return 1 if we scrolled,
12774 to match comment at start of function. This also removes a
12775 GCC warning about overflow in a 32+64-bit port.
12776
47be4ab5
PE
12777 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
12778
371cac43
PE
12779 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
12780 Reported by Stefan Monnier in
12781 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
04f2d78b
CB
12782 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
12783 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
371cac43 12784
d01a7826
PE
12785 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
12786 (EMACS_UINTPTR): Likewise, with uintptr_t.
12787
7fd47d5c
PE
12788 * lisp.h: Prefer 64-bit EMACS_INT if available.
12789 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
12790 on 32-bit hosts that have 64-bit int, so that they can access
12791 large files.
122b0c86
PE
12792 However, temporarily disable this change unless the temporary
12793 symbol WIDE_EMACS_INT is defined.
7fd47d5c 12794
8727937b
PE
12795 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
12796
8ac068ac
PE
12797 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
12798 This removes an assumption that EMACS_INT and long are the same
12799 width as pointers. The assumption is true for Emacs porting targets
12800 now, but we want to make other targets possible.
12801 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
12802 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
12803 In the rest of the code, change types of integers that hold casted
12804 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
12805 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
12806 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
12807 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
12808 No need to cast type when ORing.
12809 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
12810 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
12811 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
12812 assume EMACS_INT is the same width as char *.
12813 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
12814 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
12815 Remove no-longer-needed casts.
12816 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
12817 (xg_tool_bar_help_callback, xg_make_tool_item):
12818 Use EMACS_INTPTR to hold an integer
12819 that will be cast to void *; this can avoid a GCC warning
12820 if EMACS_INT is not the same width as void *.
12821 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
12822 * xdisp.c (display_echo_area_1, resize_mini_window_1):
12823 (current_message_1, set_message_1):
12824 Use a local to convert to proper width without a cast.
12825 * xmenu.c (dialog_selection_callback): Likewise.
12826
ede49d71
PE
12827 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
12828 Also, don't assume VALBITS / RAND_BITS is less than 5,
12829 and don't rely on undefined behavior when shifting a 1 left into
12830 the sign bit.
12831 * lisp.h (get_random): Change signature to match.
12832
2f30ecd0
PE
12833 * lread.c (hash_string): Use size_t, not int, for hash computation.
12834 Normally we prefer signed values; but hashing is special, because
12835 it's better to use unsigned division on hash table sizes so that
12836 the remainder is nonnegative. Also, size_t is the natural width
12837 for hashing into memory. The previous code used 'int', which doesn't
12838 retain enough info to hash well into very large tables.
12839 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
12840
2a866e7b
PE
12841 * dbusbind.c: Don't possibly lose pointer info when converting.
12842 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
12843 Use XPNTR rather than XHASH, so that the high-order bits of
12844 the pointer aren't lost when converting through void *.
12845
51639eac
PE
12846 * eval.c (Fautoload): Don't double-shift a pointer.
12847
92394119
PE
12848 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
12849
dbdb9a7c
JB
128502011-05-06 Juanma Barranquero <lekktu@gmail.com>
12851
12852 * gnutls.c (DEF_GNUTLS_FN):
12853 * image.c (DEF_IMGLIB_FN): Make function pointers static.
12854
db7a0b4f
AS
128552011-05-05 Andreas Schwab <schwab@linux-m68k.org>
12856
12857 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
12858 marker. (Bug#8610)
12859
cd394be1 128602011-05-05 Eli Zaretskii <eliz@gnu.org>
fab624aa
EZ
12861
12862 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
12863 New version that can reserve upto 2GB of heap space.
12864
f7ff1b0f 128652011-05-05 Chong Yidong <cyd@stupidchicken.com>
45cb8994
CY
12866
12867 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
12868
639c109b
TZ
128692011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
12870
12871 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
12872 `gnutls_certificate_set_x509_key_file'.
12873
d2127135
JB
128742011-05-05 Juanma Barranquero <lekktu@gmail.com>
12875
12876 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
12877 Update dependencies.
12878
e968f4f3
JB
128792011-05-04 Juanma Barranquero <lekktu@gmail.com>
12880
12881 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
12882 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
12883 Remove unused parameter `fildes'.
12884 * process.c (read_process_output, send_process): Don't pass it.
12885
84d358f0
JB
128862011-05-04 Juanma Barranquero <lekktu@gmail.com>
12887
12888 Fix previous change: the library cache is defined in w32.c.
12889 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
12890 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
12891
0898ca10
JB
128922011-05-04 Juanma Barranquero <lekktu@gmail.com>
12893
12894 Implement dynamic loading of GnuTLS on Windows.
12895
12896 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
12897 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
12898 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
12899 Declare.
12900
12901 * gnutls.c (Qgnutls_dll): Define.
12902 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
12903 (gnutls_*): Declare function pointers.
12904 (init_gnutls_functions): New function to initialize function pointers.
12905 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
12906 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
12907 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
12908 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
12909 (emacs_gnutls_write, emacs_gnutls_read)
12910 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
12911 (Fgnutls_available_p): New function.
12912 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
12913 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
12914 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
12915
12916 * image.c: Include w32.h.
12917 (Vimage_type_cache): Delete.
12918 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
12919 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
12920 (w32_delayed_load): Move to w32.c.
12921
12922 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
12923
12924 * w32.c (QCloaded_from, Vlibrary_cache): Define.
12925 (w32_delayed_load): Move from image.c. When loading a library, record
12926 its filename in the :loaded-from property of the library id.
12927 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
12928 Initialize and staticpro them.
12929 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
12930
12931 * process.c: Include lisp.h before w32.h, not after.
12932 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
12933 instead of gnutls_record_check_pending.
12934
12935 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
12936
ff4de4aa
TZ
129372011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
12938
12939 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
12940 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
12941 as passed in.
12942
abe95abb
JD
129432011-05-03 Jan Djärv <jan.h.d@swipnet.se>
12944
12945 * xterm.c (x_set_frame_alpha): Do not set property on anything
12946 else than FRAME_X_OUTER_WINDOW (Bug#8608).
12947
e16e55d4
JB
129482011-05-02 Juanma Barranquero <lekktu@gmail.com>
12949
12950 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
12951
bafcf6a5
JB
129522011-05-02 Juanma Barranquero <lekktu@gmail.com>
12953
12954 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
12955 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
12956 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
12957 (gnutls_global_initialized, Qgnutls_bootprop_priority)
12958 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
12959 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
12960 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
12961 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
12962 (Qgnutls_bootprop_callbacks_verify): Make static.
12963
e7a6747f
AS
129642011-05-01 Andreas Schwab <schwab@linux-m68k.org>
12965
19ed11ba
AS
12966 * callproc.c: Indentation fixup.
12967
e7a6747f 12968 * sysdep.c (wait_for_termination_1): Make static.
04f2d78b
CB
12969 (wait_for_termination, interruptible_wait_for_termination):
12970 Move after wait_for_termination_1.
e7a6747f 12971
1ef14cb4
LMI
129722011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
12973
12974 * sysdep.c (interruptible_wait_for_termination): New function
12975 which is like wait_for_termination, but allows keyboard
12976 interruptions.
12977
12978 * callproc.c (Fcall_process): Add (:file "file") as an option for
12979 the STDOUT buffer.
12980 (Fcall_process_region): Ditto.
12981
330d880c
EZ
129822011-04-30 Eli Zaretskii <eliz@gnu.org>
12983
8db90b73
EZ
12984 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
12985 rather than `XVECTOR (FOO)->size'.
12986
330d880c
EZ
12987 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
12988 inttypes.h, as a gnulib replacement is used if it not available in
12989 system headers.
12990
15cbd324
EZ
129912011-04-21 Eli Zaretskii <eliz@gnu.org>
12992
12993 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
12994 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
12995 of MOST_POSITIVE_FIXNUM. (Bug#8528)
12996
12997 * coding.c (coding_alloc_by_realloc): Error out if destination
12998 will grow beyond MOST_POSITIVE_FIXNUM.
12999 (decode_coding_emacs_mule): Abort if there isn't enough place in
13000 charbuf for the composition carryover bytes. Reserve an extra
13001 space for up to 2 characters produced in a loop.
13002 (decode_coding_iso_2022): Abort if there isn't enough place in
13003 charbuf for the composition carryover bytes.
13004
130052011-04-21 Eli Zaretskii <eliz@gnu.org>
afda1437 13006
ae940cca
EZ
13007 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
13008 aborting when %lld or %lll format is passed.
13009 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
13010 %llo or %llx format is passed. (Bug#8545)
13011
03ab8921
EZ
13012 * window.c (window_scroll_line_based): Use a marker instead of
13013 simple variables to record original value of point. (Bug#7952)
13014
afda1437
EZ
13015 * doprnt.c (doprnt): Fix the case where a multibyte sequence
13016 produced by %s or %c overflows available buffer space. (Bug#8545)
13017
f76dee0c
PE
130182011-04-28 Paul Eggert <eggert@cs.ucla.edu>
13019
13020 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
283cdbef 13021 (SIZE_MAX): Move defn after all includes, as they might #define it.
f76dee0c 13022
fdc5744d
JB
130232011-04-28 Juanma Barranquero <lekktu@gmail.com>
13024
13025 * w32.c (init_environment): Warn about defaulting HOME to C:\.
13026
638f053a
JB
130272011-04-28 Juanma Barranquero <lekktu@gmail.com>
13028
13029 * keyboard.c (Qdelayed_warnings_hook): Define.
13030 (command_loop_1): Run `delayed-warnings-hook'
13031 if Vdelayed_warnings_list is non-nil.
13032 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
13033 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
13034
d178f871
EZ
130352011-04-28 Eli Zaretskii <eliz@gnu.org>
13036
13037 * doprnt.c (doprnt): Don't return value smaller than the buffer
13038 size if the message was truncated. (Bug#8545).
13039
b124fd93
JB
130402011-04-28 Juanma Barranquero <lekktu@gmail.com>
13041
13042 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
13043 (Fx_window_property): #if-0 the whole functions, not just the bodies.
13044
e810457d
PE
130452011-04-27 Paul Eggert <eggert@cs.ucla.edu>
13046
13047 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
13048
ea51cceb
JB
130492011-04-27 Juanma Barranquero <lekktu@gmail.com>
13050
13051 * makefile.w32-in: Update dependencies.
13052
94dcfacf
EZ
130532011-04-27 Eli Zaretskii <eliz@gnu.org>
13054
13055 Improve `doprnt' and its usage. (Bug#8545)
13056 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
13057 `format_end'. Remove support for %l as a conversion specifier.
13058 Don't use xrealloc. Improve diagnostics when the %l size modifier
13059 is used. Update the commentary.
13060
13061 * eval.c (verror): Simplify calculation of size_t.
13062
13063 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
13064 messages.
13065
f61f41d7
PE
130662011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
13067
13068 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
13069 change.
13070
96fb4434
PE
130712011-04-27 Paul Eggert <eggert@cs.ucla.edu>
13072
13073 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
13074 This makes this file independent of the recent pseudovector change.
13075
671875da 130762011-04-26 Paul Eggert <eggert@cs.ucla.edu>
eab3844f 13077
69e9b5a3
PE
13078 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
13079
b5f869a7 13080 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
7754e151 13081 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
8d4c3955 13082 Remove unused local.
c8926152 13083 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
080e5a8d 13084
841a1577 13085 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
04f2d78b
CB
13086 GCC 4.6.0 optimizes based on type-based alias analysis.
13087 For example, if b is of type struct buffer * and v of type struct
eab3844f
PE
13088 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
13089 != &v->size, and therefore "v->size = 1; b->size = 2; return
13090 v->size;" must therefore return 1. This assumption is incorrect
13091 for Emacs, since it type-puns struct Lisp_Vector * with many other
13092 types. To fix this problem, this patch adds a new type struct
f904488f 13093 vectorlike_header that documents the constraints on layout of vectors
eab3844f
PE
13094 and pseudovectors, and helps optimizing compilers not get fooled
13095 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
13096 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
f904488f
PE
13097 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
13098 the size member.
eab3844f
PE
13099 (XSETPVECTYPE): Rewrite in terms of new macro.
13100 (XSETPVECTYPESIZE): New macro, specifying both type and size.
13101 This is a bit clearer, and further avoids the possibility of
13102 undesirable aliasing.
13103 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
f904488f 13104 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
eab3844f
PE
13105 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
13106 since Lisp_Subr is a special case (no "next" field).
04f2d78b
CB
13107 (ASIZE): Now uses header.size rather than size.
13108 All previous uses of XVECTOR (foo)->size replaced to use this macro,
f904488f
PE
13109 to avoid the hassle of writing XVECTOR (foo)->header.size.
13110 (struct vectorlike_header): New type.
eab3844f
PE
13111 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
13112 object, to help avoid aliasing.
13113 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
13114 (SUBRP): Likewise, since Lisp_Subr is a special case.
13115 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
13116 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
13117 (struct Lisp_Hash_Table): Combine first two members into a single
f904488f 13118 struct vectorlike_header member. All uses of "size" and "next" members
eab3844f
PE
13119 changed to be "header.size" and "header.next".
13120 * buffer.h (struct buffer): Likewise.
13121 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
13122 * frame.h (struct frame): Likewise.
13123 * process.h (struct Lisp_Process): Likewise.
13124 * termhooks.h (struct terminal): Likewise.
13125 * window.c (struct save_window_data, struct saved_window): Likewise.
13126 * window.h (struct window): Likewise.
13127 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
13128 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
13129 * buffer.c (init_buffer_once): Likewise.
13130 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
13131 special case.
13132 * process.c (Fformat_network_address): Use local var for size,
13133 for brevity.
13134
0df1eac5
PE
13135 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
13136
847ab9d1 13137 Make the Lisp reader and string-to-float more consistent (Bug#8525)
452f4150
PE
13138 * data.c (atof): Remove decl; no longer used or needed.
13139 (digit_to_number): Move to lread.c.
13140 (Fstring_to_number): Use new string_to_number function, to be
13141 consistent with how the Lisp reader treats infinities and NaNs.
13142 Do not assume that floating-point numbers represent EMACS_INT
13143 without losing information; this is not true on most 64-bit hosts.
13144 Avoid double-rounding errors, by insisting on integers when
13145 parsing non-base-10 numbers, as the documentation specifies.
13146 * lisp.h (string_to_number): New decl, replacing ...
13147 (isfloat_string): Remove.
bc0a5c13 13148 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
d78050d6 13149 (read1): Do not accept +. and -. as integers; this
452f4150
PE
13150 appears to have been a coding error. Similarly, do not accept
13151 strings like +-1e0 as floating point numbers. Do not report
13152 overflow for integer overflows unless the base is not 10 which
13153 means we have no simple and reliable way to continue.
13154 Break out the floating-point parsing into a new
13155 function string_to_number, so that Fstring_to_number parses
13156 floating point numbers consistently with the Lisp reader.
04f2d78b 13157 (digit_to_number): Move here from data.c. Make it static inline.
452f4150
PE
13158 (E_CHAR, EXP_INT): Remove, replacing with ...
13159 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
13160 (string_to_number): New function, replacing isfloat_string.
13161 This function checks for valid syntax and produces the resulting
13162 Lisp float number too. Rework it so that string-to-number
bc0a5c13 13163 no longer mishandles examples like "1.0e+". Use strtoumax,
d78050d6
PE
13164 so that overflow for non-base-10 numbers is reported only when
13165 there's no portable and simple way to convert to floating point.
452f4150 13166
67769ffc
PE
13167 * textprop.c (set_text_properties_1): Rewrite for clarity,
13168 and to avoid GCC warning about integer overflow.
13169
c20db43f
PE
13170 * intervals.h (struct interval): Use EMACS_INT for members
13171 where EMACS_UINT might cause problems. See
13172 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
13173 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
13174 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
13175 All uses changed.
37aa2f85
PE
13176 (offset_intervals): Tell GCC not to worry about length overflow
13177 when negating a negative length.
c20db43f 13178
2538aa2f
PE
13179 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
13180 (overrun_check_free): Likewise.
13181
f2d3008d
PE
13182 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
13183 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
13184 word size.
13185
ec8df744
PE
13186 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
13187 (gnutls_make_error): Rename local to avoid shadowing.
13188 (gnutls_emacs_global_deinit): ifdef out; not used.
13189 (Fgnutls_boot): Use const for pointer to readonly storage.
13190 Comment out unused local. Fix pointer signedness problems.
13191
640ee02d
PE
13192 * lread.c (openp): Don't stuff size_t into an 'int'.
13193 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
13194 about possible signed overflow.
13195
6048fb2a
PE
13196 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
13197 (GDK_KEY_g): Don't define if already defined.
13198 (xg_prepare_tooltip): Avoid pointer signedness problem.
13199 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
13200
fa3c87e1
PE
13201 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
13202 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
13203
2172544b
PE
13204 * xfns.c (Fx_window_property): Simplify a bit,
13205 to make a bit faster and to avoid GCC 4.6.0 warning.
13206 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
13207
9b821a21
PE
13208 * fns.c (internal_equal): Don't assume size_t fits in int.
13209
3c616cfa
PE
13210 * alloc.c (compact_small_strings): Tighten assertion a little.
13211
c2982e87
PE
13212 Replace pEd with more-general pI, and fix some printf arg casts.
13213 * lisp.h (pI): New macro, generalizing old pEd macro to other
13214 conversion specifiers. For example, use "...%"pI"d..." rather
13215 than "...%"pEd"...".
13216 (pEd): Remove. All uses replaced with similar uses of pI.
61bdb816 13217 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
c2982e87
PE
13218 * alloc.c (check_pure_size): Don't overflow by converting size to int.
13219 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
13220 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
13221 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
13222 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
13223 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
13224 64-bit hosts.
13225 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
13226 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
13227 * print.c (safe_debug_print, print_object): Likewise.
13228 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
13229 to int.
6f04d126
PE
13230 Use pI instead of if-then-else-abort. Use %p to avoid casts,
13231 avoiding the 0 flag, which is not portable.
c2982e87
PE
13232 * process.c (Fmake_network_process): Use pI to avoid cast.
13233 * region-cache.c (pp_cache): Likewise.
13234 * xdisp.c (decode_mode_spec): Likewise.
13235 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
13236 behavior on 64-bit hosts with printf arg.
6f04d126 13237 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
c2982e87
PE
13238 (x_stop_queuing_selection_requests): Likewise.
13239 (x_get_window_property): Don't truncate byte count to an 'int'
13240 when tracing.
0b432f21 13241
5e073ec7
PE
13242 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
13243 here, since it parses constructs like leading '-' and spaces,
13244 which are not wanted; and it overflows with large numbers.
13245 Instead, simply match F[0-9]+, which is what is wanted anyway.
13246
36372bf9
PE
13247 * alloc.c: Remove unportable assumptions about struct layout.
13248 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
13249 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
13250 (allocate_vectorlike, make_pure_vector): Use the new macros,
13251 plus offsetof, to remove unportable assumptions about struct layout.
13252 These assumptions hold on all porting targets that I know of, but
13253 they are not guaranteed, they're easy to remove, and removing them
13254 makes further changes easier.
13255
0b432f21
PE
13256 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
13257 This doesn't fix a bug but makes the code clearer.
bfd1c781
PE
13258 (string_overrun_cookie): Now const. Use initializers that
13259 don't formally overflow signed char, to avoid warnings.
000098c1
PE
13260 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
13261 can cause Emacs to crash when string overrun checking is enabled.
c7bda33c
PE
13262 (allocate_buffer): Don't assume sizeof (struct buffer) is a
13263 multiple of sizeof (EMACS_INT); it need not be, if
13264 alignof(EMACS_INT) < sizeof (EMACS_INT).
d0f4e1f5 13265 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
0b432f21 13266
895009e1
JB
132672011-04-26 Juanma Barranquero <lekktu@gmail.com>
13268
13269 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
13270
6a7a1b0b
TZ
132712011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
13272
13273 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
b5f869a7 13274 supposed to be handshaking. (Bug#8556)
6a7a1b0b
TZ
13275 Reported by Paul Eggert <eggert@cs.ucla.edu>.
13276
841a1577 132772011-04-26 Daniel Colascione <dan.colascione@gmail.com>
0438ce91
DC
13278
13279 * lisp.h (Qdebug): List symbol.
895009e1 13280 * eval.c (Qdebug): Restore global linkage.
0438ce91
DC
13281 * keyboard.c (debug-on-event): New variable.
13282 (handle_user_signal): Break into debugger when debug-on-event
13283 matches the current signal symbol.
13284
f2d3ba6f
DN
132852011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
13286
13287 * alloc.c (check_sblock, check_string_bytes)
13288 (check_string_free_list): Convert to standard C.
13289
42ce4c63
TZ
132902011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
13291
13292 * w32.c (emacs_gnutls_push): Fix typo.
13293
825cd63c
EZ
132942011-04-25 Eli Zaretskii <eliz@gnu.org>
13295
fb11d64d
EZ
13296 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
13297 "cast to pointer from integer of different size".
13298
825cd63c
EZ
13299 Improve doprnt and its use in verror. (Bug#8545)
13300 * doprnt.c (doprnt): Document the set of format control sequences
13301 supported by the function. Use SAFE_ALLOCA instead of always
13302 using `alloca'.
13303
13304 * eval.c (verror): Don't limit the buffer size at size_max-1, that
13305 is one byte too soon. Don't use xrealloc; instead xfree and
13306 xmalloc anew.
13307
e061a11b
TZ
133082011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
13309
13310 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
13311 callbacks stage.
13312
13313 * gnutls.c: Renamed global_initialized to
13314 gnutls_global_initialized. Added internals for the
13315 :verify-hostname-error, :verify-error, and :verify-flags
13316 parameters of `gnutls-boot' and documented those parameters in the
13317 docstring. Start callback support.
9173deec
JB
13318 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
13319 unless a fatal error occurred. Call gnutls_alert_send_appropriate
13320 on error. Return error code.
e061a11b
TZ
13321 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
13322 (emacs_gnutls_read): Likewise.
13323 (Fgnutls_boot): Return handshake error code.
13324 (emacs_gnutls_handle_error): New function.
13325 (wsaerror_to_errno): Likewise.
13326
13327 * w32.h (emacs_gnutls_pull): Add prototype.
13328 (emacs_gnutls_push): Likewise.
13329
13330 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
13331 (emacs_gnutls_push): Likewise.
13332
133332011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
13334
13335 * process.c (wait_reading_process_output): Check if GnuTLS
13336 buffered some data internally if no FDs are set for TLS
13337 connections.
13338
13339 * makefile.w32-in (OBJ2): Add gnutls.$(O).
13340 (LIBS): Link to USER_LIBS.
13341 ($(BLD)/gnutls.$(0)): New target.
13342
fa6996bc
EZ
133432011-04-24 Eli Zaretskii <eliz@gnu.org>
13344
eb35682e
EZ
13345 * xdisp.c (handle_single_display_spec): Rename the
13346 display_replaced_before_p argument into display_replaced_p, to
13347 make it consistent with the commentary. Fix typos in the
13348 commentary.
13349
e2ad650c
EZ
13350 * textprop.c (syms_of_textprop): Remove dead code.
13351 (copy_text_properties): Delete obsolete commentary about an
13352 interface that was deleted long ago. Fix typos in the description
13353 of arguments.
13354
1b2de274
EZ
13355 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
13356 to changes in oldXMenu/XMenu.h from 2011-04-16.
13357 <menu_help_message, prev_menu_help_message>: Constify.
13358 (IT_menu_make_room): menu->help_text is now `const char **';
13359 adjust.
13360
13361 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
13362 to changes in oldXMenu/XMenu.h from 2011-04-16.
13363 (struct XMenu): Declare `help_text' `const char **'.
13364
13365 * xfaces.c <Qunspecified>: Make extern again.
13366
13367 * syntax.c: Include sys/types.h before including regex.h, as
75f1671a 13368 required by POSIX.
1b2de274 13369
762b15be
EZ
13370 * doc.c (get_doc_string): Improve the format passed to `error'.
13371
13372 * doprnt.c (doprnt): Improve commentary.
13373
13374 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
13375
13376 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
13377 them with etags.
13378
f1052e5d
EZ
13379 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
13380 changes in globals.h immediately force recompilation.
762b15be
EZ
13381 (TAGS): Depend on $(CURDIR)/m/intel386.h and
13382 $(CURDIR)/s/ms-w32.h.
13383 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
f1052e5d 13384
fa6996bc
EZ
13385 * character.c (Fchar_direction): Function deleted.
13386 (syms_of_character): Don't defsubr it.
13387 <char-direction-table>: Deleted.
13388
e6c3da20
EZ
133892011-04-23 Eli Zaretskii <eliz@gnu.org>
13390
13391 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
13392 * doprnt.c: Include limits.h.
13393 (SIZE_MAX): New macro.
04f2d78b
CB
13394 (doprnt): Return a size_t value. 2nd arg is now size_t.
13395 Many local variables are now size_t instead of int or unsigned.
e6c3da20
EZ
13396 Improve overflow protection. Support `l' modifier for integer
13397 conversions. Support %l conversion. Don't assume an EMACS_INT
13398 argument for integer conversions and for %c.
13399
13400 * lisp.h (doprnt): Restore prototype.
13401
13402 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
13403 $(SRC)/character.h.
13404
13405 * Makefile.in (base_obj): Add back doprnt.o.
13406
13407 * deps.mk (doprnt.o): Add back prerequisites.
13408 (callint.o): Depend on character.h.
13409
13410 * eval.c (internal_lisp_condition_case): Include the handler
13411 representation in the error message.
13412 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
13413 when breaking from the loop.
13414
13415 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
13416
13417 * callint.c (Fcall_interactively): When displaying error message
13418 about invalid control letter, pass the character's codepoint, not
13419 a pointer to its multibyte form. Improve display of the character
13420 in octal and display also its hex code.
13421
13422 * character.c (char_string): Use %x to display the (unsigned)
13423 codepoint of an invalid character, to avoid displaying a bogus
13424 negative value.
13425
13426 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
13427 `error', not SYMBOL_NAME itself.
13428
13429 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
13430 character arguments to `error'.
13431
13432 * charset.c (check_iso_charset_parameter): Fix incorrect argument
13433 to `error' in error message about FINAL_CHAR argument. Make sure
13434 FINAL_CHAR is a character, and use %c when it is passed as
13435 argument to `error'.
13436
4ffd0d6b 134372011-04-23 Eli Zaretskii <eliz@gnu.org>
97a93095
EZ
13438
13439 * s/ms-w32.h (localtime): Redirect to sys_localtime.
13440
13441 * w32.c: Include <time.h>.
13442 (sys_localtime): New function.
13443
4ffd0d6b 134442011-04-23 Chong Yidong <cyd@stupidchicken.com>
c17819f4
CY
13445
13446 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
13447
4ffd0d6b 13448 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
aac0c6e3 13449
4ffd0d6b 134502011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
aac0c6e3 13451
4ffd0d6b
GM
13452 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
13453 zombies (Bug#8467).
aac0c6e3 13454
04c56954
EZ
134552011-04-19 Eli Zaretskii <eliz@gnu.org>
13456
13457 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
13458 gl_state.e_property when gl_state.object is Qt.
13459
13460 * insdel.c (make_gap_larger): Remove limitation of buffer size
13461 to <= INT_MAX.
13462
16a43933
CY
134632011-04-18 Chong Yidong <cyd@stupidchicken.com>
13464
13465 * xdisp.c (lookup_glyphless_char_display)
13466 (produce_glyphless_glyph): Handle cons cell entry in
13467 glyphless-char-display.
13468 (Vglyphless_char_display): Document it.
13469
13470 * term.c (produce_glyphless_glyph): Handle cons cell entry in
13471 glyphless-char-display.
13472
4581706e
CY
134732011-04-17 Chong Yidong <cyd@stupidchicken.com>
13474
13475 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
13476
13477 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
13478
13479 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
13480 definition for no-X builds.
13481
4887c6e2 134822011-04-16 Paul Eggert <eggert@cs.ucla.edu>
764430a3 13483
fd35b6f9
PE
13484 Static checks with GCC 4.6.0 and non-default toolkits.
13485
5c1ccb01
PE
13486 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
13487
006c5daa
PE
13488 * process.c (keyboard_bit_set): Define only if SIGIO.
13489 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
13490 (send_process): Repair possible setjmp clobbering.
13491
efc736d3
PE
13492 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
13493
4e2fe2e6
PE
13494 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
13495
f97334a2
PE
13496 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
13497
4e75f29d
PE
13498 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
13499 Define only if needed.
13500
90efadd1
PE
13501 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
13502 by pacifying GCC about it. Maybe it's time to retire it?
875975e9 13503 * xfaces.c (USG, __TIMEVAL__): Likewise.
90efadd1 13504
3c647824
PE
13505 * dispextern.h (struct redisplay_interface): Rename param
13506 to avoid shadowing.
e264f262 13507 * termhooks.h (struct terminal): Likewise.
761383f4 13508 * xterm.c (xembed_send_message): Likewise.
3c647824 13509
b58c5c4a
PE
13510 * insdel.c (make_gap_smaller): Define only if
13511 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
13512
cad59032
PE
13513 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
13514 it.
13515
c339dc2e
PE
13516 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
13517 so that we aren't warned about unused symbols.
13518
91a3e27b
PE
13519 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
13520
399c71d3 13521 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
7a3fb125 13522
8ffc96f5
PE
13523 * xfns.c (x_real_positions): Mark locals as initialized.
13524
eef9bc79
PE
13525 * xmenu.c (xmenu_show): Don't use uninitialized vars.
13526
098db9dd
PE
13527 * xterm.c: Fix problems found by static analysis with other toolkits.
13528 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
dda3aedd
PE
13529 (x_dispatch_event): Declare static if USE_GTK, and
13530 define if USE_GTK || USE_X_TOOLKIT.
098db9dd 13531 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
dda3aedd 13532 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
841a1577
JB
13533 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
13534 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
098db9dd 13535
eb18f6cc
PE
13536 * xmenu.c (menu_help_callback): Pointer type fixes.
13537 Use const pointers when pointing at readonly data. Avoid pointer
13538 signedness clashes.
13539 (FALSE): Remove unused macro.
13540 (update_frame_menubar): Remove unused decl.
13541
1fe72bf8
PE
13542 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
13543
60d9e1db
PE
13544 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
13545 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
13546 (single_menu_item): Rename local to avoid shadowing.
13547
39261c26
PE
13548 * keyboard.c (make_lispy_event): Remove unused local var.
13549
018c5e19
PE
13550 * frame.c, frame.h (x_get_resource_string): Bring this back, but
13551 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
13552
63d2b86e
PE
13553 * bitmaps: Change bitmaps from unsigned char back to the X11
13554 compatible char. Avoid the old compiler warnings about
13555 out-of-range initializers by using, for example, '\xab' rather
13556 than 0xab.
13557
aefd87e1
PE
13558 * xgselect.c (xgselect_initialize): Check vs interface
13559 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
13560
bf501fb9
PE
13561 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
13562
e9829fdf
PE
13563 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
13564 to read-only memory.
13565
1086c095
PE
13566 * fns.c (vector): Remove; this old hack is no longer needed.
13567
2baccd04 13568 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
401f10cb 13569 Remove unused var.
dde42981 13570 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
2baccd04 13571
72391843 13572 * xrdb.c (x_load_resources): Omit unused local.
3565b346 13573
436c16df 13574 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
8a94ea33 13575 (x_window): Rename locals to avoid shadowing.
dc5ddd85 13576 (USG): Use the kludged USG macro, to pacify gcc.
436c16df 13577
92bb796d 13578 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
bbbef9e1 13579 (x_term_init): Remove local to avoid shadowing.
92bb796d 13580
764430a3 13581 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
4887c6e2
PE
13582
13583 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
13584 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
13585
d1dfb56c
EZ
135862011-04-16 Eli Zaretskii <eliz@gnu.org>
13587
c4354cb4
EZ
13588 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
13589
d1dfb56c
EZ
13590 Fix regex.c, syntax.c and friends for buffers > 2GB.
13591 * syntax.h (struct gl_state_s): Declare character position members
13592 EMACS_INT.
13593
13594 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
13595
04f2d78b
CB
13596 * textprop.c (verify_interval_modification, interval_of):
13597 Declare arguments EMACS_INT.
d1dfb56c
EZ
13598
13599 * intervals.c (adjust_intervals_for_insertion): Declare arguments
13600 EMACS_INT.
13601
13602 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
13603
13604 * indent.c (Fvertical_motion): Local variable it_start is now
13605 EMACS_INT.
13606
13607 * regex.c (re_match, re_match_2, re_match_2_internal)
13608 (bcmp_translate, regcomp, regexec, print_double_string)
13609 (group_in_compile_stack, re_search, re_search_2, regex_compile)
13610 (re_compile_pattern, re_exec): Declare arguments and local
13611 variables `size_t' and `ssize_t' and return values `regoff_t', as
13612 appropriate.
13613 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
13614 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
13615 <compile_stack_type>: `size' and `avail' are now `size_t'.
13616
13617 * regex.h <regoff_t>: Use ssize_t, not int.
13618 (re_search, re_search_2, re_match, re_match_2): Arguments that
13619 specify buffer/string position and length are now ssize_t and
13620 size_t. Return type is regoff_t.
13621
613052cd
BK
136222011-04-16 Ben Key <bkey76@gmail.com>
13623
13624 * nsfont.m: Fixed bugs in ns_get_family and
13625 ns_descriptor_to_entity that were caused by using free to
13626 deallocate memory blocks that were allocated by xmalloc (via
13627 xstrdup). This caused Emacs to crash when compiled with
13628 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
13629 --enable-checking=xmallocoverrun). xfree is now used to
13630 deallocate these memory blocks.
13631
4170f62f 136322011-04-15 Paul Eggert <eggert@cs.ucla.edu>
3e047f51 13633
71b41406
PE
13634 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
13635
9587a89d
PE
13636 emacs_write: Accept and return EMACS_INT for sizes.
13637 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
13638 et seq.
13639 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
13640 Accept and return EMACS_INT.
13641 (emacs_gnutls_write): Return the number of bytes written on
13642 partial writes.
13643 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
273a5f82
PE
13644 (emacs_read, emacs_write): Remove check for negative size, as the
13645 Emacs source code has been audited now.
9587a89d
PE
13646 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
13647 (emacs_read, emacs_write): Use it.
273a5f82
PE
13648 * process.c (send_process): Adjust to the new signatures of
13649 emacs_write and emacs_gnutls_write. Do not attempt to store
13650 a byte offset into an 'int'; it might overflow.
9587a89d 13651 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
273a5f82 13652
3e047f51
PE
13653 * sound.c: Don't assume sizes fit in 'int'.
13654 (struct sound_device.period_size, alsa_period_size):
9c3c56a7 13655 Return EMACS_INT, not int.
3e047f51 13656 (struct sound_device.write, vox_write, alsa_write):
9c3c56a7
PE
13657 Accept EMACS_INT, not int.
13658 (wav_play, au_play): Use EMACS_INT to store sizes and to
3e047f51
PE
13659 record read return values.
13660
cc39a9db
BK
136612011-04-15 Ben Key <bkey76@gmail.com>
13662
c9d0ec6d
JB
13663 * keyboard.c (Qundefined): Don't declare static since it is used
13664 in nsfns.m.
13665 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
13666 static since they are used in nsfont.m.
cc39a9db 13667
6c60eb9f
SM
136682011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
13669
13670 * process.c (Qprocessp): Don't declare static.
13671 * lisp.h (Qprocessp): Declare again.
13672
7990b61a
JB
136732011-04-15 Juanma Barranquero <lekktu@gmail.com>
13674
13675 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
13676
5d4cb038
PE
136772011-04-14 Paul Eggert <eggert@cs.ucla.edu>
13678
8bd7b830 13679 Improve C-level modularity by making more things 'static'.
cd64ea1d 13680
e3b27b31
PE
13681 Don't publish debugger-only interfaces to other modules.
13682 * lisp.h (safe_debug_print, debug_output_compilation_hack):
13683 (verify_bytepos, count_markers): Move decls to the only modules
13684 that need them.
13685 * region-cache.h (pp_cache): Likewise.
13686 * window.h (check_all_windows): Likewise.
13687 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
13688
5d4cb038
PE
13689 * sysdep.c (croak): Now static, if
13690 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
13691 * syssignal.h (croak): Declare only if not static.
69003fd8
PE
13692
13693 * alloc.c (refill_memory_reserve): Now static if
13694 !defined REL_ALLOC || defined SYSTEM_MALLOC.
13695 * lisp.h (refill_memory_reserve): Declare only if not static.
93ea6e8f 13696
e87b6180
PE
13697 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
13698 Define only if USE_LUCID.
13699
ac64929e
PE
13700 * xrdb.c (x_customization_string, x_rm_string): Now static.
13701
6f37259d
PE
13702 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
13703 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
13704
1683e3ab
PE
13705 * xdisp.c (draw_row_with_mouse_face): Now static.
13706 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
13707
de9c2632
PE
13708 * window.h (check_all_windows): Mark externally visible.
13709
2b96acb7
PE
13710 * window.c (window_deletion_count): Now static.
13711
13712 * undo.c: Make symbols static if they're not exported.
13713 (last_undo_buffer, last_boundary_position, pending_boundary):
13714 Now static.
13715
50436f33
PE
13716 * textprop.c (interval_insert_behind_hooks): Now static.
13717 (interval_insert_in_front_hooks): Likewise.
13718
64520e5c
PE
13719 * term.c: Make symbols static if they're not exported.
13720 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
13721 (max_frame_lines, tty_set_terminal_modes):
13722 (tty_reset_terminal_modes, tty_turn_off_highlight):
13723 (get_tty_terminal): Now static.
13724 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
13725 * termhooks.h (term_mouse_moveto): Do not declare if
8bd7b830 13726 HAVE_WINDOW_SYSTEM.
64520e5c
PE
13727 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
13728 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
13729
1fa53021
PE
13730 * sysdep.c: Make symbols static if they're not exported.
13731 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
13732 Now static.
13733 (sigprocmask_set, full_mask): Remove; unused.
13734 (wait_debugging): Mark as visible.
13735 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
13736 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
13737
d4b43b22
PE
13738 * syntax.c (syntax_temp): Define only if !__GNUC__.
13739
b7c513d0
PE
13740 * sound.c (current_sound_device, current_sound): Now static.
13741
989b29ad
PE
13742 * search.c (searchbufs, searchbuf_head): Now static.
13743
13a55a78
PE
13744 * scroll.c (scroll_cost): Remove; unused.
13745 * dispextern.h (scroll_cost): Remove decl.
13746
de68a1fc
PE
13747 * region-cache.h (pp_cache): Mark as externally visible.
13748
40ccffa6
PE
13749 * process.c: Make symbols static if they're not exported.
13750 (process_tick, update_tick, create_process, chan_process):
13751 (Vprocess_alist, proc_buffered_char, datagram_access):
13752 (fd_callback_data, send_process_frame, process_sent_to): Now static.
13753 (deactivate_process): Mark defn as static, as well as decl.
13754 * lisp.h (create_process): Remove decl.
13755 * process.h (chan_process, Vprocess_alist): Remove decls.
13756
ad64fc97
PE
13757 * print.c: Make symbols static if they're not exported.
13758 (print_depth, new_backquote_output, being_printed, print_buffer):
13759 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
13760 (print_interval, print_number_index, initial_stderr_stream):
13761 Now static.
13762 * lisp.h (Fprinc): Remove decl.
13763 (debug_output_compilation_hack): Mark as externally visible.
13764
adddb265
PE
13765 * sysdep.c (croak): Move decl from here to syssignal.h.
13766 * syssignal.h (croak): Put it here, so the API can be checked when
13767 'croak' is called from dissociate_if_controlling_tty.
13768
1717ede2
PE
13769 * minibuf.c: Make symbols static if they're not exported.
13770 (minibuf_save_list, choose_minibuf_frame): Now static.
13771 * lisp.h (choose_minibuf_frame): Remove decl.
13772
fa5fb2bc
PE
13773 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
13774
1e3890d1
PE
13775 * lread.c: Make symbols static if they're not exported.
13776 (read_objects, initial_obarray, oblookup_last_bucket_number):
13777 Now static.
13778 (make_symbol): Remove; unused.
13779 * lisp.h (initial_obarray, make_symbol): Remove decls.
13780
8a1414fa
PE
13781 * keyboard.c: Make symbols static if they're not exported.
13782 (single_kboard, recent_keys_index, total_keys, recent_keys):
13783 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
13784 (this_single_command_key_start, echoing, last_auto_save):
13785 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
13786 (command_loop, echo_now, keyboard_init_hook, help_char_p):
13787 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
13788 (Vlispy_mouse_stem, double_click_count):
13789 Now static.
13790 (force_auto_save_soon): Define only if SIGDANGER.
13791 (ignore_mouse_drag_p): Now static if
13792 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
13793 (print_help): Remove; unused.
13794 (stop_character, last_timer_event): Mark as externally visible.
13795 * keyboard.h (ignore_mouse_drag_p): Declare only if
13796 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
13797 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
13798 * lisp.h (echoing): Remove decl.
13799 (force_auto_save_soon): Declare only if SIGDANGER.
13800 * xdisp.c (redisplay_window): Simplify code, to make it more
13801 obvious that ignore_mouse_drag_p is not accessed if !defined
13802 USE_GTK && !defined HAVE_NS.
13803
93ea6e8f
PE
13804 * intervals.c: Make symbols static if they're not exported.
13805 (merge_properties_sticky, merge_interval_right, delete_interval):
13806 Now static.
13807 * intervals.h (merge_interval_right, delete_interval): Remove decls.
13808
77382fcc
PE
13809 * insdel.c: Make symbols static if they're not exported.
13810 However, leave prepare_to_modify_buffer alone. It's never
13811 called from outside this function, but that appears to be a bug.
13812 (combine_after_change_list, combine_after_change_buffer):
4889fc82 13813 (adjust_after_replace, signal_before_change): Now static.
77382fcc
PE
13814 (adjust_after_replace_noundo): Remove; unused.
13815 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
4889fc82 13816 (signal_before_change): Remove decls.
77382fcc 13817
9306c32e
PE
13818 * indent.c (val_compute_motion, val_vmotion): Now static.
13819
cd44d2eb
PE
13820 * image.c: Make symbols static if they're not exported.
13821 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
13822 if USE_GTK.
13823 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
13824 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
13825
ad9a7a06
PE
13826 * fringe.c (standard_bitmaps): Now static.
13827 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
13828
81626931
PE
13829 * frame.c: Make symbols static if they're not exported.
13830 (x_report_frame_params, make_terminal_frame): Now static.
13831 (get_frame_param): Now static, unless HAVE_NS.
13832 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
13833 (x_get_resource_string): Remove; not used.
13834 * frame.h (make_terminal_frame, x_report_frame_params):
13835 (x_get_resource_string); Remove decls.
13836 (x_fullscreen_adjust): Declare only if WINDOWSNT.
13837 * lisp.h (get_frame_param): Declare only if HAVE_NS.
13838
239f9db9
PE
13839 * font.c, fontset.c: Make symbols static if they're not exported.
13840 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
13841 (FACE_SUITABLE_FOR_CHAR_P): Use it.
13842 * font.c (font_close_object): Now static.
13843 * font.h (font_close_object): Remove.
13844 * fontset.c (FONTSET_OBJLIST): Remove.
13845 (free_realized_fontset) #if-0 the body, which does nothing.
13846 (face_suitable_for_char_p): #if-0, as it's never called.
13847 * fontset.h (face_suitable_for_char_p): Remove decl.
04f2d78b
CB
13848 * xfaces.c (face_at_string_position):
13849 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
239f9db9
PE
13850 since 0 is always ASCII.
13851
dfcf3579
PE
13852 * fns.c (weak_hash_tables): Now static.
13853
5045092b
PE
13854 * fileio.c: Make symbols static if they're not exported.
13855 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
13856 (Vwrite_region_annotation_buffers): Now static.
13857
57a96f5c
PE
13858 * eval.c: Make symbols static if they're not exported.
13859 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
13860 * lisp.h (backtrace_list): Remove decl.
13861
35f08c38
PE
13862 * emacs.c: Make symbols static if they're not exported.
13863 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
13864 (fatal_error_code, fatal_error_signal_hook, standard_args):
13865 Now static.
13866 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
13867 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
13868 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
13869 * lisp.h (fatal_error_signal_hook): Remove decl.
13870 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
13871
f44bd759
PE
13872 * editfns.c: Move a (normally-unused) function to its only use.
13873 * editfns.c, lisp.h (get_operating_system_release): Remove.
13874 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
13875 worth the hassle of breaking this out.
13876
b532497d
PE
13877 * xterm.c: Make symbols static if they're not exported.
13878 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
13879 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
13880 (x_destroy_window, x_delete_display):
13881 Now static.
13882 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
13883 (x_mouse_leave): Remove; unused.
13884 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
13885 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
13886 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
13887 Remove decls.
13888 (x_mouse_leave): Declare only if WINDOWSNT.
13889 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
13890 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
13891 USE_X_TOOLKIT.
13892
1675728f
PE
13893 * ftxfont.c: Make symbols static if they're not exported.
13894 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
13895 HAVE_FREETYPE.
13896 * font.h (ftxfont_driver): Likewise.
13897
e4cebfca
PE
13898 * xfns.c: Make symbols static if they're not exported.
13899 (x_last_font_name, x_display_info_for_name):
13900 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
13901 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
13902 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
13903 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
13904 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
13905 (last_show_tip_args): Now static.
13906 (xic_defaut_fontset, xic_create_fontsetname): Define only if
13907 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
13908 (x_screen_planes): Remove; unused.
13909 * dispextern.h (x_screen_planes): Remove decl.
13910
5bf46f05
PE
13911 * dispnew.c: Make symbols static if they're not exported.
13912 * dispextern.h (redraw_garbaged_frames, scrolling):
13913 (increment_row_positions): Remove.
13914 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
13915 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
13916 Now static.
13917 (redraw_garbaged_frames): Remove; unused.
13918
435f4c28
PE
13919 * xfaces.c: Make symbols static if they're not exported.
13920 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
13921 Remove decls.
13922 * xterm.h (defined_color): Remove decls.
13923 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
13924 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
13925 (menu_face_changed_default, defined_color, free_realized_face):
13926 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
13927 (ascii_face_of_lisp_face): Remove; unused.
13928
8524aef3
PE
13929 * xdisp.c: Make symbols static if they're not exported.
13930 * dispextern.h (scratch_glyph_row, window_box_edges):
13931 (glyph_to_pixel_coords, set_cursor_from_row):
13932 (get_next_display_element, set_iterator_to_next):
13933 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
13934 (show_mouse_face): Remove decls
13935 * frame.h (message_buf_print): Likewise.
13936 * lisp.h (pop_message, set_message, check_point_in_composition):
13937 Likewise.
13938 * xterm.h (set_vertical_scroll_bar): Likewise.
13939 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
13940 (message_buf_print, scratch_glyph_row, displayed_buffer):
13941 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
13942 (get_next_display_element, show_mouse_face, window_box_edges):
13943 (frame_to_window_pixel_xy, check_point_in_composition):
13944 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
13945 (glyph_to_pixel_coords): Remove; unused.
13946
16390cd2
PE
13947 * dired.c (file_name_completion): Now static.
13948
13949 * dbusbind.c (xd_in_read_queued_messages): Now static.
13950
a25f4dfa
PE
13951 * lisp.h (circular_list_error, FOREACH): Remove; unused.
13952 * data.c (circular_list_error): Remove.
13953
14a9c8df
PE
13954 * commands.h (last_point_position, last_point_position_buffer):
13955 (last_point_position_window): Remove decls.
13956 * keyboard.c: Make these variables static.
13957
04f2d78b
CB
13958 * coding.h (coding, code_convert_region, encode_coding_gap):
13959 Remove decls.
74ab6df5
PE
13960 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
13961 (iso_code_class, detect_coding, code_convert_region): Now static.
13962 (encode_coding_gap): Remove; unused.
13963
38dfbee1
PE
13964 * chartab.c (chartab_chars, chartab_bits): Now static.
13965
a2cb4e63
PE
13966 * charset.h (charset_iso_8859_1): Remove decl.
13967 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
13968 Now static.
13969
127198fd
PE
13970 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
13971 * ccl.c (Vccl_program_table): Now static.
13972 (check_ccl_update): Remove; unused.
13973
d85b608f
PE
13974 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
13975 * category.h: ... from here.
13976 * category.c (check_category_table, set_category_set): Now static.
13977
31cd66f3
PE
13978 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
13979 * lisp.h: Remove these decls.
13980
c358e587
PE
13981 * buffer.c (buffer_count): Remove unused var.
13982
e78aecca
PE
13983 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
13984 so that it's not optimized away.
13985 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
13986 * dispextern.h (bidi_dump_cached_states): Remove, since it's
13987 exported only to the debugger.
13988
e192d7d3 13989 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
04f2d78b 13990 * atimer.h (run_all_atimers): Remove; not exported.
e192d7d3 13991
92470028
PE
13992 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
13993 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
13994 was inaccessible from Lisp.
13995 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
13996 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
13997
244ed907
PE
13998 alloc.c: Import and export fewer symbols, and remove unused items.
13999 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
14000 is defined.
14001 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
14002 it's not optimized away by whole-program optimization.
14003 (message_enable_multibyte, free_misc): Remove.
14004 (catchlist, handlerlist, mark_backtrace):
14005 Declare only if BYTE_MARK_STACK.
14006 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
14007 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
14008 (message_enable_multibyte): Remove decl.
14009 (free_misc, interval_free_list, float_block, float_block_index):
14010 (n_float_blocks, float_free_list, cons_block, cons_block_index):
14011 (cons_free_list, last_marked_index):
14012 Now static.
14013 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
14014 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
14015 (mark_backtrace): Define only if BYTE_MARK_STACK.
14016 * xdisp.c (message_enable_multibyte): Now static.
14017
61c2b50e 14018 Declare Lisp_Object Q* variables to be 'static' if not exported.
955cbe7b
PE
14019 This makes it easier for human readers (and static analyzers)
14020 to see whether these variables are used from other modules.
14021 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
14022 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
14023 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
14024 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
14025 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
14026 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
14027 * xmenu.c, xselect.c:
14028 Declare Q* vars static if they are not used in other modules.
14029 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
14030 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
14031 Remove decls of unexported vars.
14032 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
14033
95c82688
PE
14034 * lisp.h (DEFINE_FUNC): Make sname 'static'.
14035
16a97296
PE
14036 Make Emacs functions such as Fatom 'static' by default.
14037 This makes it easier for human readers (and static analyzers)
14038 to see whether these functions can be called from other modules.
14039 DEFUN now defines a static function. To make the function external
14040 so that it can be used in other C modules, use the new macro DEFUE.
8bd7b830
PE
14041 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
14042 (Finit_image_library):
16a97296
PE
14043 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
14044 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
14045 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
14046 Remove decls, since these functions are now static.
14047 (Funintern, Fget_internal_run_time): New decls, since these functions
14048 were already external.
95c82688 14049
16a97296
PE
14050 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
14051 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
14052 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
14053 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
14054 * keyboard.c, keymap.c, lread.c:
14055 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
14056 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
14057 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
14058 Mark functions with DEFUE instead of DEFUN,
14059 if they are used in other modules.
14060 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
14061 decls for now-static functions.
14062 * buffer.h (Fdelete_overlay): Remove decl.
14063 * callproc.c (Fgetenv_internal): Mark as internal.
14064 * composite.c (Fremove_list_of_text_properties): Remove decl.
14065 (Fcomposition_get_gstring): New forward static decl.
14066 * composite.h (Fcomposite_get_gstring): Remove decl.
14067 * dired.c (Ffile_attributes): New forward static decl.
14068 * doc.c (Fdocumntation_property): New forward static decl.
14069 * eval.c (Ffetch_bytecode): New forward static decl.
14070 (Funintern): Remove extern decl; now in .h file where it belongs.
14071 * fileio.c (Fmake_symbolic_link): New forward static decl.
14072 * image.c (Finit_image_library): New forward static decl.
14073 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
14074 * intervals.h (Fprevious_property_change):
14075 (Fremove_list_of_text_properties): Remove decls.
14076 * keyboard.c (Fthis_command_keys): Remove decl.
14077 (Fcommand_execute): New forward static decl.
14078 * keymap.c (Flookup_key): New forward static decl.
14079 (Fcopy_keymap): Now static.
14080 * keymap.h (Flookup_key): Remove decl.
14081 * process.c (Fget_process): New forward static decl.
14082 (Fprocess_datagram_address): Mark as internal.
14083 * syntax.c (Fsyntax_table_p): New forward static decl.
14084 (skip_chars): Remove duplicate decl.
14085 * textprop.c (Fprevious_property_change): New forward static decl.
14086 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
14087 Now internal.
14088 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
14089 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
14090
785bbd42
PE
14091 * editfns.c (Fformat): Remove unreachable code.
14092
8b913b57
AS
140932011-04-14 Andreas Schwab <schwab@linux-m68k.org>
14094
14095 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
14096 change. (Bug#8496)
14097
a6744a35
EZ
140982011-04-13 Eli Zaretskii <eliz@gnu.org>
14099
14100 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
14101 when at ZV. (Bug#8487)
14102
e7974947
AS
141032011-04-12 Andreas Schwab <schwab@linux-m68k.org>
14104
baad03f0
AS
14105 * charset.c (Fclear_charset_maps): Use xfree instead of free.
14106 (Bug#8437)
14107 * keyboard.c (parse_tool_bar_item): Likewise.
14108 * sound.c (sound_cleanup, alsa_close): Likewise.
14109 * termcap.c (tgetent): Likewise.
14110 * xfns.c (x_default_font_parameter): Likewise.
14111 * xsettings.c (read_and_apply_settings): Likewise.
14112
e7974947
AS
14113 * alloc.c (overrun_check_malloc, overrun_check_realloc)
14114 (overrun_check_free): Protoize.
14115
28272684
PE
141162011-04-12 Paul Eggert <eggert@cs.ucla.edu>
14117
14118 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
14119 since callers should never pass a negative size.
14120 Change the signature to match that of plain 'read' and 'write'; see
14121 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
14122 * lisp.h: Update prototypes of emacs_write and emacs_read.
14123
11997c76
EZ
141242011-04-11 Eli Zaretskii <eliz@gnu.org>
14125
14126 * xdisp.c (redisplay_window): Don't try to determine the character
14127 position of the scroll margin if the window start point w->startp
e896f03c 14128 is outside the buffer's accessible region. (Bug#8468)
11997c76 14129
8a2cbd72
EZ
141302011-04-10 Eli Zaretskii <eliz@gnu.org>
14131
14132 Fix write-region and its subroutines for buffers > 2GB.
14133 * fileio.c (a_write, e_write): Modify declaration of arguments and
14134 local variables to support buffers larger than 2GB.
14135 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
14136
14137 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
14138 argument, local variables, and return value.
14139
14140 * lisp.h: Update prototypes of emacs_write and emacs_read.
14141
14142 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
14143
4073e537 141442011-04-10 Paul Eggert <eggert@cs.ucla.edu>
eb3f1cc8 14145
1ebfdcb6
PE
14146 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
14147
b2ded58d
PE
14148 Fix more problems found by GCC 4.6.0's static checks.
14149
7d66342c
PE
14150 * xdisp.c (vmessage): Use a better test for character truncation.
14151
bbf47d44
PE
14152 * charset.c (load_charset_map): <, not <=, for optimization,
14153 and to avoid potential problems with integer overflow.
9248994d 14154 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
f9a68bc5 14155 * casetab.c (set_identity, shuffle): Likewise.
3ab1c7ce 14156 * editfns.c (Fformat): Likewise.
1e69125e 14157 * syntax.c (skip_chars): Likewise.
3befa583 14158
e3019616
PE
14159 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
14160 This also lets GCC 4.6.0 generate slightly better loop code.
14161
becfa255
PE
14162 * callint.c (Fcall_interactively): <, not <=, for optimization.
14163 (Fcall_interactively): Count the number of arguments produced,
14164 not the number of arguments given. This is simpler and lets GCC
14165 4.6.0 generate slightly better code.
14166
dae0cd48
PE
14167 * ftfont.c: Distingish more carefully between FcChar8 and char.
14168 The previous code passed unsigned char * to a functions like
14169 strlen and xstrcasecmp that expect char *, which does not
14170 conform to the C standard.
14171 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
14172 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
14173 char * when the C standard requires it.
14174
76032d70
PE
14175 * keyboard.c (read_char): Remove unused var.
14176
eb3f1cc8
PE
14177 * eval.c: Port to Windows vsnprintf (Bug#8435).
14178 Include <limits.h>.
14179 (SIZE_MAX): Define if the headers do not.
14180 (verror): Do not give up if vsnprintf returns a negative count.
14181 Instead, grow the buffer. This ports to Windows vsnprintf, which
14182 does not conform to C99. Problem reported by Eli Zaretskii.
14183 Also, simplify the allocation scheme, by avoiding the need for
14184 calling realloc, and removing the ALLOCATED variable.
14185
70476b54
PE
14186 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
14187
12020a9e
PE
14188 Remove invocations of doprnt, as Emacs now uses vsnprintf.
14189 But keep the doprint source code for now, as we might revamp it
14190 and use it again (Bug#8435).
ea6c7ae6
PE
14191 * lisp.h (doprnt): Remove.
14192 * Makefile.in (base_obj): Remove doprnt.o.
14193 * deps.mk (doprnt.o): Remove.
14194
5fdb398c
PE
14195 error: Print 32- and 64-bit integers portably (Bug#8435).
14196 Without this change, on typical 64-bit hosts error ("...%d...", N)
14197 was used to print both 32- and 64-bit integers N, which relied on
14198 undefined behavior.
61bdb816 14199 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
5fdb398c
PE
14200 * lisp.h (error, verror): Mark as printf-like functions.
14201 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
14202 Report overflow in size calculations when allocating printf buffer.
14203 Do not truncate output string at its first null byte.
14204 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
14205 Truncate the output at a character boundary, since vsnprintf does not
14206 do that.
14207 * charset.c (check_iso_charset_parameter): Convert internal
14208 character to string before calling 'error', since %c now has the
14209 printf meaning.
14210 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
14211 overflow when computing char to be passed to 'error'. Do not
14212 pass Lisp_Object to 'error'; pass the integer instead.
14213 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
14214 formatted with plain %d.
14215
b189fa66
PE
14216 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
14217
bff87ef0
PE
14218 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
14219
7e2cac20
PE
14220 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
14221
ce4d90b5
PE
14222 * xterm.c (x_catch_errors): Remove duplicate declaration.
14223
266c9547
PE
14224 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
14225
79c49ad2
PE
14226 * xdisp.c, lisp.h (message_nolog): Remove; unused.
14227
368f4090
JM
142282011-04-10 Jim Meyering <meyering@redhat.com>
14229
14230 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
14231 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
14232 return ssize_t not "int", and use size_t as the buffer length.
14233 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
14234 * gnutls.h: Update declarations.
14235 * process.c (read_process_output): Use ssize_t, to match.
14236 (send_process): Likewise.
14237
a32d4040
CY
142382011-04-09 Chong Yidong <cyd@stupidchicken.com>
14239
14240 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
14241
8546720e 142422011-04-09 Chong Yidong <cyd@stupidchicken.com>
aac0c6e3 14243
04f2d78b
CB
14244 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
14245 Use unsigned char, to match FcChar8 type definition.
aac0c6e3 14246
8546720e
GM
14247 * xterm.c (handle_one_xevent):
14248 * xmenu.c (create_and_show_popup_menu):
14249 * xselect.c (x_decline_selection_request)
14250 (x_reply_selection_request): Avoid type-punned deref of X events.
aac0c6e3 14251
0a2f5c1a 142522011-04-09 Eli Zaretskii <eliz@gnu.org>
a53e2e89
EZ
14253
14254 Fix some uses of `int' instead of EMACS_INT.
14255 * search.c (string_match_1, fast_string_match)
14256 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
14257 (scan_buffer, find_next_newline_no_quit)
14258 (find_before_next_newline, search_command, Freplace_match)
14259 (Fmatch_data): Make some `int' variables be EMACS_INT.
14260
14261 * xdisp.c (display_count_lines): 3rd argument and return value now
14262 EMACS_INT. All callers changed.
14263 (pint2hrstr): Last argument is now EMACS_INT.
14264
14265 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
14266 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
14267 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
14268 (decode_coding_utf_16, decode_coding_emacs_mule)
14269 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
14270 (decode_coding_ccl, decode_coding_charset)
14271 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
14272 (decode_coding_iso_2022, decode_coding_emacs_mule)
14273 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
14274 <char_offset, last_offset>: Declare EMACS_INT.
14275 (encode_coding_utf_8, encode_coding_utf_16)
14276 (encode_coding_emacs_mule, encode_invocation_designation)
14277 (encode_designation_at_bol, encode_coding_iso_2022)
14278 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
14279 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
14280 Declare EMACS_INT.
14281 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
14282 (encode_invocation_designation): Last argument P_NCHARS is now
14283 EMACS_INT.
14284 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
14285 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
14286
14287 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
14288 All users changed.
14289
14290 * ccl.c (Fccl_execute_on_string): Declare some variables
14291 EMACS_INT.
14292
8546720e 142932011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
0080dc6b
SS
14294
14295 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
14296
4e19a977
CS
142972011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
14298
14299 * process.c (Fformat_network_address): Doc fix.
14300
87302331
R
143012011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
14302
ee7683eb 14303 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
87302331 14304
cbb59342
CY
143052011-04-08 Chong Yidong <cyd@stupidchicken.com>
14306
14307 * keyboard.c (read_char): Call Lisp function help-form-show,
14308 instead of using internal_with_output_to_temp_buffer.
14309 (Qhelp_form_show): New var.
e0d38eeb 14310 (syms_of_keyboard): Use DEFSYM macro.
cbb59342
CY
14311
14312 * print.c (internal_with_output_to_temp_buffer): Function deleted.
14313
14314 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
14315
e67a13ab
CY
143162011-04-06 Chong Yidong <cyd@stupidchicken.com>
14317
04f2d78b
CB
14318 * process.c (Flist_processes): Remove to Lisp.
14319 (list_processes_1): Delete.
e67a13ab 14320
973f782d
EZ
143212011-04-06 Eli Zaretskii <eliz@gnu.org>
14322
7c106b1e
EZ
14323 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
14324
973f782d
EZ
14325 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
14326
41cf7d1a 143272011-04-06 Paul Eggert <eggert@cs.ucla.edu>
27ccc379 14328
ca23cc88
PE
14329 Fix more problems found by GCC 4.6.0's static checks.
14330
f390e2d5
PE
14331 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
14332
42eea0d0
PE
14333 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
14334
b69769da 14335 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
1e973bc7 14336
f9541e84
PE
14337 * xdisp.c (vmessage): Mark as a printf-like function.
14338
13841b55
PE
14339 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
14340
c136c10f
PE
14341 * sound.c (sound_warning): Don't crash if arg contains a printf format.
14342
5e2d4a30
PE
14343 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
14344 printf-like functions.
14345 (tiff_load): Add casts to remove these marks before passing them
14346 to system-supplied API.
14347
583f48b9
PE
14348 * eval.c (Fsignal): Remove excess argument to 'fatal'.
14349
b25d760e
PE
14350 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
14351 This avoids several warnings with gcc -Wstrict-overflow.
d5efd1d1
PE
14352 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
14353 directly, rather than having caller test rule sign. This avoids
14354 some unnecessary tests.
14355 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
14356 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
14357 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
b25d760e 14358
bc7b6697 14359 * xfont.c (xfont_text_extents): Remove var that was set but not used.
625a3eb1 14360 (xfont_open): Avoid unnecessary tests.
bc7b6697 14361
27ccc379
PE
14362 * composite.c (composition_gstring_put_cache): Use unsigned integer.
14363
dcd5c89a
PE
14364 * composite.h, composite.c (composition_gstring_put_cache):
14365 Use EMACS_INT, not int, for length.
14366
b13a45c6
PE
14367 * composite.h (COMPOSITION_DECODE_REFS): New macro,
14368 breaking out part of COMPOSITION_DECODE_RULE.
14369 (COMPOSITION_DECODE_RULE): Use it.
14370 * composite.c (get_composition_id): Remove unused local vars,
14371 by using the new macro.
14372
1e792e4d
PE
14373 * textprop.c (set_text_properties_1): Change while to do-while,
14374 since the condition is always true at first.
14375
dc6c6455 14376 * intervals.c (graft_intervals_into_buffer): Mark var as used.
aa86731f
PE
14377 (interval_deletion_adjustment): Return unsigned value.
14378 All uses changed.
dc6c6455 14379
aba7731a
PE
14380 * process.c (list_processes_1, create_pty, read_process_output):
14381 (exec_sentinel): Remove vars that were set but not used.
afd4052b 14382 (create_pty): Remove unnecessary "volatile"s.
bc57d757 14383 (Fnetwork_interface_info): Avoid possibility of int overflow.
82eaa333 14384 (read_process_output): Do adaptive read buffering even if carryover.
fe07cdfa 14385 (read_process_output): Simplify nbytes computation if buffered.
aba7731a 14386
fdfc4bf3
PE
14387 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
14388
fca8fe46 14389 * syntax.c (scan_words): Remove var that was set but not used.
12cbf13f 14390 (update_syntax_table): Use unsigned instead of int.
fca8fe46 14391
06a0259a 14392 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
3c346cc3 14393 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
e6eb4e9e 14394 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
06a0259a 14395
e7b9e80f
PE
14396 * print.c (print_error_message): Avoid int overflow.
14397
56201685
PE
14398 * font.c (font_list_entities): Redo for clarity,
14399 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
14400
78834453 14401 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
790771b1 14402 (font_score): Avoid potential overflow in diff calculation.
78834453 14403
0bc0b309 14404 * fns.c (substring_both): Remove var that is set but not used.
8cd55cb4 14405 (sxhash): Redo loop for clarity and to avoid wraparound warning.
0bc0b309 14406
e610eaca
PE
14407 * eval.c (funcall_lambda): Rename local to avoid shadowing.
14408
b895abce
PE
14409 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
14410 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
14411 can always succeed if overflow has undefined behavior.
14412
1f1d9321 14413 * search.c (boyer_moore, wordify): Remove vars set but not used.
6f076cc7 14414 (wordify): Omit three unnecessary tests.
1f1d9321 14415
c59478bc
PE
14416 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
14417 All callers changed. This avoids the need for an unused var.
14418
79b73827
PE
14419 * casefiddle.c (casify_region): Remove var that is set but not used.
14420
a4db5dfe
PE
14421 * dired.c (file_name_completion): Remove var that is set but not used.
14422
43aae36e
PE
14423 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
14424
2a47c44d 14425 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
163c5f32 14426 (Finsert_file_contents): Remove unnecessary code checking fd.
2a47c44d 14427
a37c69bf
PE
14428 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
14429 Check for integer overflow on size calculations.
14430
328ab8e7
PE
14431 * buffer.c (Fprevious_overlay_change): Remove var that is set
14432 but not used.
14433
e5a2a5cb
PE
14434 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
14435 Remove vars that are set but not used.
8d84a6eb 14436 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
6b043475 14437 (timer_check_2): Mark vars as initialized.
e5a2a5cb 14438
a60e5f68
PE
14439 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
14440
f661cb61 14441 * image.c (lookup_image): Remove var that is set but not used.
35fa624f 14442 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
f661cb61 14443
f0397f5a
PE
14444 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
14445 that are set but not used.
14446
8664db06 14447 * xfns.c (make_invisible_cursor): Don't return garbage
03733ee7 14448 if XCreateBitmapFromData fails (Bug#8410).
8664db06 14449
6abdaa4a
PE
14450 * xselect.c (x_get_local_selection, x_handle_property_notify):
14451 Remove vars that are set but not used.
14452
0ce7538d 14453 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
6abdaa4a 14454 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
0ce7538d 14455
9ae848fc
PE
14456 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
14457 Remove var that is set but not used.
0b918413
PE
14458 (scroll_bar_windows_size): Now size_t, not int.
14459 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
14460 Check for overflow.
9ae848fc 14461
a5a62657
PE
14462 * xfaces.c (realize_named_face): Remove vars that are set but not used.
14463 (map_tty_color) [!defined MSDOS]: Likewise.
14464
5c5cdd39
PE
14465 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
14466
66ebf983
PE
14467 * coding.c: Remove vars that are set but not used.
14468 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
14469 All callers changed.
14470 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
14471 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
14472 (decode_coding_charset): Remove vars that are set but not used.
14473
1be4d761
PE
14474 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
14475 that is set but not used.
14476
47553fa8
PE
14477 * print.c (print_object): Remove var that is set but not used.
14478
1f7196bf 14479 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
d1fdcab7
PE
14480 The gnulib version avoids calling malloc in the usual case,
14481 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
14482 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
14483 * filelock.c (current_lock_owner): Likewise.
14484 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
14485 * sysdep.c: Include allocator.h, careadlinkat.h.
14486 (emacs_no_realloc_allocator): New static constant.
14487 (emacs_readlink): New function.
fdb61804
PE
14488 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
14489 ../lib/careadlinkat.h.
d1fdcab7 14490
f84c17c7
SM
144912011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
14492
14493 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
14494 first non-nil return value).
14495
ef3862ad
JD
144962011-04-03 Jan Djärv <jan.h.d@swipnet.se>
14497
14498 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
14499 if not defined (Bug#8403).
14500
376a7006
JB
145012011-04-02 Juanma Barranquero <lekktu@gmail.com>
14502
14503 * xdisp.c (display_count_lines): Remove parameter `start',
14504 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
14505 (get_char_face_and_encoding): Remove parameter `multibyte_p',
14506 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
14507 (fill_stretch_glyph_string): Remove parameters `row' and `area',
14508 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
14509 and thereabouts. All callers changed.
14510 (get_per_char_metric): Remove parameter `f', unused since
14511 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
14512
6ca3801d
JM
145132011-04-02 Jim Meyering <meyering@redhat.com>
14514
14515 do not dereference NULL upon failed strdup
14516 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
14517 (ns_get_family): Likewise.
14518
d8e2b5ba
JB
145192011-04-02 Juanma Barranquero <lekktu@gmail.com>
14520
14521 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
14522
8c74fcbd
JD
145232011-04-02 Jan Djärv <jan.h.d@swipnet.se>
14524
14525 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
14526 later (Bug#8403).
14527
7200d79c
SM
145282011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
14529
03408648 14530 Add lexical binding.
7200d79c 14531
03408648
SM
14532 * window.c (Ftemp_output_buffer_show): New fun.
14533 (Fsave_window_excursion):
14534 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
14535
14536 * lread.c (lisp_file_lexically_bound_p): New function.
14537 (Fload): Bind Qlexical_binding.
14538 (readevalloop): Remove `evalfun' arg.
14539 Bind Qinternal_interpreter_environment.
14540 (Feval_buffer): Bind Qlexical_binding.
14541 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
14542 Mark as dynamic.
14543 (syms_of_lread): Declare `lexical-binding'.
14544
14545 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
14546
14547 * keyboard.c (eval_dyn): New fun.
14548 (menu_item_eval_property): Use it.
ca105506
SM
14549
14550 * image.c (parse_image_spec): Use Ffunctionp.
ca105506 14551
03408648
SM
14552 * fns.c (concat, mapcar1): Accept byte-code-functions.
14553
14554 * eval.c (Fsetq): Handle lexical vars.
14555 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
14556 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
14557 (FletX, Flet): Obey lexical binding.
14558 (Fcommandp): Handle closures.
14559 (Feval): New `lexical' arg.
14560 (eval_sub): New function extracted from Feval. Use it almost
14561 everywhere where Feval was used. Look up vars in lexical env.
14562 Handle closures.
14563 (Ffunctionp): Move from subr.el.
14564 (Ffuncall): Handle closures.
14565 (apply_lambda): Remove `eval_flags'.
14566 (funcall_lambda): Handle closures and new byte-code-functions.
14567 (Fspecial_variable_p): New function.
14568 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
14569 but without exporting it to Lisp.
23aba0ea 14570
23aba0ea 14571 * doc.c (Fdocumentation, store_function_docstring):
03408648 14572 * data.c (Finteractive_form): Handle closures.
23aba0ea 14573
03408648
SM
14574 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
14575 interactive spec.
ba83908c 14576
04f2d78b
CB
14577 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
14578 New byte-codes.
03408648
SM
14579 (exec_byte_code): New function extracted from Fbyte_code to handle new
14580 calling convention for byte-code-functions. Add new byte-codes.
ba83908c 14581
03408648 14582 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
e2abe5a1 14583
03408648 14584 * alloc.c (Fmake_symbol): Init new `declared_special' field.
e2abe5a1 14585
e2abce01
JB
145862011-03-31 Juanma Barranquero <lekktu@gmail.com>
14587
14588 * xdisp.c (redisplay_internal): Fix prototype.
14589
63696a73 145902011-03-31 Eli Zaretskii <eliz@gnu.org>
09725d26 14591
63696a73 14592 * xdisp.c (SCROLL_LIMIT): New macro.
04f2d78b
CB
14593 (try_scrolling): Use it when setting scroll_limit.
14594 Limit scrolling to 100 screen lines.
63696a73
EZ
14595 (redisplay_window): Even when falling back on "recentering",
14596 position point in the window according to scroll-conservatively,
14597 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
14598
14599 (try_scrolling): When point is above the window, allow searching
14600 as far as scroll_max, or one screenful, to compute vertical
14601 distance from PT to the scroll margin position. This prevents
14602 try_scrolling from unnecessarily failing when
14603 scroll-conservatively is set to a value slightly larger than the
14604 window height. Clean up the case of PT below the margin at bottom
14605 of window: scroll_max can no longer be INT_MAX. When aggressive
14606 scrolling is in use, don't let point enter the opposite scroll
14607 margin as result of the scroll.
14608 (syms_of_xdisp) <scroll-conservatively>: Document the
09725d26
EZ
14609 threshold of 100 lines for never-recentering scrolling.
14610
e4cc2dfc
JB
146112011-03-31 Juanma Barranquero <lekktu@gmail.com>
14612
14613 * dispextern.h (move_it_by_lines):
14614 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
14615 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
14616 (message_log_check_duplicate): Remove parameters `prev_bol' and
14617 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
14618 (redisplay_internal): Remove parameter `preserve_echo_area',
14619 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
14620
14621 * indent.c (Fvertical_motion):
14622 * window.c (window_scroll_pixel_based, Frecenter):
14623 Don't pass `need_y_p' to `move_it_by_lines'.
14624
1c470562
SM
146252011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
14626
44f230aa
SM
14627 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
14628 steal a few bits to be more compact.
14629 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
14630 Remove unneeded casts.
14631
1c470562
SM
14632 * bytecode.c (Fbyte_code): CAR and CDR can GC.
14633
888adce9
ZK
146342011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
14635
14636 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
14637 binding" message (bug#7967).
14638
f838ed7b
PE
146392011-03-30 Paul Eggert <eggert@cs.ucla.edu>
14640
77861b95
PE
14641 Fix more problems found by GCC 4.6.0's static checks.
14642
de6dbc14
PE
14643 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
14644 Remove unused local var.
14645
f838ed7b
PE
14646 * editfns.c (Fmessage_box): Remove unused local var.
14647
792c7b2b
PE
14648 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
14649 (note_mode_line_or_margin_highlight, note_mouse_highlight):
14650 Omit unused local vars.
c499e557 14651 * window.c (shrink_windows): Omit unused local var.
b01a1c29 14652 * menu.c (digest_single_submenu): Omit unused local var.
0bc32927
PE
14653 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
14654 Omit unused local var.
14655
ba0165e1
PE
14656 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
14657 Don't assume string length fits in int.
32ad8845 14658 (keyremap_step, read_key_sequence): Use size_t for sizes.
48011560 14659 (read_key_sequence): Don't check last_real_key_start redundantly.
ba0165e1 14660
3c59b4c9
PE
14661 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
14662 instead of alloca (Bug#8344).
14663
a3eed478 14664 * eval.c (Fbacktrace): Don't assume nargs fits in int.
5d5d959d 14665 (Fbacktrace_frame): Don't assume nframes fits in int.
a3eed478 14666
eb4d412d
PE
14667 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
14668
1658b401
PE
14669 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
14670 concerns.
14671
14672 * term.c (produce_glyphless_glyph): Remove unnecessary test.
14673
14674 * cm.c (calccost): Turn while-do into do-while, for clarity.
44f730c8 14675
9a2c6e05
PE
14676 * keyboard.c (syms_of_keyboard): Use the same style as later
14677 in this function when indexing through an array. This also
14678 works around GCC bug 48267.
14679
03d0a109
PE
14680 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
14681
44f730c8
PE
14682 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
14683
fe75f926
PE
14684 * chartab.c (sub_char_table_ref_and_range): Redo for slight
14685 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
14686
ffa8c828
PE
14687 * keyboard.c, keyboard.h (num_input_events): Now size_t.
14688 This avoids undefined behavior on integer overflow, and is a bit
14689 more convenient anyway since it is compared to a size_t variable.
14690
c5101a77
PE
14691 Variadic C functions now count arguments with size_t, not int.
14692 This avoids an unnecessary limitation on 64-bit machines, which
14693 caused (substring ...) to crash on large vectors (Bug#8344).
14694 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
14695 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
77861b95 14696 All variadic functions and their callers changed accordingly.
c5101a77
PE
14697 (struct gcpro.nvars): Now size_t, not int. All uses changed.
14698 * data.c (arith_driver, float_arith_driver): Likewise.
14699 * editfns.c (general_insert_function): Likewise.
14700 * eval.c (struct backtrace.nargs, interactive_p)
14701 (internal_condition_case_n, run_hook_with_args, apply_lambda)
14702 (funcall_lambda, mark_backtrace): Likewise.
14703 * fns.c (concat): Likewise.
14704 * frame.c (x_set_frame_parameters): Likewise.
14705 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
14706 0 if not found, not -1. All callers changed.
14707
dd3f25f7
PE
14708 * alloc.c (garbage_collect): Don't assume stack size fits in int.
14709 (stack_copy_size): Now size_t, not int.
14710 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
14711
461c2ab9
JB
147122011-03-28 Juanma Barranquero <lekktu@gmail.com>
14713
14714 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
14715 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
14716 All callers changed.
14717
14718 * lisp.h (multibyte_char_to_unibyte):
14719 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
14720 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
14721 * character.h (CHAR_TO_BYTE8):
14722 * cmds.c (internal_self_insert):
14723 * editfns.c (general_insert_function):
14724 * keymap.c (push_key_description):
14725 * search.c (Freplace_match):
14726 * xdisp.c (message_dolog, set_message_1): All callers changed.
14727
f6d62986
SM
147282011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
14729
14730 * keyboard.c (safe_run_hook_funcall): New function.
14731 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
14732 don't set the hook to nil, but remove the offending function instead.
14733 (Qcommand_hook_internal): Remove, unused.
14734 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
14735 Vcommand_hook_internal.
14736
14737 * eval.c (enum run_hooks_condition): Remove.
14738 (funcall_nil, funcall_not): New functions.
14739 (run_hook_with_args): Call each function through a `funcall' argument.
14740 Remove `cond' argument, now redundant.
14741 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
14742 (Frun_hook_with_args_until_failure): Adjust accordingly.
14743 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
14744
1db5b1ad
JB
147452011-03-28 Juanma Barranquero <lekktu@gmail.com>
14746
14747 * dispextern.h (string_buffer_position): Remove declaration.
14748
14749 * print.c (strout): Remove parameter `multibyte', unused since
14750 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
14751
14752 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
14753 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
14754 All callers changed.
14755
14756 * w32.c (_wsa_errlist): Use braces for struct initializers.
14757
14758 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
14759 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
14760 All callers changed.
14761 (string_buffer_position): Likewise. Also, make static (it's never
14762 used outside xdisp.c).
14763 (cursor_row_p): Remove parameter `w', unused since
14764 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
14765 (decode_mode_spec): Remove parameter `precision', introduced during
14766 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
14767 All callers changed.
14768
5ffb62aa
JD
147692011-03-27 Jan Djärv <jan.h.d@swipnet.se>
14770
14771 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
14772
461c2ab9 147732011-03-27 Anders Lindgren <andlind@gmail.com>
f0a1382a
JD
14774
14775 * nsterm.m (ns_menu_bar_is_hidden): New variable.
14776 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
14777 (ns_update_auto_hide_menu_bar): New functions.
14778 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
14779 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
14780 ns_constrain_all_frames.
14781 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
14782 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
14783
5c380ffb
JD
147842011-03-27 Jan Djärv <jan.h.d@swipnet.se>
14785
14786 * nsmenu.m (runDialogAt): Remove argument to timer_check.
14787
9af30bdf
GM
147882011-03-27 Glenn Morris <rgm@gnu.org>
14789
14790 * syssignal.h: Replace RETSIGTYPE with void.
14791 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
14792 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
14793 Replace SIGTYPE with void everywhere.
14794 * s/usg5-4-common.h (SIGTYPE): Remove definition.
14795 * s/template.h (SIGTYPE): Remove commented out definition.
14796
e2abce01
JB
147972011-03-26 Eli Zaretskii <eliz@gnu.org>
14798
14799 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
14800 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
14801
f868cd8a
JB
148022011-03-26 Juanma Barranquero <lekktu@gmail.com>
14803
59eb0929
JB
14804 * w32.c (read_unc_volume): Use parameter `henum', instead of
14805 global variable `wget_enum_handle'.
14806
14807 * keymap.c (describe_vector): Remove parameters `indices' and
14808 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
14809 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
14810
f868cd8a
JB
14811 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
14812
14813 * keyboard.c (timer_check): Remove parameter `do_it_now',
14814 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
14815 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
14816 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
14817
14818 * keyboard.c (read_char):
14819 * w32menu.c (w32_menu_display_help):
14820 * xmenu.c (show_help_event, menu_help_callback):
14821 Adjust calls to `show_help_echo'.
14822
14823 * gtkutil.c (xg_maybe_add_timer):
14824 * keyboard.c (readable_events):
14825 * process.c (wait_reading_process_output):
14826 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
14827
14828 * insdel.c (adjust_markers_gap_motion):
14829 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
14830 (gap_left, gap_right): Don't call it.
14831
2ecf6fdb
CY
148322011-03-25 Chong Yidong <cyd@stupidchicken.com>
14833
14834 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
14835 incurred during fontification.
14836
6b1f9ba4
JB
148372011-03-25 Juanma Barranquero <lekktu@gmail.com>
14838
14839 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
14840 (DEFVAR_PER_BUFFER): Don't pass it.
14841
14842 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
14843 (scrolling_window): Don't pass it.
14844
0f4a96b5
JB
148452011-03-25 Juanma Barranquero <lekktu@gmail.com>
14846
14847 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
14848
14849 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
14850 and `suffix'.
14851 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
14852 of variables specific to SELinux and computation of `encoded_absname'.
14853
14854 * image.c (XPutPixel): Remove unused variable `height'.
14855
14856 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
14857
14858 * unexw32.c (get_section_info): Remove unused variable `section'.
14859
14860 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
14861 (system_process_attributes): Remove unused variable `sess'.
14862 (sys_read): Remove unused variable `err'.
14863
14864 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
14865 (w32_wnd_proc): Remove unused variable `isdead'.
14866 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
14867 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
14868 (x_create_tip_frame): Remove unused variable `tem'.
14869
14870 * w32inevt.c (w32_console_read_socket):
14871 Remove unused variable `no_events'.
14872
14873 * w32term.c (x_draw_composite_glyph_string_foreground):
14874 Remove unused variable `width'.
14875
1149507c
JB
148762011-03-24 Juanma Barranquero <lekktu@gmail.com>
14877
14878 * w32term.c (x_set_glyph_string_clipping):
14879 Don't pass uninitialized region to CombineRgn.
14880
9c88f339
JB
148812011-03-23 Juanma Barranquero <lekktu@gmail.com>
14882
14883 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
14884 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
14885 (Fx_close_connection): Remove unused variable `i'.
14886
14887 * w32font.c (w32font_draw): Return number of glyphs.
14888 (w32font_open_internal): Remove unused variable `i'.
14889 (w32font_driver): Add missing initializer.
14890
14891 * w32menu.c (utf8to16): Remove unused variable `utf16'.
14892 (fill_in_menu): Remove unused variable `items_added'.
14893
14894 * w32term.c (last_mouse_press_frame): Remove static global variable.
14895 (w32_clip_to_row): Remove unused variable `f'.
14896 (x_delete_terminal): Remove unused variable `i'.
14897
14898 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
14899 (NOTHING): Remove unused static global variable.
14900 (uniscribe_check_otf): Remove unused variable `table'.
14901 (uniscribe_font_driver): Add missing initializers.
14902
dee091a3
JD
149032011-03-23 Julien Danjou <julien@danjou.info>
14904
14905 * term.c (Fsuspend_tty, Fresume_tty):
14906 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
14907 * window.c (temp_output_buffer_show):
14908 * insdel.c (signal_before_change):
14909 * frame.c (Fhandle_switch_frame):
14910 * fileio.c (Fdo_auto_save):
14911 * emacs.c (Fkill_emacs):
14912 * editfns.c (save_excursion_restore):
14913 * cmds.c (internal_self_insert):
14914 * callint.c (Fcall_interactively):
14915 * buffer.c (Fkill_all_local_variables):
14916 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
14917 Use Frun_hooks.
0f4a96b5 14918 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
e9fce1ac 14919 unconditionally since it does the check itself.
dee091a3 14920
2c520ab5 149212011-03-23 Paul Eggert <eggert@cs.ucla.edu>
f0641eff 14922
c9c49752
PE
14923 Fix more problems found by GCC 4.5.2's static checks.
14924
8abc3f12
PE
14925 * coding.c (encode_coding_raw_text): Avoid unnecessary test
14926 the first time through the loop, since we know p0 < p1 then.
14927 This also avoids a gcc -Wstrict-overflow warning.
14928
a2d26660
PE
14929 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
14930 leading to a memory leak, possible in functions like
14931 load_charset_map_from_file that can allocate an unbounded number
b12ef411 14932 of objects (Bug#8318).
a2d26660 14933
916c72e9
PE
14934 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
14935 that could (at least in theory) be that large.
14936
19ab8a18
PE
14937 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
14938 This is less likely to overflow, and avoids undefined behavior if
14939 overflow does occur. All callers changed. Use strtoul to scan
14940 for the unsigned long integer.
b7cbbd6f
PE
14941 (pint2hrstr): Simplify and tune code slightly.
14942 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
19ab8a18 14943
f0641eff
PE
14944 * scroll.c (do_scrolling): Work around GCC bug 48228.
14945 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
14946
7f650bb9
PE
14947 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
14948 This also avoids a warning with gcc -Wstrict-overflow.
39f5e519
PE
14949 (validate_x_resource_name): Simplify count usage.
14950 This also avoids a warning with gcc -Wstrict-overflow.
7f650bb9 14951
37dd57d1
PE
14952 * fileio.c (Fcopy_file): Report error if fchown or fchmod
14953 fail (Bug#8306).
81e56e61 14954
699979fc 14955 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
dc1ca6a8 14956
401bf9b4
PE
14957 * process.c (Fmake_network_process): Use socklen_t, not int,
14958 where POSIX says socklen_t is required in portable programs.
14959 This fixes a porting bug on hosts like 64-bit HP-UX, where
591b2973 14960 socklen_t is wider than int (Bug#8277).
401bf9b4
PE
14961 (Fmake_network_process, server_accept_connection):
14962 (wait_reading_process_output, read_process_output):
14963 Likewise.
14964
b93aacde
PE
14965 * process.c: Rename or move locals to avoid shadowing.
14966 (list_processes_1, Fmake_network_process):
14967 (read_process_output_error_handler, exec_sentinel_error_handler):
14968 Rename or move locals.
4dc343ee 14969 (Fmake_network_process): Define label "retry_connect" only if needed.
0da49335 14970 (Fnetwork_interface_info): Fix pointer signedness.
f990b4e5 14971 (process_send_signal): Add cast to avoid pointer signedness problem.
7b808126 14972 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
c939f91b 14973 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
b93aacde 14974
af8a867c 14975 Make tparam.h and terminfo.c consistent.
44f230aa
SM
14976 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
14977 Include tparam.h instead, since it declares them.
af8a867c
PE
14978 * cm.h (PC): Remove extern decl; tparam.h now does this.
14979 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
14980 * terminfo.c: Include tparam.h, to check interfaces.
14981 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
14982 (tparam): Adjust signature to match interface in tparam.h;
14983 this removes some undefined behavior. Check that outstring and len
14984 are zero, which they always are with Emacs.
14985 * tparam.h (PC, BC, UP): New extern decls.
14986
0248044d 14987 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
001a7ab4 14988 (xftfont_open): Rename locals to avoid shadowing.
0248044d 14989
8ff096c1 14990 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
a00924bb
PE
14991 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
14992 (OTF_TAG_SYM): Omit macro if not needed.
e932860f 14993 (ftfont_list): Remove unused local.
49eaafba
PE
14994 (get_adstyle_property, ftfont_pattern_entity):
14995 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
14996 Rename locals to avoid shadowing.
8ff096c1 14997
e2be39f6
PE
14998 * xfont.c (xfont_list_family): Mark var as initialized.
14999
c9735e30
PE
15000 * xml.c (make_dom): Now static.
15001
8f5201ae
PE
15002 * composite.c (composition_compute_stop_pos): Rename local to
15003 avoid shadowing.
b246f932
PE
15004 (composition_reseat_it): Remove unused locals.
15005 (find_automatic_composition, composition_adjust_point): Likewise.
80e079b2 15006 (composition_update_it): Mark var as initialized.
11b61122
PE
15007 (find_automatic_composition): Mark vars as initialized,
15008 with a FIXME (Bug#8290).
8f5201ae 15009
760fbc2c
PE
15010 character.h: Rename locals to avoid shadowing.
15011 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
15012 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
15013 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
15014 (BUF_DEC_POS): Be more systematic about renaming local temporaries
15015 to avoid shadowing.
15016
ff08eb85
PE
15017 * textprop.c (property_change_between_p): Remove; unused.
15018
fc7bf025
PE
15019 * intervals.c (interval_start_pos): Now static.
15020
235d7abc
PE
15021 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
15022
44f230aa
SM
15023 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
15024 Rename locals to avoid shadowing.
3e7d6594 15025
50060332
PE
15026 * sound.c (wav_play, au_play, Fplay_sound_internal):
15027 Fix pointer signedness.
d01f234b 15028 (alsa_choose_format): Remove unused local var.
c83b8872
PE
15029 (wav_play): Initialize a variable to 0, to prevent undefined
15030 behavior (Bug#8278).
50060332 15031
c4fc4e30
PE
15032 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
15033
918436ed
PE
15034 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
15035
c939f91b
PE
15036 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
15037 clobbering (Bug#8298).
b9c7f648
PE
15038 * sysdep.c (sys_subshell): Likewise.
15039 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
7e9123a2 15040
6bd8c144
PE
15041 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
15042 This should get cleaned up, so that child_setup has the
15043 same signature on all platforms.
15044
7710357c 15045 * callproc.c (call_process_cleanup): Now static.
cb1d0ef7 15046 (relocate_fd): Rename locals to avoid shadowing.
7710357c 15047
c59da222
CY
150482011-03-22 Chong Yidong <cyd@stupidchicken.com>
15049
15050 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
15051 not to be necessary, and produces flickering.
15052
66b87493
GM
150532011-03-20 Glenn Morris <rgm@gnu.org>
15054
15055 * config.in: Remove file.
15056
45b6f6d5
JB
150572011-03-20 Juanma Barranquero <lekktu@gmail.com>
15058
15059 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
15060 are now in src/globals.h.
15061 (syms_of_minibuf): Remove spurious & from previous change.
15062
cd394be1 150632011-03-20 Leo Liu <sdl.web@gmail.com>
3ec03f7e
LL
15064
15065 * minibuf.c (completing-read-function): New variable.
15066 (completing-read-default): Rename from completing-read.
15067 (completing-read): Call completing-read-function.
15068
b14e3e21
CY
150692011-03-19 Juanma Barranquero <lekktu@gmail.com>
15070
15071 * xfaces.c (Fx_load_color_file):
15072 Read color file from absolute filename (bug#8250).
15073
f2b726e6
JB
150742011-03-19 Juanma Barranquero <lekktu@gmail.com>
15075
15076 * makefile.w32-in: Update dependencies.
15077
09f6ff02
EZ
150782011-03-17 Eli Zaretskii <eliz@gnu.org>
15079
15080 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
15081
29a6015a
PE
150822011-03-17 Paul Eggert <eggert@cs.ucla.edu>
15083
a3a6c54e
PE
15084 Fix more problems found by GCC 4.5.2's static checks.
15085
b766f867
PE
15086 * process.c (make_serial_process_unwind, send_process_trap):
15087 (sigchld_handler): Now static.
15088
be02381c
PE
15089 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
15090 That way, the code declares only the vars that it needs.
15091 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
15092 * s/cygwin.h (PTY_ITERATION): Likewise.
15093 * s/darwin.h (PTY_ITERATION): Likewise.
15094 * s/gnu-linux.h (PTY_ITERATION): Likewise.
15095
57048744
PE
15096 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
15097 * process.c (allocate_pty): Don't declare stb unless it's needed.
15098
7914961c 15099 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
615f2d59
PE
15100 (CONSTANTLIM): Remove; unused.
15101 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
15102 Define only if needed.
7914961c 15103
b3967b18
PE
15104 * unexelf.c (unexec): Name an expression,
15105 to avoid gcc -Wbad-function-cast warning.
9ae71512
PE
15106 Use a different way to cause a compilation error if anyone uses
15107 n rather than nn, a way that does not involve shadowing.
73366a00 15108 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
b3967b18 15109
29a6015a
PE
15110 * deps.mk (unexalpha.o): Remove; unused.
15111
43cfc33e 15112 New file unexec.h, the (simple) interface for unexec (Bug#8267).
7feda0d2 15113 * unexec.h: New file.
ce701a33
PE
15114 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
15115 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
15116 Depend on unexec.h.
15117 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
15118 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
15119 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
381259ef 15120 Change as necessary to match prototype in unexec.h.
ce701a33 15121
01f44d5a
PE
15122 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
15123 shadowing.
4f63c6bb 15124 (back_comment, skip_chars): Mark vars as initialized.
01f44d5a 15125
a6670b0b
PE
15126 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
15127 Rename locals to avoid shadowing.
15128
cef2010d 15129 * lread.c (read1): Rewrite so as not to use empty "else".
0902fe45 15130 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
cef2010d 15131
d4d7173a
PE
15132 * print.c (Fredirect_debugging_output): Fix pointer signedess.
15133
f08b802a
PE
15134 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
15135 warning when compiling print.c.
15136
3ddb0639
PE
15137 * font.c (font_unparse_fcname): Abort in an "impossible" situation
15138 instead of using an uninitialized var.
5ad03b97 15139 (font_sort_entities): Mark var as initialized.
3ddb0639 15140
170a2692
PE
15141 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
15142
e663c700
PE
15143 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
15144 pointers to constants.
89bc529a 15145 (font_parse_fcname): Remove unused vars.
7b81e2d0 15146 (font_delete_unmatched): Now static.
ea838e10 15147 (font_get_spec): Remove; unused.
13a547c6
PE
15148 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
15149 (font_update_drivers, Ffont_get_glyphs, font_add_log):
15150 Rename or move locals to avoid shadowing.
e663c700 15151
2a80c887 15152 * fns.c (require_nesting_list, require_unwind): Now static.
612f56df 15153 (Ffillarray): Rename locals to avoid shadowing.
2a80c887 15154
1384fa33 15155 * floatfns.c (domain_error2): Define only if needed.
a885e2ed 15156 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1384fa33 15157
8b2c52e9
PE
15158 * alloc.c (mark_backtrace): Move decl from here ...
15159 * lisp.h: ... to here, so that it can be checked.
15160
475545b5 15161 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
d28a2170 15162 (Fdefvar): Rewrite so as not to use empty "else".
cfcbfb1a
PE
15163 (lisp_indirect_variable): Name an expression,
15164 to avoid gcc -Wbad-function-cast warning.
1faed8ae 15165 (Fdefvar): Rename locals to avoid shadowing.
475545b5 15166
b1349114 15167 * callint.c (quotify_arg, quotify_args): Now static.
a3e8cbda 15168 (Fcall_interactively): Rename locals to avoid shadowing.
b0e80955 15169 Use const pointer when appropriate.
b1349114 15170
a2928364
PE
15171 * lisp.h (get_system_name, get_operating_system_release):
15172 Move decls here, to check interfaces.
15173 * process.c (get_operating_system_release): Move decl to lisp.h.
15174 * xrdb.c (get_system_name): Likewise.
63c5d10b
PE
15175 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
15176 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
15177 some of which prompt warnings from gcc -Wbad-function-cast.
545b49b4
PE
15178 (Fformat_time_string, Fencode_time, Finsert_char):
15179 (Ftranslate_region_internal, Fformat):
15180 Rename or remove local vars to avoid shadowing.
9710023e 15181 (Ftranslate_region_internal): Mark var as initialized.
63c5d10b 15182
a415e694
PE
15183 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
15184 avoid shadowing.
15185
8ef4622d
PE
15186 * lisp.h (eassert): Check that the argument compiles, even if
15187 ENABLE_CHECKING is not defined.
15188
946f9a5b
PE
15189 * data.c (Findirect_variable): Name an expression, to avoid
15190 gcc -Wbad-function-cast warning.
112396d6 15191 (default_value, arithcompare, arith_driver, arith_error): Now static.
b9b84fa9 15192 (store_symval_forwarding): Rename local to avoid shadowing.
44f230aa
SM
15193 (Fmake_variable_buffer_local, Fmake_local_variable):
15194 Mark variables as initialized.
52746918 15195 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
946f9a5b 15196
e5aab7e7 15197 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
ae35e756
PE
15198 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
15199 Rename locals to avoid shadowing.
dff45157
PE
15200 (mark_stack): Move local variables into the #ifdef region where
15201 they're used.
7bc26fdb
PE
15202 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
15203 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
15204 needed otherwise.
15205 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
15206 (GC_STRING_CHARS): Remove; not used.
d40d4be1 15207 (Fmemory_limit): Cast sbrk's returned value to char *.
ae35e756 15208
e5aab7e7
PE
15209 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
15210 avoids undefined behavior in theory.
15211
4da60324
PE
15212 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
15213
88043301
PE
15214 Use functions, not macros, for up- and down-casing (Bug#8254).
15215 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
15216 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
15217 to use the following functions instead of these macros.
15218 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
15219 EMACS_INT, since callers assume the returned value fits in int.
15220 (upcase1): Likewise, for UPCASE_TABLE.
15221 (uppercasep, lowercasep, upcase): New static inline functions.
0da09c43 15222 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
db69b0cd 15223 the race-condition problem in the old DOWNCASE.
88043301 15224
19ed5445
PE
15225 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
15226 Rename locals to avoid shadowing.
15227 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
abbd1bcf
PE
15228 (regex_compile, re_search_2, re_match_2_internal):
15229 Remove unused local vars.
952db0d7
PE
15230 (FREE_VAR): Rewrite so as not to use empty "else",
15231 which gcc can warn about.
da053e48 15232 (regex_compile, re_match_2_internal): Mark locals as initialized.
b313f9d8
PE
15233 (RETALLOC_IF): Define only if needed.
15234 (WORDCHAR_P): Likewise. This one is never needed, but is used
15235 only in a comment talking about a compiler bug, so put inside
15236 the #if 0 of that comment.
15237 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
15238 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
15239 Remove; unused.
19ed5445 15240
1f3561e4 15241 * search.c (boyer_moore): Rename locals to avoid shadowing.
76ef09b7
PE
15242 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
15243 (PREV_CHAR_BOUNDARY): Likewise.
1f3561e4 15244
ded6f8f7
PE
15245 * search.c (simple_search): Remove unused var.
15246
dbd37a95
PE
15247 * dired.c (compile_pattern): Move decl from here ...
15248 * lisp.h: ... to here, so that it can be checked.
15249 (struct re_registers): New forward decl.
15250
7e47afad
PE
15251 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
15252
85f24f61
PE
15253 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
15254 All uses changed.
15255 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
15256 Rename locals to avoid shadowing.
5671df8f 15257 (Fvertical_motion): Mark locals as initialized.
85f24f61 15258
181aa2be 15259 * casefiddle.c (casify_object, casify_region): Now static.
e45a141a 15260 (casify_region): Mark local as initialized.
181aa2be 15261
930d429c
PE
15262 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
15263
7082eac6
PE
15264 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
15265 New macros, so that the caller can use some names other than
15266 gcpro1, gcpro2, etc.
15267 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
15268 of the new macros.
15269 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
15270 argument, for consistency with GCPRO2_VAR, etc: it is now the
15271 prefix of the variable, not the variable itself. All uses
15272 changed.
38b2c076
PE
15273 * dired.c (directory_files_internal, file_name_completion):
15274 Rename locals to avoid shadowing.
15275
15206ed9
PE
15276 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
15277 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
15278 dired.c's scmp function, had undefined behavior.
15279 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
15280 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
15281 * buffer.h: ... to here, because these macros use current_buffer,
15282 and the new implementation with inline functions needs to have
15283 current_buffer in scope now, rather than later when the macros
15284 are used.
15285 (downcase, upcase1): New static inline functions.
15286 (DOWNCASE, UPCASE1): Reimplement using these functions.
15287 This avoids undefined behavior in expressions like
15288 DOWNCASE (x) == DOWNCASE (y), which previously suffered
15289 from race conditions in accessing the global variables
15290 case_temp1 and case_temp2.
15291 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
15292 * lisp.h (case_temp1, case_temp2): Remove their decls.
15293 * character.h (ASCII_CHAR_P): Move from here ...
15294 * lisp.h: ... to here, so that the inline functions mentioned
15295 above can use them.
15296
4a6bea26
PE
15297 * dired.c (directory_files_internal_unwind): Now static.
15298
f14b7e14
PE
15299 * fileio.c (file_name_as_directory, directory_file_name):
15300 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
15301 Now static.
2893f146
PE
15302 (file_name_as_directory): Use const pointers when appropriate.
15303 (Fexpand_file_name): Likewise. In particular, newdir might
15304 point at constant storage, so make it a const pointer.
fd4ead52 15305 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
b14aac08
PE
15306 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
15307 signedness issues.
f839df0c
PE
15308 (Fset_file_times, Finsert_file_contents, auto_save_error):
15309 Rename locals to avoid shadowing.
f14b7e14 15310
5716756e 15311 * minibuf.c (choose_minibuf_frame_1): Now static.
62137a95
PE
15312 (Ftry_completion, Fall_completions): Rename or remove locals
15313 to avoid shadowing.
5716756e 15314
b4c3046a
PE
15315 * marker.c (bytepos_to_charpos): Remove; unused.
15316
b45db522
PE
15317 * lisp.h (verify_bytepos, count_markers): New decls,
15318 so that gcc does not warn that these functions aren't declared.
15319
85876d07
PE
15320 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
15321 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
f0cb4a60 15322 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
40ef059e 15323 (copy_text): Remove unused local var.
85876d07 15324
03d78a21 15325 * filelock.c (within_one_second): Now static.
b3dd38ab 15326 (lock_file_1): Rename local to avoid shadowing.
03d78a21 15327
5df8f01b
PE
15328 * buffer.c (fix_overlays_before): Mark locals as initialized.
15329 (fix_start_end_in_overlays): Likewise. This function should be
15330 simplified by using pointers-to-pointers, but that's a different
15331 matter.
b1d876f1 15332 (switch_to_buffer_1): Now static.
8f54f30a
PE
15333 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
15334 (report_overlay_modification): Rename locals to avoid shadowing.
c3bd59b5 15335
a70072c9 15336 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
fbd02d7b 15337 Fix pointer signedness issue.
edced198
PE
15338 (sys_subshell): Mark local as volatile if checking for lint,
15339 to suppress a gcc -Wclobbered warning that does not seem to be right.
15dfd3d9 15340 (MAXPATHLEN): Define only if needed.
a70072c9 15341
a0977c44
PE
15342 * process.c (serial_open, serial_configure): Move decls from here ...
15343 * systty.h: ... to here, so that they can be checked.
15344
a884fdcc
PE
15345 * fns.c (get_random, seed_random): Move extern decls from here ...
15346 * lisp.h: ... to here, so that they can be checked.
15347
604efe86 15348 * sysdep.c (reset_io): Now static.
b8950c94 15349 (wait_for_termination_signal): Remove; unused.
604efe86 15350
38fc62d9
PE
15351 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
15352 (copy_keymap_item, append_key, push_text_char_description):
15353 Now static.
1004a21a 15354 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
dbbb8427 15355 (DENSE_TABLE_SIZE): Remove; unused.
c1141155
PE
15356 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
15357 (describe_map_tree):
15358 Rename locals to avoid shadowing.
38fc62d9 15359
2f2650da
PE
15360 * keyboard.c: Declare functions static if they are not used elsewhere.
15361 (echo_char, echo_dash, cmd_error, top_level_2):
15362 (poll_for_input, handle_async_input): Now static.
69a058fa
PE
15363 (read_char, kbd_buffer_get_event, make_lispy_position):
15364 (make_lispy_event, make_lispy_movement, apply_modifiers):
15365 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
15366 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
15367 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
c8a06054 15368 (read_key_sequence, read_char): Mark locals as initialized.
3ac94672 15369 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
2f2650da 15370
a053e86c 15371 * keyboard.h (make_ctrl_char): New decl.
da2f2dd9
PE
15372 (mark_kboards): Move decl here ...
15373 * alloc.c (mark_kboards): ... from here.
a053e86c 15374
4752793e
PE
15375 * lisp.h (force_auto_save_soon): New decl.
15376
74f10ca7 15377 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
244fc23d
PE
15378 (DEFINE_DUMMY_FUNCTION): New macro.
15379 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
15380 Use it.
c03cd23f
PE
15381 (main): Add casts to avoid warnings
15382 if GCC considers string literals to be constants.
74f10ca7 15383
022e70d4
PE
15384 * lisp.h (fatal_error_signal): Add decl, since it's exported.
15385
59d6fe83
PE
15386 * dbusbind.c: Pointer signedness fixes.
15387 (xd_signature, xd_append_arg, xd_initialize):
15388 (Fdbus_call_method, Fdbus_call_method_asynchronously):
15389 (Fdbus_method_return_internal, Fdbus_method_error_internal):
15390 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
15391 (Fdbus_register_signal): Use SSDATA when the context wants char *.
15392
78320123
PE
15393 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
15394 if GCC considers string literals to be constants.
49cebcca 15395 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
78320123 15396
35ac2a97
SM
153972011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
15398
fb103ca9
SM
15399 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
15400 (print_preprocess, print_object): New macro to fix last change.
15401
35ac2a97
SM
15402 * print.c (print_preprocess): Don't forget font objects.
15403
62973b41
JB
154042011-03-16 Juanma Barranquero <lekktu@gmail.com>
15405
15406 * emacs.c (USAGE3): Doc fixes.
15407
0e48bb22
AS
154082011-03-15 Andreas Schwab <schwab@linux-m68k.org>
15409
15410 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
15411 structure.
15412
7684e57b
JB
154132011-03-14 Juanma Barranquero <lekktu@gmail.com>
15414
15415 * lisp.h (VWindow_system, Qfile_name_history):
15416 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
15417 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
15418 (w32_system_caret_x, w32_system_caret_y): Declare extern.
15419
15420 * w32select.c: Don't #include "keyboard.h".
c96bbc66 15421 (run_protected): Add extern declaration for waiting_for_input.
7684e57b
JB
15422
15423 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
15424 * w32console.c (detect_input_pending, read_input_pending)
15425 (encode_terminal_code):
15426 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
15427 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
15428 (w32_system_caret_y, Qfile_name_history):
15429 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
15430 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
15431 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
15432 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
15433 * w32proc.c (Qlocal, report_file_error):
15434 * w32term.c (Vwindow_system, updating_frame):
15435 * w32uniscribe.c (initialized, uniscribe_font_driver):
15436 Remove unneeded extern declarations.
15437
2aa46d6c
CY
154382011-03-14 Chong Yidong <cyd@stupidchicken.com>
15439
c96bbc66 15440 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
2aa46d6c 15441
cffc6f3b
CY
154422011-03-13 Chong Yidong <cyd@stupidchicken.com>
15443
15444 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
15445 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
15446 These macros can no longer be used for assignment.
15447
44f230aa
SM
15448 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
15449 Assign struct members directly, instead of using BUF_BEGV etc.
cffc6f3b
CY
15450 (record_buffer_markers, fetch_buffer_markers): New functions for
15451 recording and fetching special buffer markers.
15452 (set_buffer_internal_1, set_buffer_temp): Use them.
15453
15454 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
15455
15456 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
15457
15458 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
15459 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
15460
15461 * xdisp.c (hscroll_window_tree):
15462 (reconsider_clip_changes): Use PT instead of BUF_PT.
15463
d251f04b
EZ
154642011-03-13 Eli Zaretskii <eliz@gnu.org>
15465
15466 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
15467 $(EMACS_ROOT)/lib/intprops.h.
15468
f0c77cd1
PE
154692011-03-13 Paul Eggert <eggert@cs.ucla.edu>
15470
3eca4629
PE
15471 Fix more problems found by GCC 4.5.2's static checks.
15472
7c86ee98
PE
15473 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
15474 to unsigned char * to avoid compiler diagnostic.
b0afc268
PE
15475 (xg_free_frame_widgets): Make it clear that a local variable is
15476 needed only if USE_GTK_TOOLTIP.
01e0b5ad
PE
15477 (gdk_window_get_screen): Make it clear that this macro is needed
15478 only if USE_GTK_TOOLTIP.
1e5524e7
PE
15479 (int_gtk_range_get_value): New function, which avoids a diagnostic
15480 from gcc -Wbad-function-cast.
15481 (xg_set_toolkit_scroll_bar_thumb): Use it.
15482 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
15483 diagnostic from gcc -Wbad-function-cast.
65dc836c
PE
15484 (get_utf8_string, xg_get_file_with_chooser):
15485 Rename locals to avoid shadowing.
15486 (create_dialog): Move locals to avoid shadowing.
7c86ee98 15487
41729b81
PE
15488 * xgselect.c (xg_select): Remove unused var.
15489
f0c77cd1
PE
15490 * image.c (four_corners_best): Mark locals as initialized.
15491 (gif_load): Initialize transparent_p to zero (Bug#8238).
15492 Mark another local as initialized.
ec6cf4c6 15493 (my_png_error, my_error_exit): Mark with NO_RETURN.
f0c77cd1 15494
ce0ad53d 15495 * image.c (clear_image_cache): Now static.
d5d5a617 15496 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
e22cffbc 15497 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
77a765fd
PE
15498 (x_edge_detection): Remove unnecessary cast that
15499 gcc -Wbad-function-cast diagnoses.
2037898d 15500 (gif_load): Fix pointer signedness.
6ae141d6
PE
15501 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
15502 (jpeg_load, gif_load): Rename locals to avoid shadowing.
ce0ad53d 15503
33383987 155042011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3eca4629 15505
d32df629
PE
15506 Improve quality of tests for time stamp overflow.
15507 For example, without this patch (encode-time 0 0 0 1 1
15508 1152921504606846976) returns the obviously-bogus value (-948597
15509 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
15510 reports time overflow. See
15511 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
b8d9bd41
PE
15512 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
15513 * editfns.c: Include limits.h and intprops.h.
15514 (TIME_T_MIN, TIME_T_MAX): New macros.
15515 (time_overflow): Move earlier, to before first use.
15516 (hi_time, lo_time): New functions, for an accurate test for
15517 out-of-range times.
15518 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
15519 (Fget_internal_run_time): Don't assume time_t fits in int.
15520 (make_time): Use list2 instead of Fcons twice.
15521 (Fdecode_time): More accurate test for out-of-range times.
15522 (check_tm_member): New function.
15523 (Fencode_time): Use it, to test for out-of-range times.
d32df629
PE
15524 (lisp_time_argument): Don't rely on undefined left-shift and
15525 right-shift behavior when checking for time stamp overflow.
8be6f318 15526
fe31d94c
PE
15527 * editfns.c (time_overflow): New function, refactoring common code.
15528 (Fformat_time_string, Fdecode_time, Fencode_time):
15529 (Fcurrent_time_string): Use it.
15530
8be6f318
PE
15531 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
15532 * dired.c (make_time): Move to ...
15533 * editfns.c (make_time): ... here.
15534 * systime.h: Note the move.
15535
09d9db2c 155362011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
c47cbdfd 15537
126bc0dc
YM
15538 * fringe.c (update_window_fringes): Remove unused variables.
15539
c47cbdfd
YM
15540 * unexmacosx.c (copy_data_segment): Also copy __got section.
15541 (Bug#8223)
15542
7ac80be9
EZ
155432011-03-12 Eli Zaretskii <eliz@gnu.org>
15544
c96bbc66 15545 * termcap.c [MSDOS]: Include "msdos.h".
058e5dad
EZ
15546 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
15547 Constify `char *' arguments and their references according to
15548 prototypes in tparam.h.
15549
ecb0f94d 15550 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
058e5dad 15551
7ac80be9
EZ
15552 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
15553 Adapt all references accordingly.
15554
15555 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
15556
ef1fd07e
TT
155572011-03-11 Tom Tromey <tromey@redhat.com>
15558
15559 * buffer.c (syms_of_buffer): Remove obsolete comment.
15560
7ef4b50c
EZ
155612011-03-11 Eli Zaretskii <eliz@gnu.org>
15562
15563 * termhooks.h (encode_terminal_code): Declare prototype.
15564
15565 * msdos.c (encode_terminal_code): Don't declare prototype.
15566
15567 * term.c (encode_terminal_code): Now external again, used by
15568 w32console.c and msdos.c.
15569
44f230aa
SM
15570 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
15571 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
7ef4b50c 15572
4b1ec863 155732011-03-11 Paul Eggert <eggert@cs.ucla.edu>
f78faa98 15574
1714f52b 15575 Fix some minor problems found by GCC 4.5.2's static checks.
83316bf4 15576
4b1ec863
PE
15577 * fringe.c (update_window_fringes): Mark locals as initialized
15578 (Bug#8227).
15579 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
bf60f616 15580
524c7aa6
PE
15581 * alloc.c (mark_fringe_data): Move decl from here ...
15582 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
15583 to check its interface.
15584 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
15585
a5c0af81 15586 * fontset.c (free_realized_fontset): Now static.
7519b8cd 15587 (Fset_fontset_font): Rename local to avoid shadowing.
cc6e5db1 15588 (fontset_font): Mark local as initialized.
a9a06e0b 15589 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
a5c0af81 15590
b4716021
PE
15591 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
15592
811e9bac 15593 * xselect.c (x_disown_buffer_selections): Remove; not used.
7b83e2f1 15594 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
aa0daa9f
PE
15595 (x_own_selection, Fx_disown_selection_internal): Rename locals
15596 to avoid shadowing.
15597 (x_handle_dnd_message): Remove local to avoid shadowing.
811e9bac 15598
7e3ab302
PE
15599 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
15600 so that the caller can use some name other than gcpro1.
15601 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
58d2d479
PE
15602 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
15603 (Fx_backspace_delete_keys_p):
15604 Use them to avoid shadowing, and rename vars to avoid shadowing.
15605 (x_decode_color, x_set_name, x_window): Now static.
6b437900 15606 (Fx_create_frame): Add braces to silence GCC warning.
c0951e53 15607 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
06b0c8a0
PE
15608 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
15609 Remove unused locals.
7e3ab302
PE
15610 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
15611 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
15612 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
15613 macros.
f78faa98 15614
e2b13473
PE
15615 * xterm.h (x_mouse_leave): New decl.
15616
77f23912
PE
15617 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
15618 Remove unused functions.
cdf4ba58
PE
15619 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
15620 (x_calc_absolute_position): Now static.
7411c686 15621 (XTread_socket): Don't define label "out" unless it's used.
2b07bcff 15622 Don't declare local "event" unless it's used.
ed7bf3a5
PE
15623 (x_iconify_frame, x_free_frame_resources): Don't declare locals
15624 unless they are used.
38d0b34a
PE
15625 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
15626 (x_fatal_error_signal): Remove; not used.
a6067996
PE
15627 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
15628 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
15629 (x_error_catcher, x_connection_closed, x_error_handler):
15630 (x_error_quitter, xembed_send_message, x_iconify_frame):
15631 (my_log_handler): Rename locals to avoid shadowing.
28f1c698 15632 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2a8fade0 15633 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
77f23912 15634
44f230aa
SM
15635 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
15636 Rename or move locals to avoid shadowing.
6b463e58 15637 (tty_defined_color, merge_face_heights): Now static.
5967d051 15638 (free_realized_faces_for_fontset): Remove; not used.
1e9966ea
PE
15639 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
15640 does not deduce is never used uninitialized.
73719eba
PE
15641 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
15642 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
071048a3 15643
426994c3 15644 * terminal.c (store_terminal_param): Now static.
5489860b 15645
032f1620 15646 * xmenu.c (menu_highlight_callback): Now static.
9d66f88e 15647 (set_frame_menubar): Remove unused local.
d4323972 15648 (xmenu_show): Rename parameter to avoid shadowing.
6d1f7fee
PE
15649 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
15650 since they might point to immutable storage.
281585b0
PE
15651 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
15652 since it's unused otherwise.
032f1620 15653
367c19e5 15654 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
53df7c11 15655 Add a FIXME, since the code still doesn't look right. (Bug#8215)
9f36b9fd
PE
15656 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
15657 avoids a gcc -Wuninitialized diagnostic.
0e086e8f 15658 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
44a3a108
PE
15659 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
15660 does not deduce are never used uninitialized.
70739cbe 15661
07b48fa9
PE
15662 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
15663
8868a238 15664 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
4554d213
PE
15665 * window.c (window_loop, size_window):
15666 (run_window_configuration_change_hook, enlarge_window): Likewise.
8868a238 15667
7e5cf297 15668 * window.c (display_buffer): Now static.
d6550a9f
PE
15669 (size_window): Mark variables that gcc -Wuninitialized
15670 does not deduce are never used uninitialized.
a586633d
PE
15671 * window.h (check_all_windows): New decl, to forestall
15672 gcc -Wmissing-prototypes diagnostic.
5b555da1 15673 * dispextern.h (bidi_dump_cached_states): Likewise.
7e5cf297 15674
f6095868
PE
15675 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
15676 shadowing.
15677 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
726929c4
PE
15678 Include <limits.h>.
15679 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
15680 and to avoid gcc -Wuninitialized warning.
89ef49df
PE
15681 (load_charset_map): Mark variables that gcc -Wuninitialized
15682 does not deduce are never used uninitialized.
53df7c11 15683 (load_charset): Abort instead of using uninitialized var (Bug#8229).
f6095868 15684
f38b440c
PE
15685 * coding.c (coding_set_source, coding_set_destination):
15686 Use "else { /* comment */ }" rather than "else /* comment */;"
15687 for clarity, and to avoid gcc -Wempty-body warning.
2735d060
PE
15688 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
15689 a block, when the outer 'i' will do.
15690 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
15691 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
15692 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
15693 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
15694 (Fdecode_sjis_char, Fdefine_coding_system_internal):
15695 Rename locals to avoid shadowing.
15696 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
e2f1bab9
PE
15697 * coding.c (emacs_mule_char, encode_invocation_designation):
15698 Now static, since they're not used elsewhere.
413bb2db 15699 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
c4a63b12 15700 (decode_coding_object, encode_coding_object, detect_coding_system):
ee05f961
PE
15701 (decode_coding_emacs_mule): Mark variables that gcc
15702 -Wuninitialized does not deduce are never used uninitialized.
160b01f6
PE
15703 (detect_coding_iso_2022): Initialize a local variable that might
15704 be used uninitialized. Leave a FIXME because it's not clear that
53df7c11 15705 this initialization is needed. (Bug#8211)
5f58e762
PE
15706 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
15707 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
15708 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
15709 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
15710 Remove unused macros.
f38b440c 15711
232b38b9 15712 * category.c (hash_get_category_set): Remove unused local var.
9f3b5e69 15713 (copy_category_table): Now static, since it's not used elsewhere.
d0891610 15714 * character.c (string_count_byte8): Likewise.
232b38b9 15715
fb90da1b
PE
15716 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
15717 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
15718
fb93dbc2
PE
15719 * chartab.c (copy_sub_char_table): Now static, since it's not used
15720 elsewhere.
5c156ace
PE
15721 (sub_char_table_ref_and_range, char_table_ref_and_range):
15722 Rename locals to avoid shadowing.
bbcd0949 15723 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
fb93dbc2 15724
7d3b3862 15725 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
630d6892 15726 (BIDI_BOB): Remove unused macro.
7d3b3862 15727
6be7d3da
PE
15728 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
15729 deduce are never used uninitialized.
c2ed9c8b 15730 * term.c (encode_terminal_code): Likewise.
6be7d3da 15731
75f8807f 15732 * term.c (encode_terminal_code): Now static. Remove unused local.
72abad34 15733
50938595
PE
15734 * tparam.h: New file.
15735 * term.c, tparam.h: Include it.
15736 * deps.mk (term.o, tparam.o): Depend on tparam.h.
15737 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
15738 Move these decls to tparam.h, and make them agree with what
15739 is actually in tparam.c. The previous trick of using incompatible
15740 decls in different modules does not conform to the C standard.
15741 All callers of tparam changed to use tparam's actual API.
15742 * tparam.c (tparam1, tparam, tgoto):
15743 Use const pointers where appropriate.
15744
fbceeba2
PE
15745 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
15746 * cm.h (struct cm): Likewise.
15747 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
15748 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
15749 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
15750 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
15751 (turn_on_face, init_tty): Likewise.
15752 * termchar.h (struct tty_display_info): Likewise.
fbceeba2 15753
7f3f1250
PE
15754 * term.c (term_mouse_position): Rename local to avoid shadowing.
15755
e6ca6543
PE
15756 * alloc.c (mark_ttys): Move decl from here ...
15757 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
15758
c40f8d15
AS
157592011-03-11 Andreas Schwab <schwab@linux-m68k.org>
15760
15761 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
15762
cfe0661d
JB
157632011-03-09 Juanma Barranquero <lekktu@gmail.com>
15764
15765 * search.c (compile_pattern_1): Remove argument regp, unused since
15766 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
15767 (compile_pattern): Don't pass it.
15768
0afb4571
J
157692011-03-08 Jan Djärv <jan.h.d@swipnet.se>
15770
15771 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
15772 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
15773 for ! HAVE_GTK3.
15774 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
15775
15776 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
15777
15778 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
15779 gdk_window_get_screen, gdk_window_get_geometry,
15780 gdk_x11_window_lookup_for_display and GDK_KEY_g.
15781 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
15782 (xg_get_pixbuf_from_pixmap): New function.
15783 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
15784 to Pixmap, take frame as parameter, remove GdkColormap parameter.
15785 Call xg_get_pixbuf_from_pixmap instead of
15786 gdk_pixbuf_get_from_drawable.
15787 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
15788 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
15789 (xg_check_special_colors): Use GtkStyleContext and its functions
15790 for HAVE_GTK3.
15791 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
15792 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
15793 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
44f230aa
SM
15794 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
15795 Call gtk_widget_get_preferred_size.
0afb4571
J
15796 (xg_frame_resized): gdk_window_get_geometry only takes 5
15797 parameters.
44f230aa
SM
15798 (xg_win_to_widget, xg_event_is_for_menubar):
15799 Call gdk_x11_window_lookup_for_display.
0afb4571
J
15800 (xg_set_widget_bg): New function.
15801 (delete_cb): New function.
895009e1 15802 (xg_create_frame_widgets): Connect delete-event to delete_cb.
5c32d3f2 15803 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
0afb4571
J
15804 (xg_set_background_color): Call xg_set_widget_bg.
15805 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
15806 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
15807 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
15808 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
15809 if ! HAVE_GTK3.
15810 (update_frame_tool_bar): Call gtk_widget_hide.
15811 (xg_initialize): Use GDK_KEY_g.
15812
15813 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
15814 if ! HAVE_GTK3
15815 (x_session_initialize): Call gdk_x11_set_sm_client_id.
15816
15817 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
15818 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
15819 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
15820
1c2cc4ef
JB
158212011-03-08 Juanma Barranquero <lekktu@gmail.com>
15822
15823 * w32xfns.c (select_palette): Check success of RealizePalette against
15824 GDI_ERROR, not zero.
15825
33383987 15826See ChangeLog.11 for earlier changes.
aac0c6e3
MR
15827
15828;; Local Variables:
15829;; coding: utf-8
aac0c6e3
MR
15830;; End:
15831
2f097256 15832 Copyright (C) 2011-2012 Free Software Foundation, Inc.
aac0c6e3
MR
15833
15834 This file is part of GNU Emacs.
15835
15836 GNU Emacs is free software: you can redistribute it and/or modify
15837 it under the terms of the GNU General Public License as published by
15838 the Free Software Foundation, either version 3 of the License, or
15839 (at your option) any later version.
15840
15841 GNU Emacs is distributed in the hope that it will be useful,
15842 but WITHOUT ANY WARRANTY; without even the implied warranty of
15843 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15844 GNU General Public License for more details.
15845
15846 You should have received a copy of the GNU General Public License
15847 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.