Optimize pure C strings initialization.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
2a0213a6
DA
12012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
2
3 Optimize pure C strings initialization.
4 * lisp.h (make_pure_string): Fix prototype.
5 (build_pure_c_string): New function, defined as static inline. This
6 provides a better opportunity to optimize away calls to strlen when
7 the function is called with compile-time constant argument.
8 * alloc.c (make_pure_c_string): Fix comment. Change to add nchars
9 argument, adjust users accordingly. Use build_pure_c_string where
10 appropriate.
11 * buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c,
12 * keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c,
13 * xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
14
cb1caeaf
DA
152012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
16
17 Avoid calls to strlen in miscellaneous functions.
18 * buffer.c (init_buffer): Use precalculated len, adjust if needed.
19 * font.c (Ffont_xlfd_name): Likewise. Change to call make_string.
20 * lread.c (openp): Likewise.
21
c293e30c
DA
222012-07-10 Dmitry Antipov <dmantipov@yandex.ru>
23
24 Avoid calls to strlen in path processing functions.
25 * fileio.c (file_name_as_directory): Add comment. Change to add
26 srclen argument and return the length of result. Adjust users
27 accordingly.
28 (directory_file_name): Fix comment. Change to add srclen argument,
cb1caeaf 29 swap 1st and 2nd arguments to obey the common convention. Adjust
c293e30c
DA
30 users accordingly.
31 * filelock.c (fill_in_lock_file_name): Avoid calls to strlen.
32
9e059e3f
GM
332012-07-10 Glenn Morris <rgm@gnu.org>
34
d02eb359
GM
35 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/netbsd.h, s/unixware.h:
36 Move PENDING_OUTPUT_COUNT definition to configure.
37
882cf227
GM
38 * s/irix6-5.h (DATA_START, DATA_SEG_BITS):
39 * s/hpux10-20.h (DATA_SEG_BITS, DATA_START):
40 * s/gnu.h (DATA_START): Move definitions to configure.
41
af6e839f
GM
42 * s/irix6-5.h (SETUP_SLAVE_PTY, PTY_NAME_SPRINTF): Drop ifdef guards.
43 We include usg5-4-common.h, which defines them both.
44
40289a12
GM
45 * s/gnu.h: Don't include fcntl.h (every file in Emacs that uses
46 O_RDONLY already includes it).
47
9e059e3f
GM
48 Stop ns builds setting the EMACSLOADPATH environment variable.
49 * nsterm.m (ns_load_path): Rename from ns_init_paths.
50 Now it does not set EMACSLOADPATH, just returns the load-path string.
51 * nsterm.h: Update accordingly.
52 * lread.c [HAVE_NS]: Include nsterm.h.
53 (init_lread) [HAVE_NS]: Use ns_load_path.
54 * emacs.c (main) [HAVE_NS]: No longer call ns_init_paths.
55
7c4e8ec0
GM
562012-07-09 Glenn Morris <rgm@gnu.org>
57
d4f600ff
GM
58 * s/gnu.h (SIGNALS_VIA_CHARACTERS): No need to define it here,
59 since the included bsd-common.h does so.
60
cbb31951
GM
61 Stop ns builds setting the EMACSPATH environment variable.
62 * nsterm.m (ns_exec_path): New function, split from ns_init_paths.
63 (ns_init_paths): Do not set EMACSPATH.
64 * nsterm.h (ns_exec_path): Add it.
65 * callproc.c (init_callproc_1, init_callproc) [HAVE_NS]:
66 Use ns_exec_path.
67
7c4e8ec0
GM
68 * nsterm.m, nsterm.h (ns_etc_directory): Fix type, empty return.
69
26bccfae
PE
702012-07-09 Paul Eggert <eggert@cs.ucla.edu>
71
a0bee46f
PE
72 * process.c (wait_reading_process_output): 'waitchannels' was unset
73 when read_kbd || !NILP (wait_for_cell); fix this.
74
5994c183
PE
75 Add GCC-style 'const' attribute to functions that can use it.
76 * character.h (char_resolve_modifier_mask):
77 * keyboard.h (make_ctrl_char):
78 * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe)
79 (init_character_once, next_almost_prime, init_fns, init_image)
80 (flush_pending_output, init_sound):
81 * mem-limits.h (start_of_data):
82 * menu.h (finish_menu_items):
83 Add ATTRIBUTE_CONST.
84 * emacs.c (DEFINE_DUMMY_FUNCTION):
85 Declare the dummy function with ATTRIBUTE_CONST.
86 * lisp.h (Fbyteorder, Fmax_char, Fidentity):
87 Add decls with ATTRIBUTE_CONST.
88
26bccfae
PE
89 Minor improvements to make_formatted_string.
90 * alloc.c (make_formatted_string): Prefer int to ptrdiff_t
91 where int is good enough, as vsprintf returns an int.
92 * lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF.
93
a8290ec3
DA
942012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
95
96 Use make_formatted_string to avoid double length calculation.
97 * lisp.h (make_formatted_string): New prototype.
98 * alloc.c (make_formatted_string): New function.
99 * buffer.c (Fgenerate_new_buffer_name): Use it.
100 * dbus.c (syms_of_dbusbind): Likewise.
101 * editfns.c (Fcurrent_time_zone): Likewise.
102 * filelock.c (get_boot_time): Likewise.
103 * frame.c (make_terminal_frame, set_term_frame_name)
104 (x_report_frame_params): Likewise.
105 * image.c (gs_load): Likewise.
106 * minibuf.c (get_minibuffer): Likewise.
107 * msdos.c (dos_set_window_size): Likewise.
108 * process.c (make_process): Likewise.
109 * xdisp.c (ensure_echo_area_buffers): Likewise.
110 * xsettings.c (apply_xft_settings): Likewise.
111
d01ba2f1
GM
1122012-07-09 Glenn Morris <rgm@gnu.org>
113
114 Stop ns builds polluting the environment with EMACSDATA, EMACSDOC.
115 * nsterm.m (ns_etc_directory): New function, split from ns_init_paths.
116 (ns_init_paths): Do not set EMACSDATA, EMACSDOC.
117 * nsterm.h (ns_etc_directory): Add it.
118 * callproc.c [HAVE_NS]: Include nsterm.h.
119 (init_callproc_1, init_callproc) [HAVE_NS]: Use ns_etc_directory.
120
f1f924b6
DA
1212012-07-09 Dmitry Antipov <dmantipov@yandex.ru>
122
123 Move marker debugging code under MARKER_DEBUG.
124 * marker.c (MARKER_DEBUG): Move marker debugging code under
125 #ifdef MARKER_DEBUG because byte_char_debug_check is too slow
126 for bootstrap with --enable-checking (~3x slowdown reported
127 by Juanma Barranquero <lekktu@gmail.com>).
128 (verify_bytepos): Move under #ifdef MARKER_DEBUG.
129
ab531b66
PE
1302012-07-08 Paul Eggert <eggert@cs.ucla.edu>
131
132 * systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t.
133 See <http://bugs.gnu.org/11825#29>.
134
c4b3bc8a
EZ
1352012-07-08 Eli Zaretskii <eliz@gnu.org>
136
137 * xdisp.c (fill_glyphless_glyph_string): If the face of the glyph
138 has no font, use the frame's font. (Bug#11813)
3434fe8a
EZ
139 (display_line): Add commentary about displaying truncation glyphs
140 on GUI frames.
141 (produce_special_glyphs): Move here from term.c.
142
143 * term.c (produce_special_glyphs): Move to xdisp.c.
144
145 * dispextern.h (produce_special_glyphs): Move prototype to xdisp.c
146 section.
c4b3bc8a 147
b676b881
AS
1482012-07-07 Andreas Schwab <schwab@linux-m68k.org>
149
f17c5273
AS
150 * xdisp.c (display_line): Avoid warning about implicit declaration
151 of FRAME_FONT.
152
298819b9
AS
153 * frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM.
154
b676b881
AS
155 * lisp.h: Remove empty conditional.
156
6045c4fd
PE
1572012-07-07 Paul Eggert <eggert@cs.ucla.edu>
158
b3350bf9
PE
159 * lread.c (load_path_check): Now static.
160
6045c4fd
PE
161 Fix some minor --with-ns problems found by static checking.
162 * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]:
163 (x_set_font) [!HAVE_X_WINDOWS]:
164 * image.c (xpm_load_image) [HAVE_NS]:
165 (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]:
166 (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]:
167 Remove unused local.
168 (Fx_parse_geometry) [HAVE_NS]: Don't return garbage.
169 (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label.
170 * image.c (x_create_bitmap_from_file) [HAVE_NS]:
171 (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]:
172 * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal):
173 * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]:
174 Fix pointer signedness problem.
175 * xfaces.c (FRAME_X_FONT_TABLE):
176 * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros.
177
929e7845
GM
1782012-07-07 Glenn Morris <rgm@gnu.org>
179
180 * lread.c (load_path_check): New function, split from init_lread.
181 (init_lread): Reorganize. Motivation:
182 If EMACSLOADPATH is set, check/warn about that rather than the
183 defaults, which we are not going to use. Hence we can remove
184 the turn_off_warning and WINDOWSNT || HAVE_NS tests.
185 Don't warn if site-lisp directories are missing.
186 If not installed, start from a blank load-path, since
187 PATH_LOADSEARCH refers to the eventual installation directories.
188
58dd0aa4
EZ
1892012-07-07 Eli Zaretskii <eliz@gnu.org>
190
191 Support truncation and continuation glyphs on GUI frames, when
192 fringes are disabled. (Bug#11832)
193 * xdisp.c (init_iterator): Get dimensions of truncation and
194 continuation glyphs even if on GUI frames. Adjust
195 it->last_visible_x on GUI frames when the left or right fringes,
196 or both, are absent.
197 (start_display, move_it_in_display_line_to): Handle the case of a
198 GUI frame without a fringe to display continuation or truncation
199 glyphs.
200 (insert_left_trunc_glyphs): Support GUI frames: make sure
201 truncation glyphs overwrite enough glyphs from the current line to
202 have sufficient space in pixels.
203 (display_line): Support truncation and continuation glyphs on GUI
204 frames. If some spare pixels are left on the line after inserting
205 the truncation glyphs, fill that space with a stretch glyph of a
206 suitably computed width.
207
208 * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not
209 produce_glyphs, to support GUI sessions.
210
31571fd7
PE
2112012-07-07 Paul Eggert <eggert@cs.ucla.edu>
212
5a16b9bc
PE
213 * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781).
214
f3047c75
PE
215 * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797).
216
31571fd7
PE
217 Do not require float-time's arg to fit in time_t (Bug#11825).
218 This works better on hosts where time_t is unsigned, and where
219 float-time is applied to the (negative) difference between two times.
220 * editfns.c (decode_time_components): Last arg is now double *,
221 not int *, and means to store all the result as a double, without
222 worrying about whether the seconds part fits in time_t.
223 All callers changed.
224 (lisp_time_argument): Remove last int * arg, as it's no longer needed.
225 All callers changed.
226 (Ffloat_time): Do not fail merely because the specified time falls
227 outside of time_t range.
228
4516fbef
GM
2292012-07-07 Glenn Morris <rgm@gnu.org>
230
231 * s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV):
232 * s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM):
233 * s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively).
234
07adc2c6
JB
2352012-07-07 Juanma Barranquero <lekktu@gmail.com>
236
237 * makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)):
238 Update dependencies.
239
240 * s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp.
241
fd573f31
PE
2422012-07-06 Paul Eggert <eggert@cs.ucla.edu>
243
fee5959d
PE
244 Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
245 * dispextern.h, nsfns.m, nsterm.m: Include <c-strcase.h>.
246 * dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp.
247 * nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp.
248 * nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp.
249 * xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove.
250
fd573f31
PE
251 * xfont.c (compare_font_names): Redo to omit the need for casts.
252
ddadbc0e
AS
2532012-07-06 Andreas Schwab <schwab@linux-m68k.org>
254
fca8d6b6
AS
255 * xfns.c (Fx_change_window_property): Doc fix.
256 * w32fns.c (Fx_change_window_property): Doc fix.
257
ddadbc0e
AS
258 * w32fns.c (Fx_window_property): Accept the same arguments as the
259 X Windows version. Doc fix.
260 * xfns.c (Fx_window_property): Doc fix. (Bug#11870)
261
f247498e
JB
2622012-07-06 Juanma Barranquero <lekktu@gmail.com>
263 Eli Zaretskii <eliz@gnu.org>
264
265 * s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt.
266 Windows-specific code from nt/config.nt moved here.
267 Obsolete settings removed.
268
216ee680
PE
2692012-07-06 Paul Eggert <eggert@cs.ucla.edu>
270
271 * process.c: Avoid unnecessary calls to gettime.
272 (wait_reading_process_output): Don't get the time of day
273 when gobbling data immediately and not waiting, as there's no need
274 for it in that case. This removes a FIXME.
275
bdd091e4
JD
2762012-07-06 Jan Djärv <jan.h.d@swipnet.se>
277
278 * gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3
279 is defined (Bug#11768).
280
9d44f8ce
DA
2812012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
282
283 Fix marker debugging code.
284 * marker.c (byte_char_debug_check): Do not perform the check
285 if buffer is not multibyte.
090bd7cb
JB
286 (buf_charpos_to_bytepos, buf_bytepos_to_charpos):
287 Call byte_char_debug_check with correct arguments.
9d44f8ce 288
90fc4786
DA
2892012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
290
291 Compile marker debugging code only if ENABLE_CHECKING is defined.
090bd7cb
JB
292 * marker.c (byte_char_debug_check, count_markers):
293 Use only if ENABLE_CHECKING is defined.
90fc4786
DA
294 (byte_debug_flag): Remove.
295 (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos):
296 Always call byte_char_debug_check if ENABLE_CHECKING is defined.
297
7b7ae965
DA
2982012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
299
4e57b342
DA
300 Avoid code repetition in marker-related functions.
301 * marker.c (attach_marker): New function.
302 (Fset_marker, set_marker_restricted, set_marker_both)
303 (set_marker_restricted_both): Use it.
304 (Fset_marker, set_marker_restricted, Fbuffer_has_markers_at):
305 Consistently rename charno to charpos.
306 (marker_position): Add eassert.
307 (marker_byte_position): Convert to eassert.
308
3092012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
310
311 Simplify list operations in unchain_overlay and unchain_marker.
7b7ae965 312 * buffer.c (unchain_overlay): Simplify. Add comment.
4e57b342 313 * marker.c (unchain_marker): Simplify. Fix comments.
7b7ae965 314
657924ff
DA
3152012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
316
317 Introduce fast path for the widely used marker operation.
318 * alloc.c (build_marker): New function.
319 * lisp.h (build_marker): New prototype.
320 * buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it.
321 * composite.c (autocmp_chars): Likewise.
322 * editfns.c (buildmark): Remove.
323 (Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker)
324 (save_restriction_save): Use build_marker.
325 * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
326 * window.c (save_window_save): Likewise.
327
041a49a6
DA
3282012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
329
330 Do not use Fdelete_overlay in delete_all_overlays
331 to avoid redundant calls to unchain_overlay.
332 * buffer.c (drop_overlay): New function.
333 (delete_all_overlays, Fdelete_overlay): Use it.
334 * minibuf.c (get_minibuffer): Fix comment.
335
7dca65a4
PE
3362012-07-06 Paul Eggert <eggert@cs.ucla.edu>
337
338 Port to OpenBSD 5.1 amd64.
339 * sysdep.c [BSD_SYSTEM]: Include <sys/param.h> before <sys/sysctl.h>.
340 This is needed for OpenBSD, and should be harmless on all BSD systems.
341 Also, include <sys/sysctl.h>, as it should be available on all
342 BSD_SYSTEM hosts given that we're already calling sysctl in that case.
343 (list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but
344 use p_pid member, not kp_proc.pid.
345
8eb876e2
GM
3462012-07-06 Glenn Morris <rgm@gnu.org>
347
348 * Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows.
349
38182d90
PE
3502012-07-05 Paul Eggert <eggert@cs.ucla.edu>
351
352 More xmalloc and related cleanup.
353 * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
354 * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
355 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
356 * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
357 * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
358 * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
359 * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
360 * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
361 * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
362 * xterm.c:
363 Omit needless casts involving void * pointers and allocation.
364 Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
365 as the former is more robust if P's type is changed.
366 Prefer xzalloc to xmalloc + memset 0.
367 Simplify malloc-or-realloc to realloc.
368 Don't worry about xmalloc returning a null pointer.
369 Prefer xstrdup to xmalloc + strcpy.
370 * editfns.c (Fmessage_box): Grow message_text by at least 80 when
371 growing it.
372 * keyboard.c (apply_modifiers_uncached): Prefer local array to
373 alloca of a constant.
374
6dd5a677
EZ
3752012-07-05 Eli Zaretskii <eliz@gnu.org>
376
377 * xdisp.c (display_line): Fix horizontal pixel coordinates when
378 hscroll is larger than the line width. Fixes long and futile
379 looping inside extend_face_to_end_of_line (on a TTY) producing
380 glyphs that are not needed and thrown away.
381
6b312f0f
DA
3822012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
383
384 * marker.c (set_marker_restricted_both): Simplify by using
385 clip_to_bounds.
386
f520ef9b
PE
3872012-07-05 Paul Eggert <eggert@cs.ucla.edu>
388
389 * editfns.c (region_limit): Simplify by using clip_to_bounds.
390
383b7c95
JD
3912012-07-05 Jan Djärv <jan.h.d@swipnet.se>
392
393 * gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is
394 not defined (Bug#11768).
395 (xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768).
396 (xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser)
397 (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new
398 followed by gtk_box_set_homogeneous (Bug#11768).
399 (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768).
090bd7cb
JB
400 (update_theme_scrollbar_width, xg_create_scroll_bar):
401 Use gtk_scrollbar_new (Bug#11768).
383b7c95
JD
402 (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3.
403 (is_box_type): New function (Bug#11768).
404 (xg_tool_item_stale_p): Call is_box_type.
5293d758 405 (xg_initialize): Get settings by calling gtk_settings_get_for_screen
383b7c95
JD
406 with default display (Bug#11768).
407
d6e7bf45
EZ
4082012-07-05 Eli Zaretskii <eliz@gnu.org>
409
410 * xdisp.c (window_hscroll_limited): New function.
411 (pos_visible_p, init_iterator): Use it to avoid overflow of pixel
412 coordinates when window's hscroll is set to insanely large
413 values. (Bug#11857)
414
431391ec
JB
4152012-07-05 Juanma Barranquero <lekktu@gmail.com>
416
417 * makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo.
418 ($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies.
419
23f86fce
DA
4202012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
421
422 Cleanup xmalloc.
423 * lisp.h (xzalloc): New prototype. Omit needless casts.
424 * alloc.c (xzalloc): New function. Omit needless casts.
425 * charset.c: Omit needless casts. Convert all calls to
426 xmalloc with following memset to xzalloc.
427 * dispnew.c: Likewise.
428 * fringe.c: Likewise.
429 * image.c: Likewise.
430 * sound.c: Likewise.
431 * term.c: Likewise.
432 * w32fns.c: Likewise.
433 * w32font.c: Likewise.
434 * w32term.c: Likewise.
435 * xfaces.c: Likewise.
436 * xfns.c: Likewise.
437 * xterm.c: Likewise.
438 * atimer.c: Omit needless casts.
439 * buffer.c: Likewise.
440 * callproc.c: Likewise.
441 * ccl.c: Likewise.
442 * coding.c: Likewise.
443 * composite.c: Likewise.
444 * doc.c: Likewise.
445 * doprnt.c: Likewise.
446 * editfns.c: Likewise.
447 * emacs.c: Likewise.
448 * eval.c: Likewise.
449 * filelock.c: Likewise.
450 * fns.c: Likewise.
451 * gtkutil.c: Likewise.
452 * keyboard.c: Likewise.
453 * lisp.h: Likewise.
454 * lread.c: Likewise.
455 * minibuf.c: Likewise.
456 * msdos.c: Likewise.
457 * print.c: Likewise.
458 * process.c: Likewise.
459 * region-cache.c: Likewise.
460 * search.c: Likewise.
461 * sysdep.c: Likewise.
462 * termcap.c: Likewise.
463 * terminal.c: Likewise.
464 * tparam.c: Likewise.
465 * w16select.c: Likewise.
466 * w32.c: Likewise.
467 * w32reg.c: Likewise.
468 * w32select.c: Likewise.
469 * w32uniscribe.c: Likewise.
470 * widget.c: Likewise.
471 * xdisp.c: Likewise.
472 * xmenu.c: Likewise.
473 * xrdb.c: Likewise.
474 * xselect.c: Likewise.
475
0497dc44
PE
4762012-07-05 Paul Eggert <eggert@cs.ucla.edu>
477
478 * fileio.c (time_error_value): Check the right error number.
479 Problem reported by Troels Nielsen in
480 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00095.html>.
481
356e7178
PE
4822012-07-04 Paul Eggert <eggert@cs.ucla.edu>
483
4e71fd89
PE
484 * window.c (set_window_hscroll): Revert the 100000 hscroll limit.
485 This should be fixed in a better way; see Eli Zaretskii in
486 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00088.html>.
487 (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.
488
f0941253
PE
489 * fileio.c (time_error_value): Rename from special_mtime.
490 The old name's problems were noted by Eli Zaretskii in
491 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00087.html>.
492
065c9eb4
PE
493 * emacs.c (gdb_pvec_type): Change it back to enum pvec_type.
494 This variable's comment says Emacs needs at least one GDB-visible
495 symbol of type enum pvec_type, to work around GDB problems.
496 The symbol's value doesn't matter.
497
356e7178
PE
498 * alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';'
499 that causes compilation to fail on pre-C99 compilers.
500
95f61aa2
JB
5012012-07-04 Juanma Barranquero <lekktu@gmail.com>
502
503 * s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY)
504 (HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete.
505
3884d954
DA
5062012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
507
d209e2fb 508 * buffer.c (init_buffer_once): Fix initialization of
3884d954
DA
509 headers for buffer_defaults and buffer_local_symbols.
510 Reported by Juanma Barranquero <lekktu@gmail.com>.
511
ee28be33
SM
5122012-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
513
514 Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
515 * lisp.h (enum pvec_type): Use fewer bits.
516 (PSEUDOVECTOR_SIZE_BITS): New constant.
517 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
518 (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
519 change in pvec_type.
520 (PSEUDOVECTOR_TYPEP): New macro.
521 (TYPED_PSEUDOVECTORP): Use it.
522 * fns.c (internal_equal): Adapt code to extract pvectype.
523 * emacs.c (gdb_pvec_type): Update type.
524 * alloc.c (PSEUDOVECTOR_NBYTES): New macro.
525 (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
526 (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
527 (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
528 (sweep_vectors): Use it. Use local var `total_bytes' instead of
529 abusing vector->header.next.nbytes.
530 (live_vector_p): Use PVEC_TYPE.
531 (mark_object): Adapt code to extract pvectype. Use switch.
532
c7f2cd7f
PE
5332012-07-04 Paul Eggert <eggert@cs.ucla.edu>
534
535 * doprnt.c (doprnt): Don't assume string length fits in 'int'.
536 Tighten new eassert a bit.
537
8ce70ed2
DA
5382012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
539
540 Fix compilation with --enable-gcc-warnings and -O1
541 optimization level.
542 * doprnt.c (doprnt): Change type of tem to int, initialize
543 to avoid compiler warning. Add eassert.
544 * search.c (simple_search): Initialize match_byte to avoid
545 compiler warning. Add eassert.
546
dea7f1e5
PE
5472012-07-04 Paul Eggert <eggert@cs.ucla.edu>
548
24a212eb
PE
549 Avoid weird behavior with large horizontal scrolls.
550 Without this change, for example, large hscroll values would
551 mess up Emacs's display on Fedora 15 x86, presumably due to
552 overflows in int calculations in the display code.
553 Also, if buffers had long lines, Emacs would freeze.
554 * window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB.
555 (set_window_hscroll): New function, containing the old guts of
556 Fset_window_hscroll. Return the clipped value.
557 (Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it.
558 This avoids the need to check against PTRDIFF_MAX.
559
dea7f1e5
PE
560 * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.
561
76046526
DA
5622012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
563
564 * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.
565
39adff0d
PE
5662012-07-04 Paul Eggert <eggert@cs.ucla.edu>
567
63807d47
PE
568 * regex.c: Suppress GCC warning on RHEL 6. (Bug#11207)
569 Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later,
570 since GCC 4.4.6 issues a bogus warning for them.
571
39adff0d
PE
572 Fix bugs in file timestamp newness comparisons.
573 * fileio.c (Ffile_newer_than_file_p):
574 * lread.c (Fload): Use full timestamp resolution of files,
575 not just the 1-second resolution, so that files that are only
576 slightly newer still count as newer.
577 * fileio.c (Ffile_newer_than_file_p): Don't assume file
578 timestamps fit in 'int'; this fixes a Y2038 bug on most hosts.
579
dbeed9a6
PE
5802012-07-03 Paul Eggert <eggert@cs.ucla.edu>
581
582 * fileio.c: Improve handling of file time marker. (Bug#11852)
583 (special_mtime): New function.
584 (Finsert_file_contents, Fverify_visited_file_modtime):
585 Use it to set special mtime values consistently.
586
636334d6
AS
5872012-07-03 Andreas Schwab <schwab@linux-m68k.org>
588
589 * fileio.c (Finsert_file_contents): Properly handle st_mtime
590 marker for non-existing file. (Bug#11852)
591
e2017fe2
GM
5922012-07-03 Glenn Morris <rgm@gnu.org>
593
594 * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN
595 and did not make it into globals.h).
596
404dbd37
TT
5972012-07-03 Tom Tromey <tromey@redhat.com>
598
599 * window.c (Fset_window_margins, Fset_window_fringes)
600 (Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
601 * textprop.c (Fprevious_property_change): No longer static.
602 * syntax.c (Fsyntax_table_p): No longer static.
603 * process.c (Fget_process, Fprocess_datagram_address): No longer
604 static.
605 * keymap.c (Flookup_key, Fcopy_keymap): No longer static.
606 * keyboard.c (Fcommand_execute): No longer static.
607 Remove EXFUN.
608 * insdel.c (Fcombine_after_change_execute): No longer static.
609 * image.c (Finit_image_library): No longer static.
610 * fileio.c (Fmake_symbolic_link): No longer static.
611 * eval.c (Ffetch_bytecode): No longer static.
612 * editfns.c (Fuser_full_name): No longer static.
d209e2fb
JB
613 * doc.c (Fdocumentation_property, Fsnarf_documentation):
614 No longer static.
404dbd37
TT
615 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
616 static.
617 * dired.c (Ffile_attributes): No longer static.
618 * composite.c (Fcomposition_get_gstring): No longer static.
619 * callproc.c (Fgetenv_internal): No longer static.
620
621 * ccl.h: Remove EXFUNs.
622 * buffer.h: Remove EXFUNs.
623 * dispextern.h: Remove EXFUNs.
624 * intervals.h: Remove EXFUNs.
625 * fontset.h: Remove EXFUN.
626 * font.h: Remove EXFUNs.
627 * dosfns.c (system_process_attributes): Remove EXFUN.
628 * keymap.h: Remove EXFUNs.
629 * lisp.h: Remove EXFUNs.
630 * w32term.h: Remove EXFUNs.
631 * window.h: Remove EXFUNs.
632 * xsettings.h: Remove EXFUN.
633 * xterm.h: Remove EXFUN.
634
8e4fd1e1
GM
6352012-07-03 Glenn Morris <rgm@gnu.org>
636
637 * lisp.h (Frandom): Make it visible to C.
638 * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new
639 buffer for invisible buffers. (Bug#1229)
640
ca95b3eb
DA
6412012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
642
643 Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
644 values which aren't power of 2.
645 * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro. Verify
646 it's value and the value of VECTOR_BLOCK_SIZE. Adjust users
647 accordingly.
648
7555c33f
SM
6492012-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
650
651 * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better.
652
653 * alloc.c (mark_object): Revert part of last patch to use `switch'.
654
d12e8f5a
DA
6552012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
656
657 * alloc.c (allocate_vector_block): Remove redundant
658 calls to mallopt if DOUG_LEA_MALLOC is defined.
659 (allocate_vectorlike): If DOUG_LEA_MALLOC is defined,
660 avoid calls to mallopt if zero_vector is returned.
661
296094c3
DA
6622012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
663
664 * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES
665 is enabled, avoid dereferencing NULL current_sblock if
666 running undumped.
667
36429c89
DA
6682012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
669
670 Cleanup basic buffer management.
671 * buffer.h (struct buffer): Change layout to use generic vector
672 marking code. Fix some comments. Change type of 'clip_changed'
673 to bitfield. Remove unused #ifndef old.
674 (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
675 (GET_OVERLAYS_AT): Fix indentation.
676 (for_each_per_buffer_object_at): New macro.
677 * buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
678 (Fbuffer_local_variables): Use it.
679 (init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
680 * alloc.c (allocate_buffer): Adjust to match new layout of
681 struct buffer. Fix comment.
682 (mark_overlay): New function.
683 (mark_buffer): Use it. Use mark_vectorlike to mark normal
684 Lisp area of struct buffer.
685 (mark_object): Use it. Adjust marking of misc objects
686 and related comments.
687
3b3e4cac
PE
6882012-07-02 Paul Eggert <eggert@cs.ucla.edu>
689
690 * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS"
691 wrapper that is not needed because the wrapped code is a no-op (zero
692 machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined.
693 This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64.
694
cf5c0175
DA
6952012-07-02 Dmitry Antipov <dmantipov@yandex.ru>
696
697 * alloc.c (mark_buffer): Simplify. Remove prototype.
698 (mark_object): Add comment. Reorganize marking of vector-like
faf611c7 699 objects. Use CHECK_LIVE for all vector-like objects except buffers
cf5c0175
DA
700 and subroutines when GC_CHECK_MARKED_OBJECTS is defined. Avoid
701 redundant calls to mark_vectorlike for bool vectors.
702
ca26824c
GM
7032012-06-30 Glenn Morris <rgm@gnu.org>
704
2e4c5312
GM
705 * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp.
706
ca26824c
GM
707 * epaths.in (PATH_SITELOADSEARCH): New.
708 * lread.c (init_lread): Use PATH_SITELOADSEARCH.
709 This is rather than relying on --enable-locallisppath elements
710 having "site-lisp" in their names. (Bug#10208#25, 11658)
711
0d23c240
EZ
7122012-06-30 Eli Zaretskii <eliz@gnu.org>
713
c9240d7a
EZ
714 * w32proc.c (sys_select): Accept and ignore one more argument.
715
716 * w32.c (emacs_gnutls_pull): Call select with one more argument.
717
0d23c240 718 * sysselect.h [DOS_NT]: Don't include sys/select.h.
9ff8f76b 719 (pselect) [!MS_DOS]: Redirect to sys_select.
0d23c240
EZ
720
721 * sysdep.c: Don't include dos.h and dosfns.h.
722
723 * process.c (sys_select):
724 * msdos.c (sys_select): Accept one more argument and ignore it.
725
726 * msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
727 adapt data types and code to that.
728
729 * dosfns.c:
730 * msdos.c (gettime, settime): Define away the prototypes in dos.h,
731 which clashes with the gnulib function of the same name.
732
af5a5a98
AS
7332012-06-30 Andreas Schwab <schwab@linux-m68k.org>
734
c5e4379c
AS
735 * font.c (font_style_to_value, font_style_symbolic)
736 (font_prop_validate_style): Add type checks for values in
737 font_style_table.
738
af5a5a98
AS
739 * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first
740 argument.
741 * character.c, charset.c, menu.c, process.c, window.c: Adjust all
742 uses.
743
8d38f461
EZ
7442012-06-29 Eli Zaretskii <eliz@gnu.org>
745
2e5a6631
EZ
746 * xdisp.c (try_window_id): Undo last change.
747
8d38f461
EZ
748 * w32.c (getwd): Adjust commentary about startup_dir.
749 (init_environment): Always call sys_access, even in non-MSVC
750 builds. Don't chdir to the directory of the Emacs executable.
751 This undoes code from 1997 which was justified by the need to
752 "avoid conflicts when removing and renaming directories". But its
753 downside was that every relative file name was being interpreted
754 relative to the directory of the Emacs executable, which can never
755 be TRT. In particular, it broke sys_access when called with
756 relative file names.
757 (sys_access): Map GetLastError to errno.
758
2af3565e
DA
7592012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
760
761 * window.h (struct window): Change type of 'fringes_outside_margins'
762 to bitfield. Fix comment. Adjust users accordingly.
cf5c0175 763 (struct window): Change type of 'window_end_bytepos' to ptrdiff_t.
2af3565e
DA
764 Adjust comment.
765 * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos'
766 to ptrdiff_t.
767
c8d3a25c 7682012-06-29 Andreas Schwab <schwab@linux-m68k.org>
57570cd3 769
c8d3a25c
GM
770 * gnutls.c (emacs_gnutls_handshake):
771 Add QUIT to make the loop interruptible.
57570cd3 772
c8d3a25c 7732012-06-29 Glenn Morris <rgm@gnu.org>
d01fd55f 774
c8d3a25c
GM
775 * charset.c (init_charset): Make lack of etc/charsets fatal.
776
3e984ee8
DA
7772012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
778
779 * editfns.c (region_limit): Fix type mismatch.
780
ef884f23
DA
7812012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
782
783 * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be
784 undefined. Convert from xassert to eassert.
785 * nsmenu.m: Convert from xassert to eassert.
786 * nsterm.m: Likewise.
787
7d7e0027
SM
7882012-06-28 Stefan Monnier <monnier@iro.umontreal.ca>
789
790 * editfns.c (region_limit): Clip to narrowing (bug#11770).
791
aa754e6a
PE
7922012-06-28 Paul Eggert <eggert@cs.ucla.edu>
793
794 Avoid integer overflow on scroll-left and scroll-right.
795 * window.c (HSCROLL_MAX): New macro.
796 (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer
797 overflow when requested scroll falls outside ptrdiff_t range.
798
80b00b08
DA
7992012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
800
801 * window.h (struct window): Change type of 'hscroll',
802 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
803 'last_modified' and 'last_overlay_modified' to EMACS_INT.
804 Adjust users accordingly.
805 * xdisp.c (try_cursor_movement): Replace type check with eassert.
806 * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
807 from EMACS_INT to ptrdiff_t.
808 (make_window): Omit redundant initialization.
809
62b2bcf6
JB
8102012-06-28 Juanma Barranquero <lekktu@gmail.com>
811
812 * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
813
45942c7d
DA
8142012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
815
816 * window.h (struct window): Change type of 'use_time' and
817 'sequence_number' from Lisp_Object to int.
818 * frame.c (make_frame): Adjust users accordingly.
819 * print.c (print_object): Likewise.
820 * window.c (select_window, Fwindow_use_time, make_parent_window)
821 (make_window): Likewise.
822
e509cfa6
DA
8232012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
824
825 * dispextern.h (GLYPH_DEBUG): Now defined in config.h if
826 enabled with --enable-checking=[all,glyphs] configure option.
827 Fix GLYPH_DEBUG usage assuming that it may be undefined,
828 adjust comments accordingly.
829 * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
830 undefined, adjust comments accordingly.
831 * image.c: Likewise.
832 * scroll.c: Likewise.
833 * w32fns.c: Likewise.
834 * w32term.c: Likewise.
835 * xdisp.c: Likewise.
836 * xfaces.c: Likewise.
837 * xfns.c: Likewise.
838 * xterm.c: Likewise.
839
a54e2c05
DA
8402012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
841
842 Generalize run-time debugging checks.
843 * dispextern.h (XASSERTS): Remove.
844 * fontset.c (xassert): Remove.
845 Convert from xassert to eassert.
846 * alloc.c: Convert from xassert to eassert.
847 * bidi.c: Likewise.
848 * dispnew.c: Likewise.
849 * fns.c: Likewise.
850 * fringe.c: Likewise.
851 * ftfont.c: Likewise.
852 * gtkutil.c: Likewise.
853 * image.c: Likewise.
854 * keyboard.c: Likewise.
855 * menu.c: Likewise.
856 * process.c: Likewise.
857 * scroll.c: Likewise.
858 * sound.c: Likewise.
859 * term.c: Likewise.
860 * w32console.c: Likewise.
861 * w32fns.c: Likewise.
862 * w32term.c: Likewise.
863 * window.c: Likewise.
864 * xdisp.c: Likewise.
865 * xfaces.c: Likewise.
866 * xfns.c: Likewise.
867 * xselect.c: Likewise.
868 * xterm.c: Likewise.
869
1ec4b7b2
SM
8702012-06-27 Stefan Monnier <monnier@iro.umontreal.ca>
871
872 * fns.c (maybe_resize_hash_table): Output message when growing the
873 purify-hashtable.
874
2014308a
DA
8752012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
876
877 * alloc.c (allocate_string_data): Remove dead code.
878 * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
879 avoid GCC warning about unused macro.
880
246155eb
DA
8812012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
882
883 * alloc.c (allocate_string): Omit intervals initialization.
884 * alloc.c (make_uninit_multibyte_string): Initialize intervals
885 as in make_pure_string and make_pure_c_string.
886
43184b7b
DA
8872012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
888
d209e2fb 889 * alloc.c (allocate_string): Fix last change.
43184b7b 890
3fe6dd74
DA
8912012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
892
d209e2fb 893 * alloc.c (allocate_string): Remove two redundant calls
3fe6dd74
DA
894 to memset, add explicit initialization where appropriate.
895
1ba6038a
GM
8962012-06-27 Glenn Morris <rgm@gnu.org>
897
898 * lisp.mk (lisp): Remove paths.elc.
899
c89926a5
CY
9002012-06-27 Chong Yidong <cyd@gnu.org>
901
902 * doc.c (Fsubstitute_command_keys): Fix punctuation.
903
ed6b3510
JW
9042012-06-26 John Wiegley <johnw@newartisans.com>
905
1ec4b7b2 906 * unexmacosx.c (copy_data_segment): Add two section names used
157e99e4
JW
907 on Mac OS X Lion: __mod_init_func and __mod_term_func.
908
ed6b3510
JW
909 * alloc.c (mark_memory): Do not check with -faddress-sanitizer
910 when building with Clang.
911
8edd4a2b
SM
9122012-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
913
914 * eval.c (Fapply): Allow calling it with a single argument.
915
f6f62d1b
EZ
9162012-06-26 Eli Zaretskii <eliz@gnu.org>
917
918 * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
919 _stricmp and _strnicmp.
920 (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
921
62efea5e
DA
9222012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
923
924 * alloc.c (allocate_window): Zero out non-Lisp part of newly
925 allocated window.
926 (allocate_process): Likewise for new process.
8edd4a2b 927 (allocate_terminal): Change to use offsetof.
62efea5e
DA
928 (allocate_frame): Likewise.
929 * frame.c (make_frame): Omit redundant initialization.
930 * window.c (make_parent_window): Use memset.
931 (make_window): Omit redundant initialization.
932 * process.c (make_process): Omit redundant initialization.
933 * terminal.c (create_terminal): Likewise.
934
42997f4d
DA
9352012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
936
937 * term.c (delete_tty): Remove redundant call to memset.
938
1130ecfc
DA
9392012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
940
941 * alloc.c: Remove build_string.
942 * lisp.h: Define build_string as static inline. This provides
943 a better opportunity to optimize away calls to strlen when the
944 function is called with compile-time constant argument.
945 * image.c (imagemagick_error): Convert to build_string.
946 * w32proc.c (sys_spawnve): Likewise.
947 * xterm.c (x_term_init): Likewise.
948
cf38a720
PE
9492012-06-26 Paul Eggert <eggert@cs.ucla.edu>
950
99027bdd
PE
951 Use sprintf return value instead of invoking strlen on result.
952 In the old days this wasn't portable, since some sprintf
953 implementations returned char *. But they died out years ago and
954 Emacs already assumes sprintf returns int.
955 Similarly for float_to_string.
956 This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
957 * ccl.c (ccl_driver):
958 * character.c (string_escape_byte8):
959 * data.c (Fnumber_to_string):
960 * doprnt.c (doprnt):
961 * print.c (print_object):
962 * xdisp.c (message_dolog):
963 * xfns.c (syms_of_xfns):
964 Use sprintf or float_to_string result to avoid need to call strlen.
965 * data.c (Fnumber_to_string):
966 Use make_unibyte_string, since the string must be ASCII.
967 * lisp.h, print.c (float_to_string): Now returns int length.
968 * term.c (produce_glyphless_glyph):
969 Use sprintf result rather than recomputing it.
970
cf38a720
PE
971 Clean out last vestiges of the old HAVE_CONFIG_H stuff.
972 * Makefile.in (ALL_CFLAGS):
973 * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
974 * gmalloc.c, regex.c: Include <config.h> unconditionally.
975
3511c784
DA
9762012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
977
0a08eb21 978 * dispextern.h (xstrcasecmp): Define to library function
3511c784
DA
979 strcasecmp if available.
980 * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
981
fb7da12e
AS
9822012-06-25 Andreas Schwab <schwab@linux-m68k.org>
983
984 * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
985 Avoid comma operator.
986 * menu.c (push_submenu_start, push_submenu_end)
987 (push_left_right_boundary, push_menu_pane): Likewise.
988 * msdos.c (dos_rawgetc): Likewise.
989
afa2ffd8
DA
9902012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
991
992 * xfns.c (xic_create_fontsetname): Remove redundant calls
993 to memset.
994
b3b4476b
PE
9952012-06-25 Paul Eggert <eggert@cs.ucla.edu>
996
4495ff38
PE
997 * gtkutil.c (get_utf8_string): Remove redundant assignment.
998 sprintf already null-terminates its output.
999
b3b4476b
PE
1000 * xfns.c (x_window): Remove redundant cast.
1001
b00876c9
DA
10022012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
1003
1004 * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
1005 `const char *' to `char *' to avoid compiler warning.
1006
d188e26b
PE
10072012-06-24 Paul Eggert <eggert@cs.ucla.edu>
1008
885d1d74
PE
1009 * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
1010 instead of truncating it to 63 (admittedly a generous limit).
1011
d188e26b
PE
1012 * process.c: Fix spelling and caps in comments.
1013
e2f560b1
DN
10142012-06-24 Dan Nicolaescu <dann@ics.uci.edu>
1015
e86db54b 1016 * emacs.c (setpgrp): Remove definition, unused.
e2f560b1
DN
1017 * sysdep.c (setpgrp): Remove definition, not used in this file.
1018
7583a3a1
JB
10192012-06-24 Juanma Barranquero <lekktu@gmail.com>
1020
1021 * makefile.w32-in: Update dependencies.
1022
696056c2
EZ
10232012-06-24 Eli Zaretskii <eliz@gnu.org>
1024
1025 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
1026 (SYSTIME_H): Add nt/inc/sys/time.h.
1027
1028 * systime.h [WINDOWSNT]: Include sys/time.h.
1029
1030 * s/ms-w32.h (struct timespec): Definition moved from
1031 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
1032
845ca893
PE
10332012-06-24 Paul Eggert <eggert@cs.ucla.edu>
1034
1035 Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
1036 * buffer.h (buffer_slot_type_mismatch):
1037 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
1038 * eval.c (unwind_to_catch):
1039 * image.c (my_png_error, my_error_exit):
1040 * keyboard.c (quit_throw_to_read_char, user_error)
1041 (Fexit_recursive_edit, Fabort_recursive_edit):
1042 * lisp.h (die, args_out_of_range, args_out_of_range_3)
1043 (wrong_type_argument, buffer_overflow, __executable_start)
1044 (memory_full, buffer_memory_full, string_overflow, Fthrow)
1045 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
1046 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
1047 (fatal):
1048 (child_setup) [!DOS_NT]:
1049 * lread.c (end_of_file_error, invalid_syntax):
1050 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
1051 * puresize.h (pure_write_error):
1052 * search.c (matcher_overflow):
1053 * sound.c (sound_perror, alsa_sound_perror):
1054 * sysdep.c, syssignal.h (croak):
1055 * term.c (maybe_fatal, vfatal):
1056 * textprop.c (text_read_only):
1057 * undo.c (user_error):
1058 * unexmacosx.c (unexec_error):
1059 * xterm.c (x_ins_del_lines, x_delete_glyphs):
1060 Use _Noreturn rather than NO_RETURN.
1061 No need for separate decl merely because of _Noreturn.
1062 * sound.c (sound_warning, parse_sound):
1063 Remove unnecessary forward decls.
1064
f1dd8073
PE
10652012-06-24 Paul Eggert <eggert@cs.ucla.edu>
1066
1067 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
1068 * lisp.h (WAIT_READING_MAX): New macro.
1069 * dispnew.c (Fsleep_for, sit_for):
1070 * keyboard.c (kbd_buffer_get_event):
1071 * process.c (Faccept_process_output):
1072 Use it to avoid bogus compiler warnings with obsolescent GCC versions.
1073 This improves on the previous patch, which introduced a bug
1074 when time_t is unsigned and as wide as intmax_t.
1075 See <http://bugs.gnu.org/9000#51>.
1076
b82c1755
EZ
10772012-06-23 Eli Zaretskii <eliz@gnu.org>
1078
1079 * dispnew.c (sit_for, Fsleep_for):
1080 * keyboard.c (kbd_buffer_get_event):
1081 * process.c (Faccept_process_output): Avoid compiler warnings when
1082 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
1083
ca300656
JB
10842012-06-23 Juanma Barranquero <lekktu@gmail.com>
1085
049ec95b
JB
1086 * makefile.w32-in: Update dependencies.
1087
ca300656
JB
1088 * w32.c (ltime): Add return type and declare static.
1089 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
1090
db7b8d06
PE
10912012-06-23 Paul Eggert <eggert@cs.ucla.edu>
1092
1093 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
1094 Privately reported by Herbert J. Skuhra.
1095 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
1096 All uses changed.
1097 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
1098 not make_lisp_timeval, when the argument is of type EMACS_TIME.
1099
0bd8297f
EZ
11002012-06-23 Eli Zaretskii <eliz@gnu.org>
1101
96512555
EZ
1102 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
1103 last argument of make_unibyte_string.
1104
0bd8297f
EZ
1105 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
1106 language ID in the event parameters.
1107
1108 * w32term.c (w32_read_socket): Put the new keyboard codepage into
1109 event.code, not the obscure "character set ID".
1110
63def6b6
CY
11112012-06-23 Chong Yidong <cyd@gnu.org>
1112
1113 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
1114
e8a02204
EZ
11152012-06-23 Eli Zaretskii <eliz@gnu.org>
1116
388cdec0
EZ
1117 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
1118 * w32.c (fdutimens): New function.
1119
1120 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
1121
1122 * s/ms-w32.h (pselect): Redirect to sys_select.
1123
1124 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
1125
e8a02204
EZ
1126 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
1127 in the logic of incrementing and decrementing the value of
1128 use_relocatable_buffers.
1129
d054f3fb
PE
11302012-06-23 Paul Eggert <eggert@cs.ucla.edu>
1131
1132 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
1133 Privately reported by Herbert J. Skuhra.
1134 [__FreeBSD__]: Remove "*/" typo after "#include".
1135 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
1136 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
1137 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
1138 Don't assume EMACS_TIME and struct timeval are the same type.
1139
d35af63c
PE
11402012-06-22 Paul Eggert <eggert@cs.ucla.edu>
1141
1142 Support higher-resolution time stamps (Bug#9000).
1143 The time stamps are only nanosecond-resolution at the C level,
1144 since that's the best that any real-world system supports now.
1145 But they are picosecond-resolution at the Lisp level, as that's
1146 easy, and leaves room for future OS improvements.
1147
1148 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
1149 (LIBES): Use it.
1150
1151 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
1152 Don't get current time unless it's needed.
1153
1154 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
1155 now provides it if it's absent.
1156 (start_atimer): Port to higher-res time stamps.
1157 Check for time stamp overflow. Don't get current time more
1158 often than is needed.
1159
1160 * buffer.h (struct buffer): Buffer modtime now has high resolution.
1161 Include systime.h, not time.h.
1162 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
1163
1164 * dired.c: Include stat-time.h.
1165 (Ffile-attributes): File times now have higher resolution.
1166
1167 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
1168 (struct image): Timestamp now has higher resolution.
1169
1170 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
1171 has at least microseconds now. All uses removed.
1172 (update_frame, update_single_window, update_window, update_frame_1)
1173 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
1174
1175 * editfns.c (time_overflow): Now extern.
1176 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
1177 (float-time, Fformat_time_string, Fcurrent_time_string)
1178 (Fcurrent_time_zone): Accept and generate higher-resolution
1179 time stamps.
1180 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
1181 (decode_time_components, lisp_seconds_argument): New functions.
1182 (make_time): Now static.
1183 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
1184 Report an error if the time is invalid, rather than having the caller
1185 do that.
1186
1187 * fileio.c: Include <stat-time.h>
1188 (Fcopy_file): Copy higher-resolution time stamps.
1189 Prefer to set the time stamp via a file descriptor if that works.
1190 (Fset_file_times, Finsert_file_contents, Fwrite_region)
1191 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
1192 (Fvisited_file_modtime, Fset_visited_file_modtime):
1193 Support higher-resolution time stamps.
1194
1195 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
1196
1197 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
1198
1199 * image.c (prepare_image_for_display, clear_image_cache)
1200 (lookup_image): Port to higer-resolution time stamps.
1201
1202 * keyboard.c (start_polling, bind_polling_period):
1203 Check for time stamp overflow.
1204 (read_char, kbd_buffer_get_event, timer_start_idle)
1205 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
1206 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
1207 Port to higher-resolution time stamps. Do not assume time_t is signed.
1208 (decode_timer): New function. Timers are now vectors of length 9,
1209 not 8, to accommodate the picosecond component.
1210 (timer_check_2): Use it.
1211
1212 * nsterm.m (select_timeout, timeval_subtract): Remove.
1213 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
1214 as they're a bit more accurate and handle overflow better.
1215 (ns_select): Change prototype to be compatible with pselect.
1216 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
1217 * nsterm.h (ns_select): Adjust prototype.
1218
1219 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
1220 us-resolution time stamps.
1221 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
1222
1223 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
1224
1225 * lisp.h (time_overflow): New decl.
1226 (wait_reading_process_output): First arg is now intmax_t, not int,
1227 to accommodate larger waits.
1228
1229 * process.h (struct Lisp_Process.read_output_delay):
1230 Now counts nanoseconds, not microseconds.
1231 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
1232 EMACS_HAS_USECS.
1233 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
1234 (wait_reading_process_output):
1235 Port to ns-resolution time stamps.
1236 (Faccept_process_output, wait_reading_process_output):
1237 Check for time stamp overflow. Do not assume time_t is signed.
1238 (select_wrapper): Remove; we now use pselect.
1239 (Fprocess_attributes): Now generates ns-resolution time stamps.
1240
1241 * sysdep.c: Include utimens.h. Don't include utime.h
1242 or worry about struct utimbuf; gnulib does that for us now.
1243 (gettimeofday): Remove; gnulib provides a substitute.
1244 (make_timeval): New function.
1245 (set_file_times): Now sets ns-resolution time stamps.
1246 New arg FD; all uses changed.
1247 (time_from_jiffies, ltime_from_jiffies, get_up_time)
1248 (system_process_attributes):
1249 Now returns ns-resolution time stamp. All uses changed.
1250 Check for time stamp overflow.
1251
1252 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
1253 provides a substitute now.
1254
1255 * systime.h: Include timespec.h rather than sys/time.h and time.h,
1256 since it guarantees struct timespec.
1257 (EMACS_TIME): Now struct timespec, so that we can support
1258 ns-resolution time stamps.
1259 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
1260 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
1261 (EMACS_USECS): Remove.
1262 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
1263 so multiply the arg by 1000 before storing it.
1264 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
1265 New macros.
1266 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
1267 Port to ns-resolution time stamps.
1268 (EMACS_TIME_NEG_P): Remove; replaced by....
1269 (EMACS_TIME_SIGN): New macro.
1270 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
1271 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
1272 (set_file_times, make_time, lisp_time_argument): Adjust signature.
1273 (make_timeval, make_lisp_time, decode_time_components): New decls.
1274 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
1275 that it mishandled time_t overflow. You can't compare by subtracting!
1276 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
1277 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
1278
1279 * term.c: Include <sys/time.h>.
1280 (timeval_to_Time): New function, for proper overflow wraparound.
1281 (term_mouse_position, term_mouse_click): Use it.
1282
1283 * undo.c (record_first_change): Support higher-resolution time stamps
1284 in the undo buffer.
1285 (Fprimitive_undo): Use them when restoring time stamps.
1286
1287 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
1288 (w32_get_internal_run_time):
1289 Port to higher-resolution Emacs time stamps.
1290 (ltime): Now accepts single 64-bit integer, as that's more convenient
1291 for callers.
1292
1293 * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
1294
1295 * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
1296 for compatibility with pselect. Support ns-resolution time stamps.
1297
1298 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
1299
1300 * xselect.c (wait_for_property_change, x_get_foreign_selection):
1301 Check for time stamp overflow, and support ns-resolution time stamps.
1302
1303 * xterm.c: Don't include sys/time.h; gnulib does that for us now.
1304 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
1305 (timeval_subtract): Remove; no longer needed.
1306 (XTflash, XTring_bell, x_wait_for_event):
1307 Port to ns-resolution time stamps. Don't assume time_t is signed.
1308
b6a92dfe
CY
13092012-06-22 Chong Yidong <cyd@gnu.org>
1310
1311 * xdisp.c (x_consider_frame_title): Revert last change.
1312
d251c37c
EZ
13132012-06-22 Eli Zaretskii <eliz@gnu.org>
1314
1315 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
1316 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
1317 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
1318 staticidx goes up to 1597 out of 1600 = 0x640.)
1319
f10deafb
PE
13202012-06-20 Paul Eggert <eggert@cs.ucla.edu>
1321
1322 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
1323 Otherwise, the umask might be mistakenly 0 while handling input signals.
1324
ec6de1e2
SM
13252012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
1326
1327 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
1328
28be1ada
DA
13292012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
1330
1331 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
1332 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
1333 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
1334 access to `contents' member of Lisp_Vector objects with AREF and ASET
1335 where appropriate.
1336
c6bf3022
CY
13372012-06-19 Chong Yidong <cyd@gnu.org>
1338
1339 * frame.c (delete_frame): When selecting a frame on a different
1340 text terminal, do not alter the terminal's top-frame.
1341
1342 * xdisp.c (format_mode_line_unwind_data): Record the target
1343 frame's selected window and its terminal's top-frame.
1344 (unwind_format_mode_line): Restore them.
1345 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
1346 Callers changed.
1347 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
1348 since tty frames can be explicitly named.
1349 (prepare_menu_bars): Likewise.
1350
1351 * term.c (Ftty_top_frame): New function.
1352
defd4196
PE
13532012-06-18 Paul Eggert <eggert@cs.ucla.edu>
1354
1355 Port byte-code-meter to modern targets.
1356 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
1357 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
8b5257e1 1358 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
defd4196
PE
1359 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
1360 (METER_1, METER_2): Simplify.
1361
1053a871
SM
13622012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
1363
1364 * data.c (Fdefalias): Return `symbol' (bug#11686).
1365
b7e8d081
MR
13662012-06-18 Martin Rudalics <rudalics@gmx.at>
1367
1368 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
1053a871
SM
1369 gets killed during executing of this function (Bug#11665).
1370 Try to always return Qt when the buffer has been actually killed.
b7e8d081
MR
1371 (Vkill_buffer_query_functions): In doc-string say that functions
1372 run by this hook should not change the current buffer.
1373
7ea2b339
PE
13742012-06-18 Paul Eggert <eggert@cs.ucla.edu>
1375
1376 Fix recently-introduced process.c problems found by static checking.
1377 * process.c (write_queue_push, write_queue_pop, send_process):
1378 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
1379 (write_queue_pop): Fix pointer signedness problem.
1380 (send_process): Remove unused local.
1381
96a313a1
CY
13822012-06-17 Chong Yidong <cyd@gnu.org>
1383
1384 * xdisp.c (redisplay_internal): No need to redisplay terminal
1385 frames that are not on top.
1386
20ca2e94
TN
13872012-06-17 Troels Nielsen <bn.troels@gmail.com>
1388
1389 * process.c (make_process): Initialize write_queue.
1390 (write_queue_push, write_queue_pop): New functions.
1391 (send_process): Use them to maintain correct ordering of process
1392 writes (Bug#10815).
1393
9a900ca9
PE
13942012-06-17 Paul Eggert <eggert@cs.ucla.edu>
1395
310fbfa8
PE
1396 * lisp.h (eassert): Assume C89 or later.
1397 This removes the need for CHECK.
1398 (CHECK): Remove. Its comments about always evaluating its
1399 argument were confusing, as 'eassert' typically does not evaluate
1400 its argument.
1401
27bb1ca4
PE
1402 * coding.c (produce_chars): Use ptrdiff_t, not int.
1403
9a900ca9
PE
1404 * xterm.c (x_draw_underwave): Check for integer overflow.
1405 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
1406
41b7f8bc 14072012-06-17 Jan Djärv <jan.h.d@swipnet.se>
50a93863
JD
1408
1409 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
1410 referenced (Bug#11583).
1411
9b0e3eba
AA
14122012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
1413
1414 Implement wave-style variant of underlining.
1415 * dispextern.h (face_underline_type): New enum.
1416 (face): Add field for underline type.
1417 * nsterm.m (ns_draw_underwave): New function.
1418 (ns_draw_text_decoration): Use it.
1419 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
1420 New functions.
1421 (x_draw_glyph_string): Use them.
1422 * xfaces.c (Qline, Qwave): New Lisp objects.
1423 (check_lface_attrs, merge_face_ref)
1053a871
SM
1424 (Finternal_set_lisp_face_attribute, realize_x_face):
1425 Handle wave-style underline face attributes.
9b0e3eba
AA
1426 * xterm.c (x_draw_underwave): New function.
1427 (x_draw_glyph_string): Use it.
1428
0fb52f11
JB
14292012-06-16 Juanma Barranquero <lekktu@gmail.com>
1430
1431 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
1432 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
1433 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
1434 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
1435 ($(BLD)/w32select.$(O)): Update dependencies.
1436
e5560ff7
AS
14372012-06-16 Andreas Schwab <schwab@linux-m68k.org>
1438
1439 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
1440 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
1441 * character.c (_fetch_multibyte_char_p): Remove.
1442 * alloc.c: Include "character.h" before "buffer.h".
1443 * bidi.c: Likewise.
1444 * buffer.c: Likewise.
1445 * bytecode.c: Likewise.
1446 * callint.c: Likewise.
1447 * callproc.c: Likewise.
1448 * casefiddle.c: Likewise.
1449 * casetab.c: Likewise.
1450 * category.c: Likewise.
1451 * cmds.c: Likewise.
1452 * coding.c: Likewise.
1453 * composite.c: Likewise.
1454 * dired.c: Likewise.
1455 * dispnew.c: Likewise.
1456 * doc.c: Likewise.
1457 * dosfns.c: Likewise.
1458 * editfns.c: Likewise.
1459 * emacs.c: Likewise.
1460 * fileio.c: Likewise.
1461 * filelock.c: Likewise.
1462 * font.c: Likewise.
1463 * fontset.c: Likewise.
1464 * fringe.c: Likewise.
1465 * indent.c: Likewise.
1466 * insdel.c: Likewise.
1467 * intervals.c: Likewise.
1468 * keyboard.c: Likewise.
1469 * keymap.c: Likewise.
1470 * lread.c: Likewise.
1471 * macros.c: Likewise.
1472 * marker.c: Likewise.
1473 * minibuf.c: Likewise.
1474 * nsfns.m: Likewise.
1475 * nsmenu.m: Likewise.
1476 * print.c: Likewise.
1477 * process.c: Likewise.
1478 * regex.c: Likewise.
1479 * region-cache.c: Likewise.
1480 * search.c: Likewise.
1481 * syntax.c: Likewise.
1482 * term.c: Likewise.
1483 * textprop.c: Likewise.
1484 * undo.c: Likewise.
1485 * unexsol.c: Likewise.
1486 * w16select.c: Likewise.
1487 * w32fns.c: Likewise.
1488 * w32menu.c: Likewise.
1489 * window.c: Likewise.
1490 * xdisp.c: Likewise.
1491 * xfns.c: Likewise.
1492 * xmenu.c: Likewise.
1493 * xml.c: Likewise.
1494 * xselect.c: Likewise.
1495
2f07e6af
EZ
14962012-06-16 Eli Zaretskii <eliz@gnu.org>
1497
1053a871
SM
1498 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
1499 If all the glyphs of the glyph row came from strings, and we have no
2f07e6af 1500 cursor positioning clues, put the cursor on the first glyph of the
1097afe4
EZ
1501 row.
1502 (handle_face_prop): Use chunk-relative overlay string index when
1503 indexing into it->string_overlays array. (Bug#11653)
946fdb73
EZ
1504 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
1505 the rightmost. (Bug#11720)
2f07e6af 1506
29b83cec
AS
15072012-06-16 Andreas Schwab <schwab@linux-m68k.org>
1508
1509 * category.h (CHAR_HAS_CATEGORY): Define as inline.
1510 (CATEGORY_MEMBER): Enforce 1/0 value.
1511 * category.c (_temp_category_set): Remove.
1512
4c5501e9
EZ
15132012-06-16 Eli Zaretskii <eliz@gnu.org>
1514
1515 * window.c (Fdelete_other_windows_internal)
1516 (Fdelete_window_internal): Don't access frame's mouse highlight
1517 info of the initial frame. (Bug#11677)
1518
2b570124
PE
15192012-06-14 Paul Eggert <eggert@cs.ucla.edu>
1520
e93864f9
PE
1521 * .gdbinit (xgetint): Fix recently-introduced paren typo.
1522 Assume USE_2_TAGS_FOR_INTS.
1523 (xreload): Adjust $tagmask width to match recent lisp.h change.
1524
2b570124
PE
1525 Simplify lisp.h in minor ways that should not affect code.
1526 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
1527 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
1528 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
1529 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
1530 (INTTYPEBITS): New macro, for clarity.
1531 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
1053a871
SM
1532 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
1533 Simplify now that USE_LSB_TAG is always defined.
2b570124
PE
1534 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
1535 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
1536
81755f69
JB
15372012-06-13 Juanma Barranquero <lekktu@gmail.com>
1538
1539 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
1540
16192a57
GM
15412012-06-13 Glenn Morris <rgm@gnu.org>
1542
1543 * s/bsd-common.h (BSD4_3):
1544 * s/usg5-4-common.h (USG5_4): No longer define; unused.
1545
646b5f55
AS
15462012-06-13 Andreas Schwab <schwab@linux-m68k.org>
1547
1548 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
1549 instead of union.
1550 (XLI, XIL): Define.
1053a871
SM
1551 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
1552 Use them.
1553 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
646b5f55 1554 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
1053a871 1555 * alloc.c (widen_to_Lisp_Object): Remove.
646b5f55
AS
1556 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
1557 * frame.c (delete_frame): Remove outdated comment.
1558 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
1559 USE_LISP_UNION_TYPE.
1560 (Fw32_unregister_hot_key): Likewise.
1561 (Fw32_toggle_lock_key): Likewise.
1562 * w32menu.c (add_menu_item): Likewise.
1563 (w32_menu_display_help): Use XIL instead of checking
1564 USE_LISP_UNION_TYPE.
1565 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
1566 (init_heap): Likewise.
1567 * w32term.c (w32_read_socket): Update comment.
1568
1d3823c9
GM
15692012-06-13 Glenn Morris <rgm@gnu.org>
1570
c62ff706
GM
1571 * s/usg5-4-common.h, src/s/unixware.h:
1572 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
1573
1d3823c9
GM
1574 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
1575
bfe3e0a2
PE
15762012-06-13 Paul Eggert <eggert@cs.ucla.edu>
1577
1578 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
1579 * alloc.c (make_number) [!defined make_number]:
1580 Remove, as lisp.h always defines this now.
1581 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
1582 (roundup_size): Verify that it is a power of 2.
1583 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
1584 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
1585 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
1586 -DUSE_LSB_TAG=0, to override the automatically-selected default.
1587 USE_LSB_TAG now is always defined to be either 0 or 1.
1588 All uses changed.
1589 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
1590 code works fine either way, and efficiency is not a concern here,
1591 as the union type is for debugging, not for production.
1592 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
1593 Use an inline function on all platforms when using the union type,
1594 since this is simpler and 'static inline' can be used portably
1595 within Emacs now.
1596 (LISP_INITIALLY_ZERO): New macro.
1597 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
1598 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
1599
45fa9c0f
GM
16002012-06-12 Glenn Morris <rgm@gnu.org>
1601
b4492cba
GM
1602 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
1603
1604 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
0d369729 1605
45fa9c0f
GM
1606 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
1607 Move BROKEN_SIGIO to configure.
1608
1609 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
1610 Move NO_TERMIO to configure.
1611
0e25d334
CY
16122012-06-12 Chong Yidong <cyd@gnu.org>
1613
1614 * image.c (imagemagick_load_image): Use MagickFlattenImage if
1615 MagickMergeImageLayers is undefined. Use pixel pusher loop if
1616 MagickExportImagePixels is undefined.
1617
43682bb6
PE
16182012-06-12 Paul Eggert <eggert@cs.ucla.edu>
1619
1620 * image.c (imagemagick_load_image): Remove unused label.
1621
a9be7d2b
GM
16222012-06-11 Glenn Morris <rgm@gnu.org>
1623
1624 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
1625 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
1626 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
1627 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
1628
3017f87f
SM
16292012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
1630
1631 * alloc.c (make_byte_code): New function.
1632 (Fmake_byte_code): Use it. Don't purify here.
1633 * lread.c (read1): Use it as well to avoid extra allocation.
1634
1b9b4cf4
CY
16352012-06-11 Chong Yidong <cyd@gnu.org>
1636
1637 * image.c (imagemagick_load_image): Implement transparency.
1638
95988fcf
AS
16392012-06-10 Andreas Schwab <schwab@linux-m68k.org>
1640
1641 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
1642 account for preceding backslashes. (Bug#11663)
1643
cd4eb164
CY
16442012-06-09 Chong Yidong <cyd@gnu.org>
1645
1646 * term.c: Support italics in capable terminals (Bug#9652).
1647 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
1648 (turn_on_face): Output using TS_enter_italic_mode if available.
1649 Don't handle unused blinking and alt-charset cases.
1650 (turn_off_face): Handle italic case; discard unused tty_blinking_p
1651 and tty_alt_charset_p cases.
1652 (tty_capable_p, init_tty): Support italics.
1653
1654 * termchar.h (struct tty_display_info): Add field for italics.
1655 Remove unused blink field.
1656
1657 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
1658 Handle slant.
1659
1660 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
1661 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
1662 tty_alt_charset_p. Add tty_italic_p.
1663
ff88beb8
MA
16642012-06-09 Michael Albinus <michael.albinus@gmx.de>
1665
1666 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
1667 dbus_type_is_basic if available.
1668 (xd_extract_signed, xd_extract_unsigned): Rename from
1669 extract_signed and extract_unsigned, respectively. Adapt callers.
1670
44286096
CY
16712012-06-09 Chong Yidong <cyd@gnu.org>
1672
1682701f
CY
1673 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
1674
44286096
CY
1675 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
1676 case (Bug#9752).
1677
d86feb17
PE
16782012-06-08 Paul Eggert <eggert@cs.ucla.edu>
1679
1680 * xdisp.c (vmessage): Treat frame message as multibyte.
1681 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
1682 would generate the diagnostic "Making \302\247 buffer-local while
1683 let-bound!".
1684
d5c20fe8
EZ
16852012-06-08 Eli Zaretskii <eliz@gnu.org>
1686
1687 * dispnew.c (showing_window_margins_p): Undo last change, which
1688 was done due to an inadvertent commit.
1689 (adjust_frame_glyphs_for_frame_redisplay): Do call
1690 showing_window_margins_p.
1691
513749ee
SM
16922012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
1693
1694 * eval.c (Fmake_var_non_special): New primitive.
1695 (syms_of_eval): Defsubr it.
1696 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
1697
d4a8f5c1
JB
16982012-06-08 Juanma Barranquero <lekktu@gmail.com>
1699
1700 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
1701 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
1702
8bbbc977
EZ
17032012-06-08 Eli Zaretskii <eliz@gnu.org>
1704
1705 * alloc.c (allocate_vectorlike): Fix last change.
1706
f3372c87
DA
17072012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
1708
1709 Block-based vector allocation of small vectors.
1710 * lisp.h (struct vectorlike_header): New field `nbytes',
1711 adjust comment accordingly.
1712 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
1713 to denote vector blocks. Adjust users (live_vector_p,
1714 mark_maybe_pointer, valid_lisp_object_p) accordingly.
1715 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
1716 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES),
1717 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX),
1718 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST),
1719 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
1720 (roundup_size): New constant.
1721 (struct vector_block): New data type.
1722 (vector_blocks, vector_free_lists, zero_vector): New variables.
513749ee 1723 (all_vectors): Rename to `large_vectors'.
f3372c87
DA
1724 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
1725 (sweep_vectors): New functions.
1726 (allocate_vectorlike): Return `zero_vector' as the only vector of
1727 0 items. Allocate new vector from block if vector size is less than
1728 or equal to VBLOCK_BYTES_MAX.
1729 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
1730 (init_alloc_once): Add call to init_vectors.
1731
4f18a4ed
SM
17322012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
1733
1734 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
1735
86f158bc
PE
17362012-06-07 Paul Eggert <eggert@cs.ucla.edu>
1737
1738 * doprnt.c (doprnt): Truncate multibyte char correctly.
1739 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
1740 would mishandle a string argument "Xc" if X was a multibyte
1741 character of length 2: it would truncate after X's first byte
1742 rather than including all of X.
1743
c5cfcbe0
CY
17442012-06-06 Chong Yidong <cyd@gnu.org>
1745
1746 * buffer.c (word_wrap): Doc fix.
1747
c05cf390
PE
17482012-06-04 Paul Eggert <eggert@cs.ucla.edu>
1749
1750 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
1751
0c3461de
GM
17522012-06-03 Glenn Morris <rgm@gnu.org>
1753
1754 * xdisp.c (tool-bar-style): Doc fix.
1755
c71232db
UM
17562012-06-03 Ulrich Müller <ulm@gentoo.org>
1757
1758 * Makefile.in (PAXCTL): Define.
1759 (temacs$(EXEEXT)): Disable memory randomization for the temacs
1760 binary via PaX flags if the paxctl utility is available.
1761 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
1762 Restore PaX flags to their default. (Bug#11398)
1763
383f7350
CY
17642012-06-03 Chong Yidong <cyd@gnu.org>
1765
1766 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
1767 buffer (Bug#11226).
1768
5f2c76c6
CY
17692012-06-03 Chong Yidong <cyd@gnu.org>
1770
1771 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
1772 (note_mode_line_or_margin_highlight): If there is no help echo,
1773 use mode-line-default-help-echo. Handle the case where the mouse
1774 position is past the end of the mode line string.
1775
1776 * buffer.c (buffer_local_value_1): New function, split from
1777 Fbuffer_local_value; can return Qunbound.
1778 (Fbuffer_local_value): Use it.
1779 (Vmode_line_format): Docstring tweaks.
1780
773d47f6
PE
17812012-06-02 Paul Eggert <eggert@cs.ucla.edu>
1782
1783 * sysdep.c (system_process_attributes): Improve comment.
1784
f2d6a3df
SM
17852012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
1786
1787 * keyboard.c: Export real-this-command to Elisp.
1788 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
1789 and DEFVAR it. Update all users.
1790
63810350
PE
17912012-06-02 Paul Eggert <eggert@cs.ucla.edu>
1792
7bd5c1f4
PE
1793 * minibuf.c (Fassoc_string): Remove duplicate declaration.
1794
63810350
PE
1795 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
1796 Convert pctcpu and pctmem to Lisp float properly.
1797 Let the compiler fold better, as 100.0/0x8000 is exact.
1798
a2821611
AS
17992012-06-02 Andreas Schwab <schwab@linux-m68k.org>
1800
1801 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
1802 cons_block.
1803
5fceba1d
PE
18042012-06-01 Paul Eggert <eggert@cs.ucla.edu>
1805
1806 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
1807
c98ff5dd
DA
18082012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
1809
1810 For a 'struct window', replace some Lisp_Object fields to
1811 bitfields where appropriate, remove unused fields.
1812 * window.h (struct window): Remove unused 'last_mark_x' and
1813 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
1814 change it's type from Lisp_Object to bitfield.
1815 Change type of 'force_start', 'optional_new_start',
1816 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
1817 fields from Lisp_Object to bitfield. Adjust users accordingly.
1818
ca34e0be
PE
18192012-05-31 Paul Eggert <eggert@cs.ucla.edu>
1820
1821 Pacify gcc -Wdouble-precision when using Xaw.
1822 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
1823 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
1824 Use 'float' consistently, rather than 'float' in most places
1825 and 'double' in a couple of places.
1826
efc00ab1 18272012-05-31 Eli Zaretskii <eliz@gnu.org>
d5fd2c54
EZ
1828
1829 * xdisp.c (handle_stop): Detect whether we have overlay strings
1830 loaded by testing it->current.overlay_string_index to be
1831 non-negative, instead of checking whether n_overlay_strings is
1832 positive. (Bug#11587)
1833
efc00ab1 18342012-05-31 Chong Yidong <cyd@gnu.org>
353c87f6
CY
1835
1836 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
1837
1838 * doc.c (Fsubstitute_command_keys): Doc fix.
1839
efc00ab1 18402012-05-31 Eli Zaretskii <eliz@gnu.org>
a02ae4e5
EZ
1841
1842 * search.c (search_buffer): Remove calls to
1843 r_alloc_inhibit_buffer_relocation, as it is now called by
1844 maybe_unify_char, which was the cause of relocation of buffer text
1845 in bug#11519.
1846
efc00ab1 18472012-05-31 Eli Zaretskii <eliz@gnu.org>
291d430f
EZ
1848
1849 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
1850 for the duration of call to load_charset, to avoid problems with
1851 callers of maybe_unify_char that access buffer text through C
1852 pointers.
1853
1854 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
1855 decrement the inhibition flag, instead of just setting or
1856 resetting it.
1857
ba93a187
PE
18582012-05-31 Paul Eggert <eggert@cs.ucla.edu>
1859
1860 Remove obsolete '#define static' cruft.
1861 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
1862 This #undef was "temporary" in 2000; it is no longer needed
1863 now that '#define static' has gone away.
1864 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
1865 (gray_bitmap_bits): Remove; no longer needed.
1866 All uses replaced with definiens.
1867 * xterm.c: Include "bitmaps/gray.xbm".
1868
9e4bf381
PE
18692012-05-30 Paul Eggert <eggert@cs.ucla.edu>
1870
1871 Clean up __executable_start, monstartup when --enable-profiling.
1872 The following changes affect the code only when profiling.
1873 * dispnew.c (__executable_start): Rename from safe_bcopy.
1874 Define only on platforms that need it.
1875 * emacs.c: Include <sys/gmon.h> when profiling.
1876 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
1877 (__executable_start): Remove decl, since lisp.h does it now.
1878 (safe_bcopy): Remove decl; no longer has that name.
1879 (main): Coalesce #if into single bit of code, for simplicity.
1880 Cast pointers to uintptr_t, since standard libraries want integers
1881 and not pointers.
1882 * lisp.h (__executable_start): New decl.
1883
32d72c2f
GM
18842012-05-31 Glenn Morris <rgm@gnu.org>
1885
1886 * image.c (Fimagemagick_types): Doc fix.
1887
baac5bc7
JM
18882012-05-30 Jim Meyering <meyering@redhat.com>
1889
1890 * callproc.c (Fcall_process_region): Include directory component
1891 in mkstemp error message (Bug#11586).
1892
72cb32cf
PE
18932012-05-30 Paul Eggert <eggert@cs.ucla.edu>
1894
1895 * alloc.c, lisp.h (make_pure_vector): Now static.
1896
61b108cc
SM
18972012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
1898
1899 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
1900 Move to byte-run.el.
1901 (Fautoload): Do the hash-doc more carefully.
1902 * data.c (Fdefalias): Purify definition, except for keymaps.
1903 (Qdefun): Move from eval.c.
1904 * lisp.h (Qdefun): Remove.
1905 * lread.c (read1): Tiny simplification.
1906
471fe23d
TN
19072012-05-29 Troels Nielsen <bn.troels@gmail.com>
1908
934f3f58 1909 Do not create empty overlays with the evaporate property (Bug#9642).
471fe23d
TN
1910 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
1911 Bug#9642, but explicitly check that the buffer the overlay would
1912 be moved to is live and rearrange lines to make sure that errors
1913 will not put the overlay in an inconsistent state.
1914 (Fdelete_overlay): Cosmetics.
1915
85d0efd1
EZ
19162012-05-28 Eli Zaretskii <eliz@gnu.org>
1917
1918 * w32term.c (my_bring_window_to_top): New function.
1919 (x_raise_frame): Use handle returned by DeferWindowPos, which
61b108cc
SM
1920 could be different from the original one.
1921 Call my_bring_window_to_top instead of my_set_foreground_window.
85d0efd1
EZ
1922 (Bug#11513)
1923
1924 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
1925 by calling BringWindowToTop.
1926
1927 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
1928 (WM_EMACS_END): Increase by one.
1929
da92a98c
PE
19302012-05-28 Paul Eggert <eggert@cs.ucla.edu>
1931
1932 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
1933 This avoids undefined behavior that might cause the eassert
1934 to not catch an out-of-range value.
1935
74d1f848
JB
19362012-05-28 Juanma Barranquero <lekktu@gmail.com>
1937
1938 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
1939 Update dependencies.
1940
9e1a06fc
EZ
19412012-05-27 Eli Zaretskii <eliz@gnu.org>
1942
1943 * bidi.c (bidi_mirror_char): Fix last change.
1944
f3dd7312
AS
19452012-05-27 Andreas Schwab <schwab@linux-m68k.org>
1946
1947 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
1948 when referring to sectname field in printf format.
1949
81899c91
PE
19502012-05-27 Paul Eggert <eggert@cs.ucla.edu>
1951
57b81a9f
PE
1952 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
1953 Only r_alloc_inhibit_buffer_relocation needed to be added;
1954 the others were already declared.
1955
81899c91
PE
1956 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
1957 before checking whether it's out of range. Put the check inside
1958 eassert. See
1959 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
1960
33017faf 19612012-05-27 Ken Brown <kbrown@cornell.edu>
2f9b9adb
KB
1962
1963 * callproc.c (Fcall_process): Restore a line that was accidentally
1964 commented out in the 2011-02-13 change (bug#11547).
1965
33017faf 19662012-05-27 Eli Zaretskii <eliz@gnu.org>
52c55cc7
EZ
1967
1968 * lisp.h [REL_ALLOC]: Add prototypes for external functions
1969 defined on ralloc.c.
1970
1971 * buffer.c [REL_ALLOC]: Remove prototypes of
1972 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
1973 they are now on lisp.h.
1974
1975 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
1976
1977 * search.c (search_buffer): Use it to inhibit relocation of buffer
1978 text while re_search_2 is doing its job, because re_search_2 is
1979 passed C pointers to buffer text. (Bug#11519)
1980
23415acf
EZ
1981 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
1982 Update value to 24.
1983
44e27368
EZ
1984 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
1985 state after an additional call to move_it_in_display_line_to, keep
1986 the values of it->max_ascent and it->max_descent found for the
1987 entire line.
1988 (pos_visible_p): Revert the comparison against bottom_y to what it
1989 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
1990 (Bug#11464)
1991
c1892f11
PE
19922012-05-26 Paul Eggert <eggert@cs.ucla.edu>
1993
1994 Fix coding-related core dumps with gcc -ftrapv.
1995 The code was computing A - B, where A and B are pointers, and B is
1996 random garbage. This can lead to core dumps on platforms that
1997 have special pointer registers, and it also leads to core dumps on
1998 x86-64 when compiled with gcc -ftrapv. The fix is to compute
1999 A - B only when B is initialized properly.
2000 * coding.c (coding_set_source, coding_set_destination): Return void.
2001 (coding_change_source, coding_change_destinations): New functions,
2002 with the old behaviors of coding_set_source and coding_set_destination.
2003 All callers that need an offset changed to use these new functions.
2004
eb7afdad
GM
20052012-05-26 Glenn Morris <rgm@gnu.org>
2006
2007 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
2008
f12fdf02
EZ
20092012-05-26 Eli Zaretskii <eliz@gnu.org>
2010
53a63be6 2011 Extend mouse support on W32 text-mode console.
61b108cc
SM
2012 * xdisp.c (draw_row_with_mouse_face):
2013 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
eb3f6f01 2014
eb3f6f01 2015 * w32console.c: Include window.h.
61b108cc
SM
2016 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
2017 New functions.
eb3f6f01
EZ
2018 (initialize_w32_display): Initialize mouse-highlight data.
2019
53a63be6
EZ
2020 * w32inevt.c: Include termchar.h and window.h.
2021 (do_mouse_event): Support mouse-autoselect-window. When the mouse
2022 moves, call note_mouse_highlight. If help_echo changed, call
2023 gen_help_event to produce help-echo message in the echo area.
2024 Call clear_mouse_face if mouse_face_hidden is set in the mouse
2025 highlight info.
2026
4cfd81f6
PE
20272012-05-26 Paul Eggert <eggert@cs.ucla.edu>
2028
2029 * lread.c (read1): Simplify slightly to avoid an overflow warning
2030 with GCC 4.7.0 on x86-64.
2031
4446092a
EZ
20322012-05-26 Eli Zaretskii <eliz@gnu.org>
2033
2034 * bidi.c (bidi_mirror_char): Revert last change: an int is
2035 definitely wide enough here.
2036
42b2a986 20372012-05-25 Paul Eggert <eggert@cs.ucla.edu>
3164aeac 2038
42b2a986 2039 Fix integer width and related bugs (Bug#9874).
eb106a49 2040 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
d311d28c
PE
2041 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
2042 (string_bytes, check_sblock, allocate_string_data):
2043 (compact_small_strings, Fmake_bool_vector, make_string)
2044 (make_unibyte_string, make_multibyte_string)
2045 (make_string_from_bytes, make_specified_string)
2046 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
2047 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
2048 (mark_vectorlike):
2049 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2050 (allocate_pseudovector):
2051 Use int, not EMACS_INT, where int is wide enough.
2052 (inhibit_garbage_collection, Fgarbage_collect):
2053 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2054 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
2055 int might not be wide enough.
2056 (bidi_cache_search, bidi_cache_find, bidi_init_it)
2057 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
2058 (bidi_at_paragraph_end, bidi_find_paragraph_start)
2059 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
2060 (bidi_level_of_next_char, bidi_move_to_visually_next):
2061 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2062 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
2063 (Fkill_buffer, Fset_buffer_major_mode)
2064 (advance_to_char_boundary, Fbuffer_swap_text)
2065 (Fset_buffer_multibyte, overlays_at, overlays_in)
2066 (overlay_touches_p, struct sortvec, record_overlay_string)
2067 (overlay_strings, recenter_overlay_lists)
2068 (adjust_overlays_for_insert, adjust_overlays_for_delete)
2069 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
2070 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
2071 (Foverlay_recenter, last_overlay_modification_hooks_used)
2072 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
2073 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
977b0e45
PE
2074 (validate_region): Omit unnecessary test for b <= e,
2075 since that's guaranteed by the previous test.
d311d28c
PE
2076 (adjust_overlays_for_delete): Avoid pos + length overflow.
2077 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
2078 (report_overlay_modification):
2079 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2080 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
2081 Omit pointer cast, which isn't needed anyway, and doesn't work
2082 after the EMACS_INT -> ptrdiff_t change.
02481186 2083 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
d311d28c
PE
2084 * buffer.h: Adjust decls to match defn changes elsewhere.
2085 (struct buffer_text, struct buffer):
2086 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2087 Use EMACS_INT, not int, where int might not be wide enough.
39b5db3b
PE
2088 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
2089 not int, to avoid needless 32-bit limit on 64-bit hosts.
2090 (exec_byte_code): Use tighter memory-full test, one that checks
2091 for alloca overflow. Don't compute the address of the object just
2092 before an array, as that's not portable. Use EMACS_INT, not
2093 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
d311d28c
PE
2094 * callint.c (Fcall_interactively):
2095 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2096 * callproc.c (call_process_kill, Fcall_process):
2097 Don't assume pid_t fits into an Emacs fixnum.
2098 (call_process_cleanup, Fcall_process, child_setup):
2099 Don't assume pid_t fits into int.
2100 (call_process_cleanup, Fcall_process, delete_temp_file)
2101 (Fcall_process_region):
2102 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2103 (Fcall_process): Simplify handling of volatile integers.
2104 Use int, not EMACS_INT, where int will do.
2105 * casefiddle.c (casify_object, casify_region, operate_on_word)
2106 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
2107 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2108 (casify_object): Avoid integer overflow when overallocating buffer.
2109 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
45c2afd6 2110 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
d311d28c
PE
2111 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
2112 * category.h (CATEGORYP): Don't assume arg is nonnegative.
2113 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
2114 integers are now checked earlier. All uses replaced with XINT.
2115 (ccl_driver):
2116 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2117 For CCL_MapSingle, check that content and value are in int range.
c801946a
PE
2118 (ccl_driver, Fregister_code_conversion_map):
2119 Check that Vcode_version_map_vector is a vector.
d311d28c
PE
2120 (resolve_symbol_ccl_program): Check that vector header is in range.
2121 Always copy the vector, so that we can check its contents reliably
2122 now rather than having to recheck each instruction as it's being
2123 executed. Check that vector words fit in 'int'.
2124 (ccl_get_compiled_code, Fregister_ccl_program)
2125 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
2126 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
2127 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
2128 contents are in range.
2129 (Fccl_execute_on_string): Check that status is in range.
2130 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
2131 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
2132 Accept and return EMACS_INT, not int, because callers can pass values
2133 out of 'int' range.
2134 (c_string_width, strwidth, lisp_string_width, chars_in_text)
2135 (multibyte_chars_in_text, parse_str_as_multibyte)
2136 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
2137 (str_as_unibyte, str_to_unibyte, string_count_byte8)
2138 (string_escape_byte8, Fget_byte):
2139 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
a14e1568 2140 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
d311d28c
PE
2141 avoid mishandling large integers.
2142 * character.h: Adjust decls to match defn changes elsewhere.
2143 * charset.c (load_charset_map_from_file, find_charsets_in_text)
2144 (Ffind_charset_region):
2145 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2146 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
2147 (load_charset_map_from_vector, Fdefine_charset_internal):
3c7649c1 2148 Don't assume fixnum fits in int.
d311d28c
PE
2149 (load_charset_map_from_vector, Fmap_charset_chars):
2150 Remove now-unnecessary CHECK_NATNUMs.
2151 (Fdefine_charset_internal): Check ranges here, more carefully.
3c7649c1
PE
2152 Don't rely on undefined behavior with signed left shift overflow.
2153 Don't assume unsigned int fits into fixnum, or that fixnum fits
2154 into unsigned int. Don't require max_code to be a valid fixnum;
2155 that's not true for gb10830 4-byte on a 32-bit host. Allow
2156 invalid_code to be a cons, for the same reason. Require code_offset
2157 to be a character. Avoid int overflow if max_char is close
2158 to INT_MAX.
2159 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
2160 this is intended anyway and avoids some undefined behavior.
2161 (load_charset_map): Pass unsigned, not int, as 2nd arg of
2162 INDEX_TO_CODE_POINT, as that's what it expects.
2163 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
60ad3eab
PE
2164 * charset.h (DECODE_CHAR): Return int, not unsigned;
2165 this is what was intended anyway, and it avoids undefined behavior.
2166 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
2167 integer-overflow issues.
2168 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
2169 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
2170 where the argument is EMACS_INT, and this behavior is not intended.
d311d28c
PE
2171 * chartab.c (Fmake_char_table, Fset_char_table_range)
2172 (uniprop_get_decoder, uniprop_get_encoder):
2173 Don't assume fixnum fits in int.
2174 * cmds.c (move_point): New function, that does the gist of
2175 Fforward_char and Fbackward_char, but does so while checking
2176 for integer overflow more accurately.
c96e5d6a 2177 (Fforward_char, Fbackward_char): Use it.
d311d28c
PE
2178 (Fforward_line, Fend_of_line, internal_self_insert)
2179 (internal_self_insert):
2180 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2181 Fix a FIXME, by checking for integer overflow when calculating
2182 target_clm and actual_clm.
2183 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
8f50130c 2184 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
d311d28c
PE
2185 (ASSURE_DESTINATION, coding_alloc_by_realloc)
2186 (coding_alloc_by_making_gap, alloc_destination)
2187 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
2188 (encode_coding_utf_16, detect_coding_emacs_mule)
2189 (decode_coding_emacs_mule, encode_coding_emacs_mule)
2190 (detect_coding_iso_2022, decode_coding_iso_2022)
2191 (encode_invocation_designation, encode_designation_at_bol)
2192 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
2193 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
2194 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
2195 (encode_coding_ccl, encode_coding_raw_text)
2196 (detect_coding_charset, decode_coding_charset)
2197 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
2198 (produce_composition, produce_charset, produce_annotation)
2199 (decode_coding, handle_composition_annotation)
2200 (handle_charset_annotation, consume_chars, decode_coding_gap)
2201 (decode_coding_object, encode_coding_object, detect_coding_system)
2202 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
2203 (code_convert_region, code_convert_string)
8f50130c
PE
2204 (Fdefine_coding_system_internal)
2205 (coding_set_source, coding_set_destination):
d311d28c
PE
2206 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2207 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
2208 (Fdefine_coding_system_internal):
2209 Don't assume fixnums fit in int.
2210 (decode_coding_gap, decode_coding_object, encode_coding_object)
5895d7b9 2211 (Fread_coding_system, Fdetect_coding_region)
2c6a9faa
PE
2212 (Funencodable_char_position, Fcheck_coding_systems_region)
2213 (get_translation, handle_composition_annotation, consume_chars):
d311d28c 2214 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
977b0e45 2215 (consume_chars): Rewrite to not calculate an address outside buffer.
d311d28c 2216 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
7b09a37a 2217 Don't access memory outside of the args array.
d311d28c 2218 (Fdefine_coding_system_internal): Check for charset-id overflow.
47664caa
PE
2219 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
2220 result of ENCODE_CHAR.
d311d28c
PE
2221 * coding.h: Adjust decls to match defn changes elsewhere.
2222 (struct coding_system):
2223 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2224 * composite.c (get_composition_id, find_composition)
2225 (run_composition_function, update_compositions)
2226 (compose_text, composition_gstring_put_cache)
2227 (composition_gstring_p, composition_gstring_width)
2228 (fill_gstring_header, fill_gstring_body, autocmp_chars)
2229 (composition_compute_stop_pos, composition_reseat_it)
2230 (composition_update_it, struct position_record)
2231 (find_automatic_composition, composition_adjust_point)
2232 (Fcomposition_get_gstring, Ffind_composition_internal):
2233 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2234 (update_compositions):
2235 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2236 * composite.h: Adjust decls to match defn changes elsewhere.
2237 (struct composition):
2238 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2239 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
2240 Do not attempt to compute the address of the object just before a
2241 buffer; this is not portable.
2242 (Faref, Faset):
2243 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2244 (Faset): Use int, not EMACS_INT, where int is wide enough.
2245 (Fstring_to_number): Don't assume fixnums fit in int.
2246 (Frem): Don't assume arg is nonnegative.
2247 * dbusbind.c (xd_append_arg): Check for integers out of range.
2248 (Fdbus_call_method): Don't overflow the timeout int.
42b2a986 2249 (extract_signed, extract_unsigned): New functions.
243e0530
PE
2250 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
2251 (xd_get_connection_references): Return ptrdiff_t, not int.
2252 All uses changed.
2253 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
2254 (xd_read_message_1):
2255 Use int, not unsigned, where the dbus API uses int.
2256 (Fdbus_message_internal): Don't overflow mtype.
2257 (syms_of_dbusbind): Allocate right-sized buffer for integers.
d311d28c
PE
2258 * dired.c (directory_files_internal, file_name_completion, scmp)
2259 (file_name_completion_stat):
2260 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2261 (file_name_completion): Don't overflow matchcount.
2262 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
2263 * dispextern.h: Adjust decls to match defn changes elsewhere.
2264 (struct text_pos, struct glyph, struct bidi_saved_info)
2265 (struct bidi_string_data, struct bidi_it, struct composition_it)
2266 (struct it):
2267 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2268 (struct display_pos, struct composition_it, struct it):
2269 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2270 * dispnew.c (increment_matrix_positions)
2271 (increment_row_positions, mode_line_string)
2272 (marginal_area_string):
2273 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
54e1617f 2274 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
d311d28c
PE
2275 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2276 (duration_to_sec_usec): New function, to check for overflow better.
2277 (Fsleep_for, sit_for): Use it.
2278 * doc.c (get_doc_string, store_function_docstring):
2279 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2280 (get_doc_string, Fsnarf_documentation):
2281 Use int, not EMACS_INT, where int is wide enough.
2282 (get_doc_string):
2283 Use SAFE_ALLOCA, not alloca.
2284 Check for overflow when converting EMACS_INT to off_t.
2285 * doprnt.c (doprnt):
2286 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2287 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
2288 Don't assume uid_t fits into fixnum.
2289 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
2290 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
2291 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
2292 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
2293 (general_insert_function)
2294 (Finsert_char, make_buffer_string, make_buffer_string_both)
2295 (update_buffer_properties, Fbuffer_substring)
2296 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
2297 (Fsubst_char_in_region, check_translation)
2298 (Ftranslate_region_internal, save_restriction_restore, Fformat)
2299 (transpose_markers, Ftranspose_regions):
2300 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2301 (clip_to_bounds): Move to lisp.h as an inline function).
2302 (Fconstrain_to_field): Don't assume integers are nonnegative.
2303 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
2304 (Fsubst_char_in_region, Fsave_restriction):
2305 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2306 (Femacs_pid): Don't assume pid_t fits into fixnum.
2307 (lo_time): Use int, not EMACS_INT, when int suffices.
2308 (lisp_time_argument): Check for usec out of range.
2309 (Fencode_time): Don't assume fixnum fits in int.
3f4eabd1
PE
2310 (Fuser_login_name, Fuser_full_name): Signal an error
2311 if a uid argument is out of range, rather than relying on
2312 undefined behavior.
c8d5c857
PE
2313 (Fformat_time_string): Remove now-unnecessary check.
2314 lisp_time_argument checks for out-of-range usec now.
243e0530 2315 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
d311d28c
PE
2316 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
2317 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
2318 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
2319 (init_cmdargs, Fdump_emacs):
2320 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2321 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
2322 the bottom (typically) 32 bits of the fixnum.
2323 * eval.c (specpdl_size, call_debugger):
2324 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2325 (when_entered_debugger, Fbacktrace_debug):
2326 Don't assume fixnum can fit in int.
2327 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
2328 the object just before a buffer; this is not portable.
2329 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
2330 (grow_specpdl, unbind_to):
2331 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2332 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
2333 (grow_specpdl): Simplify allocation by using xpalloc.
856bbc81 2334 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
d311d28c
PE
2335 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
2336 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
2337 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2338 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
2339 (a_write, e_write):
2340 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2341 (Fcopy_file, non_regular_nbytes, read_non_regular)
2342 (Finsert_file_contents):
2343 Use int, not EMACS_INT, where int is wide enough.
2344 (READ_BUF_SIZE): Verify that it fits in int.
2345 (Finsert_file_contents): Check that counts are in proper range,
2346 rather than assuming fixnums fit into ptrdiff_t etc.
2347 Don't assume fixnums fit into int.
125b3835 2348 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
5895d7b9
PE
2349 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
2350 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
d311d28c
PE
2351 (string_char_to_byte, string_byte_to_char)
2352 (string_make_multibyte, string_to_multibyte)
2353 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
2354 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
2355 (substring_both, Fdelete, internal_equal, Ffillarray)
2356 (Fclear_string, mapcar1)
2357 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
2358 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
2359 (larger_vector, make_hash_table, maybe_resize_hash_table)
2360 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
2361 (Fmaphash, secure_hash):
2362 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2363 (concat): Check for string index and length overflow.
2364 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
2365 (Frequire):
2366 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2367 (larger_vector): New API (vec, incr_min, size_max) replaces old
2368 one (vec, new_size, init). This catches size overflow.
2369 INIT was removed because it was always Qnil.
2370 All callers changed.
2371 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
2372 the upper bound on a hash table index size.
2373 (make_hash_table, maybe_resize_hash_table): Use it.
2374 (secure_hash): Computer start_byte and end_byte only after
2375 they're known to be in ptrdiff_t range.
2376 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
2377 (Ffont_get_glyphs, Ffont_at):
2378 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2379 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
2380 (Flist_fonts, Fopen_font):
2381 Don't assume fixnum can fit in int.
2382 (check_gstring): Don't assume index can fit in int.
2383 (font_match_p): Check that fixnum is a character, not a nonnegative
2384 fixnum, since the later code needs to stuff it into an int.
2385 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
2386 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
2387 conversion overflow issues.
2388 (Fopen_font): Check for integer out of range.
2389 (Ffont_get_glyphs): Don't assume index can fit in int.
2390 * font.h: Adjust decls to match defn changes elsewhere.
2391 * fontset.c (reorder_font_vector): Redo score calculation to avoid
2392 integer overflow.
2393 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
2394 printmax_t, where ptrdiff_t is wide enough.
2395 (Finternal_char_font):
2396 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2397 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
2398 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
2399 (Fset_frame_position, x_set_frame_parameters)
2400 (x_set_line_spacing, x_set_border_width)
2401 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
2402 Check that fixnums are in proper range for system types.
2403 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
2404 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2405 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
2406 Use SAFE_ALLOCA_LISP, not alloca.
2407 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
2408 intptr_t is wide enough.
2409 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
2410 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
2411 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
2412 Check for fixnum out of range.
2413 * ftfont.c (ftfont_list): Don't assume index fits in int.
2414 Check that fixnums are in proper range for system types.
2415 (ftfont_shape_by_flt):
2416 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
d311d28c
PE
2417 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
2418 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2419 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
2420 Check that fixnums are in proper range for system types.
2421 * gnutls.h: Adjust decls to match defn changes elsewhere.
2422 * gtkutil.c (xg_dialog_run):
2423 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2424 (update_frame_tool_bar):
2425 Check that fixnums are in proper range for system types.
2426 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
5895d7b9 2427 (lookup_image): Check that fixnums are in range for system types.
d311d28c
PE
2428 * indent.c (last_known_column, last_known_column_point):
2429 (current_column_bol_cache):
2430 (skip_invisible, current_column, check_display_width):
2431 (check_display_width, scan_for_column, current_column_1)
2432 (Findent_to, Fcurrent_indentation, position_indentation)
2433 (indented_beyond_p, Fmove_to_column, compute_motion):
2434 (Fcompute_motion, Fvertical_motion):
2435 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2436 (last_known_column_modified): Use EMACS_INT, not int.
2437 (check_display_width):
2438 (Fcompute_motion):
2439 Check that fixnums and floats are in proper range for system types.
2440 (compute_motion): Don't assume index or fixnum fits in int.
2441 (compute_motion, Fcompute_motion):
2442 Use int, not EMACS_INT, when it is wide enough.
2443 (vmotion): Omit local var start_hpos that is always 0; that way
2444 we don't need to worry about overflow in expressions involving it.
2445 * indent.h: Adjust decls to match defn changes elsewhere.
2446 (struct position):
2447 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2448 Use int, not EMACS_INT, where int is wide enough.
2449 Remove unused members ovstring_chars_done and tab_offset;
2450 all uses removed.
2451 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
2452 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
2453 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
2454 (make_gap, copy_text, insert, insert_and_inherit)
2455 (insert_before_markers, insert_before_markers_and_inherit)
2456 (insert_1, count_combining_before, count_combining_after)
2457 (insert_1_both, insert_from_string)
2458 (insert_from_string_before_markers, insert_from_string_1)
2459 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
2460 (adjust_after_replace, adjust_after_insert, replace_range)
2461 (replace_range_2, del_range, del_range_1, del_range_byte)
2462 (del_range_both, del_range_2, modify_region)
2463 (prepare_to_modify_buffer, signal_before_change)
2464 (signal_after_change, Fcombine_after_change_execute):
2465 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2466 * intervals.c (traverse_intervals, rotate_right, rotate_left)
2467 (balance_an_interval, split_interval_right, split_interval_left)
2468 (find_interval, next_interval, update_interval)
2469 (adjust_intervals_for_insertion, delete_node, delete_interval)
2470 (interval_deletion_adjustment, adjust_intervals_for_deletion)
2471 (static_offset_intervals, offset_intervals)
2472 (merge_interval_right, merge_interval_left, make_new_interval)
2473 (graft_intervals_into_buffer, temp_set_point_both)
2474 (temp_set_point, set_point, adjust_for_invis_intang)
2475 (set_point_both, move_if_not_intangible, get_property_and_range)
2476 (get_local_map, copy_intervals, copy_intervals_to_string)
2477 (compare_string_intervals, set_intervals_multibyte_1):
2478 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2479 * intervals.h: Adjust decls to match defn changes elsewhere.
2480 (struct interval):
2481 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2482 * keyboard.c (this_command_key_count, this_single_command_key_start)
2483 (before_command_key_count, before_command_echo_length, echo_now)
2484 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
2485 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
2486 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
2487 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
2488 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2489 (last_non_minibuf_size, last_point_position, echo_truncate)
2490 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
2491 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
2492 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
2493 (stuff_buffered_input):
2494 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2495 (last_auto_save, command_loop_1, read_char):
2496 Use EMACS_INT, not int, to avoid integer overflow.
2497 (record_char): Avoid overflow in total_keys computation.
2498 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
2499 * keyboard.h: Adjust decls to match defn changes elsewhere.
2500 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
2501 (Fkey_description, Fdescribe_vector, Flookup_key):
2502 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2503 (click_position): New function, to check that positions are in range.
2504 (Fcurrent_active_maps):
2505 (describe_command):
2506 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2507 (Faccessible_keymaps, Fkey_description):
2508 (preferred_sequence_p):
2509 Don't assume fixnum can fit into int.
2510 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
2511 Check for integer overflow in size calculations.
2512 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
2513 avoid mishandling large integers.
2514 * lisp.h: Adjust decls to match defn changes elsewhere.
2515 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
2516 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
2517 (struct Lisp_Marker):
2518 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2519 (clip_to_bounds): Now an inline function, moved here from editfns.c.
d311d28c
PE
2520 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
2521 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
2522 All callers changed.
2523 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
2524 Assume the arg has valid form, since it always does.
2525 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
2526 unsigned integer system type.
2527 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
2528 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
2529 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2530 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
2531 (duration_to_sec_usec): New decl.
2532 * lread.c (read_from_string_index, read_from_string_index_byte)
2533 (read_from_string_limit, readchar, unreadchar, openp)
2534 (read_internal_start, read1, oblookup):
2535 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2536 (Fload, readevalloop, Feval_buffer, Feval_region):
2537 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2538 (openp): Check for out-of-range argument to 'access'.
2539 (read1): Use int, not EMACS_INT, where int is wide enough.
2540 Don't assume fixnum fits into int.
6efdadfd 2541 Fix off-by-one error that can read outside a buffer.
1ab7b8ac
PE
2542 (read_filtered_event): Use duration_to_sec_usec
2543 to do proper overflow checking on durations.
d311d28c
PE
2544 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
2545 in size calculation.
2546 (Fexecute_kbd_macro):
2547 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2548 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
2549 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
2550 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
2551 (set_marker_both, set_marker_restricted_both, marker_position)
2552 (marker_byte_position, Fbuffer_has_markers_at):
2553 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2554 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
61b108cc 2555 * menu.c (ensure_menu_items): Rename from grow_menu_items.
d311d28c
PE
2556 It now merely ensures that the menu is large enough, without
2557 necessarily growing it, as this avoids some integer overflow issues.
2558 All callers changed.
2559 (keymap_panes, parse_single_submenu, Fx_popup_menu):
2560 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2561 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
2562 Use SAFE_ALLOCA_LISP, not alloca.
2563 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
2564 to EMACS_INT. Check that fixnums are in proper range for system types.
2565 * minibuf.c (minibuf_prompt_width, string_to_object)
2566 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
2567 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
2568 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2569 (get_minibuffer, read_minibuf_unwind):
2570 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2571 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
2572 this simplifies overflow checking. All callers changed.
2573 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
2574 (Ftest_completion):
2575 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2576 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
2577 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
2578 Check that fixnums are in proper range for system types.
2579 (Fx_create_frame, Fx_show_tip):
2580 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2581 * nsfont.m (ns_findfonts, nsfont_list_family):
2582 Don't assume fixnum fits in long.
2583 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
2584 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2585 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
2586 wide enough.
17fdb222 2587 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
d311d28c
PE
2588 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2589 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
2590 (PRINTDECLARE, PRINTPREPARE):
2591 (strout, print_string):
2592 (print, print_preprocess, print_check_string_charset_prop)
2593 (print_object):
2594 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2595 (PRINTDECLARE):
2596 (temp_output_buffer_setup, Fprin1_to_string, print_object):
2597 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2598 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
d311d28c 2599 (printchar, strout): Use xpalloc to catch size calculation overflow.
0fd11aa5 2600 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
d311d28c
PE
2601 (print_error_message): Use SAFE_ALLOCA, not alloca.
2602 (print_object): Use int, not EMACS_INT, where int is wide enough.
a8b7caa3
PE
2603 (print_depth, new_backquote_output, print_number_index):
2604 Use ptrdiff_t, not int, where int might not be wide enough.
d311d28c
PE
2605 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
2606 (Fset_process_window_size, Fformat_network_address)
2607 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
d44287d4 2608 (sigchld_handler):
d311d28c 2609 Check that fixnums are in proper range for system types.
d44287d4 2610 (Fsignal_process): Simplify by avoiding a goto.
d83cf4cc
PE
2611 Check for process-ids out of pid_t range rather than relying on
2612 undefined behavior.
e4d81efc 2613 (process_tick, update_tick): Use EMACS_INT, not int.
d311d28c
PE
2614 (Fformat_network_address, read_process_output, send_process)
2615 (Fprocess_send_region, status_notify):
2616 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2617 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
2618 (wait_reading_process_output, read_process_output, exec_sentinel):
2619 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2620 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
2621 (Faccept_process_output): Use duration_to_sec_usec to do proper
2622 overflow checking on durations.
dde14581
PE
2623 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
2624 Don't assume pid_t fits in int.
02481186
PE
2625 * process.h (struct Lisp_Process): Members tick and update_tick
2626 are now of type EMACS_INT, not int.
b62b53e8
PE
2627 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
2628 configured --with-wide-int.
d311d28c
PE
2629 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
2630 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
2631 * search.c (looking_at_1, string_match_1):
2632 (fast_string_match, fast_c_string_match_ignore_case)
2633 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
2634 (scan_newline, find_before_next_newline, search_command)
2635 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
2636 (set_search_regs, wordify):
2637 (Freplace_match):
2638 (Fmatch_data):
2639 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2640 (string_match_1, search_buffer, set_search_regs):
2641 (Fmatch_data):
2642 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2643 (wordify): Check for overflow in size calculation.
2644 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
2645 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
2646 Check that fixnums are in proper range for system types.
2647 * sound.c (struct sound_device)
2648 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
2649 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2650 (Fplay_sound_internal):
2651 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
eacd378d 2652 * syntax.c (struct lisp_parse_state, find_start_modiff)
d311d28c
PE
2653 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
2654 (Fparse_partial_sexp):
2655 Don't assume fixnums can fit in int.
2656 (struct lisp_parse_state, find_start_pos, find_start_value)
2657 (find_start_value_byte, find_start_begv)
2658 (update_syntax_table, char_quoted, dec_bytepos)
2659 (find_defun_start, prev_char_comend_first, back_comment):
2660 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
2661 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
2662 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2663 (Finternal_describe_syntax_value): Check that match_lisp is a
2664 character, not an integer, since the code stuffs it into int.
2665 (scan_words, scan_sexps_forward):
2666 Check that fixnums are in proper range for system types.
2667 (Fforward_word):
2668 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2669 (scan_sexps_forward):
2670 Use CHARACTERP, not INTEGERP, since the value must fit into int.
2671 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
2672 * syntax.h: Adjust decls to match defn changes elsewhere.
2673 (struct gl_state_s):
2674 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
e4ecdc9c
PE
2675 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
2676 MOST_POSITIVE_FIXNUM.
d311d28c
PE
2677 * sysdep.c (wait_for_termination_1, wait_for_termination)
2678 (interruptible_wait_for_termination, mkdir):
2679 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
2680 (emacs_read, emacs_write):
2681 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
225a2cff
PE
2682 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
2683 and double all fit in int.
d311d28c
PE
2684 * term.c (set_tty_color_mode):
2685 Check that fixnums are in proper range for system types.
2686 * termhooks.h (struct input_event):
2687 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2688 * textprop.c (validate_interval_range, interval_of)
2689 (Fadd_text_properties, set_text_properties_1)
2690 (Fremove_text_properties, Fremove_list_of_text_properties)
2691 (Ftext_property_any, Ftext_property_not_all)
2692 (copy_text_properties, text_property_list, extend_property_ranges)
2693 (verify_interval_modification):
2694 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2695 (Fnext_single_char_property_change)
2696 (Fprevious_single_char_property_change):
2697 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5895d7b9
PE
2698 (copy_text_properties):
2699 Check for integer overflow in index calculation.
d311d28c
PE
2700 * undo.c (last_boundary_position, record_point, record_insert)
2701 (record_delete, record_marker_adjustment, record_change)
2702 (record_property_change):
2703 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2704 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
2705 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2706 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
2707 (Fx_hide_tip, Fx_file_dialog):
2708 * w32menu.c (set_frame_menubar):
2709 Use ptrdiff_t, not int, for consistency with rest of code.
2710 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
2711 (select_window, Fdelete_other_windows_internal)
2712 (window_scroll_pixel_based, window_scroll_line_based)
2713 (Frecenter, Fset_window_configuration):
2714 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2715 (Fset_window_hscroll, run_window_configuration_change_hook)
2716 (set_window_buffer, temp_output_buffer_show, scroll_command)
5895d7b9 2717 (Fscroll_other_window, Frecenter):
d311d28c
PE
2718 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2719 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
2720 Don't assume fixnum fits in int.
2721 (Fset_window_scroll_bars):
2722 Check that fixnums are in proper range for system types.
2723 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
2724 (string_pos, c_string_pos, number_of_chars, init_iterator)
2725 (in_ellipses_for_invisible_text_p, init_from_display_pos)
2726 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
2727 (compute_display_string_end, handle_face_prop)
5895d7b9
PE
2728 (face_before_or_after_it_pos, handle_invisible_prop)
2729 (handle_display_prop, handle_display_spec, handle_single_display_spec)
d311d28c
PE
2730 (display_prop_intangible_p, string_buffer_position_lim)
2731 (string_buffer_position, handle_composition_prop, load_overlay_strings)
2732 (get_overlay_strings_1, get_overlay_strings)
2733 (iterate_out_of_display_property, forward_to_next_line_start)
2734 (back_to_previous_visible_line_start, reseat, reseat_to_string)
2735 (get_next_display_element, set_iterator_to_next)
2736 (get_visually_first_element, compute_stop_pos_backwards)
2737 (handle_stop_backwards, next_element_from_buffer)
2738 (move_it_in_display_line_to, move_it_in_display_line)
2739 (move_it_to, move_it_vertically_backward, move_it_by_lines)
2740 (add_to_log, message_dolog, message_log_check_duplicate)
2741 (message2, message2_nolog, message3, message3_nolog
2742 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
2743 (current_message_1, truncate_echo_area, truncate_message_1)
2744 (set_message, set_message_1, store_mode_line_noprop)
2745 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
2746 (text_outside_line_unchanged_p, check_point_in_composition)
2747 (reconsider_clip_changes)
2748 (redisplay_internal, set_cursor_from_row, try_scrolling)
2749 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
2750 (redisplay_window, find_last_unchanged_at_beg_row)
2751 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
2752 (trailing_whitespace_p, find_row_edges, display_line)
2753 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
2754 (display_mode_element, store_mode_line_string)
2755 (pint2str, pint2hrstr, decode_mode_spec)
2756 (display_count_lines, display_string, draw_glyphs)
2757 (x_produce_glyphs, x_insert_glyphs)
2758 (rows_from_pos_range, mouse_face_from_buffer_pos)
2759 (fast_find_string_pos, mouse_face_from_string_pos)
2760 (note_mode_line_or_margin_highlight, note_mouse_highlight):
2761 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2762 (safe_call, init_from_display_pos, handle_fontified_prop)
2763 (handle_single_display_spec, load_overlay_strings)
2764 (with_echo_area_buffer, setup_echo_area_for_printing)
2765 (display_echo_area, echo_area_display)
2766 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
2767 (update_tool_bar, hscroll_window_tree, redisplay_internal)
5895d7b9
PE
2768 (redisplay_window, dump_glyph_row, display_mode_line)
2769 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
43ad2e9a 2770 (handle_display_spec, display_prop_string_p):
d311d28c
PE
2771 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2772 (handle_single_display_spec, build_desired_tool_bar_string)
2773 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
2774 (get_specified_cursor_type):
2775 Check that fixnums are in proper range for system types.
2776 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
2777 (Flookup_image_map):
2778 Don't assume fixnums fit in int.
2779 (compare_overlay_entries):
2780 Avoid mishandling comparisons due to subtraction overflow.
2781 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
2782 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
2783 (handle_tool_bar_click):
2784 Use int, not unsigned, since we prefer signed and the signedness
2785 doesn't matter here.
2786 (get_next_display_element, next_element_from_display_vector):
2787 Use int, not EMACS_INT, when int is wide enough.
2788 (start_hourglass): Use duration_to_sec_usec to do proper
2789 overflow checking on durations.
2790 * xfaces.c (Fbitmap_spec_p):
2791 Check that fixnums are in proper range for system types.
2792 (compare_fonts_by_sort_order):
2793 Avoid mishandling comparisons due to subtraction overflow.
2794 (Fx_family_fonts, realize_basic_faces):
2795 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2796 (Fx_family_fonts):
2797 Don't assume fixnum fits in int.
2798 Use SAFE_ALLOCA_LISP, not alloca.
2799 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
2800 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
2801 (face_at_buffer_position, face_for_overlay_string)
2802 (face_at_string_position):
2803 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2804 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
2805 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
2806 (Fx_show_tip):
2807 Check that fixnums are in proper range for system types.
2808 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
2809 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
2810 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2811 (Fx_change_window_property): Don't assume fixnums fit in int.
2812 * xfont.c (xfont_chars_supported):
2813 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2814 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
2815 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
2816 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2817 * xml.c (parse_region):
2818 * xrdb.c (magic_file_p):
2819 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2820 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
2821 (x_get_local_selection, x_reply_selection_request)
2822 (x_handle_selection_request, wait_for_property_change):
2823 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2824 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
2825 short is wide enough.
2826 (x_send_client_event): Don't assume fixnum fits in int.
2827 * xterm.c (x_x_to_emacs_modifiers):
2828 Don't assume EMACS_INT overflows nicely into int.
2829 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
2830 may come from Lisp.
2831 (handle_one_xevent): NATNUMP can eval its arg twice.
2832 (x_connection_closed):
2833 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2834 * xterm.h: Adjust decls to match defn changes elsewhere.
2835 (struct scroll_bar): Use struct vectorlike_header
2836 rather than rolling our own approximation.
2837 (SCROLL_BAR_VEC_SIZE): Remove; not used.
2838
c6574eb5
GM
28392012-05-25 Glenn Morris <rgm@gnu.org>
2840
2841 * lisp.mk (lisp): Update for more files being compiled now.
2842
e8d32c7e
SM
28432012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
2844
48def666
SM
2845 * lread.c: Remove `read_pure' which makes no difference.
2846 (read_pure): Remove var.
2847 (unreadpure): Remove function.
2848 (readevalloop): Don't call read_list with -1 flag.
2849 (read1, read_vector): Don't test read_pure any more.
2850 (read_list): Simplify.
2851
e8d32c7e
SM
2852 * fileio.c, character.h: Minor style tweaks.
2853
4b2addb7
DA
28542012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
2855
2856 * window.h (clip_changed): Remove useless declaration.
2857
584461b2
JB
28582012-05-22 Juanma Barranquero <lekktu@gmail.com>
2859
2860 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
2861 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
2862
34374650
PE
28632012-05-22 Paul Eggert <eggert@cs.ucla.edu>
2864
2865 Remove src/m/*.
2866 This directory predates autoconf and is no longer needed nowadays.
2867 Move its few remaining bits of functionality to where they're needed.
2868 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
2869 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
2870 * m/template.h: Remove.
2871 * Makefile.in (M_FILE): Remove. All uses removed.
2872 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
2873 * lisp.h (USE_LSB_TAG):
2874 * mem-limits.h (EXCEEDS_LISP_PTR):
2875 Use VAL_MAX, not VALBITS, in #if.
2876 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
2877 (EMACS_UINT): Define unconditionally now.
2878 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
2879 (BITS_PER_EMACS_INT): New constants, replacing
2880 what used to be in config.h, but not useful in #if.
2881 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
2882 define them any more.
2883 (VAL_MAX): New macro.
2884 (VALMASK): Use it.
2885 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
2886 BITS_PER_EMACS_INT, in #if.
2887 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
2888 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
2889 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
2890 * s/ms-w32.h (DATA_START):
2891 Move here from removed file m/intel386.h.
2892 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
2893 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
2894
261cb4bb
PE
28952012-05-21 Paul Eggert <eggert@cs.ucla.edu>
2896
2897 Assume C89 or later.
2898 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
2899 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
2900 (xrealloc):
2901 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
2902 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
2903 * textprop.c, tparam.c (NULL): Remove.
2904 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
2905 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
2906 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
2907 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
2908 * xterm.c (input_signal_count): Assume volatile works.
2909
ff23cd9f
KB
29102012-05-21 Ken Brown <kbrown@cornell.edu>
2911
2912 * xgselect.c (xg_select): Fix first argument in call to 'select'
2913 (bug#11508).
2914
1b170bc6
KB
29152012-05-20 Ken Brown <kbrown@cornell.edu>
2916
2917 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
bd7239f5 2918 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
1b170bc6 2919
b2f4d39f
KB
29202012-05-19 Ken Brown <kbrown@cornell.edu>
2921
2922 * xfns.c (x_in_use): Remove `static' qualifier.
2923 * xterm.h (x_in_use): Declare.
2924 * xgselect.c: Include xterm.h.
2925 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
2926 and `display_arg' (bug#9754).
2927
003fdae2
PE
29282012-05-19 Paul Eggert <eggert@cs.ucla.edu>
2929
9232a6d9
PE
2930 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
2931
003fdae2
PE
2932 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
2933 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
2934
784b56e2
EZ
29352012-05-18 Eli Zaretskii <eliz@gnu.org>
2936
2937 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
2938
2939 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
090bd7cb 2940 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c.
784b56e2
EZ
2941
2942 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
2943 reference to image_cache->refcount.
2944 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
2945
a0a79cde
JL
29462012-05-17 Juri Linkov <juri@jurta.org>
2947
2948 * search.c (Fword_search_regexp, Fword_search_backward)
2949 (Fword_search_forward, Fword_search_backward_lax)
2950 (Fword_search_forward_lax): Move functions to isearch.el
2951 (bug#10145, bug#11381).
2952
b0572523
PE
29532012-05-16 Paul Eggert <eggert@cs.ucla.edu>
2954
2955 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
2956
9660f5fc
SM
29572012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
2958
2959 * lread.c (init_obarray): Declare Qt and Qnil as special.
2960
4374de83
GM
29612012-05-14 Glenn Morris <rgm@gnu.org>
2962
2963 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
985584ae 2964 Put "libexec" before "bin", for the sake of init_callproc_1.
4374de83 2965
dc44c39a
PE
29662012-05-14 Paul Eggert <eggert@cs.ucla.edu>
2967
078c97cb
PE
2968 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
2969
dc44c39a
PE
2970 * unexaix.c: Port to more-recent AIX compilers.
2971 (report_error, report_error_1, make_hdr, copy_sym)
2972 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
2973 Make arguments const char *, not char *, to avoid violations of C
2974 standard and to fix some AIX warnings reported by Gilles Pion.
2975
e18afed7 29762012-05-14 Eli Zaretskii <eliz@gnu.org>
ac268e67
EZ
2977
2978 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
2979 already have overlays loaded.
2980 (handle_single_display_spec): Before returning without displaying
2981 fringe bitmap, synchronize the bidi iterator with the main display
2982 iterator, by calling iterate_out_of_display_property.
2983 (iterate_out_of_display_property): Detect buffer iteration by
2984 testing that it->string is a Lisp string.
2985 (get_next_display_element): When the current object is exhausted,
2986 and there's something on it->stack, call set_iterator_to_next to
2987 proceed with what's on the stack, instead of returning zero.
2988 (set_iterator_to_next): If called at the end of a Lisp string,
2989 proceed to consider_string_end without incrementing string
2990 position. Don't increment display vector index past the end of
2991 the display vector. (Bug#11417)
c8fb9dc6
EZ
2992 (pos_visible_p): Don't report a position visible when move_it_to
2993 stopped at the last line of window, which happens to be scanned
2994 backwards by the bidi iteration. (Bug#11464)
ac268e67 2995
e18afed7 29962012-05-14 Eli Zaretskii <eliz@gnu.org>
82f9b393
EZ
2997
2998 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
2999 and right-margin display specs even if the spec is invalid or we
61b108cc
SM
3000 are on a TTY, and thus unable to display on the fringes.
3001 That's because the text with the property will not be displayed anyway,
82f9b393
EZ
3002 so we need to signal to the caller that this is a "replacing"
3003 display spec. This fixes display when the spec is invalid or we
3004 are on a TTY.
3005
e18afed7 30062012-05-14 Paul Eggert <eggert@cs.ucla.edu>
297834cd
PE
3007
3008 * unexaix.c (make_hdr): Fix typo in prototype.
3009 This bug broke the build on AIX. Problem reported by Gilles Pion.
3010
9d0a235a
MA
30112012-05-14 Michael Albinus <michael.albinus@gmx.de>
3012
3013 * keyboard.c (kbd_buffer_get_event): Read special events also in
3014 batch mode. (Bug#11415)
3015
9e6b06ed
GM
30162012-05-12 Glenn Morris <rgm@gnu.org>
3017
3018 * ns.mk: Update for ns_appbindir no longer having trailing "/".
3019
c1a1d7a3
EZ
30202012-05-12 Eli Zaretskii <eliz@gnu.org>
3021
3022 * lisp.mk (lisp): Add newcomment.elc.
3023
3fe7cdc8
GM
30242012-05-12 Glenn Morris <rgm@gnu.org>
3025
3026 * Makefile.in (MKDIR_P): New, set by configure.
3027 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
3028
53f7d2c0
PE
30292012-05-11 Paul Eggert <eggert@cs.ucla.edu>
3030
3031 Remove unused function hourglass_started.
3032 * dispextern.h (hourglass_started):
3033 * w32fns.c (hourglass_started):
3034 * xdisp.c (hourglass_started): Remove.
3035
75aafb17
JB
30362012-05-10 Juanma Barranquero <lekktu@gmail.com>
3037
3038 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
3039 Update dependencies.
3040
12959e8e
PE
30412012-05-10 Paul Eggert <eggert@cs.ucla.edu>
3042
97107e2e
PE
3043 * xgselect.c (xg_select): Put maxfds+1 into a var.
3044 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
3045
12959e8e
PE
3046 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
3047
836d29b3
DA
30482012-05-10 Dave Abrahams <dave@boostpro.com>
3049
3050 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
3051 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
3052
5cb67954
MA
30532012-05-09 Michael Albinus <michael.albinus@gmx.de>
3054
3055 * dbusbind.c (xd_registered_buses): New internal Lisp object.
3056 Rename all occurences of Vdbus_registered_buses to xd_registered_buses.
3057 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
3058 Initialize xd_registered_buses.
3059
3478ec45
PE
30602012-05-09 Paul Eggert <eggert@cs.ucla.edu>
3061
b263a6b0
PE
3062 Untag more efficiently if USE_LSB_TAG.
3063 This is based on a proposal by YAMAMOTO Mitsuharu in
3064 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
3065 For an admittedly artificial (nth 8000 longlist) benchmark on
3066 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
3067 Emacs's overall text size by 1%.
3068 * lisp.h (XUNTAG): New macro.
3069 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
3070 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
3071 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
3072 * eval.c (Fautoload):
3073 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
3074 * frame.h (XFRAME): Use XUNTAG.
3075
3478ec45
PE
3076 Port recent dbusbind.c changes to 32-bit --with-wide-int.
3077 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
3078 Remove unportable assumptions about print widths of types like
3079 dbus_uint32_t.
3080 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
3081 intptr_t when converting between pointer and integer, to avoid GCC
3082 warnings about wrong width.
3083
666b903b 30842012-05-09 Eli Zaretskii <eliz@gnu.org>
0d887c7d
EZ
3085
3086 * w32proc.c (new_child): Force Windows to reserve only 64KB of
3087 stack for each reader_thread, instead of defaulting to 8MB
3088 determined by the linker. This avoids failures in creating
3089 subprocesses on Windows 7, see the discussion in this thread:
3090 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
3091
b120cc17
JC
30922012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
3093
3094 Fix up display of the *Minibuf-0* buffer in the mini window.
3095 * keyboard.c (read_char): Don't clear the echo area if there's no
3096 message to clear.
3097 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
2fed2689 3098 contents of *Minibuf-0*) if there's no message displayed in its stead.
b120cc17 3099
9a4b36f8
MA
31002012-05-07 Michael Albinus <michael.albinus@gmx.de>
3101
3102 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
3103 batch mode.
3104
e5f9458f
CY
31052012-05-06 Chong Yidong <cyd@gnu.org>
3106
3107 * lisp.mk (lisp): Update.
3108
eceeb5fc 31092012-05-05 Jim Meyering <meyering@redhat.com>
bf98199c
JM
3110
3111 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
3112
71873e2b
SM
31132012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
3114
3115 * data.c (PUT_ERROR): New macro.
3116 (syms_of_data): Use it. Add new error type `user-error'.
3117 * undo.c (user_error): New function.
3118 (Fprimitive_undo): Use it.
3119 * print.c (print_error_message): Adjust print style for `user-error'.
3120 * keyboard.c (user_error): New function.
3121 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
3122
ab0fa4e4
PE
31232012-05-03 Paul Eggert <eggert@cs.ucla.edu>
3124
3125 Do not limit current-time-string to years 1000..9999.
3126 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
3127 (Fcurrent_time_string): Support any year that is supported by the
3128 underlying localtime representation. Don't use asctime, as it
3129 has undefined behavior for years outside the range -999..9999.
3130
7ed806a7
PE
31312012-05-02 Paul Eggert <eggert@cs.ucla.edu>
3132
3133 Fix race conditions involving setenv, gmtime, localtime, asctime.
3134 Without this fix, interrupts could mess up code that uses these
3135 nonreentrant functions, since setting TZ invalidates existing
3136 tm_zone or tzname values, and since most of these functions return
3137 pointers to static storage.
3138 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
3139 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
3140 Grow the critical sections to include not just invoking
3141 localtime/gmtime, but also accessing these functions' results
3142 including their tm_zone values if any, and any related TZ setting.
3143 (format_time_string): Last arg is now struct tm *, not struct tm **,
71873e2b
SM
3144 so that the struct tm is saved in the critical section.
3145 All callers changed. Simplify allocation of initial buffer, partly
7ed806a7
PE
3146 motivated by the fact that memory allocation needs to be outside
3147 the critical section.
3148
0c16dfed
DA
31492012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
3150
3151 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
3152 with RESET_INTERVAL.
3153
3154 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
3155 Remove duplicated buffer name initialization.
3156
3f83ace8
JM
31572012-05-02 Jim Meyering <jim@meyering.net>
3158
3159 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
3160
c7b8541e
JM
3161 * xfns.c (x_window): Use xstrdup (Bug#11375).
3162
90207a15 31632012-05-02 Eli Zaretskii <eliz@gnu.org>
2fa85638
EZ
3164
3165 * xdisp.c (pos_visible_p): If already at a newline from the
3166 display string before the 'while' loop, don't walk back the glyphs
3167 from it3.glyph_row. Solves assertion violation when the display
3168 string begins with a newline (egg.el). (Bug#11367)
3169
b593d6a9
AH
31702012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
3171
3172 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
3173 Move to simple.el.
3174
4737362e
GM
31752012-05-01 Glenn Morris <rgm@gnu.org>
3176
99cf43f9
GM
3177 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
3178 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
3179 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
3180 All were removed before 23.1.
3181
9311dcff
GM
3182 * dispnew.c: Remove HAVE_LIBNCURSES test;
3183 it is always true on relevant platforms.
3184
4d5c6349
GM
3185 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
3186 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
3187
4737362e
GM
3188 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
3189
74dd3a6b
AS
31902012-04-30 Andreas Schwab <schwab@linux-m68k.org>
3191
3192 * .gdbinit (xpr): Remove checks for no longer existing misc types.
3193 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
3194 Remove.
3195
13c379ee
PE
31962012-04-28 Paul Eggert <eggert@cs.ucla.edu>
3197
3198 Do not avoid creating empty evaporating overlays (Bug#9642).
3199 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
3200 That is, do not delete an evaporating overlay if it becomes
3201 empty after its bounds are adjusted to fit within its buffer.
3202 This fix caused other problems, and I'm reverting it until we get
3203 to the bottom of them.
3204
a8e7d6d7 32052012-04-27 Chong Yidong <cyd@gnu.org>
9be2fd9b
CY
3206
3207 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
3208
a8e7d6d7 32092012-04-27 Eli Zaretskii <eliz@gnu.org>
f0ee99a0
EZ
3210
3211 * xdisp.c (pos_visible_p): If the window start position is beyond
3212 ZV, start the display from buffer beginning. Prevents assertion
3213 violation in init_iterator when the minibuffer window is scrolled
3214 via the scroll bar.
3215
3216 * window.c (window_scroll_pixel_based): Likewise.
3217
a8e7d6d7 32182012-04-27 Chong Yidong <cyd@gnu.org>
9ec7751f
CY
3219
3220 * keymap.c (where_is_internal): Doc fix (Bug#10872).
3221
a8e7d6d7 32222012-04-27 Glenn Morris <rgm@gnu.org>
24c51a09
GM
3223
3224 * fileio.c (Fcopy_file, Fset_file_selinux_context):
3225 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
3226
a8e7d6d7 32272012-04-27 Eli Zaretskii <eliz@gnu.org>
73055685 3228
b593d6a9
AH
3229 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
3230 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
73055685 3231
1c6900d9
EZ
32322012-04-26 Eli Zaretskii <eliz@gnu.org>
3233
4c3fa1d9
EZ
3234 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
3235 display element, check also the underlying string or buffer
3236 character. (Bug#11341)
3237
1c6900d9
EZ
3238 * w32menu.c: Include w32heap.h.
3239 (add_menu_item): If the call to AppendMenuW (via
3240 unicode_append_menu) fails, disable Unicode menus only if we are
3241 running on Windows 9X/Me.
3242
42bf8205
AS
32432012-04-24 Andreas Schwab <schwab@linux-m68k.org>
3244
3245 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
3246 (xgetint): Add missing shift for LSB tags.
3247
b1bac16e
MR
32482012-04-24 Martin Rudalics <rudalics@gmx.at>
3249
3250 * keyboard.c (read_char): Don't wipe echo area for select window
3251 events: These might get delayed via `mouse-autoselect-window'
3252 (Bug#11304).
3253
d69621cc
JB
32542012-04-24 Juanma Barranquero <lekktu@gmail.com>
3255
3256 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
3257 manipulation of :loaded-from data.
3258
02fd101b
JB
32592012-04-23 Juanma Barranquero <lekktu@gmail.com>
3260
3261 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
3262 now a cons (bug#11311).
3263
888bec30
PE
32642012-04-23 Paul Eggert <eggert@cs.ucla.edu>
3265
89a438bd
PE
3266 Do not create empty overlays with the evaporate property (Bug#9642).
3267 * buffer.c (Fmove_overlay): Delete an evaporating overlay
3268 if it becomes empty after its bounds are adjusted to fit within
3269 its buffer. Without this fix, in a nonempty buffer (let ((o
3270 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
3271 yields an empty overlay that has the evaporate property, which is
3272 not supposed to happen.
3273
1068fe4d
PE
3274 Fix minor GTK3 problems found by static checking.
3275 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
3276 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
3277 (struct _EmacsFixedClass, emacs_fixed_get_type):
3278 Move decls here from emacsgtkfixed.h, since they needn't be public.
3279 (emacs_fixed_get_type): Now static.
3280 (emacs_fixed_class_init): Omit unused local.
3281 (emacs_fixed_child_type): Remove; unused.
3282 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
3283 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
3284 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
3285 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
3286 (EMACS_FIXED_GET_CLASS): Remove; unused.
3287 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
3288
888bec30
PE
3289 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
3290 Problem reported by Juanma Barranquero for Windows -Wunused-function.
3291
de85e130
PE
32922012-04-22 Paul Eggert <eggert@cs.ucla.edu>
3293
d0baac98 3294 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
bd7239f5 3295 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
d0baac98
PE
3296 (__malloc_size_t, __malloc_ptrdiff_t):
3297 Remove. All uses removed, replaced by the definiens if needed,
3298 since we can assume C89 or better now.
3299 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
3300 (protect_malloc_state, align, get_contiguous_space)
3301 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
3302 (malloc_atfork_handler_child, malloc_enable_thread)
3303 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
3304 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
3305 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
3306 (special_realloc, _realloc_internal_nolock, _realloc_internal)
3307 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
3308 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
3309 Define using prototypes, not old style.
3310 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
3311 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
3312 (align): Don't assume that signed integer overflow wraps around.
3313 Omit unused local var.
3314 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
3315 (_free_internal_nolock, memalign, mallochook, reallochook):
3316 Omit no-longer-needed casts.
3317 (valloc): Use getpagesize, not __getpagesize.
3318 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
3319 (struct hdr): The 'magic' member is now size_t, not unsigned long.
3320
de85e130
PE
3321 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
3322
dcbf5805
MA
33232012-04-22 Michael Albinus <michael.albinus@gmx.de>
3324
3325 Move functions from C to Lisp. Make non-blocking method calls
3326 the default. Implement further D-Bus standard interfaces.
3327
3328 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
3329 (QCdbus_request_name_allow_replacement)
3330 (QCdbus_request_name_replace_existing)
3331 (QCdbus_request_name_do_not_queue)
3332 (QCdbus_request_name_reply_primary_owner)
3333 (QCdbus_request_name_reply_in_queue)
3334 (QCdbus_request_name_reply_exists)
3335 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
3336 (QCdbus_registered_serial, QCdbus_registered_method)
3337 (QCdbus_registered_signal): New Lisp objects.
3338 (XD_DEBUG_MESSAGE): Use sizeof.
3339 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
3340 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
3341 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
3342 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
3343 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
3344 (xd_signature, xd_append_arg): Allow float for integer types.
3345 (xd_get_connection_references): New function.
b593d6a9
AH
3346 (xd_get_connection_address): Rename from xd_initialize.
3347 Return cached address.
dcbf5805
MA
3348 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
3349 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
3350 level.
3351 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
9a4b36f8 3352 Return number of refcounts.
dcbf5805
MA
3353 (Fdbus_get_unique_name): Make stronger parameter check.
3354 (Fdbus_message_internal): New defun.
3355 (Fdbus_call_method, Fdbus_call_method_asynchronously)
3356 (Fdbus_method_return_internal, Fdbus_method_error_internal)
3357 (Fdbus_send_signal, Fdbus_register_service)
3358 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
3359 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
3360 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
3361 (Vdbus_compiled_version, Vdbus_runtime_version)
3362 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
3363 (Vdbus_message_type_method_return, Vdbus_message_type_error)
3364 (Vdbus_message_type_signal): New defvars.
b593d6a9
AH
3365 (Vdbus_registered_buses, Vdbus_registered_objects_table):
3366 Adapt docstring.
dcbf5805 3367
52828e02
PE
33682012-04-22 Paul Eggert <eggert@cs.ucla.edu>
3369
da05bc4c
PE
3370 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
3371 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
3372 Do not assume ptrdiff_t is the same width as 'int'.
3373
52828e02
PE
3374 * alloc.c: Handle unusual debugging option combinations.
3375 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
3376 since the two debugging options are incompatible.
3377 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
3378 is defined.
3379 (mem_init, mem_insert, mem_insert_fixup):
3380 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
3381 (NEED_MEM_INSERT): Remove; no longer needed.
3382
f01769f9
LL
33832012-04-22 Leo Liu <sdl.web@gmail.com>
3384
3385 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
3386
5790543d
PE
33872012-04-22 Paul Eggert <eggert@cs.ucla.edu>
3388
3389 * sysdep.c [__FreeBSD__]: Minor cleanups.
3390 (list_system_processes, system_process_attributes) [__FreeBSD__]:
3391 Use Emacs indenting style more consistently. Avoid some casts.
3392 Use 'double' consistently rather than mixing 'float' and 'double'.
3393
b91b7e4d
EW
33942012-04-21 Eduard Wiebe <usenet@pusto.de>
3395
b593d6a9
AH
3396 * sysdep.c (list_system_processes, system_process_attributes):
3397 Add implementation for FreeBSD (Bug#5243).
b91b7e4d 3398
6114eb15
AS
33992012-04-21 Andreas Schwab <schwab@linux-m68k.org>
3400
3401 * lisp.mk (lisp): Update.
3402
2f38dff7
PE
34032012-04-20 Paul Eggert <eggert@cs.ucla.edu>
3404
3405 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
3406 It is never used otherwise.
3407
4ae29f89
SM
34082012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
3409
3410 * print.c (print_preprocess): Only check print_depth if print-circle
3411 is nil.
3412 (print_object): Check for cycles even when print-circle is nil and
3413 print-gensym is t, but only check print_depth if print-circle is nil.
3414
f30d612a
CY
34152012-04-20 Chong Yidong <cyd@gnu.org>
3416
3417 * process.c (wait_reading_process_output): If EIO occurs on a pty,
3418 set the status to "failed" and ensure that sentinel is run.
3419
c07a4c0b 34202012-04-20 Glenn Morris <rgm@gnu.org>
016a35df
GM
3421
3422 * process.c (Fset_process_inherit_coding_system_flag)
3423 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
4373fd43 3424 (Fmake_network_process, Fmake_serial_process): Doc fix.
016a35df 3425
c07a4c0b 34262012-04-20 Eli Zaretskii <eliz@gnu.org>
20a68157
EZ
3427
3428 * xdisp.c (string_buffer_position_lim): Limit starting position to
3429 BEGV.
3430 (set_cursor_from_row): If called for a mode-line or header-line
3431 row, return zero immediately.
3432 (try_cursor_movement): If inside continuation line, don't back up
4ae29f89
SM
3433 farther than the first row after the header line, if any.
3434 Don't consider the header-line row as "partially visible", even if
20a68157
EZ
3435 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
3436
c07a4c0b 34372012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 3438
4ae29f89
SM
3439 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
3440 (bug#11238).
ad3a2b41 3441
c07a4c0b 34422012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
6c94c34f 34432012-04-18 Paul Eggert <eggert@cs.ucla.edu>
ae6e112d
PE
3444
3445 configure: new option --enable-gcc-warnings (Bug#11207)
3446 * Makefile.in (C_WARNINGS_SWITCH): Remove.
3447 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
3448 (ALL_CFLAGS): Use new macros rather than old.
3449 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
3450 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
3451 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
3452 -Wunused-result, -Wunused-variable. This should go away once
3453 the Emacs and Gnulib regex code is merged.
3454 (xmalloc, xrealloc): Now static.
3455
aba027e8
PE
34562012-04-17 Paul Eggert <eggert@cs.ucla.edu>
3457
3458 * dired.c (Fsystem_groups): Remove unused local.
3459
e5a36063
GM
34602012-04-17 Glenn Morris <rgm@gnu.org>
3461
3462 * dired.c (Fsystem_users): Doc fix.
3463
316411f0
DA
34642012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
3465
3466 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
3467 (syms_of_dired): Add them.
3468
9426aba4
PE
34692012-04-16 Paul Eggert <eggert@cs.ucla.edu>
3470
b62a57be
PE
3471 Fix minor alloc.c problems found by static checking.
3472 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
3473 New extern decls, to avoid calling undeclared functions.
3474 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
3475 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
3476 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
3477 (NEED_MEM_INSERT): New macro.
3478 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
4b5afbb0 3479 Remove one incorrect comment and fix another.
b62a57be 3480
3539f31f
PE
3481 Fix minor ralloc.c problems found by static checking.
3482 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
3483 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
3484 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
3485 (r_alloc_sbrk): Now static.
3486
a041960a
PE
3487 Improve ralloc.c interface checking.
3488 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
3489 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
3490 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
3491 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
3492 [REL_ALLOC]: ... to here, to check interface.
3493 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
3494 Remove decls. This fixes an "It stinks!".
3495
9426aba4
PE
3496 * alloc.c (which_symbols): Fix alignment issue / type clash.
3497
d55c12ed
AS
34982012-04-15 Andreas Schwab <schwab@linux-m68k.org>
3499
3500 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
3501 (struct Lisp_Misc_Any): Likewise.
3502 (struct Lisp_Free): Likewise.
3503 * alloc.c (union aligned_Lisp_Symbol): Define.
3504 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
3505 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
3506 (union aligned_Lisp_Misc): Define.
3507 (MARKER_BLOCK_SIZE, struct marker_block): Use union
3508 aligned_Lisp_Misc instead of union Lisp_Misc.
4ae29f89 3509 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
d55c12ed 3510
b948ce8b
PE
35112012-04-14 Paul Eggert <eggert@cs.ucla.edu>
3512
3513 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
3514 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
3515 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
3516 * s/netbsd.h, s/sol2-6.h:
3517 Remove definition of GC_MARK_STACK, since the default now works.
3518 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
3519 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
3520 no longer the default.
3521 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
3522
35dc09a1 35232012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 3524
35dc09a1
GM
3525 * lread.c (lisp_file_lexically_bound_p):
3526 Fix hang at ";-*-\n" (bug#11238).
ad3a2b41 3527
35dc09a1
GM
35282012-04-14 Eli Zaretskii <eliz@gnu.org>
3529
3530 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
3531 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
3532
35332012-04-14 Jan Djärv <jan.h.d@swipnet.se>
3534
3535 * nsterm.m (constrainFrameRect): Always constrain when there is only
3536 one screen (Bug#10962).
3537
bcd86815
KB
35382012-04-13 Ken Brown <kbrown@cornell.edu>
3539
3540 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
3541
c25df26e
RT
35422012-04-13 Reuben Thomas <rrt@sc3d.org>
3543
3544 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
3545
0fc59f1e
DC
35462012-04-11 Daniel Colascione <dancol@dancol.org>
3547
3548 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
3549 against is gone. It's better to use vfork now so that when Cygwin
3550 gains a new, working vfork, we use it automatically (bug#10398).
3551
de8c03dc
SM
35522012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
3553
3554 * window.c (save_window_save): Obey window-point-insertion-type.
3555
2f097256
GM
35562012-04-11 Glenn Morris <rgm@gnu.org>
3557
3558 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
3559
453b951e
SM
35602012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
3561
3562 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
3563
75f1671a 35642012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
6bbef4e5
JC
3565
3566 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
3567 (force_quit_count): New var.
3568 (handle_interrupt): Use it.
3569
2a8ce227
JB
35702012-04-10 Juanma Barranquero <lekktu@gmail.com>
3571
3572 * w32.c (w32_delayed_load): Record the full path of the library
3573 being loaded (bug#10424).
3574
935396c0
GM
35752012-04-09 Glenn Morris <rgm@gnu.org>
3576
05920a43
GM
3577 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
3578 not just in the obarray, before snarfing them. (Bug#11036)
3579
935396c0
GM
3580 * Makefile.in ($(leimdir)/leim-list.el):
3581 Pass EMACS rather than BUILT_EMACS.
3582
a18ecafa
TZ
35832012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
3584
3585 * process.c (make_process):
3586 * process.h: Add integer `gnutls_handshakes_tried' member to
3587 process struct.
3588
6bbef4e5
JC
3589 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
3590 Add convenience `GNUTLS_LOG2i' macro.
a18ecafa
TZ
3591
3592 * gnutls.c (gnutls_log_function2i): Convenience log function.
3593 (emacs_gnutls_read): Use new log functions,
3594 `gnutls_handshakes_tried' process member, and
3595 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
3596 attempts per process (connection).
3597
b4d3bc10
CY
35982012-04-09 Chong Yidong <cyd@gnu.org>
3599
3600 * eval.c (Fuser_variable_p, user_variable_p_eh)
3601 (lisp_indirect_variable): Functions deleted.
3602 (Fdefvar): Caller changed.
3603
3604 * callint.c (Finteractive, Fcall_interactively):
3605 * minibuf.c (Fread_variable): Callers changed.
3606
70f4d973
EZ
36072012-04-09 Eli Zaretskii <eliz@gnu.org>
3608
3609 * xdisp.c (set_cursor_from_row): If the display string appears in
3610 the buffer at position that is closer to point than the position
3611 after the display string, display the cursor on the first glyph of
3612 the display string. Fixes cursor display when a 'display' text
3613 property immediately follows invisible text. (Bug#11094)
3614
cb3c2e3e
PE
36152012-04-09 Paul Eggert <eggert@cs.ucla.edu>
3616
3617 composite.c: use 'double' consistently
3618 * composite.c (get_composition_id): Use 'double' consistently
3619 instead of converting 'float' to 'double' and vice versa; this is
3620 easier to understand and avoids a GCC warning.
3621
fd06db5d
GM
36222012-04-09 Glenn Morris <rgm@gnu.org>
3623
50fe702a
GM
3624 * Makefile.in: Generate leim-list with bootstrap-emacs, in
3625 preparation for dumping it with emacs. (Bug#4789)
3626 (leimdir): New variable.
3627 ($(leimdir)/leim-list.el): New rule.
3628 (emacs$(EXEEXT)): Depend on leim-list.el.
3629
fd06db5d
GM
3630 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
3631 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
3632 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
3633
55c131ee
AS
36342012-04-08 Andreas Schwab <schwab@linux-m68k.org>
3635
3636 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
3637 proper alignment.
3638
9209588f
JB
36392012-04-07 Juanma Barranquero <lekktu@gmail.com>
3640
3641 * xml.c (init_libxml2_functions) [WINDOWSNT]:
3642 Remove unused local variable.
3643
e3fb2efb
PE
36442012-04-07 Paul Eggert <eggert@cs.ucla.edu>
3645
3646 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
3647 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
3648 (mark_memory): Mark Lisp_Objects only if pointers might hide in
3649 objects, as mark_maybe_pointer will catch them otherwise.
3650 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
3651 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
3652
b5385551
PE
36532012-04-07 Paul Eggert <eggert@cs.ucla.edu>
3654
3655 Fix typo that broke non-Windows builds.
3656 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
3657
9078ead6
EZ
36582012-04-07 Eli Zaretskii <eliz@gnu.org>
3659
3660 Support building on MS-Windows with libxml2.
3661
3662 * makefile.w32-in (OBJ2): Add xml.$(O).
3663 (GLOBAL_SOURCES): Add xml.c.
3664 ($(BLD)/xml.$(O)): New dependency list.
3665
3666 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
3667 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
3668 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
3669 [!WINDOWSNT]: New macros.
3670 (init_libxml2_functions, libxml2_loaded_p): New functions.
3671 (parse_region): Call fn_xmlCheckVersion instead of using the macro
3672 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
3673 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
3674 Calls xmlCleanupParser only if libxml2 was loaded (or statically
3675 linked in).
6bbef4e5
JC
3676 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
3677 Call init_libxml2_functions before calling libxml2 functions.
9078ead6
EZ
3678 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
3679
3680 * emacs.c: Don't include libxml/parser.h.
3681 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
3682 xmlCleanupParser directly.
3683
3684 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
3685
3811fdf3
EZ
36862012-04-07 Eli Zaretskii <eliz@gnu.org>
3687
3688 * indent.c (Fvertical_motion): If there is a display string at
3689 point, use it.vpos to compute how many lines to backtrack after
3690 move_it_to point. (Bug#11133)
3691
2f8e16b2
EZ
36922012-04-06 Eli Zaretskii <eliz@gnu.org>
3693
3694 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
3695 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
3696 about subtle differences between FETCH_CHAR* and STRING_CHAR*
3697 macros related to unification of CJK characters. For the details,
3698 see the discussion following the message here:
3699 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
3700
3d439cd1
CY
37012012-04-04 Chong Yidong <cyd@gnu.org>
3702
3703 * keyboard.c (Vdelayed_warnings_list): Doc fix.
3704
8bc53d00
EZ
37052012-04-01 Eli Zaretskii <eliz@gnu.org>
3706
3707 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
3708 instead of alloca. (Bug#11138)
3709
3b0512a3
AS
37102012-04-01 Andreas Schwab <schwab@linux-m68k.org>
3711
3712 * w32menu.c (is_simple_dialog): Properly check lisp types.
3713 (Bug#11141)
3714
8427ddd2
EZ
37152012-03-31 Eli Zaretskii <eliz@gnu.org>
3716
979022ef
EZ
3717 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
3718 position we get to after a call to move_it_to fails the
3719 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
3720 only if we wind up in a string from display property. (Bug#11063)
3721
a6b1c7cc
EZ
3722 * window.c (Fdelete_other_windows_internal): Invalidate the row
3723 and column information about mouse highlight, so that redisplay
3724 restores it after reallocating the glyph matrices. (Bug#7464)
3725
8427ddd2
EZ
3726 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
3727 string comes from a `display' text property, use the buffer
3728 position of that property as if we actually saw that position in
3729 the row's glyphs.
697ba24b
EZ
3730 (move_it_by_lines): Remove the assertion that
3731 "it->current_x == 0 && it->hpos == 0" which can be legitimately
3732 violated when there's a before-string at the beginning of a line.
3733 (Bug#11063)
8427ddd2 3734
65a0a738
EZ
37352012-03-30 Eli Zaretskii <eliz@gnu.org>
3736
3737 * xdisp.c (append_space_for_newline): If the default face was
3738 remapped, use the remapped face for the appended newline.
3739 (extend_face_to_end_of_line): Use the remapped default face for
3740 extending the face to the end of the line.
3741 (display_line): Call extend_face_to_end_of_line when the default
3742 face was remapped. (Bug#11068)
3743
581355cc
EZ
37442012-03-29 Eli Zaretskii <eliz@gnu.org>
3745
3746 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
3747
e8fc049f
SM
37482012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
3749
3750 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
3751
4fb9a543
GM
37522012-03-27 Glenn Morris <rgm@gnu.org>
3753
3754 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
3755 Doc fixes.
3756
679910f1
KH
37572012-03-26 Kenichi Handa <handa@m17n.org>
3758
3759 * dispextern.h (struct glyph): Fix previous change. Change the
3760 bit length of glyphless.ch to 25 (Bug#11082).
3761
90d49b7f
CY
37622012-03-26 Chong Yidong <cyd@gnu.org>
3763
3764 * keyboard.c (Vselection_inhibit_update_commands): New variable.
3765 (command_loop_1): Use it; inhibit selection update for
3766 handle-select-window too (Bug#8996).
3767
f514f6f0
FP
37682012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
3769
e8fc049f 3770 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
f514f6f0 3771
bf43fa51
KH
37722012-03-25 Kenichi Handa <handa@m17n.org>
3773
3774 * dispextern.h (struct glyph): Change the bit length of
3775 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
3776
8a0c01dd
EZ
37772012-03-24 Eli Zaretskii <eliz@gnu.org>
3778
3779 * s/ms-w32.h (tzname): Include time.h before redirecting to
3780 _tzname. Fixes the MSVC build. (Bug#9960)
3781
7d1c3a76
AS
37822012-03-24 Andreas Schwab <schwab@linux-m68k.org>
3783
8ed79523
AS
3784 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
3785 characters.
3786
7d1c3a76
AS
3787 * xterm.c (XTread_socket): Only modify handling_signal if
3788 !SYNC_INPUT. (Bug#11080)
3789
e99a9b8b
EZ
37902012-03-23 Eli Zaretskii <eliz@gnu.org>
3791
3792 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
3793 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
3794 when fetching a multibyte character consumes more bytes than
3795 CHAR_BYTES returns, due to unification of CJK characters in
3796 string_char. (Bug#11073)
3797
5063c0e1
TN
37982012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
3799
3800 * process.c (wait_reading_process_output): Handle pty disconnect
3801 by refraining from sending oneself a SIGCHLD (bug#10933).
3802
9f851fbd
CY
38032012-03-22 Chong Yidong <cyd@gnu.org>
3804
3805 * dispextern.h (struct it): New member string_from_prefix_prop_p.
3806
5063c0e1 3807 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
9f851fbd
CY
3808 Mark string as coming from a prefix property.
3809 (handle_face_prop): Use default face for prefix strings (Bug#4281).
3810 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
3811
fb5b8aca
CY
38122012-03-21 Chong Yidong <cyd@gnu.org>
3813
3814 * xfaces.c (Vface_remapping_alist): Doc fix.
3815
62356a1b
EZ
38162012-03-20 Eli Zaretskii <eliz@gnu.org>
3817
3818 * w32proc.c (Fw32_set_console_codepage)
5063c0e1
TN
3819 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
3820 Doc fixes.
62356a1b 3821
025de85b
CY
38222012-03-20 Chong Yidong <cyd@gnu.org>
3823
3824 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
3825 to reflect default non-nil value of redisplay-dont-pause.
3826
4827f94e
KH
38272012-03-19 Kenichi Handa <handa@m17n.org>
3828
3829 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
3830 it fit in a valid range (Bug#11003).
3831
e50a24a2
EZ
38322012-03-18 Eli Zaretskii <eliz@gnu.org>
3833
3834 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
3835 that is not from display property, accept the row as a "cursor
3836 row" if one of the string's character has a non-nil `cursor'
3837 property. Fixes cursor positioning when there are newlines in
3838 overlay strings, e.g. in icomplete.el. (Bug#11035)
3839
9af5ed87
PE
38402012-03-12 Paul Eggert <eggert@cs.ucla.edu>
3841
3842 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
3843
d1f55f16
CY
38442012-03-12 Chong Yidong <cyd@gnu.org>
3845
3846 * eval.c (inhibit_lisp_code): Rename from
3847 inhibit_window_configuration_change_hook; move from window.c.
3848
3849 * xfns.c (unwind_create_frame_1, Fx_create_frame):
3850 * window.c (run_window_configuration_change_hook)
3851 (syms_of_window): Callers changed.
3852
66c5eebd
CY
38532012-03-11 Chong Yidong <cyd@gnu.org>
3854
413df973
CY
3855 * keymap.c (Fkey_description): Doc fix (Bug#9700).
3856
66c5eebd
CY
3857 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
3858
1de11f56
CY
38592012-03-10 Chong Yidong <cyd@gnu.org>
3860
3861 * frame.c (other_visible_frames): Don't assume the selected frame
3862 is visible (Bug#10955).
3863
cae07000
SM
38642012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
3865
3866 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
3867
89c94350
JD
38682012-03-08 Jan Djärv <jan.h.d@swipnet.se>
3869
3870 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
3871 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
3872 zero (Bug#10954).
3873
999dd333
GM
38742012-03-03 Glenn Morris <rgm@gnu.org>
3875
01a6dcc8 3876 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
999dd333 3877
de0100f2
EZ
38782012-03-02 Eli Zaretskii <eliz@gnu.org>
3879
3880 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
3881 position past the first glyph_row that ends at ZV. (Bug#10902)
b8456c5c
EZ
3882 (redisplay_window, next_element_from_string): Fix typos in
3883 comments.
3e441275
EZ
3884 (redisplay_window): Pass to move_it_vertically the margin in
3885 pixels, not in screen lines.
de0100f2 3886
96a72ee9
GM
38872012-03-02 Glenn Morris <rgm@gnu.org>
3888
3889 * buffer.c (buffer-list-update-hook): Doc fix.
3890
312508d7
EZ
38912012-02-29 Eli Zaretskii <eliz@gnu.org>
3892
3893 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
3894 push_it before setting up the iterator for the first overlay
3895 string, even if we have an empty string loaded.
3896 (next_overlay_string): If there's an empty string on the iterator
3897 stack, pop the stack. (Bug#10903)
3898
27f3c637
PE
38992012-02-25 Paul Eggert <eggert@cs.ucla.edu>
3900
3901 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
3902 Suggested by Stefan Monnier in
3903 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
3904 * alloc.c (widen_to_Lisp_Object): New static function.
3905 (mark_memory): Also mark Lisp_Objects by fetching pointer words
3906 and widening them to Lisp_Objects. This would work even if
3907 USE_LSB_TAG is defined and wide integers are used, which might
3908 happen in a future version of Emacs.
3909
3c9dfce6
CY
39102012-02-25 Chong Yidong <cyd@gnu.org>
3911
fa74b241
CY
3912 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
3913 Doc fix.
3914
3c9dfce6
CY
3915 * xselect.c (Fx_selection_exists_p): Doc fix.
3916 (x_clipboard_manager_save_all): Print an informative message
3917 before saving to clipboard manager.
3918
9486df08
CY
39192012-02-24 Chong Yidong <cyd@gnu.org>
3920
3921 * keyboard.c (process_special_events): Handle all X selection
3922 requests in kbd_buffer, not just the next one (Bug#8869).
3923
f01d3321
CY
39242012-02-23 Chong Yidong <cyd@gnu.org>
3925
3926 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
3927 call when setting menu-bar-lines and tool-bar-lines parameters.
3928 (unwind_create_frame_1): New helper function.
3929
3930 * window.c (inhibit_window_configuration_change_hook): New var.
3931 (run_window_configuration_change_hook): Obey it.
b2e4ca7d 3932 (syms_of_window): Initialize it.
f01d3321 3933
86b847b6
CY
39342012-02-22 Chong Yidong <cyd@gnu.org>
3935
3936 * xterm.c (x_draw_image_relief): Add missing type check for
3937 Vtool_bar_button_margin (Bug#10743).
3938
a59225b1
CY
39392012-02-21 Chong Yidong <cyd@gnu.org>
3940
3941 * fileio.c (Vfile_name_handler_alist): Doc fix.
3942
3943 * buffer.c (Fget_file_buffer): Protect against invalid file
3944 handler return value.
3945
310f5bd4
PE
39462012-02-20 Paul Eggert <eggert@cs.ucla.edu>
3947
cb3a28cc
PE
3948 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
3949 when computing $valmask.
3950
310f5bd4
PE
3951 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
3952 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
3953 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
3954 It's useless in that case, and it can cause problems on hosts
3955 that allocate halves of EMACS_INT values separately.
3956 Reported by Dan Horák. Diagnosed by Andreas Schwab in
3957 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
3958 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
3959 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
3960 it avoids undefined behavior on hosts where shifting right by more
3961 than the word width has undefined behavior.
3962
2375c96a
CY
39632012-02-19 Chong Yidong <cyd@gnu.org>
3964
3965 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
3966 (Funhandled_file_name_directory, Ffile_name_as_directory)
3967 (Fdirectory_file_name, Fexpand_file_name)
3968 (Fsubstitute_in_file_name): Protect against invalid file handler
3969 return values (Bug#10845).
3970
3eb49e71
EZ
39712012-02-18 Eli Zaretskii <eliz@gnu.org>
3972
3973 * .gdbinit (pitx): Fix incorrect references to fields of the
3974 iterator stack.
3975
7b926f3f
CY
39762012-02-17 Chong Yidong <cyd@gnu.org>
3977
3978 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
3979
11273115
PE
39802012-02-15 Paul Eggert <eggert@cs.ucla.edu>
3981
3982 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
3983 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
3984
c3a70e2b
CY
39852012-02-15 Chong Yidong <cyd@gnu.org>
3986
3987 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
3988 marked as special. Also, starting docstrings with * is obsolete.
3989
0ca43699
AS
39902012-02-13 Andreas Schwab <schwab@linux-m68k.org>
3991
3992 * gnutls.c (emacs_gnutls_write): Fix last change.
3993
2e8f3c56
LI
39942012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
3995
3996 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
3997 send_process.
3998
af70074f
SM
39992012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
4000
4001 * keymap.c (Fsingle_key_description): Handle char ranges.
4002
95986d52
CY
40032012-02-12 Chong Yidong <cyd@gnu.org>
4004
afd83bd1
CY
4005 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
4006 as that creates a dangerous corner case.
4007
95986d52
CY
4008 * window.c (Fdelete_window_internal): Invalidate the mouse
4009 highlight (Bug#9904).
4010
bd7da63e
GM
40112012-02-12 Glenn Morris <rgm@gnu.org>
4012
4013 * xselect.c (Fx_own_selection_internal)
4014 (Fx_get_selection_internal, Fx_disown_selection_internal)
4015 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
4016 * nsselect.m (Fx_own_selection_internal)
4017 (Fx_disown_selection_internal, Fx_selection_exists_p)
4018 (Fx_selection_owner_p, Fx_get_selection_internal):
4019 Sync docs and argument specs with the xselect.c versions.
4020
77abcbc2
LI
40212012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
4022
4023 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
4024
90b671e2
EZ
40252012-02-11 Eli Zaretskii <eliz@gnu.org>
4026
1c0ca0b7
EZ
4027 * w32select.c (Fx_selection_exists_p): Sync doc string and
4028 argument list with xselect.c. (Bug#10783)
4029
4030 * w16select.c (Fx_selection_exists_p): Sync doc string and
4031 argument list with xselect.c. (Bug#10783)
90b671e2 4032
49241268
GM
40332012-02-10 Glenn Morris <rgm@gnu.org>
4034
4035 * fns.c (Fsecure_hash): Doc fix.
4036
f998bbe7 40372012-02-09 Kenichi Handa <handa@m17n.org>
5c1ca13d
KH
4038
4039 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
4040
0992bd9c
CY
40412012-02-07 Chong Yidong <cyd@gnu.org>
4042
4043 * buffer.c (Fbuffer_local_variables)
4044 (buffer_lisp_local_variables): Handle unbound vars correctly;
4045 don't let Qunbound leak into Lisp.
4046
af008560
GM
40472012-02-07 Glenn Morris <rgm@gnu.org>
4048
dd605cc4
GM
4049 * image.c (Fimagemagick_types): Doc fix.
4050
af008560
GM
4051 * image.c (imagemagick-render-type): Change it from a lisp object
4052 to an integer. Move the doc here from the lisp manual.
4053 Treat all values not equal to 0 the same.
4054
1449fa1d
CY
40552012-02-06 Chong Yidong <cyd@gnu.org>
4056
4057 * doc.c (store_function_docstring): Avoid applying docstring of
4058 alias to base function (Bug#2603).
4059
3723ec07
AS
40602012-02-04 Andreas Schwab <schwab@linux-m68k.org>
4061
4062 * .gdbinit (pp1, pv1): Remove redundant defines.
4063 (pr): Use pp.
4064
79c1cc1e
CY
40652012-02-04 Chong Yidong <cyd@gnu.org>
4066
4067 * nsterm.m: Declare a global (Bug#10694).
4068
d7f29f8e
EZ
40692012-02-04 Eli Zaretskii <eliz@gnu.org>
4070
cae07000
SM
4071 * w32.c (get_emacs_configuration_options):
4072 Include --enable-checking, if specified, in the return value.
d7f29f8e 4073
3b95a6f9
MR
40742012-02-04 Martin Rudalics <rudalics@gmx.at>
4075
4076 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
4077 after rounding frame sizes. (Bug#9723)
4078
d6fa96a6
EZ
40792012-02-04 Eli Zaretskii <eliz@gnu.org>
4080
4081 * keyboard.c (adjust_point_for_property): Don't position point
4082 before BEGV. (Bug#10696)
4083
df0b2940
PE
40842012-02-03 Paul Eggert <eggert@cs.ucla.edu>
4085
4086 Handle overflow when computing char display width (Bug#9496).
4087 * character.c (char_width): Return EMACS_INT, not int.
4088 (char_width, c_string_width): Check for overflow when
4089 computing the width; this is possible now that individual
4090 characters can have unbounded width. Problem introduced
4091 by merge from Emacs 23 on 2012-01-19.
4092
6bee44d6
MA
40932012-02-02 Michael Albinus <michael.albinus@gmx.de>
4094
4095 * dbusbind.c (Fdbus_register_method): Mention the return value
4096 :ignore in the docstring.
4097
44f92739
GM
40982012-02-02 Glenn Morris <rgm@gnu.org>
4099
1b9f60cc
GM
4100 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
4101
44f92739
GM
4102 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
4103 Unconditionally set to t. (Bug#10673)
4104 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
4105 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
4106 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
4107
c5d3843c
KH
41082012-02-02 Kenichi Handa <handa@m17n.org>
4109
4110 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
4111 0, do not call append_composite_glyph.
4112
159462d4 41132012-02-02 Kenichi Handa <handa@m17n.org>
d2a51fd7
KH
4114
4115 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
4116 NULL (Bug#6988).
4117 (x_produce_glyphs): If the component of a composition is a null
4118 string, set it->pixel_width to 1 to avoid zero-width glyph.
4119
78cef877
EZ
41202012-02-01 Eli Zaretskii <eliz@gnu.org>
4121
4122 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
4123 first 2 arguments are identical. This makes inserting large
4124 output from a subprocess an order of magnitude faster on
4125 MS-Windows, where all sbrk'ed memory is always contiguous.
4126
97897668
GM
41272012-01-31 Glenn Morris <rgm@gnu.org>
4128
4129 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
c78c6e0b 4130 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
97897668
GM
4131 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
4132
31fd3586
GM
41332012-01-29 Glenn Morris <rgm@gnu.org>
4134
4135 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
4136
0e24a8b2
CY
41372012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
4138
4139 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
4140
cc0adcb0
CY
41412012-01-28 Chong Yidong <cyd@gnu.org>
4142
4143 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
4144
acc28cb9
CY
41452012-01-26 Chong Yidong <cyd@gnu.org>
4146
9c69cfb7
CY
4147 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
4148
acc28cb9
CY
4149 * search.c (Fsearch_forward, Fsearch_backward): Document negative
4150 repeat counts (Bug#10507).
4151
48da7392
GM
41522012-01-26 Glenn Morris <rgm@gnu.org>
4153
4154 * lread.c (syms_of_lread): Doc fix.
4155
14af5f7f
CY
41562012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
4157
4158 * coding.c (encode_designation_at_bol): Change return value to
4159 EMACS_INT.
4160
0b21c100
CY
41612012-01-25 Chong Yidong <cyd@gnu.org>
4162
4163 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
4164
3c2907f7
CY
41652012-01-21 Chong Yidong <cyd@gnu.org>
4166
4167 * floatfns.c (Fcopysign): Make the second argument non-optional,
4168 since nil is not allowed anyway.
4169
959ad23f
AS
41702012-01-21 Andreas Schwab <schwab@linux-m68k.org>
4171
4172 * process.c (read_process_output): Use p instead of XPROCESS (proc).
4173 (send_process): Likewise.
4174
34a02f46
MR
41752012-01-19 Martin Rudalics <rudalics@gmx.at>
4176
4177 * window.c (save_window_save, Fcurrent_window_configuration)
cae07000
SM
4178 (Vwindow_persistent_parameters): Do not use Qstate.
4179 Rewrite doc-strings.
34a02f46 4180
1259009a 41812012-01-19 Kenichi Handa <handa@m17n.org>
25ed9e61
KH
4182
4183 * character.c (char_width): New function.
70d4fdf6
GM
4184 (Fchar_width, c_string_width, lisp_string_width):
4185 Use char_width (Bug#9496).
25ed9e61 4186
6a6ee00d
MR
41872012-01-16 Martin Rudalics <rudalics@gmx.at>
4188
4189 * window.c (Vwindow_persistent_parameters): New variable.
4190 (Fset_window_configuration, save_window_save): Handle persistent
4191 window parameters.
4192
c85efaf7
EZ
41932012-01-14 Eli Zaretskii <eliz@gnu.org>
4194
4195 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
4196 thrashing the stack of the thread. (Bug#9087)
4197
5944709e
PE
41982012-01-12 Paul Eggert <eggert@cs.ucla.edu>
4199
4200 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
4201
e71f5d99
EZ
42022012-01-11 Eli Zaretskii <eliz@gnu.org>
4203
4204 * xdisp.c (rows_from_pos_range): Handle the case where the
4205 highlight ends on a newline. (Bug#10464)
4206 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
4207 he end column for display of highlight that ends on a newline
4208 before a R2L line.
4209
ce316182
GM
42102012-01-11 Glenn Morris <rgm@gnu.org>
4211
4212 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
4213 from load-path also when installation-directory is nil. (Bug#10208)
4214
5b43da69
GM
42152012-01-10 Glenn Morris <rgm@gnu.org>
4216
74cc8ff9
GM
4217 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
4218
7d8d6e4e
GM
4219 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
4220 Update template values to be closer to their typical values these days.
5b43da69 4221
a0db8d43
EZ
42222012-01-09 Eli Zaretskii <eliz@gnu.org>
4223
4224 * xdisp.c (rows_from_pos_range): Accept additional argument
4225 DISP_STRING, and accept any glyph in a row whose object is that
4226 string as eligible for mouse highlight. Fixes mouse highlight of
4227 display strings from overlays. (Bug#10464)
4228
9a0115ab 42292012-01-07 Paul Eggert <eggert@cs.ucla.edu>
09450bae 4230
b9110d6a 4231 emacs: fix an auto-save permissions race condition (Bug#10400)
09450bae
PE
4232 * fileio.c (auto_saving_dir_umask): New static var.
4233 (Fmake_directory_internal): Use it.
4234 (do_auto_save_make_dir): Set it, instead of invoking chmod after
4235 creating the directory. The old code temporarily assigns
4236 too-generous permissions to the directory.
4237 (do_auto_save_eh): Clear it.
b9110d6a 4238 (Fdo_auto_save): Catch all errors, not just file errors, so
09450bae
PE
4239 that the var is always cleared.
4240
6c1bd3f3
EZ
42412012-01-07 Eli Zaretskii <eliz@gnu.org>
4242
4243 * search.c (scan_buffer): Pass character positions to
4244 know_region_cache, not byte positions. (Bug#6540)
4245
069d2b50
L
42462012-01-07 LynX <_LynX@bk.ru> (tiny change)
4247
4248 * w32.c (sys_rename): Report EXDEV when rename of a directory
4249 fails because the target is on another logical disk. (Bug#10284)
4250
75bf0d33
DB
42512012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
4252
4253 * xterm.c (x_embed_request_focus): New function.
4254
4255 * xterm.h: Add prototype.
4256
4257 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
4258
1c6e5a32
GM
42592012-01-05 Glenn Morris <rgm@gnu.org>
4260
4261 * emacs.c (emacs_copyright): Update short copyright year to 2012.
4262
651e947e
EZ
42632012-01-01 Eli Zaretskii <eliz@gnu.org>
4264
4265 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
4266 Load gnutls_transport_set_lowat only if GnuTLS version is below
4267 2.11.1.
4268 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
4269 GnuTLS versions below 2.11.1.
4270
3778cdd8
AL
42712011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
4272
4273 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
4274 to the doc string advising against its use for altering the way
4275 windows are scrolled.
4276
0e5317f7
KH
42772011-12-28 Kenichi Handa <handa@m17n.org>
4278
4279 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
4280 coding-system ASCII compatible only when it does not produce BOM
4281 on encoding (Bug#10383).
4282
93d5ca1f
JD
42832011-12-26 Jan Djärv <jan.h.d@swipnet.se>
4284
4285 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
4286 can scroll.
4287 (create_and_show_popup_menu): Always use menu_position_func for
4288 Gtk3 (Bug#10361).
4289
ca22b785
AS
42902011-12-24 Andreas Schwab <schwab@linux-m68k.org>
4291
4292 * callint.c (Fcall_interactively): Don't truncate prompt string.
4293
d048e1e6
EZ
42942011-12-23 Eli Zaretskii <eliz@gnu.org>
4295
4296 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
4297 property that ends at ZV, so that the bidi iteration could be
3ba1a2ad 4298 resumed from there (after widening). (Bug#10360)
d048e1e6 4299
5ccaba1f
JD
43002011-12-22 Jan Djärv <jan.h.d@swipnet.se>
4301
4302 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
4303
204ee57f
JD
43042011-12-21 Jan Djärv <jan.h.d@swipnet.se>
4305
b81d40f0
JB
4306 * nsterm.m (x_free_frame_resources):
4307 Release f->output_data.ns->miniimage.
204ee57f
JD
4308 (ns_index_color): Fix indentation. Do not retain
4309 color_table->colors[i].
4310
4311 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
4312 before returning.
4313
4314 * nsfns.m (x_set_background_color): Assign return value from
4315 ns_index_color to face-background instead of NSColor*.
4316 (ns_implicitly_set_icon_type): Fix indentation.
4317 Change assignment in for loop to comparison.
4318
4319 * emacs.c (ns_pool): New variable.
4320 (main): Assign ns_pool.
4321 (Fkill_emacs): Call ns_release_autorelease_pool.
4322
4323 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
4324 autorelease fdesc, release fdAttrs and tdict.
4325 (ns_get_covering_families): Release charset.
4326 (ns_findfonts): Release NSFontDescriptor created with new.
4327 (ns_uni_to_glyphs): Fix indentation.
4328 (setString): Release attrStr before assigning new value.
4329
c803b2b7
JD
43302011-12-18 Jan Djärv <jan.h.d@swipnet.se>
4331
678f4426
JD
4332 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
4333 and NS_IMPL_COCOA.
4334 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
4335 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
4336
cd394be1 43372011-12-18 David Reitter <reitter@cmu.edu>
678f4426 4338
5fecd5fc
JD
4339 * nsterm.m (ns_term_init): Subscribe for notifications
4340 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
4341 to method trackingNotification in EmacsMenu.
4342
4343 * nsmenu.m (trackingMenu): New variable.
3771cb17 4344 (trackingNotification): New method (from Aquamacs).
5fecd5fc 4345 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
3771cb17 4346 from Aquamacs (Bug#7030).
678f4426
JD
4347
43482011-12-18 Jan Djärv <jan.h.d@swipnet.se>
5fecd5fc 4349
c803b2b7
JD
4350 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
4351 (symbol_to_nsstring): Fix indentation.
4352 (ns_symbol_to_pb): New function.
cae07000
SM
4353 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
4354 (Fns_rotate_cut_buffers_internal): Remove.
4355 (Fns_store_selection_internal): Rename from
c803b2b7
JD
4356 Fns_store_cut_buffer_internal.
4357 (ns_get_foreign_selection, Fx_own_selection_internal)
4358 (Fx_disown_selection_internal, Fx_selection_exists_p)
b81d40f0
JB
4359 (Fns_get_selection_internal, Fns_store_selection_internal):
4360 Use ns_symbol_to_pb and check if return value is nil.
4361 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
4362 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
c803b2b7
JD
4363 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
4364 renamed to Sns_store_selection_internal.
4365 (ns_handle_selection_request): Move code to Fx_own_selection_internal
4366 and remove this function.
4367 (ns_handle_selection_clear): Remove, never used.
4368 (Fx_own_selection_internal): Move code from ns_handle_selection_request
4369 here.
4370
e1b01a3a
KB
43712011-12-17 Ken Brown <kbrown@cornell.edu>
4372
4373 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
4374 GID is unknown (Bug#10257).
4375
2adb6e85
PE
43762011-12-17 Paul Eggert <eggert@cs.ucla.edu>
4377
4378 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
4379 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
4380 which caused a build failure on GNU/Linux IA-64. This problem was
4381 introduced by my 2011-10-07 patch.
4382
d1d7b339
JL
43832011-12-15 Juri Linkov <juri@jurta.org>
4384
4385 * image.c (imagemagick_error): New function. (Bug#10112)
4386 (imagemagick_load_image): Comment out `MagickSetResolution' call.
4387 Use `imagemagick_error' where ImageMagick functions return
4388 `MagickFalse'.
4389 (Fimagemagick_types): Add `Fnreverse' to return the list in the
4390 proper order.
4391
100d5755
KH
43922011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
4393
4394 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
4395 fill background (Bug#8992).
4396
454592a6
MR
43972011-12-13 Martin Rudalics <rudalics@gmx.at>
4398
4399 * window.c (Vwindow_combination_resize)
4400 (Vwindow_combination_limit): Use t instead of non-nil in
4401 doc-strings.
61d4b438
MR
4402 (Vrecenter_redisplay): Add first sentence of doc-string on
4403 separate line.
53524d93 4404 (Frecenter): Fix doc-string typo.
454592a6 4405
3633e3aa
KH
44062011-12-11 Kenichi Handa <handa@m17n.org>
4407
4408 * coding.c (Funencodable_char_position): Pay attention to the
4409 buffer text relocation (Bug#9389).
4410
7b9d523a 44112011-12-10 Jan Djärv <jan.h.d@swipnet.se>
61ccba97 4412
7b9d523a
JD
4413 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
4414 gtk_init (Bug#10100).
4415
b73189c6
EZ
44162011-12-10 Eli Zaretskii <eliz@gnu.org>
4417
4418 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
4419 IT->string is nil. (Bug#10263)
4420
f7dfe5d6
JD
44212011-12-10 Jan Djärv <jan.h.d@swipnet.se>
4422
83faebb4
JD
4423 * nsterm.h (x_free_frame_resources): Declare.
4424
f7dfe5d6
JD
4425 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
4426 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
4427
4428 * nsterm.h (ns_get_defaults_value): Declare.
4429
4430 * nsterm.m (ns_default): Call ns_get_defaults_value.
4431
7cd4e72c
EZ
44322011-12-09 Eli Zaretskii <eliz@gnu.org>
4433
4434 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
4435 (Bug#10170)
4436
b34d7317
YM
44372011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
4438
4439 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
4440 that where the value of an _OBJC_* symbol points to is in the .bss
4441 section (Bug#10240).
4442
76470ad1
KH
44432011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
4444
4445 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
2fac8180 4446 after the loop to call ccl_driver at least once (Bug#8619).
76470ad1 4447
745fff94
KH
44482011-12-08 Kenichi Handa <handa@m17n.org>
4449
4450 * ftfont.c (get_adstyle_property): Fix previous change
4451 (Bug#10233).
4452
6e44397c
JB
44532011-12-07 Juanma Barranquero <lekktu@gmail.com>
4454
4455 * w32.c (init_environment): If no_site_lisp, remove site-lisp
4456 dirs from the default value of EMACSLOADPATH (bug#10208).
4457
7efa6272
GM
44582011-12-07 Glenn Morris <rgm@gnu.org>
4459
4460 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
4461 installation and source directories as well. (Bug#10208)
4462
f6fc4d87
CY
44632011-12-06 Chong Yidong <cyd@gnu.org>
4464
4465 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
4466
2bf26180
GM
44672011-12-06 Glenn Morris <rgm@gnu.org>
4468
4469 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
4470 as an error, not just -1. (Bug#10217)
4471
3a6ad4f0
CY
44722011-12-05 Chong Yidong <cyd@gnu.org>
4473
4474 * keyboard.c (process_special_events): New function.
4475 (swallow_events, Finput_pending_p): Use it (Bug#10195).
4476
75a3b399
PE
44772011-12-05 Paul Eggert <eggert@cs.ucla.edu>
4478
4479 * coding.c (encode_designation_at_bol): Don't use uninitialized
4480 local variable (Bug#9318).
4481
c3c9e25e
KH
44822011-12-05 Kenichi Handa <handa@m17n.org>
4483
4484 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
4485 return Qnil (Bug#8046, Bug#10193).
4486
5eb05ea3
KH
44872011-12-05 Kenichi Handa <handa@m17n.org>
4488
4489 * coding.c (encode_designation_at_bol): New args charbuf_end and
4490 dst. Return the number of produced bytes. Callers changed.
a79703f5
KH
4491 (coding_set_source): Return how many bytes coding->source was
4492 relocated.
4493 (coding_set_destination): Return how many bytes
4494 coding->destination was relocated.
4495 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
cae07000 4496 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
5eb05ea3
KH
4497
44982011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
4499
4500 * coding.c (CODING_CHAR_CHARSET_P): New macro.
4501 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
4502 macro (Bug#9318).
4503
45042011-12-05 Andreas Schwab <schwab@linux-m68k.org>
4505
4506 The following changes are to fix Bug#9318.
4507
a79703f5 4508 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
5eb05ea3
KH
4509 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
4510 (encode_coding_iso_2022, encode_coding_sjis)
a79703f5 4511 (encode_coding_big5, encode_coding_charset): Use the above macros.
5eb05ea3 4512
7dbda6df
JB
45132011-12-05 Juanma Barranquero <lekktu@gmail.com>
4514
4515 * lisp.h (process_quit_flag): Fix external declaration.
4516
6d5eb5b0
SM
45172011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
4518
4519 Don't macro-inline non-performance-critical code.
4520 * eval.c (process_quit_flag): New function.
4521 * lisp.h (QUIT): Use it.
4522
a0c3fad0
JD
45232011-12-04 Jan Djärv <jan.h.d@swipnet.se>
4524
4525 * nsfns.m (get_geometry_from_preferences): New function.
4526 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
4527
6c07aac2
AS
45282011-12-04 Andreas Schwab <schwab@linux-m68k.org>
4529
4530 * emacs.c (Qkill_emacs): Define.
4531 (syms_of_emacs): Initialize it.
4532 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
4533 Qquit_flag to `kill-emacs' instead.
6d5eb5b0
SM
4534 (quit_throw_to_read_char): Add parameter `from_signal'.
4535 All callers changed. Call Fkill_emacs if requested and safe.
6c07aac2
AS
4536 * lisp.h (QUIT): Call Fkill_emacs if requested.
4537
c052ead4
JD
45382011-12-03 Jan Djärv <jan.h.d@swipnet.se>
4539
4540 * widget.c (update_wm_hints): Return if wmshell is null.
4541 (widget_update_wm_size_hints): New function.
4542
4543 * widget.h (widget_update_wm_size_hints): Declare.
4544
4545 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
4546 widget_update_wm_size_hints (Bug#10104).
4547
9e49252b
EZ
45482011-12-03 Eli Zaretskii <eliz@gnu.org>
4549
4550 * xdisp.c (handle_invisible_prop): If the invisible text ends just
4551 before a newline, prepare the bidi iterator for consuming the
4552 newline, and keep the current paragraph direction. (Bug#10183)
e9a49426 4553 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
9e49252b 4554
02b16839
JL
45552011-12-02 Juri Linkov <juri@jurta.org>
4556
4557 * search.c (Fword_search_regexp): New Lisp function created from
4558 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
4559 (Fword_search_backward, Fword_search_forward)
4560 (Fword_search_backward_lax, Fword_search_forward_lax):
4561 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
4562 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
4563
0068070e
SM
45642011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
4565
4566 * fileio.c (Finsert_file_contents): Move after-change-function call
4567 to before the "handled:" label, since all "goto handled" appear in
4568 cases where the *-change-functions have already been properly called
4569 (bug#10117).
4570
3360a3fc
AS
45712011-12-01 Andreas Schwab <schwab@linux-m68k.org>
4572
4573 * keyboard.c (interrupt_signal): Don't call kill-emacs when
4574 waiting for input. (Bug#10169)
4575
73d6c093
EZ
45762011-11-30 Eli Zaretskii <eliz@gnu.org>
4577
4578 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
4579 verifies glyph row's hash code--we have just reallocated the
4580 glyphs, so their contents can be complete garbage. (Bug#10164)
4581
febe6bea
JB
45822011-11-30 Juanma Barranquero <lekktu@gmail.com>
4583
4584 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
4585
801a4313
EZ
45862011-11-30 Eli Zaretskii <eliz@gnu.org>
4587
4588 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
4589 attributes are tested _before_ calling verify_row_hash, to protect
4590 against GCC re-ordering of the tests. (Bug#10164)
4591
2b56b87e
JD
45922011-11-29 Jan Djärv <jan.h.d@swipnet.se>
4593
4594 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
4595
4596 * xterm.c (handle_one_xevent): Only set async_visible and friends
4597 if net_wm_state_hidden_seen is non-zero (Bug#10002)
7dbda6df 4598 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
2b56b87e
JD
4599 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
4600
dbf31225
PE
46012011-11-28 Paul Eggert <eggert@cs.ucla.edu>
4602
4603 Remove GCPRO-related macros that exist only to avoid shadowing locals.
4604 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
4605 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
4606 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
4607 All uses changed to use GCPRO1 etc.
4608 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
4609 Revert to old implementation (i.e., before 2011-03-11).
4610
1305621b
YM
46112011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
4612
4613 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
4614 of scroll runs so as to avoid assigning disabled bogus rows and
4615 unnecessary graphics copy operations.
4616
8c9afb46
EZ
46172011-11-27 Eli Zaretskii <eliz@gnu.org>
4618
4619 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
4620 (snprintf) [_MSC_VER]: Redirect to _snprintf.
4621 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
4622 (malloc, free, realloc, calloc): Redirect to e_* only when
4623 compiling Emacs.
4624
4625 * lisp.h (GCTYPEBITS): Move before first use.
4626 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
4627 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
4628 this macro definition.
4629
4630 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
4631 _MSC_VER.
4632
54e9e3bf
JD
46332011-11-27 Jan Djärv <jan.h.d@swipnet.se>
4634
6d5eb5b0
SM
4635 * gtkutil.c (xg_create_frame_widgets):
4636 Call gtk_window_set_has_resize_grip (FALSE) if that function is
54e9e3bf
JD
4637 present with Gtk+ 2.0.
4638
83aca1cb
PE
46392011-11-26 Paul Eggert <eggert@cs.ucla.edu>
4640
4641 * fileio.c (Finsert_file_contents): Undo previous change; see
4642 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
4643
5b76caa4
PE
46442011-11-26 Paul Eggert <eggert@cs.ucla.edu>
4645
4646 Rename locals to avoid shadowing.
4647 * fileio.c (Finsert_file_contents):
4648 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
4649 * process.c (wait_reading_process_output):
4650 Rename inner 'proc' to 'p' to avoid shadowing.
4651 Indent for consistency with usual Emacs style.
4652
8c535114
EZ
46532011-11-25 Eli Zaretskii <eliz@gnu.org>
4654
4655 * xdisp.c (redisplay_window): If cursor row is not fully visible
4656 after recentering, and scroll-conservatively is set to a large
4657 number, scroll window by a few more lines to make the cursor fully
4658 visible and out of scroll-margin. (Bug#10105)
91b4a718
EZ
4659 (start_display): Don't move to the next line if the display should
4660 start at a newline that is part of a display vector or an overlay
4661 string. (Bug#10119)
8c535114 4662
fa4fdb5c
JL
46632011-11-24 Juri Linkov <juri@jurta.org>
4664
4665 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
4666 after the `MagickPingImage' call. (Bug#10112)
4667
90ec88df
CY
46682011-11-23 Chong Yidong <cyd@gnu.org>
4669
4670 * window.c (Fcoordinates_in_window_p): Accept only live windows.
4671
56e2e794
MR
46722011-11-23 Martin Rudalics <rudalics@gmx.at>
4673
4674 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
4675 making another buffer current. (Bug#10114)
4676
b6e64c41
GM
46772011-11-23 Glenn Morris <rgm@gnu.org>
4678
4679 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
4680
6b21de18
CY
46812011-11-23 Chong Yidong <cyd@gnu.org>
4682
4683 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
4684 using it (Bug#5984).
4685
b12cd789
EZ
46862011-11-22 Eli Zaretskii <eliz@gnu.org>
4687
4688 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
4689 and header-lines, as they don't have one computed for them.
4690 (Bug#10098)
4691
4692 * .gdbinit (prow): Make displayed values more self-explaining.
4693 Add row's hash code.
4694
261b6fd4
LMI
46952011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
4696
4697 * process.c (wait_reading_process_output): Fix asynchrounous
4698 GnuTLS socket handling on some versions of the GnuTLS library.
16c1ad08 4699 (wait_reading_process_output): Add comment and URL.
261b6fd4 4700
e7cfd277
JD
47012011-11-21 Jan Djärv <jan.h.d@swipnet.se>
4702
4703 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
4704
a9b9b7f5
CY
47052011-11-21 Chong Yidong <cyd@gnu.org>
4706
4707 * window.c (Fnext_window, Fprevious_window): Doc fix.
4708
b0d15b4f
SM
47092011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
4710
4711 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
4712
fe7a3057
JB
47132011-11-20 Juanma Barranquero <lekktu@gmail.com>
4714
4715 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
4716
d2999b1a
MR
47172011-11-20 Martin Rudalics <rudalics@gmx.at>
4718
4719 * window.c (Fset_window_combination_limit): Rename argument
4720 STATUS to LIMIT.
4721 (Vwindow_combination_limit): Remove "status" from doc-string.
4722
d5ff9cd0
AS
47232011-11-20 Andreas Schwab <schwab@linux-m68k.org>
4724
4725 * m/ibms390.h: Remove.
4726 * m/ibms390x.h: Don't include "ibms390.h".
4727
a5bb9bd3
SM
47282011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
4729
4730 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
4731 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
4732
cd1181db
JB
47332011-11-20 Juanma Barranquero <lekktu@gmail.com>
4734
4735 * casetab.c (Fset_case_table):
4736 * charset.c (Fcharset_after): Fix typos.
4737
615a3b8d 47382011-11-20 Paul Eggert <eggert@cs.ucla.edu>
6a0bf43d 4739
17e845af
PE
4740 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
4741 Otherwise, valgrind does not work on some platforms.
4742 Problem reported by Andreas Schwab in
6a0bf43d
PE
4743 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
4744 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
4745 is set, removing the need for VIRT_ADDRESS_VARIES.
4746 (PURE_P): Use a more-efficient implementation that needs just one
4747 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
4748 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
4749 to 4 (xorl, subq, cmpq, setbe).
4750 * alloc.c (pure): Always extern now, since that's the
4751 VIRT_ADDR_VARIES behavior.
4752 (PURE_POINTER_P): Use a single comparison, not two, for
4753 consistency with the new puresize.h.
4754 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
4755 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
4756 Remove VIRT_ADDR_VARIES no longer needed.
4757
f8fe6f96
EZ
47582011-11-19 Eli Zaretskii <eliz@gnu.org>
4759
4760 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
4761 (erase_phys_cursor, update_window_cursor, show_mouse_face)
4762 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
4763 behave as if the cursor position were at the window margin.
4764
4765 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
4766 and the cursor position is out of bounds, behave as if the cursor
4767 position were at the window margin. (Bug#10075)
4768
df05a53c
CY
47692011-11-18 Chong Yidong <cyd@gnu.org>
4770
4771 * window.c (Fwindow_combination_limit): Make first argument
4772 non-optional, since it is meaningless for live windows like the
4773 selected window.
61ccba97 4774
2071918e
DA
47752011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
4776
4777 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
4778
b50a28de
SM
47792011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
4780
4781 * intervals.c: Fix grafting over the whole buffer (bug#10071).
4782 (graft_intervals_into_buffer): Simplify.
4783
015137db
EZ
47842011-11-18 Eli Zaretskii <eliz@gnu.org>
4785
4786 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
4787 hash values of the two rows.
4788 (copy_row_except_pointers): Preserve the used[] arrays and the
4789 hash values of the two rows. (Bug#10035)
68c95424 4790 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
015137db
EZ
4791
4792 * xdisp.c (row_hash): New function, body extracted from
4793 compute_line_metrics.
4794 (compute_line_metrics): Call row_hash, instead of computing the
4795 hash code inline.
4796
4797 * dispnew.c (verify_row_hash): Call row_hash for computing the
4798 hash code of a row, instead of duplicating code from xdisp.c.
4799
4800 * dispextern.h (row_hash): Add prototype.
4801
a2addb04
TH
48022011-11-18 Tassilo Horn <tassilo@member.fsf.org>
4803
4804 * frame.c (delete_frame): Don't delete the terminal when the last
4805 X frame is closed if emacs is built with GTK toolkit.
4806
df85d315
JB
48072011-11-17 Juanma Barranquero <lekktu@gmail.com>
4808
4809 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
4810
a0c2d0ae
MR
48112011-11-17 Martin Rudalics <rudalics@gmx.at>
4812
4813 * window.c (Vwindow_splits): Rename to
4814 Vwindow_combination_resize. Suggested by Juri Linkov.
4815 (Fsplit_window_internal): Use Vwindow_combination_resize instead
4816 of Vwindow_splits.
4817
58179cce
JB
48182011-11-16 Juanma Barranquero <lekktu@gmail.com>
4819
7877f373
JB
4820 * nsfns.m (Fns_font_name):
4821 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
58179cce 4822
b6f67890
MR
48232011-11-16 Martin Rudalics <rudalics@gmx.at>
4824
4825 * window.h (window): Rename slot "nest" to "combination_limit".
4826 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
4827 (Fset_window_nest): Rename to Fset_window_combination_limit.
4828 (Vwindow_nest): Rename to Vwindow_combination_limit.
4829 (recombine_windows, make_parent_window, make_window)
4830 (Fsplit_window_internal, saved_window)
4831 (Fset_window_configuration, save_window_save): Rename all
4832 occurrences of window_nest to window_combination_limit.
4833
c7015153
JB
48342011-11-15 Juanma Barranquero <lekktu@gmail.com>
4835
4836 * image.c (imagemagick_load_image): Fix typo.
4837
322ad6ec
EZ
48382011-11-14 Eli Zaretskii <eliz@gnu.org>
4839
4840 * xdisp.c (display_line): Move the call to
4841 highlight_trailing_whitespace before the call to
4842 compute_line_metrics, since the latter needs to see the final
6d5eb5b0
SM
4843 faces of all the glyphs to compute ROW's hash value.
4844 Fixes assertion violations in row_equal_p. (Bug#10035)
322ad6ec 4845
f067b8ec
JB
48462011-11-14 Juanma Barranquero <lekktu@gmail.com>
4847
4848 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
4849 just return (bug#10044).
4850
1e5b2111
EZ
48512011-11-12 Eli Zaretskii <eliz@gnu.org>
4852
7ef3cbd5
EZ
4853 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
4854 with user-defined heap size. Bump the default size of the temacs
4855 heap to 27MB, to avoid memory warning when running temacs.
4856 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
4857
1e5b2111
EZ
4858 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
4859 current_matrix and desired_matrix. (Bug#9990)
7a7270dd
EZ
4860 (verify_row_hash) [XASSERTS]: New function.
4861 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
4862 that the hash value of glyph rows is correct.
1e5b2111 4863
89d61221
MR
48642011-11-12 Martin Rudalics <rudalics@gmx.at>
4865
4866 * window.h (window): Remove splits slot.
4867 * window.c (Fwindow_splits, Fset_window_splits): Remove.
4868 (Fdelete_other_windows_internal, make_parent_window)
4869 (make_window, Fsplit_window_internal, Fdelete_window_internal)
4870 (Fset_window_configuration, save_window_save): Don't deal with
4871 split status of windows.
4872 (saved_window): Remove splits slot.
4873 (Vwindow_splits): Rewrite doc-string.
4874
97f18cc8
JD
48752011-11-11 Jan Djärv <jan.h.d@swipnet.se>
4876
4877 * xfns.c (unwind_create_frame):
4878 * nsfns.m (unwind_create_frame):
4879 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
4880 Vframe_list (Bug#9999).
4881
22a648b4
DA
48822011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
4883
0b381c7e 4884 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
22a648b4 4885
659afede
KH
48862011-11-11 Kenichi Handa <handa@m17n.org>
4887
4888 * callproc.c (Fcall_process): Set the member dst_multibyte of
4889 process_coding.
4890
9ac0394b
KH
48912011-11-11 Johan Bockgård <bojohan@gnu.org>
4892
4893 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
4894 avoid a crash (bug#9496).
4895
2fbdc249
CY
48962011-11-09 Chong Yidong <cyd@gnu.org>
4897
4898 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
4899 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
4900
ac6b1f81
PE
49012011-11-08 Paul Eggert <eggert@cs.ucla.edu>
4902
4903 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
4904
09db192c
PE
49052011-11-08 Paul Eggert <eggert@cs.ucla.edu>
4906
4907 Avoid some portability problems by eschewing 'extern inline' functions.
4908 The trivial performance wins aren't worth the portability hassles; see
4909 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
4910 et seq.
4911 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
4912 (window_box_width, window_box_left, window_box_left_offset)
4913 (window_box_right, window_box_right_offset): Undo previous change,
4914 by removing the "extern"s.
4915 * intervals.c (adjust_intervals_for_insertion)
4916 (adjust_intervals_for_deletion): Undo previous change,
4917 making these static again.
4918 (offset_intervals, temp_set_point_both, temp_set_point)
4919 (copy_intervals_to_string): No longer inline.
4920 * xdisp.c (window_text_bottom_y, window_box_width)
4921 (window_box_height, window_box_left_offset)
4922 (window_box_right_offset, window_box_left, window_box_right)
4923 (window_box): No longer inline.
4924
105216ed
CY
49252011-11-08 Chong Yidong <cyd@gnu.org>
4926
4927 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
6d5eb5b0
SM
4928 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
4929 Signal an error if not a live window.
105216ed
CY
4930 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
4931 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
4932
ae9e237f
JB
49332011-11-07 Juanma Barranquero <lekktu@gmail.com>
4934
4935 * lisp.h (syms_of_abbrev): Remove declaration.
4936 Reported by CHENG Gao <chenggao@royau.me>.
4937
c7aa8333
EZ
49382011-11-07 Eli Zaretskii <eliz@gnu.org>
4939
4940 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
4941 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
4942 of temacs in GUI mode.
4943
be7f5545
MR
49442011-11-07 Martin Rudalics <rudalics@gmx.at>
4945
4946 * window.h: Declare delete_all_child_windows instead of
4947 delete_all_subwindows.
4948 * window.c (Fwindow_nest, Fset_window_nest)
4949 (Fset_window_new_total, Fset_window_new_normal)
4950 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
4951 (delete_all_subwindows): Rename to delete_all_child_windows.
4952 (Fdelete_other_windows_internal, Fset_window_configuration):
4953 Call delete_all_child_windows instead of delete_all_subwindows.
4954 * frame.c (delete_frame): Call delete_all_child_windows instead
4955 of delete_all_subwindows.
4956
ca78dc43
PE
49572011-11-07 Paul Eggert <eggert@cs.ucla.edu>
4958
4959 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
4960 This is also needed for porting to any host where GC_MARK_STACK is
4961 not GC_MAKE_GCPROS_NOOPS.
4962 (which_symbols): Use it.
4963
a0241d01
KH
49642011-11-07 Kenichi Handa <handa@m17n.org>
4965
4966 * coding.c (coding_set_destination): Check coding->src_pos only
4967 when coding->src_object is a buffer (bug#9910).
4968
4969 * process.c (send_process): Set the member src_multibyte of coding
4970 to 0 (bug#9911) when sending a unibyte text.
4971
4972 * callproc.c (Fcall_process): Set the member src_multibyte of
4973 process_coding to 0 (bug#9912).
4974
a64bfdfa 49752011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
ba24cea2
YM
4976
4977 * xmenu.c (cleanup_widget_value_tree): New function.
4978 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
4979 calling free_menubar_widget_value_tree directly (Bug#9830).
4980
cb41b32a
PE
49812011-11-06 Paul Eggert <eggert@cs.ucla.edu>
4982
4983 Fix some portability problems with 'inline'.
4984 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
4985 (window_box_width, window_box_left, window_box_left_offset)
4986 (window_box_right, window_box_right_offset): Declare extern.
4987 Otherwise, these inline functions do not conform to C99 and
4988 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
4989 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
4990 * intervals.c (adjust_intervals_for_insertion)
4991 (adjust_intervals_for_deletion): Now extern, because otherwise the
4992 extern inline functions 'offset_intervals' couldn't refer to it.
4993 (static_offset_intervals): Remove.
4994 (offset_intervals): Rewrite using the old contents of
4995 static_offset_intervals. The old version didn't conform to C99
4996 because an extern inline function contained a reference to an
4997 identifier with static linkage.
4998
b7041366
AS
49992011-11-06 Andreas Schwab <schwab@linux-m68k.org>
5000
5001 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
5002 GC.
5003
88a37c4d
EZ
50042011-11-06 Eli Zaretskii <eliz@gnu.org>
5005
5006 * xdisp.c (init_iterator, reseat_to_string): Don't set the
5007 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
5008 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
5009 return Qleft_to_right.
5010
49745b39
CY
50112011-11-06 Chong Yidong <cyd@gnu.org>
5012
5013 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
5014 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
5015 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
5016 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
5017 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
5018 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
5019 (Fwindow_vscroll): Doc fix.
5020 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
5021 argument, since it makes no sense to pass a live window and for
5022 consistency with window-child.
5023
1f05cd82
CS
50242011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
5025
5026 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
5027 support MSVC.
5028
22610910
JR
50292011-11-05 Jason Rumney <jasonr@gnu.org>
5030
5031 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
5032 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
5033 fonts (Bug#6029).
5034 (add_font_entity_to_list): Fix logic errors in mixed boolean and
5035 bitwise arithmetic preventing use of unicode-sip and non-truetype
5036 opentype fonts.
5037
a06776b2
EZ
50382011-11-05 Eli Zaretskii <eliz@gnu.org>
5039
3ad924ba
EZ
5040 * s/ms-w32.h (fstat, stat, utime): Move redirections to
5041 "emacs"-only part.
5042
a06776b2
EZ
5043 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
5044 initialization code to keep similarity to xfns.c after changes
5045 from 2011-11-05.
5046
c9e7db78
JD
50472011-11-05 Jan Djärv <jan.h.d@swipnet.se>
5048
a97f8f3f
JD
5049 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
5050 (unwind_create_frame): New function (Bug#9943).
5051 (Fx_create_frame): Restructure code to be more similar to the one in
5052 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
5053 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
5054 Move terminal->reference_count++ just before making the frame official
5055 (Bug#9943).
5056
5057 * nsterm.m (x_free_frame_resources): New function.
5058 (x_destroy_window): Move code to x_free_frame_resources.
5059
c9e7db78 5060 * xfns.c (unwind_create_frame): Fix comment.
6d5eb5b0
SM
5061 (Fx_create_frame, x_create_tip_frame):
5062 Move terminal->reference_count++ just before making the frame
75f1671a 5063 official. Move initialization of image_cache_refcount and
c9e7db78
JD
5064 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
5065
a6fc3b5c
EZ
50662011-11-05 Eli Zaretskii <eliz@gnu.org>
5067
5068 Support MSVC build with newer versions of Visual Studio.
5069 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
5070 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
5071 nt/gmake.defs.
5072
5073 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
5074 which are not supported by MSVC.
5075 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
5076 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
5077 bitfields.
5078 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
5079 types in bitfields.
5080 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
5081
5082 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
5083
58179cce 50842011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
a6fc3b5c
EZ
5085
5086 Support MSVC build with newer versions of Visual Studio.
5087 * w32.c: Don't include w32api.h for MSVC.
5088 (init_environment) [_MSC_VER]: Call sys_access, not _access.
5089
5090 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
5091 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
5092 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
5093 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
5094 e_* cousins.
5095 (alloca) [_MSC_VER]: Define to _alloca.
5096
5097 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
5098
5099 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
5100
a58c13ed
EZ
51012011-11-04 Eli Zaretskii <eliz@gnu.org>
5102
5103 * xdisp.c (note_mouse_highlight): If either of
5104 previous/next-single-property-change returns nil, treat that as
5105 the beginning or the end of the buffer. (Bug#9955)
5106
fe0b6370
JD
51072011-11-04 Jan Djärv <jan.h.d@swipnet.se>
5108
a58c13ed 5109 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
fe0b6370
JD
5110 label is not null (Bug#9951).
5111 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
5112 may be NULL.
5113
89bd5ee1
EZ
51142011-11-04 Eli Zaretskii <eliz@gnu.org>
5115
5116 * window.c (Fwindow_body_size): Mention in the doc string that the
5117 return value is in frame's canonical units. (Bug#9949)
5118
84c3edb9
EZ
51192011-11-03 Eli Zaretskii <eliz@gnu.org>
5120
4e2fb5c7
EZ
5121 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
5122
84c3edb9 5123 * w32fns.c (unwind_create_frame): If needed, free the glyph
3ab15fd6 5124 matrices of the partially constructed frame. (Bug#9943)
2a58bbc1 5125 * xfns.c (unwind_create_frame): Likewise.
84c3edb9 5126
bc17a887
EZ
51272011-11-01 Eli Zaretskii <eliz@gnu.org>
5128
5129 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
5130 Don't stop backward scan on the continuation glyph, even though
5131 its CHARPOS is positive.
6d5eb5b0
SM
5132 (mouse_face_from_buffer_pos, note_mouse_highlight):
5133 Rename cover_string to disp_string.
bc17a887 5134
4ee88440
MR
51352011-11-01 Martin Rudalics <rudalics@gmx.at>
5136
5137 * window.c (temp_output_buffer_show): Don't use
5138 Vtemp_buffer_show_specifiers.
5139 (Vtemp_buffer_show_specifiers): Remove unused variable.
5140
c2ff3c02
EZ
51412011-10-30 Eli Zaretskii <eliz@gnu.org>
5142
5143 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
5144 past the beginning of the current glyph matrix.
5145
58179cce 51462011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
6e56383b
JD
5147
5148 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
5149 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
5150 HAVE_GTK3 (Bug#9869).
b77a6a7f 5151
3b574623
JD
5152 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
5153 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
5154
b77a6a7f
JD
5155 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
5156
5157 * xterm.c: Declare x_handle_net_wm_state to return int.
5158 (handle_one_xevent): Check if we are iconified but don't have
5159 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
5160 (get_current_wm_state): Return non-zero if not hidden,
5161 check for _NET_WM_STATE_HIDDEN (Bug#9893).
5162 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
5163 (x_handle_net_wm_state): Return what get_current_wm_state returns.
5164 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
5165
196e41e4
PE
51662011-10-29 Paul Eggert <eggert@cs.ucla.edu>
5167
5168 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
5169 so that this new function doesn't get optimized away by a
5170 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
5171
021f2e1a
AS
51722011-10-29 Andreas Schwab <schwab@linux-m68k.org>
5173
5174 * frame.h (MOUSE_HL_INFO): Remove excess parens.
5175
8b058d44
EZ
51762011-10-29 Eli Zaretskii <eliz@gnu.org>
5177
5178 Fix the `xbytecode' command.
5179 * .gdbinit (xprintbytestr): New command.
b50a28de 5180 (xwhichsymbols): Rename from `which'; all callers changed.
8b058d44
EZ
5181 (xbytecode): Print the byte-code string as well.
5182
4452fb80
EZ
51832011-10-29 Kim Storm <storm@cua.dk>
5184
8b058d44
EZ
5185 * alloc.c (which_symbols): New function.
5186
21b72067
AS
51872011-10-29 Andreas Schwab <schwab@linux-m68k.org>
5188
5189 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
5190 line. (Bug#9903)
5191
83ed7b5c
GM
51922011-10-29 Glenn Morris <rgm@gnu.org>
5193
5194 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
5195 Not clear what it was for, and it causes various bugs. (Bug#9839)
5196
5a7a728b
EZ
51972011-10-28 Eli Zaretskii <eliz@gnu.org>
5198
5199 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
5200 possible random value that matches one of those tested as
5201 condition to clear the mouse face.
5202
d3d0842f
CY
52032011-10-28 Chong Yidong <cyd@gnu.org>
5204
5205 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
5206
31b39d13
DN
52072011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
5208
5209 * window.c (make_window): Initialize phys_cursor_on_p.
5210
9aba6043
SM
52112011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
5212
5213 * lisp.h (struct Lisp_Symbol): Update comments.
5214
c20992f4
JB
52152011-10-28 Juanma Barranquero <lekktu@gmail.com>
5216
5217 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
5218
db4f02f2
EZ
52192011-10-28 Eli Zaretskii <eliz@gnu.org>
5220
5221 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
5222 <oslsachem@gmail.com> for helping to debug this.
5223
5224 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
5225 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
5226 (g_b_init_get_glyph_outline_w): New static variables.
5227 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
5228 (GetGlyphOutlineW_Proc): New typedefs.
5229 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
9aba6043
SM
5230 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
5231 New functions.
5232 (w32font_open_internal, compute_metrics):
5233 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
db4f02f2
EZ
5234 instead of calling the "wide" APIs directly.
5235
5236 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
5237
5238 * w32.h (syms_of_w32font): Add prototype.
5239
87e68db4
JB
52402011-10-27 Juanma Barranquero <lekktu@gmail.com>
5241
5242 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
5243 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
5244 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
5245 (Fmove_to_window_line): Doc fix.
5246
435c1d67
CY
52472011-10-27 Chong Yidong <cyd@gnu.org>
5248
5249 * process.c (make_process): Set gnutls_state to NULL.
5250
5251 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
5252 non-NULL, regardless of GNUTLS_INITSTAGE.
5253 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
5254 an error. Set process slots as soon as we allocate them.
5255
5256 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
5257
9c6c6f49
CY
52582011-10-27 Chong Yidong <cyd@gnu.org>
5259
9aba6043
SM
5260 * gnutls.c (emacs_gnutls_deinit): New function.
5261 Deallocate credentials structures as well as calling gnutls_deinit.
9c6c6f49
CY
5262 (Fgnutls_deinit, Fgnutls_boot): Use it.
5263
5264 * process.c (make_process): Initialize GnuTLS credentials to NULL.
5265 (deactivate_process): Call emacs_gnutls_deinit.
5266
657d08d3
JB
52672011-10-27 Juanma Barranquero <lekktu@gmail.com>
5268
5269 * image.c (x_create_x_image_and_pixmap):
5270 * w32.c (sys_rename, w32_delayed_load):
5271 * w32font.c (fill_in_logfont):
5272 * w32reg.c (x_get_string_resource): Silence compiler warnings.
5273
5430d399
JB
52742011-10-26 Juanma Barranquero <lekktu@gmail.com>
5275
5276 * w32fns.c (w32_default_color_map): New function,
5277 extracted from Fw32_default_color_map.
a7ef684b 5278 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
5430d399 5279
fe0055fa
PE
52802011-10-25 Paul Eggert <eggert@cs.ucla.edu>
5281
5282 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
5283
e6346438
SM
52842011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
5285
5286 * keyboard.c (test_undefined): New function (bug#9751).
5287 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
5288
e112cc37
ET
52892011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
5290
5291 * sysdep.c (init_sys_modes): Fix the check for the controlling
5292 terminal (Bug#6649).
5293
7b5d6677
EZ
52942011-10-20 Eli Zaretskii <eliz@gnu.org>
5295
5296 * dispextern.h (struct bidi_it): New member next_en_type.
5297
5298 * bidi.c (bidi_line_init): Initialize the next_en_type member.
5299 (bidi_resolve_explicit_1): When next_en_pos is valid for the
5300 current character, check also for next_en_type being WEAK_EN.
5301 (bidi_resolve_weak): Don't enter the expensive loop if the current
5302 position is before next_en_pos. Record the bidi type of the first
5303 non-ET, non-BN character we find, in addition to its position.
5304 (bidi_level_of_next_char): Invalidate next_en_type when
5305 next_en_pos is over-stepped.
5306
7da0b018
PE
53072011-10-20 Paul Eggert <eggert@cs.ucla.edu>
5308
5309 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
5310 * editfns.c: Rewrite current-time-zone so that it invokes
5311 the equivalent of (format-time-string "%Z") to get the time zone name.
5312 This fixes a bug when the time zone name contains characters that
5313 need converting from the system time locale to Emacs internal format.
5314 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
5315 that patch fixed format-time-string to do the conversion, but
5316 I forgot to fix current-time-zone.
5317 (format_time_string): New function, containing most of
5318 what Fformat_time_string used to contain.
5319 (Fformat_time_string): Rewrite in terms of format_time_string.
5320 This doesn't change this function's behavior.
5321 (current-time-zone): Rewrite to use format_time_string.
5322 This fixes the bug reported by Michael Schierl in
5323 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
5324 Jason Rumney's 2007-06-07 change worked around this bug, but
5325 didn't fix it.
5326 * systime.h (tzname, timezone): Remove no-longer-used declarations.
5327
8547b010
EZ
53282011-10-19 Eli Zaretskii <eliz@gnu.org>
5329
5330 * xdisp.c (start_display): If the character at POS is displayed
5331 via a display vector, reset IT->current.dpvec_index to zero.
12b32963
EZ
5332 (try_window_reusing_current_matrix): If a line ends in a display
5333 vector or the next line starts in a display vector, continue
5334 redrawing the window even though the character position of
5335 start_row was reached.
8547b010
EZ
5336 (Bug#9771, part 2)
5337
4e948d15
CY
53382011-10-18 Chong Yidong <cyd@gnu.org>
5339
5340 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
5341 with nobreak-char-display too.
5342
4787455f
EZ
53432011-10-18 Eli Zaretskii <eliz@gnu.org>
5344
5345 Fix part 3 of bug#9771.
5346 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
5347 (bidi_resolve_neutral): Don't enter the expensive loop looking for
5348 non-neutral characters if the current character is a paragraph
5349 separator (a.k.a. Newline). This avoids running the same
5350 expensive loop twice, once when we consume the preceding newline
5351 and the other time when the line actually needs to be displayed.
5352 Avoid the loop when we see neutrals on the base embedding level
5353 following a character whose directionality is the same as the
5354 paragraph's. This avoids running the expensive loop when a line
5355 ends in a long sequence of neutrals, like control characters.
5356 Add assertion against STRONG_AL type. Slightly rearrange code
5357 that determines the type of a neutral given the first non-neutral
5358 that follows it.
5359 (bidi_level_of_next_char): Set next_en_pos to zero when
5360 invalidating its info.
5361
2c91f553
EZ
53622011-10-17 Eli Zaretskii <eliz@gnu.org>
5363
5364 * xdisp.c (push_display_prop): Determine whether to record string
5365 or buffer position by IT->string, not by IT->method. Allow
5366 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
f2ff9e88
EZ
5367 (move_it_vertically_backward): Don't look for character position
5368 immediately after the newline when in a continuation line.
5369 (Bug#9771, part 1)
2c91f553 5370
c7b08b0d
MR
53712011-10-15 Martin Rudalics <rudalics@gmx.at>
5372
5373 * window.c (coordinates_in_window): Rewrite and delabelize
5374 vertical border check. (Bug#5357) (Bug#9618)
5375
6b02f655
SM
53762011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
5377
5378 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
5379 errors in XSetWindowBorder (bug#9310).
5380
81d40c92
DA
53812011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
5382
5383 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
5384 avoid crash when xmalloc overrun checking is enabled.
5385
d4172c3b
EZ
53862011-10-13 Eli Zaretskii <eliz@gnu.org>
5387
5388 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
5389 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
5390 cursor motion with <left> and <right> arrow keys.
5391
5392 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
5393 some callers set that themselves.
5394
b00eea75
EZ
53952011-10-12 Eli Zaretskii <eliz@gnu.org>
5396
5397 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
5398 display string and the previous row comes from the same string and
5399 is empty. (Bug#9739) (Bug#9738)
5400
8fe012c4
SM
54012011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
5402
5403 * doc.c (get_doc_string): Encode file name (bug#9735).
5404
0074aef2
EZ
54052011-10-12 Eli Zaretskii <eliz@gnu.org>
5406
79beb178
EZ
5407 * bidi.c (bidi_level_of_next_char):
5408 * xdisp.c (get_visually_first_element): Remove old incorrect
5409 comments regarding the Unicode Line Separator character.
5410
0074aef2
EZ
5411 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
5412
6e4b3fbe
DA
54132011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
5414
5415 * alloc.c (Fgc_status): Do not access beyond zombies array
5416 boundary if nzombies > MAX_ZOMBIES.
5417 * alloc.c (dump_zombies): Add missing format specifier.
5418
0324f3af
PE
54192011-10-12 Paul Eggert <eggert@cs.ucla.edu>
5420
b5525cac
PE
5421 * xdisp.c (set_cursor_from_row): Simplify conditionals,
5422 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
5423
0324f3af
PE
5424 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
5425 Some packages use them to denote characters with modifiers.
5426
e9b5f888
AS
54272011-10-11 Andreas Schwab <schwab@linux-m68k.org>
5428
5429 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
5430 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
5431 matching a pp-number. Rename parameter var to var1.
5432
127827c0
SM
54332011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
5434
5435 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
5436
c8fd3bd0
GM
54372011-10-08 Glenn Morris <rgm@gnu.org>
5438
5439 * callint.c (Fcall_interactively): Give a more explicit error for the
5440 'c' case with a non-character input. (Bug#8479)
5441
352ec8ff
EZ
54422011-10-08 Eli Zaretskii <eliz@gnu.org>
5443
03669ccb
EZ
5444 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
5445 lines.
7061c986
EZ
5446 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
5447 lines that are hscrolled on the left.
03669ccb 5448
352ec8ff
EZ
5449 * dispnew.c (buffer_posn_from_coords): Account for a possible
5450 presence of header-line. (Bug#4426)
5451
a66cfb1c
SM
54522011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
5453
6b02f655
SM
5454 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
5455 Don't advertise functionality which we discourage or doesn't work.
a66cfb1c 5456
7c5ee88e
PE
54572011-10-07 Paul Eggert <eggert@cs.ucla.edu>
5458
5459 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
5460 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
5461 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
5462 this makes Emacs dump core during garbage collection on rare
5463 occasions. sizeof is obviously inferior to offsetof here, so
5464 stick with offsetof.
5465 (GC_POINTER_ALIGNMENT): New macro.
5466 (mark_memory): Omit 3rd (offset) arg; caller changed.
5467 Don't assume EMACS_INT alignment is the same as pointer alignment.
5468
df1bbe5b
SM
54692011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
5470
5471 * keyboard.c (read_key_sequence_remapped): New var.
5472 (read_key_sequence): Compute remapping in the right buffer.
5473 (command_loop_1): Use read_key_sequence's remapping directly.
5474
51553db6
SM
54752011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
5476
32c1fffd
SM
5477 * dired.c (file_name_completion): Don't expand file name.
5478 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
5479 before checking file name handler.
5480
51553db6
SM
5481 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
5482 they've been requested explicitly (bug#9591).
5483
b6bd1599 54842011-10-01 Andreas Schwab <schwab@linux-m68k.org>
fa2ec41f
AS
5485
5486 * keymap.c (Fsingle_key_description): Use make_specified_string
5487 instead of build_string to build string from push_key_description.
5488 (Bug#5193)
5489
f701dc2a
PE
54902011-09-30 Paul Eggert <eggert@cs.ucla.edu>
5491
4222c55d
PE
5492 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
5493 This fixes a Y2038 bug on 64-bit hosts.
5494 * buffer.c (reset_buffer):
5495 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
5496 (Fclear_buffer_auto_save_failure):
5497 Use 0, not -1, to represent an unset failure time, since time_t
5498 might not be signed.
5499
f701dc2a
PE
5500 Remove dependency on glibc malloc internals.
5501 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
5502 Move back here from lisp.h, but with their new implementations.
5503 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
5504 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
5505 * charset.c (charset_table_init): New static var.
5506 (syms_of_charset): Use it instead of xmalloc. This removes a
5507 dependency on glibc malloc internals. See Eli Zaretskii's comment in
5508 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
5509 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
5510 Move back to alloc.c.
5511 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
5512 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
5513
9ceebf39
JD
55142011-09-30 Jan Djärv <jan.h.d@swipnet.se>
5515
5516 * nsterm.m (windowDidResize): Call x_set_window_size only when
5517 ns_in_resize is true. Otherwise set pixelwidth/height and
5518 call change_frame_size (Bug#9628).
5519
cb993c58
PE
55202011-09-30 Paul Eggert <eggert@cs.ucla.edu>
5521
3930c88b
PE
5522 Port --enable-checking=all to Fedora 14 x86-64.
5523 * charset.c (syms_of_charset): Also account for glibc malloc's
5524 internal overhead when calculating the initial malloc maximum.
5525
cb993c58
PE
5526 Port --enable-checking=all to Fedora 14 x86.
5527 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
5528 Move to lisp.h.
5529 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
5530 (overrun_check_realloc, overrun_check_free):
5531 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
5532 That way, xmalloc returns a properly-aligned pointer even if
5533 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
5534 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
5535 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
5536 into account when calculating the initial malloc maximum.
5537 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
5538 Move here from alloc.c, so that charset.c can use it too.
5539 Properly align; the old code wasn't right for common 32-bit hosts
5540 when configured with --enable-checking=all.
5541 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
5542 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
5543
31bed486
EZ
55442011-09-29 Eli Zaretskii <eliz@gnu.org>
5545
04c70788 5546 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
31bed486
EZ
5547 use EDOM.
5548
fbcaa2f3
EZ
55492011-09-28 Eli Zaretskii <eliz@gnu.org>
5550
5551 * xdisp.c (compute_display_string_end): If there's no display
5552 string at CHARPOS, return -1.
5553
5554 * bidi.c (bidi_fetch_char): When compute_display_string_end
5555 returns a negative value, treat the character as a normal
5556 character not covered by a display string. (Bug#9624)
5557
a239d4e9
JB
55582011-09-28 Juanma Barranquero <lekktu@gmail.com>
5559
5560 * lread.c (Fread_from_string): Fix typo in docstring.
5561
88652fd5
EZ
55622011-09-27 Eli Zaretskii <eliz@gnu.org>
5563
5564 * xdisp.c (handle_invisible_prop): If invisible text ends on a
5565 newline, reseat the iterator instead of bidi-iterating there one
5566 character at a time. (Bug#9610)
32c1fffd
SM
5567 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
5568 TO_CHARPOS if the bidi iterator is at base embedding level.
88652fd5 5569
ed497dd4
AS
55702011-09-27 Andreas Schwab <schwab@linux-m68k.org>
5571
5572 * lread.c (readevalloop): Use correct code for NBSP.
5573 (read1): Likewise. (Bug#9608)
5574
b2bf61aa
MA
55752011-09-25 Michael Albinus <michael.albinus@gmx.de>
5576
5577 * dbusbind.c (Fdbus_register_signal): When service is not
5578 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
5579
32bbb17c
GM
55802011-09-25 Glenn Morris <rgm@gnu.org>
5581
5582 * buffer.c (truncate-lines): Doc fix.
5583
94e0933e
CY
55842011-09-24 Chong Yidong <cyd@stupidchicken.com>
5585
5586 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
5587 (Fset_window_next_buffers): Doc fix.
5588
cddde921
GM
55892011-09-24 Glenn Morris <rgm@gnu.org>
5590
5591 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
5592
1260aef1
PE
55932011-09-24 Paul Eggert <eggert@cs.ucla.edu>
5594
25b4bfa0
PE
5595 Fix minor problems found by static checking.
5596 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
1260aef1
PE
5597 * indent.c (Fvertical_motion): Fix == vs = typo.
5598
e3cbd34b
EZ
55992011-09-24 Eli Zaretskii <eliz@gnu.org>
5600
a66cfb1c
SM
5601 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
5602 Default value is now t. Doc fix.
6bf7006f 5603
e3cbd34b 5604 * indent.c (Fvertical_motion): Compute and apply the overshoot
32c1fffd 5605 logic when moving up, not only when moving down. Fix the
e3cbd34b 5606 confusing name and values of the it_overshoot_expected variable;
32c1fffd 5607 logic changes accordingly. (Bug#9254) (Bug#9549)
e3cbd34b
EZ
5608
5609 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
5610 CHARPOS is covered by a display string which includes newlines.
5611 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
5612 is covered by a display string with embedded newlines.
5613
a3de0cbd
MA
56142011-09-24 Michael Albinus <michael.albinus@gmx.de>
5615
5616 * dbusbind.c (Fdbus_register_signal): Add match rule to
5617 Vdbus_registered_objects_table. (Bug#9581)
a66cfb1c
SM
5618 (Fdbus_register_method, Vdbus_registered_objects_table):
5619 Fix docstring.
a3de0cbd 5620
b260039d
JM
56212011-09-24 Jim Meyering <meyering@redhat.com>
5622
32c1fffd 5623 do not ignore write error for any output size
b260039d
JM
5624 The previous change was incomplete.
5625 While it makes emacs --batch detect the vast majority of stdout
5626 write failures, errors were still ignored whenever the output size is
5627 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
5628 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
5629 && echo FAIL: ignored write error
5630 FAIL: ignored write error
5631 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
5632 && echo FAIL: ignored write error
5633 FAIL: ignored write error
5634 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
5635
8eca8a7c
AS
56362011-09-23 Andreas Schwab <schwab@linux-m68k.org>
5637
5638 * emacs.c (Fkill_emacs): In noninteractive mode exit
5639 non-successfully if a write error occurred on stdout. (Bug#9574)
5640
3341db62
EZ
56412011-09-21 Eli Zaretskii <eliz@gnu.org>
5642
5643 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
5644 the xassert test.
5645
5646 * dispextern.h (struct it): Update the comment documenting what
5647 can it->OBJECT be.
5648
8c203dbf
EZ
56492011-09-20 Eli Zaretskii <eliz@gnu.org>
5650
5651 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
5652 a display string, extend search for cursor position to end of row.
5653 (find_row_edges): If the row ends in a newline from a display
5654 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
5655 Handle the case of a display string with multiple newlines.
fd317ddf
EZ
5656 (Fcurrent_bidi_paragraph_direction): Fix search for previous
5657 non-empty line. Fixes confusing cursor motion with arrow keys at
5658 the beginning of a line that starts with whitespace.
8c203dbf 5659
a4824228
LMI
56602011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
5661
5662 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
5663 (bug#9493).
5664
33ed493b
CY
56652011-09-18 Chong Yidong <cyd@stupidchicken.com>
5666
5667 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
5668 boolean (Bug#9154).
5669
56cd55c8
EZ
56702011-09-18 Eli Zaretskii <eliz@gnu.org>
5671
5672 * xdisp.c (display_line): Record maximum and minimum buffer
5673 positions even if no glyphs were produced (e.g., by a zero-width
5674 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
5675 buffer positions that will be removed from the glyph row because
5676 they don't fit.
c02dcedf
EZ
5677 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
5678 column is beyond frame width: don't subtract 1 "pixel" when
5679 computing width of the stretch.
3e62b7e0
EZ
5680 (reseat_at_next_visible_line_start): Undo the change made on
5681 2011-09-17 that saved paragraph information and restored it after
5682 the call to `reseat'. (Bug#9545)
56cd55c8 5683
5ed99d36 56842011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3390454c
YM
5685
5686 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
5687 and turn window cursor on if cleared (Bug#9415).
5688
5ed99d36 56892011-09-18 Andreas Schwab <schwab@linux-m68k.org>
edb7b4dc
AS
5690
5691 * search.c (boyer_moore): Take unibyte characters from pattern
5692 literally. (Bug#9458)
5693
9bade7b2
EZ
56942011-09-18 Eli Zaretskii <eliz@gnu.org>
5695
5696 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
5697
e5e9d610
PE
56982011-09-18 Paul Eggert <eggert@cs.ucla.edu>
5699
87e4427a
PE
5700 Fix minor problem found by static checking.
5701 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
5702 initialized, to pacify gcc -Wuninitialized.
5703
e5e9d610
PE
5704 * fileio.c: Report proper errno when syscall falls.
5705 (Finsert_file_contents): Save and restore errno,
5706 so that report_file_error outputs the correct diagnostic.
5707 (Fwrite_region) [CLASH_DETECTION]: Likewise.
5708
a1674f0b
EZ
57092011-09-18 Eli Zaretskii <eliz@gnu.org>
5710
5711 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
5712
fbfb6dd4
EZ
57132011-09-17 Eli Zaretskii <eliz@gnu.org>
5714
5715 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
5716 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
5717
bb187662
EZ
57182011-09-17 Eli Zaretskii <eliz@gnu.org>
5719
1137e8b8 5720 * xdisp.c (reseat_at_next_visible_line_start): Keep information
6b02f655 5721 about the current paragraph and restore it after the call to reseat.
1137e8b8
EZ
5722
5723 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
5724 (bidi_find_paragraph_start): Search back for paragraph beginning
5725 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
5726 (bidi_move_to_visually_next): Only trigger paragraph-related
5727 computations when the last character is a newline or at EOB, not
5728 just any NEUTRAL_B. (Bug#9470)
5729
bb187662
EZ
5730 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
5731 truncated lines if point is covered by a display string. (Bug#9524)
5732
2e621251
PE
57332011-09-16 Paul Eggert <eggert@cs.ucla.edu>
5734
5735 * xselect.c: Relax test for outgoing X longs (Bug#9498).
5736 (cons_to_x_long): New function.
5737 (lisp_data_to_selection_data): Use it. Correct the test for
5738 short-versus-long data; it was negated. Break out of vector
5739 loop, for efficiency, when a long datum is discovered.
5740
91a15bc6
SM
57412011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
5742
5743 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
5744
b41c3a35
EZ
57452011-09-16 Eli Zaretskii <eliz@gnu.org>
5746
5747 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
5748 GCC PR/17406) by declaring this function with external scope.
5749
7812ba2d
PE
57502011-09-15 Paul Eggert <eggert@cs.ucla.edu>
5751
5752 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
5753 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
5754
cf7edc2a
AS
57552011-09-15 Andreas Schwab <schwab@linux-m68k.org>
5756
5757 * editfns.c (Fformat): Correctly handle text properties on "%%".
5758
bd01620e
EZ
57592011-09-15 Eli Zaretskii <eliz@gnu.org>
5760
5761 * xterm.c (x_draw_composite_glyph_string_foreground):
5762 * w32term.c (x_draw_composite_glyph_string_foreground):
5763 * term.c (encode_terminal_code):
5764 * composite.c (composition_update_it, get_composition_id):
5765 * xdisp.c (get_next_display_element)
5766 (fill_composite_glyph_string): Add comments about special meaning
5767 of TAB characters in a composition.
5768
a02719a3
PE
57692011-09-15 Paul Eggert <eggert@cs.ucla.edu>
5770
5771 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
4c122725
PE
5772 This occurs when processing a multibyte format.
5773 Problem reported by Wolfgang Jenker.
a02719a3 5774
72589a3c
JB
57752011-09-15 Johan Bockgård <bojohan@gnu.org>
5776
5777 * xdisp.c (try_cursor_movement): Only check for exact match if
5778 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
5779
1c14176c
PE
57802011-09-14 Paul Eggert <eggert@cs.ucla.edu>
5781
5782 Remove unused external symbols.
5783 * dispextern.h (calc_pixel_width_or_height): Remove decl.
5784 * xdisp.c (calc_pixel_width_or_height): Now static.
5785 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
5786 * indent.c (check_display_width):
5787 * w32term.c: Fix comment to match code.
5788 * xterm.c, xterm.h (x_catching_errors): Remove.
5789
d2eea5b5
PE
57902011-09-14 Paul Eggert <eggert@cs.ucla.edu>
5791
5792 * xselect.c: Use signed conversions more consistently (Bug#9498).
5793 (selection_data_to_lisp_data): Assume incoming selection data are
5794 signed integers, not unsigned. This is to be consistent with
5795 outgoing selection data, which was modified to use signed integers
5796 in as part of the fix to Bug#9196 in response to Jan D.'s comment
5797 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
5798 expects long, not unsigned long.
5799
46888499
EZ
58002011-09-14 Eli Zaretskii <eliz@gnu.org>
5801
5802 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
5803 computation of loop end. Reported by Johan Bockgård
5804 <bojohan@gnu.org>.
5805
ef8ef9fb
CY
58062011-09-13 Chong Yidong <cyd@stupidchicken.com>
5807
5808 * frame.c (Fother_visible_frames_p): Function deleted.
5809
fa819fed
EZ
58102011-09-12 Eli Zaretskii <eliz@gnu.org>
5811
5812 * indent.c (compute_motion): Process display vector front to back
5813 rather than the other way around. (Bug#2496)
5814
2ba8e008
SM
58152011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
5816
5817 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
5818
20f53c69
CY
58192011-09-11 Chong Yidong <cyd@stupidchicken.com>
5820
5821 * minibuf.c (Fread_from_minibuffer): Doc fix.
5822
d562d7a4
EZ
58232011-09-11 Eli Zaretskii <eliz@gnu.org>
5824
5825 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
5826 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
5827
1c4d7f3d
LMI
58282011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
5829
5830 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
5831 value for non-existent files.
5832
b885bf36
EZ
58332011-09-11 Eli Zaretskii <eliz@gnu.org>
5834
5835 * fileio.c (Finsert_file_contents): If the file cannot be opened,
5836 set its "size" to -1. This will set the modtime_size field of
5837 the corresponding buffer to -1, which is what
5838 verify-visited-file-modtime expects for files that do not exist.
5839 (Bug#9139)
5840
6612f0bf
PE
58412011-09-11 Paul Eggert <eggert@cs.ucla.edu>
5842
5843 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
5844 here ...
5845 * lisp.h: ... from here. push_key_description is no longer
5846 defined in keyboard.c, so its declaration should not be in
5847 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
5848 logically belongs with push_key_description.
5849
dfb3f755
PE
58502011-09-10 Paul Eggert <eggert@cs.ucla.edu>
5851
5852 * buffer.h: Include <sys/types.h> instead of <time.h>.
5853 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
5854 Problem reported by Herbert J. Skuhra.
5855
3134906c
LMI
58562011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
5857
5858 * xml.c (parse_region): Make the parsing work for
5859 non-comment-starting XML files again (bug#9144).
5860
8d903f4e
AS
58612011-09-10 Andreas Schwab <schwab@linux-m68k.org>
5862
5863 * image.c (gif_load): Fix calculation of bottom and right corner.
5864 (Bug#9468)
5865
80ad64f4
EZ
58662011-09-10 Eli Zaretskii <eliz@gnu.org>
5867
5868 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
5869 redisplay in small windows.
5870
208a048d
EZ
58712011-09-09 Eli Zaretskii <eliz@gnu.org>
5872
5873 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
5874
9b1c252e
MR
58752011-09-08 Martin Rudalics <rudalics@gmx.at>
5876
5877 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
5878 Operate on live windows only.
5879
2949f33b
JB
58802011-09-08 Juanma Barranquero <lekktu@gmail.com>
5881
5882 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
5883
e08dcafd
EZ
58842011-09-07 Eli Zaretskii <eliz@gnu.org>
5885
5886 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
5887 only under bidi iteration.
5888
115b96bd
JD
58892011-09-07 Jan Djärv <jan.h.d@swipnet.se>
5890
5891 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
5892
c8199d0f
PE
58932011-09-06 Paul Eggert <eggert@cs.ucla.edu>
5894
5895 isnan: Fix porting problem to Solaris 10 with bundled gcc.
5896 Without this fix, the command to link temacs failed due to an
5897 undefined symbol __builtin_isnan. This is because
5898 /usr/include/iso/math_c99.h #defines isnan(x) to
5899 __builtin_isnan(x), but the bundled gcc, which identifies itself
5900 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
5901 a __builtin_isnan.
5902 * floatfns.c (isnan): #undef, and then #define to a clone of
5903 what's in data.c.
5904 (Fisnan): Always define, since it's always available now.
5905 (syms_of_floatfns): Always define isnan at the Lisp level.
5906
e39b275c 59072011-09-06 Paul Eggert <eggert@cs.ucla.edu>
1c262cae
PE
5908
5909 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
5910
b2db44d9 59112011-09-06 Paul Eggert <eggert@cs.ucla.edu>
728f8f0a 5912
f4af5137 5913 * fileio.c: Fix bugs with large file offsets (Bug#9428).
728f8f0a
PE
5914 The previous code assumed that file offsets (off_t values) fit in
5915 EMACS_INT variables, which is not true on typical 32-bit hosts.
5916 The code messed up by falsely reporting buffer overflow in cases
5917 such as (insert-file-contents "big" nil 1 2) into an empty buffer
5918 when "big" contains more than 2**29 bytes, even though this
5919 inserts just one byte and does not overflow the buffer.
5920 (Finsert_file_contents): Store file offsets as off_t
5921 values, not as EMACS_INT values. Check for overflow when
5922 converting between EMACS_INT and off_t. When checking for
5923 buffer overflow or for overlap, take the offsets into account.
5924 Don't use EMACS_INT for small values where int suffices.
5925 When checking for overlap, fix a typo: ZV was used where
5926 ZV_BYTE was intended.
5927 (Fwrite_region): Don't assume off_t fits into 'long'.
5928 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
5929
ecfc0a49
MA
59302011-09-05 Michael Albinus <michael.albinus@gmx.de>
5931
5932 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
5933
6511acf2 59342011-09-04 Paul Eggert <eggert@cs.ucla.edu>
61bfeeb7 5935
0999621a 5936 sprintf-related integer and memory overflow issues (Bug#9412).
62f19c19
PE
5937
5938 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
8666506e 5939 (esprintf, exprintf, evxprintf): New functions.
62f19c19 5940 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
6b02f655 5941 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
62f19c19
PE
5942 (modify_event_symbol): Do not assume that the length of
5943 name_alist_or_stem is safe to alloca and fits in int.
5944 (Fexecute_extended_command): Likewise for function name and binding.
5945 (Frecursion_depth): Wrap around reliably on integer overflow.
5946 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
5947 since some callers pass EMACS_INT values.
5948 (Fsingle_key_description): Don't crash if symbol name contains more
5949 than MAX_ALLOCA bytes.
5950 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
5951 (get_minibuffer): Arg is now EMACS_INT, not int.
5952 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
8666506e 5953 (esprintf, exprintf, evxprintf): New decls.
62f19c19
PE
5954 * window.h (command_loop_level, minibuf_level): Reflect API changes.
5955
2be7d702
PE
5956 * dbusbind.c (signature_cat): New function.
5957 (xd_signature, Fdbus_register_signal):
2ea16b89
PE
5958 Do not overrun buffer; instead, report string overflow.
5959
9d1df220
PE
5960 * dispnew.c (add_window_display_history): Don't overrun buffer.
5961 Truncate instead; this is OK since it's just a log.
5962
33ef5c64
PE
5963 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
5964 even if the time zone offset is outlandishly large.
5965 Don't mishandle offset == INT_MIN.
5966
66c6fdd5
PE
5967 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
5968 when creating daemon; the previous buffer-overflow check was incorrect.
5969
d749b01b
PE
5970 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
5971 which has the guts of the old verror function.
5972
b5cd1905
PE
5973 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
5974 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
5975
6e1a67fb
PE
5976 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
5977 (font_unparse_xlfd): Don't blindly alloca long strings.
c21721cc 5978 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
8666506e 5979 fits in int, when using sprintf. Use single snprintf to count
c21721cc
PE
5980 length of string rather than counting it via multiple sprintfs;
5981 that's simpler and more reliable.
c21721cc
PE
5982 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
5983 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
5984 sprintf, in case result does not fit in int.
5985
c57b67fc
PE
5986 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
5987 (fontset_from_font): Print it.
5988
8a401434
PE
5989 * frame.c (tty_frame_count): Now printmax_t, not int.
5990 (make_terminal_frame, set_term_frame_name): Print it.
5991 (x_report_frame_params): In X, window IDs are unsigned long,
5992 not signed long, so print them as unsigned.
5993 (validate_x_resource_name): Check for implausibly long names,
5994 and don't assume name length fits in 'int'.
5995 (x_get_resource_string): Don't blindly alloca invocation name;
5996 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
5997 not fit in int.
5998
6e1a67fb
PE
5999 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
6000 (xg_check_special_colors, xg_set_geometry):
84722b3d
PE
6001 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
6002
0df02bf3
PE
6003 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
6004 Use esprintf, not sprintf, in case result does not fit in int.
6005
48e30793
PE
6006 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
6007 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
6008 it as a large positive number.
6009 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
6010 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
6011
a66ff6d8
PE
6012 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
6013 in case result does not fit in int.
6014
aca216ff
PE
6015 * print.c (float_to_string): Detect width overflow more reliably.
6016 (print_object): Make sprintf buffer a bit bigger, to avoid potential
6017 buffer overrun. Don't assume list length fits in 'int'. Treat
6018 print length of 0 as 0, not as infinity; to be consistent with other
6019 uses of print length in this function. Don't overflow print length
6020 index. Don't assume hash table size fits in 'long', or that
6021 vectorlike size fits in 'unsigned long'.
6022
31c286f7
PE
6023 * process.c (make_process): Use printmax_t, not int, to format
6024 process-name gensyms.
6025
55e5faa1
PE
6026 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
6027
80f2e268
PE
6028 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
6029 to avoid potential buffer overrun.
6030
670741ab
PE
6031 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
6032 if X resource line is longer than 512 bytes.
6033
b7163a50
PE
6034 * xfns.c (x_window): Make sprintf buffer a bit bigger
6035 to avoid potential buffer overrun.
6036
ae58ff1f
PE
6037 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
6038
c43c8a6a
PE
6039 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
6040
3f8236f4
PE
60412011-09-04 Paul Eggert <eggert@cs.ucla.edu>
6042
53e9fe90 6043 Integer overflow fixes for scrolling, etc.
6511acf2
PE
6044 Without these, Emacs silently mishandles large integers sometimes.
6045 For example, "C-u 4294967297 M-x recenter" was treated as if
53e9fe90
PE
6046 it were "C-u 1 M-x recenter" on a typical 64-bit host.
6047
6511acf2
PE
6048 * xdisp.c (try_window_id): Check Emacs fixnum range before
6049 converting to 'int'.
806add1d 6050
6511acf2 6051 * window.c (window_scroll_line_based, Frecenter):
71f02bc5
PE
6052 Check that an Emacs fixnum is in range before assigning it to 'int'.
6053 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
6054 values converted from Emacs fixnums.
6055 (Frecenter): Don't wrap around a line count if it is out of 'int'
6056 range; instead, treat it as an extreme value.
6057 (Fset_window_configuration, compare_window_configurations):
6058 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
6059
6511acf2
PE
6060 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
6061 that can exceed INT_MAX. Check that EMACS_INT value is in range
6062 before assigning it to the (possibly-narrower) index.
a0efffc8
PE
6063 (match_limit): Don't assume that a fixnum can fit in 'int'.
6064
6511acf2 6065 * print.c (print_object): Use ptrdiff_t, not int, for index that can
29ebea3b
PE
6066 exceed INT_MAX.
6067
6511acf2 6068 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
3f8236f4
PE
6069 (Fvertical_motion): Don't wrap around LINES values that don't fit
6070 in 'int'. Instead, treat them as extreme values. This is good
6071 enough for windows, which can't have more than INT_MAX lines anyway.
6072
fcb901a7
LMI
60732011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
6074
0f2f6b6d
LMI
6075 * Require libxml/parser.h to avoid compilation warning.
6076
fcb901a7
LMI
6077 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
6078
6079 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
6080 since this reportedly can destroy thread storage.
6081
6e20a0d4
CY
60822011-08-30 Chong Yidong <cyd@stupidchicken.com>
6083
6084 * syntax.c (find_defun_start): Update all cache variables if
6085 exiting early (Bug#9401).
6086
148ae00e
EZ
60872011-08-30 Eli Zaretskii <eliz@gnu.org>
6088
f6cfbd8f
EZ
6089 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
6090
148ae00e
EZ
6091 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
6092 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
6093 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
6094
6095 * term.c (tty_append_glyph): New function.
6096 (produce_stretch_glyph): Static function and its prototype deleted.
6097
a66cfb1c
SM
6098 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
6099 Add prototypes.
148ae00e 6100
c4a07a4c
PE
61012011-08-29 Paul Eggert <eggert@cs.ucla.edu>
6102
6103 * image.c (parse_image_spec): Check for nonnegative, not for positive,
6104 when checking :margin (Bug#9390).
6105 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
a66cfb1c 6106 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
c4a07a4c
PE
6107 so that the name doesn't mislead. All uses changed.
6108
6bc8cd65
JB
61092011-08-28 Johan Bockgård <bojohan@gnu.org>
6110
6111 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
6112 set_tty_hooks.
6113
dca4927e
EZ
61142011-08-27 Eli Zaretskii <eliz@gnu.org>
6115
6116 * xdisp.c (move_it_to): Don't bail out early when reaching
6117 position beyond to_charpos, if we are scanning backwards.
6118 (move_it_vertically_backward): When DY == 0, make sure we get to
6119 the first character in the line after the newline.
6120
f2cad773
PE
61212011-08-27 Paul Eggert <eggert@cs.ucla.edu>
6122
6123 * ccl.c: Improve and simplify overflow checking (Bug#9196).
6124 (ccl_driver): Do not generate an out-of-range pointer.
6125 (Fccl_execute_on_string): Remove unnecessary check for
6126 integer overflow, noted by Stefan Monnier in
6127 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
6128 Remove a FIXME that didn't need fixing.
6129 Simplify the newly-introduced buffer reallocation code.
6130
0cae2cdb
JB
61312011-08-27 Juanma Barranquero <lekktu@gmail.com>
6132
6133 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
6134
5fc295a4 61352011-08-26 Paul Eggert <eggert@cs.ucla.edu>
ddff3151 6136
70c60eb2 6137 Integer and memory overflow issues (Bug#9196).
726e0ab1 6138
d31850da
PE
6139 * doc.c (get_doc_string): Rework so that
6140 get_doc_string_buffer_size is the actual buffer size, rather than
6141 being 1 less than the actual buffer size; this makes xpalloc more
6142 convenient.
6143
a69fbedb
PE
6144 * image.c (x_allocate_bitmap_record, cache_image):
6145 * xselect.c (Fx_register_dnd_atom):
6146 Simplify previous changes by using xpalloc.
6147
fe5c5d37
PE
6148 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
6149 since either will do and ptrdiff_t is convenient with xpalloc.
6150
0065d054
PE
6151 * charset.c (charset_table_size)
6152 (struct charset_sort_data.priority): Now ptrdiff_t.
6153 (charset_compare): Don't overflow if priorities differ greatly.
6154 (Fsort_charsets): Don't assume list length fits in int.
6155 Check for size-calculation overflow when allocating sort data.
6156 (syms_of_charset): Allocate an initial charset table that is
6157 just under 64 KiB, to avoid problems with glibc malloc and mmap.
6158
6159 * cmds.c (internal_self_insert): Check for size-calculation overflow.
6160
6161 * composite.h (struct composition.glyph_len): Now int, not unsigned.
6162 The actual value is always <= INT_MAX, and leaving it unsigned made
6163 overflow checking harder.
6164
6165 * dispextern.h (struct glyph_matrix.rows_allocated)
6166 (struct face_cache.size): Now ptrdiff_t, for convenience in use
6167 with xpalloc. The values are still always <= INT_MAX.
6168
6169 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
6170
6171 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
6172 (SAFE_NALLOCA): New macro.
6173
6174 * region-cache.c (struct boundary.pos, find_cache_boundary)
6175 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
6176 (set_cache_region, invalidate_region_cache)
6177 (revalidate_region_cache, know_region_cache, region_cache_forward)
6178 (region_cache_backward, pp_cache):
6179 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
6180 so that ptrdiff_t * can be passed to xpalloc.
6181 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
6182 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
6183 (pp_cache): Don't assume cache_len fits in int.
6184 * region-cache.h: Adjust extern decls to match.
6185
6186 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
6187 EMACS_INT, since either will do, for xpalloc.
6188
6189 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
6190 (xnmalloc, xnrealloc, xpalloc): New functions.
6191
726e0ab1
PE
6192 * bidi.c (bidi_shelve_header_size): New constant.
6193 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
6194 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
6195
51f30bc5 6196 * bidi.c (bidi_cache_shrink):
726e0ab1
PE
6197 * buffer.c (overlays_at, overlays_in, record_overlay_string)
6198 (overlay_strings):
6199 Don't update size of array until after memory allocation succeeds,
6200 because xmalloc/xrealloc may not return.
0065d054
PE
6201 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
6202 now that we have proper integer overflow checking.
6203 (record_overlay_string, overlay_strings): Catch overflows when
6204 calculating size of overlay_str_buf.
726e0ab1 6205
0065d054
PE
6206 * callproc.c (Fcall_process): Check for size overflow when
6207 calculating size of args2.
6208 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
6209 Normally we prefer signed values, but sticking with ptrdiff_t would
6210 require adding more-complicated checks.
726e0ab1
PE
6211
6212 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
6213 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
6214 Redo buffer-overflow calculations to avoid integer overflow.
0065d054 6215 Add a FIXME comment where memory seems to be over-allocated.
726e0ab1
PE
6216
6217 * character.c (Fstring): Check for size-calculation overflow.
6218
6219 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
6220 unnecessary integer overflow. Check for size overflow.
6221 (encode_coding_object): Don't update size until xmalloc succeeds.
6222
6223 * composite.c (get_composition_id): Check for overflow in glyph
6224 length calculations.
6225
6226 Integer and memory overflow fixes for display code.
6227 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
6228 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
6229 (scrolling_window): Check for overflow in size calculations.
6230 (line_draw_cost, realloc_glyph_pool, add_row_entry):
6231 Don't assume glyph table len fits in int.
6232 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
6233 (row_table_size): Now ptrdiff_t, not int.
6234 (scrolling_window): Avoid overflow in size calculations.
6235 Don't update size until allocation succeeds.
6236 * fns.c (concat): Check for overflow in size calculations.
6237 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
6238 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
6239 (NEXT_ALMOST_PRIME_LIMIT): New constant.
6240
6241 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
6242 (get_doc_string): Check for size calculation overflow.
6243 Don't update size until allocation succeeds.
6244 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
6245 EMACS_INT, where ptrdiff_t will do.
6246 (Fsubstitute_command_keys): Check for string overflow.
6247
6248 * editfns.c (set_time_zone_rule): Don't assume environment length
6249 fits in int.
6250 (message_length): Now ptrdiff_t, not int.
6251 (Fmessage_box): Don't update size until allocation succeeds.
6252 Don't assume message length fits in int.
6253 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
6254
0065d054
PE
6255 * emacs.c (main): Do not reallocate argv, since there is a null at
6256 the end that can be overwritten, and this way there's no need to
6257 worry about size-calculation overflow.
6258 (sort_args): Check for size-calculation overflow.
726e0ab1
PE
6259
6260 * eval.c (init_eval_once, grow_specpdl): Don't update size until
6261 alloc succeeds.
6262 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
6263
6264 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
6265 (x_set_scroll_bar_width, x_figure_window_size):
6266 Check for integer overflow.
6267 (x_set_alpha): Do not assume XINT fits in int.
6268
6269 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
6270 This is for the members text_lines, text_cols, total_lines, total_cols,
6271 where the system imposes an 'int' limit.
6272
6273 * fringe.c (Fdefine_fringe_bitmap):
6274 Don't update size until alloc works.
6275
6276 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
6277 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
6278
6279 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
6280 Check for size-calculation overflow.
6281 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
6282 do, as we prefer signed integers.
6283 (id_to_widget.max_size, id_to_widget.used)
6284 (xg_store_widget_in_map, xg_remove_widget_from_map)
6285 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
6286 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
6287 Use and return ptrdiff_t, not int.
6288 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
6289 * gtkutil.h: Change prototypes to match the above.
6290
6291 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
6292 are duplicate now that they've been promoted to lisp.h.
6293 (x_allocate_bitmap_record, x_alloc_image_color)
6294 (make_image_cache, cache_image, xpm_load):
6295 Don't update size until alloc is done.
6296 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
6297 (x_detect_edges):
3256efce 6298 Check for size calculation overflow.
726e0ab1
PE
6299 (ct_colors_allocated_max): New constant.
6300 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
6301 overflow.
3256efce 6302
726e0ab1
PE
6303 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
6304 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
6305 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
6306 Use ptrdiff_t, not int, to count maps.
6307 (read_char_minibuf_menu_prompt): Check for overflow in size
a66cfb1c
SM
6308 calculations. Don't update size until allocation succeeds.
6309 Redo calculations to avoid overflow.
726e0ab1
PE
6310 * keyboard.h: Change prototypes to match the above.
6311
6312 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
6313 to count maps.
6314 (current_minor_maps): Check for size calculation overflow.
6315 * keymap.h: Change prototypes to match the above.
6316
6317 * lread.c (read1, init_obarray): Don't update size until alloc done.
6318
6319 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
6320 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
6321
726e0ab1
PE
6322 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
6323 Now ptrdiff_t, not int.
6324 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
6325 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
6326
6327 * process.c (Fnetwork_interface_list): Check for overflow
6328 in size calculation.
6329
6330 * region-cache.c (move_cache_gap): Check for size calculation overflow.
6331
6332 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
6333 overflow. Don't bother calling xmalloc when xrealloc will do.
6334
6335 * search.c (Freplace_match): Check for size calculation overflow.
6336 (Fset_match_data): Don't assume list lengths fit in 'int'.
6337
6338 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
6339 for command line length. Do not attempt to address one before the
6340 beginning of an array, as that's not portable.
6341
6342 * term.c (max_frame_lines): Remove; unused.
6343 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
6344 not int.
6345 (encode_terminal_code, calculate_costs): Check for size
6346 calculation overflow.
6347 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
6348 table lengths and related sizes. Don't update size until alloc
6349 done. Redo calculations to avoid overflow.
6350 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
6351
6352 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
6353 subtracting pointers.
6354 (gobble_line): Check for overflow more carefully. Don't update size
6355 until alloc done.
6356
6357 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
6358 Don't update size until alloc done.
6359 Redo size calculations to avoid overflow.
6360 Check for size calculation overflow.
0065d054 6361 (main) [DEBUG]: Fix typo in invoking tparam1.
726e0ab1
PE
6362
6363 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
6364 Use ptrdiff_t, not int, for sizes.
6365 (store_mode_line_noprop_char): Don't update size until alloc done.
6366
0065d054
PE
6367 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
6368 Use ptrdiff_t, not int, for sizes.
6369 (Finternal_make_lisp_face, cache_face):
6370 Check for size calculation overflow.
6371 (cache_face): Treat size calculation overflows as if they were
6372 memory exhaustion (the usual treatment), rather than aborting.
726e0ab1
PE
6373
6374 * xfns.c (x_encode_text, x_set_name_internal)
6375 (Fx_change_window_property): Use ptrdiff_t, not int, to count
6376 sizes, since they can exceed INT_MAX in size. Check for size
6377 calculation overflow.
6378
0065d054
PE
6379 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
6380 (xg_select): Check for size calculation overflow.
726e0ab1
PE
6381 Don't update size until alloc done.
6382
0065d054 6383 * xrdb.c (get_environ_db): Don't assume path length fits in int,
726e0ab1 6384 as sprintf is limited to int lengths.
1d526e2f 6385
252c5ee1
PE
6386 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
6387 (X_LONG_MIN): New macros.
864d7ce7
PE
6388 Use them to make the following changes clearer.
6389 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
6390 This change doesn't affect the value now, but it may help remind
6391 future maintainers not to raise the value too much later.
6392 (SELECTION_QUANTUM): Remove, replacing with ...
6393 (selection_quantum): ... new function, which avoids overflow.
6394 All uses changed.
6395 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
6396 assumption that selection length fits in 'int'.
6397 (x_reply_selection_request, x_handle_selection_request)
6398 (x_get_window_property, receive_incremental_selection)
6399 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
6400 (lisp_data_to_selection_data, clean_local_selection_data):
6401 Use ptrdiff_t, not int, to record length of selection.
6402 (x_reply_selection_request, x_get_window_property)
6403 (receive_incremental_selection, x_property_data_to_lisp):
6404 Redo calculations to avoid overflow.
6405 (x_reply_selection_request): When sending hint, ceiling it at
252c5ee1 6406 X_LONG_MAX rather than relying on wraparound overflow to send
864d7ce7
PE
6407 something.
6408 (x_get_window_property, receive_incremental_selection)
6409 (lisp_data_to_selection_data, x_property_data_to_lisp):
6410 Check for size-calculation overflow.
6411 (x_get_window_property, receive_incremental_selection)
6412 (lisp_data_to_selection_data, Fx_register_dnd_atom):
6413 Don't store size until memory allocation succeeds.
6414 (x_get_window_property): Plug memory leak on memory exhaustion.
6415 Don't double-block input; malloc is safe here. Don't assume 2**34
6416 - 4 fits in unsigned long. Add an xassert to check
6417 XGetWindowProperty overflow. Be more careful about overflow
6418 calculations, and distinguish size from memory overflow better.
6419 (receive_incremental_selection): When tracing, don't assume
6420 unsigned int is less than INT_MAX.
6421 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
6422 harmful) conversions of unsigned short to int.
6423 (lisp_data_to_selection_data): Don't assume that integers
6424 in the range -65535 through -1 fit in an X unsigned short.
6425 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
6426 result parameters unless successful. Rely on cons_to_unsigned
6427 to report problems with elements; the old code wasn't right anyway.
6428 (x_check_property_data): Check for int overflow; we cannot use
6429 a wider type due to X limits.
6430 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
6431
726e0ab1 6432 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
34db673b 6433
0065d054
PE
6434 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
6435 (x_term_init): Check for size calculation overflow.
726e0ab1
PE
6436 (x_color_cells): Don't store size until memory allocation succeeds.
6437 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
0065d054 6438 Don't assume alloca size is less than MAX_ALLOCA.
726e0ab1
PE
6439 (x_term_init): Don't assume length fits in int (sprintf is limited
6440 to int size).
bc18e09d 6441
ebfa62c0
PE
6442 Use ptrdiff_t for composition IDs.
6443 * character.c (lisp_string_width):
6444 * composite.c (composition_table_size, n_compositions)
6445 (get_composition_id, composition_gstring_from_id):
6446 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
6447 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
6448 * window.c (Frecenter):
6449 Use ptrdiff_t, not int, for composition IDs.
6450 * composite.c (get_composition_id): Check for integer overflow.
6451 * composite.h: Adjust prototypes to match the above changes.
6452
d3411f89
PE
6453 Use ptrdiff_t for hash table indexes.
6454 * category.c (hash_get_category_set):
6455 * ccl.c (ccl_driver):
6456 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
6457 * coding.c (coding_system_charset_list, detect_coding_system):
6458 * coding.h (struct coding_system.id):
6459 * composite.c (get_composition_id, gstring_lookup_cache):
6460 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
6461 * image.c (xpm_get_color_table_h):
6462 * lisp.h (hash_lookup, hash_put):
6463 * minibuf.c (Ftest_completion):
6464 Use ptrdiff_t for hash table indexes, not int (which is too
6465 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
6466 32-bit --with-wide-int hosts).
6467
e097a6fa
PE
6468 * charset.c (Fdefine_charset_internal): Check for integer overflow.
6469 Add a FIXME comment about memory leaks.
6470 (syms_of_charset): Don't assume xmalloc returns.
6471
5637687f
PE
6472 Don't assume that stated character widths fit in int.
6473 * character.c (Fchar_width, c_string_width, lisp_string_width):
6474 * character.h (CHAR_WIDTH):
6475 * indent.c (MULTIBYTE_BYTES_WIDTH):
6476 Use sanitize_char_width to avoid undefined and/or bad behavior
6477 with outlandish widths.
a66cfb1c 6478 * character.h (sanitize_tab_width): Rename from sanitize_width,
5637687f
PE
6479 now that we have two such functions. All uses changed.
6480 (sanitize_char_width): New inline function.
6481
a2271ba2
PE
6482 Don't assume that tab-width fits in int.
6483 * character.h (sanitize_width): New inline function.
6484 (SANE_TAB_WIDTH): New macro.
6485 (ASCII_CHAR_WIDTH): Use it.
6486 * indent.c (sane_tab_width): Remove. All uses replaced by
6487 SANE_TAB_WIDTH (current_buffer).
6488 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
6489
18c52557
PE
6490 * fileio.c: Integer overflow issues with file modes.
6491 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
6492
caeeedc1
PE
6493 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
6494 Remove unreachable code.
6495 (read_hex, load_charset_map_from_file): Check for integer overflow.
6496
6df6ae42 6497 * xterm.c: Don't go over XClientMessageEvent limit.
50849c52
PE
6498 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
6499 (x_send_scroll_bar_event): Likewise. Check that the size does not
6500 exceed limits imposed by XClientMessageEvent, as well as the usual
6501 ptrdiff_t and size_t limits.
6502
b13995db
PE
6503 * keyboard.c: Overflow, signedness and related fixes.
6504 (make_lispy_movement): Use same integer type in forward decl
6505 that is used in the definition.
6506 (read_key_sequence, keyremap_step):
6507 Change bufsize argument back to int, undoing my 2011-03-30 change.
6508 We prefer signed types, and int is wide enough here.
6509 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
6510 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
6511 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
6512 length, not size_t. Use ptrdiff_t for index, not int.
6513 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
6514 possibility of integer overflow.
6515
13464394
PE
6516 Overflow, signedness and related fixes for images.
6517
6518 * dispextern.h (struct it.stack[0].u.image.image_id)
6519 (struct_it.image_id, struct image.id, struct image_cache.size)
6520 (struct image_cache.used, struct image_cache.ref_count):
6521 * gtkutil.c (update_frame_tool_bar):
6522 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
6523 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
6524 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
6525 * nsmenu.m (update_frame_tool_bar):
6526 * xdisp.c (calc_pixel_width_or_height):
6527 * xfns.c (image_cache_refcount):
6528 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
6529 on typical 64-bit hosts.
6530
6531 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
6532 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
6533 Omit unnecessary casts to int.
6534 (parse_image_spec): Check that integers fall into 'int' range
6535 when the callers expect that.
6536 (image_ascent): Redo ascent calculation to avoid int overflow.
6537 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
6538 (lookup_image): Remove unnecessary tests.
6539 (xbm_image_p): Locals are now of int, not EMACS_INT,
6540 since parse_image_check makes sure they fit into int.
6541 (png_load, gif_load, svg_load_image):
6542 Prefer int to unsigned where either will do.
6543 (tiff_handler): New function, combining the cores of the
a66cfb1c
SM
6544 old tiff_error_handler and tiff_warning_handler.
6545 This function is rewritten to use vsnprintf and thereby avoid
13464394
PE
6546 stack buffer overflows. It uses only the features of vsnprintf
6547 that are common to both POSIX and native Microsoft.
6548 (tiff_error_handler, tiff_warning_handler): Use it.
6549 (tiff_load, gif_load, imagemagick_load_image):
6550 Don't assume :index value fits in 'int'.
6551 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
6552 (imagemagick_load_image): Check that crop parameters fit into
6553 the integer types that MagickCropImage accepts. Don't assume
6554 Vimagemagick_render_type has a nonnegative value. Don't assume
6555 size_t fits in 'long'.
6556 (gs_load): Use printmax_t to print the widest integers possible.
6557 Check for integer overflow when computing image height and width.
6558
c11821d4
EZ
65592011-08-26 Eli Zaretskii <eliz@gnu.org>
6560
6561 * xdisp.c (redisplay_window): Don't force window start if point
6562 will be invisible in the resulting window. (Bug#9324)
6563
0c95fcf7
EZ
65642011-08-25 Eli Zaretskii <eliz@gnu.org>
6565
6566 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
6567 the display spec is of the form `(space ...)'.
6568 (handle_display_spec): Return the value returned by
6569 handle_single_display_spec, not just 1 or zero.
6570 (handle_single_display_spec): If the display spec is of the form
6571 `(space ...)', and specifies display in the text area, return 2
6572 rather than 1.
fee65a97 6573 (try_cursor_movement): Check for the need to scroll more
a66cfb1c
SM
6574 accurately, and prefer exact match for point under bidi.
6575 Don't advance `row' beyond the last row of the window.
0c95fcf7
EZ
6576
6577 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
6578 into disp_prop; all users changed.
6579
6580 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
6581 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
6582 for the text covered by the display property.
6583
e4ed06f1
CY
65842011-08-25 Chong Yidong <cyd@stupidchicken.com>
6585
6586 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
6587 Change return value to nil.
6588 (Frecord_buffer): Delete unused function.
6589
f67cdd7f
EZ
65902011-08-24 Eli Zaretskii <eliz@gnu.org>
6591
5980d4c6
EZ
6592 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
6593 buffers, return left-to-right.
8610fe8b
EZ
6594 (set_cursor_from_row): Consider candidate row a win if its glyph
6595 represents a newline and point is on that newline. Fixes cursor
6596 positioning on the newline at EOL of R2L text within L2R
6597 paragraph, and vice versa.
6598 (try_cursor_movement): Check continued rows, in addition to
6599 continuation rows. Fixes unwarranted scroll when point enters a
6600 continued line of R2L text within an L2R paragraph, or vice versa.
6601 (cursor_row_p): Consider the case of point being equal to
6602 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
6603 from the end of a short line to the beginning of a continued line
6604 of R2L text within L2R paragraph.
6605 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
6606 composed characters.
5980d4c6 6607
f67cdd7f
EZ
6608 * bidi.c (bidi_check_type): Use xassert.
6609 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
6610 members.
6611
bca633fb
EZ
66122011-08-23 Eli Zaretskii <eliz@gnu.org>
6613
6614 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
6615 a character.
6616
4a5885a7
CY
66172011-08-23 Chong Yidong <cyd@stupidchicken.com>
6618
6619 * nsfont.m (ns_otf_to_script): Fix typo.
6620
0902a04e
KH
66212011-08-22 Kenichi Handa <handa@m17n.org>
6622
6623 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
6624 extra slot even if the purpose is char-code-property-table.
6625
1a2e6670
EZ
66262011-08-23 Eli Zaretskii <eliz@gnu.org>
6627
8ddde651
EZ
6628 * xdisp.c (redisplay_window): When computing centering_position,
6629 account for the height of the header line. (Bug#8874)
6630
425cc014
EZ
6631 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
6632 instead of CHAR_TO_BYTE. Fixes a crash when a completion
6633 candidate is selected by the mouse, and that candidate has a
6634 composed character under the mouse.
6635
1a2e6670
EZ
6636 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
6637 coordinates reported by pos-visible-in-window-p for a composed
6638 character in column zero.
6639
8b76d6f8
SM
66402011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
6641
6642 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
6643
dac347dd
EZ
66442011-08-22 Eli Zaretskii <eliz@gnu.org>
6645
6646 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
6647 consider it a hit if to_charpos is anywhere in the range of the
6648 composed buffer positions.
6649
e013fb34
CY
66502011-08-22 Chong Yidong <cyd@stupidchicken.com>
6651
6652 * image.c (gif_load): Don't assume that each subimage has the same
6653 dimensions as the base image. Handle disposal method that is
6654 "undefined" by the gif spec (Bug#9335).
6655
bd1ba3e8
CY
66562011-08-20 Chong Yidong <cyd@stupidchicken.com>
6657
6658 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
024a2d76 6659 (Fcondition_case): Document `debug' symbol in error handler.
bd1ba3e8 6660
54a1215b
EZ
66612011-08-19 Eli Zaretskii <eliz@gnu.org>
6662
823564e5
EZ
6663 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
6664 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
6665 from an Org mode buffer to a Speedbar frame.
6666
54a1215b
EZ
6667 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
6668 a composition, take its buffer position from IT->cmp_it.charpos.
6669 Fixes cursor positioning at the beginning of a line that begins
6670 with a composed character.
6671
9778ebcc
EZ
66722011-08-18 Eli Zaretskii <eliz@gnu.org>
6673
0be6ee06
EZ
6674 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
6675 character bidirectional type, use STRONG_L instead. Fixes crashes
6676 in a buffer produced by `describe-categories'.
6677
9778ebcc
EZ
6678 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
6679 members before the level stack, so they would be saved and
6680 restored when copying iterator state. Fixes incorrect reordering
6681 around TABs covered by display properties.
6682
156bffbe
AS
66832011-08-18 Andreas Schwab <schwab@linux-m68k.org>
6684
6b02f655 6685 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
156bffbe 6686
72ad093b
CY
66872011-08-17 Chong Yidong <cyd@stupidchicken.com>
6688
6689 * eval.c (internal_condition_case, internal_condition_case_1)
8b76d6f8
SM
6690 (internal_condition_case_2, internal_condition_case_n):
6691 Remove unnecessary aborts (Bug#9081).
72ad093b 6692
35774242
EZ
66932011-08-17 Eli Zaretskii <eliz@gnu.org>
6694
6695 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
6696 has no `load' handler, try opening the file locally. (Bug#9311)
6697
db76dd85
KB
66982011-08-16 Ken Brown <kbrown@cornell.edu>
6699
6700 * gmalloc.c: Expand comment.
6701
b215eee5
EZ
67022011-08-16 Eli Zaretskii <eliz@gnu.org>
6703
6704 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
6705 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
6706
a4579d33
KB
67072011-08-16 Ken Brown <kbrown@cornell.edu>
6708
6709 Fix memory allocation problems in Cygwin build (Bug#9273).
6710
6711 * unexcw.c ( __malloc_initialized): Declare external variable.
6712 (fixup_executable): Force the dumped emacs to reinitialize malloc.
6713
8b76d6f8
SM
6714 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
6715 New variables.
a4579d33
KB
6716 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
6717 dumped emacs.
6718 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
6719 in the static heap.
6720 [CYGWIN] (special_realloc): New function.
6721 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
6722 requests to realloc storage in the static heap.
6723
3ebec551
PE
67242011-08-15 Paul Eggert <eggert@cs.ucla.edu>
6725
6726 * bidi.c (bidi_initialize): Remove unused local.
6727
9fd8be00
EZ
67282011-08-15 Eli Zaretskii <eliz@gnu.org>
6729
6b02f655
SM
6730 * bidimirror.h:
6731 * biditype.h: Remove file.
6732 * makefile.w32-in ($(BLD)/bidi.$(O)):
6733 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
474a8465
EZ
6734
6735 * dispextern.h: Fix a typo in the comment to bidi_type_t.
6736
6737 * chartab.c: Improve commentary for the uniprop_table API.
6738
32413314
EZ
6739 * bidi.c (bidi_paragraph_init): Support zero value of
6740 bidi_ignore_explicit_marks_for_paragraph_level.
474a8465
EZ
6741 (bidi_initialize): Use uniprop_table instead of including
6742 biditype.h and bidimirror.h.
32413314 6743
9fd8be00
EZ
6744 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
6745 coordinates of the iterator when restoring from ppos_it.
6746 (Bug#9296)
6747
5cf2b69b
KH
67482011-08-14 Kenichi Handa <handa@m17n.org>
6749
6750 * process.c (create_process): Call setup_process_coding_systems
72ad093b 6751 after the pid of the process is set to -1 (Bug#8162).
5cf2b69b 6752
daf17d00
EZ
67532011-08-14 Eli Zaretskii <eliz@gnu.org>
6754
6755 * xdisp.c (move_it_in_display_line_to): Don't invoke
6756 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
6757 ppos_it. Fixes vertical cursor motion when line beginning is
6758 covered by an image. (Bug#9296)
6759
08e3161a
JD
67602011-08-14 Jan Djärv <jan.h.d@swipnet.se>
6761
6762 * nsterm.h (ns_run_ascript): Declare.
6763 (NSAPP_DATA2_RUNASSCRIPT): Define.
6764
6765 * nsfns.m (as_script, as_result, as_status): New static variables.
6766 (ns_run_ascript): New function.
5e617bc2 6767 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
08e3161a
JD
6768 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
6769 the event loop. Get status from as_status (Bug#7276).
6770
6771 * nsterm.m (sendEvent): If event is NSApplicationDefined and
6772 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
6773 the event loop (Bug#7276).
6774
a3720aa2
AS
67752011-08-14 Andreas Schwab <schwab@linux-m68k.org>
6776
6777 * gnutls.c (QCgnutls_bootprop_priority)
6778 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
6779 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
6780 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
6781 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
6782 (QCgnutls_bootprop_verify_hostname_error)
6783 (QCgnutls_bootprop_callbacks_verify): Rename from
6784 Qgnutls_bootprop_..., all uses changed.
6785
6786 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
6787 uses changed.
6788
0a0d27fb
PE
67892011-08-14 Paul Eggert <eggert@cs.ucla.edu>
6790
19d5c50c
PE
6791 * xfaces.c (Qframe_set_background_mode): Now static.
6792 * dispextern.h (Qframe_set_background_mode): Remove decl.
6793
0a0d27fb
PE
6794 * process.c (Fnetwork_interface_info): Declare local only if needed.
6795
377538cb
JD
67962011-08-13 Jan Djärv <jan.h.d@swipnet.se>
6797
6798 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
6799 (Fnetwork_interface_list): Allocate in increments of bytes instead
6800 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
6801 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
6802 sockaddr.
6803 (struct ifflag_def): notrailers is smart on OSX.
6804 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
6805 Get hardware address with getifaddrs if available.
6806
08fff70c
EZ
68072011-08-12 Eli Zaretskii <eliz@gnu.org>
6808
6809 * xdisp.c (iterate_out_of_display_property): xassert that
6810 IT->position is set to within IT->object's boundaries. Break from
6811 the loop as soon as EOB is reached; avoids infloops in redisplay
8b76d6f8
SM
6812 when IT->position is set up wrongly due to some bug.
6813 Set IT->current to match the bidi iterator unconditionally.
08fff70c
EZ
6814 (push_display_prop): Allow GET_FROM_STRING as IT->method on
6815 entry. Force push_it to save on the stack the current
6816 buffer/string position, to be restored by pop_it. Fix flags in
6817 the iterator structure wrt the object coming from a display
6818 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
6819 properties. (Bug#9284)
6820
7be1c708 68212011-08-09 Andreas Schwab <schwab@linux-m68k.org>
aac0c6e3 6822
7be1c708
CY
6823 * fontset.c (fontset_get_font_group): Add proper type checks.
6824 (Bug#9172)
aac0c6e3 6825
7be1c708 68262011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
aac0c6e3 6827
7be1c708
CY
6828 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
6829 and LC_VERSION_MIN_MACOSX.
6830 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
6831 (dump_it) [LC_FUNCTION_STARTS]: Use it.
aac0c6e3 6832
97bb72a6
EZ
68332011-08-08 Eli Zaretskii <eliz@gnu.org>
6834
6835 * xdisp.c (forward_to_next_line_start): Allow to use the
8b76d6f8
SM
6836 no-display-properties-and-no-overlays under bidi display.
6837 Set disp_pos in the bidi iterator to avoid searches for display
757664a4 6838 properties and overlays.
97bb72a6 6839
d5617611
CY
68402011-08-08 Chong Yidong <cyd@stupidchicken.com>
6841
37e11a63
CY
6842 * editfns.c (Fset_time_zone_rule): Document relationship with the
6843 setenv function.
6844
d5617611
CY
6845 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
6846 the font entity extracted from the cache (Bug#8109).
6847
58872834
CY
68482011-08-07 Chong Yidong <cyd@stupidchicken.com>
6849
6850 * composite.c (autocmp_chars): Don't reset point. That is done by
6851 restore_point_unwind (Bug#5984).
6852
75bfc667
JL
68532011-08-07 Juri Linkov <juri@jurta.org>
6854
6855 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
6856 to show the arg `TIME' instead of `TIMEVAL'.
6857
d1410150
EZ
68582011-08-06 Eli Zaretskii <eliz@gnu.org>
6859
6860 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
6861 display property strides EOL and includes a newline, as in
6862 longlines-mode. (Bug#9254)
75b771e4
EZ
6863 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
6864 word-wrap under bidirectional display. (Bug#9224)
d1410150
EZ
6865
6866 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
6867 is non-zero, even if the data buffer is NULL. Fixes a crash in
6868 vertical-motion with longlines-mode. (Bug#9254)
6869
35928349
EZ
68702011-08-05 Eli Zaretskii <eliz@gnu.org>
6871
ec7cc85b
EZ
6872 * bidi.c <bidi_cache_total_alloc>: Now static.
6873 (bidi_initialize): Initialize bidi_cache_total_alloc.
6874
8b76d6f8 6875 * xdisp.c (display_line): Release buffer allocated for shelved bidi
35928349
EZ
6876 cache. (Bug#9221)
6877
6878 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
6879 amount allocated this far in `bidi_cache_total_alloc'.
6880 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
6881 non-zero, only free the data buffer without restoring the cache
6882 contents. All callers changed.
6883
6884 * dispextern.h (bidi_unshelve_cache): Update prototype.
6885
6886 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
6887 (move_it_in_display_line, move_it_to)
6888 (move_it_vertically_backward, move_it_by_lines): Replace the call
6889 to xfree to an equivalent call to bidi_unshelve_cache.
6890 (move_it_in_display_line_to): Fix logic of returning
412b6358 6891 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
35928349 6892
e2e2423b
EZ
68932011-08-05 Eli Zaretskii <eliz@gnu.org>
6894
6895 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
6896 came from a string character with a `cursor' property. (Bug#9229)
6897
ae9e757a
JD
68982011-08-04 Jan Djärv <jan.h.d@swipnet.se>
6899
6900 * Makefile.in (LIB_PTHREAD): New variable.
6901 (LIBES): Add LIB_PTHREAD (Bug#9216).
6902
6903 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
6904 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
6905
213bd7f2
AS
69062011-08-04 Andreas Schwab <schwab@linux-m68k.org>
6907
6b02f655 6908 * regex.c (re_iswctype): Remove some redundant boolean conversions.
213bd7f2 6909
99aaf75f
JD
69102011-08-04 Jan Djärv <jan.h.d@swipnet.se>
6911
6912 * xterm.c (x_find_topmost_parent): New function.
6913 (x_set_frame_alpha): Find topmost parent window with
6914 x_find_topmost_parent and set the property there also (bug#9181).
6915 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
6916
c74e9d86
PE
69172011-08-04 Paul Eggert <eggert@cs.ucla.edu>
6918
6919 * callproc.c (Fcall_process): Avoid vfork clobbering
6920 the local vars buffer, coding_systems, current_dir.
6921
640c8776
SM
69222011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
6923
6924 * keymap.c (Fmake_composed_keymap): Move to subr.el.
6925
f26d0e4c
PE
69262011-08-03 Paul Eggert <eggert@cs.ucla.edu>
6927
8a10d76c
PE
6928 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
6929 so that it is not optimized away.
6930
f26d0e4c
PE
6931 * xdisp.c (compute_display_string_pos): Remove unused local.
6932
55439c61
EZ
69332011-08-02 Eli Zaretskii <eliz@gnu.org>
6934
6935 Fix slow cursor motion and scrolling in large buffers with
6936 selective display, like Org Mode buffers. (Bug#9218)
6937
6938 * dispextern.h (struct bidi_it): New member disp_prop_p.
6939
6940 * xdisp.c: Remove one-slot cache of display string positions.
6941 (compute_display_string_pos): Accept an additional argument
5e617bc2 6942 DISP_PROP_P; callers changed. Scan at most 5K characters forward
55439c61
EZ
6943 for a display string or property. If found, set DISP_PROP_P
6944 non-zero.
6945
6946 * bidi.c (bidi_fetch_char): Accept an additional argument
640c8776
SM
6947 DISP_PROP_P, and pass it to compute_display_string_pos.
6948 Only handle text covered by a display string if DISP_PROP_P is returned
55439c61
EZ
6949 non-zero. All callers of bidi_fetch_char changed.
6950
fb33fa43
SM
69512011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
6952
6953 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
6954
b099e063
DM
69552010-12-03 Don March <don@ohspite.net>
6956
6957 * keymap.c (Fdefine_key): Fix non-prefix key error message when
6958 last character M-[char] is translated to ESC [char] (bug#7541).
6959
5cc7f7af
KH
69602011-08-02 Kenichi Handa <handa@m17n.org>
6961
d0fffa3f 6962 * lisp.h (uniprop_table): Extern it.
5cc7f7af
KH
6963
6964 * chartab.c (uniprop_table): Make it non-static.
6965
525d5e6e
EZ
69662011-08-01 Eli Zaretskii <eliz@gnu.org>
6967
6968 * xdisp.c (forward_to_next_line_start): Accept additional argument
6969 BIDI_IT_PREV, and store into it the state of the bidi iterator had
6970 on the newline.
6971 (reseat_at_next_visible_line_start): Use the bidi iterator state
6972 returned by forward_to_next_line_start to restore the state of
6973 it->bidi_it after backing up to previous newline. (Bug#9212)
6974
31011111
AS
69752011-07-30 Andreas Schwab <schwab@linux-m68k.org>
6976
6977 * regex.c (re_comp): Protoize.
6978 (re_exec): Fix return type.
6979 (regexec): Fix type of `ret'. (Bug#9203)
6980
476371c4
PE
69812011-07-28 Paul Eggert <eggert@cs.ucla.edu>
6982
e5d76069
PE
6983 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
6984 This is needed if max-image-size is a floating-point number.
6985
9a79b20c
AS
69862011-07-28 Andreas Schwab <schwab@linux-m68k.org>
6987
6988 * print.c (print_object): Print empty symbol as ##.
6989
6990 * lread.c (read1): Read ## as empty symbol.
6991
d8c2fa78
AA
69922011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
6993
6994 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
6995 setting frame foreground color (Bug#9175).
6996 (x_set_background_color): Likewise.
6997
ffe57a7a
AA
6998 * nsmenu.m (-setText): Size tooltip dimensions precisely to
6999 contents (Bug#9176).
7000 (EmacsTooltip -init): Remove bezels and add shadows to
7001 tooltip windows.
7002
bf3492a5
AA
7003 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
7004 or scroll bar (Bug#8470).
7005
d55e9c53
AA
7006 * nsfont.m (nsfont_open): Remove assignment to voffset and
7007 unnecessary vars hshink, expand, hd, full_height, min_height.
7008 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
7009
7010 * nsterm.h (nsfont_info): Remove voffset field.
7011
d8c2fa78 70122011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
4843aac3
AA
7013
7014 Implement strike-through and overline on NextStep (Bug#8863).
7015
7016 * nsfont.m (nsfont_open): Use underline position provided by font,
7017 instead of hard-coded value of 2.
7018 (nsfont_draw): Call ns_draw_text_decoration instead.
7019
7020 * nsterm.h: Add declaration for ns_draw_text_decoration.
7021
7022 * nsterm.m (ns_draw_text_decoration): New function for drawing
7023 underline, overline, and strike-through.
7024 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
7025 ns_draw_text_decoration. Change treatment of cursor drawing to
8d5ed899 7026 accommodate underlining, etc.
4843aac3 7027
4cc60b9b
EZ
70282011-07-28 Eli Zaretskii <eliz@gnu.org>
7029
bc7ece87
EZ
7030 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
7031 default.
4cc60b9b 7032
476371c4
PE
70332011-07-28 Paul Eggert <eggert@cs.ucla.edu>
7034
66606eea
PE
7035 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
7036 Without this fix, if a signal arrives just after memory fills up,
7037 'malloc' might be invoked reentrantly.
7038
476371c4
PE
7039 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
7040 In other words, assume that every image size is allowed, on non-X
7041 hosts. This assumption is probably wrong, but it lets Emacs compile.
7042
f3fcc40d
AS
70432011-07-28 Andreas Schwab <schwab@linux-m68k.org>
7044
7045 * regex.c (re_iswctype): Convert return values to boolean.
7046
350c992f
EZ
70472011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
7048
7049 * xdisp.c (compute_display_string_pos): Don't use cached display
7050 string position if the buffer had its restriction changed.
7051 (Bug#9184)
7052
5266b4bb
PE
70532011-07-28 Paul Eggert <eggert@cs.ucla.edu>
7054
7055 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
7056
2573a837 70572011-07-28 Paul Eggert <eggert@cs.ucla.edu>
ca4aa935 7058
41f55ccd 7059 Integer signedness and overflow and related fixes. (Bug#9079)
cf950e6b 7060
39e378da
PE
7061 * bidi.c: Integer size and overflow fixes.
7062 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
7063 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
7064 (bidi_cache_find_level_change, bidi_cache_ensure_space)
7065 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
7066 (bidi_find_other_level_edge):
7067 Use ptrdiff_t instead of EMACS_INT where either will do.
7068 This works better on 32-bit hosts configured --with-wide-int.
7069 (bidi_cache_ensure_space): Check for size-calculation overflow.
7070 Use % rather than repeated addition, for better worst-case speed.
7071 Don't set bidi_cache_size until after xrealloc returns, because it
7072 might not return.
7073 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
f0eb61e9
PE
7074 (bidi_cache_ensure_space): Also check that the bidi cache size
7075 does not exceed that of the largest Lisp string or buffer. See Eli
7076 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
39e378da 7077
5e927815
PE
7078 * alloc.c (__malloc_size_t): Remove.
7079 All uses replaced by size_t. See Andreas Schwab's note
7080 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
7081
ca4aa935
PE
7082 * image.c: Improve checking for integer overflow.
7083 (check_image_size): Assume that f is nonnull, since
7084 it is always nonnull in practice. This is one less thing to
7085 worry about when checking for integer overflow later.
7086 (x_check_image_size): New function, which checks for integer
7087 overflow issues inside X.
7088 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
7089 This removes the need for a memory_full check.
7090 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
7091 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
7092 (xbm_read_bitmap_data): Change locals back to 'int', since
7093 their values must fit in 'int'.
7094 (xpm_load_image, png_load, tiff_load):
7095 Invoke x_create_x_image_and_pixmap earlier,
7096 to avoid much needless work if the image is too large.
7097 (tiff_load): Treat overly large images as if
7098 x_create_x_image_and_pixmap failed, not as malloc failures.
7099 (gs_load): Use x_check_image_size.
7100
5f8f9cc2
PE
7101 * gtkutil.c: Omit integer casts.
7102 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
7103 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
7104
5adf60bc
PE
7105 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
7106
c8907a93
PE
7107 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
7108 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
7109 would wrongly return t on a 64-bit host.
7110
e3c25c68
PE
7111 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
7112 The plain *_OVERFLOW macros run afoul of GCC bug 49705
7113 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
7114 and therefore cause GCC to emit a bogus diagnostic in some cases.
7115
3f791afe
PE
7116 * image.c: Integer signedness and overflow and related fixes.
7117 This is not an exhaustive set of fixes, but it's time to
7118 record what I've got.
7119 (lookup_pixel_color, check_image_size): Remove redundant decls.
7120 (check_image_size): Don't assume that arbitrary EMACS_INT values
7121 fit in 'int', or that arbitrary 'double' values fit in 'int'.
7122 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
7123 (tiff_load, imagemagick_load_image):
7124 Check for overflow in size calculations.
7125 (x_create_x_image_and_pixmap): Remove unnecessary test for
7126 xmalloc returning NULL; that can't happen.
7127 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
7128 (xpm_color_bucket): Use better integer hashing function.
7129 (xpm_cache_color): Don't possibly over-allocate memory.
7130 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
7131 (gif_memory_source):
7132 Use ptrdiff_t, not int or size_t, to record sizes.
7133 (png_load): Don't assume values greater than 2**31 fit in 'int'.
7134 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
7135 either works, as we prefer signed integers.
7136 (tiff_read_from_memory, tiff_write_from_memory):
7137 Return tsize_t, not size_t, since that's what the TIFF API wants.
7138 (tiff_read_from_memory): Don't fail simply because the read would
7139 go past EOF; instead, return a short read.
7140 (tiff_load): Omit no-longer-needed casts.
7141 (Fimagemagick_types): Don't assume size fits into 'int'.
7142
3cc5a532
PE
7143 Improve hashing quality when configured --with-wide-int.
7144 * fns.c (hash_string): New function, taken from sxhash_string.
7145 Do not discard information about ASCII character case; this
7146 discarding is no longer needed.
7147 (sxhash-string): Use it. Change sig to match it. Caller changed.
7148 * lisp.h: Declare it.
7149 * lread.c (hash_string): Remove, since we now use fns.c's version.
7150 The fns.c version returns a wider integer if --with-wide-int is
7151 specified, so this should help the quality of the hashing a bit.
7152
b312a492
PE
7153 * emacs.c: Integer overflow minor fix.
7154 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
7155 Define only if GNU_LINUX.
7156 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
7157
dfd153ae
PE
7158 * dispnew.c: Integer signedness and overflow fixes.
7159 Remove unnecessary forward decls, that were a maintenance hassle.
7160 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
7161 All uses changed.
7162 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
7163 (scrolling_window): Use ptrdiff_t, not int, for byte count.
7164 (prepare_desired_row, line_draw_cost):
7165 Use int, not unsigned, where either works.
7166 (save_current_matrix, restore_current_matrix):
7167 Use ptrdiff_t, not size_t, where either works.
7168 (init_display): Check for overflow more accurately, and without
7169 relying on undefined behavior.
7170
a81d11a3
PE
7171 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
7172 Remove, replacing with the new symbols in lisp.h. All uses changed.
7173 * fileio.c (make_temp_name):
7174 * filelock.c (lock_file_1, lock_file):
7175 * xdisp.c (message_dolog):
7176 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
7177 Use pMd etc. instead.
7178 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
7179 replacing the pWIDE etc. symbols removed from editfns.c.
7180
3300e6fd
PE
7181 * keyboard.h (num_input_events): Now uintmax_t.
7182 This is (very slightly) less likely to mess up due to wraparound.
7183 All uses changed.
7184
fd05c7e9
PE
7185 * buffer.c: Integer signedness fixes.
7186 (alloc_buffer_text, enlarge_buffer_text):
7187 Use ptrdiff_t rather than size_t when either will do, as we prefer
7188 signed integers.
7189
903fe15d
PE
7190 * alloc.c: Integer signedness and overflow fixes.
7191 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
7192 (__malloc_size_t): Default to size_t, not to int.
7193 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
7194 (Fgarbage_collect, mark_object_loop_halt, mark_object):
7195 Prefer ptrdiff_t to size_t when either would do, as we prefer
7196 signed integers.
7197 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
7198 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
7199 Now const. Initialize with values that are in range even if char
7200 is signed.
7201 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
7202 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
7203 These functions do the right thing with sizes > 2**32.
7204 (check_depth): Now ptrdiff_t, not int.
7205 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
7206 Adjust to new way of storing sizes. Check for size overflow bugs
7207 in rest of code.
7208 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
7209 slightly wrong anyway, as it missed one instance of
7210 XMALLOC_OVERRUN_CHECK_OVERHEAD.
7211 (refill_memory_reserve): Omit needless cast to size_t.
7212 (mark_object_loop_halt): Mark as externally visible.
7213
ac82cc6a
PE
7214 * xselect.c: Integer signedness and overflow fixes.
7215 (Fx_register_dnd_atom, x_handle_dnd_message):
7216 Use ptrdiff_t, not size_t, since we prefer signed.
7217 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
7218 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
7219 x_dnd_atoms_size and x_dnd_atoms_length.
7220
c2d1e36d
PE
7221 * doprnt.c: Prefer signed to unsigned when either works.
7222 * eval.c (verror):
7223 * doprnt.c (doprnt):
7224 * lisp.h (doprnt):
7225 * xdisp.c (vmessage):
7226 Use ptrdiff_t, not size_t, when using or implementing doprnt,
7227 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
7228 prefer signed arithmetic to avoid comparison confusion.
7229 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
7230 but is a bit tricky.
7231
0e926e56
PE
7232 Assume freestanding C89 headers, string.h, stdlib.h.
7233 * data.c, doprnt.c, floatfns.c, print.c:
7234 Include float.h unconditionally.
7235 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
7236 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
7237 * regex.c: Likewise for stddef.h, string.h.
7238 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
7239 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
7240 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
7241 (STDC_HEADERS): Remove obsolete defines.
7242 * sysdep.c: Include limits.h unconditionally.
7243
9cfdb3ec
PE
7244 Assume support for memcmp, memcpy, memmove, memset.
7245 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
7246 * regex.c (memcmp, memcpy):
7247 Remove; we assume C89 now.
7248
7249 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
7250 (__malloc_safe_bcopy): Remove; no longer needed.
7251
cf950e6b 7252 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
6089c567
PE
7253 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
7254 well either way, and we prefer signed to unsigned.
7255
dbf38e02
LMI
72562011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
7257
7258 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
7259 closes the connection while we're reading (bug#9182).
7260
d6f0886c 72612011-07-25 Jan Djärv <jan.h.d@swipnet.se>
24e0f6b1 7262
d6f0886c
JD
7263 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
7264 are specified (Bug#9168).
24e0f6b1 7265
2eb1f9e6
PE
72662011-07-25 Paul Eggert <eggert@cs.ucla.edu>
7267
7268 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
7269 Found by GCC static checking and --with-wide-int on a 32-bit host.
7270
22381272 72712011-07-25 Eli Zaretskii <eliz@gnu.org>
7daee910
EZ
7272
7273 * xdisp.c (compute_display_string_pos): Fix logic of caching
7274 previous display string position. Initialize cached_prev_pos to
7275 -1. Fixes slow-down at the beginning of a buffer.
7276
f25e39b4
EZ
72772011-07-24 Eli Zaretskii <eliz@gnu.org>
7278
7279 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
7280 for attrs[LFACE_FONTSET_INDEX].
7281
04c4b52e
PE
72822011-07-23 Paul Eggert <eggert@cs.ucla.edu>
7283
7284 * xml.c (parse_region): Remove unused local
7285 that was recently introduced.
7286
c1734fbd
EZ
72872011-07-23 Eli Zaretskii <eliz@gnu.org>
7288
be18c5a5
EZ
7289 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
7290 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
7291
c1734fbd
EZ
7292 * xdisp.c (move_it_in_display_line_to): Record the best matching
7293 position for TO_CHARPOS while scanning the line, and restore it on
640c8776
SM
7294 exit if none of the characters scanned was an exact match.
7295 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
a9269c18
EZ
7296 when exact match is impossible due to invisible text, and the
7297 lines are truncated.
7298
a258d627
JD
72992011-07-23 Jan Djärv <jan.h.d@swipnet.se>
7300
7301 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
7302 for OSX >= 10.7.
7303
b6d5a689
EZ
73042011-07-22 Eli Zaretskii <eliz@gnu.org>
7305
0f74f785
EZ
7306 Fix a significant slow-down of cursor motion with C-n, C-p,
7307 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
7308 auto-repeat under bidi redisplay in fontified buffers.
b6d5a689 7309 * xdisp.c (compute_stop_pos_backwards): New function.
b6d5a689
EZ
7310 (next_element_from_buffer): Call compute_stop_pos_backwards to
7311 find a suitable prev_stop when we find ourselves before
0f74f785
EZ
7312 base_level_stop.
7313 (reseat): Don't look for prev_stop, as that could mean a very long
7314 run.
7315 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
7316 <cached_disp_overlay_modiff>: Cache for last found display string
7317 position.
551918c1 7318 (compute_display_string_pos): Return the cached position if asked
0f74f785
EZ
7319 about the same buffer in the same area of character positions, and
7320 the buffer wasn't changed since the time the display string
7321 position was cached.
551918c1 7322
b2d0c91a
EZ
73232011-07-22 Eli Zaretskii <eliz@gnu.org>
7324
7325 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
7326 is an integer, which is important for empty lines. (Bug#9149)
7327
043604ee
CY
73282011-07-22 Chong Yidong <cyd@stupidchicken.com>
7329
7330 * frame.c (Fmodify_frame_parameters): In tty case, update the
7331 default face if necessary (Bug#4238).
7332
da4adb04
CY
73332011-07-21 Chong Yidong <cyd@stupidchicken.com>
7334
7335 * editfns.c (Fstring_to_char): No need to explain what a character
7336 is in the docstring (Bug#6576).
7337
9abd0532
LMI
73382011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
7339
7340 * xml.c (parse_region): Make sure we always return a tree.
7341
36881d16
HK
73422011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
7343
7344 * xml.c (parse_region): If a document contains only comments,
7345 return that, too.
7346
1e98674d
LMI
73472011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
7348
7349 * xml.c (make_dom): Return comments, too.
7350
590bd467
PE
73512011-07-19 Paul Eggert <eggert@cs.ucla.edu>
7352
7353 Port to OpenBSD.
7354 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
7355 and the surrounding thread.
7356 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
7357 rather than fgets, and retry after EINTR. Otherwise, 'emacs
7358 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
7359 timer goes off.
7360 * s/openbsd.h (BROKEN_SIGIO): Define.
7361 * unexelf.c (unexec) [__OpenBSD__]:
7362 Don't update the .mdebug section of the Alpha COFF symbol table.
7363
f41628b2
LMI
73642011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
7365
7366 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
7367 (bug#8460).
7368
b59b67c5
PE
73692011-07-18 Paul Eggert <eggert@cs.ucla.edu>
7370
15e3a074
PE
7371 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
7372 This fixes some race conditions on the permissions of any newly
7373 created file.
7374
41bed37d
PE
7375 * alloc.c (valid_pointer_p): Use pipe, not open.
7376 This fixes some permissions issues when debugging.
7377
b59b67c5
PE
7378 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
7379 If fchown fails to set both uid and gid, try to set just gid,
7380 as that is sometimes allowed. Adjust the file's mode to eliminate
7381 setuid or setgid bits that are inappropriate if fchown fails.
7382
925a6be7
SM
73832011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
7384
7385 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
7386 to compare Lisp_Objects.
7387 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
7388 global_gnutls_log_level, don't mistake it for a Lisp_Object.
7389 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
7390
52968808
AS
73912011-07-17 Andreas Schwab <schwab@linux-m68k.org>
7392
0a6a104b
AS
7393 * lread.c (read_integer): Unread even EOF character.
7394 (read1): Likewise. Properly record start position of symbol.
7395
52968808
AS
7396 * lread.c (read1): Read `#:' as empty uninterned symbol if no
7397 symbol character follows.
7398
9e381cdd
PE
73992011-07-17 Paul Eggert <eggert@cs.ucla.edu>
7400
7401 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
7402 This works around a problem with the previous change to Fcopy_file.
7403 Recent glibc declares fchown with __attribute__((warn_unused_result)),
7404 and without this change, GCC might complain about discarding
7405 fchown's return value.
7406
b5641435
JB
74072011-07-16 Juanma Barranquero <lekktu@gmail.com>
7408
7409 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
7410
a8031457
PE
74112011-07-16 Paul Eggert <eggert@cs.ucla.edu>
7412
7413 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
7414
dd889327
LMI
74152011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
7416
750c33f7
LMI
7417 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
7418 it's used from the C level.
7419
dd889327
LMI
7420 * process.c: Use the same condition for POLL_FOR_INPUT in both
7421 keyboard.c and process.c (bug#1858).
7422
87e86684
LM
74232011-07-09 Lawrence Mitchell <wence@gmx.li>
7424
7425 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
7426 (Fgnutls_boot): Use it.
7427
64348f40
AS
74282011-07-15 Andreas Schwab <schwab@linux-m68k.org>
7429
7430 * doc.c (Fsubstitute_command_keys): Revert last change.
7431
1d698799
LMI
74322011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
7433
f863868c
LMI
7434 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
7435 quotes the next character, and doesn't affect other longer
7436 sequences (bug#8935).
7437
1d698799
LMI
7438 * lread.c (syms_of_lread): Clarify that is isn't only
7439 `eval-buffer' and `eval-defun' that's affected by
7440 `lexical-binding' (bug#8460).
7441
aa4b6df6
EZ
74422011-07-15 Eli Zaretskii <eliz@gnu.org>
7443
7444 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
6b02f655 7445 bidi redisplay when a line includes both an image and is truncated.
aa4b6df6 7446
5d856da6
PE
74472011-07-14 Paul Eggert <eggert@cs.ucla.edu>
7448
ad6042bb
PE
7449 Fix minor problems found by static checking.
7450 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
7451 (elsz): Now a signed constant, not a size_t var. We prefer signed
7452 types to unsigned, to avoid integer comparison confusion. Without
7453 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
7454 "cannot optimize loop, the loop counter may overflow", a symptom
7455 of the confusion.
f00bbb22 7456 * indent.c (Fvertical_motion): Mark locals as initialized.
5d856da6
PE
7457 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
7458
6468f31c
LMI
74592011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
7460
49080b10
LMI
7461 * search.c (Fre_search_backward): Mention `case-fold-search' in
7462 all the re_search_* functions (bug#8138).
7463
6468f31c
LMI
7464 * keyboard.c (Fopen_dribble_file): Document when the file is
7465 closed (bug#8056).
7466
c965adc5
EZ
74672011-07-14 Eli Zaretskii <eliz@gnu.org>
7468
df9733bf
EZ
7469 * bidi.c (bidi_dump_cached_states): Fix format of displaying
7470 bidi_cache_idx.
7471
0bb23927
EZ
7472 Support bidi reordering of display and overlay strings.
7473 * xdisp.c (compute_display_string_pos)
7474 (compute_display_string_end): Accept additional argument STRING.
7475 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
7476 (reseat_to_string): Initialize bidi_it->string.s and
7477 bidi_it->string.schars.
7478 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
640c8776
SM
7479 NULL (avoids a crash in bidi_paragraph_init).
7480 Initialize itb.string.lstring.
0bb23927
EZ
7481 (init_iterator): Call bidi_init_it only of a valid
7482 buffer position was specified. Initialize paragraph_embedding to
7483 L2R.
7484 (reseat_to_string): Initialize the bidi iterator.
7485 (display_string): If we need to ignore text properties of
7486 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
7487 original value of -1 will not work with bidi.)
7488 (compute_display_string_pos): First arg is now struct
7489 `text_pos *'; all callers changed. Support display properties on
7490 Lisp strings.
7491 (compute_display_string_end): Support display properties on Lisp
7492 strings.
7493 (init_iterator, reseat_1, reseat_to_string): Initialize the
7494 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
7495 when iterating on a string not from display properties).
640c8776
SM
7496 (compute_display_string_pos, compute_display_string_end):
7497 Fix calculation of the object to scan. Fixes an error when using
0bb23927
EZ
7498 arrow keys.
7499 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
640c8776
SM
7500 base_level_stop; instead, set base_level_stop to BEGV.
7501 Fixes crashes in vertical-motion.
0bb23927
EZ
7502 (next_element_from_buffer): Improve commentary for when
7503 the iterator is before prev_stop.
7504 (init_iterator): Initialize bidi_p from the default value of
7505 bidi-display-reordering, not from buffer-local value. Use the
7506 buffer-local value only if initializing for buffer iteration.
7507 (handle_invisible_prop): Support invisible properties on strings
7508 that are being bidi-reordered.
7509 (set_iterator_to_next): Support bidi reordering of C strings and
7510 Lisp strings.
7511 (next_element_from_string): Support bidi reordering of Lisp
7512 strings.
7513 (handle_stop_backwards): Support Lisp strings as well.
640c8776
SM
7514 (display_string): Support display of R2L glyph rows.
7515 Use IT_STRING_CHARPOS when displaying from a Lisp string.
0bb23927
EZ
7516 (init_iterator): Don't initialize it->bidi_p for strings
7517 here.
7518 (reseat_to_string): Initialize it->bidi_p for strings here.
7519 (next_element_from_string, next_element_from_c_string)
7520 (next_element_from_buffer): Add xassert's for correspondence
7521 between IT's object being iterated and it->bidi_it.string
7522 structure.
7523 (face_before_or_after_it_pos): Support bidi iteration.
7524 (next_element_from_c_string): Handle the case of the first string
7525 character that is not the first one in the visual order.
7526 (get_visually_first_element): New function, refactored from common
7527 parts of next_element_from_buffer, next_element_from_string, and
7528 next_element_from_c_string.
7529 (tool_bar_lines_needed, redisplay_tool_bar)
7530 (display_menu_bar): Force left-to-right direction. Add a FIXME
7531 comment for making that be controlled by a user option.
7532 (push_it, pop_it): Save and restore the state of the
7533 bidi iterator. Save and restore the bidi_p flag.
7534 (pop_it): Iterate out of display property for string iteration as
7535 well.
7536 (iterate_out_of_display_property): Support iteration over strings.
7537 (handle_single_display_spec): Set up it->bidi_it for iteration
7538 over a display string, and call bidi_init_it.
7539 (handle_single_display_spec, next_overlay_string)
7540 (get_overlay_strings_1, push_display_prop): Set up the bidi
7541 iterator for displaying display or overlay strings.
7542 (forward_to_next_line_start): Don't use the shortcut if
7543 bidi-iterating.
7544 (back_to_previous_visible_line_start): If handle_display_prop
7545 pushed the iterator stack, restore the internal state of the bidi
7546 iterator by calling bidi_pop_it same number of times.
7547 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
7548 and we are bidi-iterating, don't decrement the iterator position;
7549 instead, set the first_elt flag in the bidi iterator, to produce
7550 the same effect.
7551 (reseat_1): Remove redundant setting of string_from_display_prop_p.
7552 (push_display_prop): xassert that we are iterating a buffer.
7553 (push_it, pop_it): Save and restore paragraph_embedding member.
7554 (handle_single_display_spec, next_overlay_string)
7555 (get_overlay_strings_1, reseat_1, reseat_to_string)
7556 (push_display_prop): Set up the `unibyte' member of bidi_it.string
7557 correctly. Don't assume unibyte strings are not bidi-reordered.
7558 (compute_display_string_pos)
7559 (compute_display_string_end): Fix handling the case of C string.
7560 (push_it, pop_it): Save and restore from_disp_prop_p.
7561 (handle_single_display_spec, push_display_prop): Set the
7562 from_disp_prop_p flag.
7563 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
7564 (pop_it): Call iterate_out_of_display_property only if we are
7565 popping after iteration over a string that came from a display
7566 property. Fix a typo in popping stretch info. Add an assertion
7567 for verifying that the iterator position is in sync with the bidi
7568 iterator.
7569 (handle_single_display_spec, get_overlay_strings_1)
7570 (push_display_prop): Fix initialization of paragraph direction for
7571 string when that of the parent object is not yet determined.
7572 (reseat_1): Call bidi_init_it to resync the bidi
7573 iterator with IT's position. (Bug#7616)
7574 (find_row_edges): If ROW->start.pos gives position
7575 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
7576 (handle_stop, back_to_previous_visible_line_start, reseat_1):
7577 Reset the from_disp_prop_p flag.
7578 (SAVE_IT, RESTORE_IT): New macros.
7579 (pos_visible_p, face_before_or_after_it_pos)
7580 (back_to_previous_visible_line_start)
7581 (move_it_in_display_line_to, move_it_in_display_line)
7582 (move_it_to, move_it_vertically_backward, move_it_by_lines)
7583 (try_scrolling, redisplay_window, display_line): Use them when
7584 saving a temporary copy of the iterator and restoring it back.
7585 (back_to_previous_visible_line_start, reseat_1)
7586 (init_iterator): Empty the bidi cache "stack".
7587 (move_it_in_display_line_to): If iterator ended up at
7588 EOL, but we never saw any buffer positions smaller than
7589 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
7590 motion in bidi-reordered lines.
7591 (move_it_in_display_line_to): Record prev_method and prev_pos
7592 immediately before the call to set_iterator_to_next. Fixes cursor
7593 motion in bidi-reordered lines with stretch glyphs and strings
7594 displayed in margins. (Bug#8133) (Bug#8867)
7595 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
7596 TO_CHARPOS.
640c8776
SM
7597 (pos_visible_p): Support positions in bidi-reordered lines.
7598 Save and restore bidi cache.
0bb23927
EZ
7599
7600 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
7601 (bidi_paragraph_info): Delete unused struct.
7602 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
7603 (bidi_cache_start): New variable.
7604 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
7605 to zero.
7606 (bidi_cache_fetch_state, bidi_cache_search)
7607 (bidi_cache_find_level_change, bidi_cache_iterator_state)
7608 (bidi_cache_find, bidi_peek_at_next_level)
7609 (bidi_level_of_next_char, bidi_find_other_level_edge)
7610 (bidi_move_to_visually_next): Compare cache index with
7611 bidi_cache_start rather than with zero.
7612 (bidi_fetch_char): Accept new argument STRING; all callers
7613 changed. Support iteration over a string. Support strings with
7614 display properties. Support unibyte strings. Fix the type of
7615 `len' according to what STRING_CHAR_AND_LENGTH expects.
7616 (bidi_paragraph_init, bidi_resolve_explicit_1)
7617 (bidi_resolve_explicit, bidi_resolve_weak)
640c8776
SM
7618 (bidi_level_of_next_char, bidi_move_to_visually_next):
7619 Support iteration over a string.
0bb23927
EZ
7620 (bidi_set_sor_type, bidi_resolve_explicit_1)
7621 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
7622 can now be zero (for strings); special values 0 and -1 were
7623 changed to -1 and -2, respectively.
7624 (bidi_char_at_pos): New function.
7625 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
7626 Call it instead of FETCH_MULTIBYTE_CHAR.
7627 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
7628 initialized to valid values.
7629 (bidi_init_it): Don't initialize charpos and bytepos with invalid
7630 values.
7631 (bidi_level_of_next_char): Allow the sentinel "position" to pass
7632 the test for valid cached positions. Fix the logic for looking up
7633 the sentinel state in the cache. GCPRO the Lisp string we are
7634 iterating.
7635 (bidi_push_it, bidi_pop_it): New functions.
7636 (bidi_initialize): Initialize the bidi cache start stack pointer.
7637 (bidi_cache_ensure_space): New function, refactored from part of
7638 bidi_cache_iterator_state. Don't assume the required size is just
7639 one BIDI_CACHE_CHUNK away.
7640 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
7641 (bidi_count_bytes, bidi_char_at_pos): New functions.
7642 (bidi_cache_search): Don't assume bidi_cache_last_idx is
7643 always valid if bidi_cache_idx is valid.
7644 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
7645 is valid if it's going to be used.
7646 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
7647 (bidi_cache_fetch_state, bidi_cache_search)
c965adc5
EZ
7648 (bidi_cache_find_level_change, bidi_cache_ensure_space)
7649 (bidi_cache_iterator_state, bidi_cache_find)
640c8776
SM
7650 (bidi_find_other_level_edge, bidi_cache_start_stack):
7651 All variables related to cache indices are now EMACS_INT.
c965adc5 7652
0bb23927
EZ
7653 * dispextern.h (struct bidi_string_data): New structure.
7654 (struct bidi_it): New member `string'. Make flag members be 1-bit
7655 fields, and put them last in the struct.
640c8776
SM
7656 (compute_display_string_pos, compute_display_string_end):
7657 Update prototypes.
0bb23927
EZ
7658 (bidi_push_it, bidi_pop_it): Add prototypes.
7659 (struct iterator_stack_entry): New members bidi_p,
7660 paragraph_embedding, and from_disp_prop_p.
7661 (struct it): Member bidi_p is now a bit field 1 bit wide.
640c8776
SM
7662 (bidi_shelve_cache, bidi_unshelve_cache):
7663 Declare prototypes.
0bb23927
EZ
7664
7665 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
7666 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
7667 and vector-like objects.
7668
7669 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
7670 cache around display iteration.
7671
7672 * window.c (Fwindow_end, window_scroll_pixel_based)
7673 (displayed_window_lines, Frecenter): Save and restore the bidi
7674 cache around display iteration.
7675
3bbd2265
LMI
76762011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
7677
7678 * editfns.c (Fdelete_region): Clarify the use of the named
7679 parameters (bug#6788).
7680
adc47434
MR
76812011-07-14 Martin Rudalics <rudalics@gmx.at>
7682
7683 * indent.c (Fvertical_motion): Set and restore w->pointm when
7684 saving and restoring the window's buffer (Bug#9006).
7685
837c31f8
LMI
76862011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
7687
7688 * editfns.c (Fstring_to_char): Clarify just what is returned
7689 (bug#6576). Text by Eli Zaretskii.
7690
ac389d0c
JB
76912011-07-13 Juanma Barranquero <lekktu@gmail.com>
7692
7693 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
7694
0be0ce47
EZ
76952011-07-13 Eli Zaretskii <eliz@gnu.org>
7696
7697 * buffer.c (mmap_find): Fix a typo.
7698
cd18e7e3
JB
76992011-07-13 Johan Bockgård <bojohan@gnu.org>
7700
7701 Fix execution of x selection hooks.
7702 * xselect.c (Qx_lost_selection_functions)
7703 (Qx_sent_selection_functions): New vars.
7704 (syms_of_xselect): DEFSYM them.
7705 (x_handle_selection_request): Pass Qx_sent_selection_functions
7706 rather than Vx_sent_selection_functions to Frun_hook_with_args.
7707 (x_handle_selection_clear,x_clear_frame_selections):
7708 Pass Qx_lost_selection_functions rather than
7709 Vx_lost_selection_functions to Frun_hook_with_args.
7710
47ea7f44
PE
77112011-07-13 Paul Eggert <eggert@cs.ucla.edu>
7712
ac389d0c 7713 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
2941c447
PE
7714 The old code sometimes used this field without initializing it.
7715
47ea7f44
PE
7716 * alloc.c (gc_sweep): Don't read past end of array.
7717 In theory, the old code could also have corrupted Emacs internals,
7718 though it'd be very unlikely.
7719
bc985c87
AS
77202011-07-12 Andreas Schwab <schwab@linux-m68k.org>
7721
7722 * character.c (Fcharacterp): Don't advertise optional ignored
ac389d0c 7723 argument. (Bug#4026)
bc985c87 7724
0cf34688
LMI
77252011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
7726
b3dadd76
LMI
7727 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
7728 key" (bug#4257).
7729
0cf34688
LMI
7730 * window.c (Fset_window_start): Doc fix (bug#4199).
7731 (Fset_window_hscroll): Ditto.
7732
270768cd
PE
77332011-07-12 Paul Eggert <eggert@cs.ucla.edu>
7734
077e3dda 7735 Fix minor new problems caught by GCC 4.6.1.
270768cd 7736 * term.c (init_tty): Remove unused local.
490011a6 7737 * xsettings.c (store_monospaced_changed): Define this function only
077e3dda 7738 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
490011a6 7739 not used otherwise.
270768cd 7740
b1f58454
CY
77412011-07-12 Chong Yidong <cyd@stupidchicken.com>
7742
7743 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
7744
22b9578d
LMI
77452011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
7746
6e70ab07
LMI
7747 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
7748 are the mini-buffer and the echo area (bug#3320).
7749
22b9578d
LMI
7750 * term.c (init_tty): Remove support for supdup, c10 and perq
7751 terminals, which are no longer supported (bug#1482).
7752
8974cc9f
JB
77532011-07-10 Johan Bockgård <bojohan@gnu.org>
7754
7755 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
7756
a560d974
JD
77572011-07-10 Jan Djärv <jan.h.d@swipnet.se>
7758
7759 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
7760 for non-popups (Bug#3642).
7761
1dae0f0a
AS
77622011-07-10 Andreas Schwab <schwab@linux-m68k.org>
7763
268c2c36 7764 * alloc.c (reset_malloc_hooks): Protoize.
1dae0f0a 7765 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
268c2c36
AS
7766 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
7767 * cm.c (losecursor): Likewise.
1dae0f0a
AS
7768 * data.c (fmod): Likewise.
7769 * dispnew.c (swap_glyphs_in_rows): Likewise.
7770 * emacs.c (memory_warning_signal): Likewise.
7771 * floatfns.c (float_error): Likewise.
7772 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
7773 (otf_open, font_otf_capability, generate_otf_features)
7774 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
7775 Likewise.
7776 * image.c (pbm_read_file): Likewise.
7777 * indent.c (string_display_width): Likewise.
7778 * intervals.c (check_for_interval, search_for_interval)
7779 (inc_interval_count, count_intervals, root_interval)
7780 (adjust_intervals_for_insertion, make_new_interval): Likewise.
7781 * lread.c (defalias): Likewise.
268c2c36 7782 * ralloc.c (r_alloc_check): Likewise.
1dae0f0a
AS
7783 * regex.c (set_image_of_range_1, set_image_of_range)
7784 (regex_grow_registers): Likewise.
7785 * sysdep.c (strerror): Likewise.
7786 * termcap.c (valid_filename_p, tprint, main): Likewise.
7787 * tparam.c (main): Likewise.
7788 * unexhp9k800.c (run_time_remap, save_data_space)
7789 (update_file_ptrs, read_header, write_header, calculate_checksum)
7790 (copy_file, copy_rest, display_header): Likewise.
7791 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
7792 Likewise.
7793 * xdisp.c (check_it): Likewise.
7794 * xfaces.c (register_color, unregister_color, unregister_colors):
7795 Likewise.
7796 * xfns.c (print_fontset_result): Likewise.
7797 * xrdb.c (member, fatal, main): Likewise.
7798
99033785
PE
77992011-07-10 Paul Eggert <eggert@cs.ucla.edu>
7800
7801 Fix minor problems found by static checking (Bug#9031).
7802 * chartab.c (char_table_set_range, map_sub_char_table):
7803 Remove unused locals.
7804 (uniprop_table): Now static.
7805 * composite.c (_work_char): Remove unused static var.
7806
9cb2ac56
JB
78072011-07-09 Juanma Barranquero <lekktu@gmail.com>
7808
7809 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
7810
f25661f0
JD
78112011-07-09 Jan Djärv <jan.h.d@swipnet.se>
7812
7813 * gtkutil.c (qttip_cb): Remove code without function.
7814
8278c4fe
EZ
78152011-07-09 Eli Zaretskii <eliz@gnu.org>
7816
7817 * w32.c (pthread_sigmask): New stub.
7818
1692ae2d 78192011-07-08 Paul Eggert <eggert@cs.ucla.edu>
123403e4 7820
8a6ebd58 7821 Use pthread_sigmask, not sigprocmask (Bug#9010).
123403e4
PE
7822 sigprocmask is portable only for single-threaded applications, and
7823 Emacs can be multi-threaded when it uses GTK.
1301ac26
PE
7824 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
7825 (LIBES): Use it.
7826 * callproc.c (Fcall_process):
7827 * process.c (create_process):
7828 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
7829 Use pthread_sigmask, not sigprocmask.
123403e4 7830
1b854618
JD
78312011-07-08 Jan Djärv <jan.h.d@swipnet.se>
7832
7833 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
7834 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
7835 wrong (Bug#8591).
7836
3fe4b549
JD
78372011-07-08 Jan Djärv <jan.h.d@swipnet.se>
7838
0ce7e563
JD
7839 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
7840 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
7841 (xg_hide_tooltip): Fix comment.
7842
3fe4b549
JD
7843 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
7844 in registerServicesMenuSendTypes.
7845 (validRequestorForSendType): Don't check ns_return_types.
7846
7847 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
7848 ns_return_type.
7849
5df75e47
JR
78502011-07-08 Jason Rumney <jasonr@gnu.org>
7851
22610910
JR
7852 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
7853 SH_SHOW for hidden windows (Bug#5482).
7854
5df75e47
JR
7855 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
7856 frame struct members of non-existent frames (Bug#6284).
7857
699c10bd
JD
78582011-07-08 Jan Djärv <jan.h.d@swipnet.se>
7859
4393663b
JD
7860 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
7861 variable firstTime not needed on OSX >= 10.6.
7862 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
7863 >= 10.5. Use setKnobProportion, setDoubleValue.
7864
7865 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
7866 (MAC_OS_X_VERSION_10_5): Define if not defined.
7867 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
7868 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
7869 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
7870
7871 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
090bd7cb 7872 cString and lossyCString on OSX >= 10.4.
4393663b 7873
58179cce 7874 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
4393663b
JD
7875 sizeToFit on OSX >= 10.2.
7876
7877 * nsimage.m (allocInitFromFile): Don't use deprecated method
7878 bestRepresentationForDevice on OSX >= 10.6.
7879
7880 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
7881 to avoid warning.
7882
7883 * emacs.c: Declare unexec_init_emacs_zone.
7884
a63e0781
JD
7885 * nsgui.h: Fix compiler warning about gnulib redefining verify.
7886
699c10bd
JD
7887 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
7888
7889 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
7890 on svcsMenu (Bug#8842).
7891
7892 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
7893 ns_return_types.
7894 (Fns_list_services): Just return Qnil on 10.6, code not working there.
7895
7896 * nsterm.m (QUTF8_STRING): Declare.
7897 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
7898 (validRequestorForSendType): Return type is (id).
7899 Change indexOfObjectIdenticalTo to indexOfObject.
7900 Check if we have local selection before returning self (Bug#8842).
7901 (writeSelectionToPasteboard): Put local selection into paste board
7902 if we have a local selection (Bug#8842).
7903 (syms_of_nsterm): DEFSYM QUTF8_STRING.
7904
7905 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
7906 (ns_get_local_selection): Declare.
7907
54e10184
LMI
79082011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
7909
9888ff71
LMI
7910 * keymap.c (describe_map_tree): Don't insert a double newline at
7911 the end of the buffer (bug#1169) and return whether we inserted
7912 something.
7913
54e10184
LMI
7914 * callint.c (Fcall_interactively): Change "reading args" to
7915 "providing args" to try to clarify what it does (bug#1010).
7916
15fa4783
KH
79172011-07-07 Kenichi Handa <handa@m17n.org>
7918
7919 * composite.c (composition_compute_stop_pos): Ignore a static
7920 composition starting before CHARPOS (Bug#8915).
7921
7922 * xdisp.c (handle_composition_prop): Likewise.
7923
a8815b00
EZ
79242011-07-07 Eli Zaretskii <eliz@gnu.org>
7925
7926 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
7927 (Bug#9015)
7928
ef7b981d 79292011-07-07 Kenichi Handa <handa@m17n.org>
c805dec0
KH
7930
7931 * character.h (unicode_category_t): New enum type.
7932
7933 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
7934 (Qchar_code_property_table): New variable.
7935 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
7936 (UNIPROP_COMPRESSED_FORM_P): New macros.
7937 (char_table_ascii): Uncompress the compressed values.
7938 (sub_char_table_ref): New arg is_uniprop. Callers changed.
7939 Uncompress the compressed values.
ac389d0c 7940 (sub_char_table_ref_and_range): Likewise.
c805dec0
KH
7941 (char_table_ref_and_range): Uncompress the compressed values.
7942 (sub_char_table_set): New arg is_uniprop. Callers changed.
7943 Uncompress the compressed values.
7944 (sub_char_table_set_range): Args changed. Callers changed.
7945 (char_table_set_range): Adjuted for the above change.
7946 (map_sub_char_table): Delete args default_val and parent. Add arg
7947 top. Give decoded values to a Lisp function.
640c8776 7948 (map_char_table): Adjust for the above change. Give decoded
c805dec0
KH
7949 values to a Lisp function. Gcpro more variables.
7950 (uniprop_table_uncompress)
7951 (uniprop_decode_value_run_length): New functions.
7952 (uniprop_decoder, uniprop_decoder_count): New variables.
7953 (uniprop_get_decoder, uniprop_encode_value_character)
7954 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
7955 New functions.
7956 (uniprop_encoder, uniprop_encoder_count): New variables.
7957 (uniprop_get_encoder, uniprop_table)
7958 (Funicode_property_table_internal, Fget_unicode_property_internal)
7959 (Fput_unicode_property_internal): New functions.
7960 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
7961 Sunicode_property_table_internal, Sget_unicode_property_internal,
5e617bc2 7962 and Sput_unicode_property_internal. Defvar_lisp
c805dec0
KH
7963 char-code-property-alist.
7964
640c8776 7965 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
c805dec0
KH
7966 Vunicode_category_table.
7967
640c8776 7968 * font.c (font_range): Adjust for the change of
c805dec0
KH
7969 Vunicode_category_table.
7970
76b397fb
DN
79712011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
7972
7973 * m/iris4d.h: Remove file, move contents ...
7974 * s/irix6-5.h: ... here.
7975
22b4128e
PE
79762011-07-06 Paul Eggert <eggert@cs.ucla.edu>
7977
7978 Remove unportable assumption about struct layout (Bug#8884).
8a5c77bb
PE
7979 * alloc.c (mark_buffer):
7980 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
7981 (clone_per_buffer_values): Don't assume that
22b4128e
PE
7982 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
7983 This isn't true in general, and it's particularly not true
7984 if Emacs is configured with --with-wide-int.
7985 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
7986 New macros, used in the buffer.c change.
7987
869795d6
JD
79882011-07-05 Jan Djärv <jan.h.d@swipnet.se>
7989
7990 * xsettings.c: Use both GConf and GSettings if both are available.
7991 (store_config_changed_event): Add comment.
7992 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
7993 (store_tool_bar_style_changed): New functions.
5e617bc2 7994 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
869795d6
JD
7995 (struct xsettings): Move font inside HAVE_XFT.
7996 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
640c8776 7997 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
869795d6 7998 Move inside HAVE_XFT.
640c8776 7999 (something_changed_gsettingsCB): Rename from something_changedCB.
869795d6
JD
8000 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
8001 also.
8002 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
5e617bc2 8003 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
640c8776 8004 (something_changed_gconfCB): Rename from something_changedCB.
869795d6
JD
8005 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
8006 (parse_settings): Move check for font inside HAVE_XFT.
8007 (read_settings, apply_xft_settings): Add comment.
8008 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
8009 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
8010 call store_font_name_changed.
8011 (xft_settings_event): Add comment.
8012 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
8013 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
8014 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
8015 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
8016 (xsettings_initialize): Call init_gsettings last.
640c8776
SM
8017 (xsettings_get_system_font, xsettings_get_system_normal_font):
8018 Add comment.
869795d6 8019
d8ed26bd
PE
80202011-07-05 Paul Eggert <eggert@cs.ucla.edu>
8021
8022 Random fixes. E.g., (random) never returned negative values.
8023 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
8024 subseconds part to the entropy, as that's a bit more random.
8025 Prefer signed to unsigned, since the signedness doesn't matter and
8026 in general we prefer signed. When given a limit, use a
8027 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
8028 latter isn't right if USE_2_TAGS_FOR_INTS.
8029 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
8030 not 0..VALMASK. Don't discard "excess" bits that random () returns.
8031
cabf1cac
SM
80322011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
8033
8034 * textprop.c (text_property_stickiness):
8035 Obey Vtext_property_default_nonsticky.
8036 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
8037 * w32fns.c (syms_of_w32fns):
8038 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
8039
6e9b2be9
PE
80402011-07-04 Paul Eggert <eggert@cs.ucla.edu>
8041
8042 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
8043 This is more efficient than Ffile_directory_p and avoids a minor race.
8044
90186c68
LMI
80452011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
8046
7c301272
LMI
8047 * buffer.c (Foverlay_put): Say what the return value is
8048 (bug#7835).
8049
c4f2d8d4
LMI
8050 * fileio.c (barf_or_query_if_file_exists): Check first if the file
8051 is a directory before asking whether to use the file name
8052 (bug#7564).
ad637907
LMI
8053 (barf_or_query_if_file_exists): Make the "File is a directory"
8054 error be more correct.
c4f2d8d4 8055
90186c68
LMI
8056 * fns.c (Frequire): Remove the mention of the .gz files, since
8057 that's installation-specific, but keep the mention of
8058 `get-load-suffixes'.
8059
da64016e
PE
80602011-07-04 Paul Eggert <eggert@cs.ucla.edu>
8061
8062 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
8063 Report string overflow if the output is too long.
8064
7d47b580
JB
80652011-07-04 Juanma Barranquero <lekktu@gmail.com>
8066
a555cb87
JB
8067 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
8068 (syms_of_gnutls): Remove duplicate DEFSYM for
8069 Qgnutls_bootprop_verify_hostname_error, an error for
8070 Qgnutls_bootprop_verify_error (which is no longer used).
8071
7d47b580
JB
8072 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
8073 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
8074 Also (re)move comments that are misplaced or no longer relevant.
8075
1e49bfab
LMI
80762011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
8077
8078 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
8079
1485f4c0
CY
80802011-07-03 Chong Yidong <cyd@stupidchicken.com>
8081
8082 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
8083 and background color parameters if they have been changed.
8084
a9ab721e
LMI
80852011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
8086
8087 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
8088
cf7cff57
PE
80892011-07-03 Paul Eggert <eggert@cs.ucla.edu>
8090
2e13213d
PE
8091 * xsettings.c (SYSTEM_FONT): Define only when used.
8092 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
8093
cf7cff57
PE
8094 * keymap.c (access_keymap_1): Now static.
8095
7a8e04f7
CY
80962011-07-02 Chong Yidong <cyd@stupidchicken.com>
8097
8098 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
8099 leave any prefix arg for the up event (Bug#1586).
8100
61352f62
LMI
81012011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
8102
69bb1ef7
LMI
8103 * lread.c (syms_of_lread): Mention single symbols defined by
8104 `defvar' or `defconst' (bug#7154).
8105
61352f62 8106 * fns.c (Frequire): Mention .el.gz files (bug#7314).
7b3747f9 8107 (Frequire): Mention get-load-suffixes.
61352f62 8108
28545e04
MR
81092011-07-02 Martin Rudalics <rudalics@gmx.at>
8110
8111 * window.h (window): Remove clone_number slot.
8112 * window.c (Fwindow_clone_number, Fset_window_clone_number):
8113 Remove.
8114 (make_parent_window, make_window, saved_window)
8115 (Fset_window_configuration, save_window_save): Don't deal with
8116 clone numbers.
8117 * buffer.c (Qclone_number): Remove declaration.
8118 (sort_overlays, overlay_strings): Don't deal with clone numbers.
8119
3349e122
SM
81202011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
8121
8122 Add multiple inheritance to keymaps.
8123 * keymap.c (Fmake_composed_keymap): New function.
8124 (Fset_keymap_parent): Simplify.
8125 (fix_submap_inheritance): Remove.
8126 (access_keymap_1): New function extracted from access_keymap to handle
8127 embedded parents and handle lists of maps.
8128 (access_keymap): Use it.
8129 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
8130 (Fcopy_keymap): Handle embedded parents.
8131 (Fcommand_remapping, define_as_prefix): Simplify.
8132 (Fkey_binding): Simplify.
8133 (syms_of_keymap): Move minibuffer-local-completion-map,
8134 minibuffer-local-filename-completion-map,
8135 minibuffer-local-must-match-map, and
8136 minibuffer-local-filename-must-match-map to Elisp.
8137 (syms_of_keymap): Defsubr make-composed-keymap.
8138 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
8139 (parse_menu_item): Trivial simplification.
8140
3279eb87
GM
81412011-07-01 Glenn Morris <rgm@gnu.org>
8142
8143 * Makefile.in (SETTINGS_LIBS): Fix typo.
8144
4550efdf
KI
81452011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny patch)
8146
8147 * coding.c (Fencode_coding_string): Record the last coding system
8148 used, as the function doc string says (bug#8738).
8149
0949d2b6
JD
81502011-07-01 Jan Djärv <jan.h.d@swipnet.se>
8151
8152 * xsettings.c (store_monospaced_changed): Take new font as arg and
8153 check for change against current_mono_font.
8154 (EMACS_TYPE_SETTINGS): Remove this and related defines.
8155 (emacs_settings_constructor, emacs_settings_get_property)
8156 (emacs_settings_set_property, emacs_settings_class_init)
8157 (emacs_settings_init, gsettings_obj): Remove.
8158 (something_changedCB): New function for HAVE_GSETTINGS.
8159 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
8160 with value as argument.
8161 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
8162 g_settings_new (Bug#8967). Do not create gsettings_obj.
9173deec 8163 Remove calls to g_settings_bind. Connect something_changedCB to
0949d2b6
JD
8164 "changed".
8165
8166 * xgselect.c: Add defined (HAVE_GSETTINGS).
8167 (xgselect_initialize): Ditto.
8168
8169 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
8170 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
8171 xg_select.
8172
bbc6b304
PE
81732011-07-01 Paul Eggert <eggert@cs.ucla.edu>
8174
8175 * eval.c (struct backtrace): Simplify and port the data structure.
8176 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
8177 signed bit field, as this assumption is not portable and it makes
8178 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
8179 "char debug_on_exit : 1" as this is not portable either; instead,
8180 use the portable "unsigned int debug_on_exit : 1". Remove unused
8181 member evalargs. Remove obsolete comments about cc bombing out.
8182
9851bfc5
JD
81832011-06-30 Jan Djärv <jan.h.d@swipnet.se>
8184
51bb811f 8185 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
9851bfc5
JD
8186 Let HAVE_GSETTINGS override HAVE_GCONF.
8187 (store_monospaced_changed): New function.
8188 (EMACS_SETTINGS): A new type derived from GObject to handle
8189 GSettings notifications.
8190 (emacs_settings_constructor, emacs_settings_get_property)
8191 (emacs_settings_set_property, emacs_settings_class_init):
8192 New functions.
8193 (gsettings_client, gsettings_obj): New variables.
8194 (GSETTINGS_SCHEMA): New define.
8195 (something_changedCB): Call store_monospaced_changed.
8196 (init_gsettings): New function.
8197 (xsettings_initialize): Call init_gsettings.
8198 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
8199 to NULL.
8200
640c8776 8201 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
9851bfc5
JD
8202 GCONF_CFLAGS/LIBS.
8203
5386012d
MR
82042011-06-29 Martin Rudalics <rudalics@gmx.at>
8205
8206 * window.c (resize_root_window, grow_mini_window)
8207 (shrink_mini_window): Rename Qresize_root_window to
8208 Qwindow_resize_root_window and Qresize_root_window_vertically to
8209 Qwindow_resize_root_window_vertically.
8210
f13e0b08
PE
82112011-06-28 Paul Eggert <eggert@cs.ucla.edu>
8212
8213 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
8214
94515237
JB
82152011-06-27 Juanma Barranquero <lekktu@gmail.com>
8216
8217 * makefile.w32-in: Redesign dependencies so they reflect more
8218 clearly which files are directly included by each source file,
8219 and not through other includes.
8220
e43b6e43
MR
82212011-06-27 Martin Rudalics <rudalics@gmx.at>
8222
8223 * buffer.c (Qclone_number): Declare static and DEFSYM it.
8224 (sort_overlays, overlay_strings): When an overlay's clone number
8225 matches the window's clone number process the overlay even if
8226 the overlay's window property doesn't match the current window.
8227
d68443dc
MR
8228 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
8229 (Fwindow_hchild): Rename to Fwindow_left_child.
8230 (Fwindow_next): Rename to Fwindow_next_sibling.
8231 (Fwindow_prev): Rename to Fwindow_prev_sibling.
d615d6d2
MR
8232 (resize_window_check): Rename to window_resize_check.
8233 (resize_window_apply): Rename to window_resize_apply.
8234 (Fresize_window_apply): Rename to Fwindow_resize_apply.
8235 (Fdelete_other_windows_internal, resize_frame_windows)
8236 (Fsplit_window_internal, Fdelete_window_internal)
8237 (grow_mini_window, shrink_mini_window)
8238 (Fresize_mini_window_internal): Fix callers accordingly.
d68443dc 8239
c7e73be5
JD
82402011-06-26 Jan Djärv <jan.h.d@swipnet.se>
8241
8242 * emacsgtkfixed.h: State that this is only used with Gtk+3.
8243 (emacs_fixed_set_min_size): Remove.
8244 (emacs_fixed_new): Take frame as argument.
8245
8246 * emacsgtkfixed.c: State that this is only used with Gtk+3.
8247 (_EmacsFixedPrivate): Remove minwidth/height.
8248 Add struct frame *f.
8249 (emacs_fixed_init): Initialize priv->f.
8250 (get_parent_class, emacs_fixed_set_min_size): Remove.
8251 (emacs_fixed_new): Set priv->f to argument.
8252 (emacs_fixed_get_preferred_width)
8253 (emacs_fixed_get_preferred_height): Use min_width/height from
8254 frames size_hint to set minimum and natural (Bug#8919).
8255 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
8256 and use min_width/height from frames size_hint to set
8257 min_width/height (Bug#8919).
8258
8259 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
9173deec
JB
8260 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
8261 Fix indentation.
c7e73be5 8262
cf99dcf8
EZ
82632011-06-26 Eli Zaretskii <eliz@gnu.org>
8264
8265 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
8266 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
8267 called at ZV.
8268
029529ac
CY
82692011-06-26 Chong Yidong <cyd@stupidchicken.com>
8270
8271 * process.c (wait_reading_process_output): Bypass select if
8272 waiting for a cell while ignoring keyboard input, and input is
8273 pending. Suggested by Jan Djärv (Bug#8869).
8274
7a7ef429
PE
82752011-06-25 Paul Eggert <eggert@cs.ucla.edu>
8276
8277 Use gnulib's dup2 module instead of rolling our own.
8278 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
8279
11fdef7d 82802011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
989b42d2
YM
8281
8282 * dispnew.c (scrolling_window): Before scrolling, turn off a
8283 mouse-highlight in the window being scrolled.
8284
cd3520a4
JB
82852011-06-24 Juanma Barranquero <lekktu@gmail.com>
8286
8287 Move DEFSYM to lisp.h and use everywhere.
8288
8289 * character.h (DEFSYM): Move declaration...
8290 * lisp.h (DEFSYM): ...here.
8291
8292 * gnutls.c:
8293 * minibuf.c:
8294 * w32menu.c:
8295 * w32proc.c:
8296 * w32select.c: Don't include character.h.
8297
8298 * alloc.c (syms_of_alloc):
8299 * buffer.c (syms_of_buffer):
8300 * bytecode.c (syms_of_bytecode):
8301 * callint.c (syms_of_callint):
8302 * casefiddle.c (syms_of_casefiddle):
8303 * casetab.c (init_casetab_once):
8304 * category.c (init_category_once, syms_of_category):
8305 * ccl.c (syms_of_ccl):
8306 * cmds.c (syms_of_cmds):
8307 * composite.c (syms_of_composite):
8308 * dbusbind.c (syms_of_dbusbind):
8309 * dired.c (syms_of_dired):
8310 * dispnew.c (syms_of_display):
8311 * doc.c (syms_of_doc):
8312 * editfns.c (syms_of_editfns):
8313 * emacs.c (syms_of_emacs):
8314 * eval.c (syms_of_eval):
8315 * fileio.c (syms_of_fileio):
8316 * fns.c (syms_of_fns):
8317 * frame.c (syms_of_frame):
8318 * fringe.c (syms_of_fringe):
8319 * insdel.c (syms_of_insdel):
8320 * keymap.c (syms_of_keymap):
8321 * lread.c (init_obarray, syms_of_lread):
8322 * macros.c (syms_of_macros):
8323 * msdos.c (syms_of_msdos):
8324 * print.c (syms_of_print):
8325 * process.c (syms_of_process):
8326 * search.c (syms_of_search):
8327 * sound.c (syms_of_sound):
8328 * syntax.c (init_syntax_once, syms_of_syntax):
8329 * terminal.c (syms_of_terminal):
8330 * textprop.c (syms_of_textprop):
8331 * undo.c (syms_of_undo):
8332 * w32.c (globals_of_w32):
8333 * window.c (syms_of_window):
8334 * xdisp.c (syms_of_xdisp):
8335 * xfaces.c (syms_of_xfaces):
8336 * xfns.c (syms_of_xfns):
8337 * xmenu.c (syms_of_xmenu):
8338 * xsettings.c (syms_of_xsettings):
8339 * xterm.c (syms_of_xterm): Use DEFSYM.
8340
4228cf16
TZ
83412011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
8342
cd3520a4 8343 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
4228cf16 8344
7fcccf1e
PE
83452011-06-23 Paul Eggert <eggert@cs.ucla.edu>
8346
7efb4e0e
PE
8347 Integer and buffer overflow fixes (Bug#8873).
8348
ff5844ad
PE
8349 * print.c (printchar, strout): Check for string overflow.
8350 (PRINTPREPARE, printchar, strout):
8351 Don't set size unless allocation succeeds.
8352
90532f02
PE
8353 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
8354 for sizes. Check for string overflow more accurately.
8355 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
8356
6d84508d
PE
8357 * macros.c: Integer and buffer overflow fixes.
8358 * keyboard.h (struct keyboard.kbd_macro_bufsize):
8359 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
8360 Use ptrdiff_t, not int, for sizes.
8361 Don't increment bufsize until after realloc succeeds.
8362 Check for size-calculation overflow.
8363 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
8364
437b2cb4
PE
8365 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
8366
8b9ac8b4
PE
8367 * lread.c: Integer overflow fixes.
8368 (read_integer): Radix is now EMACS_INT, not int,
8369 to improve quality of diagnostics for out-of-range radices.
8370 Calculate buffer size correctly for out-of-range radices.
8371 (read1): Check for integer overflow in radices, and in
8372 read-circle numbers.
82cb60d3
PE
8373 (read_escape): Avoid int overflow.
8374 (Fload, openp, read_buffer_size, read1)
8375 (substitute_object_recurse, read_vector, read_list, map_obarray):
8376 Use ptrdiff_t, not int, for sizes.
8377 (read1): Use EMACS_INT, not int, for sizes.
20270765 8378 Check for size overflow.
8b9ac8b4 8379
7fcccf1e
PE
8380 * image.c (cache_image): Check for size arithmetic overflow.
8381
bfbbd7e7
PE
8382 * lread.c: Integer overflow issues.
8383 (saved_doc_string_size, saved_doc_string_length)
8384 (prev_saved_doc_string_size, prev_saved_doc_string_length):
8385 Now ptrdiff_t, not int.
8386 (read1): Don't assume doc string length fits in int. Check for
8387 out-of-range doc string lengths.
8388 (read_list): Don't assume file position fits in int.
39019e54 8389 (read_escape): Check for hex character overflow.
bfbbd7e7 8390
4e323265
LL
83912011-06-22 Leo Liu <sdl.web@gmail.com>
8392
8393 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
8394 Move to minibuffer.el.
8395
85fece3e
PE
83962011-06-22 Paul Eggert <eggert@cs.ucla.edu>
8397
20b84ce9 8398 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
85fece3e
PE
8399 The following patches are for when GLYPH_DEBUG && !XASSERT.
8400 * dispextern.h (trace_redisplay_p, dump_glyph_string):
8401 * dispnew.c (flush_stdout):
8402 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
8403 Mark as externally visible.
8404 * dispnew.c (check_window_matrix_pointers): Now static.
8405 * dispnew.c (window_to_frame_vpos):
8406 * xfns.c (unwind_create_frame):
8407 * xterm.c (x_check_font): Remove unused local.
8408 * scroll.c (CHECK_BOUNDS):
8409 * xfaces.c (cache_fache): Rename local to avoid shadowing.
8410 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
8411 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
8412 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
8413 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
8414 Now static.
8415 (debug_method_add): Use va_list and vsprintf rather than relying
8416 on undefined behavior with wrong number of arguments.
8417 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
8418 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
8419 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
8420 since we're not interested in debugging glyphs with old libraries.
8421 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
8422 GCC 4.6.0's static checking.
8423
0766b489
PE
84242011-06-22 Paul Eggert <eggert@cs.ucla.edu>
8425
31fd4b32
PE
8426 Integer overflow and signedness fixes (Bug#8873).
8427 A few related buffer overrun fixes, too.
8428
b79e8648
PE
8429 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
8430
0766b489
PE
8431 * dispextern.h (struct face.stipple):
8432 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
8433 (x_bitmap_mask, x_allocate_bitmap_record)
8434 (x_create_bitmap_from_data, x_create_bitmap_from_file)
8435 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
8436 (x_create_bitmap_from_xpm_data):
8437 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
8438 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
8439 (.bitmaps_last):
8440 * xfaces.c (load_pixmap):
8441 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
8442 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
8443 (.bitmaps_last, struct x_output.icon_bitmap):
8444 Use ptrdiff_t, not int, for bitmap indexes.
8445 (x_allocate_bitmap_record): Check for size overflow.
8446 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
8447
b081724f
PE
8448 Use ptrdiff_t, not int, for overlay counts.
8449 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
8450 * editfns.c (overlays_around, get_pos_property):
8451 * textprop.c (get_char_property_and_overlay):
8452 * xdisp.c (next_overlay_change, note_mouse_highlight):
8453 * xfaces.c (face_at_buffer_position):
21514da7
PE
8454 * buffer.c (OVERLAY_COUNT_MAX): New macro.
8455 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
8456 (Fnext_overlay_change, Fprevious_overlay_change)
8457 (mouse_face_overlay_overlaps, Foverlays_in):
b081724f 8458 Use ptrdiff_t, not int, for sizes.
21514da7 8459 (overlays_at, overlays_in): Check for size-calculation overflow.
b081724f 8460
3de73e5e
PE
8461 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
8462
2606c57b
PE
8463 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
8464 (x_session_initialize): Do not assume string length fits in int.
8465
aaafe47a
PE
8466 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
8467 This is unlikely, but can occur if DPI is outlandish.
8468
2674ddc8 8469 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
3a5077c5
PE
8470 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
8471
28154962
PE
8472 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
8473 * xrdb.c (magic_file_p, search_magic_path):
8474 Omit last arg SUFFIX; it was always 0. All callers changed.
8475 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
8476
7de51af5
PE
8477 * xfont.c (xfont_match): Avoid need for strlen.
8478
25ed6cc3
PE
8479 * xfns.c: Don't assume strlen fits in int.
8480 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
8481
4eab31dd
PE
8482 * xdisp.c (message_log_check_duplicate): Return intmax_t,
8483 not unsigned long, as we prefer signed integers. All callers changed.
8484 Detect integer overflow in repeat count.
8485 (message_dolog): Don't assume print length fits in 39 bytes.
df1f27af 8486 (display_mode_element): Don't assume strlen fits in int.
4eab31dd 8487
171e2a58
PE
8488 * termcap.c: Don't assume sizes fit in int and never overflow.
8489 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
8490 (gobble_line): Check for size-calculation overflow.
8491
ad39faca 8492 * minibuf.c (Fread_buffer):
6e5bb2dc 8493 * lread.c (intern, intern_c_string):
74ca2eb3
PE
8494 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
8495 Don't assume string length fits in int.
8496
52c61c22 8497 * keyboard.c (parse_tool_bar_item):
9bda3520
PE
8498 * gtkutil.c (style_changed_cb): Avoid need for strlen.
8499
b5b8c9e5
PE
8500 * font.c: Don't assume string length fits in int.
8501 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
8502 Use ptrdiff_t, not int.
ccd6111c
PE
8503 (font_intern_prop): Don't assume string length fits in int.
8504 Don't assume integer property fits in fixnum.
8505 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
b5b8c9e5 8506
882f0d81 8507 * filelock.c: Fix some buffer overrun and integer overflow issues.
51cab52b 8508 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
882f0d81
PE
8509 Reformulate so as not to need the command string.
8510 Invoke gzip -cd rather than gunzip, as it's more portable.
8511 (lock_info_type, lock_file_1, lock_file):
8512 Don't assume pid_t and time_t fit in unsigned long.
8513 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
8514 (current_lock_owner): Prefer signed type for sizes.
8515 Use memcpy, not strncpy, where memcpy is what is really wanted.
8516 Don't assume (via atoi) that time_t and pid_t fit in int.
8517 Check for time_t and/or pid_t out of range, e.g., via a network share.
8518 Don't alloca where an auto var works fine.
8519
93f4cf88
PE
8520 * fileio.c: Fix some integer overflow issues.
8521 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
8522 Don't assume string length fits in int.
8523 (directory_file_name): Don't assume string length fits in long.
8524 (make_temp_name): Don't assume pid fits in int, or that its print
8525 length is less than 20.
8526
f3e92b69
PE
8527 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
8528
1bfdaf10
PE
8529 * coding.c (make_subsidiaries): Don't assume string length fits in int.
8530
35016e9a
PE
8531 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
8532
3d1e65a1
PE
8533 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
8534 We prefer signed integers, even for size calculations.
8535
0b963a93
PE
8536 * emacs.c: Don't assume string length fits in 'int'.
8537 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
8538 (main): Don't invoke strlen when not needed.
8539
573f4b54
PE
8540 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
8541 (XD_DEBUG_MESSAGE): Don't waste a byte.
8542
989f33ba
PE
8543 * callproc.c (getenv_internal_1, getenv_internal)
8544 (Fgetenv_internal):
965d34eb
PE
8545 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
8546
e4d29b33
PE
8547 * lread.c (invalid_syntax): Omit length argument.
8548 All uses changed. This doesn't fix a bug, but it simplifies the
8549 code away from its former Hollerith-constant appearance, and it's
8550 one less 'int' to worry about when looking at integer-overflow issues.
51cab52b 8551 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
e4d29b33 8552
eb49b136
PE
8553 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
8554 This didn't break anything, but it didn't help either.
8555 It's confusing to put a bogus integer in a place where the actual
8556 value does not matter.
9f62aeb1 8557 (LIST_END_P): Remove unused macro and its bogus comment.
cbeff735 8558 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
eb49b136 8559
15375a22
PE
8560 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
8561 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
8562 implementation.
b61cc01c
PE
8563 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
8564 We prefer signed types, and the value cannot exceed the EMACS_INT
8565 range anyway (because otherwise the length would not be representable).
9a8e8d9b
PE
8566 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
8567 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
8568 This avoids a GCC warning when WIDE_EMACS_INT.
15375a22 8569
53b2623d
PE
8570 * indent.c (sane_tab_width): New function.
8571 (current_column, scan_for_column, Findent_to, position_indentation)
8572 (compute_motion): Use it. This is just for clarity.
8fcaf9cc 8573 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
53b2623d 8574
51cab52b 8575 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
45aebb64 8576
f2ed8a70
PE
8577 * lisp.h (lint_assume): New macro.
8578 * composite.c (composition_gstring_put_cache):
8579 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
8580
abe80cc6
PE
8581 * editfns.c, insdel.c:
8582 Omit unnecessary forward decls, to simplify future changes.
a9e860e1 8583
b02c740e
PE
8584 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
8585
ebc96716
PE
8586 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
8587
b4e50fa0 8588 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
f03dc6ef 8589 Use much-faster test for byte-length change.
311d5d7c 8590 Don't assume string byte-length fits in 'int'.
a4cf38e4 8591 Check that character arg fits in 'int'.
85461888 8592 (mapcar1): Declare byte as byte, for clarity.
b4e50fa0 8593
c0c1ee9f
PE
8594 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
8595
a498d7f4
PE
8596 * fns.c (concat): Catch string overflow earlier.
8597 Do not rely on integer wraparound.
8598
51cab52b
PE
8599 * dispextern.h (struct it.overlay_strings_charpos)
8600 (struct it.selective): Now EMACS_INT, not int.
87830974
PE
8601 * xdisp.c (forward_to_next_line_start)
8602 (back_to_previous_visible_line_start)
8603 (reseat_at_next_visible_line_start, next_element_from_buffer):
8604 Don't arbitrarily truncate the value of 'selective' to int.
8605
76031fad
PE
8606 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
8607
5eb55db9
PE
8608 * composite.c: Don't truncate sizes to 'int'.
8609 (composition_gstring_p, composition_reseat_it)
8610 (composition_adjust_point): Use EMACS_INT, not int.
7d100a81
PE
8611 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
8612 not EMACS_UINT, for indexes.
5eb55db9 8613
0703a717
PE
8614 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
8615
d6202519
PE
8616 * buffer.c: Include <verify.h>.
8617 (struct sortvec.priority, struct sortstr.priority):
8961a454 8618 Now EMACS_INT, not int.
c20998a7 8619 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
67c36fce
PE
8620 (struct sortstr.size, record_overlay_string)
8621 (struct sortstrlist.size, struct sortlist.used):
8622 Don't truncate size to int.
8623 (record_overlay_string): Check for size-calculation overflow.
d6202519 8624 (init_buffer_once): Check at compile-time, not run-time.
fadf4e30 8625
d5a19415
JM
86262011-06-22 Jim Meyering <meyering@redhat.com>
8627
029529ac 8628 Don't leak an XBM-image-sized buffer
d5a19415
JM
8629 * image.c (xbm_load): Free the image buffer after using it.
8630
a9041e6c
PE
86312011-06-21 Paul Eggert <eggert@cs.ucla.edu>
8632
8633 Port to Sun C.
8634 * composite.c (find_automatic_composition): Omit needless 'return 0;'
8635 that Sun C diagnosed.
8636 * fns.c (secure_hash): Fix pointer signedness issue.
8637 * intervals.c (static_offset_intervals): New function.
8638 (offset_intervals): Use it.
8639
7f3f739f
LL
86402011-06-21 Leo Liu <sdl.web@gmail.com>
8641
8642 * deps.mk (fns.o):
8643 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
8644 sha512.h.
8645
8646 * fns.c (secure_hash): Rename from crypto_hash_function and change
8647 the first arg to accept symbols.
5b66d427 8648 (Fsecure_hash): New primitive.
7f3f739f
LL
8649 (syms_of_fns): New symbols.
8650
76147d94
DD
86512011-06-20 Deniz Dogan <deniz@dogan.se>
8652
8653 * process.c (Fset_process_buffer): Clarify return value in
8654 docstring.
8655
7d7d0045
CY
86562011-06-18 Chong Yidong <cyd@stupidchicken.com>
8657
8658 * dispnew.c (add_window_display_history): Use BVAR.
8659
8660 * xdisp.c (debug_method_add): Use BVAR.
8661 (check_window_end, dump_glyph_matrix, dump_glyph)
8662 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
8663
8664 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
8665 Likewise.
8666
8667 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
8668 check till after the cache is created in init_frame_faces.
8669
ff2bc410
SM
86702011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
8671
8672 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
8673
28177add
PE
86742011-06-16 Paul Eggert <eggert@cs.ucla.edu>
8675
dd3482fe
PE
8676 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
8677 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
8678 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
8679
393d71f3 8680 Improve buffer-overflow checking (Bug#8873).
1c8e352f
PE
8681 * fileio.c (Finsert_file_contents):
8682 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
8683 Remove the old (too-loose) buffer overflow checks.
8684 They weren't needed, since make_gap checks for buffer overflow.
8685 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
8686 The old code merely checked for Emacs fixnum overflow, and relied
8687 on undefined (wraparound) behavior. The new code avoids undefined
8688 behavior, and also checks for ptrdiff_t and/or size_t overflow.
8689
2e6813b0 8690 * editfns.c (Finsert_char): Don't dump core with very negative counts.
21d890a4
PE
8691 Tune. Don't use wider integers than needed. Don't use alloca.
8692 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
2e6813b0 8693
599a9e4f
PE
8694 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
8695
99561444
PE
8696 * insdel.c, lisp.h (buffer_overflow): New function.
8697 (insert_from_buffer_1, replace_range, replace_range_2):
8698 * insdel.c (make_gap_larger):
8699 * editfns.c (Finsert_char):
8700 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
8701
28177add
PE
8702 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
8703
e69dafad
PE
87042011-06-15 Paul Eggert <eggert@cs.ucla.edu>
8705
4baa020d 8706 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
ff672d2c 8707
b1c46f02
PE
8708 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
8709 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
8710
e69dafad
PE
8711 * fileio.c: Don't assume EMACS_INT fits in off_t.
8712 (emacs_lseek): New static function.
8713 (Finsert_file_contents, Fwrite_region): Use it.
8714 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
8715
566684ea
PE
8716 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
8717
e6966cd6
PE
8718 * fns.c: Don't overflow int when computing a list length.
8719 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
8720 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
8721 truncation on 64-bit hosts. Check for QUIT every
8722 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
8723 faster and is responsive enough.
8724 (Flength): Report an error instead of overflowing an integer.
8725 (Fsafe_length): Return a float if the value is not representable
8726 as a fixnum. This shouldn't happen except in contrived situations.
6346d301 8727 (Fnthcdr, Fsort): Don't assume list length fits in int.
de41a810 8728 (Fcopy_sequence): Don't assume vector length fits in int.
00c604f2 8729
dd0b0efb
PE
8730 * alloc.c: Check that resized vectors' lengths fit in fixnums.
8731 (header_size, word_size): New constants.
8732 (allocate_vectorlike): Don't check size overflow here.
8733 (allocate_vector): Check it here instead, since this is the only
8734 caller of allocate_vectorlike that could cause overflow.
8735 Check that the new vector's length is representable as a fixnum.
8736
86fe5cfe
PE
8737 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
8738 The previous code was bogus. For example, next_almost_prime (32)
8739 returned 39, which is undesirable as it is a multiple of 3; and
8740 next_almost_prime (24) returned 25, which is a multiple of 5 so
8741 why was the code bothering to check for multiples of 7?
8742
80e88859
PE
8743 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
8744
4a2f0ad6
PE
8745 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
8746
f66c7cf8
PE
8747 Variadic C functions now count arguments with ptrdiff_t.
8748 This partly undoes my 2011-03-30 change, which replaced int with size_t.
8749 Back then I didn't know that the Emacs coding style prefers signed int.
8750 Also, in the meantime I found a few more instances where arguments
4a2f0ad6
PE
8751 were being counted with int, which may truncate counts on 64-bit
8752 machines, or EMACS_INT, which may be unnecessarily wide.
f66c7cf8
PE
8753 * lisp.h (struct Lisp_Subr.function.aMANY)
8754 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
8755 Arg counts are now ptrdiff_t, not size_t.
8756 All variadic functions and their callers changed accordingly.
8757 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
8758 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
8759 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
8760 * callint.c (Fcall_interactively): Check arg count for overflow,
8761 to avoid potential buffer overrun. Use signed char, not 'int',
8762 for 'varies' array, so that we needn't bother to check its size
8763 calculation for overflow.
8764 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
8765 * eval.c (apply_lambda):
8766 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
8767 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
8768 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
8769
a1759b76
PE
8770 * callint.c (Fcall_interactively): Don't use index var as event count.
8771
d96be9fc
PE
8772 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
8773 * mem-limits.h (SIZE): Remove; no longer used.
8774
a690a978 8775 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
5efd304b 8776
578c21e6
PE
8777 Remove unnecessary casts.
8778 * xterm.c (x_term_init):
8779 * xfns.c (x_set_border_pixel):
8780 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
8781 These aren't needed now that we assume ANSI C.
8782
96f53c6c
PE
8783 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
8784 It's more likely to cause problems (due to unsigned overflow)
8785 than to cure them.
8786
83c77d31
PE
8787 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
8788
ee2079f1
PE
8789 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
8790
6da65536
PE
8791 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
8792
7147c4a4
PE
8793 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
8794
193e32d9
PE
8795 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
8796
e5533da6
PE
8797 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
8798
9910e595
PE
8799 GLYPH_CODE_FACE returns EMACS_INT, not int.
8800 * dispextern.h (merge_faces):
8801 * xfaces.c (merge_faces):
01103c44
PE
8802 * xdisp.c (get_next_display_element, next_element_from_display_vector):
8803 Don't assume EMACS_INT fits in int.
9910e595 8804
2638320e
PE
8805 * character.h (CHAR_VALID_P): Remove unused parameter.
8806 * fontset.c, lisp.h, xdisp.c: All uses changed.
8807
045eb8d9
PE
8808 * editfns.c (Ftranslate_region_internal): Omit redundant test.
8809
c1f134b5
PE
8810 * fns.c (concat): Minor tuning based on overflow analysis.
8811 This doesn't fix any bugs. Use int to hold character, instead
8812 of constantly refetching from Emacs object. Use XFASTINT, not
8813 XINT, for value known to be a character. Don't bother comparing
8814 a single byte to 0400, as it's always less.
8815
395fcb93 8816 * floatfns.c (Fexpt):
327eeec8
PE
8817 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
8818
abbd3d23
PE
8819 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
8820 for characters.
8821
684a03ef
PE
8822 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
8823
0fed43f3
PE
8824 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
8825 Without this fix, on a 64-bit host (aset S 0 4294967386) would
8826 incorrectly succeed when S was a string, because 4294967386 was
8827 truncated before it was used.
8828
8fd02eb7
PE
8829 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
8830 Otherwise, an out-of-range integer could cause undefined behavior
8831 on a 64-bit host.
8832
f8c86b69
PE
8833 * composite.c: Use int, not EMACS_INT, for characters.
8834 (fill_gstring_body, composition_compute_stop_pos): Use int, not
8835 EMACS_INT, for values that are known to be in character range.
8836 This doesn't fix any bugs but is the usual style inside Emacs and
8837 may generate better code on 32-bit machines.
8838
34206dd2
PE
8839 Make sure a 64-bit char is never passed to ENCODE_CHAR.
8840 This is for reasons similar to the recent CHAR_STRING fix.
8841 * charset.c (Fencode_char): Check that character arg is actually
8842 a character. Pass an int to ENCODE_CHAR.
8843 * charset.h (ENCODE_CHAR): Verify that the character argument is no
8844 wider than 'int', as a compile-time check to prevent future regressions
8845 in this area.
8846
c5958d4c 8847 * character.c (char_string): Remove unnecessary casts.
13bdea59
PE
8848
8849 Make sure a 64-bit char is never passed to CHAR_STRING.
8850 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
8851 by silently ignoring the top 32 bits, allowing some values
8852 that were far too large to be valid characters.
8853 * character.h: Include <verify.h>.
8854 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
8855 arguments are no wider than unsigned, as a compile-time check
8856 to prevent future regressions in this area.
8857 * data.c (Faset):
01103c44 8858 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
13bdea59
PE
8859 (Fsubst_char_in_region):
8860 * fns.c (concat):
8861 * xdisp.c (decode_mode_spec_coding):
8862 Adjust to CHAR_STRING's new requirement.
8863 * editfns.c (Finsert_char, Fsubst_char_in_region):
8864 * fns.c (concat): Check that character args are actually
8865 characters. Without this test, these functions did the wrong
8866 thing with wildly out-of-range values on 64-bit hosts.
8867
d37ca623
PE
8868 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
8869 These casts should not be needed on 32-bit hosts, either.
8870 * keyboard.c (read_char):
8871 * lread.c (Fload): Remove casts to unsigned.
8872
ea204efb
PE
8873 * lisp.h (UNSIGNED_CMP): New macro.
8874 This fixes comparison bugs on 64-bit hosts.
8875 (ASCII_CHAR_P): Use it.
8876 * casefiddle.c (casify_object):
01103c44 8877 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
ea204efb
PE
8878 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
8879 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
8880 * dispextern.h (FACE_FROM_ID):
8881 * keyboard.c (read_char): Use UNSIGNED_CMP.
8882
41cb286c
PE
8883 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
8884 not to EMACS_INT, to avoid GCC warning.
8885
4a1b9832
PE
8886 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
8887
55daad71
PE
8888 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
8889 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
8890 isn't needed on 32-bit machines.
8f95c75c 8891
01103c44
PE
8892 * buffer.c (Fgenerate_new_buffer_name):
8893 Use EMACS_INT for count, not int.
0ceccced 8894 (advance_to_char_boundary): Return EMACS_INT, not int.
e762cafe
PE
8895
8896 * data.c (Qcompiled_function): Now static.
8897
c6f072e7
PE
8898 * window.c (window_body_lines): Now static.
8899
20ce5912
PE
8900 * image.c (gif_load): Rename local to avoid shadowing.
8901
9c4c5f81
PE
8902 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
8903 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
8904 * alloc.c (make_save_value): Integer argument is now of type
8905 ptrdiff_t, not int.
8906 (mark_object): Use ptrdiff_t, not int.
8907 * lisp.h (pD): New macro.
8908 * print.c (print_object): Use it.
8909
c0c5c8ae
PE
8910 * alloc.c: Use EMACS_INT, not int, to count objects.
8911 (total_conses, total_markers, total_symbols, total_vector_size)
8912 (total_free_conses, total_free_markers, total_free_symbols)
01103c44
PE
8913 (total_free_floats, total_floats, total_free_intervals)
8914 (total_intervals, total_strings, total_free_strings):
c0c5c8ae
PE
8915 Now EMACS_INT, not int. All uses changed.
8916 (Fgarbage_collect): Compute overall total using a double, so that
8917 integer overflow is less likely to be a problem. Check for overflow
8918 when converting back to an integer.
5a25e253
PE
8919 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
8920 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
8921 These were 'int' variables that could overflow on 64-bit hosts;
8922 they were never used, so remove them instead of repairing them.
211a0b2a 8923 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
6349ae4d
PE
8924 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
8925 Previously, this ceilinged at INT_MAX, but that doesn't work on
8926 64-bit machines.
e46bb31a 8927 (allocate_pseudovector): Don't use EMACS_INT when int would do.
c0c5c8ae 8928
c78baabf 8929 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
86f61a15 8930 (allocate_vectorlike): Check for ptrdiff_t overflow.
b6439961
PE
8931 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
8932 when a (possibly-narrower) signed value would do just as well.
8933 We prefer using signed arithmetic, to avoid comparison confusion.
c78baabf 8934
c9d624c6
PE
8935 * alloc.c: Catch some string size overflows that we were missing.
8936 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
8937 for convenience in STRING_BYTES_MAX.
8938 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
8939 The definition here is exact; the one in lisp.h was approximate.
8940 (allocate_string_data): Check for string overflow. This catches
8941 some instances we weren't catching before. Also, it catches
8942 size_t overflow on (unusual) hosts where SIZE_MAX <= min
8943 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
8944 and ptrdiff_t and EMACS_INT are both 64 bits.
c78baabf 8945
c9d624c6
PE
8946 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
8947 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
640c8776 8948 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
c9d624c6 8949
353032ce
PE
8950 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
8951
2bccce07
PE
8952 * alloc.c (Fmake_string): Check for out-of-range init.
8953
0ac30604
SM
89542011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
8955
8956 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
8957
c195f2de
JD
89582011-06-14 Jan Djärv <jan.h.d@swipnet.se>
8959
8960 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
8961 xg_get_default_scrollbar_width.
8962
8963 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
8964 (int_gtk_range_get_value): Move to the scroll bar part of the file.
8965 (style_changed_cb): Call update_theme_scrollbar_width and call
8966 x_set_scroll_bar_default_width and xg_frame_set_char_size for
8967 all frames (Bug#8505).
8968 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
8969 Call gtk_window_set_resizable if HAVE_GTK3.
8970 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
8971 and height if HAVE_GTK3 (Bug#8505).
8972 (scroll_bar_width_for_theme): New variable.
8973 (update_theme_scrollbar_width): New function.
8974 (xg_get_default_scrollbar_width): Move code to
8975 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
8976 (xg_initialize): Call update_theme_scrollbar_width.
8977
8978 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
8979
8980 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
8981
e10ac9f1
MR
89822011-06-12 Martin Rudalics <rudalics@gmx.at>
8983
8984 * frame.c (make_frame): Call other_buffer_safely instead of
8985 other_buffer.
8986
8987 * window.c (temp_output_buffer_show): Call display_buffer with
8988 second argument Vtemp_buffer_show_specifiers and reset latter
8989 immediately after the call.
8990 (Vtemp_buffer_show_specifiers): New variable.
8991 (auto_window_vscroll_p, next_screen_context_lines)
8992 (Vscroll_preserve_screen_position): Remove leading asterisks from
8993 doc-strings.
8994
2d3c217e 89952011-06-12 Paul Eggert <eggert@cs.ucla.edu>
4475bec4 8996
7b7f97e8 8997 Fix minor problems found by GCC 4.6.0 static checking.
4475bec4
PE
8998 * buffer.c (Qclone_number): Remove for now, as it's unused.
8999 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
9000 (record_buffer): Remove unused local.
9001 * frame.c (other_visible_frames, frame_buffer_list): Now static.
9002 (set_frame_buffer_list): Remove; unused.
9003 * frame.h (other_visible_frames): Remove decl.
9004 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
9005 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
9006 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
9007 if HAVE_GPM.
9008 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
9009 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
9010 Define only if HAVE_GPM.
9011 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
9012 (update_hints_inhibit): Remove; never set. All uses removed.
9013 * widgetprv.h (emacsFrameClassRec): Remove decl.
9014 * window.c (delete_deletable_window): Now returns void, since it
9015 wasn't returning anything.
9016 (compare_window_configurations): Remove unused locals.
9017 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
9018 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
4475bec4
PE
9019 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
9020 the same widths as pointers. This follows up on the 2011-05-06 patch.
9021 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
9022 * xterm.h: Likewise.
9023 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
9024
1384b89e
JB
90252011-06-12 Juanma Barranquero <lekktu@gmail.com>
9026
9027 * makefile.w32-in: Update dependencies.
9028 (LISP_H): Add lib/intprops.h.
9029
1100a63c
CY
90302011-06-11 Chong Yidong <cyd@stupidchicken.com>
9031
9032 * image.c (gif_load): Add animation frame delay to the metadata.
9033 (syms_of_image): Use DEFSYM. New symbol `delay'.
9034
6198ccd0
MR
90352011-06-11 Martin Rudalics <rudalics@gmx.at>
9036
9037 * window.c (delete_deletable_window): Re-add.
9038 (Fset_window_configuration): Rewrite to handle dead buffers and
9039 consequently deletable windows.
9040 (window_tree, Fwindow_tree): Remove. Supply functionality in
9041 window.el.
9042 (compare_window_configurations): Simplify code.
9043
b6e3633c
AS
90442011-06-11 Andreas Schwab <schwab@linux-m68k.org>
9045
1ab0dee5
AS
9046 * image.c (imagemagick_load_image): Fix type mismatch.
9047 (Fimagemagick_types): Likewise.
9048
b6e3633c
AS
9049 * window.h (replace_buffer_in_windows): Declare.
9050
9397e56f
MR
90512011-06-11 Martin Rudalics <rudalics@gmx.at>
9052
9053 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
9054 Qclone_number. Remove external declaration of Qdelete_window.
9055 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
9056 code.
640c8776
SM
9057 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
9058 Run Qbuffer_list_update_hook if allowed.
9397e56f
MR
9059 (Fother_buffer): Rewrite doc-string. Major rewrite for new
9060 buffer list implementation.
9061 (other_buffer_safely): New function.
9062 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
9063 calls to replace_buffer_in_windows and
9064 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
9065 if allowed.
9066 (record_buffer): Inhibit quitting and rewrite using quittable
9067 functions. Run Qbuffer_list_update_hook if allowed.
9068 (Frecord_buffer, Funrecord_buffer): New functions.
640c8776
SM
9069 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
9070 Move switch-to-buffer to window.el.
9397e56f
MR
9071 (bury-buffer): Move to window.el.
9072 (Vbuffer_list_update_hook): New variable.
9073
9074 * lisp.h (other_buffer_safely): Add prototype in buffer.c
9075 section.
9076
9077 * window.h (resize_frame_windows): Move up in code.
9078 (Fwindow_frame): Remove EXFUN.
9079 (replace_buffer_in_all_windows): Remove prototype.
9080 (replace_buffer_in_windows_safely): Add prototype.
9081
9082 * window.c: Declare Qdelete_window static again. Move down
9083 declaration of select_count.
9084 (Fnext_window, Fprevious_window): Rewrite doc-strings.
9085 (Fother_window): Move to window.el.
9086 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
9087 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
9088 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
9089 window.el.
9090 (replace_buffer_in_windows): Implement by calling
9091 Qreplace_buffer_in_windows.
9092 (replace_buffer_in_all_windows): Remove with some functionality
9093 moved into replace_buffer_in_windows_safely.
9094 (replace_buffer_in_windows_safely): New function.
9095 (select_window_norecord, select_frame_norecord): Move in front
9096 of run_window_configuration_change_hook. Remove now obsolete
9097 declarations.
640c8776
SM
9098 (Fset_window_buffer): Rewrite doc-string.
9099 Call Qrecord_window_buffer.
9397e56f
MR
9100 (keys_of_window): Move binding for other-window to window.el.
9101
b50691aa
CY
91022011-06-11 Chong Yidong <cyd@stupidchicken.com>
9103
9104 * dispextern.h (struct image): Replace data member, whose int_val
9105 and ptr_val fields were not used by anything, with a single
9106 lisp_val object.
9107
9108 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
9109 (gif_clear_image, gif_load, imagemagick_load_image)
9110 (gs_clear_image, gs_load): Callers changed.
9111
3f754b86
PE
91122011-06-10 Paul Eggert <eggert@cs.ucla.edu>
9113
cca69397
PE
9114 * buffer.h: Include <time.h>, for time_t.
9115 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
9116
109e28d0
PE
9117 Fix minor problems found by static checking.
9118
60737f02
PE
9119 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
9120
4b66faf3
PE
9121 Make identifiers static if they are not used in other modules.
9122 * data.c (Qcompiled_function, Qframe, Qvector):
9123 * image.c (QimageMagick, Qsvg):
9124 * minibuf.c (Qmetadata):
9125 * window.c (resize_window_check, resize_root_window): Now static.
9126 * window.h (resize_window_check, resize_root_window): Remove decls.
9127
109e28d0
PE
9128 * window.c (window_deletion_count, delete_deletable_window):
9129 Remove; unused.
46a4ce9e
PE
9130 (window_body_lines): Now static.
9131 (Fdelete_other_windows_internal): Mark vars as initialized.
9132 Make sure 'resize_failed' is initialized.
9133 (run_window_configuration_change_hook): Rename local to avoid shadowing.
9134 (resize_window_apply): Remove unused local.
9135 * window.h (delete_deletable_window): Remove decl.
9136
109e28d0 9137 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
33290528
PE
9138 (imagemagick_load_image): Fix pointer signedness problem by changing
9139 last arg from unsigned char * to char *. All uses changed.
9140 Also, fix a local for similar reasons.
9141 Remove unused locals. Remove locals to avoid shadowing.
9142 (fn_rsvg_handle_free): Remove; unused.
9143 (svg_load, svg_load_image): Fix pointer signedness problem.
f7e13da3 9144 (imagemagick_load_image): Don't use garbage pointer image_wand.
33290528 9145
3f754b86
PE
9146 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
9147
2547adb1
CY
91482011-06-10 Chong Yidong <cyd@stupidchicken.com>
9149
9150 * image.c (gif_load): Fix omitted cast error introduced by
9151 2011-06-06 change.
9152
2c8e37d4
MR
91532011-06-10 Martin Rudalics <rudalics@gmx.at>
9154
9155 * window.h (resize_proportionally, orig_total_lines)
9156 (orig_top_line): Remove from window structure.
9157 (set_window_height, set_window_width, change_window_heights)
9158 (Fdelete_window): Remove prototypes.
9159 (resize_frame_windows): Remove duplicate declaration.
9160
440a42e3
EZ
91612011-06-10 Eli Zaretskii <eliz@gnu.org>
9162
9163 * window.h (resize_frame_windows, resize_window_check)
9164 (delete_deletable_window, resize_root_window)
9165 (resize_frame_windows): Declare prototypes.
9166
9167 * window.c (resize_window_apply): Make definition be "static" to
9168 match the prototype.
9169
562dd5e9
MR
91702011-06-10 Martin Rudalics <rudalics@gmx.at>
9171
9172 * window.c: Remove declarations of Qwindow_size_fixed,
9173 window_min_size_1, window_min_size_2, window_min_size,
9174 size_window, window_fixed_size_p, enlarge_window, delete_window.
9175 Remove static from declaration of Qdelete_window, it's
9176 temporarily needed by Fbury_buffer.
9177 (replace_window): Don't assign orig_top_line and
9178 orig_total_lines.
9179 (Fdelete_window, delete_window): Remove. Window deletion is
9180 handled by window.el.
640c8776
SM
9181 (window_loop): Remove DELETE_OTHER_WINDOWS case.
9182 Replace Fdelete_window calls with calls to Qdelete_window.
562dd5e9
MR
9183 (Fdelete_other_windows): Remove. Deleting other windows is
9184 handled by window.el.
9185 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
9186 handled in window.el.
9187 (window_min_size_2, window_min_size_1, window_min_size): Remove.
9188 Window minimum sizes are handled in window.el.
9189 (shrink_windows, size_window, set_window_height)
9190 (set_window_width, change_window_heights, window_height)
9191 (window_width, CURBEG, CURSIZE, enlarge_window)
9192 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
9193 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
9194 handled in window.el.
9195 (make_dummy_parent): Rename to make_parent_window and give it a
9196 second argument horflag.
9197 (make_window): Don't set resize_proportionally any more.
9198 (Fsplit_window): Remove. Windows are split in window.el.
9199 (save_restore_action, save_restore_orig_size)
9200 (shrink_window_lowest_first, save_restore_orig_size): Remove.
9201 Resize mini windows in window.el.
9202 (grow_mini_window, shrink_mini_window): Implement by calling
9203 Qresize_root_window_vertically, resize_window_check and
9204 resize_window_apply.
640c8776
SM
9205 (saved_window, Fset_window_configuration, save_window_save):
9206 Do not handle orig_top_line, orig_total_lines, and
562dd5e9
MR
9207 resize_proportionally.
9208 (window_min_height, window_min_width): Move to window.el.
9209 (keys_of_window): Move bindings for delete-other-windows,
9210 split-window, delete-window and enlarge-window to window.el.
9211
9212 * buffer.c: Temporarily extern Qdelete_window.
9213 (Fbury_buffer): Temporarily call Qdelete_window instead of
9214 Fdelete_window (Fbury_buffer will move to window.el soon).
9215
9216 * frame.c (set_menu_bar_lines_1): Remove code handling
9217 orig_top_line and orig_total_lines.
9218
9219 * dispnew.c (adjust_frame_glyphs_initially): Don't use
9220 set_window_height but set heights directly.
9221 (change_frame_size_1): Use resize_frame_windows.
9222
9223 * xdisp.c (init_xdisp): Don't use set_window_height but set
9224 heights directly.
9225
640c8776
SM
9226 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
9227 Use resize_frame_windows instead of change_window_heights and run
562dd5e9
MR
9228 run_window_configuration_change_hook.
9229
9230 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
9231 instead of change_window_heights and run
9232 run_window_configuration_change_hook.
9233
1a13852e
MR
92342011-06-09 Martin Rudalics <rudalics@gmx.at>
9235
9236 * window.c (replace_window): Rename second argument REPLACEMENT to
9237 NEW. New third argument SETFLAG. Rewrite.
9238 (delete_window, make_dummy_parent): Call replace_window with
9239 third argument 1.
9240 (window_list_1): Move down in code.
9241 (run_window_configuration_change_hook): Move set_buffer part
9242 before select_frame_norecord part in order to unwind correctly.
9243 Rename count1 to count.
9244 (recombine_windows, delete_deletable_window, resize_root_window)
9245 (Fdelete_other_windows_internal)
9246 (Frun_window_configuration_change_hook, make_parent_window)
9247 (resize_window_check, resize_window_apply, Fresize_window_apply)
9248 (resize_frame_windows, Fsplit_window_internal)
640c8776
SM
9249 (Fdelete_window_internal, Fresize_mini_window_internal):
9250 New functions.
1a13852e
MR
9251 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
9252
f3d1777e
MR
92532011-06-08 Martin Rudalics <rudalics@gmx.at>
9254
496e208e
MR
9255 * window.h (window): Add some new members to window structure -
9256 normal_lines, normal_cols, new_total, new_normal, clone_number,
9257 splits, nest, prev_buffers, next_buffers.
9258 (WINDOW_TOTAL_SIZE): Move here from window.c.
b9e809c2 9259 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
496e208e 9260
f3d1777e
MR
9261 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
9262 Remove.
496e208e
MR
9263 (make_dummy_parent): Set new members of windows structure.
9264 (make_window): Move down in code. Handle new members of window
9265 structure.
9266 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
9267 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
9268 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
9269 (Fset_window_prev_buffers, Fwindow_next_buffers)
640c8776
SM
9270 (Fset_window_next_buffers, Fset_window_clone_number):
9271 New functions.
496e208e
MR
9272 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
9273 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
9274 Doc-string fixes.
9275 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
9276 Argument WINDOW can be now internal window too.
9277 (Fwindow_use_time): Move up in code.
9278 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
9279 Rewrite doc-string.
9280 (Fset_window_configuration, saved_window)
9281 (Fcurrent_window_configuration, save_window_save): Handle new
9282 members of window structure.
b9e809c2
MR
9283 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
9284 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
9285 (syms_of_window): New Lisp objects Qrecord_window_buffer,
9286 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
9287 Qget_mru_window, Qresize_root_window,
9288 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
9289 Qauto_buffer_name; staticpro them.
f3d1777e 9290
abde8f8c
MR
92912011-06-07 Martin Rudalics <rudalics@gmx.at>
9292
9293 * window.c (Fwindow_total_size, Fwindow_left_column)
9294 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
9295 (Fwindow_list_1): New functions.
9296 (window_box_text_cols): Replace with window_body_cols.
640c8776
SM
9297 (Fwindow_width, Fscroll_left, Fscroll_right):
9298 Use window_body_cols instead of window_box_text_cols.
9299 (delete_window, Fset_window_configuration):
9300 Call delete_all_subwindows with window as argument.
fa8a67e6
MR
9301 (delete_all_subwindows): Take a window as argument and not a
9302 structure. Rewrite.
190b47e6
MR
9303 (window_loop): Remove handling of GET_LRU_WINDOW and
9304 GET_LARGEST_WINDOW.
9305 (Fget_lru_window, Fget_largest_window): Move to window.el.
abde8f8c
MR
9306
9307 * window.h: Extern window_body_cols instead of
fa8a67e6
MR
9308 window_box_text_cols. delete_all_subwindows now takes a
9309 Lisp_Object as argument.
abde8f8c 9310
640c8776
SM
9311 * indent.c (compute_motion, Fcompute_motion):
9312 Use window_body_cols instead of window_box_text_cols.
abde8f8c 9313
fa8a67e6
MR
9314 * frame.c (delete_frame): Call delete_all_subwindows with root
9315 window as argument.
9316
a54e3482
DC
93172011-06-07 Daniel Colascione <dan.colascione@gmail.com>
9318
9319 * fns.c (Fputhash): Document return value.
9320
60002bf5
CY
93212011-06-06 Chong Yidong <cyd@stupidchicken.com>
9322
9323 * image.c (gif_load): Implement gif89a spec "no disposal" method.
9324
0c671da6 93252011-06-06 Paul Eggert <eggert@cs.ucla.edu>
ccd9a01a 9326
b862a52a 9327 Cons<->int and similar integer overflow fixes (Bug#8794).
77984278 9328
be44ca6c
PE
9329 Check for overflow when converting integer to cons and back.
9330 * charset.c (Fdefine_charset_internal, Fdecode_char):
9331 Use cons_to_unsigned to catch overflow.
9332 (Fencode_char): Use INTEGER_TO_CONS.
9333 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
9334 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
9335 * data.c (long_to_cons, cons_to_long): Remove.
9336 (cons_to_unsigned, cons_to_signed): New functions.
9337 These signal an error for invalid or out-of-range values.
9338 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
9339 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
9340 * font.c (Ffont_variation_glyphs):
9341 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
9342 * lisp.h: Include <intprops.h>.
9343 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
9344 (cons_to_signed, cons_to_unsigned): New decls.
9345 (long_to_cons, cons_to_long): Remove decls.
9346 * undo.c (record_first_change): Use INTEGER_TO_CONS.
9347 (Fprimitive_undo): Use CONS_TO_INTEGER.
9348 * xfns.c (Fx_window_property): Likewise.
9349 * xselect.c: Include <limits.h>.
9350 (x_own_selection, selection_data_to_lisp_data):
9351 Use INTEGER_TO_CONS.
9352 (x_handle_selection_request, x_handle_selection_clear)
9353 (x_get_foreign_selection, Fx_disown_selection_internal)
9354 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
9355 (lisp_data_to_selection_data): Use cons_to_unsigned.
9356 (x_fill_property_data): Use cons_to_signed.
9357 Report values out of range.
9358
d1f3d2af
PE
9359 Check for buffer and string overflow more precisely.
9360 * buffer.h (BUF_BYTES_MAX): New macro.
9361 * lisp.h (STRING_BYTES_MAX): New macro.
9362 * alloc.c (Fmake_string):
9363 * character.c (string_escape_byte8):
9364 * coding.c (coding_alloc_by_realloc):
9365 * doprnt.c (doprnt):
9366 * editfns.c (Fformat):
9367 * eval.c (verror):
9368 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
9369 since they may not be the same number.
9370 * editfns.c (Finsert_char):
9371 * fileio.c (Finsert_file_contents):
9372 Likewise for BUF_BYTES_MAX.
9373
dd52fcea
PE
9374 * image.c: Use ptrdiff_t, not int, for sizes.
9375 (slurp_file): Switch from int to ptrdiff_t.
9376 All uses changed.
9377 (slurp_file): Check that file size fits in both size_t (for
9378 malloc) and ptrdiff_t (for sanity and safety).
9379
7f9bbdbb
PE
9380 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
9381 if b->modtime has its maximal value.
9382
dfe18f82
PE
9383 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
9384
84acfcf0
PE
9385 Don't assume time_t can fit into int.
9386 * buffer.h (struct buffer.modtime): Now time_t, not int.
9387 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
9388 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
9389
ccd9a01a
PE
9390 Minor fixes for signed vs unsigned integers.
9391 * character.h (MAYBE_UNIFY_CHAR):
9392 * charset.c (maybe_unify_char):
9393 * keyboard.c (read_char, reorder_modifiers):
9394 XINT -> XFASTINT, since the integer must be nonnegative.
9395 * ftfont.c (ftfont_spec_pattern):
9396 * keymap.c (access_keymap, silly_event_symbol_error):
9397 XUINT -> XFASTINT, since the integer must be nonnegative.
9398 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
9399 since it makes no difference and we prefer signed.
9400 * keyboard.c (record_char): Use XUINT when all the neighbors do.
9401 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
9402 nonnegative.
9403
d6d100dd
SM
94042011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
9405
9406 * window.h (Fwindow_frame): Declare.
9407
2b6148e4
PE
94082011-06-06 Paul Eggert <eggert@cs.ucla.edu>
9409
9410 * alloc.c: Simplify handling of large-request failures (Bug#8800).
9411 (SPARE_MEMORY): Always define.
9412 (LARGE_REQUEST): Remove.
9413 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
9414
f230ecc9
MR
94152011-06-06 Martin Rudalics <rudalics@gmx.at>
9416
727e958e
MR
9417 * lisp.h: Move EXFUNS for Fframe_root_window,
9418 Fframe_first_window and Fset_frame_selected_window to window.h.
9419
9420 * window.h: Move EXFUNS for Fframe_root_window,
9421 Fframe_first_window and Fset_frame_selected_window here from
9422 lisp.h.
9423
9424 * frame.c (Fwindow_frame, Fframe_first_window)
9425 (Fframe_root_window, Fframe_selected_window)
9426 (Fset_frame_selected_window): Move to window.c.
9427 (Factive_minibuffer_window): Move to minibuf.c.
9428 (Fother_visible_frames_p): New function.
9429
9430 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
9431
f230ecc9
MR
9432 * window.c (decode_window, decode_any_window): Move up in code.
9433 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
9434 (inhibit_frame_unsplittable): Remove unused variable.
bf60a96b
MR
9435 (Fwindow_buffer): Move up and rewrite doc-string.
9436 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
9437 (Fwindow_prev): New functions.
727e958e
MR
9438 (Fwindow_frame): Move here from frame.c. Accept any window as
9439 argument.
9440 (Fframe_root_window, Fframe_first_window)
9441 (Fframe_selected_window): Move here from frame.c. Accept frame
9442 or arbitrary window as argument. Update doc-strings.
9443 (Fminibuffer_window): Move up in code.
9444 (Fwindow_minibuffer_p): Move up in code and simplify.
d6d100dd
SM
9445 (Fset_frame_selected_window): Move here from frame.c.
9446 Marginal rewrite.
727e958e
MR
9447 (Fselected_window, select_window, Fselect_window): Move up in
9448 code. Minor doc-string fixes.
f230ecc9 9449
4d09bcf6
PE
94502011-06-06 Paul Eggert <eggert@cs.ucla.edu>
9451
9452 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
9453 Do not assume that spare memory exists; that assumption is valid
9454 only if SYSTEM_MALLOC.
9455 (LARGE_REQUEST): New macro, so that the issue of large requests
9456 is separated from the issue of spare memory.
9457
810928a2
AS
94582011-06-05 Andreas Schwab <schwab@linux-m68k.org>
9459
172418ad
AS
9460 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
9461 format. (Bug#8806)
9462
43f862f7
AS
9463 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
9464
810928a2
AS
9465 * xfns.c (x_set_scroll_bar_default_width): Move declarations
9466 before statements.
9467
a059fe24
JD
94682011-06-05 Jan Djärv <jan.h.d@swipnet.se>
9469
9470 * gtkutil.c (xg_get_default_scrollbar_width): New function.
9471
9472 * gtkutil.h: Declare xg_get_default_scrollbar_width.
9473
9474 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
9475 min width by calling x_set_scroll_bar_default_width (Bug#8505).
9476
989bf368
JB
94772011-06-05 Juanma Barranquero <lekktu@gmail.com>
9478
9479 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
9480
4b80f674
CY
94812011-06-04 Chong Yidong <cyd@stupidchicken.com>
9482
9483 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
9484 (x_clipboard_manager_save): Add return value.
d6d100dd
SM
9485 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
9486 New error handlers.
4b80f674
CY
9487 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
9488 Obey Vx_select_enable_clipboard_manager. Catch errors in
9489 x_clipboard_manager_save (Bug#8779).
9490 (Vx_select_enable_clipboard_manager): New variable.
de65b42c 9491 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
4b80f674 9492
99a33b77 94932011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
8b3115e7
DN
9494
9495 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
9496
99a33b77 94972011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14eca62f
YM
9498
9499 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
9500 in the current matrix if keep_current_p is non-zero.
9501
8264569d
EZ
95022011-06-04 Eli Zaretskii <eliz@gnu.org>
9503
9504 * bidi.c (bidi_level_of_next_char): Fix last change.
9505
57f97249
EZ
95062011-06-03 Eli Zaretskii <eliz@gnu.org>
9507
fec2107c 9508 Support bidi reordering of text covered by display properties.
57f97249 9509
fec2107c
EZ
9510 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
9511 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
9512 (bidi_cache_search, bidi_cache_iterator_state)
9513 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
d6d100dd
SM
9514 (bidi_level_of_next_char, bidi_move_to_visually_next):
9515 Support character positions inside a run of characters covered by a
fec2107c
EZ
9516 display string.
9517 (bidi_paragraph_init, bidi_resolve_explicit_1)
9518 (bidi_level_of_next_char): Call bidi_fetch_char and
9519 bidi_fetch_char_advance instead of FETCH_CHAR and
9520 FETCH_CHAR_ADVANCE.
9521 (bidi_init_it): Initialize new members.
9522 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
9523 definitions.
9524 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
9525 instead of using explicit *_CHAR codes.
d6d100dd
SM
9526 (bidi_resolve_explicit, bidi_resolve_weak):
9527 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
fec2107c
EZ
9528 bidirectional text is supported only in multibyte buffers.
9529 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
9530 it to initialize the frame_window_p member of struct bidi_it.
9531 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
9532 (bidi_resolve_explicit, bidi_resolve_weak)
9533 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
9534 bidi_it->nchars is non-positive.
9535 (bidi_level_of_next_char): Don't try to lookup the cache for the
9536 next/previous character if nothing is cached there yet, or if we
9537 were just reseat()'ed to a new position.
c40e2fb2 9538
0e14fe90
EZ
9539 * xdisp.c (set_cursor_from_row): Set start and stop points
9540 according to the row's direction when priming the loop that looks
9541 for the glyph on which to display cursor.
9542 (single_display_spec_intangible_p): Function deleted.
9543 (display_prop_intangible_p): Reimplement to call
9544 handle_display_spec instead of single_display_spec_intangible_p.
d6d100dd
SM
9545 Accept 3 additional arguments needed by handle_display_spec.
9546 This fixes incorrect cursor motion across display property with complex
0e14fe90
EZ
9547 values: lists, `(when COND...)' forms, etc.
9548 (single_display_spec_string_p): Support property values that are
9549 lists with the argument STRING its top-level element.
9550 (display_prop_string_p): Fix the condition for processing a
9551 property that is a list to be consistent with handle_display_spec.
fec2107c 9552 (handle_display_spec): New function, refactored from the
fc6f18ce
EZ
9553 last portion of handle_display_prop.
9554 (compute_display_string_pos): Accept additional argument
9555 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
9556 value of a `display' property is a "replacing spec".
9557 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
9558 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
9559 the display property, but just return a value indicating whether
9560 the display property will replace the characters it covers.
9561 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
9562 frame_window_p members of struct bidi_it.
d6d100dd
SM
9563 (compute_display_string_pos, compute_display_string_end):
9564 New functions.
fec2107c
EZ
9565 (push_it): Accept second argument POSITION, where pop_it should
9566 jump to continue iteration.
9567 (reseat_1): Initialize bidi_it.disp_pos.
fc6f18ce 9568
fec2107c
EZ
9569 * keyboard.c (adjust_point_for_property): Adjust the call to
9570 display_prop_intangible_p to its new signature.
fc6f18ce
EZ
9571
9572 * dispextern.h (struct bidi_it): New member frame_window_p.
fec2107c
EZ
9573 (bidi_init_it): Update prototypes.
9574 (display_prop_intangible_p): Update prototype.
d6d100dd
SM
9575 (compute_display_string_pos, compute_display_string_end):
9576 Declare prototypes.
fec2107c
EZ
9577 (struct bidi_it): New members nchars and disp_pos. ch_len is now
9578 EMACS_INT.
fc6f18ce 9579
40087514 95802011-06-02 Paul Eggert <eggert@cs.ucla.edu>
0de4bb68 9581
57f53182
PE
9582 Malloc failure behavior now depends on size of allocation.
9583 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
9584 * lisp.h: Change signatures accordingly.
9585 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
9586 All callers changed. (Bug#8762)
9587
9588 * gnutls.c: Use Emacs's memory allocators.
9589 Without this change, the gnutls library would invoke malloc etc.
9590 directly, which causes problems on non-SYNC_INPUT hosts, and which
9591 runs afoul of improving memory_full behavior. (Bug#8761)
9592 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
9593 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
9594 xfree instead of the default malloc, realloc, free.
9595 (Fgnutls_boot): No need to check for memory allocation failure,
9596 since xmalloc does that for us.
9597
ac32cd99 9598 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
3870d916
PE
9599 * category.c (hash_get_category_set):
9600 * ccl.c (ccl_driver):
9601 * charset.c (Fdefine_charset_internal):
9602 * charset.h (struct charset.hash_index):
9603 * composite.c (get_composition_id, gstring_lookup_cache)
9604 (composition_gstring_put_cache):
9605 * composite.h (struct composition.hash_index):
9606 * dispextern.h (struct image.hash):
9607 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
9608 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
9609 (hashfn_equal, hashfn_user_defined, make_hash_table)
9610 (maybe_resize_hash_table, hash_lookup, hash_put)
9611 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
9612 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
9613 (Fsxhash, Fgethash, Fputhash, Fmaphash):
9614 * image.c (make_image, search_image_cache, lookup_image)
9615 (xpm_put_color_table_h):
9616 * lisp.h (struct Lisp_Hash_Table):
0de4bb68 9617 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
ac389d0c 9618 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
3870d916 9619 for hashes and hash indexes, instead of 'unsigned' and 'int'.
40087514
PE
9620 * alloc.c (allocate_vectorlike):
9621 Check for overflow in vector size calculations.
9622 * ccl.c (ccl_driver):
9623 Check for overflow when converting EMACS_INT to int.
0de4bb68
PE
9624 * fns.c, image.c: Remove unnecessary static decls that would otherwise
9625 need to be updated by these changes.
40087514
PE
9626 * fns.c (make_hash_table, maybe_resize_hash_table):
9627 Check for integer overflow with large hash tables.
0de4bb68
PE
9628 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
9629 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
9630 (SXHASH_REDUCE): New macro.
9631 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
9632 Use it instead of discarding useful hash info with large hash values.
9633 (sxhash_float): New function.
9634 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
9635 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
40087514
PE
9636 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
9637 Rewrite to use FIXNUM_BITS, as this simplifies things.
0de4bb68
PE
9638 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
9639 Adjust signatures to match updated version of code.
9640 (consing_since_gc): Now EMACS_INT, since a single hash table can
9641 use more than INT_MAX bytes.
9642
698d32e2
DN
96432011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
9644
9645 Make it possible to build with GCC-4.6+ -O2 -flto.
9646
9647 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
9648
fd6fa53f
SM
96492011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
9650
9651 * minibuf.c (get_minibuffer, read_minibuf_unwind):
9652 Call minibuffer-inactive-mode.
9653
864db017
JB
96542011-05-31 Juanma Barranquero <lekktu@gmail.com>
9655
9656 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
9657 Update dependencies.
9658
2ad0baf4
DN
96592011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
9660
9661 * data.c (init_data): Remove code for UTS, this system is not
9662 supported anymore.
9663
4fcc2638
DN
96642011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
9665
9666 Don't force ./temacs to start in terminal mode.
9667
9668 * frame.c (make_initial_frame): Initialize faces in all cases, not
9669 only when CANNOT_DUMP is defined.
9670 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
9671
c56e0fd5
DN
96722011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
9673
9674 * dispnew.c (add_window_display_history): Use const for the string
9675 pointer. Remove declaration, not needed.
9676
333d54da 96772011-05-31 Paul Eggert <eggert@cs.ucla.edu>
9cf9f756 9678
55d4c1b2 9679 Use 'inline', not 'INLINE'.
333d54da 9680 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
55d4c1b2
PE
9681 * alloc.c, fontset.c (INLINE): Remove.
9682 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
9683 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
9684 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
9685 * gmalloc.c (register_heapinfo): Use inline unconditionally.
9686 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
9687
738db178
DN
96882011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
9689
9690 Make it possible to run ./temacs.
9691
9692 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
9693 syms_of_callproc does the same thing. Remove test for
9694 "initialized", do it in the caller.
9695 * emacs.c (main): Avoid calling set_initial_environment when dumping.
9696
620c53a6
SM
96972011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
9698
9699 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
9700 (read_minibuf): Use get_minibuffer.
9701 (syms_of_minibuf): Use DEFSYM.
9702 (Qmetadata): New var.
9703 * data.c (Qbuffer): Don't make it static.
9704 (syms_of_data): Use DEFSYM.
9705
e003a292
PE
97062011-05-31 Paul Eggert <eggert@cs.ucla.edu>
9707
9708 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
9709 (CCL_CODE_MIN): New macro.
9710
ed008a6d
PE
97112011-05-30 Paul Eggert <eggert@cs.ucla.edu>
9712
3687c2ef
PE
9713 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
9714
ed008a6d
PE
9715 * eval.c (Qdebug): Now static.
9716 * lisp.h (Qdebug): Remove decl. This reverts a part of the
9717 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
9718 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
9719
d66c4c7c
CY
97202011-05-29 Chong Yidong <cyd@stupidchicken.com>
9721
9722 * image.c: Various fixes to ImageMagick code comments.
9723 (Fimagemagick_types): Doc fix.
9724
5fbc2025
PE
97252011-05-29 Paul Eggert <eggert@cs.ucla.edu>
9726
0196f88a
PE
9727 Minor fixes prompted by GCC 4.6.0 warnings.
9728
9729 * xselect.c (converted_selections, conversion_fail_tag): Now static.
9730
5fbc2025
PE
9731 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
9732 (x_clipboard_manager_save_all): Move extern decl to ...
9733 * xterm.h: ... here, so that it can be checked for consistency.
9734
1dd3c2d9
CY
97352011-05-29 Chong Yidong <cyd@stupidchicken.com>
9736
9737 * xselect.c (x_clipboard_manager_save_frame)
9738 (x_clipboard_manager_save_all): New functions.
9739 (Fx_clipboard_manager_save): Lisp function deleted.
9740
9741 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
9742 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
9743
9744 * xterm.h: Update prototype.
9745
5ba6571d
WX
97462011-05-28 William Xu <william.xwl@gmail.com>
9747
9748 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
9749 exiting (Bug#8239).
9750
3eaff834
JM
97512011-05-28 Jim Meyering <meyering@redhat.com>
9752
e1900994 9753 Avoid a sign-extension bug in crypto_hash_function.
3eaff834
JM
9754 * fns.c (to_uchar): Define.
9755 (crypto_hash_function): Use it to convert some newly-signed
9756 variables to unsigned, to avoid sign-extension bugs. For example,
9757 without this change, (md5 "truc") would evaluate to
9758 45723a2aff78ff4fff7fff1114760e62 rather than the expected
9759 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
e1900994 9760 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
3eaff834 9761
0f6990a7
PE
97622011-05-27 Paul Eggert <eggert@cs.ucla.edu>
9763
9764 Integer overflow fixes.
c8a9ca5a 9765
08686060
PE
9766 * dbusbind.c: Serial number integer overflow fixes.
9767 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
08686060
PE
9768 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
9769 to hold a serial number that is too large for a fixnum.
9770 (Fdbus_method_return_internal, Fdbus_method_error_internal):
9771 Check for serial numbers out of range. Decode any serial number
59568bf0 9772 that was so large that it became a float. (Bug#8722)
08686060 9773
2d1fc3c7
PE
9774 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
9775 (Fdbus_call_method, Fdbus_call_method_asynchronously):
9776 Use XFASTINT rather than XUINT when numbers are nonnegative.
9777 (xd_append_arg, Fdbus_method_return_internal):
9778 (Fdbus_method_error_internal): Likewise. Also, for unsigned
9779 arguments, check that Lisp number is nonnegative, rather than
59568bf0 9780 silently wrapping negative numbers around. (Bug#8722)
30217ff0 9781 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
59568bf0 9782 (Bug#8722)
2d1fc3c7 9783
c8a9ca5a
PE
9784 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
9785
519e1d69
PE
9786 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
9787
6df6ae42 9788 ccl: Add integer overflow checks.
30569699
PE
9789 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
9790 (IN_INT_RANGE): New macros.
9791 (ccl_driver): Use them to check for integer overflow when
9792 decoding a CCL program. Many of the new checks are whether XINT (x)
9793 fits in int; it doesn't always, on 64-bit hosts. The new version
9794 doesn't catch all possible integer overflows, but it's an
847044ea 9795 improvement. (Bug#8719)
30569699 9796
c11285dc
PE
9797 * alloc.c (make_event_array): Use XINT, not XUINT.
9798 There's no need for unsigned here.
9799
fdccd48e
PE
9800 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
9801 This follows up to the 2011-05-06 change that substituted uintptr_t
9802 for EMACS_INT. This case wasn't caught back then.
9803
37910ab2
PE
9804 Rework Fformat to avoid integer overflow issues.
9805 * editfns.c: Include <float.h> unconditionally, as it's everywhere
9806 now (part of C89). Include <verify.h>.
9807 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
9808 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
9809 (Fformat): Avoid the prepass trying to compute sizes; it was only
9810 approximate and thus did not catch overflow reliably. Instead, walk
9811 through the format just once, formatting and computing sizes as we go,
9812 checking for integer overflow at every step, and allocating a larger
9813 buffer as needed. Keep track separately whether the format is
9814 multibyte. Keep only the most-recently calculated precision, rather
9815 than them all. Record whether each argument has been converted to
9816 string. Use EMACS_INT, not int, for byte and char and arg counts.
9817 Support field widths and precisions larger than INT_MAX. Avoid
9818 sprintf's undefined behavior with conversion specifications such as %#d
9819 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
9820 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
9821 formatting out-of-range floating point numbers with int
9173deec 9822 formats. (Bug#8668)
37910ab2 9823
2e6578fb
PE
9824 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
9825
0ae6bdee
PE
9826 * data.c: Avoid integer truncation in expressions involving floats.
9827 * data.c: Include <intprops.h>.
9828 (arith_driver): When there's an integer overflow in an expression
9829 involving floating point, convert the integers to floating point
9830 so that the resulting value does not suffer from catastrophic
9831 integer truncation. For example, on a 64-bit host (* 4
9832 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
9833 Do not rely on undefined behavior after integer overflow.
9834
de883a70
PE
9835 merge count_size_as_multibyte, parse_str_to_multibyte
9836 * character.c, character.h (count_size_as_multibyte):
fd6fa53f 9837 Rename from parse_str_to_multibyte; all uses changed.
de883a70
PE
9838 Check for integer overflow.
9839 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
9840 since it's now a duplicate of the other. This is more of
9841 a character than a buffer op, so better that it's in character.c.
9842 * fns.c, print.c: Adjust to above changes.
9843
2ff916cb
PE
98442011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
9845
9846 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
9847
f1b54466
PE
98482011-05-27 Paul Eggert <eggert@cs.ucla.edu>
9849
fb1ac845
PE
9850 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
9851 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
9852 (x_clipboard_manager_save): Now static.
9853 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
9854
f1b54466
PE
9855 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
9856 (crypto_hash_function): Now static.
9857 Fix pointer signedness problems. Avoid unnecessary initializations.
9858
a9f737ee
CY
98592011-05-27 Chong Yidong <cyd@stupidchicken.com>
9860
9861 * termhooks.h (Vselection_alist): Make it terminal-local.
9862
9863 * terminal.c (create_terminal): Initialize it.
9864
9865 * xselect.c: Support for clipboard managers.
9866 (Vselection_alist): Move to termhooks.h as terminal-local var.
9867 (LOCAL_SELECTION): New macro.
9868 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
9869 (symbol_to_x_atom): Remove gratuitous arg.
9870 (x_handle_selection_request, lisp_data_to_selection_data)
9871 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
620c53a6
SM
9872 (x_own_selection, x_get_local_selection, x_convert_selection):
9873 New arg, specifying work frame. Use terminal-local Vselection_alist.
a9f737ee
CY
9874 (some_frame_on_display): Delete unused function.
9875 (Fx_own_selection_internal, Fx_get_selection_internal)
9876 (Fx_disown_selection_internal, Fx_selection_owner_p)
9877 (Fx_selection_exists_p): New optional frame arg.
9878 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
9879 (x_handle_selection_clear): Don't treat other terminals with the
9880 same keyboard specially. Use the terminal-local Vselection_alist.
9881 (x_clear_frame_selections): Use Frun_hook_with_args.
9882
9883 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
9884
9885 * xterm.h: Add support for those atoms.
9886
e067f0c1
CY
98872011-05-26 Chong Yidong <cyd@stupidchicken.com>
9888
9889 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
9890 (converted_selections, conversion_fail_tag): New global variables.
9891 (x_selection_request_lisp_error): Free the above.
9892 (x_get_local_selection): Remove unnecessary code.
9893 (x_reply_selection_request): Args changed; handle arbitrary array
620c53a6
SM
9894 of converted selections stored in converted_selections.
9895 Separate the XChangeProperty and SelectionNotify steps.
e067f0c1
CY
9896 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
9897 (x_convert_selection): New function.
9898 (x_handle_selection_event): Simplify.
9899 (x_get_foreign_selection): Don't ignore incoming requests while
9900 waiting for an answer; this will fail when we implement
9901 SAVE_TARGETS, and seems unnecessary anyway.
9902 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
9903 (Vx_sent_selection_functions): Doc fix.
9904
0f4aebc0
LL
99052011-05-26 Leo Liu <sdl.web@gmail.com>
9906
9907 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
9908
e61124cd
YM
99092011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
9910
9911 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
9912
9913 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
9914 for fringe update if it has periodic bitmap.
ac389d0c 9915 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
e61124cd
YM
9916 and fringe_bitmap_periodic_p.
9917
9918 * fringe.c (get_fringe_bitmap_data): New function.
9919 (draw_fringe_bitmap_1, update_window_fringes): Use it.
9920 (update_window_fringes): Record periodicity of fringe bitmap in glyph
9921 row. Mark glyph row for fringe update if periodicity changed.
9922
9923 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
9924 for fringe update unless it has periodic bitmap.
9925
f16d9837
KH
99262011-05-25 Kenichi Handa <handa@m17n.org>
9927
9928 * xdisp.c (get_next_display_element): Set correct it->face_id for
9929 a static composition.
9930
e1b90ef6
LL
99312011-05-24 Leo Liu <sdl.web@gmail.com>
9932
9933 * deps.mk (fns.o):
9934 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
9935
9936 * fns.c (crypto_hash_function, Fsha1): New function.
9937 (Fmd5): Use crypto_hash_function.
9938 (syms_of_fns): Add Ssha1.
9939
7400048f
PE
99402011-05-22 Paul Eggert <eggert@cs.ucla.edu>
9941
9942 * gnutls.c: Remove unused macros.
9943 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
9944 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
9945 Remove macros that are defined and never used.
9946 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
9947
abb71cf4
CY
99482011-05-22 Chong Yidong <cyd@stupidchicken.com>
9949
9950 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
9951 (Fx_get_selection_internal): Minor cleanup.
9952 (Fx_own_selection_internal): Rename arguments for consistency with
9953 select.el.
9954
6307db39
PE
99552011-05-22 Paul Eggert <eggert@cs.ucla.edu>
9956
9957 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
9958
f3d4e0a4
CY
99592011-05-22 Chong Yidong <cyd@stupidchicken.com>
9960
9961 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
9962
4d8ade89
YM
99632011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
9964
9965 * dispnew.c (scrolling_window): Don't exclude the case that the
9966 last enabled row in the desired matrix touches the bottom boundary.
9967
32078c8d
GM
99682011-05-21 Glenn Morris <rgm@gnu.org>
9969
9970 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
33cf345f
GM
9971 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
9972 and add some more files.
32078c8d 9973
7285dc67
EZ
99742011-05-20 Eli Zaretskii <eliz@gnu.org>
9975
9976 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
9977 report_file_error introduced by the change from 2011-05-07.
9978
89d1bd22
PE
99792011-05-20 Paul Eggert <eggert@cs.ucla.edu>
9980
9981 * systime.h (Time): Define only if emacs is defined.
9982 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
9983 where the include path doesn't have X11/X.h by default. See
9984 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
9985
cd394be1 99862011-05-20 Kenichi Handa <handa@m17n.org>
31bfc35c
KH
9987
9988 * composite.c (find_automatic_composition): Fix previous change.
9989
b9704ad9
GM
99902011-05-20 Glenn Morris <rgm@gnu.org>
9991
9992 * lisp.mk: New file, split from Makefile.in.
9993 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
9994 (shortlisp): Remove.
9995 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
9996
4a720484
GM
99972011-05-19 Glenn Morris <rgm@gnu.org>
9998
9999 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
10000 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
10001 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
10002 (lisp): Set the order to that of loadup.el.
10003 (shortlisp): Make it a copy of $lisp.
10004 (SOME_MACHINE_LISP): Remove.
10005 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
10006 Use just $shortlisp, not $SOME_MACHINE_LISP too.
10007
a28d4396
KH
100082011-05-18 Kenichi Handa <handa@m17n.org>
10009
10010 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
10011 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
10012 (find_automatic_composition): Mostly rewrite for efficiency.
10013
a2b1fa8e
JB
100142011-05-18 Juanma Barranquero <lekktu@gmail.com>
10015
10016 * makefile.w32-in: Update dependencies.
10017
8e1f5610
CS
100182011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
10019
10020 * menu.c: Include limits.h (fixes the MS-Windows build broken by
7d7d0045 10021 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
8e1f5610 10022
7025ee00 100232011-05-18 Paul Eggert <eggert@cs.ucla.edu>
cb93f9be 10024
cdfa6eab
PE
10025 Fix some integer overflow issues, such as string length overflow.
10026
06d6db33
PE
10027 * insdel.c (count_size_as_multibyte): Check for string overflow.
10028
2b4560a8
PE
10029 * character.c (lisp_string_width): Check for string overflow.
10030 Use EMACS_INT, not int, for string indexes and lengths; in
10031 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
10032 the resulting string length overflows an EMACS_INT; instead,
10033 report a string overflow if no precision given. When checking for
10034 precision exhaustion, use a check that cannot possibly have
10035 integer overflow. (Bug#8675)
10036 * character.h (lisp_string_width): Adjust to new signature.
10037
cb93f9be
PE
10038 * alloc.c (string_overflow): New function.
10039 (Fmake_string): Use it. This doesn't change behavior, but saves
10040 a few bytes and will simplify future changes.
10041 * character.c (string_escape_byte8): Likewise.
10042 * lisp.h (string_overflow): New decl.
10043
1a1f3366
PE
10044 Fixups, following up to the user-interface timestamp change.
10045 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
10046 for UI timestamps, instead of unsigned long.
9fbd6841
PE
10047 * msdos.c (mouse_get_pos): Likewise.
10048 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
1a1f3366
PE
10049 * w32gui.h (Time): Define by including "systime.h" rather than by
10050 declaring it ourselves. (Bug#8664)
10051
d4e3e4d3
PE
10052 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
10053 * image.c (clear_image_cache): Likewise.
10054
f6a24d19
PE
10055 * term.c (term_mouse_position): Don't assume time_t wraparound.
10056
08dc5ae6
PE
10057 Be more systematic about user-interface timestamps.
10058 Before, the code sometimes used 'Time', sometimes 'unsigned long',
620c53a6
SM
10059 and sometimes 'EMACS_UINT', to represent these timestamps.
10060 This change causes it to use 'Time' uniformly, as that's what X uses.
08dc5ae6
PE
10061 This makes the code easier to follow, and makes it easier to catch
10062 integer overflow bugs such as Bug#8664.
10063 * frame.c (Fmouse_position, Fmouse_pixel_position):
10064 Use Time, not unsigned long, for user-interface timestamps.
10065 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
10066 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
10067 * keyboard.h (last_event_timestamp): Likewise.
10068 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
10069 * menu.h (xmenu_show): Likewise.
10070 * term.c (term_mouse_position): Likewise.
10071 * termhooks.h (struct input_event.timestamp): Likewise.
10072 (struct terminal.mouse_position_hook): Likewise.
10073 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
10074 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
10075 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
10076 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
10077 what it was before.
10078 * menu.h, termhooks.h: Include "systime.h", for Time.
10079
8e55734a
PE
10080 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
10081 Don't assume that the difference between two unsigned long values
10082 can fit into an integer. At this point, we know button_down_time
10083 <= event->timestamp, so the difference must be nonnegative, so
10084 there's no need to cast the result if double-click-time is
10085 nonnegative, as it should be; check that it's nonnegative, just in
10086 case. This bug is triggered when events are more than 2**31 ms
86db42d2 10087 apart (about 25 days). (Bug#8664)
8e55734a 10088
841f1b75 10089 * xselect.c (last_event_timestamp): Remove duplicate decl.
6434756c 10090 (x_own_selection): Remove needless cast to unsigned long.
841f1b75 10091
3e26f69c
PE
10092 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
10093 that always fit in int. Use a sentinel instead of a counter, to
10094 avoid a temp and to allay GCC's concerns about possible int overflow.
d230cb74
PE
10095 * frame.h (struct frame): Use int for menu_bar_items_used
10096 instead of EMACS_INT, since it always fits in int.
3e26f69c 10097
5cc152c0
PE
10098 * menu.c (grow_menu_items): Check for int overflow.
10099
d89eb65e
PE
10100 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
10101
5235bd3e
PE
10102 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
10103 Before, the code was not consistent. These values cannot exceed
10104 2**31 - 1 so there's no need to make them unsigned.
10105 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
10106 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
10107 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
10108 as modifiers.
10109 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
10110
bc827e23
PE
10111 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
10112 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
10113 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
10114 presumably because the widths might not match.
10115
78eb494e
PE
10116 * window.c (size_window): Avoid needless test at loop start.
10117
04f2d78b
CB
101182011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
10119
10120 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
10121
d2fc7e3d 101222011-05-12 Drew Adams <drew.adams@oracle.com>
e531bdff
DA
10123
10124 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
10125
d2fc7e3d 101262011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7db47798
YM
10127
10128 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
10129 `width' to `bar_area_x' and `bar_area_width', respectively.
10130 (x_scroll_run): Take account of fringe background extension.
10131
04f2d78b
CB
10132 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
10133 Rename local vars `left' and `width' to `bar_area_x' and
7db47798
YM
10134 `bar_area_width', respectively.
10135 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
10136 background extension.
10137
79b70037
GM
101382011-05-10 Jim Meyering <meyering@redhat.com>
10139
10140 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
10141
2f142cc5
JB
101422011-05-10 Juanma Barranquero <lekktu@gmail.com>
10143
10144 * image.c (Finit_image_library): Return t for built-in image types,
10145 like pbm and xbm. (Bug#8640)
10146
57679c86
AS
101472011-05-09 Andreas Schwab <schwab@linux-m68k.org>
10148
10149 * w32menu.c (set_frame_menubar): Fix submenu allocation.
10150
888c9e86
EZ
101512011-05-07 Eli Zaretskii <eliz@gnu.org>
10152
b0512a1d
EZ
10153 * w32console.c (Fset_screen_color): Doc fix.
10154 (Fget_screen_color): New function.
10155 (syms_of_ntterm): Defsubr it.
10156
7285dc67
EZ
10157 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
10158 unlink the temporary file if Fcall_process didn't create it in the
10159 first place.
10160 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
10161 child process will be redirected to a file specified with `:file'.
888c9e86
EZ
10162 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
10163 cue to call_process_cleanup not to close that handle.
10164
4d3fcc8e
BK
101652011-05-07 Ben Key <bkey76@gmail.com>
10166
10167 * makefile.w32-in: The bootstrap-temacs rule now makes use of
10168 one of two shell specific rules, either bootstrap-temacs-CMD or
10169 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
10170 to the previous implementation of the bootstrap-temacs rule.
10171 The bootstrap-temacs-CMD rule is similar to the previous
10172 implementation of the bootstrap-temacs rule except that it
10173 makes use of the ESC_CFLAGS variable instead of the CFLAGS
10174 variable.
10175
10176 These changes, along with some changes to nt/configure.bat,
10177 nt/gmake.defs, and nt/nmake.defs, are required to extend my
10178 earlier fix to add support for --cflags and --ldflags options
10179 that include quotes so that it works whether make uses cmd or
10180 sh as the shell.
10181
b4289b64
MA
101822011-05-06 Michael Albinus <michael.albinus@gmx.de>
10183
10184 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
10185 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
10186 is a constant.
10187 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
10188 a string. Handle both cases.
10189 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
10190 (Fdbus_register_method): Use Qinvalid_function.
10191
af4c0e28
JB
101922011-05-06 Juanma Barranquero <lekktu@gmail.com>
10193
10194 * makefile.w32-in: Update dependencies.
10195 (LISP_H): Add inttypes.h and stdin.h.
10196 (PROCESS_H): Add unistd.h.
10197
c51453d9
EZ
101982011-05-06 Eli Zaretskii <eliz@gnu.org>
10199
10200 * lread.c: Include limits.h (fixes the MS-Windows build broken by
10201 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
10202
8ff0ac3c 102032011-05-06 Paul Eggert <eggert@cs.ucla.edu>
c032b5f8 10204
4c4b566b
PE
10205 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
10206
aab2b9b5
PE
10207 * term.c (vfatal): Remove stray call to va_end.
10208 It's not needed and the C Standard doesn't allow it here anyway.
10209
c378da0b
PE
10210 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
10211 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
10212
288b08c7
PE
10213 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
10214 bytes.
10215
e3601888
PE
10216 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
10217
db6c0e74
PE
10218 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
10219
dd5963ea
PE
10220 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
10221
88c9450f
PE
10222 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
10223
2f9442b8
PE
10224 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
10225
c032b5f8
PE
10226 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
10227 * charset.c (Fdefine_charset_internal): Don't initialize
10228 charset.code_space[15]. The value was garbage, on hosts with
2d38271b 10229 32-bit int (Bug#8600).
a108c10b
PE
10230
10231 * lread.c (read_integer): Be more consistent with string-to-number.
10232 Use string_to_number to do the actual conversion; this avoids
10233 rounding errors and fixes some other screwups. Without this fix,
10234 for example, #x1fffffffffffffff was misread as -2305843009213693952.
10235 (digit_to_number): Move earlier, for benefit of read_integer.
10236 Return -1 if the digit is out of range for the base, -2 if it is
48e400f0 10237 not a digit in any supported base. (Bug#8602)
a108c10b 10238
ad5f9eea
PE
10239 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
10240
aec1708a
PE
10241 * dispnew.c (scrolling_window): Return 1 if we scrolled,
10242 to match comment at start of function. This also removes a
10243 GCC warning about overflow in a 32+64-bit port.
10244
47be4ab5
PE
10245 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
10246
371cac43
PE
10247 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
10248 Reported by Stefan Monnier in
10249 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
04f2d78b
CB
10250 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
10251 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
371cac43 10252
d01a7826
PE
10253 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
10254 (EMACS_UINTPTR): Likewise, with uintptr_t.
10255
7fd47d5c
PE
10256 * lisp.h: Prefer 64-bit EMACS_INT if available.
10257 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
10258 on 32-bit hosts that have 64-bit int, so that they can access
10259 large files.
122b0c86
PE
10260 However, temporarily disable this change unless the temporary
10261 symbol WIDE_EMACS_INT is defined.
7fd47d5c 10262
8727937b
PE
10263 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
10264
8ac068ac
PE
10265 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
10266 This removes an assumption that EMACS_INT and long are the same
10267 width as pointers. The assumption is true for Emacs porting targets
10268 now, but we want to make other targets possible.
10269 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
10270 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
10271 In the rest of the code, change types of integers that hold casted
10272 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
10273 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
10274 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
10275 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
10276 No need to cast type when ORing.
10277 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
10278 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
10279 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
10280 assume EMACS_INT is the same width as char *.
10281 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
10282 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
10283 Remove no-longer-needed casts.
10284 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
10285 (xg_tool_bar_help_callback, xg_make_tool_item):
10286 Use EMACS_INTPTR to hold an integer
10287 that will be cast to void *; this can avoid a GCC warning
10288 if EMACS_INT is not the same width as void *.
10289 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
10290 * xdisp.c (display_echo_area_1, resize_mini_window_1):
10291 (current_message_1, set_message_1):
10292 Use a local to convert to proper width without a cast.
10293 * xmenu.c (dialog_selection_callback): Likewise.
10294
ede49d71
PE
10295 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
10296 Also, don't assume VALBITS / RAND_BITS is less than 5,
10297 and don't rely on undefined behavior when shifting a 1 left into
10298 the sign bit.
10299 * lisp.h (get_random): Change signature to match.
10300
2f30ecd0
PE
10301 * lread.c (hash_string): Use size_t, not int, for hash computation.
10302 Normally we prefer signed values; but hashing is special, because
10303 it's better to use unsigned division on hash table sizes so that
10304 the remainder is nonnegative. Also, size_t is the natural width
10305 for hashing into memory. The previous code used 'int', which doesn't
10306 retain enough info to hash well into very large tables.
10307 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
10308
2a866e7b
PE
10309 * dbusbind.c: Don't possibly lose pointer info when converting.
10310 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
10311 Use XPNTR rather than XHASH, so that the high-order bits of
10312 the pointer aren't lost when converting through void *.
10313
51639eac
PE
10314 * eval.c (Fautoload): Don't double-shift a pointer.
10315
92394119
PE
10316 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
10317
dbdb9a7c
JB
103182011-05-06 Juanma Barranquero <lekktu@gmail.com>
10319
10320 * gnutls.c (DEF_GNUTLS_FN):
10321 * image.c (DEF_IMGLIB_FN): Make function pointers static.
10322
db7a0b4f
AS
103232011-05-05 Andreas Schwab <schwab@linux-m68k.org>
10324
10325 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
10326 marker. (Bug#8610)
10327
cd394be1 103282011-05-05 Eli Zaretskii <eliz@gnu.org>
fab624aa
EZ
10329
10330 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
10331 New version that can reserve upto 2GB of heap space.
10332
f7ff1b0f 103332011-05-05 Chong Yidong <cyd@stupidchicken.com>
45cb8994
CY
10334
10335 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
10336
639c109b
TZ
103372011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
10338
10339 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
10340 `gnutls_certificate_set_x509_key_file'.
10341
d2127135
JB
103422011-05-05 Juanma Barranquero <lekktu@gmail.com>
10343
10344 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
10345 Update dependencies.
10346
e968f4f3
JB
103472011-05-04 Juanma Barranquero <lekktu@gmail.com>
10348
10349 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
10350 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
10351 Remove unused parameter `fildes'.
10352 * process.c (read_process_output, send_process): Don't pass it.
10353
84d358f0
JB
103542011-05-04 Juanma Barranquero <lekktu@gmail.com>
10355
10356 Fix previous change: the library cache is defined in w32.c.
10357 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
10358 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
10359
0898ca10
JB
103602011-05-04 Juanma Barranquero <lekktu@gmail.com>
10361
10362 Implement dynamic loading of GnuTLS on Windows.
10363
10364 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
10365 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
10366 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
10367 Declare.
10368
10369 * gnutls.c (Qgnutls_dll): Define.
10370 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
10371 (gnutls_*): Declare function pointers.
10372 (init_gnutls_functions): New function to initialize function pointers.
10373 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
10374 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
10375 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
10376 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
10377 (emacs_gnutls_write, emacs_gnutls_read)
10378 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
10379 (Fgnutls_available_p): New function.
10380 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
10381 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
10382 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
10383
10384 * image.c: Include w32.h.
10385 (Vimage_type_cache): Delete.
10386 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
10387 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
10388 (w32_delayed_load): Move to w32.c.
10389
10390 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
10391
10392 * w32.c (QCloaded_from, Vlibrary_cache): Define.
10393 (w32_delayed_load): Move from image.c. When loading a library, record
10394 its filename in the :loaded-from property of the library id.
10395 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
10396 Initialize and staticpro them.
10397 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
10398
10399 * process.c: Include lisp.h before w32.h, not after.
10400 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
10401 instead of gnutls_record_check_pending.
10402
10403 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
10404
ff4de4aa
TZ
104052011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
10406
10407 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
10408 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
10409 as passed in.
10410
abe95abb
JD
104112011-05-03 Jan Djärv <jan.h.d@swipnet.se>
10412
10413 * xterm.c (x_set_frame_alpha): Do not set property on anything
10414 else than FRAME_X_OUTER_WINDOW (Bug#8608).
10415
e16e55d4
JB
104162011-05-02 Juanma Barranquero <lekktu@gmail.com>
10417
10418 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
10419
bafcf6a5
JB
104202011-05-02 Juanma Barranquero <lekktu@gmail.com>
10421
10422 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
10423 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
10424 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
10425 (gnutls_global_initialized, Qgnutls_bootprop_priority)
10426 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
10427 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
10428 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
10429 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
10430 (Qgnutls_bootprop_callbacks_verify): Make static.
10431
e7a6747f
AS
104322011-05-01 Andreas Schwab <schwab@linux-m68k.org>
10433
19ed11ba
AS
10434 * callproc.c: Indentation fixup.
10435
e7a6747f 10436 * sysdep.c (wait_for_termination_1): Make static.
04f2d78b
CB
10437 (wait_for_termination, interruptible_wait_for_termination):
10438 Move after wait_for_termination_1.
e7a6747f 10439
1ef14cb4
LMI
104402011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
10441
10442 * sysdep.c (interruptible_wait_for_termination): New function
10443 which is like wait_for_termination, but allows keyboard
10444 interruptions.
10445
10446 * callproc.c (Fcall_process): Add (:file "file") as an option for
10447 the STDOUT buffer.
10448 (Fcall_process_region): Ditto.
10449
330d880c
EZ
104502011-04-30 Eli Zaretskii <eliz@gnu.org>
10451
8db90b73
EZ
10452 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
10453 rather than `XVECTOR (FOO)->size'.
10454
330d880c
EZ
10455 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
10456 inttypes.h, as a gnulib replacement is used if it not available in
10457 system headers.
10458
15cbd324
EZ
104592011-04-21 Eli Zaretskii <eliz@gnu.org>
10460
10461 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
10462 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
10463 of MOST_POSITIVE_FIXNUM. (Bug#8528)
10464
10465 * coding.c (coding_alloc_by_realloc): Error out if destination
10466 will grow beyond MOST_POSITIVE_FIXNUM.
10467 (decode_coding_emacs_mule): Abort if there isn't enough place in
10468 charbuf for the composition carryover bytes. Reserve an extra
10469 space for up to 2 characters produced in a loop.
10470 (decode_coding_iso_2022): Abort if there isn't enough place in
10471 charbuf for the composition carryover bytes.
10472
104732011-04-21 Eli Zaretskii <eliz@gnu.org>
afda1437 10474
ae940cca
EZ
10475 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
10476 aborting when %lld or %lll format is passed.
10477 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
10478 %llo or %llx format is passed. (Bug#8545)
10479
03ab8921
EZ
10480 * window.c (window_scroll_line_based): Use a marker instead of
10481 simple variables to record original value of point. (Bug#7952)
10482
afda1437
EZ
10483 * doprnt.c (doprnt): Fix the case where a multibyte sequence
10484 produced by %s or %c overflows available buffer space. (Bug#8545)
10485
f76dee0c
PE
104862011-04-28 Paul Eggert <eggert@cs.ucla.edu>
10487
10488 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
283cdbef 10489 (SIZE_MAX): Move defn after all includes, as they might #define it.
f76dee0c 10490
fdc5744d
JB
104912011-04-28 Juanma Barranquero <lekktu@gmail.com>
10492
10493 * w32.c (init_environment): Warn about defaulting HOME to C:\.
10494
638f053a
JB
104952011-04-28 Juanma Barranquero <lekktu@gmail.com>
10496
10497 * keyboard.c (Qdelayed_warnings_hook): Define.
10498 (command_loop_1): Run `delayed-warnings-hook'
10499 if Vdelayed_warnings_list is non-nil.
10500 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
10501 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
10502
d178f871
EZ
105032011-04-28 Eli Zaretskii <eliz@gnu.org>
10504
10505 * doprnt.c (doprnt): Don't return value smaller than the buffer
10506 size if the message was truncated. (Bug#8545).
10507
b124fd93
JB
105082011-04-28 Juanma Barranquero <lekktu@gmail.com>
10509
10510 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
10511 (Fx_window_property): #if-0 the whole functions, not just the bodies.
10512
e810457d
PE
105132011-04-27 Paul Eggert <eggert@cs.ucla.edu>
10514
10515 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
10516
ea51cceb
JB
105172011-04-27 Juanma Barranquero <lekktu@gmail.com>
10518
10519 * makefile.w32-in: Update dependencies.
10520
94dcfacf
EZ
105212011-04-27 Eli Zaretskii <eliz@gnu.org>
10522
10523 Improve `doprnt' and its usage. (Bug#8545)
10524 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
10525 `format_end'. Remove support for %l as a conversion specifier.
10526 Don't use xrealloc. Improve diagnostics when the %l size modifier
10527 is used. Update the commentary.
10528
10529 * eval.c (verror): Simplify calculation of size_t.
10530
10531 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
10532 messages.
10533
f61f41d7
PE
105342011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
10535
10536 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
10537 change.
10538
96fb4434
PE
105392011-04-27 Paul Eggert <eggert@cs.ucla.edu>
10540
10541 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
10542 This makes this file independent of the recent pseudovector change.
10543
671875da 105442011-04-26 Paul Eggert <eggert@cs.ucla.edu>
eab3844f 10545
69e9b5a3
PE
10546 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
10547
b5f869a7 10548 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
7754e151 10549 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
8d4c3955 10550 Remove unused local.
c8926152 10551 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
080e5a8d 10552
841a1577 10553 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
04f2d78b
CB
10554 GCC 4.6.0 optimizes based on type-based alias analysis.
10555 For example, if b is of type struct buffer * and v of type struct
eab3844f
PE
10556 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
10557 != &v->size, and therefore "v->size = 1; b->size = 2; return
10558 v->size;" must therefore return 1. This assumption is incorrect
10559 for Emacs, since it type-puns struct Lisp_Vector * with many other
10560 types. To fix this problem, this patch adds a new type struct
f904488f 10561 vectorlike_header that documents the constraints on layout of vectors
eab3844f
PE
10562 and pseudovectors, and helps optimizing compilers not get fooled
10563 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
10564 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
f904488f
PE
10565 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
10566 the size member.
eab3844f
PE
10567 (XSETPVECTYPE): Rewrite in terms of new macro.
10568 (XSETPVECTYPESIZE): New macro, specifying both type and size.
10569 This is a bit clearer, and further avoids the possibility of
10570 undesirable aliasing.
10571 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
f904488f 10572 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
eab3844f
PE
10573 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
10574 since Lisp_Subr is a special case (no "next" field).
04f2d78b
CB
10575 (ASIZE): Now uses header.size rather than size.
10576 All previous uses of XVECTOR (foo)->size replaced to use this macro,
f904488f
PE
10577 to avoid the hassle of writing XVECTOR (foo)->header.size.
10578 (struct vectorlike_header): New type.
eab3844f
PE
10579 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
10580 object, to help avoid aliasing.
10581 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
10582 (SUBRP): Likewise, since Lisp_Subr is a special case.
10583 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
10584 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
10585 (struct Lisp_Hash_Table): Combine first two members into a single
f904488f 10586 struct vectorlike_header member. All uses of "size" and "next" members
eab3844f
PE
10587 changed to be "header.size" and "header.next".
10588 * buffer.h (struct buffer): Likewise.
10589 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
10590 * frame.h (struct frame): Likewise.
10591 * process.h (struct Lisp_Process): Likewise.
10592 * termhooks.h (struct terminal): Likewise.
10593 * window.c (struct save_window_data, struct saved_window): Likewise.
10594 * window.h (struct window): Likewise.
10595 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
10596 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
10597 * buffer.c (init_buffer_once): Likewise.
10598 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
10599 special case.
10600 * process.c (Fformat_network_address): Use local var for size,
10601 for brevity.
10602
0df1eac5
PE
10603 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
10604
847ab9d1 10605 Make the Lisp reader and string-to-float more consistent (Bug#8525)
452f4150
PE
10606 * data.c (atof): Remove decl; no longer used or needed.
10607 (digit_to_number): Move to lread.c.
10608 (Fstring_to_number): Use new string_to_number function, to be
10609 consistent with how the Lisp reader treats infinities and NaNs.
10610 Do not assume that floating-point numbers represent EMACS_INT
10611 without losing information; this is not true on most 64-bit hosts.
10612 Avoid double-rounding errors, by insisting on integers when
10613 parsing non-base-10 numbers, as the documentation specifies.
10614 * lisp.h (string_to_number): New decl, replacing ...
10615 (isfloat_string): Remove.
bc0a5c13 10616 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
d78050d6 10617 (read1): Do not accept +. and -. as integers; this
452f4150
PE
10618 appears to have been a coding error. Similarly, do not accept
10619 strings like +-1e0 as floating point numbers. Do not report
10620 overflow for integer overflows unless the base is not 10 which
10621 means we have no simple and reliable way to continue.
10622 Break out the floating-point parsing into a new
10623 function string_to_number, so that Fstring_to_number parses
10624 floating point numbers consistently with the Lisp reader.
04f2d78b 10625 (digit_to_number): Move here from data.c. Make it static inline.
452f4150
PE
10626 (E_CHAR, EXP_INT): Remove, replacing with ...
10627 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
10628 (string_to_number): New function, replacing isfloat_string.
10629 This function checks for valid syntax and produces the resulting
10630 Lisp float number too. Rework it so that string-to-number
bc0a5c13 10631 no longer mishandles examples like "1.0e+". Use strtoumax,
d78050d6
PE
10632 so that overflow for non-base-10 numbers is reported only when
10633 there's no portable and simple way to convert to floating point.
452f4150 10634
67769ffc
PE
10635 * textprop.c (set_text_properties_1): Rewrite for clarity,
10636 and to avoid GCC warning about integer overflow.
10637
c20db43f
PE
10638 * intervals.h (struct interval): Use EMACS_INT for members
10639 where EMACS_UINT might cause problems. See
10640 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
10641 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
10642 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
10643 All uses changed.
37aa2f85
PE
10644 (offset_intervals): Tell GCC not to worry about length overflow
10645 when negating a negative length.
c20db43f 10646
2538aa2f
PE
10647 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
10648 (overrun_check_free): Likewise.
10649
f2d3008d
PE
10650 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
10651 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
10652 word size.
10653
ec8df744
PE
10654 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
10655 (gnutls_make_error): Rename local to avoid shadowing.
10656 (gnutls_emacs_global_deinit): ifdef out; not used.
10657 (Fgnutls_boot): Use const for pointer to readonly storage.
10658 Comment out unused local. Fix pointer signedness problems.
10659
640ee02d
PE
10660 * lread.c (openp): Don't stuff size_t into an 'int'.
10661 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
10662 about possible signed overflow.
10663
6048fb2a
PE
10664 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
10665 (GDK_KEY_g): Don't define if already defined.
10666 (xg_prepare_tooltip): Avoid pointer signedness problem.
10667 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
10668
fa3c87e1
PE
10669 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
10670 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
10671
2172544b
PE
10672 * xfns.c (Fx_window_property): Simplify a bit,
10673 to make a bit faster and to avoid GCC 4.6.0 warning.
10674 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
10675
9b821a21
PE
10676 * fns.c (internal_equal): Don't assume size_t fits in int.
10677
3c616cfa
PE
10678 * alloc.c (compact_small_strings): Tighten assertion a little.
10679
c2982e87
PE
10680 Replace pEd with more-general pI, and fix some printf arg casts.
10681 * lisp.h (pI): New macro, generalizing old pEd macro to other
10682 conversion specifiers. For example, use "...%"pI"d..." rather
10683 than "...%"pEd"...".
10684 (pEd): Remove. All uses replaced with similar uses of pI.
61bdb816 10685 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
c2982e87
PE
10686 * alloc.c (check_pure_size): Don't overflow by converting size to int.
10687 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
10688 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
10689 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
10690 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
10691 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
10692 64-bit hosts.
10693 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
10694 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
10695 * print.c (safe_debug_print, print_object): Likewise.
10696 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
10697 to int.
6f04d126
PE
10698 Use pI instead of if-then-else-abort. Use %p to avoid casts,
10699 avoiding the 0 flag, which is not portable.
c2982e87
PE
10700 * process.c (Fmake_network_process): Use pI to avoid cast.
10701 * region-cache.c (pp_cache): Likewise.
10702 * xdisp.c (decode_mode_spec): Likewise.
10703 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
10704 behavior on 64-bit hosts with printf arg.
6f04d126 10705 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
c2982e87
PE
10706 (x_stop_queuing_selection_requests): Likewise.
10707 (x_get_window_property): Don't truncate byte count to an 'int'
10708 when tracing.
0b432f21 10709
5e073ec7
PE
10710 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
10711 here, since it parses constructs like leading '-' and spaces,
10712 which are not wanted; and it overflows with large numbers.
10713 Instead, simply match F[0-9]+, which is what is wanted anyway.
10714
36372bf9
PE
10715 * alloc.c: Remove unportable assumptions about struct layout.
10716 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
10717 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
10718 (allocate_vectorlike, make_pure_vector): Use the new macros,
10719 plus offsetof, to remove unportable assumptions about struct layout.
10720 These assumptions hold on all porting targets that I know of, but
10721 they are not guaranteed, they're easy to remove, and removing them
10722 makes further changes easier.
10723
0b432f21
PE
10724 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
10725 This doesn't fix a bug but makes the code clearer.
bfd1c781
PE
10726 (string_overrun_cookie): Now const. Use initializers that
10727 don't formally overflow signed char, to avoid warnings.
000098c1
PE
10728 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
10729 can cause Emacs to crash when string overrun checking is enabled.
c7bda33c
PE
10730 (allocate_buffer): Don't assume sizeof (struct buffer) is a
10731 multiple of sizeof (EMACS_INT); it need not be, if
10732 alignof(EMACS_INT) < sizeof (EMACS_INT).
d0f4e1f5 10733 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
0b432f21 10734
895009e1
JB
107352011-04-26 Juanma Barranquero <lekktu@gmail.com>
10736
10737 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
10738
6a7a1b0b
TZ
107392011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
10740
10741 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
b5f869a7 10742 supposed to be handshaking. (Bug#8556)
6a7a1b0b
TZ
10743 Reported by Paul Eggert <eggert@cs.ucla.edu>.
10744
841a1577 107452011-04-26 Daniel Colascione <dan.colascione@gmail.com>
0438ce91
DC
10746
10747 * lisp.h (Qdebug): List symbol.
895009e1 10748 * eval.c (Qdebug): Restore global linkage.
0438ce91
DC
10749 * keyboard.c (debug-on-event): New variable.
10750 (handle_user_signal): Break into debugger when debug-on-event
10751 matches the current signal symbol.
10752
f2d3ba6f
DN
107532011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
10754
10755 * alloc.c (check_sblock, check_string_bytes)
10756 (check_string_free_list): Convert to standard C.
10757
42ce4c63
TZ
107582011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
10759
10760 * w32.c (emacs_gnutls_push): Fix typo.
10761
825cd63c
EZ
107622011-04-25 Eli Zaretskii <eliz@gnu.org>
10763
fb11d64d
EZ
10764 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
10765 "cast to pointer from integer of different size".
10766
825cd63c
EZ
10767 Improve doprnt and its use in verror. (Bug#8545)
10768 * doprnt.c (doprnt): Document the set of format control sequences
10769 supported by the function. Use SAFE_ALLOCA instead of always
10770 using `alloca'.
10771
10772 * eval.c (verror): Don't limit the buffer size at size_max-1, that
10773 is one byte too soon. Don't use xrealloc; instead xfree and
10774 xmalloc anew.
10775
e061a11b
TZ
107762011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
10777
10778 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
10779 callbacks stage.
10780
10781 * gnutls.c: Renamed global_initialized to
10782 gnutls_global_initialized. Added internals for the
10783 :verify-hostname-error, :verify-error, and :verify-flags
10784 parameters of `gnutls-boot' and documented those parameters in the
10785 docstring. Start callback support.
9173deec
JB
10786 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
10787 unless a fatal error occurred. Call gnutls_alert_send_appropriate
10788 on error. Return error code.
e061a11b
TZ
10789 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
10790 (emacs_gnutls_read): Likewise.
10791 (Fgnutls_boot): Return handshake error code.
10792 (emacs_gnutls_handle_error): New function.
10793 (wsaerror_to_errno): Likewise.
10794
10795 * w32.h (emacs_gnutls_pull): Add prototype.
10796 (emacs_gnutls_push): Likewise.
10797
10798 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
10799 (emacs_gnutls_push): Likewise.
10800
108012011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
10802
10803 * process.c (wait_reading_process_output): Check if GnuTLS
10804 buffered some data internally if no FDs are set for TLS
10805 connections.
10806
10807 * makefile.w32-in (OBJ2): Add gnutls.$(O).
10808 (LIBS): Link to USER_LIBS.
10809 ($(BLD)/gnutls.$(0)): New target.
10810
fa6996bc
EZ
108112011-04-24 Eli Zaretskii <eliz@gnu.org>
10812
eb35682e
EZ
10813 * xdisp.c (handle_single_display_spec): Rename the
10814 display_replaced_before_p argument into display_replaced_p, to
10815 make it consistent with the commentary. Fix typos in the
10816 commentary.
10817
e2ad650c
EZ
10818 * textprop.c (syms_of_textprop): Remove dead code.
10819 (copy_text_properties): Delete obsolete commentary about an
10820 interface that was deleted long ago. Fix typos in the description
10821 of arguments.
10822
1b2de274
EZ
10823 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
10824 to changes in oldXMenu/XMenu.h from 2011-04-16.
10825 <menu_help_message, prev_menu_help_message>: Constify.
10826 (IT_menu_make_room): menu->help_text is now `const char **';
10827 adjust.
10828
10829 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
10830 to changes in oldXMenu/XMenu.h from 2011-04-16.
10831 (struct XMenu): Declare `help_text' `const char **'.
10832
10833 * xfaces.c <Qunspecified>: Make extern again.
10834
10835 * syntax.c: Include sys/types.h before including regex.h, as
75f1671a 10836 required by POSIX.
1b2de274 10837
762b15be
EZ
10838 * doc.c (get_doc_string): Improve the format passed to `error'.
10839
10840 * doprnt.c (doprnt): Improve commentary.
10841
10842 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
10843
10844 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
10845 them with etags.
10846
f1052e5d
EZ
10847 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
10848 changes in globals.h immediately force recompilation.
762b15be
EZ
10849 (TAGS): Depend on $(CURDIR)/m/intel386.h and
10850 $(CURDIR)/s/ms-w32.h.
10851 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
f1052e5d 10852
fa6996bc
EZ
10853 * character.c (Fchar_direction): Function deleted.
10854 (syms_of_character): Don't defsubr it.
10855 <char-direction-table>: Deleted.
10856
e6c3da20
EZ
108572011-04-23 Eli Zaretskii <eliz@gnu.org>
10858
10859 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
10860 * doprnt.c: Include limits.h.
10861 (SIZE_MAX): New macro.
04f2d78b
CB
10862 (doprnt): Return a size_t value. 2nd arg is now size_t.
10863 Many local variables are now size_t instead of int or unsigned.
e6c3da20
EZ
10864 Improve overflow protection. Support `l' modifier for integer
10865 conversions. Support %l conversion. Don't assume an EMACS_INT
10866 argument for integer conversions and for %c.
10867
10868 * lisp.h (doprnt): Restore prototype.
10869
10870 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
10871 $(SRC)/character.h.
10872
10873 * Makefile.in (base_obj): Add back doprnt.o.
10874
10875 * deps.mk (doprnt.o): Add back prerequisites.
10876 (callint.o): Depend on character.h.
10877
10878 * eval.c (internal_lisp_condition_case): Include the handler
10879 representation in the error message.
10880 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
10881 when breaking from the loop.
10882
10883 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
10884
10885 * callint.c (Fcall_interactively): When displaying error message
10886 about invalid control letter, pass the character's codepoint, not
10887 a pointer to its multibyte form. Improve display of the character
10888 in octal and display also its hex code.
10889
10890 * character.c (char_string): Use %x to display the (unsigned)
10891 codepoint of an invalid character, to avoid displaying a bogus
10892 negative value.
10893
10894 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
10895 `error', not SYMBOL_NAME itself.
10896
10897 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
10898 character arguments to `error'.
10899
10900 * charset.c (check_iso_charset_parameter): Fix incorrect argument
10901 to `error' in error message about FINAL_CHAR argument. Make sure
10902 FINAL_CHAR is a character, and use %c when it is passed as
10903 argument to `error'.
10904
4ffd0d6b 109052011-04-23 Eli Zaretskii <eliz@gnu.org>
97a93095
EZ
10906
10907 * s/ms-w32.h (localtime): Redirect to sys_localtime.
10908
10909 * w32.c: Include <time.h>.
10910 (sys_localtime): New function.
10911
4ffd0d6b 109122011-04-23 Chong Yidong <cyd@stupidchicken.com>
c17819f4
CY
10913
10914 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
10915
4ffd0d6b 10916 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
aac0c6e3 10917
4ffd0d6b 109182011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
aac0c6e3 10919
4ffd0d6b
GM
10920 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
10921 zombies (Bug#8467).
aac0c6e3 10922
04c56954
EZ
109232011-04-19 Eli Zaretskii <eliz@gnu.org>
10924
10925 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
10926 gl_state.e_property when gl_state.object is Qt.
10927
10928 * insdel.c (make_gap_larger): Remove limitation of buffer size
10929 to <= INT_MAX.
10930
16a43933
CY
109312011-04-18 Chong Yidong <cyd@stupidchicken.com>
10932
10933 * xdisp.c (lookup_glyphless_char_display)
10934 (produce_glyphless_glyph): Handle cons cell entry in
10935 glyphless-char-display.
10936 (Vglyphless_char_display): Document it.
10937
10938 * term.c (produce_glyphless_glyph): Handle cons cell entry in
10939 glyphless-char-display.
10940
4581706e
CY
109412011-04-17 Chong Yidong <cyd@stupidchicken.com>
10942
10943 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
10944
10945 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
10946
10947 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
10948 definition for no-X builds.
10949
4887c6e2 109502011-04-16 Paul Eggert <eggert@cs.ucla.edu>
764430a3 10951
fd35b6f9
PE
10952 Static checks with GCC 4.6.0 and non-default toolkits.
10953
5c1ccb01
PE
10954 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
10955
006c5daa
PE
10956 * process.c (keyboard_bit_set): Define only if SIGIO.
10957 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
10958 (send_process): Repair possible setjmp clobbering.
10959
efc736d3
PE
10960 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
10961
4e2fe2e6
PE
10962 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
10963
f97334a2
PE
10964 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
10965
4e75f29d
PE
10966 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
10967 Define only if needed.
10968
90efadd1
PE
10969 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
10970 by pacifying GCC about it. Maybe it's time to retire it?
875975e9 10971 * xfaces.c (USG, __TIMEVAL__): Likewise.
90efadd1 10972
3c647824
PE
10973 * dispextern.h (struct redisplay_interface): Rename param
10974 to avoid shadowing.
e264f262 10975 * termhooks.h (struct terminal): Likewise.
761383f4 10976 * xterm.c (xembed_send_message): Likewise.
3c647824 10977
b58c5c4a
PE
10978 * insdel.c (make_gap_smaller): Define only if
10979 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
10980
cad59032
PE
10981 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
10982 it.
10983
c339dc2e
PE
10984 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
10985 so that we aren't warned about unused symbols.
10986
91a3e27b
PE
10987 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
10988
399c71d3 10989 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
7a3fb125 10990
8ffc96f5
PE
10991 * xfns.c (x_real_positions): Mark locals as initialized.
10992
eef9bc79
PE
10993 * xmenu.c (xmenu_show): Don't use uninitialized vars.
10994
098db9dd
PE
10995 * xterm.c: Fix problems found by static analysis with other toolkits.
10996 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
dda3aedd
PE
10997 (x_dispatch_event): Declare static if USE_GTK, and
10998 define if USE_GTK || USE_X_TOOLKIT.
098db9dd 10999 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
dda3aedd 11000 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
841a1577
JB
11001 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
11002 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
098db9dd 11003
eb18f6cc
PE
11004 * xmenu.c (menu_help_callback): Pointer type fixes.
11005 Use const pointers when pointing at readonly data. Avoid pointer
11006 signedness clashes.
11007 (FALSE): Remove unused macro.
11008 (update_frame_menubar): Remove unused decl.
11009
1fe72bf8
PE
11010 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
11011
60d9e1db
PE
11012 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
11013 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
11014 (single_menu_item): Rename local to avoid shadowing.
11015
39261c26
PE
11016 * keyboard.c (make_lispy_event): Remove unused local var.
11017
018c5e19
PE
11018 * frame.c, frame.h (x_get_resource_string): Bring this back, but
11019 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
11020
63d2b86e
PE
11021 * bitmaps: Change bitmaps from unsigned char back to the X11
11022 compatible char. Avoid the old compiler warnings about
11023 out-of-range initializers by using, for example, '\xab' rather
11024 than 0xab.
11025
aefd87e1
PE
11026 * xgselect.c (xgselect_initialize): Check vs interface
11027 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
11028
bf501fb9
PE
11029 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
11030
e9829fdf
PE
11031 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
11032 to read-only memory.
11033
1086c095
PE
11034 * fns.c (vector): Remove; this old hack is no longer needed.
11035
2baccd04 11036 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
401f10cb 11037 Remove unused var.
dde42981 11038 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
2baccd04 11039
72391843 11040 * xrdb.c (x_load_resources): Omit unused local.
3565b346 11041
436c16df 11042 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
8a94ea33 11043 (x_window): Rename locals to avoid shadowing.
dc5ddd85 11044 (USG): Use the kludged USG macro, to pacify gcc.
436c16df 11045
92bb796d 11046 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
bbbef9e1 11047 (x_term_init): Remove local to avoid shadowing.
92bb796d 11048
764430a3 11049 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
4887c6e2
PE
11050
11051 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
11052 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
11053
d1dfb56c
EZ
110542011-04-16 Eli Zaretskii <eliz@gnu.org>
11055
c4354cb4
EZ
11056 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
11057
d1dfb56c
EZ
11058 Fix regex.c, syntax.c and friends for buffers > 2GB.
11059 * syntax.h (struct gl_state_s): Declare character position members
11060 EMACS_INT.
11061
11062 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
11063
04f2d78b
CB
11064 * textprop.c (verify_interval_modification, interval_of):
11065 Declare arguments EMACS_INT.
d1dfb56c
EZ
11066
11067 * intervals.c (adjust_intervals_for_insertion): Declare arguments
11068 EMACS_INT.
11069
11070 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
11071
11072 * indent.c (Fvertical_motion): Local variable it_start is now
11073 EMACS_INT.
11074
11075 * regex.c (re_match, re_match_2, re_match_2_internal)
11076 (bcmp_translate, regcomp, regexec, print_double_string)
11077 (group_in_compile_stack, re_search, re_search_2, regex_compile)
11078 (re_compile_pattern, re_exec): Declare arguments and local
11079 variables `size_t' and `ssize_t' and return values `regoff_t', as
11080 appropriate.
11081 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
11082 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
11083 <compile_stack_type>: `size' and `avail' are now `size_t'.
11084
11085 * regex.h <regoff_t>: Use ssize_t, not int.
11086 (re_search, re_search_2, re_match, re_match_2): Arguments that
11087 specify buffer/string position and length are now ssize_t and
11088 size_t. Return type is regoff_t.
11089
613052cd
BK
110902011-04-16 Ben Key <bkey76@gmail.com>
11091
11092 * nsfont.m: Fixed bugs in ns_get_family and
11093 ns_descriptor_to_entity that were caused by using free to
11094 deallocate memory blocks that were allocated by xmalloc (via
11095 xstrdup). This caused Emacs to crash when compiled with
11096 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
11097 --enable-checking=xmallocoverrun). xfree is now used to
11098 deallocate these memory blocks.
11099
4170f62f 111002011-04-15 Paul Eggert <eggert@cs.ucla.edu>
3e047f51 11101
71b41406
PE
11102 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
11103
9587a89d
PE
11104 emacs_write: Accept and return EMACS_INT for sizes.
11105 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
11106 et seq.
11107 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
11108 Accept and return EMACS_INT.
11109 (emacs_gnutls_write): Return the number of bytes written on
11110 partial writes.
11111 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
273a5f82
PE
11112 (emacs_read, emacs_write): Remove check for negative size, as the
11113 Emacs source code has been audited now.
9587a89d
PE
11114 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
11115 (emacs_read, emacs_write): Use it.
273a5f82
PE
11116 * process.c (send_process): Adjust to the new signatures of
11117 emacs_write and emacs_gnutls_write. Do not attempt to store
11118 a byte offset into an 'int'; it might overflow.
9587a89d 11119 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
273a5f82 11120
3e047f51
PE
11121 * sound.c: Don't assume sizes fit in 'int'.
11122 (struct sound_device.period_size, alsa_period_size):
9c3c56a7 11123 Return EMACS_INT, not int.
3e047f51 11124 (struct sound_device.write, vox_write, alsa_write):
9c3c56a7
PE
11125 Accept EMACS_INT, not int.
11126 (wav_play, au_play): Use EMACS_INT to store sizes and to
3e047f51
PE
11127 record read return values.
11128
cc39a9db
BK
111292011-04-15 Ben Key <bkey76@gmail.com>
11130
c9d0ec6d
JB
11131 * keyboard.c (Qundefined): Don't declare static since it is used
11132 in nsfns.m.
11133 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
11134 static since they are used in nsfont.m.
cc39a9db 11135
6c60eb9f
SM
111362011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
11137
11138 * process.c (Qprocessp): Don't declare static.
11139 * lisp.h (Qprocessp): Declare again.
11140
7990b61a
JB
111412011-04-15 Juanma Barranquero <lekktu@gmail.com>
11142
11143 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
11144
5d4cb038
PE
111452011-04-14 Paul Eggert <eggert@cs.ucla.edu>
11146
8bd7b830 11147 Improve C-level modularity by making more things 'static'.
cd64ea1d 11148
e3b27b31
PE
11149 Don't publish debugger-only interfaces to other modules.
11150 * lisp.h (safe_debug_print, debug_output_compilation_hack):
11151 (verify_bytepos, count_markers): Move decls to the only modules
11152 that need them.
11153 * region-cache.h (pp_cache): Likewise.
11154 * window.h (check_all_windows): Likewise.
11155 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
11156
5d4cb038
PE
11157 * sysdep.c (croak): Now static, if
11158 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
11159 * syssignal.h (croak): Declare only if not static.
69003fd8
PE
11160
11161 * alloc.c (refill_memory_reserve): Now static if
11162 !defined REL_ALLOC || defined SYSTEM_MALLOC.
11163 * lisp.h (refill_memory_reserve): Declare only if not static.
93ea6e8f 11164
e87b6180
PE
11165 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
11166 Define only if USE_LUCID.
11167
ac64929e
PE
11168 * xrdb.c (x_customization_string, x_rm_string): Now static.
11169
6f37259d
PE
11170 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
11171 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
11172
1683e3ab
PE
11173 * xdisp.c (draw_row_with_mouse_face): Now static.
11174 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
11175
de9c2632
PE
11176 * window.h (check_all_windows): Mark externally visible.
11177
2b96acb7
PE
11178 * window.c (window_deletion_count): Now static.
11179
11180 * undo.c: Make symbols static if they're not exported.
11181 (last_undo_buffer, last_boundary_position, pending_boundary):
11182 Now static.
11183
50436f33
PE
11184 * textprop.c (interval_insert_behind_hooks): Now static.
11185 (interval_insert_in_front_hooks): Likewise.
11186
64520e5c
PE
11187 * term.c: Make symbols static if they're not exported.
11188 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
11189 (max_frame_lines, tty_set_terminal_modes):
11190 (tty_reset_terminal_modes, tty_turn_off_highlight):
11191 (get_tty_terminal): Now static.
11192 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
11193 * termhooks.h (term_mouse_moveto): Do not declare if
8bd7b830 11194 HAVE_WINDOW_SYSTEM.
64520e5c
PE
11195 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
11196 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
11197
1fa53021
PE
11198 * sysdep.c: Make symbols static if they're not exported.
11199 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
11200 Now static.
11201 (sigprocmask_set, full_mask): Remove; unused.
11202 (wait_debugging): Mark as visible.
11203 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
11204 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
11205
d4b43b22
PE
11206 * syntax.c (syntax_temp): Define only if !__GNUC__.
11207
b7c513d0
PE
11208 * sound.c (current_sound_device, current_sound): Now static.
11209
989b29ad
PE
11210 * search.c (searchbufs, searchbuf_head): Now static.
11211
13a55a78
PE
11212 * scroll.c (scroll_cost): Remove; unused.
11213 * dispextern.h (scroll_cost): Remove decl.
11214
de68a1fc
PE
11215 * region-cache.h (pp_cache): Mark as externally visible.
11216
40ccffa6
PE
11217 * process.c: Make symbols static if they're not exported.
11218 (process_tick, update_tick, create_process, chan_process):
11219 (Vprocess_alist, proc_buffered_char, datagram_access):
11220 (fd_callback_data, send_process_frame, process_sent_to): Now static.
11221 (deactivate_process): Mark defn as static, as well as decl.
11222 * lisp.h (create_process): Remove decl.
11223 * process.h (chan_process, Vprocess_alist): Remove decls.
11224
ad64fc97
PE
11225 * print.c: Make symbols static if they're not exported.
11226 (print_depth, new_backquote_output, being_printed, print_buffer):
11227 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
11228 (print_interval, print_number_index, initial_stderr_stream):
11229 Now static.
11230 * lisp.h (Fprinc): Remove decl.
11231 (debug_output_compilation_hack): Mark as externally visible.
11232
adddb265
PE
11233 * sysdep.c (croak): Move decl from here to syssignal.h.
11234 * syssignal.h (croak): Put it here, so the API can be checked when
11235 'croak' is called from dissociate_if_controlling_tty.
11236
1717ede2
PE
11237 * minibuf.c: Make symbols static if they're not exported.
11238 (minibuf_save_list, choose_minibuf_frame): Now static.
11239 * lisp.h (choose_minibuf_frame): Remove decl.
11240
fa5fb2bc
PE
11241 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
11242
1e3890d1
PE
11243 * lread.c: Make symbols static if they're not exported.
11244 (read_objects, initial_obarray, oblookup_last_bucket_number):
11245 Now static.
11246 (make_symbol): Remove; unused.
11247 * lisp.h (initial_obarray, make_symbol): Remove decls.
11248
8a1414fa
PE
11249 * keyboard.c: Make symbols static if they're not exported.
11250 (single_kboard, recent_keys_index, total_keys, recent_keys):
11251 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
11252 (this_single_command_key_start, echoing, last_auto_save):
11253 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
11254 (command_loop, echo_now, keyboard_init_hook, help_char_p):
11255 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
11256 (Vlispy_mouse_stem, double_click_count):
11257 Now static.
11258 (force_auto_save_soon): Define only if SIGDANGER.
11259 (ignore_mouse_drag_p): Now static if
11260 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
11261 (print_help): Remove; unused.
11262 (stop_character, last_timer_event): Mark as externally visible.
11263 * keyboard.h (ignore_mouse_drag_p): Declare only if
11264 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
11265 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
11266 * lisp.h (echoing): Remove decl.
11267 (force_auto_save_soon): Declare only if SIGDANGER.
11268 * xdisp.c (redisplay_window): Simplify code, to make it more
11269 obvious that ignore_mouse_drag_p is not accessed if !defined
11270 USE_GTK && !defined HAVE_NS.
11271
93ea6e8f
PE
11272 * intervals.c: Make symbols static if they're not exported.
11273 (merge_properties_sticky, merge_interval_right, delete_interval):
11274 Now static.
11275 * intervals.h (merge_interval_right, delete_interval): Remove decls.
11276
77382fcc
PE
11277 * insdel.c: Make symbols static if they're not exported.
11278 However, leave prepare_to_modify_buffer alone. It's never
11279 called from outside this function, but that appears to be a bug.
11280 (combine_after_change_list, combine_after_change_buffer):
4889fc82 11281 (adjust_after_replace, signal_before_change): Now static.
77382fcc
PE
11282 (adjust_after_replace_noundo): Remove; unused.
11283 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
4889fc82 11284 (signal_before_change): Remove decls.
77382fcc 11285
9306c32e
PE
11286 * indent.c (val_compute_motion, val_vmotion): Now static.
11287
cd44d2eb
PE
11288 * image.c: Make symbols static if they're not exported.
11289 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
11290 if USE_GTK.
11291 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
11292 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
11293
ad9a7a06
PE
11294 * fringe.c (standard_bitmaps): Now static.
11295 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
11296
81626931
PE
11297 * frame.c: Make symbols static if they're not exported.
11298 (x_report_frame_params, make_terminal_frame): Now static.
11299 (get_frame_param): Now static, unless HAVE_NS.
11300 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
11301 (x_get_resource_string): Remove; not used.
11302 * frame.h (make_terminal_frame, x_report_frame_params):
11303 (x_get_resource_string); Remove decls.
11304 (x_fullscreen_adjust): Declare only if WINDOWSNT.
11305 * lisp.h (get_frame_param): Declare only if HAVE_NS.
11306
239f9db9
PE
11307 * font.c, fontset.c: Make symbols static if they're not exported.
11308 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
11309 (FACE_SUITABLE_FOR_CHAR_P): Use it.
11310 * font.c (font_close_object): Now static.
11311 * font.h (font_close_object): Remove.
11312 * fontset.c (FONTSET_OBJLIST): Remove.
11313 (free_realized_fontset) #if-0 the body, which does nothing.
11314 (face_suitable_for_char_p): #if-0, as it's never called.
11315 * fontset.h (face_suitable_for_char_p): Remove decl.
04f2d78b
CB
11316 * xfaces.c (face_at_string_position):
11317 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
239f9db9
PE
11318 since 0 is always ASCII.
11319
dfcf3579
PE
11320 * fns.c (weak_hash_tables): Now static.
11321
5045092b
PE
11322 * fileio.c: Make symbols static if they're not exported.
11323 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
11324 (Vwrite_region_annotation_buffers): Now static.
11325
57a96f5c
PE
11326 * eval.c: Make symbols static if they're not exported.
11327 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
11328 * lisp.h (backtrace_list): Remove decl.
11329
35f08c38
PE
11330 * emacs.c: Make symbols static if they're not exported.
11331 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
11332 (fatal_error_code, fatal_error_signal_hook, standard_args):
11333 Now static.
11334 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
11335 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
11336 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
11337 * lisp.h (fatal_error_signal_hook): Remove decl.
11338 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
11339
f44bd759
PE
11340 * editfns.c: Move a (normally-unused) function to its only use.
11341 * editfns.c, lisp.h (get_operating_system_release): Remove.
11342 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
11343 worth the hassle of breaking this out.
11344
b532497d
PE
11345 * xterm.c: Make symbols static if they're not exported.
11346 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
11347 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
11348 (x_destroy_window, x_delete_display):
11349 Now static.
11350 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
11351 (x_mouse_leave): Remove; unused.
11352 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
11353 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
11354 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
11355 Remove decls.
11356 (x_mouse_leave): Declare only if WINDOWSNT.
11357 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
11358 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
11359 USE_X_TOOLKIT.
11360
1675728f
PE
11361 * ftxfont.c: Make symbols static if they're not exported.
11362 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
11363 HAVE_FREETYPE.
11364 * font.h (ftxfont_driver): Likewise.
11365
e4cebfca
PE
11366 * xfns.c: Make symbols static if they're not exported.
11367 (x_last_font_name, x_display_info_for_name):
11368 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
11369 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
11370 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
11371 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
11372 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
11373 (last_show_tip_args): Now static.
11374 (xic_defaut_fontset, xic_create_fontsetname): Define only if
11375 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
11376 (x_screen_planes): Remove; unused.
11377 * dispextern.h (x_screen_planes): Remove decl.
11378
5bf46f05
PE
11379 * dispnew.c: Make symbols static if they're not exported.
11380 * dispextern.h (redraw_garbaged_frames, scrolling):
11381 (increment_row_positions): Remove.
11382 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
11383 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
11384 Now static.
11385 (redraw_garbaged_frames): Remove; unused.
11386
435f4c28
PE
11387 * xfaces.c: Make symbols static if they're not exported.
11388 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
11389 Remove decls.
11390 * xterm.h (defined_color): Remove decls.
11391 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
11392 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
11393 (menu_face_changed_default, defined_color, free_realized_face):
11394 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
11395 (ascii_face_of_lisp_face): Remove; unused.
11396
8524aef3
PE
11397 * xdisp.c: Make symbols static if they're not exported.
11398 * dispextern.h (scratch_glyph_row, window_box_edges):
11399 (glyph_to_pixel_coords, set_cursor_from_row):
11400 (get_next_display_element, set_iterator_to_next):
11401 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
11402 (show_mouse_face): Remove decls
11403 * frame.h (message_buf_print): Likewise.
11404 * lisp.h (pop_message, set_message, check_point_in_composition):
11405 Likewise.
11406 * xterm.h (set_vertical_scroll_bar): Likewise.
11407 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
11408 (message_buf_print, scratch_glyph_row, displayed_buffer):
11409 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
11410 (get_next_display_element, show_mouse_face, window_box_edges):
11411 (frame_to_window_pixel_xy, check_point_in_composition):
11412 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
11413 (glyph_to_pixel_coords): Remove; unused.
11414
16390cd2
PE
11415 * dired.c (file_name_completion): Now static.
11416
11417 * dbusbind.c (xd_in_read_queued_messages): Now static.
11418
a25f4dfa
PE
11419 * lisp.h (circular_list_error, FOREACH): Remove; unused.
11420 * data.c (circular_list_error): Remove.
11421
14a9c8df
PE
11422 * commands.h (last_point_position, last_point_position_buffer):
11423 (last_point_position_window): Remove decls.
11424 * keyboard.c: Make these variables static.
11425
04f2d78b
CB
11426 * coding.h (coding, code_convert_region, encode_coding_gap):
11427 Remove decls.
74ab6df5
PE
11428 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
11429 (iso_code_class, detect_coding, code_convert_region): Now static.
11430 (encode_coding_gap): Remove; unused.
11431
38dfbee1
PE
11432 * chartab.c (chartab_chars, chartab_bits): Now static.
11433
a2cb4e63
PE
11434 * charset.h (charset_iso_8859_1): Remove decl.
11435 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
11436 Now static.
11437
127198fd
PE
11438 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
11439 * ccl.c (Vccl_program_table): Now static.
11440 (check_ccl_update): Remove; unused.
11441
d85b608f
PE
11442 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
11443 * category.h: ... from here.
11444 * category.c (check_category_table, set_category_set): Now static.
11445
31cd66f3
PE
11446 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
11447 * lisp.h: Remove these decls.
11448
c358e587
PE
11449 * buffer.c (buffer_count): Remove unused var.
11450
e78aecca
PE
11451 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
11452 so that it's not optimized away.
11453 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
11454 * dispextern.h (bidi_dump_cached_states): Remove, since it's
11455 exported only to the debugger.
11456
e192d7d3 11457 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
04f2d78b 11458 * atimer.h (run_all_atimers): Remove; not exported.
e192d7d3 11459
92470028
PE
11460 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
11461 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
11462 was inaccessible from Lisp.
11463 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
11464 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
11465
244ed907
PE
11466 alloc.c: Import and export fewer symbols, and remove unused items.
11467 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
11468 is defined.
11469 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
11470 it's not optimized away by whole-program optimization.
11471 (message_enable_multibyte, free_misc): Remove.
11472 (catchlist, handlerlist, mark_backtrace):
11473 Declare only if BYTE_MARK_STACK.
11474 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
11475 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
11476 (message_enable_multibyte): Remove decl.
11477 (free_misc, interval_free_list, float_block, float_block_index):
11478 (n_float_blocks, float_free_list, cons_block, cons_block_index):
11479 (cons_free_list, last_marked_index):
11480 Now static.
11481 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
11482 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
11483 (mark_backtrace): Define only if BYTE_MARK_STACK.
11484 * xdisp.c (message_enable_multibyte): Now static.
11485
61c2b50e 11486 Declare Lisp_Object Q* variables to be 'static' if not exported.
955cbe7b
PE
11487 This makes it easier for human readers (and static analyzers)
11488 to see whether these variables are used from other modules.
11489 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
11490 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
11491 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
11492 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
11493 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
11494 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
11495 * xmenu.c, xselect.c:
11496 Declare Q* vars static if they are not used in other modules.
11497 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
11498 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
11499 Remove decls of unexported vars.
11500 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
11501
95c82688
PE
11502 * lisp.h (DEFINE_FUNC): Make sname 'static'.
11503
16a97296
PE
11504 Make Emacs functions such as Fatom 'static' by default.
11505 This makes it easier for human readers (and static analyzers)
11506 to see whether these functions can be called from other modules.
11507 DEFUN now defines a static function. To make the function external
11508 so that it can be used in other C modules, use the new macro DEFUE.
8bd7b830
PE
11509 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
11510 (Finit_image_library):
16a97296
PE
11511 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
11512 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
11513 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
11514 Remove decls, since these functions are now static.
11515 (Funintern, Fget_internal_run_time): New decls, since these functions
11516 were already external.
95c82688 11517
16a97296
PE
11518 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
11519 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
11520 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
11521 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
11522 * keyboard.c, keymap.c, lread.c:
11523 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
11524 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
11525 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
11526 Mark functions with DEFUE instead of DEFUN,
11527 if they are used in other modules.
11528 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
11529 decls for now-static functions.
11530 * buffer.h (Fdelete_overlay): Remove decl.
11531 * callproc.c (Fgetenv_internal): Mark as internal.
11532 * composite.c (Fremove_list_of_text_properties): Remove decl.
11533 (Fcomposition_get_gstring): New forward static decl.
11534 * composite.h (Fcomposite_get_gstring): Remove decl.
11535 * dired.c (Ffile_attributes): New forward static decl.
11536 * doc.c (Fdocumntation_property): New forward static decl.
11537 * eval.c (Ffetch_bytecode): New forward static decl.
11538 (Funintern): Remove extern decl; now in .h file where it belongs.
11539 * fileio.c (Fmake_symbolic_link): New forward static decl.
11540 * image.c (Finit_image_library): New forward static decl.
11541 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
11542 * intervals.h (Fprevious_property_change):
11543 (Fremove_list_of_text_properties): Remove decls.
11544 * keyboard.c (Fthis_command_keys): Remove decl.
11545 (Fcommand_execute): New forward static decl.
11546 * keymap.c (Flookup_key): New forward static decl.
11547 (Fcopy_keymap): Now static.
11548 * keymap.h (Flookup_key): Remove decl.
11549 * process.c (Fget_process): New forward static decl.
11550 (Fprocess_datagram_address): Mark as internal.
11551 * syntax.c (Fsyntax_table_p): New forward static decl.
11552 (skip_chars): Remove duplicate decl.
11553 * textprop.c (Fprevious_property_change): New forward static decl.
11554 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
11555 Now internal.
11556 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
11557 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
11558
785bbd42
PE
11559 * editfns.c (Fformat): Remove unreachable code.
11560
8b913b57
AS
115612011-04-14 Andreas Schwab <schwab@linux-m68k.org>
11562
11563 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
11564 change. (Bug#8496)
11565
a6744a35
EZ
115662011-04-13 Eli Zaretskii <eliz@gnu.org>
11567
11568 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
11569 when at ZV. (Bug#8487)
11570
e7974947
AS
115712011-04-12 Andreas Schwab <schwab@linux-m68k.org>
11572
baad03f0
AS
11573 * charset.c (Fclear_charset_maps): Use xfree instead of free.
11574 (Bug#8437)
11575 * keyboard.c (parse_tool_bar_item): Likewise.
11576 * sound.c (sound_cleanup, alsa_close): Likewise.
11577 * termcap.c (tgetent): Likewise.
11578 * xfns.c (x_default_font_parameter): Likewise.
11579 * xsettings.c (read_and_apply_settings): Likewise.
11580
e7974947
AS
11581 * alloc.c (overrun_check_malloc, overrun_check_realloc)
11582 (overrun_check_free): Protoize.
11583
28272684
PE
115842011-04-12 Paul Eggert <eggert@cs.ucla.edu>
11585
11586 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
11587 since callers should never pass a negative size.
11588 Change the signature to match that of plain 'read' and 'write'; see
11589 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
11590 * lisp.h: Update prototypes of emacs_write and emacs_read.
11591
11997c76
EZ
115922011-04-11 Eli Zaretskii <eliz@gnu.org>
11593
11594 * xdisp.c (redisplay_window): Don't try to determine the character
11595 position of the scroll margin if the window start point w->startp
e896f03c 11596 is outside the buffer's accessible region. (Bug#8468)
11997c76 11597
8a2cbd72
EZ
115982011-04-10 Eli Zaretskii <eliz@gnu.org>
11599
11600 Fix write-region and its subroutines for buffers > 2GB.
11601 * fileio.c (a_write, e_write): Modify declaration of arguments and
11602 local variables to support buffers larger than 2GB.
11603 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
11604
11605 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
11606 argument, local variables, and return value.
11607
11608 * lisp.h: Update prototypes of emacs_write and emacs_read.
11609
11610 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
11611
4073e537 116122011-04-10 Paul Eggert <eggert@cs.ucla.edu>
eb3f1cc8 11613
1ebfdcb6
PE
11614 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
11615
b2ded58d
PE
11616 Fix more problems found by GCC 4.6.0's static checks.
11617
7d66342c
PE
11618 * xdisp.c (vmessage): Use a better test for character truncation.
11619
bbf47d44
PE
11620 * charset.c (load_charset_map): <, not <=, for optimization,
11621 and to avoid potential problems with integer overflow.
9248994d 11622 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
f9a68bc5 11623 * casetab.c (set_identity, shuffle): Likewise.
3ab1c7ce 11624 * editfns.c (Fformat): Likewise.
1e69125e 11625 * syntax.c (skip_chars): Likewise.
3befa583 11626
e3019616
PE
11627 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
11628 This also lets GCC 4.6.0 generate slightly better loop code.
11629
becfa255
PE
11630 * callint.c (Fcall_interactively): <, not <=, for optimization.
11631 (Fcall_interactively): Count the number of arguments produced,
11632 not the number of arguments given. This is simpler and lets GCC
11633 4.6.0 generate slightly better code.
11634
dae0cd48
PE
11635 * ftfont.c: Distingish more carefully between FcChar8 and char.
11636 The previous code passed unsigned char * to a functions like
11637 strlen and xstrcasecmp that expect char *, which does not
11638 conform to the C standard.
11639 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
11640 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
11641 char * when the C standard requires it.
11642
76032d70
PE
11643 * keyboard.c (read_char): Remove unused var.
11644
eb3f1cc8
PE
11645 * eval.c: Port to Windows vsnprintf (Bug#8435).
11646 Include <limits.h>.
11647 (SIZE_MAX): Define if the headers do not.
11648 (verror): Do not give up if vsnprintf returns a negative count.
11649 Instead, grow the buffer. This ports to Windows vsnprintf, which
11650 does not conform to C99. Problem reported by Eli Zaretskii.
11651 Also, simplify the allocation scheme, by avoiding the need for
11652 calling realloc, and removing the ALLOCATED variable.
11653
70476b54
PE
11654 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
11655
12020a9e
PE
11656 Remove invocations of doprnt, as Emacs now uses vsnprintf.
11657 But keep the doprint source code for now, as we might revamp it
11658 and use it again (Bug#8435).
ea6c7ae6
PE
11659 * lisp.h (doprnt): Remove.
11660 * Makefile.in (base_obj): Remove doprnt.o.
11661 * deps.mk (doprnt.o): Remove.
11662
5fdb398c
PE
11663 error: Print 32- and 64-bit integers portably (Bug#8435).
11664 Without this change, on typical 64-bit hosts error ("...%d...", N)
11665 was used to print both 32- and 64-bit integers N, which relied on
11666 undefined behavior.
61bdb816 11667 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
5fdb398c
PE
11668 * lisp.h (error, verror): Mark as printf-like functions.
11669 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
11670 Report overflow in size calculations when allocating printf buffer.
11671 Do not truncate output string at its first null byte.
11672 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
11673 Truncate the output at a character boundary, since vsnprintf does not
11674 do that.
11675 * charset.c (check_iso_charset_parameter): Convert internal
11676 character to string before calling 'error', since %c now has the
11677 printf meaning.
11678 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
11679 overflow when computing char to be passed to 'error'. Do not
11680 pass Lisp_Object to 'error'; pass the integer instead.
11681 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
11682 formatted with plain %d.
11683
b189fa66
PE
11684 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
11685
bff87ef0
PE
11686 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
11687
7e2cac20
PE
11688 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
11689
ce4d90b5
PE
11690 * xterm.c (x_catch_errors): Remove duplicate declaration.
11691
266c9547
PE
11692 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
11693
79c49ad2
PE
11694 * xdisp.c, lisp.h (message_nolog): Remove; unused.
11695
368f4090
JM
116962011-04-10 Jim Meyering <meyering@redhat.com>
11697
11698 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
11699 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
11700 return ssize_t not "int", and use size_t as the buffer length.
11701 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
11702 * gnutls.h: Update declarations.
11703 * process.c (read_process_output): Use ssize_t, to match.
11704 (send_process): Likewise.
11705
a32d4040
CY
117062011-04-09 Chong Yidong <cyd@stupidchicken.com>
11707
11708 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
11709
8546720e 117102011-04-09 Chong Yidong <cyd@stupidchicken.com>
aac0c6e3 11711
04f2d78b
CB
11712 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
11713 Use unsigned char, to match FcChar8 type definition.
aac0c6e3 11714
8546720e
GM
11715 * xterm.c (handle_one_xevent):
11716 * xmenu.c (create_and_show_popup_menu):
11717 * xselect.c (x_decline_selection_request)
11718 (x_reply_selection_request): Avoid type-punned deref of X events.
aac0c6e3 11719
0a2f5c1a 117202011-04-09 Eli Zaretskii <eliz@gnu.org>
a53e2e89
EZ
11721
11722 Fix some uses of `int' instead of EMACS_INT.
11723 * search.c (string_match_1, fast_string_match)
11724 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
11725 (scan_buffer, find_next_newline_no_quit)
11726 (find_before_next_newline, search_command, Freplace_match)
11727 (Fmatch_data): Make some `int' variables be EMACS_INT.
11728
11729 * xdisp.c (display_count_lines): 3rd argument and return value now
11730 EMACS_INT. All callers changed.
11731 (pint2hrstr): Last argument is now EMACS_INT.
11732
11733 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
11734 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
11735 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
11736 (decode_coding_utf_16, decode_coding_emacs_mule)
11737 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
11738 (decode_coding_ccl, decode_coding_charset)
11739 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
11740 (decode_coding_iso_2022, decode_coding_emacs_mule)
11741 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
11742 <char_offset, last_offset>: Declare EMACS_INT.
11743 (encode_coding_utf_8, encode_coding_utf_16)
11744 (encode_coding_emacs_mule, encode_invocation_designation)
11745 (encode_designation_at_bol, encode_coding_iso_2022)
11746 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
11747 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
11748 Declare EMACS_INT.
11749 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
11750 (encode_invocation_designation): Last argument P_NCHARS is now
11751 EMACS_INT.
11752 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
11753 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
11754
11755 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
11756 All users changed.
11757
11758 * ccl.c (Fccl_execute_on_string): Declare some variables
11759 EMACS_INT.
11760
8546720e 117612011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
0080dc6b
SS
11762
11763 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
11764
4e19a977
CS
117652011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
11766
11767 * process.c (Fformat_network_address): Doc fix.
11768
87302331
R
117692011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
11770
ee7683eb 11771 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
87302331 11772
cbb59342
CY
117732011-04-08 Chong Yidong <cyd@stupidchicken.com>
11774
11775 * keyboard.c (read_char): Call Lisp function help-form-show,
11776 instead of using internal_with_output_to_temp_buffer.
11777 (Qhelp_form_show): New var.
e0d38eeb 11778 (syms_of_keyboard): Use DEFSYM macro.
cbb59342
CY
11779
11780 * print.c (internal_with_output_to_temp_buffer): Function deleted.
11781
11782 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
11783
e67a13ab
CY
117842011-04-06 Chong Yidong <cyd@stupidchicken.com>
11785
04f2d78b
CB
11786 * process.c (Flist_processes): Remove to Lisp.
11787 (list_processes_1): Delete.
e67a13ab 11788
973f782d
EZ
117892011-04-06 Eli Zaretskii <eliz@gnu.org>
11790
7c106b1e
EZ
11791 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
11792
973f782d
EZ
11793 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
11794
41cf7d1a 117952011-04-06 Paul Eggert <eggert@cs.ucla.edu>
27ccc379 11796
ca23cc88
PE
11797 Fix more problems found by GCC 4.6.0's static checks.
11798
f390e2d5
PE
11799 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
11800
42eea0d0
PE
11801 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
11802
b69769da 11803 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
1e973bc7 11804
f9541e84
PE
11805 * xdisp.c (vmessage): Mark as a printf-like function.
11806
13841b55
PE
11807 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
11808
c136c10f
PE
11809 * sound.c (sound_warning): Don't crash if arg contains a printf format.
11810
5e2d4a30
PE
11811 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
11812 printf-like functions.
11813 (tiff_load): Add casts to remove these marks before passing them
11814 to system-supplied API.
11815
583f48b9
PE
11816 * eval.c (Fsignal): Remove excess argument to 'fatal'.
11817
b25d760e
PE
11818 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
11819 This avoids several warnings with gcc -Wstrict-overflow.
d5efd1d1
PE
11820 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
11821 directly, rather than having caller test rule sign. This avoids
11822 some unnecessary tests.
11823 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
11824 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
11825 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
b25d760e 11826
bc7b6697 11827 * xfont.c (xfont_text_extents): Remove var that was set but not used.
625a3eb1 11828 (xfont_open): Avoid unnecessary tests.
bc7b6697 11829
27ccc379
PE
11830 * composite.c (composition_gstring_put_cache): Use unsigned integer.
11831
dcd5c89a
PE
11832 * composite.h, composite.c (composition_gstring_put_cache):
11833 Use EMACS_INT, not int, for length.
11834
b13a45c6
PE
11835 * composite.h (COMPOSITION_DECODE_REFS): New macro,
11836 breaking out part of COMPOSITION_DECODE_RULE.
11837 (COMPOSITION_DECODE_RULE): Use it.
11838 * composite.c (get_composition_id): Remove unused local vars,
11839 by using the new macro.
11840
1e792e4d
PE
11841 * textprop.c (set_text_properties_1): Change while to do-while,
11842 since the condition is always true at first.
11843
dc6c6455 11844 * intervals.c (graft_intervals_into_buffer): Mark var as used.
aa86731f
PE
11845 (interval_deletion_adjustment): Return unsigned value.
11846 All uses changed.
dc6c6455 11847
aba7731a
PE
11848 * process.c (list_processes_1, create_pty, read_process_output):
11849 (exec_sentinel): Remove vars that were set but not used.
afd4052b 11850 (create_pty): Remove unnecessary "volatile"s.
bc57d757 11851 (Fnetwork_interface_info): Avoid possibility of int overflow.
82eaa333 11852 (read_process_output): Do adaptive read buffering even if carryover.
fe07cdfa 11853 (read_process_output): Simplify nbytes computation if buffered.
aba7731a 11854
fdfc4bf3
PE
11855 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
11856
fca8fe46 11857 * syntax.c (scan_words): Remove var that was set but not used.
12cbf13f 11858 (update_syntax_table): Use unsigned instead of int.
fca8fe46 11859
06a0259a 11860 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
3c346cc3 11861 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
e6eb4e9e 11862 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
06a0259a 11863
e7b9e80f
PE
11864 * print.c (print_error_message): Avoid int overflow.
11865
56201685
PE
11866 * font.c (font_list_entities): Redo for clarity,
11867 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
11868
78834453 11869 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
790771b1 11870 (font_score): Avoid potential overflow in diff calculation.
78834453 11871
0bc0b309 11872 * fns.c (substring_both): Remove var that is set but not used.
8cd55cb4 11873 (sxhash): Redo loop for clarity and to avoid wraparound warning.
0bc0b309 11874
e610eaca
PE
11875 * eval.c (funcall_lambda): Rename local to avoid shadowing.
11876
b895abce
PE
11877 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
11878 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
11879 can always succeed if overflow has undefined behavior.
11880
1f1d9321 11881 * search.c (boyer_moore, wordify): Remove vars set but not used.
6f076cc7 11882 (wordify): Omit three unnecessary tests.
1f1d9321 11883
c59478bc
PE
11884 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
11885 All callers changed. This avoids the need for an unused var.
11886
79b73827
PE
11887 * casefiddle.c (casify_region): Remove var that is set but not used.
11888
a4db5dfe
PE
11889 * dired.c (file_name_completion): Remove var that is set but not used.
11890
43aae36e
PE
11891 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
11892
2a47c44d 11893 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
163c5f32 11894 (Finsert_file_contents): Remove unnecessary code checking fd.
2a47c44d 11895
a37c69bf
PE
11896 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
11897 Check for integer overflow on size calculations.
11898
328ab8e7
PE
11899 * buffer.c (Fprevious_overlay_change): Remove var that is set
11900 but not used.
11901
e5a2a5cb
PE
11902 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
11903 Remove vars that are set but not used.
8d84a6eb 11904 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
6b043475 11905 (timer_check_2): Mark vars as initialized.
e5a2a5cb 11906
a60e5f68
PE
11907 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
11908
f661cb61 11909 * image.c (lookup_image): Remove var that is set but not used.
35fa624f 11910 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
f661cb61 11911
f0397f5a
PE
11912 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
11913 that are set but not used.
11914
8664db06 11915 * xfns.c (make_invisible_cursor): Don't return garbage
03733ee7 11916 if XCreateBitmapFromData fails (Bug#8410).
8664db06 11917
6abdaa4a
PE
11918 * xselect.c (x_get_local_selection, x_handle_property_notify):
11919 Remove vars that are set but not used.
11920
0ce7538d 11921 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
6abdaa4a 11922 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
0ce7538d 11923
9ae848fc
PE
11924 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
11925 Remove var that is set but not used.
0b918413
PE
11926 (scroll_bar_windows_size): Now size_t, not int.
11927 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
11928 Check for overflow.
9ae848fc 11929
a5a62657
PE
11930 * xfaces.c (realize_named_face): Remove vars that are set but not used.
11931 (map_tty_color) [!defined MSDOS]: Likewise.
11932
5c5cdd39
PE
11933 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
11934
66ebf983
PE
11935 * coding.c: Remove vars that are set but not used.
11936 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
11937 All callers changed.
11938 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
11939 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
11940 (decode_coding_charset): Remove vars that are set but not used.
11941
1be4d761
PE
11942 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
11943 that is set but not used.
11944
47553fa8
PE
11945 * print.c (print_object): Remove var that is set but not used.
11946
1f7196bf 11947 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
d1fdcab7
PE
11948 The gnulib version avoids calling malloc in the usual case,
11949 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
11950 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
11951 * filelock.c (current_lock_owner): Likewise.
11952 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
11953 * sysdep.c: Include allocator.h, careadlinkat.h.
11954 (emacs_no_realloc_allocator): New static constant.
11955 (emacs_readlink): New function.
fdb61804
PE
11956 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
11957 ../lib/careadlinkat.h.
d1fdcab7 11958
f84c17c7
SM
119592011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
11960
11961 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
11962 first non-nil return value).
11963
ef3862ad
JD
119642011-04-03 Jan Djärv <jan.h.d@swipnet.se>
11965
11966 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
11967 if not defined (Bug#8403).
11968
376a7006
JB
119692011-04-02 Juanma Barranquero <lekktu@gmail.com>
11970
11971 * xdisp.c (display_count_lines): Remove parameter `start',
11972 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
11973 (get_char_face_and_encoding): Remove parameter `multibyte_p',
11974 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
11975 (fill_stretch_glyph_string): Remove parameters `row' and `area',
11976 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
11977 and thereabouts. All callers changed.
11978 (get_per_char_metric): Remove parameter `f', unused since
11979 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
11980
6ca3801d
JM
119812011-04-02 Jim Meyering <meyering@redhat.com>
11982
11983 do not dereference NULL upon failed strdup
11984 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
11985 (ns_get_family): Likewise.
11986
d8e2b5ba
JB
119872011-04-02 Juanma Barranquero <lekktu@gmail.com>
11988
11989 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
11990
8c74fcbd
JD
119912011-04-02 Jan Djärv <jan.h.d@swipnet.se>
11992
11993 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
11994 later (Bug#8403).
11995
7200d79c
SM
119962011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
11997
03408648 11998 Add lexical binding.
7200d79c 11999
03408648
SM
12000 * window.c (Ftemp_output_buffer_show): New fun.
12001 (Fsave_window_excursion):
12002 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
12003
12004 * lread.c (lisp_file_lexically_bound_p): New function.
12005 (Fload): Bind Qlexical_binding.
12006 (readevalloop): Remove `evalfun' arg.
12007 Bind Qinternal_interpreter_environment.
12008 (Feval_buffer): Bind Qlexical_binding.
12009 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
12010 Mark as dynamic.
12011 (syms_of_lread): Declare `lexical-binding'.
12012
12013 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
12014
12015 * keyboard.c (eval_dyn): New fun.
12016 (menu_item_eval_property): Use it.
ca105506
SM
12017
12018 * image.c (parse_image_spec): Use Ffunctionp.
ca105506 12019
03408648
SM
12020 * fns.c (concat, mapcar1): Accept byte-code-functions.
12021
12022 * eval.c (Fsetq): Handle lexical vars.
12023 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
12024 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
12025 (FletX, Flet): Obey lexical binding.
12026 (Fcommandp): Handle closures.
12027 (Feval): New `lexical' arg.
12028 (eval_sub): New function extracted from Feval. Use it almost
12029 everywhere where Feval was used. Look up vars in lexical env.
12030 Handle closures.
12031 (Ffunctionp): Move from subr.el.
12032 (Ffuncall): Handle closures.
12033 (apply_lambda): Remove `eval_flags'.
12034 (funcall_lambda): Handle closures and new byte-code-functions.
12035 (Fspecial_variable_p): New function.
12036 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
12037 but without exporting it to Lisp.
23aba0ea 12038
23aba0ea 12039 * doc.c (Fdocumentation, store_function_docstring):
03408648 12040 * data.c (Finteractive_form): Handle closures.
23aba0ea 12041
03408648
SM
12042 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
12043 interactive spec.
ba83908c 12044
04f2d78b
CB
12045 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
12046 New byte-codes.
03408648
SM
12047 (exec_byte_code): New function extracted from Fbyte_code to handle new
12048 calling convention for byte-code-functions. Add new byte-codes.
ba83908c 12049
03408648 12050 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
e2abe5a1 12051
03408648 12052 * alloc.c (Fmake_symbol): Init new `declared_special' field.
e2abe5a1 12053
e2abce01
JB
120542011-03-31 Juanma Barranquero <lekktu@gmail.com>
12055
12056 * xdisp.c (redisplay_internal): Fix prototype.
12057
63696a73 120582011-03-31 Eli Zaretskii <eliz@gnu.org>
09725d26 12059
63696a73 12060 * xdisp.c (SCROLL_LIMIT): New macro.
04f2d78b
CB
12061 (try_scrolling): Use it when setting scroll_limit.
12062 Limit scrolling to 100 screen lines.
63696a73
EZ
12063 (redisplay_window): Even when falling back on "recentering",
12064 position point in the window according to scroll-conservatively,
12065 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
12066
12067 (try_scrolling): When point is above the window, allow searching
12068 as far as scroll_max, or one screenful, to compute vertical
12069 distance from PT to the scroll margin position. This prevents
12070 try_scrolling from unnecessarily failing when
12071 scroll-conservatively is set to a value slightly larger than the
12072 window height. Clean up the case of PT below the margin at bottom
12073 of window: scroll_max can no longer be INT_MAX. When aggressive
12074 scrolling is in use, don't let point enter the opposite scroll
12075 margin as result of the scroll.
12076 (syms_of_xdisp) <scroll-conservatively>: Document the
09725d26
EZ
12077 threshold of 100 lines for never-recentering scrolling.
12078
e4cc2dfc
JB
120792011-03-31 Juanma Barranquero <lekktu@gmail.com>
12080
12081 * dispextern.h (move_it_by_lines):
12082 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
12083 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
12084 (message_log_check_duplicate): Remove parameters `prev_bol' and
12085 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
12086 (redisplay_internal): Remove parameter `preserve_echo_area',
12087 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
12088
12089 * indent.c (Fvertical_motion):
12090 * window.c (window_scroll_pixel_based, Frecenter):
12091 Don't pass `need_y_p' to `move_it_by_lines'.
12092
1c470562
SM
120932011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
12094
44f230aa
SM
12095 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
12096 steal a few bits to be more compact.
12097 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
12098 Remove unneeded casts.
12099
1c470562
SM
12100 * bytecode.c (Fbyte_code): CAR and CDR can GC.
12101
888adce9
ZK
121022011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
12103
12104 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
12105 binding" message (bug#7967).
12106
f838ed7b
PE
121072011-03-30 Paul Eggert <eggert@cs.ucla.edu>
12108
77861b95
PE
12109 Fix more problems found by GCC 4.6.0's static checks.
12110
de6dbc14
PE
12111 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
12112 Remove unused local var.
12113
f838ed7b
PE
12114 * editfns.c (Fmessage_box): Remove unused local var.
12115
792c7b2b
PE
12116 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
12117 (note_mode_line_or_margin_highlight, note_mouse_highlight):
12118 Omit unused local vars.
c499e557 12119 * window.c (shrink_windows): Omit unused local var.
b01a1c29 12120 * menu.c (digest_single_submenu): Omit unused local var.
0bc32927
PE
12121 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
12122 Omit unused local var.
12123
ba0165e1
PE
12124 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
12125 Don't assume string length fits in int.
32ad8845 12126 (keyremap_step, read_key_sequence): Use size_t for sizes.
48011560 12127 (read_key_sequence): Don't check last_real_key_start redundantly.
ba0165e1 12128
3c59b4c9
PE
12129 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
12130 instead of alloca (Bug#8344).
12131
a3eed478 12132 * eval.c (Fbacktrace): Don't assume nargs fits in int.
5d5d959d 12133 (Fbacktrace_frame): Don't assume nframes fits in int.
a3eed478 12134
eb4d412d
PE
12135 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
12136
1658b401
PE
12137 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
12138 concerns.
12139
12140 * term.c (produce_glyphless_glyph): Remove unnecessary test.
12141
12142 * cm.c (calccost): Turn while-do into do-while, for clarity.
44f730c8 12143
9a2c6e05
PE
12144 * keyboard.c (syms_of_keyboard): Use the same style as later
12145 in this function when indexing through an array. This also
12146 works around GCC bug 48267.
12147
03d0a109
PE
12148 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
12149
44f730c8
PE
12150 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
12151
fe75f926
PE
12152 * chartab.c (sub_char_table_ref_and_range): Redo for slight
12153 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
12154
ffa8c828
PE
12155 * keyboard.c, keyboard.h (num_input_events): Now size_t.
12156 This avoids undefined behavior on integer overflow, and is a bit
12157 more convenient anyway since it is compared to a size_t variable.
12158
c5101a77
PE
12159 Variadic C functions now count arguments with size_t, not int.
12160 This avoids an unnecessary limitation on 64-bit machines, which
12161 caused (substring ...) to crash on large vectors (Bug#8344).
12162 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
12163 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
77861b95 12164 All variadic functions and their callers changed accordingly.
c5101a77
PE
12165 (struct gcpro.nvars): Now size_t, not int. All uses changed.
12166 * data.c (arith_driver, float_arith_driver): Likewise.
12167 * editfns.c (general_insert_function): Likewise.
12168 * eval.c (struct backtrace.nargs, interactive_p)
12169 (internal_condition_case_n, run_hook_with_args, apply_lambda)
12170 (funcall_lambda, mark_backtrace): Likewise.
12171 * fns.c (concat): Likewise.
12172 * frame.c (x_set_frame_parameters): Likewise.
12173 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
12174 0 if not found, not -1. All callers changed.
12175
dd3f25f7
PE
12176 * alloc.c (garbage_collect): Don't assume stack size fits in int.
12177 (stack_copy_size): Now size_t, not int.
12178 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
12179
461c2ab9
JB
121802011-03-28 Juanma Barranquero <lekktu@gmail.com>
12181
12182 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
12183 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
12184 All callers changed.
12185
12186 * lisp.h (multibyte_char_to_unibyte):
12187 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
12188 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
12189 * character.h (CHAR_TO_BYTE8):
12190 * cmds.c (internal_self_insert):
12191 * editfns.c (general_insert_function):
12192 * keymap.c (push_key_description):
12193 * search.c (Freplace_match):
12194 * xdisp.c (message_dolog, set_message_1): All callers changed.
12195
f6d62986
SM
121962011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
12197
12198 * keyboard.c (safe_run_hook_funcall): New function.
12199 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
12200 don't set the hook to nil, but remove the offending function instead.
12201 (Qcommand_hook_internal): Remove, unused.
12202 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
12203 Vcommand_hook_internal.
12204
12205 * eval.c (enum run_hooks_condition): Remove.
12206 (funcall_nil, funcall_not): New functions.
12207 (run_hook_with_args): Call each function through a `funcall' argument.
12208 Remove `cond' argument, now redundant.
12209 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
12210 (Frun_hook_with_args_until_failure): Adjust accordingly.
12211 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
12212
1db5b1ad
JB
122132011-03-28 Juanma Barranquero <lekktu@gmail.com>
12214
12215 * dispextern.h (string_buffer_position): Remove declaration.
12216
12217 * print.c (strout): Remove parameter `multibyte', unused since
12218 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
12219
12220 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
12221 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
12222 All callers changed.
12223
12224 * w32.c (_wsa_errlist): Use braces for struct initializers.
12225
12226 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
12227 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
12228 All callers changed.
12229 (string_buffer_position): Likewise. Also, make static (it's never
12230 used outside xdisp.c).
12231 (cursor_row_p): Remove parameter `w', unused since
12232 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
12233 (decode_mode_spec): Remove parameter `precision', introduced during
12234 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
12235 All callers changed.
12236
5ffb62aa
JD
122372011-03-27 Jan Djärv <jan.h.d@swipnet.se>
12238
12239 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
12240
461c2ab9 122412011-03-27 Anders Lindgren <andlind@gmail.com>
f0a1382a
JD
12242
12243 * nsterm.m (ns_menu_bar_is_hidden): New variable.
12244 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
12245 (ns_update_auto_hide_menu_bar): New functions.
12246 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
12247 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
12248 ns_constrain_all_frames.
12249 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
12250 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
12251
5c380ffb
JD
122522011-03-27 Jan Djärv <jan.h.d@swipnet.se>
12253
12254 * nsmenu.m (runDialogAt): Remove argument to timer_check.
12255
9af30bdf
GM
122562011-03-27 Glenn Morris <rgm@gnu.org>
12257
12258 * syssignal.h: Replace RETSIGTYPE with void.
12259 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
12260 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
12261 Replace SIGTYPE with void everywhere.
12262 * s/usg5-4-common.h (SIGTYPE): Remove definition.
12263 * s/template.h (SIGTYPE): Remove commented out definition.
12264
e2abce01
JB
122652011-03-26 Eli Zaretskii <eliz@gnu.org>
12266
12267 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
12268 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
12269
f868cd8a
JB
122702011-03-26 Juanma Barranquero <lekktu@gmail.com>
12271
59eb0929
JB
12272 * w32.c (read_unc_volume): Use parameter `henum', instead of
12273 global variable `wget_enum_handle'.
12274
12275 * keymap.c (describe_vector): Remove parameters `indices' and
12276 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
12277 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
12278
f868cd8a
JB
12279 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
12280
12281 * keyboard.c (timer_check): Remove parameter `do_it_now',
12282 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
12283 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
12284 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
12285
12286 * keyboard.c (read_char):
12287 * w32menu.c (w32_menu_display_help):
12288 * xmenu.c (show_help_event, menu_help_callback):
12289 Adjust calls to `show_help_echo'.
12290
12291 * gtkutil.c (xg_maybe_add_timer):
12292 * keyboard.c (readable_events):
12293 * process.c (wait_reading_process_output):
12294 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
12295
12296 * insdel.c (adjust_markers_gap_motion):
12297 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
12298 (gap_left, gap_right): Don't call it.
12299
2ecf6fdb
CY
123002011-03-25 Chong Yidong <cyd@stupidchicken.com>
12301
12302 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
12303 incurred during fontification.
12304
6b1f9ba4
JB
123052011-03-25 Juanma Barranquero <lekktu@gmail.com>
12306
12307 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
12308 (DEFVAR_PER_BUFFER): Don't pass it.
12309
12310 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
12311 (scrolling_window): Don't pass it.
12312
0f4a96b5
JB
123132011-03-25 Juanma Barranquero <lekktu@gmail.com>
12314
12315 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
12316
12317 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
12318 and `suffix'.
12319 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
12320 of variables specific to SELinux and computation of `encoded_absname'.
12321
12322 * image.c (XPutPixel): Remove unused variable `height'.
12323
12324 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
12325
12326 * unexw32.c (get_section_info): Remove unused variable `section'.
12327
12328 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
12329 (system_process_attributes): Remove unused variable `sess'.
12330 (sys_read): Remove unused variable `err'.
12331
12332 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
12333 (w32_wnd_proc): Remove unused variable `isdead'.
12334 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
12335 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
12336 (x_create_tip_frame): Remove unused variable `tem'.
12337
12338 * w32inevt.c (w32_console_read_socket):
12339 Remove unused variable `no_events'.
12340
12341 * w32term.c (x_draw_composite_glyph_string_foreground):
12342 Remove unused variable `width'.
12343
1149507c
JB
123442011-03-24 Juanma Barranquero <lekktu@gmail.com>
12345
12346 * w32term.c (x_set_glyph_string_clipping):
12347 Don't pass uninitialized region to CombineRgn.
12348
9c88f339
JB
123492011-03-23 Juanma Barranquero <lekktu@gmail.com>
12350
12351 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
12352 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
12353 (Fx_close_connection): Remove unused variable `i'.
12354
12355 * w32font.c (w32font_draw): Return number of glyphs.
12356 (w32font_open_internal): Remove unused variable `i'.
12357 (w32font_driver): Add missing initializer.
12358
12359 * w32menu.c (utf8to16): Remove unused variable `utf16'.
12360 (fill_in_menu): Remove unused variable `items_added'.
12361
12362 * w32term.c (last_mouse_press_frame): Remove static global variable.
12363 (w32_clip_to_row): Remove unused variable `f'.
12364 (x_delete_terminal): Remove unused variable `i'.
12365
12366 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
12367 (NOTHING): Remove unused static global variable.
12368 (uniscribe_check_otf): Remove unused variable `table'.
12369 (uniscribe_font_driver): Add missing initializers.
12370
dee091a3
JD
123712011-03-23 Julien Danjou <julien@danjou.info>
12372
12373 * term.c (Fsuspend_tty, Fresume_tty):
12374 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
12375 * window.c (temp_output_buffer_show):
12376 * insdel.c (signal_before_change):
12377 * frame.c (Fhandle_switch_frame):
12378 * fileio.c (Fdo_auto_save):
12379 * emacs.c (Fkill_emacs):
12380 * editfns.c (save_excursion_restore):
12381 * cmds.c (internal_self_insert):
12382 * callint.c (Fcall_interactively):
12383 * buffer.c (Fkill_all_local_variables):
12384 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
12385 Use Frun_hooks.
0f4a96b5 12386 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
e9fce1ac 12387 unconditionally since it does the check itself.
dee091a3 12388
2c520ab5 123892011-03-23 Paul Eggert <eggert@cs.ucla.edu>
f0641eff 12390
c9c49752
PE
12391 Fix more problems found by GCC 4.5.2's static checks.
12392
8abc3f12
PE
12393 * coding.c (encode_coding_raw_text): Avoid unnecessary test
12394 the first time through the loop, since we know p0 < p1 then.
12395 This also avoids a gcc -Wstrict-overflow warning.
12396
a2d26660
PE
12397 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
12398 leading to a memory leak, possible in functions like
12399 load_charset_map_from_file that can allocate an unbounded number
b12ef411 12400 of objects (Bug#8318).
a2d26660 12401
916c72e9
PE
12402 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
12403 that could (at least in theory) be that large.
12404
19ab8a18
PE
12405 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
12406 This is less likely to overflow, and avoids undefined behavior if
12407 overflow does occur. All callers changed. Use strtoul to scan
12408 for the unsigned long integer.
b7cbbd6f
PE
12409 (pint2hrstr): Simplify and tune code slightly.
12410 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
19ab8a18 12411
f0641eff
PE
12412 * scroll.c (do_scrolling): Work around GCC bug 48228.
12413 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
12414
7f650bb9
PE
12415 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
12416 This also avoids a warning with gcc -Wstrict-overflow.
39f5e519
PE
12417 (validate_x_resource_name): Simplify count usage.
12418 This also avoids a warning with gcc -Wstrict-overflow.
7f650bb9 12419
37dd57d1
PE
12420 * fileio.c (Fcopy_file): Report error if fchown or fchmod
12421 fail (Bug#8306).
81e56e61 12422
699979fc 12423 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
dc1ca6a8 12424
401bf9b4
PE
12425 * process.c (Fmake_network_process): Use socklen_t, not int,
12426 where POSIX says socklen_t is required in portable programs.
12427 This fixes a porting bug on hosts like 64-bit HP-UX, where
591b2973 12428 socklen_t is wider than int (Bug#8277).
401bf9b4
PE
12429 (Fmake_network_process, server_accept_connection):
12430 (wait_reading_process_output, read_process_output):
12431 Likewise.
12432
b93aacde
PE
12433 * process.c: Rename or move locals to avoid shadowing.
12434 (list_processes_1, Fmake_network_process):
12435 (read_process_output_error_handler, exec_sentinel_error_handler):
12436 Rename or move locals.
4dc343ee 12437 (Fmake_network_process): Define label "retry_connect" only if needed.
0da49335 12438 (Fnetwork_interface_info): Fix pointer signedness.
f990b4e5 12439 (process_send_signal): Add cast to avoid pointer signedness problem.
7b808126 12440 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
c939f91b 12441 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
b93aacde 12442
af8a867c 12443 Make tparam.h and terminfo.c consistent.
44f230aa
SM
12444 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
12445 Include tparam.h instead, since it declares them.
af8a867c
PE
12446 * cm.h (PC): Remove extern decl; tparam.h now does this.
12447 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
12448 * terminfo.c: Include tparam.h, to check interfaces.
12449 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
12450 (tparam): Adjust signature to match interface in tparam.h;
12451 this removes some undefined behavior. Check that outstring and len
12452 are zero, which they always are with Emacs.
12453 * tparam.h (PC, BC, UP): New extern decls.
12454
0248044d 12455 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
001a7ab4 12456 (xftfont_open): Rename locals to avoid shadowing.
0248044d 12457
8ff096c1 12458 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
a00924bb
PE
12459 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
12460 (OTF_TAG_SYM): Omit macro if not needed.
e932860f 12461 (ftfont_list): Remove unused local.
49eaafba
PE
12462 (get_adstyle_property, ftfont_pattern_entity):
12463 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
12464 Rename locals to avoid shadowing.
8ff096c1 12465
e2be39f6
PE
12466 * xfont.c (xfont_list_family): Mark var as initialized.
12467
c9735e30
PE
12468 * xml.c (make_dom): Now static.
12469
8f5201ae
PE
12470 * composite.c (composition_compute_stop_pos): Rename local to
12471 avoid shadowing.
b246f932
PE
12472 (composition_reseat_it): Remove unused locals.
12473 (find_automatic_composition, composition_adjust_point): Likewise.
80e079b2 12474 (composition_update_it): Mark var as initialized.
11b61122
PE
12475 (find_automatic_composition): Mark vars as initialized,
12476 with a FIXME (Bug#8290).
8f5201ae 12477
760fbc2c
PE
12478 character.h: Rename locals to avoid shadowing.
12479 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
12480 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
12481 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
12482 (BUF_DEC_POS): Be more systematic about renaming local temporaries
12483 to avoid shadowing.
12484
ff08eb85
PE
12485 * textprop.c (property_change_between_p): Remove; unused.
12486
fc7bf025
PE
12487 * intervals.c (interval_start_pos): Now static.
12488
235d7abc
PE
12489 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
12490
44f230aa
SM
12491 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
12492 Rename locals to avoid shadowing.
3e7d6594 12493
50060332
PE
12494 * sound.c (wav_play, au_play, Fplay_sound_internal):
12495 Fix pointer signedness.
d01f234b 12496 (alsa_choose_format): Remove unused local var.
c83b8872
PE
12497 (wav_play): Initialize a variable to 0, to prevent undefined
12498 behavior (Bug#8278).
50060332 12499
c4fc4e30
PE
12500 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
12501
918436ed
PE
12502 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
12503
c939f91b
PE
12504 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
12505 clobbering (Bug#8298).
b9c7f648
PE
12506 * sysdep.c (sys_subshell): Likewise.
12507 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
7e9123a2 12508
6bd8c144
PE
12509 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
12510 This should get cleaned up, so that child_setup has the
12511 same signature on all platforms.
12512
7710357c 12513 * callproc.c (call_process_cleanup): Now static.
cb1d0ef7 12514 (relocate_fd): Rename locals to avoid shadowing.
7710357c 12515
c59da222
CY
125162011-03-22 Chong Yidong <cyd@stupidchicken.com>
12517
12518 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
12519 not to be necessary, and produces flickering.
12520
66b87493
GM
125212011-03-20 Glenn Morris <rgm@gnu.org>
12522
12523 * config.in: Remove file.
12524
45b6f6d5
JB
125252011-03-20 Juanma Barranquero <lekktu@gmail.com>
12526
12527 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
12528 are now in src/globals.h.
12529 (syms_of_minibuf): Remove spurious & from previous change.
12530
cd394be1 125312011-03-20 Leo Liu <sdl.web@gmail.com>
3ec03f7e
LL
12532
12533 * minibuf.c (completing-read-function): New variable.
12534 (completing-read-default): Rename from completing-read.
12535 (completing-read): Call completing-read-function.
12536
b14e3e21
CY
125372011-03-19 Juanma Barranquero <lekktu@gmail.com>
12538
12539 * xfaces.c (Fx_load_color_file):
12540 Read color file from absolute filename (bug#8250).
12541
f2b726e6
JB
125422011-03-19 Juanma Barranquero <lekktu@gmail.com>
12543
12544 * makefile.w32-in: Update dependencies.
12545
09f6ff02
EZ
125462011-03-17 Eli Zaretskii <eliz@gnu.org>
12547
12548 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
12549
29a6015a
PE
125502011-03-17 Paul Eggert <eggert@cs.ucla.edu>
12551
a3a6c54e
PE
12552 Fix more problems found by GCC 4.5.2's static checks.
12553
b766f867
PE
12554 * process.c (make_serial_process_unwind, send_process_trap):
12555 (sigchld_handler): Now static.
12556
be02381c
PE
12557 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
12558 That way, the code declares only the vars that it needs.
12559 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
12560 * s/cygwin.h (PTY_ITERATION): Likewise.
12561 * s/darwin.h (PTY_ITERATION): Likewise.
12562 * s/gnu-linux.h (PTY_ITERATION): Likewise.
12563
57048744
PE
12564 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
12565 * process.c (allocate_pty): Don't declare stb unless it's needed.
12566
7914961c 12567 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
615f2d59
PE
12568 (CONSTANTLIM): Remove; unused.
12569 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
12570 Define only if needed.
7914961c 12571
b3967b18
PE
12572 * unexelf.c (unexec): Name an expression,
12573 to avoid gcc -Wbad-function-cast warning.
9ae71512
PE
12574 Use a different way to cause a compilation error if anyone uses
12575 n rather than nn, a way that does not involve shadowing.
73366a00 12576 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
b3967b18 12577
29a6015a
PE
12578 * deps.mk (unexalpha.o): Remove; unused.
12579
43cfc33e 12580 New file unexec.h, the (simple) interface for unexec (Bug#8267).
7feda0d2 12581 * unexec.h: New file.
ce701a33
PE
12582 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
12583 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
12584 Depend on unexec.h.
12585 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
12586 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
12587 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
381259ef 12588 Change as necessary to match prototype in unexec.h.
ce701a33 12589
01f44d5a
PE
12590 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
12591 shadowing.
4f63c6bb 12592 (back_comment, skip_chars): Mark vars as initialized.
01f44d5a 12593
a6670b0b
PE
12594 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
12595 Rename locals to avoid shadowing.
12596
cef2010d 12597 * lread.c (read1): Rewrite so as not to use empty "else".
0902fe45 12598 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
cef2010d 12599
d4d7173a
PE
12600 * print.c (Fredirect_debugging_output): Fix pointer signedess.
12601
f08b802a
PE
12602 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
12603 warning when compiling print.c.
12604
3ddb0639
PE
12605 * font.c (font_unparse_fcname): Abort in an "impossible" situation
12606 instead of using an uninitialized var.
5ad03b97 12607 (font_sort_entities): Mark var as initialized.
3ddb0639 12608
170a2692
PE
12609 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
12610
e663c700
PE
12611 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
12612 pointers to constants.
89bc529a 12613 (font_parse_fcname): Remove unused vars.
7b81e2d0 12614 (font_delete_unmatched): Now static.
ea838e10 12615 (font_get_spec): Remove; unused.
13a547c6
PE
12616 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
12617 (font_update_drivers, Ffont_get_glyphs, font_add_log):
12618 Rename or move locals to avoid shadowing.
e663c700 12619
2a80c887 12620 * fns.c (require_nesting_list, require_unwind): Now static.
612f56df 12621 (Ffillarray): Rename locals to avoid shadowing.
2a80c887 12622
1384fa33 12623 * floatfns.c (domain_error2): Define only if needed.
a885e2ed 12624 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1384fa33 12625
8b2c52e9
PE
12626 * alloc.c (mark_backtrace): Move decl from here ...
12627 * lisp.h: ... to here, so that it can be checked.
12628
475545b5 12629 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
d28a2170 12630 (Fdefvar): Rewrite so as not to use empty "else".
cfcbfb1a
PE
12631 (lisp_indirect_variable): Name an expression,
12632 to avoid gcc -Wbad-function-cast warning.
1faed8ae 12633 (Fdefvar): Rename locals to avoid shadowing.
475545b5 12634
b1349114 12635 * callint.c (quotify_arg, quotify_args): Now static.
a3e8cbda 12636 (Fcall_interactively): Rename locals to avoid shadowing.
b0e80955 12637 Use const pointer when appropriate.
b1349114 12638
a2928364
PE
12639 * lisp.h (get_system_name, get_operating_system_release):
12640 Move decls here, to check interfaces.
12641 * process.c (get_operating_system_release): Move decl to lisp.h.
12642 * xrdb.c (get_system_name): Likewise.
63c5d10b
PE
12643 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
12644 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
12645 some of which prompt warnings from gcc -Wbad-function-cast.
545b49b4
PE
12646 (Fformat_time_string, Fencode_time, Finsert_char):
12647 (Ftranslate_region_internal, Fformat):
12648 Rename or remove local vars to avoid shadowing.
9710023e 12649 (Ftranslate_region_internal): Mark var as initialized.
63c5d10b 12650
a415e694
PE
12651 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
12652 avoid shadowing.
12653
8ef4622d
PE
12654 * lisp.h (eassert): Check that the argument compiles, even if
12655 ENABLE_CHECKING is not defined.
12656
946f9a5b
PE
12657 * data.c (Findirect_variable): Name an expression, to avoid
12658 gcc -Wbad-function-cast warning.
112396d6 12659 (default_value, arithcompare, arith_driver, arith_error): Now static.
b9b84fa9 12660 (store_symval_forwarding): Rename local to avoid shadowing.
44f230aa
SM
12661 (Fmake_variable_buffer_local, Fmake_local_variable):
12662 Mark variables as initialized.
52746918 12663 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
946f9a5b 12664
e5aab7e7 12665 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
ae35e756
PE
12666 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
12667 Rename locals to avoid shadowing.
dff45157
PE
12668 (mark_stack): Move local variables into the #ifdef region where
12669 they're used.
7bc26fdb
PE
12670 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
12671 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
12672 needed otherwise.
12673 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
12674 (GC_STRING_CHARS): Remove; not used.
d40d4be1 12675 (Fmemory_limit): Cast sbrk's returned value to char *.
ae35e756 12676
e5aab7e7
PE
12677 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
12678 avoids undefined behavior in theory.
12679
4da60324
PE
12680 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
12681
88043301
PE
12682 Use functions, not macros, for up- and down-casing (Bug#8254).
12683 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
12684 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
12685 to use the following functions instead of these macros.
12686 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
12687 EMACS_INT, since callers assume the returned value fits in int.
12688 (upcase1): Likewise, for UPCASE_TABLE.
12689 (uppercasep, lowercasep, upcase): New static inline functions.
0da09c43 12690 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
db69b0cd 12691 the race-condition problem in the old DOWNCASE.
88043301 12692
19ed5445
PE
12693 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
12694 Rename locals to avoid shadowing.
12695 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
abbd1bcf
PE
12696 (regex_compile, re_search_2, re_match_2_internal):
12697 Remove unused local vars.
952db0d7
PE
12698 (FREE_VAR): Rewrite so as not to use empty "else",
12699 which gcc can warn about.
da053e48 12700 (regex_compile, re_match_2_internal): Mark locals as initialized.
b313f9d8
PE
12701 (RETALLOC_IF): Define only if needed.
12702 (WORDCHAR_P): Likewise. This one is never needed, but is used
12703 only in a comment talking about a compiler bug, so put inside
12704 the #if 0 of that comment.
12705 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
12706 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
12707 Remove; unused.
19ed5445 12708
1f3561e4 12709 * search.c (boyer_moore): Rename locals to avoid shadowing.
76ef09b7
PE
12710 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
12711 (PREV_CHAR_BOUNDARY): Likewise.
1f3561e4 12712
ded6f8f7
PE
12713 * search.c (simple_search): Remove unused var.
12714
dbd37a95
PE
12715 * dired.c (compile_pattern): Move decl from here ...
12716 * lisp.h: ... to here, so that it can be checked.
12717 (struct re_registers): New forward decl.
12718
7e47afad
PE
12719 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
12720
85f24f61
PE
12721 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
12722 All uses changed.
12723 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
12724 Rename locals to avoid shadowing.
5671df8f 12725 (Fvertical_motion): Mark locals as initialized.
85f24f61 12726
181aa2be 12727 * casefiddle.c (casify_object, casify_region): Now static.
e45a141a 12728 (casify_region): Mark local as initialized.
181aa2be 12729
930d429c
PE
12730 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
12731
7082eac6
PE
12732 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
12733 New macros, so that the caller can use some names other than
12734 gcpro1, gcpro2, etc.
12735 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
12736 of the new macros.
12737 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
12738 argument, for consistency with GCPRO2_VAR, etc: it is now the
12739 prefix of the variable, not the variable itself. All uses
12740 changed.
38b2c076
PE
12741 * dired.c (directory_files_internal, file_name_completion):
12742 Rename locals to avoid shadowing.
12743
15206ed9
PE
12744 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
12745 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
12746 dired.c's scmp function, had undefined behavior.
12747 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
12748 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
12749 * buffer.h: ... to here, because these macros use current_buffer,
12750 and the new implementation with inline functions needs to have
12751 current_buffer in scope now, rather than later when the macros
12752 are used.
12753 (downcase, upcase1): New static inline functions.
12754 (DOWNCASE, UPCASE1): Reimplement using these functions.
12755 This avoids undefined behavior in expressions like
12756 DOWNCASE (x) == DOWNCASE (y), which previously suffered
12757 from race conditions in accessing the global variables
12758 case_temp1 and case_temp2.
12759 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
12760 * lisp.h (case_temp1, case_temp2): Remove their decls.
12761 * character.h (ASCII_CHAR_P): Move from here ...
12762 * lisp.h: ... to here, so that the inline functions mentioned
12763 above can use them.
12764
4a6bea26
PE
12765 * dired.c (directory_files_internal_unwind): Now static.
12766
f14b7e14
PE
12767 * fileio.c (file_name_as_directory, directory_file_name):
12768 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
12769 Now static.
2893f146
PE
12770 (file_name_as_directory): Use const pointers when appropriate.
12771 (Fexpand_file_name): Likewise. In particular, newdir might
12772 point at constant storage, so make it a const pointer.
fd4ead52 12773 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
b14aac08
PE
12774 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
12775 signedness issues.
f839df0c
PE
12776 (Fset_file_times, Finsert_file_contents, auto_save_error):
12777 Rename locals to avoid shadowing.
f14b7e14 12778
5716756e 12779 * minibuf.c (choose_minibuf_frame_1): Now static.
62137a95
PE
12780 (Ftry_completion, Fall_completions): Rename or remove locals
12781 to avoid shadowing.
5716756e 12782
b4c3046a
PE
12783 * marker.c (bytepos_to_charpos): Remove; unused.
12784
b45db522
PE
12785 * lisp.h (verify_bytepos, count_markers): New decls,
12786 so that gcc does not warn that these functions aren't declared.
12787
85876d07
PE
12788 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
12789 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
f0cb4a60 12790 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
40ef059e 12791 (copy_text): Remove unused local var.
85876d07 12792
03d78a21 12793 * filelock.c (within_one_second): Now static.
b3dd38ab 12794 (lock_file_1): Rename local to avoid shadowing.
03d78a21 12795
5df8f01b
PE
12796 * buffer.c (fix_overlays_before): Mark locals as initialized.
12797 (fix_start_end_in_overlays): Likewise. This function should be
12798 simplified by using pointers-to-pointers, but that's a different
12799 matter.
b1d876f1 12800 (switch_to_buffer_1): Now static.
8f54f30a
PE
12801 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
12802 (report_overlay_modification): Rename locals to avoid shadowing.
c3bd59b5 12803
a70072c9 12804 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
fbd02d7b 12805 Fix pointer signedness issue.
edced198
PE
12806 (sys_subshell): Mark local as volatile if checking for lint,
12807 to suppress a gcc -Wclobbered warning that does not seem to be right.
15dfd3d9 12808 (MAXPATHLEN): Define only if needed.
a70072c9 12809
a0977c44
PE
12810 * process.c (serial_open, serial_configure): Move decls from here ...
12811 * systty.h: ... to here, so that they can be checked.
12812
a884fdcc
PE
12813 * fns.c (get_random, seed_random): Move extern decls from here ...
12814 * lisp.h: ... to here, so that they can be checked.
12815
604efe86 12816 * sysdep.c (reset_io): Now static.
b8950c94 12817 (wait_for_termination_signal): Remove; unused.
604efe86 12818
38fc62d9
PE
12819 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
12820 (copy_keymap_item, append_key, push_text_char_description):
12821 Now static.
1004a21a 12822 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
dbbb8427 12823 (DENSE_TABLE_SIZE): Remove; unused.
c1141155
PE
12824 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
12825 (describe_map_tree):
12826 Rename locals to avoid shadowing.
38fc62d9 12827
2f2650da
PE
12828 * keyboard.c: Declare functions static if they are not used elsewhere.
12829 (echo_char, echo_dash, cmd_error, top_level_2):
12830 (poll_for_input, handle_async_input): Now static.
69a058fa
PE
12831 (read_char, kbd_buffer_get_event, make_lispy_position):
12832 (make_lispy_event, make_lispy_movement, apply_modifiers):
12833 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
12834 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
12835 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
c8a06054 12836 (read_key_sequence, read_char): Mark locals as initialized.
3ac94672 12837 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
2f2650da 12838
a053e86c 12839 * keyboard.h (make_ctrl_char): New decl.
da2f2dd9
PE
12840 (mark_kboards): Move decl here ...
12841 * alloc.c (mark_kboards): ... from here.
a053e86c 12842
4752793e
PE
12843 * lisp.h (force_auto_save_soon): New decl.
12844
74f10ca7 12845 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
244fc23d
PE
12846 (DEFINE_DUMMY_FUNCTION): New macro.
12847 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
12848 Use it.
c03cd23f
PE
12849 (main): Add casts to avoid warnings
12850 if GCC considers string literals to be constants.
74f10ca7 12851
022e70d4
PE
12852 * lisp.h (fatal_error_signal): Add decl, since it's exported.
12853
59d6fe83
PE
12854 * dbusbind.c: Pointer signedness fixes.
12855 (xd_signature, xd_append_arg, xd_initialize):
12856 (Fdbus_call_method, Fdbus_call_method_asynchronously):
12857 (Fdbus_method_return_internal, Fdbus_method_error_internal):
12858 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
12859 (Fdbus_register_signal): Use SSDATA when the context wants char *.
12860
78320123
PE
12861 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
12862 if GCC considers string literals to be constants.
49cebcca 12863 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
78320123 12864
35ac2a97
SM
128652011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
12866
fb103ca9
SM
12867 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
12868 (print_preprocess, print_object): New macro to fix last change.
12869
35ac2a97
SM
12870 * print.c (print_preprocess): Don't forget font objects.
12871
62973b41
JB
128722011-03-16 Juanma Barranquero <lekktu@gmail.com>
12873
12874 * emacs.c (USAGE3): Doc fixes.
12875
0e48bb22
AS
128762011-03-15 Andreas Schwab <schwab@linux-m68k.org>
12877
12878 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
12879 structure.
12880
7684e57b
JB
128812011-03-14 Juanma Barranquero <lekktu@gmail.com>
12882
12883 * lisp.h (VWindow_system, Qfile_name_history):
12884 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
12885 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
12886 (w32_system_caret_x, w32_system_caret_y): Declare extern.
12887
12888 * w32select.c: Don't #include "keyboard.h".
c96bbc66 12889 (run_protected): Add extern declaration for waiting_for_input.
7684e57b
JB
12890
12891 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
12892 * w32console.c (detect_input_pending, read_input_pending)
12893 (encode_terminal_code):
12894 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
12895 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
12896 (w32_system_caret_y, Qfile_name_history):
12897 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
12898 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
12899 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
12900 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
12901 * w32proc.c (Qlocal, report_file_error):
12902 * w32term.c (Vwindow_system, updating_frame):
12903 * w32uniscribe.c (initialized, uniscribe_font_driver):
12904 Remove unneeded extern declarations.
12905
2aa46d6c
CY
129062011-03-14 Chong Yidong <cyd@stupidchicken.com>
12907
c96bbc66 12908 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
2aa46d6c 12909
cffc6f3b
CY
129102011-03-13 Chong Yidong <cyd@stupidchicken.com>
12911
12912 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
12913 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
12914 These macros can no longer be used for assignment.
12915
44f230aa
SM
12916 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
12917 Assign struct members directly, instead of using BUF_BEGV etc.
cffc6f3b
CY
12918 (record_buffer_markers, fetch_buffer_markers): New functions for
12919 recording and fetching special buffer markers.
12920 (set_buffer_internal_1, set_buffer_temp): Use them.
12921
12922 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
12923
12924 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
12925
12926 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
12927 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
12928
12929 * xdisp.c (hscroll_window_tree):
12930 (reconsider_clip_changes): Use PT instead of BUF_PT.
12931
d251f04b
EZ
129322011-03-13 Eli Zaretskii <eliz@gnu.org>
12933
12934 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
12935 $(EMACS_ROOT)/lib/intprops.h.
12936
f0c77cd1
PE
129372011-03-13 Paul Eggert <eggert@cs.ucla.edu>
12938
3eca4629
PE
12939 Fix more problems found by GCC 4.5.2's static checks.
12940
7c86ee98
PE
12941 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
12942 to unsigned char * to avoid compiler diagnostic.
b0afc268
PE
12943 (xg_free_frame_widgets): Make it clear that a local variable is
12944 needed only if USE_GTK_TOOLTIP.
01e0b5ad
PE
12945 (gdk_window_get_screen): Make it clear that this macro is needed
12946 only if USE_GTK_TOOLTIP.
1e5524e7
PE
12947 (int_gtk_range_get_value): New function, which avoids a diagnostic
12948 from gcc -Wbad-function-cast.
12949 (xg_set_toolkit_scroll_bar_thumb): Use it.
12950 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
12951 diagnostic from gcc -Wbad-function-cast.
65dc836c
PE
12952 (get_utf8_string, xg_get_file_with_chooser):
12953 Rename locals to avoid shadowing.
12954 (create_dialog): Move locals to avoid shadowing.
7c86ee98 12955
41729b81
PE
12956 * xgselect.c (xg_select): Remove unused var.
12957
f0c77cd1
PE
12958 * image.c (four_corners_best): Mark locals as initialized.
12959 (gif_load): Initialize transparent_p to zero (Bug#8238).
12960 Mark another local as initialized.
ec6cf4c6 12961 (my_png_error, my_error_exit): Mark with NO_RETURN.
f0c77cd1 12962
ce0ad53d 12963 * image.c (clear_image_cache): Now static.
d5d5a617 12964 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
e22cffbc 12965 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
77a765fd
PE
12966 (x_edge_detection): Remove unnecessary cast that
12967 gcc -Wbad-function-cast diagnoses.
2037898d 12968 (gif_load): Fix pointer signedness.
6ae141d6
PE
12969 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
12970 (jpeg_load, gif_load): Rename locals to avoid shadowing.
ce0ad53d 12971
33383987 129722011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3eca4629 12973
d32df629
PE
12974 Improve quality of tests for time stamp overflow.
12975 For example, without this patch (encode-time 0 0 0 1 1
12976 1152921504606846976) returns the obviously-bogus value (-948597
12977 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
12978 reports time overflow. See
12979 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
b8d9bd41
PE
12980 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
12981 * editfns.c: Include limits.h and intprops.h.
12982 (TIME_T_MIN, TIME_T_MAX): New macros.
12983 (time_overflow): Move earlier, to before first use.
12984 (hi_time, lo_time): New functions, for an accurate test for
12985 out-of-range times.
12986 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
12987 (Fget_internal_run_time): Don't assume time_t fits in int.
12988 (make_time): Use list2 instead of Fcons twice.
12989 (Fdecode_time): More accurate test for out-of-range times.
12990 (check_tm_member): New function.
12991 (Fencode_time): Use it, to test for out-of-range times.
d32df629
PE
12992 (lisp_time_argument): Don't rely on undefined left-shift and
12993 right-shift behavior when checking for time stamp overflow.
8be6f318 12994
fe31d94c
PE
12995 * editfns.c (time_overflow): New function, refactoring common code.
12996 (Fformat_time_string, Fdecode_time, Fencode_time):
12997 (Fcurrent_time_string): Use it.
12998
8be6f318
PE
12999 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
13000 * dired.c (make_time): Move to ...
13001 * editfns.c (make_time): ... here.
13002 * systime.h: Note the move.
13003
09d9db2c 130042011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
c47cbdfd 13005
126bc0dc
YM
13006 * fringe.c (update_window_fringes): Remove unused variables.
13007
c47cbdfd
YM
13008 * unexmacosx.c (copy_data_segment): Also copy __got section.
13009 (Bug#8223)
13010
7ac80be9
EZ
130112011-03-12 Eli Zaretskii <eliz@gnu.org>
13012
c96bbc66 13013 * termcap.c [MSDOS]: Include "msdos.h".
058e5dad
EZ
13014 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
13015 Constify `char *' arguments and their references according to
13016 prototypes in tparam.h.
13017
ecb0f94d 13018 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
058e5dad 13019
7ac80be9
EZ
13020 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
13021 Adapt all references accordingly.
13022
13023 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
13024
ef1fd07e
TT
130252011-03-11 Tom Tromey <tromey@redhat.com>
13026
13027 * buffer.c (syms_of_buffer): Remove obsolete comment.
13028
7ef4b50c
EZ
130292011-03-11 Eli Zaretskii <eliz@gnu.org>
13030
13031 * termhooks.h (encode_terminal_code): Declare prototype.
13032
13033 * msdos.c (encode_terminal_code): Don't declare prototype.
13034
13035 * term.c (encode_terminal_code): Now external again, used by
13036 w32console.c and msdos.c.
13037
44f230aa
SM
13038 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
13039 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
7ef4b50c 13040
4b1ec863 130412011-03-11 Paul Eggert <eggert@cs.ucla.edu>
f78faa98 13042
1714f52b 13043 Fix some minor problems found by GCC 4.5.2's static checks.
83316bf4 13044
4b1ec863
PE
13045 * fringe.c (update_window_fringes): Mark locals as initialized
13046 (Bug#8227).
13047 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
bf60f616 13048
524c7aa6
PE
13049 * alloc.c (mark_fringe_data): Move decl from here ...
13050 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
13051 to check its interface.
13052 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
13053
a5c0af81 13054 * fontset.c (free_realized_fontset): Now static.
7519b8cd 13055 (Fset_fontset_font): Rename local to avoid shadowing.
cc6e5db1 13056 (fontset_font): Mark local as initialized.
a9a06e0b 13057 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
a5c0af81 13058
b4716021
PE
13059 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
13060
811e9bac 13061 * xselect.c (x_disown_buffer_selections): Remove; not used.
7b83e2f1 13062 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
aa0daa9f
PE
13063 (x_own_selection, Fx_disown_selection_internal): Rename locals
13064 to avoid shadowing.
13065 (x_handle_dnd_message): Remove local to avoid shadowing.
811e9bac 13066
7e3ab302
PE
13067 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
13068 so that the caller can use some name other than gcpro1.
13069 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
58d2d479
PE
13070 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
13071 (Fx_backspace_delete_keys_p):
13072 Use them to avoid shadowing, and rename vars to avoid shadowing.
13073 (x_decode_color, x_set_name, x_window): Now static.
6b437900 13074 (Fx_create_frame): Add braces to silence GCC warning.
c0951e53 13075 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
06b0c8a0
PE
13076 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
13077 Remove unused locals.
7e3ab302
PE
13078 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
13079 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
13080 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
13081 macros.
f78faa98 13082
e2b13473
PE
13083 * xterm.h (x_mouse_leave): New decl.
13084
77f23912
PE
13085 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
13086 Remove unused functions.
cdf4ba58
PE
13087 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
13088 (x_calc_absolute_position): Now static.
7411c686 13089 (XTread_socket): Don't define label "out" unless it's used.
2b07bcff 13090 Don't declare local "event" unless it's used.
ed7bf3a5
PE
13091 (x_iconify_frame, x_free_frame_resources): Don't declare locals
13092 unless they are used.
38d0b34a
PE
13093 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
13094 (x_fatal_error_signal): Remove; not used.
a6067996
PE
13095 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
13096 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
13097 (x_error_catcher, x_connection_closed, x_error_handler):
13098 (x_error_quitter, xembed_send_message, x_iconify_frame):
13099 (my_log_handler): Rename locals to avoid shadowing.
28f1c698 13100 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2a8fade0 13101 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
77f23912 13102
44f230aa
SM
13103 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
13104 Rename or move locals to avoid shadowing.
6b463e58 13105 (tty_defined_color, merge_face_heights): Now static.
5967d051 13106 (free_realized_faces_for_fontset): Remove; not used.
1e9966ea
PE
13107 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
13108 does not deduce is never used uninitialized.
73719eba
PE
13109 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
13110 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
071048a3 13111
426994c3 13112 * terminal.c (store_terminal_param): Now static.
5489860b 13113
032f1620 13114 * xmenu.c (menu_highlight_callback): Now static.
9d66f88e 13115 (set_frame_menubar): Remove unused local.
d4323972 13116 (xmenu_show): Rename parameter to avoid shadowing.
6d1f7fee
PE
13117 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
13118 since they might point to immutable storage.
281585b0
PE
13119 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
13120 since it's unused otherwise.
032f1620 13121
367c19e5 13122 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
53df7c11 13123 Add a FIXME, since the code still doesn't look right. (Bug#8215)
9f36b9fd
PE
13124 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
13125 avoids a gcc -Wuninitialized diagnostic.
0e086e8f 13126 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
44a3a108
PE
13127 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
13128 does not deduce are never used uninitialized.
70739cbe 13129
07b48fa9
PE
13130 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
13131
8868a238 13132 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
4554d213
PE
13133 * window.c (window_loop, size_window):
13134 (run_window_configuration_change_hook, enlarge_window): Likewise.
8868a238 13135
7e5cf297 13136 * window.c (display_buffer): Now static.
d6550a9f
PE
13137 (size_window): Mark variables that gcc -Wuninitialized
13138 does not deduce are never used uninitialized.
a586633d
PE
13139 * window.h (check_all_windows): New decl, to forestall
13140 gcc -Wmissing-prototypes diagnostic.
5b555da1 13141 * dispextern.h (bidi_dump_cached_states): Likewise.
7e5cf297 13142
f6095868
PE
13143 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
13144 shadowing.
13145 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
726929c4
PE
13146 Include <limits.h>.
13147 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
13148 and to avoid gcc -Wuninitialized warning.
89ef49df
PE
13149 (load_charset_map): Mark variables that gcc -Wuninitialized
13150 does not deduce are never used uninitialized.
53df7c11 13151 (load_charset): Abort instead of using uninitialized var (Bug#8229).
f6095868 13152
f38b440c
PE
13153 * coding.c (coding_set_source, coding_set_destination):
13154 Use "else { /* comment */ }" rather than "else /* comment */;"
13155 for clarity, and to avoid gcc -Wempty-body warning.
2735d060
PE
13156 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
13157 a block, when the outer 'i' will do.
13158 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
13159 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
13160 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
13161 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
13162 (Fdecode_sjis_char, Fdefine_coding_system_internal):
13163 Rename locals to avoid shadowing.
13164 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
e2f1bab9
PE
13165 * coding.c (emacs_mule_char, encode_invocation_designation):
13166 Now static, since they're not used elsewhere.
413bb2db 13167 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
c4a63b12 13168 (decode_coding_object, encode_coding_object, detect_coding_system):
ee05f961
PE
13169 (decode_coding_emacs_mule): Mark variables that gcc
13170 -Wuninitialized does not deduce are never used uninitialized.
160b01f6
PE
13171 (detect_coding_iso_2022): Initialize a local variable that might
13172 be used uninitialized. Leave a FIXME because it's not clear that
53df7c11 13173 this initialization is needed. (Bug#8211)
5f58e762
PE
13174 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
13175 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
13176 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
13177 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
13178 Remove unused macros.
f38b440c 13179
232b38b9 13180 * category.c (hash_get_category_set): Remove unused local var.
9f3b5e69 13181 (copy_category_table): Now static, since it's not used elsewhere.
d0891610 13182 * character.c (string_count_byte8): Likewise.
232b38b9 13183
fb90da1b
PE
13184 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
13185 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
13186
fb93dbc2
PE
13187 * chartab.c (copy_sub_char_table): Now static, since it's not used
13188 elsewhere.
5c156ace
PE
13189 (sub_char_table_ref_and_range, char_table_ref_and_range):
13190 Rename locals to avoid shadowing.
bbcd0949 13191 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
fb93dbc2 13192
7d3b3862 13193 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
630d6892 13194 (BIDI_BOB): Remove unused macro.
7d3b3862 13195
6be7d3da
PE
13196 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
13197 deduce are never used uninitialized.
c2ed9c8b 13198 * term.c (encode_terminal_code): Likewise.
6be7d3da 13199
75f8807f 13200 * term.c (encode_terminal_code): Now static. Remove unused local.
72abad34 13201
50938595
PE
13202 * tparam.h: New file.
13203 * term.c, tparam.h: Include it.
13204 * deps.mk (term.o, tparam.o): Depend on tparam.h.
13205 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
13206 Move these decls to tparam.h, and make them agree with what
13207 is actually in tparam.c. The previous trick of using incompatible
13208 decls in different modules does not conform to the C standard.
13209 All callers of tparam changed to use tparam's actual API.
13210 * tparam.c (tparam1, tparam, tgoto):
13211 Use const pointers where appropriate.
13212
fbceeba2
PE
13213 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
13214 * cm.h (struct cm): Likewise.
13215 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
13216 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
13217 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
13218 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
13219 (turn_on_face, init_tty): Likewise.
13220 * termchar.h (struct tty_display_info): Likewise.
fbceeba2 13221
7f3f1250
PE
13222 * term.c (term_mouse_position): Rename local to avoid shadowing.
13223
e6ca6543
PE
13224 * alloc.c (mark_ttys): Move decl from here ...
13225 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
13226
c40f8d15
AS
132272011-03-11 Andreas Schwab <schwab@linux-m68k.org>
13228
13229 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
13230
cfe0661d
JB
132312011-03-09 Juanma Barranquero <lekktu@gmail.com>
13232
13233 * search.c (compile_pattern_1): Remove argument regp, unused since
13234 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
13235 (compile_pattern): Don't pass it.
13236
0afb4571
J
132372011-03-08 Jan Djärv <jan.h.d@swipnet.se>
13238
13239 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
13240 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
13241 for ! HAVE_GTK3.
13242 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
13243
13244 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
13245
13246 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
13247 gdk_window_get_screen, gdk_window_get_geometry,
13248 gdk_x11_window_lookup_for_display and GDK_KEY_g.
13249 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
13250 (xg_get_pixbuf_from_pixmap): New function.
13251 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
13252 to Pixmap, take frame as parameter, remove GdkColormap parameter.
13253 Call xg_get_pixbuf_from_pixmap instead of
13254 gdk_pixbuf_get_from_drawable.
13255 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
13256 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
13257 (xg_check_special_colors): Use GtkStyleContext and its functions
13258 for HAVE_GTK3.
13259 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
13260 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
13261 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
44f230aa
SM
13262 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
13263 Call gtk_widget_get_preferred_size.
0afb4571
J
13264 (xg_frame_resized): gdk_window_get_geometry only takes 5
13265 parameters.
44f230aa
SM
13266 (xg_win_to_widget, xg_event_is_for_menubar):
13267 Call gdk_x11_window_lookup_for_display.
0afb4571
J
13268 (xg_set_widget_bg): New function.
13269 (delete_cb): New function.
895009e1 13270 (xg_create_frame_widgets): Connect delete-event to delete_cb.
5c32d3f2 13271 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
0afb4571
J
13272 (xg_set_background_color): Call xg_set_widget_bg.
13273 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
13274 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
13275 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
13276 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
13277 if ! HAVE_GTK3.
13278 (update_frame_tool_bar): Call gtk_widget_hide.
13279 (xg_initialize): Use GDK_KEY_g.
13280
13281 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
13282 if ! HAVE_GTK3
13283 (x_session_initialize): Call gdk_x11_set_sm_client_id.
13284
13285 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
13286 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
13287 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
13288
1c2cc4ef
JB
132892011-03-08 Juanma Barranquero <lekktu@gmail.com>
13290
13291 * w32xfns.c (select_palette): Check success of RealizePalette against
13292 GDI_ERROR, not zero.
13293
33383987 13294See ChangeLog.11 for earlier changes.
aac0c6e3
MR
13295
13296;; Local Variables:
13297;; coding: utf-8
aac0c6e3
MR
13298;; End:
13299
2f097256 13300 Copyright (C) 2011-2012 Free Software Foundation, Inc.
aac0c6e3
MR
13301
13302 This file is part of GNU Emacs.
13303
13304 GNU Emacs is free software: you can redistribute it and/or modify
13305 it under the terms of the GNU General Public License as published by
13306 the Free Software Foundation, either version 3 of the License, or
13307 (at your option) any later version.
13308
13309 GNU Emacs is distributed in the hope that it will be useful,
13310 but WITHOUT ANY WARRANTY; without even the implied warranty of
13311 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13312 GNU General Public License for more details.
13313
13314 You should have received a copy of the GNU General Public License
13315 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.