* lisp.h: Remove empty conditional.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
b676b881
AS
12012-07-07 Andreas Schwab <schwab@linux-m68k.org>
2
3 * lisp.h: Remove empty conditional.
4
6045c4fd
PE
52012-07-07 Paul Eggert <eggert@cs.ucla.edu>
6
b3350bf9
PE
7 * lread.c (load_path_check): Now static.
8
6045c4fd
PE
9 Fix some minor --with-ns problems found by static checking.
10 * frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]:
11 (x_set_font) [!HAVE_X_WINDOWS]:
12 * image.c (xpm_load_image) [HAVE_NS]:
13 (x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]:
14 (x_disable_image) [!HAVE_NS && !HAVE_NTGUI]:
15 Remove unused local.
16 (Fx_parse_geometry) [HAVE_NS]: Don't return garbage.
17 (xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label.
18 * image.c (x_create_bitmap_from_file) [HAVE_NS]:
19 (xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]:
20 * nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal):
21 * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]:
22 Fix pointer signedness problem.
23 * xfaces.c (FRAME_X_FONT_TABLE):
24 * xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros.
25
929e7845
GM
262012-07-07 Glenn Morris <rgm@gnu.org>
27
28 * lread.c (load_path_check): New function, split from init_lread.
29 (init_lread): Reorganize. Motivation:
30 If EMACSLOADPATH is set, check/warn about that rather than the
31 defaults, which we are not going to use. Hence we can remove
32 the turn_off_warning and WINDOWSNT || HAVE_NS tests.
33 Don't warn if site-lisp directories are missing.
34 If not installed, start from a blank load-path, since
35 PATH_LOADSEARCH refers to the eventual installation directories.
36
58dd0aa4
EZ
372012-07-07 Eli Zaretskii <eliz@gnu.org>
38
39 Support truncation and continuation glyphs on GUI frames, when
40 fringes are disabled. (Bug#11832)
41 * xdisp.c (init_iterator): Get dimensions of truncation and
42 continuation glyphs even if on GUI frames. Adjust
43 it->last_visible_x on GUI frames when the left or right fringes,
44 or both, are absent.
45 (start_display, move_it_in_display_line_to): Handle the case of a
46 GUI frame without a fringe to display continuation or truncation
47 glyphs.
48 (insert_left_trunc_glyphs): Support GUI frames: make sure
49 truncation glyphs overwrite enough glyphs from the current line to
50 have sufficient space in pixels.
51 (display_line): Support truncation and continuation glyphs on GUI
52 frames. If some spare pixels are left on the line after inserting
53 the truncation glyphs, fill that space with a stretch glyph of a
54 suitably computed width.
55
56 * term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not
57 produce_glyphs, to support GUI sessions.
58
31571fd7
PE
592012-07-07 Paul Eggert <eggert@cs.ucla.edu>
60
5a16b9bc
PE
61 * sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781).
62
f3047c75
PE
63 * sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797).
64
31571fd7
PE
65 Do not require float-time's arg to fit in time_t (Bug#11825).
66 This works better on hosts where time_t is unsigned, and where
67 float-time is applied to the (negative) difference between two times.
68 * editfns.c (decode_time_components): Last arg is now double *,
69 not int *, and means to store all the result as a double, without
70 worrying about whether the seconds part fits in time_t.
71 All callers changed.
72 (lisp_time_argument): Remove last int * arg, as it's no longer needed.
73 All callers changed.
74 (Ffloat_time): Do not fail merely because the specified time falls
75 outside of time_t range.
76
4516fbef
GM
772012-07-07 Glenn Morris <rgm@gnu.org>
78
79 * s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV):
80 * s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM):
81 * s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively).
82
07adc2c6
JB
832012-07-07 Juanma Barranquero <lekktu@gmail.com>
84
85 * makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)):
86 Update dependencies.
87
88 * s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp.
89
fd573f31
PE
902012-07-06 Paul Eggert <eggert@cs.ucla.edu>
91
fee5959d
PE
92 Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
93 * dispextern.h, nsfns.m, nsterm.m: Include <c-strcase.h>.
94 * dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp.
95 * nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp.
96 * nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp.
97 * xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove.
98
fd573f31
PE
99 * xfont.c (compare_font_names): Redo to omit the need for casts.
100
ddadbc0e
AS
1012012-07-06 Andreas Schwab <schwab@linux-m68k.org>
102
fca8d6b6
AS
103 * xfns.c (Fx_change_window_property): Doc fix.
104 * w32fns.c (Fx_change_window_property): Doc fix.
105
ddadbc0e
AS
106 * w32fns.c (Fx_window_property): Accept the same arguments as the
107 X Windows version. Doc fix.
108 * xfns.c (Fx_window_property): Doc fix. (Bug#11870)
109
f247498e
JB
1102012-07-06 Juanma Barranquero <lekktu@gmail.com>
111 Eli Zaretskii <eliz@gnu.org>
112
113 * s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt.
114 Windows-specific code from nt/config.nt moved here.
115 Obsolete settings removed.
116
216ee680
PE
1172012-07-06 Paul Eggert <eggert@cs.ucla.edu>
118
119 * process.c: Avoid unnecessary calls to gettime.
120 (wait_reading_process_output): Don't get the time of day
121 when gobbling data immediately and not waiting, as there's no need
122 for it in that case. This removes a FIXME.
123
bdd091e4
JD
1242012-07-06 Jan Djärv <jan.h.d@swipnet.se>
125
126 * gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3
127 is defined (Bug#11768).
128
9d44f8ce
DA
1292012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
130
131 Fix marker debugging code.
132 * marker.c (byte_char_debug_check): Do not perform the check
133 if buffer is not multibyte.
134 (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Call
135 byte_char_debug_check with correct arguments.
136
90fc4786
DA
1372012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
138
139 Compile marker debugging code only if ENABLE_CHECKING is defined.
140 * marker.c (byte_char_debug_check, count_markers): Use
141 only if ENABLE_CHECKING is defined.
142 (byte_debug_flag): Remove.
143 (CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos):
144 Always call byte_char_debug_check if ENABLE_CHECKING is defined.
145
7b7ae965
DA
1462012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
147
4e57b342
DA
148 Avoid code repetition in marker-related functions.
149 * marker.c (attach_marker): New function.
150 (Fset_marker, set_marker_restricted, set_marker_both)
151 (set_marker_restricted_both): Use it.
152 (Fset_marker, set_marker_restricted, Fbuffer_has_markers_at):
153 Consistently rename charno to charpos.
154 (marker_position): Add eassert.
155 (marker_byte_position): Convert to eassert.
156
1572012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
158
159 Simplify list operations in unchain_overlay and unchain_marker.
7b7ae965 160 * buffer.c (unchain_overlay): Simplify. Add comment.
4e57b342 161 * marker.c (unchain_marker): Simplify. Fix comments.
7b7ae965 162
657924ff
DA
1632012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
164
165 Introduce fast path for the widely used marker operation.
166 * alloc.c (build_marker): New function.
167 * lisp.h (build_marker): New prototype.
168 * buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it.
169 * composite.c (autocmp_chars): Likewise.
170 * editfns.c (buildmark): Remove.
171 (Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker)
172 (save_restriction_save): Use build_marker.
173 * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
174 * window.c (save_window_save): Likewise.
175
041a49a6
DA
1762012-07-06 Dmitry Antipov <dmantipov@yandex.ru>
177
178 Do not use Fdelete_overlay in delete_all_overlays
179 to avoid redundant calls to unchain_overlay.
180 * buffer.c (drop_overlay): New function.
181 (delete_all_overlays, Fdelete_overlay): Use it.
182 * minibuf.c (get_minibuffer): Fix comment.
183
7dca65a4
PE
1842012-07-06 Paul Eggert <eggert@cs.ucla.edu>
185
186 Port to OpenBSD 5.1 amd64.
187 * sysdep.c [BSD_SYSTEM]: Include <sys/param.h> before <sys/sysctl.h>.
188 This is needed for OpenBSD, and should be harmless on all BSD systems.
189 Also, include <sys/sysctl.h>, as it should be available on all
190 BSD_SYSTEM hosts given that we're already calling sysctl in that case.
191 (list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but
192 use p_pid member, not kp_proc.pid.
193
8eb876e2
GM
1942012-07-06 Glenn Morris <rgm@gnu.org>
195
196 * Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows.
197
38182d90
PE
1982012-07-05 Paul Eggert <eggert@cs.ucla.edu>
199
200 More xmalloc and related cleanup.
201 * alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
202 * callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
203 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
204 * font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
205 * gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
206 * nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
207 * regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
208 * sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
209 * xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
210 * xterm.c:
211 Omit needless casts involving void * pointers and allocation.
212 Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
213 as the former is more robust if P's type is changed.
214 Prefer xzalloc to xmalloc + memset 0.
215 Simplify malloc-or-realloc to realloc.
216 Don't worry about xmalloc returning a null pointer.
217 Prefer xstrdup to xmalloc + strcpy.
218 * editfns.c (Fmessage_box): Grow message_text by at least 80 when
219 growing it.
220 * keyboard.c (apply_modifiers_uncached): Prefer local array to
221 alloca of a constant.
222
6dd5a677
EZ
2232012-07-05 Eli Zaretskii <eliz@gnu.org>
224
225 * xdisp.c (display_line): Fix horizontal pixel coordinates when
226 hscroll is larger than the line width. Fixes long and futile
227 looping inside extend_face_to_end_of_line (on a TTY) producing
228 glyphs that are not needed and thrown away.
229
6b312f0f
DA
2302012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
231
232 * marker.c (set_marker_restricted_both): Simplify by using
233 clip_to_bounds.
234
f520ef9b
PE
2352012-07-05 Paul Eggert <eggert@cs.ucla.edu>
236
237 * editfns.c (region_limit): Simplify by using clip_to_bounds.
238
383b7c95
JD
2392012-07-05 Jan Djärv <jan.h.d@swipnet.se>
240
241 * gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is
242 not defined (Bug#11768).
243 (xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768).
244 (xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser)
245 (make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new
246 followed by gtk_box_set_homogeneous (Bug#11768).
247 (xg_update_menu_item): Use GTK_IS_BOX (Bug#11768).
248 (update_theme_scrollbar_width, xg_create_scroll_bar): Use
249 gtk_scrollbar_new (Bug#11768).
250 (xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3.
251 (is_box_type): New function (Bug#11768).
252 (xg_tool_item_stale_p): Call is_box_type.
5293d758 253 (xg_initialize): Get settings by calling gtk_settings_get_for_screen
383b7c95
JD
254 with default display (Bug#11768).
255
d6e7bf45
EZ
2562012-07-05 Eli Zaretskii <eliz@gnu.org>
257
258 * xdisp.c (window_hscroll_limited): New function.
259 (pos_visible_p, init_iterator): Use it to avoid overflow of pixel
260 coordinates when window's hscroll is set to insanely large
261 values. (Bug#11857)
262
431391ec
JB
2632012-07-05 Juanma Barranquero <lekktu@gmail.com>
264
265 * makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo.
266 ($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies.
267
23f86fce
DA
2682012-07-05 Dmitry Antipov <dmantipov@yandex.ru>
269
270 Cleanup xmalloc.
271 * lisp.h (xzalloc): New prototype. Omit needless casts.
272 * alloc.c (xzalloc): New function. Omit needless casts.
273 * charset.c: Omit needless casts. Convert all calls to
274 xmalloc with following memset to xzalloc.
275 * dispnew.c: Likewise.
276 * fringe.c: Likewise.
277 * image.c: Likewise.
278 * sound.c: Likewise.
279 * term.c: Likewise.
280 * w32fns.c: Likewise.
281 * w32font.c: Likewise.
282 * w32term.c: Likewise.
283 * xfaces.c: Likewise.
284 * xfns.c: Likewise.
285 * xterm.c: Likewise.
286 * atimer.c: Omit needless casts.
287 * buffer.c: Likewise.
288 * callproc.c: Likewise.
289 * ccl.c: Likewise.
290 * coding.c: Likewise.
291 * composite.c: Likewise.
292 * doc.c: Likewise.
293 * doprnt.c: Likewise.
294 * editfns.c: Likewise.
295 * emacs.c: Likewise.
296 * eval.c: Likewise.
297 * filelock.c: Likewise.
298 * fns.c: Likewise.
299 * gtkutil.c: Likewise.
300 * keyboard.c: Likewise.
301 * lisp.h: Likewise.
302 * lread.c: Likewise.
303 * minibuf.c: Likewise.
304 * msdos.c: Likewise.
305 * print.c: Likewise.
306 * process.c: Likewise.
307 * region-cache.c: Likewise.
308 * search.c: Likewise.
309 * sysdep.c: Likewise.
310 * termcap.c: Likewise.
311 * terminal.c: Likewise.
312 * tparam.c: Likewise.
313 * w16select.c: Likewise.
314 * w32.c: Likewise.
315 * w32reg.c: Likewise.
316 * w32select.c: Likewise.
317 * w32uniscribe.c: Likewise.
318 * widget.c: Likewise.
319 * xdisp.c: Likewise.
320 * xmenu.c: Likewise.
321 * xrdb.c: Likewise.
322 * xselect.c: Likewise.
323
0497dc44
PE
3242012-07-05 Paul Eggert <eggert@cs.ucla.edu>
325
326 * fileio.c (time_error_value): Check the right error number.
327 Problem reported by Troels Nielsen in
328 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00095.html>.
329
356e7178
PE
3302012-07-04 Paul Eggert <eggert@cs.ucla.edu>
331
4e71fd89
PE
332 * window.c (set_window_hscroll): Revert the 100000 hscroll limit.
333 This should be fixed in a better way; see Eli Zaretskii in
334 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00088.html>.
335 (HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.
336
f0941253
PE
337 * fileio.c (time_error_value): Rename from special_mtime.
338 The old name's problems were noted by Eli Zaretskii in
339 <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00087.html>.
340
065c9eb4
PE
341 * emacs.c (gdb_pvec_type): Change it back to enum pvec_type.
342 This variable's comment says Emacs needs at least one GDB-visible
343 symbol of type enum pvec_type, to work around GDB problems.
344 The symbol's value doesn't matter.
345
356e7178
PE
346 * alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';'
347 that causes compilation to fail on pre-C99 compilers.
348
95f61aa2
JB
3492012-07-04 Juanma Barranquero <lekktu@gmail.com>
350
351 * s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY)
352 (HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete.
353
3884d954
DA
3542012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
355
d209e2fb 356 * buffer.c (init_buffer_once): Fix initialization of
3884d954
DA
357 headers for buffer_defaults and buffer_local_symbols.
358 Reported by Juanma Barranquero <lekktu@gmail.com>.
359
ee28be33
SM
3602012-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
361
362 Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
363 * lisp.h (enum pvec_type): Use fewer bits.
364 (PSEUDOVECTOR_SIZE_BITS): New constant.
365 (PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
366 (XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
367 change in pvec_type.
368 (PSEUDOVECTOR_TYPEP): New macro.
369 (TYPED_PSEUDOVECTORP): Use it.
370 * fns.c (internal_equal): Adapt code to extract pvectype.
371 * emacs.c (gdb_pvec_type): Update type.
372 * alloc.c (PSEUDOVECTOR_NBYTES): New macro.
373 (VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
374 (VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
375 (SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
376 (sweep_vectors): Use it. Use local var `total_bytes' instead of
377 abusing vector->header.next.nbytes.
378 (live_vector_p): Use PVEC_TYPE.
379 (mark_object): Adapt code to extract pvectype. Use switch.
380
c7f2cd7f
PE
3812012-07-04 Paul Eggert <eggert@cs.ucla.edu>
382
383 * doprnt.c (doprnt): Don't assume string length fits in 'int'.
384 Tighten new eassert a bit.
385
8ce70ed2
DA
3862012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
387
388 Fix compilation with --enable-gcc-warnings and -O1
389 optimization level.
390 * doprnt.c (doprnt): Change type of tem to int, initialize
391 to avoid compiler warning. Add eassert.
392 * search.c (simple_search): Initialize match_byte to avoid
393 compiler warning. Add eassert.
394
dea7f1e5
PE
3952012-07-04 Paul Eggert <eggert@cs.ucla.edu>
396
24a212eb
PE
397 Avoid weird behavior with large horizontal scrolls.
398 Without this change, for example, large hscroll values would
399 mess up Emacs's display on Fedora 15 x86, presumably due to
400 overflows in int calculations in the display code.
401 Also, if buffers had long lines, Emacs would freeze.
402 * window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB.
403 (set_window_hscroll): New function, containing the old guts of
404 Fset_window_hscroll. Return the clipped value.
405 (Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it.
406 This avoids the need to check against PTRDIFF_MAX.
407
dea7f1e5
PE
408 * buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.
409
76046526
DA
4102012-07-04 Dmitry Antipov <dmantipov@yandex.ru>
411
412 * buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.
413
39adff0d
PE
4142012-07-04 Paul Eggert <eggert@cs.ucla.edu>
415
63807d47
PE
416 * regex.c: Suppress GCC warning on RHEL 6. (Bug#11207)
417 Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later,
418 since GCC 4.4.6 issues a bogus warning for them.
419
39adff0d
PE
420 Fix bugs in file timestamp newness comparisons.
421 * fileio.c (Ffile_newer_than_file_p):
422 * lread.c (Fload): Use full timestamp resolution of files,
423 not just the 1-second resolution, so that files that are only
424 slightly newer still count as newer.
425 * fileio.c (Ffile_newer_than_file_p): Don't assume file
426 timestamps fit in 'int'; this fixes a Y2038 bug on most hosts.
427
dbeed9a6
PE
4282012-07-03 Paul Eggert <eggert@cs.ucla.edu>
429
430 * fileio.c: Improve handling of file time marker. (Bug#11852)
431 (special_mtime): New function.
432 (Finsert_file_contents, Fverify_visited_file_modtime):
433 Use it to set special mtime values consistently.
434
636334d6
AS
4352012-07-03 Andreas Schwab <schwab@linux-m68k.org>
436
437 * fileio.c (Finsert_file_contents): Properly handle st_mtime
438 marker for non-existing file. (Bug#11852)
439
e2017fe2
GM
4402012-07-03 Glenn Morris <rgm@gnu.org>
441
442 * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN
443 and did not make it into globals.h).
444
404dbd37
TT
4452012-07-03 Tom Tromey <tromey@redhat.com>
446
447 * window.c (Fset_window_margins, Fset_window_fringes)
448 (Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
449 * textprop.c (Fprevious_property_change): No longer static.
450 * syntax.c (Fsyntax_table_p): No longer static.
451 * process.c (Fget_process, Fprocess_datagram_address): No longer
452 static.
453 * keymap.c (Flookup_key, Fcopy_keymap): No longer static.
454 * keyboard.c (Fcommand_execute): No longer static.
455 Remove EXFUN.
456 * insdel.c (Fcombine_after_change_execute): No longer static.
457 * image.c (Finit_image_library): No longer static.
458 * fileio.c (Fmake_symbolic_link): No longer static.
459 * eval.c (Ffetch_bytecode): No longer static.
460 * editfns.c (Fuser_full_name): No longer static.
d209e2fb
JB
461 * doc.c (Fdocumentation_property, Fsnarf_documentation):
462 No longer static.
404dbd37
TT
463 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
464 static.
465 * dired.c (Ffile_attributes): No longer static.
466 * composite.c (Fcomposition_get_gstring): No longer static.
467 * callproc.c (Fgetenv_internal): No longer static.
468
469 * ccl.h: Remove EXFUNs.
470 * buffer.h: Remove EXFUNs.
471 * dispextern.h: Remove EXFUNs.
472 * intervals.h: Remove EXFUNs.
473 * fontset.h: Remove EXFUN.
474 * font.h: Remove EXFUNs.
475 * dosfns.c (system_process_attributes): Remove EXFUN.
476 * keymap.h: Remove EXFUNs.
477 * lisp.h: Remove EXFUNs.
478 * w32term.h: Remove EXFUNs.
479 * window.h: Remove EXFUNs.
480 * xsettings.h: Remove EXFUN.
481 * xterm.h: Remove EXFUN.
482
8e4fd1e1
GM
4832012-07-03 Glenn Morris <rgm@gnu.org>
484
485 * lisp.h (Frandom): Make it visible to C.
486 * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new
487 buffer for invisible buffers. (Bug#1229)
488
ca95b3eb
DA
4892012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
490
491 Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
492 values which aren't power of 2.
493 * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro. Verify
494 it's value and the value of VECTOR_BLOCK_SIZE. Adjust users
495 accordingly.
496
7555c33f
SM
4972012-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
498
499 * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better.
500
501 * alloc.c (mark_object): Revert part of last patch to use `switch'.
502
d12e8f5a
DA
5032012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
504
505 * alloc.c (allocate_vector_block): Remove redundant
506 calls to mallopt if DOUG_LEA_MALLOC is defined.
507 (allocate_vectorlike): If DOUG_LEA_MALLOC is defined,
508 avoid calls to mallopt if zero_vector is returned.
509
296094c3
DA
5102012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
511
512 * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES
513 is enabled, avoid dereferencing NULL current_sblock if
514 running undumped.
515
36429c89
DA
5162012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
517
518 Cleanup basic buffer management.
519 * buffer.h (struct buffer): Change layout to use generic vector
520 marking code. Fix some comments. Change type of 'clip_changed'
521 to bitfield. Remove unused #ifndef old.
522 (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
523 (GET_OVERLAYS_AT): Fix indentation.
524 (for_each_per_buffer_object_at): New macro.
525 * buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
526 (Fbuffer_local_variables): Use it.
527 (init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
528 * alloc.c (allocate_buffer): Adjust to match new layout of
529 struct buffer. Fix comment.
530 (mark_overlay): New function.
531 (mark_buffer): Use it. Use mark_vectorlike to mark normal
532 Lisp area of struct buffer.
533 (mark_object): Use it. Adjust marking of misc objects
534 and related comments.
535
3b3e4cac
PE
5362012-07-02 Paul Eggert <eggert@cs.ucla.edu>
537
538 * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS"
539 wrapper that is not needed because the wrapped code is a no-op (zero
540 machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined.
541 This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64.
542
cf5c0175
DA
5432012-07-02 Dmitry Antipov <dmantipov@yandex.ru>
544
545 * alloc.c (mark_buffer): Simplify. Remove prototype.
546 (mark_object): Add comment. Reorganize marking of vector-like
faf611c7 547 objects. Use CHECK_LIVE for all vector-like objects except buffers
cf5c0175
DA
548 and subroutines when GC_CHECK_MARKED_OBJECTS is defined. Avoid
549 redundant calls to mark_vectorlike for bool vectors.
550
ca26824c
GM
5512012-06-30 Glenn Morris <rgm@gnu.org>
552
2e4c5312
GM
553 * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp.
554
ca26824c
GM
555 * epaths.in (PATH_SITELOADSEARCH): New.
556 * lread.c (init_lread): Use PATH_SITELOADSEARCH.
557 This is rather than relying on --enable-locallisppath elements
558 having "site-lisp" in their names. (Bug#10208#25, 11658)
559
0d23c240
EZ
5602012-06-30 Eli Zaretskii <eliz@gnu.org>
561
c9240d7a
EZ
562 * w32proc.c (sys_select): Accept and ignore one more argument.
563
564 * w32.c (emacs_gnutls_pull): Call select with one more argument.
565
0d23c240 566 * sysselect.h [DOS_NT]: Don't include sys/select.h.
9ff8f76b 567 (pselect) [!MS_DOS]: Redirect to sys_select.
0d23c240
EZ
568
569 * sysdep.c: Don't include dos.h and dosfns.h.
570
571 * process.c (sys_select):
572 * msdos.c (sys_select): Accept one more argument and ignore it.
573
574 * msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
575 adapt data types and code to that.
576
577 * dosfns.c:
578 * msdos.c (gettime, settime): Define away the prototypes in dos.h,
579 which clashes with the gnulib function of the same name.
580
af5a5a98
AS
5812012-06-30 Andreas Schwab <schwab@linux-m68k.org>
582
c5e4379c
AS
583 * font.c (font_style_to_value, font_style_symbolic)
584 (font_prop_validate_style): Add type checks for values in
585 font_style_table.
586
af5a5a98
AS
587 * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first
588 argument.
589 * character.c, charset.c, menu.c, process.c, window.c: Adjust all
590 uses.
591
8d38f461
EZ
5922012-06-29 Eli Zaretskii <eliz@gnu.org>
593
2e5a6631
EZ
594 * xdisp.c (try_window_id): Undo last change.
595
8d38f461
EZ
596 * w32.c (getwd): Adjust commentary about startup_dir.
597 (init_environment): Always call sys_access, even in non-MSVC
598 builds. Don't chdir to the directory of the Emacs executable.
599 This undoes code from 1997 which was justified by the need to
600 "avoid conflicts when removing and renaming directories". But its
601 downside was that every relative file name was being interpreted
602 relative to the directory of the Emacs executable, which can never
603 be TRT. In particular, it broke sys_access when called with
604 relative file names.
605 (sys_access): Map GetLastError to errno.
606
2af3565e
DA
6072012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
608
609 * window.h (struct window): Change type of 'fringes_outside_margins'
610 to bitfield. Fix comment. Adjust users accordingly.
cf5c0175 611 (struct window): Change type of 'window_end_bytepos' to ptrdiff_t.
2af3565e
DA
612 Adjust comment.
613 * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos'
614 to ptrdiff_t.
615
c8d3a25c 6162012-06-29 Andreas Schwab <schwab@linux-m68k.org>
57570cd3 617
c8d3a25c
GM
618 * gnutls.c (emacs_gnutls_handshake):
619 Add QUIT to make the loop interruptible.
57570cd3 620
c8d3a25c 6212012-06-29 Glenn Morris <rgm@gnu.org>
d01fd55f 622
c8d3a25c
GM
623 * charset.c (init_charset): Make lack of etc/charsets fatal.
624
3e984ee8
DA
6252012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
626
627 * editfns.c (region_limit): Fix type mismatch.
628
ef884f23
DA
6292012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
630
631 * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be
632 undefined. Convert from xassert to eassert.
633 * nsmenu.m: Convert from xassert to eassert.
634 * nsterm.m: Likewise.
635
7d7e0027
SM
6362012-06-28 Stefan Monnier <monnier@iro.umontreal.ca>
637
638 * editfns.c (region_limit): Clip to narrowing (bug#11770).
639
aa754e6a
PE
6402012-06-28 Paul Eggert <eggert@cs.ucla.edu>
641
642 Avoid integer overflow on scroll-left and scroll-right.
643 * window.c (HSCROLL_MAX): New macro.
644 (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer
645 overflow when requested scroll falls outside ptrdiff_t range.
646
80b00b08
DA
6472012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
648
649 * window.h (struct window): Change type of 'hscroll',
650 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
651 'last_modified' and 'last_overlay_modified' to EMACS_INT.
652 Adjust users accordingly.
653 * xdisp.c (try_cursor_movement): Replace type check with eassert.
654 * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
655 from EMACS_INT to ptrdiff_t.
656 (make_window): Omit redundant initialization.
657
62b2bcf6
JB
6582012-06-28 Juanma Barranquero <lekktu@gmail.com>
659
660 * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
661
45942c7d
DA
6622012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
663
664 * window.h (struct window): Change type of 'use_time' and
665 'sequence_number' from Lisp_Object to int.
666 * frame.c (make_frame): Adjust users accordingly.
667 * print.c (print_object): Likewise.
668 * window.c (select_window, Fwindow_use_time, make_parent_window)
669 (make_window): Likewise.
670
e509cfa6
DA
6712012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
672
673 * dispextern.h (GLYPH_DEBUG): Now defined in config.h if
674 enabled with --enable-checking=[all,glyphs] configure option.
675 Fix GLYPH_DEBUG usage assuming that it may be undefined,
676 adjust comments accordingly.
677 * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
678 undefined, adjust comments accordingly.
679 * image.c: Likewise.
680 * scroll.c: Likewise.
681 * w32fns.c: Likewise.
682 * w32term.c: Likewise.
683 * xdisp.c: Likewise.
684 * xfaces.c: Likewise.
685 * xfns.c: Likewise.
686 * xterm.c: Likewise.
687
a54e2c05
DA
6882012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
689
690 Generalize run-time debugging checks.
691 * dispextern.h (XASSERTS): Remove.
692 * fontset.c (xassert): Remove.
693 Convert from xassert to eassert.
694 * alloc.c: Convert from xassert to eassert.
695 * bidi.c: Likewise.
696 * dispnew.c: Likewise.
697 * fns.c: Likewise.
698 * fringe.c: Likewise.
699 * ftfont.c: Likewise.
700 * gtkutil.c: Likewise.
701 * image.c: Likewise.
702 * keyboard.c: Likewise.
703 * menu.c: Likewise.
704 * process.c: Likewise.
705 * scroll.c: Likewise.
706 * sound.c: Likewise.
707 * term.c: Likewise.
708 * w32console.c: Likewise.
709 * w32fns.c: Likewise.
710 * w32term.c: Likewise.
711 * window.c: Likewise.
712 * xdisp.c: Likewise.
713 * xfaces.c: Likewise.
714 * xfns.c: Likewise.
715 * xselect.c: Likewise.
716 * xterm.c: Likewise.
717
1ec4b7b2
SM
7182012-06-27 Stefan Monnier <monnier@iro.umontreal.ca>
719
720 * fns.c (maybe_resize_hash_table): Output message when growing the
721 purify-hashtable.
722
2014308a
DA
7232012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
724
725 * alloc.c (allocate_string_data): Remove dead code.
726 * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
727 avoid GCC warning about unused macro.
728
246155eb
DA
7292012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
730
731 * alloc.c (allocate_string): Omit intervals initialization.
732 * alloc.c (make_uninit_multibyte_string): Initialize intervals
733 as in make_pure_string and make_pure_c_string.
734
43184b7b
DA
7352012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
736
d209e2fb 737 * alloc.c (allocate_string): Fix last change.
43184b7b 738
3fe6dd74
DA
7392012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
740
d209e2fb 741 * alloc.c (allocate_string): Remove two redundant calls
3fe6dd74
DA
742 to memset, add explicit initialization where appropriate.
743
1ba6038a
GM
7442012-06-27 Glenn Morris <rgm@gnu.org>
745
746 * lisp.mk (lisp): Remove paths.elc.
747
c89926a5
CY
7482012-06-27 Chong Yidong <cyd@gnu.org>
749
750 * doc.c (Fsubstitute_command_keys): Fix punctuation.
751
ed6b3510
JW
7522012-06-26 John Wiegley <johnw@newartisans.com>
753
1ec4b7b2 754 * unexmacosx.c (copy_data_segment): Add two section names used
157e99e4
JW
755 on Mac OS X Lion: __mod_init_func and __mod_term_func.
756
ed6b3510
JW
757 * alloc.c (mark_memory): Do not check with -faddress-sanitizer
758 when building with Clang.
759
8edd4a2b
SM
7602012-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
761
762 * eval.c (Fapply): Allow calling it with a single argument.
763
f6f62d1b
EZ
7642012-06-26 Eli Zaretskii <eliz@gnu.org>
765
766 * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
767 _stricmp and _strnicmp.
768 (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
769
62efea5e
DA
7702012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
771
772 * alloc.c (allocate_window): Zero out non-Lisp part of newly
773 allocated window.
774 (allocate_process): Likewise for new process.
8edd4a2b 775 (allocate_terminal): Change to use offsetof.
62efea5e
DA
776 (allocate_frame): Likewise.
777 * frame.c (make_frame): Omit redundant initialization.
778 * window.c (make_parent_window): Use memset.
779 (make_window): Omit redundant initialization.
780 * process.c (make_process): Omit redundant initialization.
781 * terminal.c (create_terminal): Likewise.
782
42997f4d
DA
7832012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
784
785 * term.c (delete_tty): Remove redundant call to memset.
786
1130ecfc
DA
7872012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
788
789 * alloc.c: Remove build_string.
790 * lisp.h: Define build_string as static inline. This provides
791 a better opportunity to optimize away calls to strlen when the
792 function is called with compile-time constant argument.
793 * image.c (imagemagick_error): Convert to build_string.
794 * w32proc.c (sys_spawnve): Likewise.
795 * xterm.c (x_term_init): Likewise.
796
cf38a720
PE
7972012-06-26 Paul Eggert <eggert@cs.ucla.edu>
798
99027bdd
PE
799 Use sprintf return value instead of invoking strlen on result.
800 In the old days this wasn't portable, since some sprintf
801 implementations returned char *. But they died out years ago and
802 Emacs already assumes sprintf returns int.
803 Similarly for float_to_string.
804 This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
805 * ccl.c (ccl_driver):
806 * character.c (string_escape_byte8):
807 * data.c (Fnumber_to_string):
808 * doprnt.c (doprnt):
809 * print.c (print_object):
810 * xdisp.c (message_dolog):
811 * xfns.c (syms_of_xfns):
812 Use sprintf or float_to_string result to avoid need to call strlen.
813 * data.c (Fnumber_to_string):
814 Use make_unibyte_string, since the string must be ASCII.
815 * lisp.h, print.c (float_to_string): Now returns int length.
816 * term.c (produce_glyphless_glyph):
817 Use sprintf result rather than recomputing it.
818
cf38a720
PE
819 Clean out last vestiges of the old HAVE_CONFIG_H stuff.
820 * Makefile.in (ALL_CFLAGS):
821 * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
822 * gmalloc.c, regex.c: Include <config.h> unconditionally.
823
3511c784
DA
8242012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
825
0a08eb21 826 * dispextern.h (xstrcasecmp): Define to library function
3511c784
DA
827 strcasecmp if available.
828 * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
829
fb7da12e
AS
8302012-06-25 Andreas Schwab <schwab@linux-m68k.org>
831
832 * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
833 Avoid comma operator.
834 * menu.c (push_submenu_start, push_submenu_end)
835 (push_left_right_boundary, push_menu_pane): Likewise.
836 * msdos.c (dos_rawgetc): Likewise.
837
afa2ffd8
DA
8382012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
839
840 * xfns.c (xic_create_fontsetname): Remove redundant calls
841 to memset.
842
b3b4476b
PE
8432012-06-25 Paul Eggert <eggert@cs.ucla.edu>
844
4495ff38
PE
845 * gtkutil.c (get_utf8_string): Remove redundant assignment.
846 sprintf already null-terminates its output.
847
b3b4476b
PE
848 * xfns.c (x_window): Remove redundant cast.
849
b00876c9
DA
8502012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
851
852 * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
853 `const char *' to `char *' to avoid compiler warning.
854
d188e26b
PE
8552012-06-24 Paul Eggert <eggert@cs.ucla.edu>
856
885d1d74
PE
857 * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
858 instead of truncating it to 63 (admittedly a generous limit).
859
d188e26b
PE
860 * process.c: Fix spelling and caps in comments.
861
e2f560b1
DN
8622012-06-24 Dan Nicolaescu <dann@ics.uci.edu>
863
e86db54b 864 * emacs.c (setpgrp): Remove definition, unused.
e2f560b1
DN
865 * sysdep.c (setpgrp): Remove definition, not used in this file.
866
7583a3a1
JB
8672012-06-24 Juanma Barranquero <lekktu@gmail.com>
868
869 * makefile.w32-in: Update dependencies.
870
696056c2
EZ
8712012-06-24 Eli Zaretskii <eliz@gnu.org>
872
873 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
874 (SYSTIME_H): Add nt/inc/sys/time.h.
875
876 * systime.h [WINDOWSNT]: Include sys/time.h.
877
878 * s/ms-w32.h (struct timespec): Definition moved from
879 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
880
845ca893
PE
8812012-06-24 Paul Eggert <eggert@cs.ucla.edu>
882
883 Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
884 * buffer.h (buffer_slot_type_mismatch):
885 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
886 * eval.c (unwind_to_catch):
887 * image.c (my_png_error, my_error_exit):
888 * keyboard.c (quit_throw_to_read_char, user_error)
889 (Fexit_recursive_edit, Fabort_recursive_edit):
890 * lisp.h (die, args_out_of_range, args_out_of_range_3)
891 (wrong_type_argument, buffer_overflow, __executable_start)
892 (memory_full, buffer_memory_full, string_overflow, Fthrow)
893 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
894 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
895 (fatal):
896 (child_setup) [!DOS_NT]:
897 * lread.c (end_of_file_error, invalid_syntax):
898 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
899 * puresize.h (pure_write_error):
900 * search.c (matcher_overflow):
901 * sound.c (sound_perror, alsa_sound_perror):
902 * sysdep.c, syssignal.h (croak):
903 * term.c (maybe_fatal, vfatal):
904 * textprop.c (text_read_only):
905 * undo.c (user_error):
906 * unexmacosx.c (unexec_error):
907 * xterm.c (x_ins_del_lines, x_delete_glyphs):
908 Use _Noreturn rather than NO_RETURN.
909 No need for separate decl merely because of _Noreturn.
910 * sound.c (sound_warning, parse_sound):
911 Remove unnecessary forward decls.
912
f1dd8073
PE
9132012-06-24 Paul Eggert <eggert@cs.ucla.edu>
914
915 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
916 * lisp.h (WAIT_READING_MAX): New macro.
917 * dispnew.c (Fsleep_for, sit_for):
918 * keyboard.c (kbd_buffer_get_event):
919 * process.c (Faccept_process_output):
920 Use it to avoid bogus compiler warnings with obsolescent GCC versions.
921 This improves on the previous patch, which introduced a bug
922 when time_t is unsigned and as wide as intmax_t.
923 See <http://bugs.gnu.org/9000#51>.
924
b82c1755
EZ
9252012-06-23 Eli Zaretskii <eliz@gnu.org>
926
927 * dispnew.c (sit_for, Fsleep_for):
928 * keyboard.c (kbd_buffer_get_event):
929 * process.c (Faccept_process_output): Avoid compiler warnings when
930 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
931
ca300656
JB
9322012-06-23 Juanma Barranquero <lekktu@gmail.com>
933
049ec95b
JB
934 * makefile.w32-in: Update dependencies.
935
ca300656
JB
936 * w32.c (ltime): Add return type and declare static.
937 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
938
db7b8d06
PE
9392012-06-23 Paul Eggert <eggert@cs.ucla.edu>
940
941 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
942 Privately reported by Herbert J. Skuhra.
943 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
944 All uses changed.
945 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
946 not make_lisp_timeval, when the argument is of type EMACS_TIME.
947
0bd8297f
EZ
9482012-06-23 Eli Zaretskii <eliz@gnu.org>
949
96512555
EZ
950 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
951 last argument of make_unibyte_string.
952
0bd8297f
EZ
953 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
954 language ID in the event parameters.
955
956 * w32term.c (w32_read_socket): Put the new keyboard codepage into
957 event.code, not the obscure "character set ID".
958
63def6b6
CY
9592012-06-23 Chong Yidong <cyd@gnu.org>
960
961 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
962
e8a02204
EZ
9632012-06-23 Eli Zaretskii <eliz@gnu.org>
964
388cdec0
EZ
965 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
966 * w32.c (fdutimens): New function.
967
968 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
969
970 * s/ms-w32.h (pselect): Redirect to sys_select.
971
972 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
973
e8a02204
EZ
974 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
975 in the logic of incrementing and decrementing the value of
976 use_relocatable_buffers.
977
d054f3fb
PE
9782012-06-23 Paul Eggert <eggert@cs.ucla.edu>
979
980 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
981 Privately reported by Herbert J. Skuhra.
982 [__FreeBSD__]: Remove "*/" typo after "#include".
983 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
984 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
985 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
986 Don't assume EMACS_TIME and struct timeval are the same type.
987
d35af63c
PE
9882012-06-22 Paul Eggert <eggert@cs.ucla.edu>
989
990 Support higher-resolution time stamps (Bug#9000).
991 The time stamps are only nanosecond-resolution at the C level,
992 since that's the best that any real-world system supports now.
993 But they are picosecond-resolution at the Lisp level, as that's
994 easy, and leaves room for future OS improvements.
995
996 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
997 (LIBES): Use it.
998
999 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
1000 Don't get current time unless it's needed.
1001
1002 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
1003 now provides it if it's absent.
1004 (start_atimer): Port to higher-res time stamps.
1005 Check for time stamp overflow. Don't get current time more
1006 often than is needed.
1007
1008 * buffer.h (struct buffer): Buffer modtime now has high resolution.
1009 Include systime.h, not time.h.
1010 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
1011
1012 * dired.c: Include stat-time.h.
1013 (Ffile-attributes): File times now have higher resolution.
1014
1015 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
1016 (struct image): Timestamp now has higher resolution.
1017
1018 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
1019 has at least microseconds now. All uses removed.
1020 (update_frame, update_single_window, update_window, update_frame_1)
1021 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
1022
1023 * editfns.c (time_overflow): Now extern.
1024 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
1025 (float-time, Fformat_time_string, Fcurrent_time_string)
1026 (Fcurrent_time_zone): Accept and generate higher-resolution
1027 time stamps.
1028 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
1029 (decode_time_components, lisp_seconds_argument): New functions.
1030 (make_time): Now static.
1031 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
1032 Report an error if the time is invalid, rather than having the caller
1033 do that.
1034
1035 * fileio.c: Include <stat-time.h>
1036 (Fcopy_file): Copy higher-resolution time stamps.
1037 Prefer to set the time stamp via a file descriptor if that works.
1038 (Fset_file_times, Finsert_file_contents, Fwrite_region)
1039 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
1040 (Fvisited_file_modtime, Fset_visited_file_modtime):
1041 Support higher-resolution time stamps.
1042
1043 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
1044
1045 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
1046
1047 * image.c (prepare_image_for_display, clear_image_cache)
1048 (lookup_image): Port to higer-resolution time stamps.
1049
1050 * keyboard.c (start_polling, bind_polling_period):
1051 Check for time stamp overflow.
1052 (read_char, kbd_buffer_get_event, timer_start_idle)
1053 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
1054 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
1055 Port to higher-resolution time stamps. Do not assume time_t is signed.
1056 (decode_timer): New function. Timers are now vectors of length 9,
1057 not 8, to accommodate the picosecond component.
1058 (timer_check_2): Use it.
1059
1060 * nsterm.m (select_timeout, timeval_subtract): Remove.
1061 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
1062 as they're a bit more accurate and handle overflow better.
1063 (ns_select): Change prototype to be compatible with pselect.
1064 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
1065 * nsterm.h (ns_select): Adjust prototype.
1066
1067 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
1068 us-resolution time stamps.
1069 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
1070
1071 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
1072
1073 * lisp.h (time_overflow): New decl.
1074 (wait_reading_process_output): First arg is now intmax_t, not int,
1075 to accommodate larger waits.
1076
1077 * process.h (struct Lisp_Process.read_output_delay):
1078 Now counts nanoseconds, not microseconds.
1079 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
1080 EMACS_HAS_USECS.
1081 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
1082 (wait_reading_process_output):
1083 Port to ns-resolution time stamps.
1084 (Faccept_process_output, wait_reading_process_output):
1085 Check for time stamp overflow. Do not assume time_t is signed.
1086 (select_wrapper): Remove; we now use pselect.
1087 (Fprocess_attributes): Now generates ns-resolution time stamps.
1088
1089 * sysdep.c: Include utimens.h. Don't include utime.h
1090 or worry about struct utimbuf; gnulib does that for us now.
1091 (gettimeofday): Remove; gnulib provides a substitute.
1092 (make_timeval): New function.
1093 (set_file_times): Now sets ns-resolution time stamps.
1094 New arg FD; all uses changed.
1095 (time_from_jiffies, ltime_from_jiffies, get_up_time)
1096 (system_process_attributes):
1097 Now returns ns-resolution time stamp. All uses changed.
1098 Check for time stamp overflow.
1099
1100 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
1101 provides a substitute now.
1102
1103 * systime.h: Include timespec.h rather than sys/time.h and time.h,
1104 since it guarantees struct timespec.
1105 (EMACS_TIME): Now struct timespec, so that we can support
1106 ns-resolution time stamps.
1107 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
1108 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
1109 (EMACS_USECS): Remove.
1110 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
1111 so multiply the arg by 1000 before storing it.
1112 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
1113 New macros.
1114 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
1115 Port to ns-resolution time stamps.
1116 (EMACS_TIME_NEG_P): Remove; replaced by....
1117 (EMACS_TIME_SIGN): New macro.
1118 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
1119 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
1120 (set_file_times, make_time, lisp_time_argument): Adjust signature.
1121 (make_timeval, make_lisp_time, decode_time_components): New decls.
1122 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
1123 that it mishandled time_t overflow. You can't compare by subtracting!
1124 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
1125 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
1126
1127 * term.c: Include <sys/time.h>.
1128 (timeval_to_Time): New function, for proper overflow wraparound.
1129 (term_mouse_position, term_mouse_click): Use it.
1130
1131 * undo.c (record_first_change): Support higher-resolution time stamps
1132 in the undo buffer.
1133 (Fprimitive_undo): Use them when restoring time stamps.
1134
1135 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
1136 (w32_get_internal_run_time):
1137 Port to higher-resolution Emacs time stamps.
1138 (ltime): Now accepts single 64-bit integer, as that's more convenient
1139 for callers.
1140
1141 * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
1142
1143 * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
1144 for compatibility with pselect. Support ns-resolution time stamps.
1145
1146 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
1147
1148 * xselect.c (wait_for_property_change, x_get_foreign_selection):
1149 Check for time stamp overflow, and support ns-resolution time stamps.
1150
1151 * xterm.c: Don't include sys/time.h; gnulib does that for us now.
1152 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
1153 (timeval_subtract): Remove; no longer needed.
1154 (XTflash, XTring_bell, x_wait_for_event):
1155 Port to ns-resolution time stamps. Don't assume time_t is signed.
1156
b6a92dfe
CY
11572012-06-22 Chong Yidong <cyd@gnu.org>
1158
1159 * xdisp.c (x_consider_frame_title): Revert last change.
1160
d251c37c
EZ
11612012-06-22 Eli Zaretskii <eliz@gnu.org>
1162
1163 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
1164 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
1165 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
1166 staticidx goes up to 1597 out of 1600 = 0x640.)
1167
f10deafb
PE
11682012-06-20 Paul Eggert <eggert@cs.ucla.edu>
1169
1170 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
1171 Otherwise, the umask might be mistakenly 0 while handling input signals.
1172
ec6de1e2
SM
11732012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
1174
1175 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
1176
28be1ada
DA
11772012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
1178
1179 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
1180 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
1181 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
1182 access to `contents' member of Lisp_Vector objects with AREF and ASET
1183 where appropriate.
1184
c6bf3022
CY
11852012-06-19 Chong Yidong <cyd@gnu.org>
1186
1187 * frame.c (delete_frame): When selecting a frame on a different
1188 text terminal, do not alter the terminal's top-frame.
1189
1190 * xdisp.c (format_mode_line_unwind_data): Record the target
1191 frame's selected window and its terminal's top-frame.
1192 (unwind_format_mode_line): Restore them.
1193 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
1194 Callers changed.
1195 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
1196 since tty frames can be explicitly named.
1197 (prepare_menu_bars): Likewise.
1198
1199 * term.c (Ftty_top_frame): New function.
1200
defd4196
PE
12012012-06-18 Paul Eggert <eggert@cs.ucla.edu>
1202
1203 Port byte-code-meter to modern targets.
1204 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
1205 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
8b5257e1 1206 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
defd4196
PE
1207 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
1208 (METER_1, METER_2): Simplify.
1209
1053a871
SM
12102012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
1211
1212 * data.c (Fdefalias): Return `symbol' (bug#11686).
1213
b7e8d081
MR
12142012-06-18 Martin Rudalics <rudalics@gmx.at>
1215
1216 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
1053a871
SM
1217 gets killed during executing of this function (Bug#11665).
1218 Try to always return Qt when the buffer has been actually killed.
b7e8d081
MR
1219 (Vkill_buffer_query_functions): In doc-string say that functions
1220 run by this hook should not change the current buffer.
1221
7ea2b339
PE
12222012-06-18 Paul Eggert <eggert@cs.ucla.edu>
1223
1224 Fix recently-introduced process.c problems found by static checking.
1225 * process.c (write_queue_push, write_queue_pop, send_process):
1226 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
1227 (write_queue_pop): Fix pointer signedness problem.
1228 (send_process): Remove unused local.
1229
96a313a1
CY
12302012-06-17 Chong Yidong <cyd@gnu.org>
1231
1232 * xdisp.c (redisplay_internal): No need to redisplay terminal
1233 frames that are not on top.
1234
20ca2e94
TN
12352012-06-17 Troels Nielsen <bn.troels@gmail.com>
1236
1237 * process.c (make_process): Initialize write_queue.
1238 (write_queue_push, write_queue_pop): New functions.
1239 (send_process): Use them to maintain correct ordering of process
1240 writes (Bug#10815).
1241
9a900ca9
PE
12422012-06-17 Paul Eggert <eggert@cs.ucla.edu>
1243
310fbfa8
PE
1244 * lisp.h (eassert): Assume C89 or later.
1245 This removes the need for CHECK.
1246 (CHECK): Remove. Its comments about always evaluating its
1247 argument were confusing, as 'eassert' typically does not evaluate
1248 its argument.
1249
27bb1ca4
PE
1250 * coding.c (produce_chars): Use ptrdiff_t, not int.
1251
9a900ca9
PE
1252 * xterm.c (x_draw_underwave): Check for integer overflow.
1253 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
1254
41b7f8bc 12552012-06-17 Jan Djärv <jan.h.d@swipnet.se>
50a93863
JD
1256
1257 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
1258 referenced (Bug#11583).
1259
9b0e3eba
AA
12602012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
1261
1262 Implement wave-style variant of underlining.
1263 * dispextern.h (face_underline_type): New enum.
1264 (face): Add field for underline type.
1265 * nsterm.m (ns_draw_underwave): New function.
1266 (ns_draw_text_decoration): Use it.
1267 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
1268 New functions.
1269 (x_draw_glyph_string): Use them.
1270 * xfaces.c (Qline, Qwave): New Lisp objects.
1271 (check_lface_attrs, merge_face_ref)
1053a871
SM
1272 (Finternal_set_lisp_face_attribute, realize_x_face):
1273 Handle wave-style underline face attributes.
9b0e3eba
AA
1274 * xterm.c (x_draw_underwave): New function.
1275 (x_draw_glyph_string): Use it.
1276
0fb52f11
JB
12772012-06-16 Juanma Barranquero <lekktu@gmail.com>
1278
1279 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
1280 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
1281 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
1282 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
1283 ($(BLD)/w32select.$(O)): Update dependencies.
1284
e5560ff7
AS
12852012-06-16 Andreas Schwab <schwab@linux-m68k.org>
1286
1287 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
1288 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
1289 * character.c (_fetch_multibyte_char_p): Remove.
1290 * alloc.c: Include "character.h" before "buffer.h".
1291 * bidi.c: Likewise.
1292 * buffer.c: Likewise.
1293 * bytecode.c: Likewise.
1294 * callint.c: Likewise.
1295 * callproc.c: Likewise.
1296 * casefiddle.c: Likewise.
1297 * casetab.c: Likewise.
1298 * category.c: Likewise.
1299 * cmds.c: Likewise.
1300 * coding.c: Likewise.
1301 * composite.c: Likewise.
1302 * dired.c: Likewise.
1303 * dispnew.c: Likewise.
1304 * doc.c: Likewise.
1305 * dosfns.c: Likewise.
1306 * editfns.c: Likewise.
1307 * emacs.c: Likewise.
1308 * fileio.c: Likewise.
1309 * filelock.c: Likewise.
1310 * font.c: Likewise.
1311 * fontset.c: Likewise.
1312 * fringe.c: Likewise.
1313 * indent.c: Likewise.
1314 * insdel.c: Likewise.
1315 * intervals.c: Likewise.
1316 * keyboard.c: Likewise.
1317 * keymap.c: Likewise.
1318 * lread.c: Likewise.
1319 * macros.c: Likewise.
1320 * marker.c: Likewise.
1321 * minibuf.c: Likewise.
1322 * nsfns.m: Likewise.
1323 * nsmenu.m: Likewise.
1324 * print.c: Likewise.
1325 * process.c: Likewise.
1326 * regex.c: Likewise.
1327 * region-cache.c: Likewise.
1328 * search.c: Likewise.
1329 * syntax.c: Likewise.
1330 * term.c: Likewise.
1331 * textprop.c: Likewise.
1332 * undo.c: Likewise.
1333 * unexsol.c: Likewise.
1334 * w16select.c: Likewise.
1335 * w32fns.c: Likewise.
1336 * w32menu.c: Likewise.
1337 * window.c: Likewise.
1338 * xdisp.c: Likewise.
1339 * xfns.c: Likewise.
1340 * xmenu.c: Likewise.
1341 * xml.c: Likewise.
1342 * xselect.c: Likewise.
1343
2f07e6af
EZ
13442012-06-16 Eli Zaretskii <eliz@gnu.org>
1345
1053a871
SM
1346 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
1347 If all the glyphs of the glyph row came from strings, and we have no
2f07e6af 1348 cursor positioning clues, put the cursor on the first glyph of the
1097afe4
EZ
1349 row.
1350 (handle_face_prop): Use chunk-relative overlay string index when
1351 indexing into it->string_overlays array. (Bug#11653)
946fdb73
EZ
1352 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
1353 the rightmost. (Bug#11720)
2f07e6af 1354
29b83cec
AS
13552012-06-16 Andreas Schwab <schwab@linux-m68k.org>
1356
1357 * category.h (CHAR_HAS_CATEGORY): Define as inline.
1358 (CATEGORY_MEMBER): Enforce 1/0 value.
1359 * category.c (_temp_category_set): Remove.
1360
4c5501e9
EZ
13612012-06-16 Eli Zaretskii <eliz@gnu.org>
1362
1363 * window.c (Fdelete_other_windows_internal)
1364 (Fdelete_window_internal): Don't access frame's mouse highlight
1365 info of the initial frame. (Bug#11677)
1366
2b570124
PE
13672012-06-14 Paul Eggert <eggert@cs.ucla.edu>
1368
e93864f9
PE
1369 * .gdbinit (xgetint): Fix recently-introduced paren typo.
1370 Assume USE_2_TAGS_FOR_INTS.
1371 (xreload): Adjust $tagmask width to match recent lisp.h change.
1372
2b570124
PE
1373 Simplify lisp.h in minor ways that should not affect code.
1374 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
1375 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
1376 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
1377 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
1378 (INTTYPEBITS): New macro, for clarity.
1379 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
1053a871
SM
1380 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
1381 Simplify now that USE_LSB_TAG is always defined.
2b570124
PE
1382 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
1383 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
1384
81755f69
JB
13852012-06-13 Juanma Barranquero <lekktu@gmail.com>
1386
1387 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
1388
16192a57
GM
13892012-06-13 Glenn Morris <rgm@gnu.org>
1390
1391 * s/bsd-common.h (BSD4_3):
1392 * s/usg5-4-common.h (USG5_4): No longer define; unused.
1393
646b5f55
AS
13942012-06-13 Andreas Schwab <schwab@linux-m68k.org>
1395
1396 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
1397 instead of union.
1398 (XLI, XIL): Define.
1053a871
SM
1399 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
1400 Use them.
1401 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
646b5f55 1402 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
1053a871 1403 * alloc.c (widen_to_Lisp_Object): Remove.
646b5f55
AS
1404 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
1405 * frame.c (delete_frame): Remove outdated comment.
1406 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
1407 USE_LISP_UNION_TYPE.
1408 (Fw32_unregister_hot_key): Likewise.
1409 (Fw32_toggle_lock_key): Likewise.
1410 * w32menu.c (add_menu_item): Likewise.
1411 (w32_menu_display_help): Use XIL instead of checking
1412 USE_LISP_UNION_TYPE.
1413 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
1414 (init_heap): Likewise.
1415 * w32term.c (w32_read_socket): Update comment.
1416
1d3823c9
GM
14172012-06-13 Glenn Morris <rgm@gnu.org>
1418
c62ff706
GM
1419 * s/usg5-4-common.h, src/s/unixware.h:
1420 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
1421
1d3823c9
GM
1422 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
1423
bfe3e0a2
PE
14242012-06-13 Paul Eggert <eggert@cs.ucla.edu>
1425
1426 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
1427 * alloc.c (make_number) [!defined make_number]:
1428 Remove, as lisp.h always defines this now.
1429 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
1430 (roundup_size): Verify that it is a power of 2.
1431 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
1432 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
1433 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
1434 -DUSE_LSB_TAG=0, to override the automatically-selected default.
1435 USE_LSB_TAG now is always defined to be either 0 or 1.
1436 All uses changed.
1437 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
1438 code works fine either way, and efficiency is not a concern here,
1439 as the union type is for debugging, not for production.
1440 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
1441 Use an inline function on all platforms when using the union type,
1442 since this is simpler and 'static inline' can be used portably
1443 within Emacs now.
1444 (LISP_INITIALLY_ZERO): New macro.
1445 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
1446 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
1447
45fa9c0f
GM
14482012-06-12 Glenn Morris <rgm@gnu.org>
1449
b4492cba
GM
1450 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
1451
1452 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
0d369729 1453
45fa9c0f
GM
1454 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
1455 Move BROKEN_SIGIO to configure.
1456
1457 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
1458 Move NO_TERMIO to configure.
1459
0e25d334
CY
14602012-06-12 Chong Yidong <cyd@gnu.org>
1461
1462 * image.c (imagemagick_load_image): Use MagickFlattenImage if
1463 MagickMergeImageLayers is undefined. Use pixel pusher loop if
1464 MagickExportImagePixels is undefined.
1465
43682bb6
PE
14662012-06-12 Paul Eggert <eggert@cs.ucla.edu>
1467
1468 * image.c (imagemagick_load_image): Remove unused label.
1469
a9be7d2b
GM
14702012-06-11 Glenn Morris <rgm@gnu.org>
1471
1472 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
1473 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
1474 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
1475 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
1476
3017f87f
SM
14772012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
1478
1479 * alloc.c (make_byte_code): New function.
1480 (Fmake_byte_code): Use it. Don't purify here.
1481 * lread.c (read1): Use it as well to avoid extra allocation.
1482
1b9b4cf4
CY
14832012-06-11 Chong Yidong <cyd@gnu.org>
1484
1485 * image.c (imagemagick_load_image): Implement transparency.
1486
95988fcf
AS
14872012-06-10 Andreas Schwab <schwab@linux-m68k.org>
1488
1489 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
1490 account for preceding backslashes. (Bug#11663)
1491
cd4eb164
CY
14922012-06-09 Chong Yidong <cyd@gnu.org>
1493
1494 * term.c: Support italics in capable terminals (Bug#9652).
1495 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
1496 (turn_on_face): Output using TS_enter_italic_mode if available.
1497 Don't handle unused blinking and alt-charset cases.
1498 (turn_off_face): Handle italic case; discard unused tty_blinking_p
1499 and tty_alt_charset_p cases.
1500 (tty_capable_p, init_tty): Support italics.
1501
1502 * termchar.h (struct tty_display_info): Add field for italics.
1503 Remove unused blink field.
1504
1505 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
1506 Handle slant.
1507
1508 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
1509 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
1510 tty_alt_charset_p. Add tty_italic_p.
1511
ff88beb8
MA
15122012-06-09 Michael Albinus <michael.albinus@gmx.de>
1513
1514 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
1515 dbus_type_is_basic if available.
1516 (xd_extract_signed, xd_extract_unsigned): Rename from
1517 extract_signed and extract_unsigned, respectively. Adapt callers.
1518
44286096
CY
15192012-06-09 Chong Yidong <cyd@gnu.org>
1520
1682701f
CY
1521 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
1522
44286096
CY
1523 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
1524 case (Bug#9752).
1525
d86feb17
PE
15262012-06-08 Paul Eggert <eggert@cs.ucla.edu>
1527
1528 * xdisp.c (vmessage): Treat frame message as multibyte.
1529 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
1530 would generate the diagnostic "Making \302\247 buffer-local while
1531 let-bound!".
1532
d5c20fe8
EZ
15332012-06-08 Eli Zaretskii <eliz@gnu.org>
1534
1535 * dispnew.c (showing_window_margins_p): Undo last change, which
1536 was done due to an inadvertent commit.
1537 (adjust_frame_glyphs_for_frame_redisplay): Do call
1538 showing_window_margins_p.
1539
513749ee
SM
15402012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
1541
1542 * eval.c (Fmake_var_non_special): New primitive.
1543 (syms_of_eval): Defsubr it.
1544 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
1545
d4a8f5c1
JB
15462012-06-08 Juanma Barranquero <lekktu@gmail.com>
1547
1548 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
1549 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
1550
8bbbc977
EZ
15512012-06-08 Eli Zaretskii <eliz@gnu.org>
1552
1553 * alloc.c (allocate_vectorlike): Fix last change.
1554
f3372c87
DA
15552012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
1556
1557 Block-based vector allocation of small vectors.
1558 * lisp.h (struct vectorlike_header): New field `nbytes',
1559 adjust comment accordingly.
1560 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
1561 to denote vector blocks. Adjust users (live_vector_p,
1562 mark_maybe_pointer, valid_lisp_object_p) accordingly.
1563 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
1564 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES),
1565 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX),
1566 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST),
1567 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
1568 (roundup_size): New constant.
1569 (struct vector_block): New data type.
1570 (vector_blocks, vector_free_lists, zero_vector): New variables.
513749ee 1571 (all_vectors): Rename to `large_vectors'.
f3372c87
DA
1572 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
1573 (sweep_vectors): New functions.
1574 (allocate_vectorlike): Return `zero_vector' as the only vector of
1575 0 items. Allocate new vector from block if vector size is less than
1576 or equal to VBLOCK_BYTES_MAX.
1577 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
1578 (init_alloc_once): Add call to init_vectors.
1579
4f18a4ed
SM
15802012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
1581
1582 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
1583
86f158bc
PE
15842012-06-07 Paul Eggert <eggert@cs.ucla.edu>
1585
1586 * doprnt.c (doprnt): Truncate multibyte char correctly.
1587 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
1588 would mishandle a string argument "Xc" if X was a multibyte
1589 character of length 2: it would truncate after X's first byte
1590 rather than including all of X.
1591
c5cfcbe0
CY
15922012-06-06 Chong Yidong <cyd@gnu.org>
1593
1594 * buffer.c (word_wrap): Doc fix.
1595
c05cf390
PE
15962012-06-04 Paul Eggert <eggert@cs.ucla.edu>
1597
1598 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
1599
0c3461de
GM
16002012-06-03 Glenn Morris <rgm@gnu.org>
1601
1602 * xdisp.c (tool-bar-style): Doc fix.
1603
c71232db
UM
16042012-06-03 Ulrich Müller <ulm@gentoo.org>
1605
1606 * Makefile.in (PAXCTL): Define.
1607 (temacs$(EXEEXT)): Disable memory randomization for the temacs
1608 binary via PaX flags if the paxctl utility is available.
1609 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
1610 Restore PaX flags to their default. (Bug#11398)
1611
383f7350
CY
16122012-06-03 Chong Yidong <cyd@gnu.org>
1613
1614 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
1615 buffer (Bug#11226).
1616
5f2c76c6
CY
16172012-06-03 Chong Yidong <cyd@gnu.org>
1618
1619 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
1620 (note_mode_line_or_margin_highlight): If there is no help echo,
1621 use mode-line-default-help-echo. Handle the case where the mouse
1622 position is past the end of the mode line string.
1623
1624 * buffer.c (buffer_local_value_1): New function, split from
1625 Fbuffer_local_value; can return Qunbound.
1626 (Fbuffer_local_value): Use it.
1627 (Vmode_line_format): Docstring tweaks.
1628
773d47f6
PE
16292012-06-02 Paul Eggert <eggert@cs.ucla.edu>
1630
1631 * sysdep.c (system_process_attributes): Improve comment.
1632
f2d6a3df
SM
16332012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
1634
1635 * keyboard.c: Export real-this-command to Elisp.
1636 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
1637 and DEFVAR it. Update all users.
1638
63810350
PE
16392012-06-02 Paul Eggert <eggert@cs.ucla.edu>
1640
7bd5c1f4
PE
1641 * minibuf.c (Fassoc_string): Remove duplicate declaration.
1642
63810350
PE
1643 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
1644 Convert pctcpu and pctmem to Lisp float properly.
1645 Let the compiler fold better, as 100.0/0x8000 is exact.
1646
a2821611
AS
16472012-06-02 Andreas Schwab <schwab@linux-m68k.org>
1648
1649 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
1650 cons_block.
1651
5fceba1d
PE
16522012-06-01 Paul Eggert <eggert@cs.ucla.edu>
1653
1654 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
1655
c98ff5dd
DA
16562012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
1657
1658 For a 'struct window', replace some Lisp_Object fields to
1659 bitfields where appropriate, remove unused fields.
1660 * window.h (struct window): Remove unused 'last_mark_x' and
1661 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
1662 change it's type from Lisp_Object to bitfield.
1663 Change type of 'force_start', 'optional_new_start',
1664 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
1665 fields from Lisp_Object to bitfield. Adjust users accordingly.
1666
ca34e0be
PE
16672012-05-31 Paul Eggert <eggert@cs.ucla.edu>
1668
1669 Pacify gcc -Wdouble-precision when using Xaw.
1670 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
1671 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
1672 Use 'float' consistently, rather than 'float' in most places
1673 and 'double' in a couple of places.
1674
efc00ab1 16752012-05-31 Eli Zaretskii <eliz@gnu.org>
d5fd2c54
EZ
1676
1677 * xdisp.c (handle_stop): Detect whether we have overlay strings
1678 loaded by testing it->current.overlay_string_index to be
1679 non-negative, instead of checking whether n_overlay_strings is
1680 positive. (Bug#11587)
1681
efc00ab1 16822012-05-31 Chong Yidong <cyd@gnu.org>
353c87f6
CY
1683
1684 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
1685
1686 * doc.c (Fsubstitute_command_keys): Doc fix.
1687
efc00ab1 16882012-05-31 Eli Zaretskii <eliz@gnu.org>
a02ae4e5
EZ
1689
1690 * search.c (search_buffer): Remove calls to
1691 r_alloc_inhibit_buffer_relocation, as it is now called by
1692 maybe_unify_char, which was the cause of relocation of buffer text
1693 in bug#11519.
1694
efc00ab1 16952012-05-31 Eli Zaretskii <eliz@gnu.org>
291d430f
EZ
1696
1697 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
1698 for the duration of call to load_charset, to avoid problems with
1699 callers of maybe_unify_char that access buffer text through C
1700 pointers.
1701
1702 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
1703 decrement the inhibition flag, instead of just setting or
1704 resetting it.
1705
ba93a187
PE
17062012-05-31 Paul Eggert <eggert@cs.ucla.edu>
1707
1708 Remove obsolete '#define static' cruft.
1709 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
1710 This #undef was "temporary" in 2000; it is no longer needed
1711 now that '#define static' has gone away.
1712 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
1713 (gray_bitmap_bits): Remove; no longer needed.
1714 All uses replaced with definiens.
1715 * xterm.c: Include "bitmaps/gray.xbm".
1716
9e4bf381
PE
17172012-05-30 Paul Eggert <eggert@cs.ucla.edu>
1718
1719 Clean up __executable_start, monstartup when --enable-profiling.
1720 The following changes affect the code only when profiling.
1721 * dispnew.c (__executable_start): Rename from safe_bcopy.
1722 Define only on platforms that need it.
1723 * emacs.c: Include <sys/gmon.h> when profiling.
1724 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
1725 (__executable_start): Remove decl, since lisp.h does it now.
1726 (safe_bcopy): Remove decl; no longer has that name.
1727 (main): Coalesce #if into single bit of code, for simplicity.
1728 Cast pointers to uintptr_t, since standard libraries want integers
1729 and not pointers.
1730 * lisp.h (__executable_start): New decl.
1731
32d72c2f
GM
17322012-05-31 Glenn Morris <rgm@gnu.org>
1733
1734 * image.c (Fimagemagick_types): Doc fix.
1735
baac5bc7
JM
17362012-05-30 Jim Meyering <meyering@redhat.com>
1737
1738 * callproc.c (Fcall_process_region): Include directory component
1739 in mkstemp error message (Bug#11586).
1740
72cb32cf
PE
17412012-05-30 Paul Eggert <eggert@cs.ucla.edu>
1742
1743 * alloc.c, lisp.h (make_pure_vector): Now static.
1744
61b108cc
SM
17452012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
1746
1747 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
1748 Move to byte-run.el.
1749 (Fautoload): Do the hash-doc more carefully.
1750 * data.c (Fdefalias): Purify definition, except for keymaps.
1751 (Qdefun): Move from eval.c.
1752 * lisp.h (Qdefun): Remove.
1753 * lread.c (read1): Tiny simplification.
1754
471fe23d
TN
17552012-05-29 Troels Nielsen <bn.troels@gmail.com>
1756
934f3f58 1757 Do not create empty overlays with the evaporate property (Bug#9642).
471fe23d
TN
1758 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
1759 Bug#9642, but explicitly check that the buffer the overlay would
1760 be moved to is live and rearrange lines to make sure that errors
1761 will not put the overlay in an inconsistent state.
1762 (Fdelete_overlay): Cosmetics.
1763
85d0efd1
EZ
17642012-05-28 Eli Zaretskii <eliz@gnu.org>
1765
1766 * w32term.c (my_bring_window_to_top): New function.
1767 (x_raise_frame): Use handle returned by DeferWindowPos, which
61b108cc
SM
1768 could be different from the original one.
1769 Call my_bring_window_to_top instead of my_set_foreground_window.
85d0efd1
EZ
1770 (Bug#11513)
1771
1772 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
1773 by calling BringWindowToTop.
1774
1775 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
1776 (WM_EMACS_END): Increase by one.
1777
da92a98c
PE
17782012-05-28 Paul Eggert <eggert@cs.ucla.edu>
1779
1780 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
1781 This avoids undefined behavior that might cause the eassert
1782 to not catch an out-of-range value.
1783
74d1f848
JB
17842012-05-28 Juanma Barranquero <lekktu@gmail.com>
1785
1786 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
1787 Update dependencies.
1788
9e1a06fc
EZ
17892012-05-27 Eli Zaretskii <eliz@gnu.org>
1790
1791 * bidi.c (bidi_mirror_char): Fix last change.
1792
f3dd7312
AS
17932012-05-27 Andreas Schwab <schwab@linux-m68k.org>
1794
1795 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
1796 when referring to sectname field in printf format.
1797
81899c91
PE
17982012-05-27 Paul Eggert <eggert@cs.ucla.edu>
1799
57b81a9f
PE
1800 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
1801 Only r_alloc_inhibit_buffer_relocation needed to be added;
1802 the others were already declared.
1803
81899c91
PE
1804 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
1805 before checking whether it's out of range. Put the check inside
1806 eassert. See
1807 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
1808
33017faf 18092012-05-27 Ken Brown <kbrown@cornell.edu>
2f9b9adb
KB
1810
1811 * callproc.c (Fcall_process): Restore a line that was accidentally
1812 commented out in the 2011-02-13 change (bug#11547).
1813
33017faf 18142012-05-27 Eli Zaretskii <eliz@gnu.org>
52c55cc7
EZ
1815
1816 * lisp.h [REL_ALLOC]: Add prototypes for external functions
1817 defined on ralloc.c.
1818
1819 * buffer.c [REL_ALLOC]: Remove prototypes of
1820 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
1821 they are now on lisp.h.
1822
1823 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
1824
1825 * search.c (search_buffer): Use it to inhibit relocation of buffer
1826 text while re_search_2 is doing its job, because re_search_2 is
1827 passed C pointers to buffer text. (Bug#11519)
1828
23415acf
EZ
1829 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
1830 Update value to 24.
1831
44e27368
EZ
1832 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
1833 state after an additional call to move_it_in_display_line_to, keep
1834 the values of it->max_ascent and it->max_descent found for the
1835 entire line.
1836 (pos_visible_p): Revert the comparison against bottom_y to what it
1837 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
1838 (Bug#11464)
1839
c1892f11
PE
18402012-05-26 Paul Eggert <eggert@cs.ucla.edu>
1841
1842 Fix coding-related core dumps with gcc -ftrapv.
1843 The code was computing A - B, where A and B are pointers, and B is
1844 random garbage. This can lead to core dumps on platforms that
1845 have special pointer registers, and it also leads to core dumps on
1846 x86-64 when compiled with gcc -ftrapv. The fix is to compute
1847 A - B only when B is initialized properly.
1848 * coding.c (coding_set_source, coding_set_destination): Return void.
1849 (coding_change_source, coding_change_destinations): New functions,
1850 with the old behaviors of coding_set_source and coding_set_destination.
1851 All callers that need an offset changed to use these new functions.
1852
eb7afdad
GM
18532012-05-26 Glenn Morris <rgm@gnu.org>
1854
1855 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
1856
f12fdf02
EZ
18572012-05-26 Eli Zaretskii <eliz@gnu.org>
1858
53a63be6 1859 Extend mouse support on W32 text-mode console.
61b108cc
SM
1860 * xdisp.c (draw_row_with_mouse_face):
1861 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
eb3f6f01 1862
eb3f6f01 1863 * w32console.c: Include window.h.
61b108cc
SM
1864 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
1865 New functions.
eb3f6f01
EZ
1866 (initialize_w32_display): Initialize mouse-highlight data.
1867
53a63be6
EZ
1868 * w32inevt.c: Include termchar.h and window.h.
1869 (do_mouse_event): Support mouse-autoselect-window. When the mouse
1870 moves, call note_mouse_highlight. If help_echo changed, call
1871 gen_help_event to produce help-echo message in the echo area.
1872 Call clear_mouse_face if mouse_face_hidden is set in the mouse
1873 highlight info.
1874
4cfd81f6
PE
18752012-05-26 Paul Eggert <eggert@cs.ucla.edu>
1876
1877 * lread.c (read1): Simplify slightly to avoid an overflow warning
1878 with GCC 4.7.0 on x86-64.
1879
4446092a
EZ
18802012-05-26 Eli Zaretskii <eliz@gnu.org>
1881
1882 * bidi.c (bidi_mirror_char): Revert last change: an int is
1883 definitely wide enough here.
1884
42b2a986 18852012-05-25 Paul Eggert <eggert@cs.ucla.edu>
3164aeac 1886
42b2a986 1887 Fix integer width and related bugs (Bug#9874).
eb106a49 1888 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
d311d28c
PE
1889 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
1890 (string_bytes, check_sblock, allocate_string_data):
1891 (compact_small_strings, Fmake_bool_vector, make_string)
1892 (make_unibyte_string, make_multibyte_string)
1893 (make_string_from_bytes, make_specified_string)
1894 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
1895 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
1896 (mark_vectorlike):
1897 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1898 (allocate_pseudovector):
1899 Use int, not EMACS_INT, where int is wide enough.
1900 (inhibit_garbage_collection, Fgarbage_collect):
1901 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1902 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
1903 int might not be wide enough.
1904 (bidi_cache_search, bidi_cache_find, bidi_init_it)
1905 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
1906 (bidi_at_paragraph_end, bidi_find_paragraph_start)
1907 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
1908 (bidi_level_of_next_char, bidi_move_to_visually_next):
1909 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1910 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
1911 (Fkill_buffer, Fset_buffer_major_mode)
1912 (advance_to_char_boundary, Fbuffer_swap_text)
1913 (Fset_buffer_multibyte, overlays_at, overlays_in)
1914 (overlay_touches_p, struct sortvec, record_overlay_string)
1915 (overlay_strings, recenter_overlay_lists)
1916 (adjust_overlays_for_insert, adjust_overlays_for_delete)
1917 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
1918 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
1919 (Foverlay_recenter, last_overlay_modification_hooks_used)
1920 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
1921 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
977b0e45
PE
1922 (validate_region): Omit unnecessary test for b <= e,
1923 since that's guaranteed by the previous test.
d311d28c
PE
1924 (adjust_overlays_for_delete): Avoid pos + length overflow.
1925 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
1926 (report_overlay_modification):
1927 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1928 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
1929 Omit pointer cast, which isn't needed anyway, and doesn't work
1930 after the EMACS_INT -> ptrdiff_t change.
02481186 1931 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
d311d28c
PE
1932 * buffer.h: Adjust decls to match defn changes elsewhere.
1933 (struct buffer_text, struct buffer):
1934 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1935 Use EMACS_INT, not int, where int might not be wide enough.
39b5db3b
PE
1936 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
1937 not int, to avoid needless 32-bit limit on 64-bit hosts.
1938 (exec_byte_code): Use tighter memory-full test, one that checks
1939 for alloca overflow. Don't compute the address of the object just
1940 before an array, as that's not portable. Use EMACS_INT, not
1941 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
d311d28c
PE
1942 * callint.c (Fcall_interactively):
1943 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1944 * callproc.c (call_process_kill, Fcall_process):
1945 Don't assume pid_t fits into an Emacs fixnum.
1946 (call_process_cleanup, Fcall_process, child_setup):
1947 Don't assume pid_t fits into int.
1948 (call_process_cleanup, Fcall_process, delete_temp_file)
1949 (Fcall_process_region):
1950 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1951 (Fcall_process): Simplify handling of volatile integers.
1952 Use int, not EMACS_INT, where int will do.
1953 * casefiddle.c (casify_object, casify_region, operate_on_word)
1954 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
1955 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1956 (casify_object): Avoid integer overflow when overallocating buffer.
1957 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
45c2afd6 1958 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
d311d28c
PE
1959 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
1960 * category.h (CATEGORYP): Don't assume arg is nonnegative.
1961 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
1962 integers are now checked earlier. All uses replaced with XINT.
1963 (ccl_driver):
1964 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1965 For CCL_MapSingle, check that content and value are in int range.
c801946a
PE
1966 (ccl_driver, Fregister_code_conversion_map):
1967 Check that Vcode_version_map_vector is a vector.
d311d28c
PE
1968 (resolve_symbol_ccl_program): Check that vector header is in range.
1969 Always copy the vector, so that we can check its contents reliably
1970 now rather than having to recheck each instruction as it's being
1971 executed. Check that vector words fit in 'int'.
1972 (ccl_get_compiled_code, Fregister_ccl_program)
1973 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
1974 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
1975 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
1976 contents are in range.
1977 (Fccl_execute_on_string): Check that status is in range.
1978 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
1979 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
1980 Accept and return EMACS_INT, not int, because callers can pass values
1981 out of 'int' range.
1982 (c_string_width, strwidth, lisp_string_width, chars_in_text)
1983 (multibyte_chars_in_text, parse_str_as_multibyte)
1984 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
1985 (str_as_unibyte, str_to_unibyte, string_count_byte8)
1986 (string_escape_byte8, Fget_byte):
1987 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
a14e1568 1988 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
d311d28c
PE
1989 avoid mishandling large integers.
1990 * character.h: Adjust decls to match defn changes elsewhere.
1991 * charset.c (load_charset_map_from_file, find_charsets_in_text)
1992 (Ffind_charset_region):
1993 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1994 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
1995 (load_charset_map_from_vector, Fdefine_charset_internal):
3c7649c1 1996 Don't assume fixnum fits in int.
d311d28c
PE
1997 (load_charset_map_from_vector, Fmap_charset_chars):
1998 Remove now-unnecessary CHECK_NATNUMs.
1999 (Fdefine_charset_internal): Check ranges here, more carefully.
3c7649c1
PE
2000 Don't rely on undefined behavior with signed left shift overflow.
2001 Don't assume unsigned int fits into fixnum, or that fixnum fits
2002 into unsigned int. Don't require max_code to be a valid fixnum;
2003 that's not true for gb10830 4-byte on a 32-bit host. Allow
2004 invalid_code to be a cons, for the same reason. Require code_offset
2005 to be a character. Avoid int overflow if max_char is close
2006 to INT_MAX.
2007 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
2008 this is intended anyway and avoids some undefined behavior.
2009 (load_charset_map): Pass unsigned, not int, as 2nd arg of
2010 INDEX_TO_CODE_POINT, as that's what it expects.
2011 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
60ad3eab
PE
2012 * charset.h (DECODE_CHAR): Return int, not unsigned;
2013 this is what was intended anyway, and it avoids undefined behavior.
2014 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
2015 integer-overflow issues.
2016 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
2017 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
2018 where the argument is EMACS_INT, and this behavior is not intended.
d311d28c
PE
2019 * chartab.c (Fmake_char_table, Fset_char_table_range)
2020 (uniprop_get_decoder, uniprop_get_encoder):
2021 Don't assume fixnum fits in int.
2022 * cmds.c (move_point): New function, that does the gist of
2023 Fforward_char and Fbackward_char, but does so while checking
2024 for integer overflow more accurately.
c96e5d6a 2025 (Fforward_char, Fbackward_char): Use it.
d311d28c
PE
2026 (Fforward_line, Fend_of_line, internal_self_insert)
2027 (internal_self_insert):
2028 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2029 Fix a FIXME, by checking for integer overflow when calculating
2030 target_clm and actual_clm.
2031 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
8f50130c 2032 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
d311d28c
PE
2033 (ASSURE_DESTINATION, coding_alloc_by_realloc)
2034 (coding_alloc_by_making_gap, alloc_destination)
2035 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
2036 (encode_coding_utf_16, detect_coding_emacs_mule)
2037 (decode_coding_emacs_mule, encode_coding_emacs_mule)
2038 (detect_coding_iso_2022, decode_coding_iso_2022)
2039 (encode_invocation_designation, encode_designation_at_bol)
2040 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
2041 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
2042 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
2043 (encode_coding_ccl, encode_coding_raw_text)
2044 (detect_coding_charset, decode_coding_charset)
2045 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
2046 (produce_composition, produce_charset, produce_annotation)
2047 (decode_coding, handle_composition_annotation)
2048 (handle_charset_annotation, consume_chars, decode_coding_gap)
2049 (decode_coding_object, encode_coding_object, detect_coding_system)
2050 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
2051 (code_convert_region, code_convert_string)
8f50130c
PE
2052 (Fdefine_coding_system_internal)
2053 (coding_set_source, coding_set_destination):
d311d28c
PE
2054 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2055 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
2056 (Fdefine_coding_system_internal):
2057 Don't assume fixnums fit in int.
2058 (decode_coding_gap, decode_coding_object, encode_coding_object)
5895d7b9 2059 (Fread_coding_system, Fdetect_coding_region)
2c6a9faa
PE
2060 (Funencodable_char_position, Fcheck_coding_systems_region)
2061 (get_translation, handle_composition_annotation, consume_chars):
d311d28c 2062 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
977b0e45 2063 (consume_chars): Rewrite to not calculate an address outside buffer.
d311d28c 2064 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
7b09a37a 2065 Don't access memory outside of the args array.
d311d28c 2066 (Fdefine_coding_system_internal): Check for charset-id overflow.
47664caa
PE
2067 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
2068 result of ENCODE_CHAR.
d311d28c
PE
2069 * coding.h: Adjust decls to match defn changes elsewhere.
2070 (struct coding_system):
2071 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2072 * composite.c (get_composition_id, find_composition)
2073 (run_composition_function, update_compositions)
2074 (compose_text, composition_gstring_put_cache)
2075 (composition_gstring_p, composition_gstring_width)
2076 (fill_gstring_header, fill_gstring_body, autocmp_chars)
2077 (composition_compute_stop_pos, composition_reseat_it)
2078 (composition_update_it, struct position_record)
2079 (find_automatic_composition, composition_adjust_point)
2080 (Fcomposition_get_gstring, Ffind_composition_internal):
2081 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2082 (update_compositions):
2083 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2084 * composite.h: Adjust decls to match defn changes elsewhere.
2085 (struct composition):
2086 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2087 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
2088 Do not attempt to compute the address of the object just before a
2089 buffer; this is not portable.
2090 (Faref, Faset):
2091 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2092 (Faset): Use int, not EMACS_INT, where int is wide enough.
2093 (Fstring_to_number): Don't assume fixnums fit in int.
2094 (Frem): Don't assume arg is nonnegative.
2095 * dbusbind.c (xd_append_arg): Check for integers out of range.
2096 (Fdbus_call_method): Don't overflow the timeout int.
42b2a986 2097 (extract_signed, extract_unsigned): New functions.
243e0530
PE
2098 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
2099 (xd_get_connection_references): Return ptrdiff_t, not int.
2100 All uses changed.
2101 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
2102 (xd_read_message_1):
2103 Use int, not unsigned, where the dbus API uses int.
2104 (Fdbus_message_internal): Don't overflow mtype.
2105 (syms_of_dbusbind): Allocate right-sized buffer for integers.
d311d28c
PE
2106 * dired.c (directory_files_internal, file_name_completion, scmp)
2107 (file_name_completion_stat):
2108 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2109 (file_name_completion): Don't overflow matchcount.
2110 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
2111 * dispextern.h: Adjust decls to match defn changes elsewhere.
2112 (struct text_pos, struct glyph, struct bidi_saved_info)
2113 (struct bidi_string_data, struct bidi_it, struct composition_it)
2114 (struct it):
2115 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2116 (struct display_pos, struct composition_it, struct it):
2117 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2118 * dispnew.c (increment_matrix_positions)
2119 (increment_row_positions, mode_line_string)
2120 (marginal_area_string):
2121 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
54e1617f 2122 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
d311d28c
PE
2123 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2124 (duration_to_sec_usec): New function, to check for overflow better.
2125 (Fsleep_for, sit_for): Use it.
2126 * doc.c (get_doc_string, store_function_docstring):
2127 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2128 (get_doc_string, Fsnarf_documentation):
2129 Use int, not EMACS_INT, where int is wide enough.
2130 (get_doc_string):
2131 Use SAFE_ALLOCA, not alloca.
2132 Check for overflow when converting EMACS_INT to off_t.
2133 * doprnt.c (doprnt):
2134 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2135 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
2136 Don't assume uid_t fits into fixnum.
2137 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
2138 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
2139 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
2140 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
2141 (general_insert_function)
2142 (Finsert_char, make_buffer_string, make_buffer_string_both)
2143 (update_buffer_properties, Fbuffer_substring)
2144 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
2145 (Fsubst_char_in_region, check_translation)
2146 (Ftranslate_region_internal, save_restriction_restore, Fformat)
2147 (transpose_markers, Ftranspose_regions):
2148 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2149 (clip_to_bounds): Move to lisp.h as an inline function).
2150 (Fconstrain_to_field): Don't assume integers are nonnegative.
2151 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
2152 (Fsubst_char_in_region, Fsave_restriction):
2153 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2154 (Femacs_pid): Don't assume pid_t fits into fixnum.
2155 (lo_time): Use int, not EMACS_INT, when int suffices.
2156 (lisp_time_argument): Check for usec out of range.
2157 (Fencode_time): Don't assume fixnum fits in int.
3f4eabd1
PE
2158 (Fuser_login_name, Fuser_full_name): Signal an error
2159 if a uid argument is out of range, rather than relying on
2160 undefined behavior.
c8d5c857
PE
2161 (Fformat_time_string): Remove now-unnecessary check.
2162 lisp_time_argument checks for out-of-range usec now.
243e0530 2163 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
d311d28c
PE
2164 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
2165 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
2166 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
2167 (init_cmdargs, Fdump_emacs):
2168 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2169 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
2170 the bottom (typically) 32 bits of the fixnum.
2171 * eval.c (specpdl_size, call_debugger):
2172 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2173 (when_entered_debugger, Fbacktrace_debug):
2174 Don't assume fixnum can fit in int.
2175 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
2176 the object just before a buffer; this is not portable.
2177 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
2178 (grow_specpdl, unbind_to):
2179 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2180 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
2181 (grow_specpdl): Simplify allocation by using xpalloc.
856bbc81 2182 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
d311d28c
PE
2183 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
2184 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
2185 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2186 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
2187 (a_write, e_write):
2188 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2189 (Fcopy_file, non_regular_nbytes, read_non_regular)
2190 (Finsert_file_contents):
2191 Use int, not EMACS_INT, where int is wide enough.
2192 (READ_BUF_SIZE): Verify that it fits in int.
2193 (Finsert_file_contents): Check that counts are in proper range,
2194 rather than assuming fixnums fit into ptrdiff_t etc.
2195 Don't assume fixnums fit into int.
125b3835 2196 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
5895d7b9
PE
2197 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
2198 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
d311d28c
PE
2199 (string_char_to_byte, string_byte_to_char)
2200 (string_make_multibyte, string_to_multibyte)
2201 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
2202 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
2203 (substring_both, Fdelete, internal_equal, Ffillarray)
2204 (Fclear_string, mapcar1)
2205 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
2206 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
2207 (larger_vector, make_hash_table, maybe_resize_hash_table)
2208 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
2209 (Fmaphash, secure_hash):
2210 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2211 (concat): Check for string index and length overflow.
2212 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
2213 (Frequire):
2214 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2215 (larger_vector): New API (vec, incr_min, size_max) replaces old
2216 one (vec, new_size, init). This catches size overflow.
2217 INIT was removed because it was always Qnil.
2218 All callers changed.
2219 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
2220 the upper bound on a hash table index size.
2221 (make_hash_table, maybe_resize_hash_table): Use it.
2222 (secure_hash): Computer start_byte and end_byte only after
2223 they're known to be in ptrdiff_t range.
2224 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
2225 (Ffont_get_glyphs, Ffont_at):
2226 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2227 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
2228 (Flist_fonts, Fopen_font):
2229 Don't assume fixnum can fit in int.
2230 (check_gstring): Don't assume index can fit in int.
2231 (font_match_p): Check that fixnum is a character, not a nonnegative
2232 fixnum, since the later code needs to stuff it into an int.
2233 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
2234 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
2235 conversion overflow issues.
2236 (Fopen_font): Check for integer out of range.
2237 (Ffont_get_glyphs): Don't assume index can fit in int.
2238 * font.h: Adjust decls to match defn changes elsewhere.
2239 * fontset.c (reorder_font_vector): Redo score calculation to avoid
2240 integer overflow.
2241 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
2242 printmax_t, where ptrdiff_t is wide enough.
2243 (Finternal_char_font):
2244 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2245 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
2246 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
2247 (Fset_frame_position, x_set_frame_parameters)
2248 (x_set_line_spacing, x_set_border_width)
2249 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
2250 Check that fixnums are in proper range for system types.
2251 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
2252 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2253 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
2254 Use SAFE_ALLOCA_LISP, not alloca.
2255 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
2256 intptr_t is wide enough.
2257 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
2258 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
2259 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
2260 Check for fixnum out of range.
2261 * ftfont.c (ftfont_list): Don't assume index fits in int.
2262 Check that fixnums are in proper range for system types.
2263 (ftfont_shape_by_flt):
2264 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
d311d28c
PE
2265 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
2266 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2267 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
2268 Check that fixnums are in proper range for system types.
2269 * gnutls.h: Adjust decls to match defn changes elsewhere.
2270 * gtkutil.c (xg_dialog_run):
2271 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2272 (update_frame_tool_bar):
2273 Check that fixnums are in proper range for system types.
2274 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
5895d7b9 2275 (lookup_image): Check that fixnums are in range for system types.
d311d28c
PE
2276 * indent.c (last_known_column, last_known_column_point):
2277 (current_column_bol_cache):
2278 (skip_invisible, current_column, check_display_width):
2279 (check_display_width, scan_for_column, current_column_1)
2280 (Findent_to, Fcurrent_indentation, position_indentation)
2281 (indented_beyond_p, Fmove_to_column, compute_motion):
2282 (Fcompute_motion, Fvertical_motion):
2283 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2284 (last_known_column_modified): Use EMACS_INT, not int.
2285 (check_display_width):
2286 (Fcompute_motion):
2287 Check that fixnums and floats are in proper range for system types.
2288 (compute_motion): Don't assume index or fixnum fits in int.
2289 (compute_motion, Fcompute_motion):
2290 Use int, not EMACS_INT, when it is wide enough.
2291 (vmotion): Omit local var start_hpos that is always 0; that way
2292 we don't need to worry about overflow in expressions involving it.
2293 * indent.h: Adjust decls to match defn changes elsewhere.
2294 (struct position):
2295 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2296 Use int, not EMACS_INT, where int is wide enough.
2297 Remove unused members ovstring_chars_done and tab_offset;
2298 all uses removed.
2299 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
2300 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
2301 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
2302 (make_gap, copy_text, insert, insert_and_inherit)
2303 (insert_before_markers, insert_before_markers_and_inherit)
2304 (insert_1, count_combining_before, count_combining_after)
2305 (insert_1_both, insert_from_string)
2306 (insert_from_string_before_markers, insert_from_string_1)
2307 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
2308 (adjust_after_replace, adjust_after_insert, replace_range)
2309 (replace_range_2, del_range, del_range_1, del_range_byte)
2310 (del_range_both, del_range_2, modify_region)
2311 (prepare_to_modify_buffer, signal_before_change)
2312 (signal_after_change, Fcombine_after_change_execute):
2313 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2314 * intervals.c (traverse_intervals, rotate_right, rotate_left)
2315 (balance_an_interval, split_interval_right, split_interval_left)
2316 (find_interval, next_interval, update_interval)
2317 (adjust_intervals_for_insertion, delete_node, delete_interval)
2318 (interval_deletion_adjustment, adjust_intervals_for_deletion)
2319 (static_offset_intervals, offset_intervals)
2320 (merge_interval_right, merge_interval_left, make_new_interval)
2321 (graft_intervals_into_buffer, temp_set_point_both)
2322 (temp_set_point, set_point, adjust_for_invis_intang)
2323 (set_point_both, move_if_not_intangible, get_property_and_range)
2324 (get_local_map, copy_intervals, copy_intervals_to_string)
2325 (compare_string_intervals, set_intervals_multibyte_1):
2326 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2327 * intervals.h: Adjust decls to match defn changes elsewhere.
2328 (struct interval):
2329 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2330 * keyboard.c (this_command_key_count, this_single_command_key_start)
2331 (before_command_key_count, before_command_echo_length, echo_now)
2332 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
2333 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
2334 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
2335 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
2336 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2337 (last_non_minibuf_size, last_point_position, echo_truncate)
2338 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
2339 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
2340 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
2341 (stuff_buffered_input):
2342 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2343 (last_auto_save, command_loop_1, read_char):
2344 Use EMACS_INT, not int, to avoid integer overflow.
2345 (record_char): Avoid overflow in total_keys computation.
2346 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
2347 * keyboard.h: Adjust decls to match defn changes elsewhere.
2348 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
2349 (Fkey_description, Fdescribe_vector, Flookup_key):
2350 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2351 (click_position): New function, to check that positions are in range.
2352 (Fcurrent_active_maps):
2353 (describe_command):
2354 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2355 (Faccessible_keymaps, Fkey_description):
2356 (preferred_sequence_p):
2357 Don't assume fixnum can fit into int.
2358 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
2359 Check for integer overflow in size calculations.
2360 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
2361 avoid mishandling large integers.
2362 * lisp.h: Adjust decls to match defn changes elsewhere.
2363 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
2364 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
2365 (struct Lisp_Marker):
2366 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2367 (clip_to_bounds): Now an inline function, moved here from editfns.c.
d311d28c
PE
2368 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
2369 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
2370 All callers changed.
2371 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
2372 Assume the arg has valid form, since it always does.
2373 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
2374 unsigned integer system type.
2375 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
2376 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
2377 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2378 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
2379 (duration_to_sec_usec): New decl.
2380 * lread.c (read_from_string_index, read_from_string_index_byte)
2381 (read_from_string_limit, readchar, unreadchar, openp)
2382 (read_internal_start, read1, oblookup):
2383 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2384 (Fload, readevalloop, Feval_buffer, Feval_region):
2385 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2386 (openp): Check for out-of-range argument to 'access'.
2387 (read1): Use int, not EMACS_INT, where int is wide enough.
2388 Don't assume fixnum fits into int.
6efdadfd 2389 Fix off-by-one error that can read outside a buffer.
1ab7b8ac
PE
2390 (read_filtered_event): Use duration_to_sec_usec
2391 to do proper overflow checking on durations.
d311d28c
PE
2392 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
2393 in size calculation.
2394 (Fexecute_kbd_macro):
2395 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2396 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
2397 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
2398 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
2399 (set_marker_both, set_marker_restricted_both, marker_position)
2400 (marker_byte_position, Fbuffer_has_markers_at):
2401 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2402 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
61b108cc 2403 * menu.c (ensure_menu_items): Rename from grow_menu_items.
d311d28c
PE
2404 It now merely ensures that the menu is large enough, without
2405 necessarily growing it, as this avoids some integer overflow issues.
2406 All callers changed.
2407 (keymap_panes, parse_single_submenu, Fx_popup_menu):
2408 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2409 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
2410 Use SAFE_ALLOCA_LISP, not alloca.
2411 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
2412 to EMACS_INT. Check that fixnums are in proper range for system types.
2413 * minibuf.c (minibuf_prompt_width, string_to_object)
2414 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
2415 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
2416 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2417 (get_minibuffer, read_minibuf_unwind):
2418 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2419 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
2420 this simplifies overflow checking. All callers changed.
2421 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
2422 (Ftest_completion):
2423 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2424 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
2425 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
2426 Check that fixnums are in proper range for system types.
2427 (Fx_create_frame, Fx_show_tip):
2428 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2429 * nsfont.m (ns_findfonts, nsfont_list_family):
2430 Don't assume fixnum fits in long.
2431 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
2432 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2433 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
2434 wide enough.
17fdb222 2435 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
d311d28c
PE
2436 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2437 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
2438 (PRINTDECLARE, PRINTPREPARE):
2439 (strout, print_string):
2440 (print, print_preprocess, print_check_string_charset_prop)
2441 (print_object):
2442 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2443 (PRINTDECLARE):
2444 (temp_output_buffer_setup, Fprin1_to_string, print_object):
2445 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2446 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
d311d28c 2447 (printchar, strout): Use xpalloc to catch size calculation overflow.
0fd11aa5 2448 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
d311d28c
PE
2449 (print_error_message): Use SAFE_ALLOCA, not alloca.
2450 (print_object): Use int, not EMACS_INT, where int is wide enough.
a8b7caa3
PE
2451 (print_depth, new_backquote_output, print_number_index):
2452 Use ptrdiff_t, not int, where int might not be wide enough.
d311d28c
PE
2453 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
2454 (Fset_process_window_size, Fformat_network_address)
2455 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
d44287d4 2456 (sigchld_handler):
d311d28c 2457 Check that fixnums are in proper range for system types.
d44287d4 2458 (Fsignal_process): Simplify by avoiding a goto.
d83cf4cc
PE
2459 Check for process-ids out of pid_t range rather than relying on
2460 undefined behavior.
e4d81efc 2461 (process_tick, update_tick): Use EMACS_INT, not int.
d311d28c
PE
2462 (Fformat_network_address, read_process_output, send_process)
2463 (Fprocess_send_region, status_notify):
2464 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2465 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
2466 (wait_reading_process_output, read_process_output, exec_sentinel):
2467 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2468 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
2469 (Faccept_process_output): Use duration_to_sec_usec to do proper
2470 overflow checking on durations.
dde14581
PE
2471 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
2472 Don't assume pid_t fits in int.
02481186
PE
2473 * process.h (struct Lisp_Process): Members tick and update_tick
2474 are now of type EMACS_INT, not int.
b62b53e8
PE
2475 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
2476 configured --with-wide-int.
d311d28c
PE
2477 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
2478 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
2479 * search.c (looking_at_1, string_match_1):
2480 (fast_string_match, fast_c_string_match_ignore_case)
2481 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
2482 (scan_newline, find_before_next_newline, search_command)
2483 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
2484 (set_search_regs, wordify):
2485 (Freplace_match):
2486 (Fmatch_data):
2487 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2488 (string_match_1, search_buffer, set_search_regs):
2489 (Fmatch_data):
2490 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2491 (wordify): Check for overflow in size calculation.
2492 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
2493 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
2494 Check that fixnums are in proper range for system types.
2495 * sound.c (struct sound_device)
2496 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
2497 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2498 (Fplay_sound_internal):
2499 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
eacd378d 2500 * syntax.c (struct lisp_parse_state, find_start_modiff)
d311d28c
PE
2501 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
2502 (Fparse_partial_sexp):
2503 Don't assume fixnums can fit in int.
2504 (struct lisp_parse_state, find_start_pos, find_start_value)
2505 (find_start_value_byte, find_start_begv)
2506 (update_syntax_table, char_quoted, dec_bytepos)
2507 (find_defun_start, prev_char_comend_first, back_comment):
2508 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
2509 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
2510 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2511 (Finternal_describe_syntax_value): Check that match_lisp is a
2512 character, not an integer, since the code stuffs it into int.
2513 (scan_words, scan_sexps_forward):
2514 Check that fixnums are in proper range for system types.
2515 (Fforward_word):
2516 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2517 (scan_sexps_forward):
2518 Use CHARACTERP, not INTEGERP, since the value must fit into int.
2519 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
2520 * syntax.h: Adjust decls to match defn changes elsewhere.
2521 (struct gl_state_s):
2522 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
e4ecdc9c
PE
2523 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
2524 MOST_POSITIVE_FIXNUM.
d311d28c
PE
2525 * sysdep.c (wait_for_termination_1, wait_for_termination)
2526 (interruptible_wait_for_termination, mkdir):
2527 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
2528 (emacs_read, emacs_write):
2529 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
225a2cff
PE
2530 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
2531 and double all fit in int.
d311d28c
PE
2532 * term.c (set_tty_color_mode):
2533 Check that fixnums are in proper range for system types.
2534 * termhooks.h (struct input_event):
2535 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2536 * textprop.c (validate_interval_range, interval_of)
2537 (Fadd_text_properties, set_text_properties_1)
2538 (Fremove_text_properties, Fremove_list_of_text_properties)
2539 (Ftext_property_any, Ftext_property_not_all)
2540 (copy_text_properties, text_property_list, extend_property_ranges)
2541 (verify_interval_modification):
2542 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2543 (Fnext_single_char_property_change)
2544 (Fprevious_single_char_property_change):
2545 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5895d7b9
PE
2546 (copy_text_properties):
2547 Check for integer overflow in index calculation.
d311d28c
PE
2548 * undo.c (last_boundary_position, record_point, record_insert)
2549 (record_delete, record_marker_adjustment, record_change)
2550 (record_property_change):
2551 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2552 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
2553 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2554 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
2555 (Fx_hide_tip, Fx_file_dialog):
2556 * w32menu.c (set_frame_menubar):
2557 Use ptrdiff_t, not int, for consistency with rest of code.
2558 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
2559 (select_window, Fdelete_other_windows_internal)
2560 (window_scroll_pixel_based, window_scroll_line_based)
2561 (Frecenter, Fset_window_configuration):
2562 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2563 (Fset_window_hscroll, run_window_configuration_change_hook)
2564 (set_window_buffer, temp_output_buffer_show, scroll_command)
5895d7b9 2565 (Fscroll_other_window, Frecenter):
d311d28c
PE
2566 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2567 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
2568 Don't assume fixnum fits in int.
2569 (Fset_window_scroll_bars):
2570 Check that fixnums are in proper range for system types.
2571 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
2572 (string_pos, c_string_pos, number_of_chars, init_iterator)
2573 (in_ellipses_for_invisible_text_p, init_from_display_pos)
2574 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
2575 (compute_display_string_end, handle_face_prop)
5895d7b9
PE
2576 (face_before_or_after_it_pos, handle_invisible_prop)
2577 (handle_display_prop, handle_display_spec, handle_single_display_spec)
d311d28c
PE
2578 (display_prop_intangible_p, string_buffer_position_lim)
2579 (string_buffer_position, handle_composition_prop, load_overlay_strings)
2580 (get_overlay_strings_1, get_overlay_strings)
2581 (iterate_out_of_display_property, forward_to_next_line_start)
2582 (back_to_previous_visible_line_start, reseat, reseat_to_string)
2583 (get_next_display_element, set_iterator_to_next)
2584 (get_visually_first_element, compute_stop_pos_backwards)
2585 (handle_stop_backwards, next_element_from_buffer)
2586 (move_it_in_display_line_to, move_it_in_display_line)
2587 (move_it_to, move_it_vertically_backward, move_it_by_lines)
2588 (add_to_log, message_dolog, message_log_check_duplicate)
2589 (message2, message2_nolog, message3, message3_nolog
2590 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
2591 (current_message_1, truncate_echo_area, truncate_message_1)
2592 (set_message, set_message_1, store_mode_line_noprop)
2593 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
2594 (text_outside_line_unchanged_p, check_point_in_composition)
2595 (reconsider_clip_changes)
2596 (redisplay_internal, set_cursor_from_row, try_scrolling)
2597 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
2598 (redisplay_window, find_last_unchanged_at_beg_row)
2599 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
2600 (trailing_whitespace_p, find_row_edges, display_line)
2601 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
2602 (display_mode_element, store_mode_line_string)
2603 (pint2str, pint2hrstr, decode_mode_spec)
2604 (display_count_lines, display_string, draw_glyphs)
2605 (x_produce_glyphs, x_insert_glyphs)
2606 (rows_from_pos_range, mouse_face_from_buffer_pos)
2607 (fast_find_string_pos, mouse_face_from_string_pos)
2608 (note_mode_line_or_margin_highlight, note_mouse_highlight):
2609 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2610 (safe_call, init_from_display_pos, handle_fontified_prop)
2611 (handle_single_display_spec, load_overlay_strings)
2612 (with_echo_area_buffer, setup_echo_area_for_printing)
2613 (display_echo_area, echo_area_display)
2614 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
2615 (update_tool_bar, hscroll_window_tree, redisplay_internal)
5895d7b9
PE
2616 (redisplay_window, dump_glyph_row, display_mode_line)
2617 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
43ad2e9a 2618 (handle_display_spec, display_prop_string_p):
d311d28c
PE
2619 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2620 (handle_single_display_spec, build_desired_tool_bar_string)
2621 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
2622 (get_specified_cursor_type):
2623 Check that fixnums are in proper range for system types.
2624 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
2625 (Flookup_image_map):
2626 Don't assume fixnums fit in int.
2627 (compare_overlay_entries):
2628 Avoid mishandling comparisons due to subtraction overflow.
2629 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
2630 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
2631 (handle_tool_bar_click):
2632 Use int, not unsigned, since we prefer signed and the signedness
2633 doesn't matter here.
2634 (get_next_display_element, next_element_from_display_vector):
2635 Use int, not EMACS_INT, when int is wide enough.
2636 (start_hourglass): Use duration_to_sec_usec to do proper
2637 overflow checking on durations.
2638 * xfaces.c (Fbitmap_spec_p):
2639 Check that fixnums are in proper range for system types.
2640 (compare_fonts_by_sort_order):
2641 Avoid mishandling comparisons due to subtraction overflow.
2642 (Fx_family_fonts, realize_basic_faces):
2643 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2644 (Fx_family_fonts):
2645 Don't assume fixnum fits in int.
2646 Use SAFE_ALLOCA_LISP, not alloca.
2647 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
2648 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
2649 (face_at_buffer_position, face_for_overlay_string)
2650 (face_at_string_position):
2651 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2652 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
2653 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
2654 (Fx_show_tip):
2655 Check that fixnums are in proper range for system types.
2656 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
2657 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
2658 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2659 (Fx_change_window_property): Don't assume fixnums fit in int.
2660 * xfont.c (xfont_chars_supported):
2661 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2662 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
2663 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
2664 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2665 * xml.c (parse_region):
2666 * xrdb.c (magic_file_p):
2667 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2668 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
2669 (x_get_local_selection, x_reply_selection_request)
2670 (x_handle_selection_request, wait_for_property_change):
2671 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2672 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
2673 short is wide enough.
2674 (x_send_client_event): Don't assume fixnum fits in int.
2675 * xterm.c (x_x_to_emacs_modifiers):
2676 Don't assume EMACS_INT overflows nicely into int.
2677 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
2678 may come from Lisp.
2679 (handle_one_xevent): NATNUMP can eval its arg twice.
2680 (x_connection_closed):
2681 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2682 * xterm.h: Adjust decls to match defn changes elsewhere.
2683 (struct scroll_bar): Use struct vectorlike_header
2684 rather than rolling our own approximation.
2685 (SCROLL_BAR_VEC_SIZE): Remove; not used.
2686
c6574eb5
GM
26872012-05-25 Glenn Morris <rgm@gnu.org>
2688
2689 * lisp.mk (lisp): Update for more files being compiled now.
2690
e8d32c7e
SM
26912012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
2692
48def666
SM
2693 * lread.c: Remove `read_pure' which makes no difference.
2694 (read_pure): Remove var.
2695 (unreadpure): Remove function.
2696 (readevalloop): Don't call read_list with -1 flag.
2697 (read1, read_vector): Don't test read_pure any more.
2698 (read_list): Simplify.
2699
e8d32c7e
SM
2700 * fileio.c, character.h: Minor style tweaks.
2701
4b2addb7
DA
27022012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
2703
2704 * window.h (clip_changed): Remove useless declaration.
2705
584461b2
JB
27062012-05-22 Juanma Barranquero <lekktu@gmail.com>
2707
2708 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
2709 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
2710
34374650
PE
27112012-05-22 Paul Eggert <eggert@cs.ucla.edu>
2712
2713 Remove src/m/*.
2714 This directory predates autoconf and is no longer needed nowadays.
2715 Move its few remaining bits of functionality to where they're needed.
2716 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
2717 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
2718 * m/template.h: Remove.
2719 * Makefile.in (M_FILE): Remove. All uses removed.
2720 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
2721 * lisp.h (USE_LSB_TAG):
2722 * mem-limits.h (EXCEEDS_LISP_PTR):
2723 Use VAL_MAX, not VALBITS, in #if.
2724 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
2725 (EMACS_UINT): Define unconditionally now.
2726 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
2727 (BITS_PER_EMACS_INT): New constants, replacing
2728 what used to be in config.h, but not useful in #if.
2729 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
2730 define them any more.
2731 (VAL_MAX): New macro.
2732 (VALMASK): Use it.
2733 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
2734 BITS_PER_EMACS_INT, in #if.
2735 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
2736 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
2737 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
2738 * s/ms-w32.h (DATA_START):
2739 Move here from removed file m/intel386.h.
2740 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
2741 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
2742
261cb4bb
PE
27432012-05-21 Paul Eggert <eggert@cs.ucla.edu>
2744
2745 Assume C89 or later.
2746 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
2747 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
2748 (xrealloc):
2749 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
2750 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
2751 * textprop.c, tparam.c (NULL): Remove.
2752 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
2753 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
2754 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
2755 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
2756 * xterm.c (input_signal_count): Assume volatile works.
2757
ff23cd9f
KB
27582012-05-21 Ken Brown <kbrown@cornell.edu>
2759
2760 * xgselect.c (xg_select): Fix first argument in call to 'select'
2761 (bug#11508).
2762
1b170bc6
KB
27632012-05-20 Ken Brown <kbrown@cornell.edu>
2764
2765 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
bd7239f5 2766 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
1b170bc6 2767
b2f4d39f
KB
27682012-05-19 Ken Brown <kbrown@cornell.edu>
2769
2770 * xfns.c (x_in_use): Remove `static' qualifier.
2771 * xterm.h (x_in_use): Declare.
2772 * xgselect.c: Include xterm.h.
2773 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
2774 and `display_arg' (bug#9754).
2775
003fdae2
PE
27762012-05-19 Paul Eggert <eggert@cs.ucla.edu>
2777
9232a6d9
PE
2778 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
2779
003fdae2
PE
2780 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
2781 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
2782
784b56e2
EZ
27832012-05-18 Eli Zaretskii <eliz@gnu.org>
2784
2785 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
2786
2787 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
2788 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c
2789
2790 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
2791 reference to image_cache->refcount.
2792 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
2793
a0a79cde
JL
27942012-05-17 Juri Linkov <juri@jurta.org>
2795
2796 * search.c (Fword_search_regexp, Fword_search_backward)
2797 (Fword_search_forward, Fword_search_backward_lax)
2798 (Fword_search_forward_lax): Move functions to isearch.el
2799 (bug#10145, bug#11381).
2800
b0572523
PE
28012012-05-16 Paul Eggert <eggert@cs.ucla.edu>
2802
2803 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
2804
9660f5fc
SM
28052012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
2806
2807 * lread.c (init_obarray): Declare Qt and Qnil as special.
2808
4374de83
GM
28092012-05-14 Glenn Morris <rgm@gnu.org>
2810
2811 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
985584ae 2812 Put "libexec" before "bin", for the sake of init_callproc_1.
4374de83 2813
dc44c39a
PE
28142012-05-14 Paul Eggert <eggert@cs.ucla.edu>
2815
078c97cb
PE
2816 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
2817
dc44c39a
PE
2818 * unexaix.c: Port to more-recent AIX compilers.
2819 (report_error, report_error_1, make_hdr, copy_sym)
2820 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
2821 Make arguments const char *, not char *, to avoid violations of C
2822 standard and to fix some AIX warnings reported by Gilles Pion.
2823
e18afed7 28242012-05-14 Eli Zaretskii <eliz@gnu.org>
ac268e67
EZ
2825
2826 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
2827 already have overlays loaded.
2828 (handle_single_display_spec): Before returning without displaying
2829 fringe bitmap, synchronize the bidi iterator with the main display
2830 iterator, by calling iterate_out_of_display_property.
2831 (iterate_out_of_display_property): Detect buffer iteration by
2832 testing that it->string is a Lisp string.
2833 (get_next_display_element): When the current object is exhausted,
2834 and there's something on it->stack, call set_iterator_to_next to
2835 proceed with what's on the stack, instead of returning zero.
2836 (set_iterator_to_next): If called at the end of a Lisp string,
2837 proceed to consider_string_end without incrementing string
2838 position. Don't increment display vector index past the end of
2839 the display vector. (Bug#11417)
c8fb9dc6
EZ
2840 (pos_visible_p): Don't report a position visible when move_it_to
2841 stopped at the last line of window, which happens to be scanned
2842 backwards by the bidi iteration. (Bug#11464)
ac268e67 2843
e18afed7 28442012-05-14 Eli Zaretskii <eliz@gnu.org>
82f9b393
EZ
2845
2846 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
2847 and right-margin display specs even if the spec is invalid or we
61b108cc
SM
2848 are on a TTY, and thus unable to display on the fringes.
2849 That's because the text with the property will not be displayed anyway,
82f9b393
EZ
2850 so we need to signal to the caller that this is a "replacing"
2851 display spec. This fixes display when the spec is invalid or we
2852 are on a TTY.
2853
e18afed7 28542012-05-14 Paul Eggert <eggert@cs.ucla.edu>
297834cd
PE
2855
2856 * unexaix.c (make_hdr): Fix typo in prototype.
2857 This bug broke the build on AIX. Problem reported by Gilles Pion.
2858
9d0a235a
MA
28592012-05-14 Michael Albinus <michael.albinus@gmx.de>
2860
2861 * keyboard.c (kbd_buffer_get_event): Read special events also in
2862 batch mode. (Bug#11415)
2863
9e6b06ed
GM
28642012-05-12 Glenn Morris <rgm@gnu.org>
2865
2866 * ns.mk: Update for ns_appbindir no longer having trailing "/".
2867
c1a1d7a3
EZ
28682012-05-12 Eli Zaretskii <eliz@gnu.org>
2869
2870 * lisp.mk (lisp): Add newcomment.elc.
2871
3fe7cdc8
GM
28722012-05-12 Glenn Morris <rgm@gnu.org>
2873
2874 * Makefile.in (MKDIR_P): New, set by configure.
2875 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
2876
53f7d2c0
PE
28772012-05-11 Paul Eggert <eggert@cs.ucla.edu>
2878
2879 Remove unused function hourglass_started.
2880 * dispextern.h (hourglass_started):
2881 * w32fns.c (hourglass_started):
2882 * xdisp.c (hourglass_started): Remove.
2883
75aafb17
JB
28842012-05-10 Juanma Barranquero <lekktu@gmail.com>
2885
2886 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
2887 Update dependencies.
2888
12959e8e
PE
28892012-05-10 Paul Eggert <eggert@cs.ucla.edu>
2890
97107e2e
PE
2891 * xgselect.c (xg_select): Put maxfds+1 into a var.
2892 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
2893
12959e8e
PE
2894 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
2895
836d29b3
DA
28962012-05-10 Dave Abrahams <dave@boostpro.com>
2897
2898 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
2899 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
2900
5cb67954
MA
29012012-05-09 Michael Albinus <michael.albinus@gmx.de>
2902
2903 * dbusbind.c (xd_registered_buses): New internal Lisp object.
2904 Rename all occurences of Vdbus_registered_buses to xd_registered_buses.
2905 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
2906 Initialize xd_registered_buses.
2907
3478ec45
PE
29082012-05-09 Paul Eggert <eggert@cs.ucla.edu>
2909
b263a6b0
PE
2910 Untag more efficiently if USE_LSB_TAG.
2911 This is based on a proposal by YAMAMOTO Mitsuharu in
2912 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
2913 For an admittedly artificial (nth 8000 longlist) benchmark on
2914 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
2915 Emacs's overall text size by 1%.
2916 * lisp.h (XUNTAG): New macro.
2917 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
2918 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
2919 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
2920 * eval.c (Fautoload):
2921 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
2922 * frame.h (XFRAME): Use XUNTAG.
2923
3478ec45
PE
2924 Port recent dbusbind.c changes to 32-bit --with-wide-int.
2925 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
2926 Remove unportable assumptions about print widths of types like
2927 dbus_uint32_t.
2928 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
2929 intptr_t when converting between pointer and integer, to avoid GCC
2930 warnings about wrong width.
2931
666b903b 29322012-05-09 Eli Zaretskii <eliz@gnu.org>
0d887c7d
EZ
2933
2934 * w32proc.c (new_child): Force Windows to reserve only 64KB of
2935 stack for each reader_thread, instead of defaulting to 8MB
2936 determined by the linker. This avoids failures in creating
2937 subprocesses on Windows 7, see the discussion in this thread:
2938 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
2939
b120cc17
JC
29402012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
2941
2942 Fix up display of the *Minibuf-0* buffer in the mini window.
2943 * keyboard.c (read_char): Don't clear the echo area if there's no
2944 message to clear.
2945 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
2fed2689 2946 contents of *Minibuf-0*) if there's no message displayed in its stead.
b120cc17 2947
9a4b36f8
MA
29482012-05-07 Michael Albinus <michael.albinus@gmx.de>
2949
2950 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
2951 batch mode.
2952
e5f9458f
CY
29532012-05-06 Chong Yidong <cyd@gnu.org>
2954
2955 * lisp.mk (lisp): Update.
2956
eceeb5fc 29572012-05-05 Jim Meyering <meyering@redhat.com>
bf98199c
JM
2958
2959 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
2960
71873e2b
SM
29612012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
2962
2963 * data.c (PUT_ERROR): New macro.
2964 (syms_of_data): Use it. Add new error type `user-error'.
2965 * undo.c (user_error): New function.
2966 (Fprimitive_undo): Use it.
2967 * print.c (print_error_message): Adjust print style for `user-error'.
2968 * keyboard.c (user_error): New function.
2969 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
2970
ab0fa4e4
PE
29712012-05-03 Paul Eggert <eggert@cs.ucla.edu>
2972
2973 Do not limit current-time-string to years 1000..9999.
2974 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
2975 (Fcurrent_time_string): Support any year that is supported by the
2976 underlying localtime representation. Don't use asctime, as it
2977 has undefined behavior for years outside the range -999..9999.
2978
7ed806a7
PE
29792012-05-02 Paul Eggert <eggert@cs.ucla.edu>
2980
2981 Fix race conditions involving setenv, gmtime, localtime, asctime.
2982 Without this fix, interrupts could mess up code that uses these
2983 nonreentrant functions, since setting TZ invalidates existing
2984 tm_zone or tzname values, and since most of these functions return
2985 pointers to static storage.
2986 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
2987 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
2988 Grow the critical sections to include not just invoking
2989 localtime/gmtime, but also accessing these functions' results
2990 including their tm_zone values if any, and any related TZ setting.
2991 (format_time_string): Last arg is now struct tm *, not struct tm **,
71873e2b
SM
2992 so that the struct tm is saved in the critical section.
2993 All callers changed. Simplify allocation of initial buffer, partly
7ed806a7
PE
2994 motivated by the fact that memory allocation needs to be outside
2995 the critical section.
2996
0c16dfed
DA
29972012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
2998
2999 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
3000 with RESET_INTERVAL.
3001
3002 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
3003 Remove duplicated buffer name initialization.
3004
3f83ace8
JM
30052012-05-02 Jim Meyering <jim@meyering.net>
3006
3007 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
3008
c7b8541e
JM
3009 * xfns.c (x_window): Use xstrdup (Bug#11375).
3010
90207a15 30112012-05-02 Eli Zaretskii <eliz@gnu.org>
2fa85638
EZ
3012
3013 * xdisp.c (pos_visible_p): If already at a newline from the
3014 display string before the 'while' loop, don't walk back the glyphs
3015 from it3.glyph_row. Solves assertion violation when the display
3016 string begins with a newline (egg.el). (Bug#11367)
3017
b593d6a9
AH
30182012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
3019
3020 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
3021 Move to simple.el.
3022
4737362e
GM
30232012-05-01 Glenn Morris <rgm@gnu.org>
3024
99cf43f9
GM
3025 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
3026 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
3027 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
3028 All were removed before 23.1.
3029
9311dcff
GM
3030 * dispnew.c: Remove HAVE_LIBNCURSES test;
3031 it is always true on relevant platforms.
3032
4d5c6349
GM
3033 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
3034 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
3035
4737362e
GM
3036 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
3037
74dd3a6b
AS
30382012-04-30 Andreas Schwab <schwab@linux-m68k.org>
3039
3040 * .gdbinit (xpr): Remove checks for no longer existing misc types.
3041 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
3042 Remove.
3043
13c379ee
PE
30442012-04-28 Paul Eggert <eggert@cs.ucla.edu>
3045
3046 Do not avoid creating empty evaporating overlays (Bug#9642).
3047 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
3048 That is, do not delete an evaporating overlay if it becomes
3049 empty after its bounds are adjusted to fit within its buffer.
3050 This fix caused other problems, and I'm reverting it until we get
3051 to the bottom of them.
3052
a8e7d6d7 30532012-04-27 Chong Yidong <cyd@gnu.org>
9be2fd9b
CY
3054
3055 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
3056
a8e7d6d7 30572012-04-27 Eli Zaretskii <eliz@gnu.org>
f0ee99a0
EZ
3058
3059 * xdisp.c (pos_visible_p): If the window start position is beyond
3060 ZV, start the display from buffer beginning. Prevents assertion
3061 violation in init_iterator when the minibuffer window is scrolled
3062 via the scroll bar.
3063
3064 * window.c (window_scroll_pixel_based): Likewise.
3065
a8e7d6d7 30662012-04-27 Chong Yidong <cyd@gnu.org>
9ec7751f
CY
3067
3068 * keymap.c (where_is_internal): Doc fix (Bug#10872).
3069
a8e7d6d7 30702012-04-27 Glenn Morris <rgm@gnu.org>
24c51a09
GM
3071
3072 * fileio.c (Fcopy_file, Fset_file_selinux_context):
3073 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
3074
a8e7d6d7 30752012-04-27 Eli Zaretskii <eliz@gnu.org>
73055685 3076
b593d6a9
AH
3077 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
3078 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
73055685 3079
1c6900d9
EZ
30802012-04-26 Eli Zaretskii <eliz@gnu.org>
3081
4c3fa1d9
EZ
3082 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
3083 display element, check also the underlying string or buffer
3084 character. (Bug#11341)
3085
1c6900d9
EZ
3086 * w32menu.c: Include w32heap.h.
3087 (add_menu_item): If the call to AppendMenuW (via
3088 unicode_append_menu) fails, disable Unicode menus only if we are
3089 running on Windows 9X/Me.
3090
42bf8205
AS
30912012-04-24 Andreas Schwab <schwab@linux-m68k.org>
3092
3093 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
3094 (xgetint): Add missing shift for LSB tags.
3095
b1bac16e
MR
30962012-04-24 Martin Rudalics <rudalics@gmx.at>
3097
3098 * keyboard.c (read_char): Don't wipe echo area for select window
3099 events: These might get delayed via `mouse-autoselect-window'
3100 (Bug#11304).
3101
d69621cc
JB
31022012-04-24 Juanma Barranquero <lekktu@gmail.com>
3103
3104 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
3105 manipulation of :loaded-from data.
3106
02fd101b
JB
31072012-04-23 Juanma Barranquero <lekktu@gmail.com>
3108
3109 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
3110 now a cons (bug#11311).
3111
888bec30
PE
31122012-04-23 Paul Eggert <eggert@cs.ucla.edu>
3113
89a438bd
PE
3114 Do not create empty overlays with the evaporate property (Bug#9642).
3115 * buffer.c (Fmove_overlay): Delete an evaporating overlay
3116 if it becomes empty after its bounds are adjusted to fit within
3117 its buffer. Without this fix, in a nonempty buffer (let ((o
3118 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
3119 yields an empty overlay that has the evaporate property, which is
3120 not supposed to happen.
3121
1068fe4d
PE
3122 Fix minor GTK3 problems found by static checking.
3123 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
3124 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
3125 (struct _EmacsFixedClass, emacs_fixed_get_type):
3126 Move decls here from emacsgtkfixed.h, since they needn't be public.
3127 (emacs_fixed_get_type): Now static.
3128 (emacs_fixed_class_init): Omit unused local.
3129 (emacs_fixed_child_type): Remove; unused.
3130 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
3131 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
3132 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
3133 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
3134 (EMACS_FIXED_GET_CLASS): Remove; unused.
3135 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
3136
888bec30
PE
3137 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
3138 Problem reported by Juanma Barranquero for Windows -Wunused-function.
3139
de85e130
PE
31402012-04-22 Paul Eggert <eggert@cs.ucla.edu>
3141
d0baac98 3142 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
bd7239f5 3143 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
d0baac98
PE
3144 (__malloc_size_t, __malloc_ptrdiff_t):
3145 Remove. All uses removed, replaced by the definiens if needed,
3146 since we can assume C89 or better now.
3147 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
3148 (protect_malloc_state, align, get_contiguous_space)
3149 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
3150 (malloc_atfork_handler_child, malloc_enable_thread)
3151 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
3152 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
3153 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
3154 (special_realloc, _realloc_internal_nolock, _realloc_internal)
3155 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
3156 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
3157 Define using prototypes, not old style.
3158 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
3159 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
3160 (align): Don't assume that signed integer overflow wraps around.
3161 Omit unused local var.
3162 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
3163 (_free_internal_nolock, memalign, mallochook, reallochook):
3164 Omit no-longer-needed casts.
3165 (valloc): Use getpagesize, not __getpagesize.
3166 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
3167 (struct hdr): The 'magic' member is now size_t, not unsigned long.
3168
de85e130
PE
3169 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
3170
dcbf5805
MA
31712012-04-22 Michael Albinus <michael.albinus@gmx.de>
3172
3173 Move functions from C to Lisp. Make non-blocking method calls
3174 the default. Implement further D-Bus standard interfaces.
3175
3176 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
3177 (QCdbus_request_name_allow_replacement)
3178 (QCdbus_request_name_replace_existing)
3179 (QCdbus_request_name_do_not_queue)
3180 (QCdbus_request_name_reply_primary_owner)
3181 (QCdbus_request_name_reply_in_queue)
3182 (QCdbus_request_name_reply_exists)
3183 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
3184 (QCdbus_registered_serial, QCdbus_registered_method)
3185 (QCdbus_registered_signal): New Lisp objects.
3186 (XD_DEBUG_MESSAGE): Use sizeof.
3187 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
3188 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
3189 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
3190 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
3191 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
3192 (xd_signature, xd_append_arg): Allow float for integer types.
3193 (xd_get_connection_references): New function.
b593d6a9
AH
3194 (xd_get_connection_address): Rename from xd_initialize.
3195 Return cached address.
dcbf5805
MA
3196 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
3197 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
3198 level.
3199 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
9a4b36f8 3200 Return number of refcounts.
dcbf5805
MA
3201 (Fdbus_get_unique_name): Make stronger parameter check.
3202 (Fdbus_message_internal): New defun.
3203 (Fdbus_call_method, Fdbus_call_method_asynchronously)
3204 (Fdbus_method_return_internal, Fdbus_method_error_internal)
3205 (Fdbus_send_signal, Fdbus_register_service)
3206 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
3207 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
3208 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
3209 (Vdbus_compiled_version, Vdbus_runtime_version)
3210 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
3211 (Vdbus_message_type_method_return, Vdbus_message_type_error)
3212 (Vdbus_message_type_signal): New defvars.
b593d6a9
AH
3213 (Vdbus_registered_buses, Vdbus_registered_objects_table):
3214 Adapt docstring.
dcbf5805 3215
52828e02
PE
32162012-04-22 Paul Eggert <eggert@cs.ucla.edu>
3217
da05bc4c
PE
3218 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
3219 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
3220 Do not assume ptrdiff_t is the same width as 'int'.
3221
52828e02
PE
3222 * alloc.c: Handle unusual debugging option combinations.
3223 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
3224 since the two debugging options are incompatible.
3225 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
3226 is defined.
3227 (mem_init, mem_insert, mem_insert_fixup):
3228 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
3229 (NEED_MEM_INSERT): Remove; no longer needed.
3230
f01769f9
LL
32312012-04-22 Leo Liu <sdl.web@gmail.com>
3232
3233 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
3234
5790543d
PE
32352012-04-22 Paul Eggert <eggert@cs.ucla.edu>
3236
3237 * sysdep.c [__FreeBSD__]: Minor cleanups.
3238 (list_system_processes, system_process_attributes) [__FreeBSD__]:
3239 Use Emacs indenting style more consistently. Avoid some casts.
3240 Use 'double' consistently rather than mixing 'float' and 'double'.
3241
b91b7e4d
EW
32422012-04-21 Eduard Wiebe <usenet@pusto.de>
3243
b593d6a9
AH
3244 * sysdep.c (list_system_processes, system_process_attributes):
3245 Add implementation for FreeBSD (Bug#5243).
b91b7e4d 3246
6114eb15
AS
32472012-04-21 Andreas Schwab <schwab@linux-m68k.org>
3248
3249 * lisp.mk (lisp): Update.
3250
2f38dff7
PE
32512012-04-20 Paul Eggert <eggert@cs.ucla.edu>
3252
3253 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
3254 It is never used otherwise.
3255
4ae29f89
SM
32562012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
3257
3258 * print.c (print_preprocess): Only check print_depth if print-circle
3259 is nil.
3260 (print_object): Check for cycles even when print-circle is nil and
3261 print-gensym is t, but only check print_depth if print-circle is nil.
3262
f30d612a
CY
32632012-04-20 Chong Yidong <cyd@gnu.org>
3264
3265 * process.c (wait_reading_process_output): If EIO occurs on a pty,
3266 set the status to "failed" and ensure that sentinel is run.
3267
c07a4c0b 32682012-04-20 Glenn Morris <rgm@gnu.org>
016a35df
GM
3269
3270 * process.c (Fset_process_inherit_coding_system_flag)
3271 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
4373fd43 3272 (Fmake_network_process, Fmake_serial_process): Doc fix.
016a35df 3273
c07a4c0b 32742012-04-20 Eli Zaretskii <eliz@gnu.org>
20a68157
EZ
3275
3276 * xdisp.c (string_buffer_position_lim): Limit starting position to
3277 BEGV.
3278 (set_cursor_from_row): If called for a mode-line or header-line
3279 row, return zero immediately.
3280 (try_cursor_movement): If inside continuation line, don't back up
4ae29f89
SM
3281 farther than the first row after the header line, if any.
3282 Don't consider the header-line row as "partially visible", even if
20a68157
EZ
3283 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
3284
c07a4c0b 32852012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 3286
4ae29f89
SM
3287 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
3288 (bug#11238).
ad3a2b41 3289
c07a4c0b 32902012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
6c94c34f 32912012-04-18 Paul Eggert <eggert@cs.ucla.edu>
ae6e112d
PE
3292
3293 configure: new option --enable-gcc-warnings (Bug#11207)
3294 * Makefile.in (C_WARNINGS_SWITCH): Remove.
3295 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
3296 (ALL_CFLAGS): Use new macros rather than old.
3297 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
3298 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
3299 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
3300 -Wunused-result, -Wunused-variable. This should go away once
3301 the Emacs and Gnulib regex code is merged.
3302 (xmalloc, xrealloc): Now static.
3303
aba027e8
PE
33042012-04-17 Paul Eggert <eggert@cs.ucla.edu>
3305
3306 * dired.c (Fsystem_groups): Remove unused local.
3307
e5a36063
GM
33082012-04-17 Glenn Morris <rgm@gnu.org>
3309
3310 * dired.c (Fsystem_users): Doc fix.
3311
316411f0
DA
33122012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
3313
3314 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
3315 (syms_of_dired): Add them.
3316
9426aba4
PE
33172012-04-16 Paul Eggert <eggert@cs.ucla.edu>
3318
b62a57be
PE
3319 Fix minor alloc.c problems found by static checking.
3320 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
3321 New extern decls, to avoid calling undeclared functions.
3322 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
3323 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
3324 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
3325 (NEED_MEM_INSERT): New macro.
3326 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
4b5afbb0 3327 Remove one incorrect comment and fix another.
b62a57be 3328
3539f31f
PE
3329 Fix minor ralloc.c problems found by static checking.
3330 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
3331 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
3332 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
3333 (r_alloc_sbrk): Now static.
3334
a041960a
PE
3335 Improve ralloc.c interface checking.
3336 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
3337 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
3338 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
3339 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
3340 [REL_ALLOC]: ... to here, to check interface.
3341 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
3342 Remove decls. This fixes an "It stinks!".
3343
9426aba4
PE
3344 * alloc.c (which_symbols): Fix alignment issue / type clash.
3345
d55c12ed
AS
33462012-04-15 Andreas Schwab <schwab@linux-m68k.org>
3347
3348 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
3349 (struct Lisp_Misc_Any): Likewise.
3350 (struct Lisp_Free): Likewise.
3351 * alloc.c (union aligned_Lisp_Symbol): Define.
3352 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
3353 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
3354 (union aligned_Lisp_Misc): Define.
3355 (MARKER_BLOCK_SIZE, struct marker_block): Use union
3356 aligned_Lisp_Misc instead of union Lisp_Misc.
4ae29f89 3357 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
d55c12ed 3358
b948ce8b
PE
33592012-04-14 Paul Eggert <eggert@cs.ucla.edu>
3360
3361 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
3362 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
3363 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
3364 * s/netbsd.h, s/sol2-6.h:
3365 Remove definition of GC_MARK_STACK, since the default now works.
3366 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
3367 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
3368 no longer the default.
3369 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
3370
35dc09a1 33712012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 3372
35dc09a1
GM
3373 * lread.c (lisp_file_lexically_bound_p):
3374 Fix hang at ";-*-\n" (bug#11238).
ad3a2b41 3375
35dc09a1
GM
33762012-04-14 Eli Zaretskii <eliz@gnu.org>
3377
3378 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
3379 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
3380
33812012-04-14 Jan Djärv <jan.h.d@swipnet.se>
3382
3383 * nsterm.m (constrainFrameRect): Always constrain when there is only
3384 one screen (Bug#10962).
3385
bcd86815
KB
33862012-04-13 Ken Brown <kbrown@cornell.edu>
3387
3388 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
3389
c25df26e
RT
33902012-04-13 Reuben Thomas <rrt@sc3d.org>
3391
3392 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
3393
0fc59f1e
DC
33942012-04-11 Daniel Colascione <dancol@dancol.org>
3395
3396 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
3397 against is gone. It's better to use vfork now so that when Cygwin
3398 gains a new, working vfork, we use it automatically (bug#10398).
3399
de8c03dc
SM
34002012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
3401
3402 * window.c (save_window_save): Obey window-point-insertion-type.
3403
2f097256
GM
34042012-04-11 Glenn Morris <rgm@gnu.org>
3405
3406 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
3407
453b951e
SM
34082012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
3409
3410 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
3411
75f1671a 34122012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
6bbef4e5
JC
3413
3414 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
3415 (force_quit_count): New var.
3416 (handle_interrupt): Use it.
3417
2a8ce227
JB
34182012-04-10 Juanma Barranquero <lekktu@gmail.com>
3419
3420 * w32.c (w32_delayed_load): Record the full path of the library
3421 being loaded (bug#10424).
3422
935396c0
GM
34232012-04-09 Glenn Morris <rgm@gnu.org>
3424
05920a43
GM
3425 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
3426 not just in the obarray, before snarfing them. (Bug#11036)
3427
935396c0
GM
3428 * Makefile.in ($(leimdir)/leim-list.el):
3429 Pass EMACS rather than BUILT_EMACS.
3430
a18ecafa
TZ
34312012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
3432
3433 * process.c (make_process):
3434 * process.h: Add integer `gnutls_handshakes_tried' member to
3435 process struct.
3436
6bbef4e5
JC
3437 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
3438 Add convenience `GNUTLS_LOG2i' macro.
a18ecafa
TZ
3439
3440 * gnutls.c (gnutls_log_function2i): Convenience log function.
3441 (emacs_gnutls_read): Use new log functions,
3442 `gnutls_handshakes_tried' process member, and
3443 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
3444 attempts per process (connection).
3445
b4d3bc10
CY
34462012-04-09 Chong Yidong <cyd@gnu.org>
3447
3448 * eval.c (Fuser_variable_p, user_variable_p_eh)
3449 (lisp_indirect_variable): Functions deleted.
3450 (Fdefvar): Caller changed.
3451
3452 * callint.c (Finteractive, Fcall_interactively):
3453 * minibuf.c (Fread_variable): Callers changed.
3454
70f4d973
EZ
34552012-04-09 Eli Zaretskii <eliz@gnu.org>
3456
3457 * xdisp.c (set_cursor_from_row): If the display string appears in
3458 the buffer at position that is closer to point than the position
3459 after the display string, display the cursor on the first glyph of
3460 the display string. Fixes cursor display when a 'display' text
3461 property immediately follows invisible text. (Bug#11094)
3462
cb3c2e3e
PE
34632012-04-09 Paul Eggert <eggert@cs.ucla.edu>
3464
3465 composite.c: use 'double' consistently
3466 * composite.c (get_composition_id): Use 'double' consistently
3467 instead of converting 'float' to 'double' and vice versa; this is
3468 easier to understand and avoids a GCC warning.
3469
fd06db5d
GM
34702012-04-09 Glenn Morris <rgm@gnu.org>
3471
50fe702a
GM
3472 * Makefile.in: Generate leim-list with bootstrap-emacs, in
3473 preparation for dumping it with emacs. (Bug#4789)
3474 (leimdir): New variable.
3475 ($(leimdir)/leim-list.el): New rule.
3476 (emacs$(EXEEXT)): Depend on leim-list.el.
3477
fd06db5d
GM
3478 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
3479 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
3480 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
3481
55c131ee
AS
34822012-04-08 Andreas Schwab <schwab@linux-m68k.org>
3483
3484 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
3485 proper alignment.
3486
9209588f
JB
34872012-04-07 Juanma Barranquero <lekktu@gmail.com>
3488
3489 * xml.c (init_libxml2_functions) [WINDOWSNT]:
3490 Remove unused local variable.
3491
e3fb2efb
PE
34922012-04-07 Paul Eggert <eggert@cs.ucla.edu>
3493
3494 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
3495 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
3496 (mark_memory): Mark Lisp_Objects only if pointers might hide in
3497 objects, as mark_maybe_pointer will catch them otherwise.
3498 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
3499 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
3500
b5385551
PE
35012012-04-07 Paul Eggert <eggert@cs.ucla.edu>
3502
3503 Fix typo that broke non-Windows builds.
3504 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
3505
9078ead6
EZ
35062012-04-07 Eli Zaretskii <eliz@gnu.org>
3507
3508 Support building on MS-Windows with libxml2.
3509
3510 * makefile.w32-in (OBJ2): Add xml.$(O).
3511 (GLOBAL_SOURCES): Add xml.c.
3512 ($(BLD)/xml.$(O)): New dependency list.
3513
3514 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
3515 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
3516 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
3517 [!WINDOWSNT]: New macros.
3518 (init_libxml2_functions, libxml2_loaded_p): New functions.
3519 (parse_region): Call fn_xmlCheckVersion instead of using the macro
3520 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
3521 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
3522 Calls xmlCleanupParser only if libxml2 was loaded (or statically
3523 linked in).
6bbef4e5
JC
3524 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
3525 Call init_libxml2_functions before calling libxml2 functions.
9078ead6
EZ
3526 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
3527
3528 * emacs.c: Don't include libxml/parser.h.
3529 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
3530 xmlCleanupParser directly.
3531
3532 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
3533
3811fdf3
EZ
35342012-04-07 Eli Zaretskii <eliz@gnu.org>
3535
3536 * indent.c (Fvertical_motion): If there is a display string at
3537 point, use it.vpos to compute how many lines to backtrack after
3538 move_it_to point. (Bug#11133)
3539
2f8e16b2
EZ
35402012-04-06 Eli Zaretskii <eliz@gnu.org>
3541
3542 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
3543 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
3544 about subtle differences between FETCH_CHAR* and STRING_CHAR*
3545 macros related to unification of CJK characters. For the details,
3546 see the discussion following the message here:
3547 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
3548
3d439cd1
CY
35492012-04-04 Chong Yidong <cyd@gnu.org>
3550
3551 * keyboard.c (Vdelayed_warnings_list): Doc fix.
3552
8bc53d00
EZ
35532012-04-01 Eli Zaretskii <eliz@gnu.org>
3554
3555 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
3556 instead of alloca. (Bug#11138)
3557
3b0512a3
AS
35582012-04-01 Andreas Schwab <schwab@linux-m68k.org>
3559
3560 * w32menu.c (is_simple_dialog): Properly check lisp types.
3561 (Bug#11141)
3562
8427ddd2
EZ
35632012-03-31 Eli Zaretskii <eliz@gnu.org>
3564
979022ef
EZ
3565 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
3566 position we get to after a call to move_it_to fails the
3567 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
3568 only if we wind up in a string from display property. (Bug#11063)
3569
a6b1c7cc
EZ
3570 * window.c (Fdelete_other_windows_internal): Invalidate the row
3571 and column information about mouse highlight, so that redisplay
3572 restores it after reallocating the glyph matrices. (Bug#7464)
3573
8427ddd2
EZ
3574 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
3575 string comes from a `display' text property, use the buffer
3576 position of that property as if we actually saw that position in
3577 the row's glyphs.
697ba24b
EZ
3578 (move_it_by_lines): Remove the assertion that
3579 "it->current_x == 0 && it->hpos == 0" which can be legitimately
3580 violated when there's a before-string at the beginning of a line.
3581 (Bug#11063)
8427ddd2 3582
65a0a738
EZ
35832012-03-30 Eli Zaretskii <eliz@gnu.org>
3584
3585 * xdisp.c (append_space_for_newline): If the default face was
3586 remapped, use the remapped face for the appended newline.
3587 (extend_face_to_end_of_line): Use the remapped default face for
3588 extending the face to the end of the line.
3589 (display_line): Call extend_face_to_end_of_line when the default
3590 face was remapped. (Bug#11068)
3591
581355cc
EZ
35922012-03-29 Eli Zaretskii <eliz@gnu.org>
3593
3594 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
3595
e8fc049f
SM
35962012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
3597
3598 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
3599
4fb9a543
GM
36002012-03-27 Glenn Morris <rgm@gnu.org>
3601
3602 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
3603 Doc fixes.
3604
679910f1
KH
36052012-03-26 Kenichi Handa <handa@m17n.org>
3606
3607 * dispextern.h (struct glyph): Fix previous change. Change the
3608 bit length of glyphless.ch to 25 (Bug#11082).
3609
90d49b7f
CY
36102012-03-26 Chong Yidong <cyd@gnu.org>
3611
3612 * keyboard.c (Vselection_inhibit_update_commands): New variable.
3613 (command_loop_1): Use it; inhibit selection update for
3614 handle-select-window too (Bug#8996).
3615
f514f6f0
FP
36162012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
3617
e8fc049f 3618 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
f514f6f0 3619
bf43fa51
KH
36202012-03-25 Kenichi Handa <handa@m17n.org>
3621
3622 * dispextern.h (struct glyph): Change the bit length of
3623 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
3624
8a0c01dd
EZ
36252012-03-24 Eli Zaretskii <eliz@gnu.org>
3626
3627 * s/ms-w32.h (tzname): Include time.h before redirecting to
3628 _tzname. Fixes the MSVC build. (Bug#9960)
3629
7d1c3a76
AS
36302012-03-24 Andreas Schwab <schwab@linux-m68k.org>
3631
8ed79523
AS
3632 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
3633 characters.
3634
7d1c3a76
AS
3635 * xterm.c (XTread_socket): Only modify handling_signal if
3636 !SYNC_INPUT. (Bug#11080)
3637
e99a9b8b
EZ
36382012-03-23 Eli Zaretskii <eliz@gnu.org>
3639
3640 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
3641 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
3642 when fetching a multibyte character consumes more bytes than
3643 CHAR_BYTES returns, due to unification of CJK characters in
3644 string_char. (Bug#11073)
3645
5063c0e1
TN
36462012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
3647
3648 * process.c (wait_reading_process_output): Handle pty disconnect
3649 by refraining from sending oneself a SIGCHLD (bug#10933).
3650
9f851fbd
CY
36512012-03-22 Chong Yidong <cyd@gnu.org>
3652
3653 * dispextern.h (struct it): New member string_from_prefix_prop_p.
3654
5063c0e1 3655 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
9f851fbd
CY
3656 Mark string as coming from a prefix property.
3657 (handle_face_prop): Use default face for prefix strings (Bug#4281).
3658 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
3659
fb5b8aca
CY
36602012-03-21 Chong Yidong <cyd@gnu.org>
3661
3662 * xfaces.c (Vface_remapping_alist): Doc fix.
3663
62356a1b
EZ
36642012-03-20 Eli Zaretskii <eliz@gnu.org>
3665
3666 * w32proc.c (Fw32_set_console_codepage)
5063c0e1
TN
3667 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
3668 Doc fixes.
62356a1b 3669
025de85b
CY
36702012-03-20 Chong Yidong <cyd@gnu.org>
3671
3672 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
3673 to reflect default non-nil value of redisplay-dont-pause.
3674
4827f94e
KH
36752012-03-19 Kenichi Handa <handa@m17n.org>
3676
3677 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
3678 it fit in a valid range (Bug#11003).
3679
e50a24a2
EZ
36802012-03-18 Eli Zaretskii <eliz@gnu.org>
3681
3682 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
3683 that is not from display property, accept the row as a "cursor
3684 row" if one of the string's character has a non-nil `cursor'
3685 property. Fixes cursor positioning when there are newlines in
3686 overlay strings, e.g. in icomplete.el. (Bug#11035)
3687
9af5ed87
PE
36882012-03-12 Paul Eggert <eggert@cs.ucla.edu>
3689
3690 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
3691
d1f55f16
CY
36922012-03-12 Chong Yidong <cyd@gnu.org>
3693
3694 * eval.c (inhibit_lisp_code): Rename from
3695 inhibit_window_configuration_change_hook; move from window.c.
3696
3697 * xfns.c (unwind_create_frame_1, Fx_create_frame):
3698 * window.c (run_window_configuration_change_hook)
3699 (syms_of_window): Callers changed.
3700
66c5eebd
CY
37012012-03-11 Chong Yidong <cyd@gnu.org>
3702
413df973
CY
3703 * keymap.c (Fkey_description): Doc fix (Bug#9700).
3704
66c5eebd
CY
3705 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
3706
1de11f56
CY
37072012-03-10 Chong Yidong <cyd@gnu.org>
3708
3709 * frame.c (other_visible_frames): Don't assume the selected frame
3710 is visible (Bug#10955).
3711
cae07000
SM
37122012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
3713
3714 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
3715
89c94350
JD
37162012-03-08 Jan Djärv <jan.h.d@swipnet.se>
3717
3718 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
3719 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
3720 zero (Bug#10954).
3721
999dd333
GM
37222012-03-03 Glenn Morris <rgm@gnu.org>
3723
01a6dcc8 3724 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
999dd333 3725
de0100f2
EZ
37262012-03-02 Eli Zaretskii <eliz@gnu.org>
3727
3728 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
3729 position past the first glyph_row that ends at ZV. (Bug#10902)
b8456c5c
EZ
3730 (redisplay_window, next_element_from_string): Fix typos in
3731 comments.
3e441275
EZ
3732 (redisplay_window): Pass to move_it_vertically the margin in
3733 pixels, not in screen lines.
de0100f2 3734
96a72ee9
GM
37352012-03-02 Glenn Morris <rgm@gnu.org>
3736
3737 * buffer.c (buffer-list-update-hook): Doc fix.
3738
312508d7
EZ
37392012-02-29 Eli Zaretskii <eliz@gnu.org>
3740
3741 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
3742 push_it before setting up the iterator for the first overlay
3743 string, even if we have an empty string loaded.
3744 (next_overlay_string): If there's an empty string on the iterator
3745 stack, pop the stack. (Bug#10903)
3746
27f3c637
PE
37472012-02-25 Paul Eggert <eggert@cs.ucla.edu>
3748
3749 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
3750 Suggested by Stefan Monnier in
3751 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
3752 * alloc.c (widen_to_Lisp_Object): New static function.
3753 (mark_memory): Also mark Lisp_Objects by fetching pointer words
3754 and widening them to Lisp_Objects. This would work even if
3755 USE_LSB_TAG is defined and wide integers are used, which might
3756 happen in a future version of Emacs.
3757
3c9dfce6
CY
37582012-02-25 Chong Yidong <cyd@gnu.org>
3759
fa74b241
CY
3760 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
3761 Doc fix.
3762
3c9dfce6
CY
3763 * xselect.c (Fx_selection_exists_p): Doc fix.
3764 (x_clipboard_manager_save_all): Print an informative message
3765 before saving to clipboard manager.
3766
9486df08
CY
37672012-02-24 Chong Yidong <cyd@gnu.org>
3768
3769 * keyboard.c (process_special_events): Handle all X selection
3770 requests in kbd_buffer, not just the next one (Bug#8869).
3771
f01d3321
CY
37722012-02-23 Chong Yidong <cyd@gnu.org>
3773
3774 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
3775 call when setting menu-bar-lines and tool-bar-lines parameters.
3776 (unwind_create_frame_1): New helper function.
3777
3778 * window.c (inhibit_window_configuration_change_hook): New var.
3779 (run_window_configuration_change_hook): Obey it.
b2e4ca7d 3780 (syms_of_window): Initialize it.
f01d3321 3781
86b847b6
CY
37822012-02-22 Chong Yidong <cyd@gnu.org>
3783
3784 * xterm.c (x_draw_image_relief): Add missing type check for
3785 Vtool_bar_button_margin (Bug#10743).
3786
a59225b1
CY
37872012-02-21 Chong Yidong <cyd@gnu.org>
3788
3789 * fileio.c (Vfile_name_handler_alist): Doc fix.
3790
3791 * buffer.c (Fget_file_buffer): Protect against invalid file
3792 handler return value.
3793
310f5bd4
PE
37942012-02-20 Paul Eggert <eggert@cs.ucla.edu>
3795
cb3a28cc
PE
3796 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
3797 when computing $valmask.
3798
310f5bd4
PE
3799 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
3800 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
3801 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
3802 It's useless in that case, and it can cause problems on hosts
3803 that allocate halves of EMACS_INT values separately.
3804 Reported by Dan Horák. Diagnosed by Andreas Schwab in
3805 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
3806 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
3807 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
3808 it avoids undefined behavior on hosts where shifting right by more
3809 than the word width has undefined behavior.
3810
2375c96a
CY
38112012-02-19 Chong Yidong <cyd@gnu.org>
3812
3813 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
3814 (Funhandled_file_name_directory, Ffile_name_as_directory)
3815 (Fdirectory_file_name, Fexpand_file_name)
3816 (Fsubstitute_in_file_name): Protect against invalid file handler
3817 return values (Bug#10845).
3818
3eb49e71
EZ
38192012-02-18 Eli Zaretskii <eliz@gnu.org>
3820
3821 * .gdbinit (pitx): Fix incorrect references to fields of the
3822 iterator stack.
3823
7b926f3f
CY
38242012-02-17 Chong Yidong <cyd@gnu.org>
3825
3826 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
3827
11273115
PE
38282012-02-15 Paul Eggert <eggert@cs.ucla.edu>
3829
3830 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
3831 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
3832
c3a70e2b
CY
38332012-02-15 Chong Yidong <cyd@gnu.org>
3834
3835 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
3836 marked as special. Also, starting docstrings with * is obsolete.
3837
0ca43699
AS
38382012-02-13 Andreas Schwab <schwab@linux-m68k.org>
3839
3840 * gnutls.c (emacs_gnutls_write): Fix last change.
3841
2e8f3c56
LI
38422012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
3843
3844 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
3845 send_process.
3846
af70074f
SM
38472012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
3848
3849 * keymap.c (Fsingle_key_description): Handle char ranges.
3850
95986d52
CY
38512012-02-12 Chong Yidong <cyd@gnu.org>
3852
afd83bd1
CY
3853 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
3854 as that creates a dangerous corner case.
3855
95986d52
CY
3856 * window.c (Fdelete_window_internal): Invalidate the mouse
3857 highlight (Bug#9904).
3858
bd7da63e
GM
38592012-02-12 Glenn Morris <rgm@gnu.org>
3860
3861 * xselect.c (Fx_own_selection_internal)
3862 (Fx_get_selection_internal, Fx_disown_selection_internal)
3863 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
3864 * nsselect.m (Fx_own_selection_internal)
3865 (Fx_disown_selection_internal, Fx_selection_exists_p)
3866 (Fx_selection_owner_p, Fx_get_selection_internal):
3867 Sync docs and argument specs with the xselect.c versions.
3868
77abcbc2
LI
38692012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
3870
3871 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
3872
90b671e2
EZ
38732012-02-11 Eli Zaretskii <eliz@gnu.org>
3874
1c0ca0b7
EZ
3875 * w32select.c (Fx_selection_exists_p): Sync doc string and
3876 argument list with xselect.c. (Bug#10783)
3877
3878 * w16select.c (Fx_selection_exists_p): Sync doc string and
3879 argument list with xselect.c. (Bug#10783)
90b671e2 3880
49241268
GM
38812012-02-10 Glenn Morris <rgm@gnu.org>
3882
3883 * fns.c (Fsecure_hash): Doc fix.
3884
f998bbe7 38852012-02-09 Kenichi Handa <handa@m17n.org>
5c1ca13d
KH
3886
3887 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
3888
0992bd9c
CY
38892012-02-07 Chong Yidong <cyd@gnu.org>
3890
3891 * buffer.c (Fbuffer_local_variables)
3892 (buffer_lisp_local_variables): Handle unbound vars correctly;
3893 don't let Qunbound leak into Lisp.
3894
af008560
GM
38952012-02-07 Glenn Morris <rgm@gnu.org>
3896
dd605cc4
GM
3897 * image.c (Fimagemagick_types): Doc fix.
3898
af008560
GM
3899 * image.c (imagemagick-render-type): Change it from a lisp object
3900 to an integer. Move the doc here from the lisp manual.
3901 Treat all values not equal to 0 the same.
3902
1449fa1d
CY
39032012-02-06 Chong Yidong <cyd@gnu.org>
3904
3905 * doc.c (store_function_docstring): Avoid applying docstring of
3906 alias to base function (Bug#2603).
3907
3723ec07
AS
39082012-02-04 Andreas Schwab <schwab@linux-m68k.org>
3909
3910 * .gdbinit (pp1, pv1): Remove redundant defines.
3911 (pr): Use pp.
3912
79c1cc1e
CY
39132012-02-04 Chong Yidong <cyd@gnu.org>
3914
3915 * nsterm.m: Declare a global (Bug#10694).
3916
d7f29f8e
EZ
39172012-02-04 Eli Zaretskii <eliz@gnu.org>
3918
cae07000
SM
3919 * w32.c (get_emacs_configuration_options):
3920 Include --enable-checking, if specified, in the return value.
d7f29f8e 3921
3b95a6f9
MR
39222012-02-04 Martin Rudalics <rudalics@gmx.at>
3923
3924 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
3925 after rounding frame sizes. (Bug#9723)
3926
d6fa96a6
EZ
39272012-02-04 Eli Zaretskii <eliz@gnu.org>
3928
3929 * keyboard.c (adjust_point_for_property): Don't position point
3930 before BEGV. (Bug#10696)
3931
df0b2940
PE
39322012-02-03 Paul Eggert <eggert@cs.ucla.edu>
3933
3934 Handle overflow when computing char display width (Bug#9496).
3935 * character.c (char_width): Return EMACS_INT, not int.
3936 (char_width, c_string_width): Check for overflow when
3937 computing the width; this is possible now that individual
3938 characters can have unbounded width. Problem introduced
3939 by merge from Emacs 23 on 2012-01-19.
3940
6bee44d6
MA
39412012-02-02 Michael Albinus <michael.albinus@gmx.de>
3942
3943 * dbusbind.c (Fdbus_register_method): Mention the return value
3944 :ignore in the docstring.
3945
44f92739
GM
39462012-02-02 Glenn Morris <rgm@gnu.org>
3947
1b9f60cc
GM
3948 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
3949
44f92739
GM
3950 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
3951 Unconditionally set to t. (Bug#10673)
3952 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
3953 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
3954 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
3955
c5d3843c
KH
39562012-02-02 Kenichi Handa <handa@m17n.org>
3957
3958 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
3959 0, do not call append_composite_glyph.
3960
159462d4 39612012-02-02 Kenichi Handa <handa@m17n.org>
d2a51fd7
KH
3962
3963 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
3964 NULL (Bug#6988).
3965 (x_produce_glyphs): If the component of a composition is a null
3966 string, set it->pixel_width to 1 to avoid zero-width glyph.
3967
78cef877
EZ
39682012-02-01 Eli Zaretskii <eliz@gnu.org>
3969
3970 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
3971 first 2 arguments are identical. This makes inserting large
3972 output from a subprocess an order of magnitude faster on
3973 MS-Windows, where all sbrk'ed memory is always contiguous.
3974
97897668
GM
39752012-01-31 Glenn Morris <rgm@gnu.org>
3976
3977 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
c78c6e0b 3978 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
97897668
GM
3979 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
3980
31fd3586
GM
39812012-01-29 Glenn Morris <rgm@gnu.org>
3982
3983 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
3984
0e24a8b2
CY
39852012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
3986
3987 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
3988
cc0adcb0
CY
39892012-01-28 Chong Yidong <cyd@gnu.org>
3990
3991 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
3992
acc28cb9
CY
39932012-01-26 Chong Yidong <cyd@gnu.org>
3994
9c69cfb7
CY
3995 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
3996
acc28cb9
CY
3997 * search.c (Fsearch_forward, Fsearch_backward): Document negative
3998 repeat counts (Bug#10507).
3999
48da7392
GM
40002012-01-26 Glenn Morris <rgm@gnu.org>
4001
4002 * lread.c (syms_of_lread): Doc fix.
4003
14af5f7f
CY
40042012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
4005
4006 * coding.c (encode_designation_at_bol): Change return value to
4007 EMACS_INT.
4008
0b21c100
CY
40092012-01-25 Chong Yidong <cyd@gnu.org>
4010
4011 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
4012
3c2907f7
CY
40132012-01-21 Chong Yidong <cyd@gnu.org>
4014
4015 * floatfns.c (Fcopysign): Make the second argument non-optional,
4016 since nil is not allowed anyway.
4017
959ad23f
AS
40182012-01-21 Andreas Schwab <schwab@linux-m68k.org>
4019
4020 * process.c (read_process_output): Use p instead of XPROCESS (proc).
4021 (send_process): Likewise.
4022
34a02f46
MR
40232012-01-19 Martin Rudalics <rudalics@gmx.at>
4024
4025 * window.c (save_window_save, Fcurrent_window_configuration)
cae07000
SM
4026 (Vwindow_persistent_parameters): Do not use Qstate.
4027 Rewrite doc-strings.
34a02f46 4028
1259009a 40292012-01-19 Kenichi Handa <handa@m17n.org>
25ed9e61
KH
4030
4031 * character.c (char_width): New function.
70d4fdf6
GM
4032 (Fchar_width, c_string_width, lisp_string_width):
4033 Use char_width (Bug#9496).
25ed9e61 4034
6a6ee00d
MR
40352012-01-16 Martin Rudalics <rudalics@gmx.at>
4036
4037 * window.c (Vwindow_persistent_parameters): New variable.
4038 (Fset_window_configuration, save_window_save): Handle persistent
4039 window parameters.
4040
c85efaf7
EZ
40412012-01-14 Eli Zaretskii <eliz@gnu.org>
4042
4043 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
4044 thrashing the stack of the thread. (Bug#9087)
4045
5944709e
PE
40462012-01-12 Paul Eggert <eggert@cs.ucla.edu>
4047
4048 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
4049
e71f5d99
EZ
40502012-01-11 Eli Zaretskii <eliz@gnu.org>
4051
4052 * xdisp.c (rows_from_pos_range): Handle the case where the
4053 highlight ends on a newline. (Bug#10464)
4054 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
4055 he end column for display of highlight that ends on a newline
4056 before a R2L line.
4057
ce316182
GM
40582012-01-11 Glenn Morris <rgm@gnu.org>
4059
4060 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
4061 from load-path also when installation-directory is nil. (Bug#10208)
4062
5b43da69
GM
40632012-01-10 Glenn Morris <rgm@gnu.org>
4064
74cc8ff9
GM
4065 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
4066
7d8d6e4e
GM
4067 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
4068 Update template values to be closer to their typical values these days.
5b43da69 4069
a0db8d43
EZ
40702012-01-09 Eli Zaretskii <eliz@gnu.org>
4071
4072 * xdisp.c (rows_from_pos_range): Accept additional argument
4073 DISP_STRING, and accept any glyph in a row whose object is that
4074 string as eligible for mouse highlight. Fixes mouse highlight of
4075 display strings from overlays. (Bug#10464)
4076
9a0115ab 40772012-01-07 Paul Eggert <eggert@cs.ucla.edu>
09450bae 4078
b9110d6a 4079 emacs: fix an auto-save permissions race condition (Bug#10400)
09450bae
PE
4080 * fileio.c (auto_saving_dir_umask): New static var.
4081 (Fmake_directory_internal): Use it.
4082 (do_auto_save_make_dir): Set it, instead of invoking chmod after
4083 creating the directory. The old code temporarily assigns
4084 too-generous permissions to the directory.
4085 (do_auto_save_eh): Clear it.
b9110d6a 4086 (Fdo_auto_save): Catch all errors, not just file errors, so
09450bae
PE
4087 that the var is always cleared.
4088
6c1bd3f3
EZ
40892012-01-07 Eli Zaretskii <eliz@gnu.org>
4090
4091 * search.c (scan_buffer): Pass character positions to
4092 know_region_cache, not byte positions. (Bug#6540)
4093
069d2b50
L
40942012-01-07 LynX <_LynX@bk.ru> (tiny change)
4095
4096 * w32.c (sys_rename): Report EXDEV when rename of a directory
4097 fails because the target is on another logical disk. (Bug#10284)
4098
75bf0d33
DB
40992012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
4100
4101 * xterm.c (x_embed_request_focus): New function.
4102
4103 * xterm.h: Add prototype.
4104
4105 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
4106
1c6e5a32
GM
41072012-01-05 Glenn Morris <rgm@gnu.org>
4108
4109 * emacs.c (emacs_copyright): Update short copyright year to 2012.
4110
651e947e
EZ
41112012-01-01 Eli Zaretskii <eliz@gnu.org>
4112
4113 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
4114 Load gnutls_transport_set_lowat only if GnuTLS version is below
4115 2.11.1.
4116 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
4117 GnuTLS versions below 2.11.1.
4118
3778cdd8
AL
41192011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
4120
4121 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
4122 to the doc string advising against its use for altering the way
4123 windows are scrolled.
4124
0e5317f7
KH
41252011-12-28 Kenichi Handa <handa@m17n.org>
4126
4127 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
4128 coding-system ASCII compatible only when it does not produce BOM
4129 on encoding (Bug#10383).
4130
93d5ca1f
JD
41312011-12-26 Jan Djärv <jan.h.d@swipnet.se>
4132
4133 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
4134 can scroll.
4135 (create_and_show_popup_menu): Always use menu_position_func for
4136 Gtk3 (Bug#10361).
4137
ca22b785
AS
41382011-12-24 Andreas Schwab <schwab@linux-m68k.org>
4139
4140 * callint.c (Fcall_interactively): Don't truncate prompt string.
4141
d048e1e6
EZ
41422011-12-23 Eli Zaretskii <eliz@gnu.org>
4143
4144 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
4145 property that ends at ZV, so that the bidi iteration could be
3ba1a2ad 4146 resumed from there (after widening). (Bug#10360)
d048e1e6 4147
5ccaba1f
JD
41482011-12-22 Jan Djärv <jan.h.d@swipnet.se>
4149
4150 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
4151
204ee57f
JD
41522011-12-21 Jan Djärv <jan.h.d@swipnet.se>
4153
b81d40f0
JB
4154 * nsterm.m (x_free_frame_resources):
4155 Release f->output_data.ns->miniimage.
204ee57f
JD
4156 (ns_index_color): Fix indentation. Do not retain
4157 color_table->colors[i].
4158
4159 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
4160 before returning.
4161
4162 * nsfns.m (x_set_background_color): Assign return value from
4163 ns_index_color to face-background instead of NSColor*.
4164 (ns_implicitly_set_icon_type): Fix indentation.
4165 Change assignment in for loop to comparison.
4166
4167 * emacs.c (ns_pool): New variable.
4168 (main): Assign ns_pool.
4169 (Fkill_emacs): Call ns_release_autorelease_pool.
4170
4171 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
4172 autorelease fdesc, release fdAttrs and tdict.
4173 (ns_get_covering_families): Release charset.
4174 (ns_findfonts): Release NSFontDescriptor created with new.
4175 (ns_uni_to_glyphs): Fix indentation.
4176 (setString): Release attrStr before assigning new value.
4177
c803b2b7
JD
41782011-12-18 Jan Djärv <jan.h.d@swipnet.se>
4179
678f4426
JD
4180 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
4181 and NS_IMPL_COCOA.
4182 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
4183 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
4184
cd394be1 41852011-12-18 David Reitter <reitter@cmu.edu>
678f4426 4186
5fecd5fc
JD
4187 * nsterm.m (ns_term_init): Subscribe for notifications
4188 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
4189 to method trackingNotification in EmacsMenu.
4190
4191 * nsmenu.m (trackingMenu): New variable.
3771cb17 4192 (trackingNotification): New method (from Aquamacs).
5fecd5fc 4193 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
3771cb17 4194 from Aquamacs (Bug#7030).
678f4426
JD
4195
41962011-12-18 Jan Djärv <jan.h.d@swipnet.se>
5fecd5fc 4197
c803b2b7
JD
4198 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
4199 (symbol_to_nsstring): Fix indentation.
4200 (ns_symbol_to_pb): New function.
cae07000
SM
4201 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
4202 (Fns_rotate_cut_buffers_internal): Remove.
4203 (Fns_store_selection_internal): Rename from
c803b2b7
JD
4204 Fns_store_cut_buffer_internal.
4205 (ns_get_foreign_selection, Fx_own_selection_internal)
4206 (Fx_disown_selection_internal, Fx_selection_exists_p)
b81d40f0
JB
4207 (Fns_get_selection_internal, Fns_store_selection_internal):
4208 Use ns_symbol_to_pb and check if return value is nil.
4209 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
4210 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
c803b2b7
JD
4211 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
4212 renamed to Sns_store_selection_internal.
4213 (ns_handle_selection_request): Move code to Fx_own_selection_internal
4214 and remove this function.
4215 (ns_handle_selection_clear): Remove, never used.
4216 (Fx_own_selection_internal): Move code from ns_handle_selection_request
4217 here.
4218
e1b01a3a
KB
42192011-12-17 Ken Brown <kbrown@cornell.edu>
4220
4221 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
4222 GID is unknown (Bug#10257).
4223
2adb6e85
PE
42242011-12-17 Paul Eggert <eggert@cs.ucla.edu>
4225
4226 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
4227 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
4228 which caused a build failure on GNU/Linux IA-64. This problem was
4229 introduced by my 2011-10-07 patch.
4230
d1d7b339
JL
42312011-12-15 Juri Linkov <juri@jurta.org>
4232
4233 * image.c (imagemagick_error): New function. (Bug#10112)
4234 (imagemagick_load_image): Comment out `MagickSetResolution' call.
4235 Use `imagemagick_error' where ImageMagick functions return
4236 `MagickFalse'.
4237 (Fimagemagick_types): Add `Fnreverse' to return the list in the
4238 proper order.
4239
100d5755
KH
42402011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
4241
4242 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
4243 fill background (Bug#8992).
4244
454592a6
MR
42452011-12-13 Martin Rudalics <rudalics@gmx.at>
4246
4247 * window.c (Vwindow_combination_resize)
4248 (Vwindow_combination_limit): Use t instead of non-nil in
4249 doc-strings.
61d4b438
MR
4250 (Vrecenter_redisplay): Add first sentence of doc-string on
4251 separate line.
53524d93 4252 (Frecenter): Fix doc-string typo.
454592a6 4253
3633e3aa
KH
42542011-12-11 Kenichi Handa <handa@m17n.org>
4255
4256 * coding.c (Funencodable_char_position): Pay attention to the
4257 buffer text relocation (Bug#9389).
4258
7b9d523a 42592011-12-10 Jan Djärv <jan.h.d@swipnet.se>
61ccba97 4260
7b9d523a
JD
4261 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
4262 gtk_init (Bug#10100).
4263
b73189c6
EZ
42642011-12-10 Eli Zaretskii <eliz@gnu.org>
4265
4266 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
4267 IT->string is nil. (Bug#10263)
4268
f7dfe5d6
JD
42692011-12-10 Jan Djärv <jan.h.d@swipnet.se>
4270
83faebb4
JD
4271 * nsterm.h (x_free_frame_resources): Declare.
4272
f7dfe5d6
JD
4273 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
4274 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
4275
4276 * nsterm.h (ns_get_defaults_value): Declare.
4277
4278 * nsterm.m (ns_default): Call ns_get_defaults_value.
4279
7cd4e72c
EZ
42802011-12-09 Eli Zaretskii <eliz@gnu.org>
4281
4282 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
4283 (Bug#10170)
4284
b34d7317
YM
42852011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
4286
4287 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
4288 that where the value of an _OBJC_* symbol points to is in the .bss
4289 section (Bug#10240).
4290
76470ad1
KH
42912011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
4292
4293 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
2fac8180 4294 after the loop to call ccl_driver at least once (Bug#8619).
76470ad1 4295
745fff94
KH
42962011-12-08 Kenichi Handa <handa@m17n.org>
4297
4298 * ftfont.c (get_adstyle_property): Fix previous change
4299 (Bug#10233).
4300
6e44397c
JB
43012011-12-07 Juanma Barranquero <lekktu@gmail.com>
4302
4303 * w32.c (init_environment): If no_site_lisp, remove site-lisp
4304 dirs from the default value of EMACSLOADPATH (bug#10208).
4305
7efa6272
GM
43062011-12-07 Glenn Morris <rgm@gnu.org>
4307
4308 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
4309 installation and source directories as well. (Bug#10208)
4310
f6fc4d87
CY
43112011-12-06 Chong Yidong <cyd@gnu.org>
4312
4313 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
4314
2bf26180
GM
43152011-12-06 Glenn Morris <rgm@gnu.org>
4316
4317 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
4318 as an error, not just -1. (Bug#10217)
4319
3a6ad4f0
CY
43202011-12-05 Chong Yidong <cyd@gnu.org>
4321
4322 * keyboard.c (process_special_events): New function.
4323 (swallow_events, Finput_pending_p): Use it (Bug#10195).
4324
75a3b399
PE
43252011-12-05 Paul Eggert <eggert@cs.ucla.edu>
4326
4327 * coding.c (encode_designation_at_bol): Don't use uninitialized
4328 local variable (Bug#9318).
4329
c3c9e25e
KH
43302011-12-05 Kenichi Handa <handa@m17n.org>
4331
4332 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
4333 return Qnil (Bug#8046, Bug#10193).
4334
5eb05ea3
KH
43352011-12-05 Kenichi Handa <handa@m17n.org>
4336
4337 * coding.c (encode_designation_at_bol): New args charbuf_end and
4338 dst. Return the number of produced bytes. Callers changed.
a79703f5
KH
4339 (coding_set_source): Return how many bytes coding->source was
4340 relocated.
4341 (coding_set_destination): Return how many bytes
4342 coding->destination was relocated.
4343 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
cae07000 4344 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
5eb05ea3
KH
4345
43462011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
4347
4348 * coding.c (CODING_CHAR_CHARSET_P): New macro.
4349 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
4350 macro (Bug#9318).
4351
43522011-12-05 Andreas Schwab <schwab@linux-m68k.org>
4353
4354 The following changes are to fix Bug#9318.
4355
a79703f5 4356 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
5eb05ea3
KH
4357 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
4358 (encode_coding_iso_2022, encode_coding_sjis)
a79703f5 4359 (encode_coding_big5, encode_coding_charset): Use the above macros.
5eb05ea3 4360
7dbda6df
JB
43612011-12-05 Juanma Barranquero <lekktu@gmail.com>
4362
4363 * lisp.h (process_quit_flag): Fix external declaration.
4364
6d5eb5b0
SM
43652011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
4366
4367 Don't macro-inline non-performance-critical code.
4368 * eval.c (process_quit_flag): New function.
4369 * lisp.h (QUIT): Use it.
4370
a0c3fad0
JD
43712011-12-04 Jan Djärv <jan.h.d@swipnet.se>
4372
4373 * nsfns.m (get_geometry_from_preferences): New function.
4374 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
4375
6c07aac2
AS
43762011-12-04 Andreas Schwab <schwab@linux-m68k.org>
4377
4378 * emacs.c (Qkill_emacs): Define.
4379 (syms_of_emacs): Initialize it.
4380 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
4381 Qquit_flag to `kill-emacs' instead.
6d5eb5b0
SM
4382 (quit_throw_to_read_char): Add parameter `from_signal'.
4383 All callers changed. Call Fkill_emacs if requested and safe.
6c07aac2
AS
4384 * lisp.h (QUIT): Call Fkill_emacs if requested.
4385
c052ead4
JD
43862011-12-03 Jan Djärv <jan.h.d@swipnet.se>
4387
4388 * widget.c (update_wm_hints): Return if wmshell is null.
4389 (widget_update_wm_size_hints): New function.
4390
4391 * widget.h (widget_update_wm_size_hints): Declare.
4392
4393 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
4394 widget_update_wm_size_hints (Bug#10104).
4395
9e49252b
EZ
43962011-12-03 Eli Zaretskii <eliz@gnu.org>
4397
4398 * xdisp.c (handle_invisible_prop): If the invisible text ends just
4399 before a newline, prepare the bidi iterator for consuming the
4400 newline, and keep the current paragraph direction. (Bug#10183)
e9a49426 4401 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
9e49252b 4402
02b16839
JL
44032011-12-02 Juri Linkov <juri@jurta.org>
4404
4405 * search.c (Fword_search_regexp): New Lisp function created from
4406 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
4407 (Fword_search_backward, Fword_search_forward)
4408 (Fword_search_backward_lax, Fword_search_forward_lax):
4409 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
4410 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
4411
0068070e
SM
44122011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
4413
4414 * fileio.c (Finsert_file_contents): Move after-change-function call
4415 to before the "handled:" label, since all "goto handled" appear in
4416 cases where the *-change-functions have already been properly called
4417 (bug#10117).
4418
3360a3fc
AS
44192011-12-01 Andreas Schwab <schwab@linux-m68k.org>
4420
4421 * keyboard.c (interrupt_signal): Don't call kill-emacs when
4422 waiting for input. (Bug#10169)
4423
73d6c093
EZ
44242011-11-30 Eli Zaretskii <eliz@gnu.org>
4425
4426 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
4427 verifies glyph row's hash code--we have just reallocated the
4428 glyphs, so their contents can be complete garbage. (Bug#10164)
4429
febe6bea
JB
44302011-11-30 Juanma Barranquero <lekktu@gmail.com>
4431
4432 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
4433
801a4313
EZ
44342011-11-30 Eli Zaretskii <eliz@gnu.org>
4435
4436 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
4437 attributes are tested _before_ calling verify_row_hash, to protect
4438 against GCC re-ordering of the tests. (Bug#10164)
4439
2b56b87e
JD
44402011-11-29 Jan Djärv <jan.h.d@swipnet.se>
4441
4442 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
4443
4444 * xterm.c (handle_one_xevent): Only set async_visible and friends
4445 if net_wm_state_hidden_seen is non-zero (Bug#10002)
7dbda6df 4446 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
2b56b87e
JD
4447 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
4448
dbf31225
PE
44492011-11-28 Paul Eggert <eggert@cs.ucla.edu>
4450
4451 Remove GCPRO-related macros that exist only to avoid shadowing locals.
4452 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
4453 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
4454 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
4455 All uses changed to use GCPRO1 etc.
4456 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
4457 Revert to old implementation (i.e., before 2011-03-11).
4458
1305621b
YM
44592011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
4460
4461 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
4462 of scroll runs so as to avoid assigning disabled bogus rows and
4463 unnecessary graphics copy operations.
4464
8c9afb46
EZ
44652011-11-27 Eli Zaretskii <eliz@gnu.org>
4466
4467 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
4468 (snprintf) [_MSC_VER]: Redirect to _snprintf.
4469 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
4470 (malloc, free, realloc, calloc): Redirect to e_* only when
4471 compiling Emacs.
4472
4473 * lisp.h (GCTYPEBITS): Move before first use.
4474 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
4475 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
4476 this macro definition.
4477
4478 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
4479 _MSC_VER.
4480
54e9e3bf
JD
44812011-11-27 Jan Djärv <jan.h.d@swipnet.se>
4482
6d5eb5b0
SM
4483 * gtkutil.c (xg_create_frame_widgets):
4484 Call gtk_window_set_has_resize_grip (FALSE) if that function is
54e9e3bf
JD
4485 present with Gtk+ 2.0.
4486
83aca1cb
PE
44872011-11-26 Paul Eggert <eggert@cs.ucla.edu>
4488
4489 * fileio.c (Finsert_file_contents): Undo previous change; see
4490 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
4491
5b76caa4
PE
44922011-11-26 Paul Eggert <eggert@cs.ucla.edu>
4493
4494 Rename locals to avoid shadowing.
4495 * fileio.c (Finsert_file_contents):
4496 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
4497 * process.c (wait_reading_process_output):
4498 Rename inner 'proc' to 'p' to avoid shadowing.
4499 Indent for consistency with usual Emacs style.
4500
8c535114
EZ
45012011-11-25 Eli Zaretskii <eliz@gnu.org>
4502
4503 * xdisp.c (redisplay_window): If cursor row is not fully visible
4504 after recentering, and scroll-conservatively is set to a large
4505 number, scroll window by a few more lines to make the cursor fully
4506 visible and out of scroll-margin. (Bug#10105)
91b4a718
EZ
4507 (start_display): Don't move to the next line if the display should
4508 start at a newline that is part of a display vector or an overlay
4509 string. (Bug#10119)
8c535114 4510
fa4fdb5c
JL
45112011-11-24 Juri Linkov <juri@jurta.org>
4512
4513 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
4514 after the `MagickPingImage' call. (Bug#10112)
4515
90ec88df
CY
45162011-11-23 Chong Yidong <cyd@gnu.org>
4517
4518 * window.c (Fcoordinates_in_window_p): Accept only live windows.
4519
56e2e794
MR
45202011-11-23 Martin Rudalics <rudalics@gmx.at>
4521
4522 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
4523 making another buffer current. (Bug#10114)
4524
b6e64c41
GM
45252011-11-23 Glenn Morris <rgm@gnu.org>
4526
4527 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
4528
6b21de18
CY
45292011-11-23 Chong Yidong <cyd@gnu.org>
4530
4531 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
4532 using it (Bug#5984).
4533
b12cd789
EZ
45342011-11-22 Eli Zaretskii <eliz@gnu.org>
4535
4536 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
4537 and header-lines, as they don't have one computed for them.
4538 (Bug#10098)
4539
4540 * .gdbinit (prow): Make displayed values more self-explaining.
4541 Add row's hash code.
4542
261b6fd4
LMI
45432011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
4544
4545 * process.c (wait_reading_process_output): Fix asynchrounous
4546 GnuTLS socket handling on some versions of the GnuTLS library.
16c1ad08 4547 (wait_reading_process_output): Add comment and URL.
261b6fd4 4548
e7cfd277
JD
45492011-11-21 Jan Djärv <jan.h.d@swipnet.se>
4550
4551 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
4552
a9b9b7f5
CY
45532011-11-21 Chong Yidong <cyd@gnu.org>
4554
4555 * window.c (Fnext_window, Fprevious_window): Doc fix.
4556
b0d15b4f
SM
45572011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
4558
4559 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
4560
fe7a3057
JB
45612011-11-20 Juanma Barranquero <lekktu@gmail.com>
4562
4563 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
4564
d2999b1a
MR
45652011-11-20 Martin Rudalics <rudalics@gmx.at>
4566
4567 * window.c (Fset_window_combination_limit): Rename argument
4568 STATUS to LIMIT.
4569 (Vwindow_combination_limit): Remove "status" from doc-string.
4570
d5ff9cd0
AS
45712011-11-20 Andreas Schwab <schwab@linux-m68k.org>
4572
4573 * m/ibms390.h: Remove.
4574 * m/ibms390x.h: Don't include "ibms390.h".
4575
a5bb9bd3
SM
45762011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
4577
4578 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
4579 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
4580
cd1181db
JB
45812011-11-20 Juanma Barranquero <lekktu@gmail.com>
4582
4583 * casetab.c (Fset_case_table):
4584 * charset.c (Fcharset_after): Fix typos.
4585
615a3b8d 45862011-11-20 Paul Eggert <eggert@cs.ucla.edu>
6a0bf43d 4587
17e845af
PE
4588 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
4589 Otherwise, valgrind does not work on some platforms.
4590 Problem reported by Andreas Schwab in
6a0bf43d
PE
4591 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
4592 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
4593 is set, removing the need for VIRT_ADDRESS_VARIES.
4594 (PURE_P): Use a more-efficient implementation that needs just one
4595 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
4596 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
4597 to 4 (xorl, subq, cmpq, setbe).
4598 * alloc.c (pure): Always extern now, since that's the
4599 VIRT_ADDR_VARIES behavior.
4600 (PURE_POINTER_P): Use a single comparison, not two, for
4601 consistency with the new puresize.h.
4602 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
4603 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
4604 Remove VIRT_ADDR_VARIES no longer needed.
4605
f8fe6f96
EZ
46062011-11-19 Eli Zaretskii <eliz@gnu.org>
4607
4608 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
4609 (erase_phys_cursor, update_window_cursor, show_mouse_face)
4610 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
4611 behave as if the cursor position were at the window margin.
4612
4613 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
4614 and the cursor position is out of bounds, behave as if the cursor
4615 position were at the window margin. (Bug#10075)
4616
df05a53c
CY
46172011-11-18 Chong Yidong <cyd@gnu.org>
4618
4619 * window.c (Fwindow_combination_limit): Make first argument
4620 non-optional, since it is meaningless for live windows like the
4621 selected window.
61ccba97 4622
2071918e
DA
46232011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
4624
4625 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
4626
b50a28de
SM
46272011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
4628
4629 * intervals.c: Fix grafting over the whole buffer (bug#10071).
4630 (graft_intervals_into_buffer): Simplify.
4631
015137db
EZ
46322011-11-18 Eli Zaretskii <eliz@gnu.org>
4633
4634 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
4635 hash values of the two rows.
4636 (copy_row_except_pointers): Preserve the used[] arrays and the
4637 hash values of the two rows. (Bug#10035)
68c95424 4638 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
015137db
EZ
4639
4640 * xdisp.c (row_hash): New function, body extracted from
4641 compute_line_metrics.
4642 (compute_line_metrics): Call row_hash, instead of computing the
4643 hash code inline.
4644
4645 * dispnew.c (verify_row_hash): Call row_hash for computing the
4646 hash code of a row, instead of duplicating code from xdisp.c.
4647
4648 * dispextern.h (row_hash): Add prototype.
4649
a2addb04
TH
46502011-11-18 Tassilo Horn <tassilo@member.fsf.org>
4651
4652 * frame.c (delete_frame): Don't delete the terminal when the last
4653 X frame is closed if emacs is built with GTK toolkit.
4654
df85d315
JB
46552011-11-17 Juanma Barranquero <lekktu@gmail.com>
4656
4657 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
4658
a0c2d0ae
MR
46592011-11-17 Martin Rudalics <rudalics@gmx.at>
4660
4661 * window.c (Vwindow_splits): Rename to
4662 Vwindow_combination_resize. Suggested by Juri Linkov.
4663 (Fsplit_window_internal): Use Vwindow_combination_resize instead
4664 of Vwindow_splits.
4665
58179cce
JB
46662011-11-16 Juanma Barranquero <lekktu@gmail.com>
4667
7877f373
JB
4668 * nsfns.m (Fns_font_name):
4669 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
58179cce 4670
b6f67890
MR
46712011-11-16 Martin Rudalics <rudalics@gmx.at>
4672
4673 * window.h (window): Rename slot "nest" to "combination_limit".
4674 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
4675 (Fset_window_nest): Rename to Fset_window_combination_limit.
4676 (Vwindow_nest): Rename to Vwindow_combination_limit.
4677 (recombine_windows, make_parent_window, make_window)
4678 (Fsplit_window_internal, saved_window)
4679 (Fset_window_configuration, save_window_save): Rename all
4680 occurrences of window_nest to window_combination_limit.
4681
c7015153
JB
46822011-11-15 Juanma Barranquero <lekktu@gmail.com>
4683
4684 * image.c (imagemagick_load_image): Fix typo.
4685
322ad6ec
EZ
46862011-11-14 Eli Zaretskii <eliz@gnu.org>
4687
4688 * xdisp.c (display_line): Move the call to
4689 highlight_trailing_whitespace before the call to
4690 compute_line_metrics, since the latter needs to see the final
6d5eb5b0
SM
4691 faces of all the glyphs to compute ROW's hash value.
4692 Fixes assertion violations in row_equal_p. (Bug#10035)
322ad6ec 4693
f067b8ec
JB
46942011-11-14 Juanma Barranquero <lekktu@gmail.com>
4695
4696 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
4697 just return (bug#10044).
4698
1e5b2111
EZ
46992011-11-12 Eli Zaretskii <eliz@gnu.org>
4700
7ef3cbd5
EZ
4701 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
4702 with user-defined heap size. Bump the default size of the temacs
4703 heap to 27MB, to avoid memory warning when running temacs.
4704 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
4705
1e5b2111
EZ
4706 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
4707 current_matrix and desired_matrix. (Bug#9990)
7a7270dd
EZ
4708 (verify_row_hash) [XASSERTS]: New function.
4709 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
4710 that the hash value of glyph rows is correct.
1e5b2111 4711
89d61221
MR
47122011-11-12 Martin Rudalics <rudalics@gmx.at>
4713
4714 * window.h (window): Remove splits slot.
4715 * window.c (Fwindow_splits, Fset_window_splits): Remove.
4716 (Fdelete_other_windows_internal, make_parent_window)
4717 (make_window, Fsplit_window_internal, Fdelete_window_internal)
4718 (Fset_window_configuration, save_window_save): Don't deal with
4719 split status of windows.
4720 (saved_window): Remove splits slot.
4721 (Vwindow_splits): Rewrite doc-string.
4722
97f18cc8
JD
47232011-11-11 Jan Djärv <jan.h.d@swipnet.se>
4724
4725 * xfns.c (unwind_create_frame):
4726 * nsfns.m (unwind_create_frame):
4727 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
4728 Vframe_list (Bug#9999).
4729
22a648b4
DA
47302011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
4731
0b381c7e 4732 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
22a648b4 4733
659afede
KH
47342011-11-11 Kenichi Handa <handa@m17n.org>
4735
4736 * callproc.c (Fcall_process): Set the member dst_multibyte of
4737 process_coding.
4738
9ac0394b
KH
47392011-11-11 Johan Bockgård <bojohan@gnu.org>
4740
4741 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
4742 avoid a crash (bug#9496).
4743
2fbdc249
CY
47442011-11-09 Chong Yidong <cyd@gnu.org>
4745
4746 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
4747 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
4748
ac6b1f81
PE
47492011-11-08 Paul Eggert <eggert@cs.ucla.edu>
4750
4751 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
4752
09db192c
PE
47532011-11-08 Paul Eggert <eggert@cs.ucla.edu>
4754
4755 Avoid some portability problems by eschewing 'extern inline' functions.
4756 The trivial performance wins aren't worth the portability hassles; see
4757 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
4758 et seq.
4759 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
4760 (window_box_width, window_box_left, window_box_left_offset)
4761 (window_box_right, window_box_right_offset): Undo previous change,
4762 by removing the "extern"s.
4763 * intervals.c (adjust_intervals_for_insertion)
4764 (adjust_intervals_for_deletion): Undo previous change,
4765 making these static again.
4766 (offset_intervals, temp_set_point_both, temp_set_point)
4767 (copy_intervals_to_string): No longer inline.
4768 * xdisp.c (window_text_bottom_y, window_box_width)
4769 (window_box_height, window_box_left_offset)
4770 (window_box_right_offset, window_box_left, window_box_right)
4771 (window_box): No longer inline.
4772
105216ed
CY
47732011-11-08 Chong Yidong <cyd@gnu.org>
4774
4775 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
6d5eb5b0
SM
4776 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
4777 Signal an error if not a live window.
105216ed
CY
4778 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
4779 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
4780
ae9e237f
JB
47812011-11-07 Juanma Barranquero <lekktu@gmail.com>
4782
4783 * lisp.h (syms_of_abbrev): Remove declaration.
4784 Reported by CHENG Gao <chenggao@royau.me>.
4785
c7aa8333
EZ
47862011-11-07 Eli Zaretskii <eliz@gnu.org>
4787
4788 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
4789 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
4790 of temacs in GUI mode.
4791
be7f5545
MR
47922011-11-07 Martin Rudalics <rudalics@gmx.at>
4793
4794 * window.h: Declare delete_all_child_windows instead of
4795 delete_all_subwindows.
4796 * window.c (Fwindow_nest, Fset_window_nest)
4797 (Fset_window_new_total, Fset_window_new_normal)
4798 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
4799 (delete_all_subwindows): Rename to delete_all_child_windows.
4800 (Fdelete_other_windows_internal, Fset_window_configuration):
4801 Call delete_all_child_windows instead of delete_all_subwindows.
4802 * frame.c (delete_frame): Call delete_all_child_windows instead
4803 of delete_all_subwindows.
4804
ca78dc43
PE
48052011-11-07 Paul Eggert <eggert@cs.ucla.edu>
4806
4807 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
4808 This is also needed for porting to any host where GC_MARK_STACK is
4809 not GC_MAKE_GCPROS_NOOPS.
4810 (which_symbols): Use it.
4811
a0241d01
KH
48122011-11-07 Kenichi Handa <handa@m17n.org>
4813
4814 * coding.c (coding_set_destination): Check coding->src_pos only
4815 when coding->src_object is a buffer (bug#9910).
4816
4817 * process.c (send_process): Set the member src_multibyte of coding
4818 to 0 (bug#9911) when sending a unibyte text.
4819
4820 * callproc.c (Fcall_process): Set the member src_multibyte of
4821 process_coding to 0 (bug#9912).
4822
a64bfdfa 48232011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
ba24cea2
YM
4824
4825 * xmenu.c (cleanup_widget_value_tree): New function.
4826 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
4827 calling free_menubar_widget_value_tree directly (Bug#9830).
4828
cb41b32a
PE
48292011-11-06 Paul Eggert <eggert@cs.ucla.edu>
4830
4831 Fix some portability problems with 'inline'.
4832 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
4833 (window_box_width, window_box_left, window_box_left_offset)
4834 (window_box_right, window_box_right_offset): Declare extern.
4835 Otherwise, these inline functions do not conform to C99 and
4836 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
4837 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
4838 * intervals.c (adjust_intervals_for_insertion)
4839 (adjust_intervals_for_deletion): Now extern, because otherwise the
4840 extern inline functions 'offset_intervals' couldn't refer to it.
4841 (static_offset_intervals): Remove.
4842 (offset_intervals): Rewrite using the old contents of
4843 static_offset_intervals. The old version didn't conform to C99
4844 because an extern inline function contained a reference to an
4845 identifier with static linkage.
4846
b7041366
AS
48472011-11-06 Andreas Schwab <schwab@linux-m68k.org>
4848
4849 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
4850 GC.
4851
88a37c4d
EZ
48522011-11-06 Eli Zaretskii <eliz@gnu.org>
4853
4854 * xdisp.c (init_iterator, reseat_to_string): Don't set the
4855 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
4856 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
4857 return Qleft_to_right.
4858
49745b39
CY
48592011-11-06 Chong Yidong <cyd@gnu.org>
4860
4861 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
4862 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
4863 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
4864 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
4865 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
4866 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
4867 (Fwindow_vscroll): Doc fix.
4868 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
4869 argument, since it makes no sense to pass a live window and for
4870 consistency with window-child.
4871
1f05cd82
CS
48722011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
4873
4874 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
4875 support MSVC.
4876
22610910
JR
48772011-11-05 Jason Rumney <jasonr@gnu.org>
4878
4879 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
4880 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
4881 fonts (Bug#6029).
4882 (add_font_entity_to_list): Fix logic errors in mixed boolean and
4883 bitwise arithmetic preventing use of unicode-sip and non-truetype
4884 opentype fonts.
4885
a06776b2
EZ
48862011-11-05 Eli Zaretskii <eliz@gnu.org>
4887
3ad924ba
EZ
4888 * s/ms-w32.h (fstat, stat, utime): Move redirections to
4889 "emacs"-only part.
4890
a06776b2
EZ
4891 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
4892 initialization code to keep similarity to xfns.c after changes
4893 from 2011-11-05.
4894
c9e7db78
JD
48952011-11-05 Jan Djärv <jan.h.d@swipnet.se>
4896
a97f8f3f
JD
4897 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
4898 (unwind_create_frame): New function (Bug#9943).
4899 (Fx_create_frame): Restructure code to be more similar to the one in
4900 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
4901 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
4902 Move terminal->reference_count++ just before making the frame official
4903 (Bug#9943).
4904
4905 * nsterm.m (x_free_frame_resources): New function.
4906 (x_destroy_window): Move code to x_free_frame_resources.
4907
c9e7db78 4908 * xfns.c (unwind_create_frame): Fix comment.
6d5eb5b0
SM
4909 (Fx_create_frame, x_create_tip_frame):
4910 Move terminal->reference_count++ just before making the frame
75f1671a 4911 official. Move initialization of image_cache_refcount and
c9e7db78
JD
4912 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
4913
a6fc3b5c
EZ
49142011-11-05 Eli Zaretskii <eliz@gnu.org>
4915
4916 Support MSVC build with newer versions of Visual Studio.
4917 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
4918 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
4919 nt/gmake.defs.
4920
4921 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
4922 which are not supported by MSVC.
4923 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
4924 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
4925 bitfields.
4926 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
4927 types in bitfields.
4928 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
4929
4930 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
4931
58179cce 49322011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
a6fc3b5c
EZ
4933
4934 Support MSVC build with newer versions of Visual Studio.
4935 * w32.c: Don't include w32api.h for MSVC.
4936 (init_environment) [_MSC_VER]: Call sys_access, not _access.
4937
4938 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
4939 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
4940 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
4941 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
4942 e_* cousins.
4943 (alloca) [_MSC_VER]: Define to _alloca.
4944
4945 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
4946
4947 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
4948
a58c13ed
EZ
49492011-11-04 Eli Zaretskii <eliz@gnu.org>
4950
4951 * xdisp.c (note_mouse_highlight): If either of
4952 previous/next-single-property-change returns nil, treat that as
4953 the beginning or the end of the buffer. (Bug#9955)
4954
fe0b6370
JD
49552011-11-04 Jan Djärv <jan.h.d@swipnet.se>
4956
a58c13ed 4957 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
fe0b6370
JD
4958 label is not null (Bug#9951).
4959 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
4960 may be NULL.
4961
89bd5ee1
EZ
49622011-11-04 Eli Zaretskii <eliz@gnu.org>
4963
4964 * window.c (Fwindow_body_size): Mention in the doc string that the
4965 return value is in frame's canonical units. (Bug#9949)
4966
84c3edb9
EZ
49672011-11-03 Eli Zaretskii <eliz@gnu.org>
4968
4e2fb5c7
EZ
4969 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
4970
84c3edb9 4971 * w32fns.c (unwind_create_frame): If needed, free the glyph
3ab15fd6 4972 matrices of the partially constructed frame. (Bug#9943)
2a58bbc1 4973 * xfns.c (unwind_create_frame): Likewise.
84c3edb9 4974
bc17a887
EZ
49752011-11-01 Eli Zaretskii <eliz@gnu.org>
4976
4977 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
4978 Don't stop backward scan on the continuation glyph, even though
4979 its CHARPOS is positive.
6d5eb5b0
SM
4980 (mouse_face_from_buffer_pos, note_mouse_highlight):
4981 Rename cover_string to disp_string.
bc17a887 4982
4ee88440
MR
49832011-11-01 Martin Rudalics <rudalics@gmx.at>
4984
4985 * window.c (temp_output_buffer_show): Don't use
4986 Vtemp_buffer_show_specifiers.
4987 (Vtemp_buffer_show_specifiers): Remove unused variable.
4988
c2ff3c02
EZ
49892011-10-30 Eli Zaretskii <eliz@gnu.org>
4990
4991 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
4992 past the beginning of the current glyph matrix.
4993
58179cce 49942011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
6e56383b
JD
4995
4996 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
4997 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
4998 HAVE_GTK3 (Bug#9869).
b77a6a7f 4999
3b574623
JD
5000 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
5001 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
5002
b77a6a7f
JD
5003 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
5004
5005 * xterm.c: Declare x_handle_net_wm_state to return int.
5006 (handle_one_xevent): Check if we are iconified but don't have
5007 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
5008 (get_current_wm_state): Return non-zero if not hidden,
5009 check for _NET_WM_STATE_HIDDEN (Bug#9893).
5010 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
5011 (x_handle_net_wm_state): Return what get_current_wm_state returns.
5012 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
5013
196e41e4
PE
50142011-10-29 Paul Eggert <eggert@cs.ucla.edu>
5015
5016 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
5017 so that this new function doesn't get optimized away by a
5018 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
5019
021f2e1a
AS
50202011-10-29 Andreas Schwab <schwab@linux-m68k.org>
5021
5022 * frame.h (MOUSE_HL_INFO): Remove excess parens.
5023
8b058d44
EZ
50242011-10-29 Eli Zaretskii <eliz@gnu.org>
5025
5026 Fix the `xbytecode' command.
5027 * .gdbinit (xprintbytestr): New command.
b50a28de 5028 (xwhichsymbols): Rename from `which'; all callers changed.
8b058d44
EZ
5029 (xbytecode): Print the byte-code string as well.
5030
4452fb80
EZ
50312011-10-29 Kim Storm <storm@cua.dk>
5032
8b058d44
EZ
5033 * alloc.c (which_symbols): New function.
5034
21b72067
AS
50352011-10-29 Andreas Schwab <schwab@linux-m68k.org>
5036
5037 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
5038 line. (Bug#9903)
5039
83ed7b5c
GM
50402011-10-29 Glenn Morris <rgm@gnu.org>
5041
5042 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
5043 Not clear what it was for, and it causes various bugs. (Bug#9839)
5044
5a7a728b
EZ
50452011-10-28 Eli Zaretskii <eliz@gnu.org>
5046
5047 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
5048 possible random value that matches one of those tested as
5049 condition to clear the mouse face.
5050
d3d0842f
CY
50512011-10-28 Chong Yidong <cyd@gnu.org>
5052
5053 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
5054
31b39d13
DN
50552011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
5056
5057 * window.c (make_window): Initialize phys_cursor_on_p.
5058
9aba6043
SM
50592011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
5060
5061 * lisp.h (struct Lisp_Symbol): Update comments.
5062
c20992f4
JB
50632011-10-28 Juanma Barranquero <lekktu@gmail.com>
5064
5065 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
5066
db4f02f2
EZ
50672011-10-28 Eli Zaretskii <eliz@gnu.org>
5068
5069 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
5070 <oslsachem@gmail.com> for helping to debug this.
5071
5072 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
5073 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
5074 (g_b_init_get_glyph_outline_w): New static variables.
5075 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
5076 (GetGlyphOutlineW_Proc): New typedefs.
5077 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
9aba6043
SM
5078 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
5079 New functions.
5080 (w32font_open_internal, compute_metrics):
5081 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
db4f02f2
EZ
5082 instead of calling the "wide" APIs directly.
5083
5084 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
5085
5086 * w32.h (syms_of_w32font): Add prototype.
5087
87e68db4
JB
50882011-10-27 Juanma Barranquero <lekktu@gmail.com>
5089
5090 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
5091 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
5092 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
5093 (Fmove_to_window_line): Doc fix.
5094
435c1d67
CY
50952011-10-27 Chong Yidong <cyd@gnu.org>
5096
5097 * process.c (make_process): Set gnutls_state to NULL.
5098
5099 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
5100 non-NULL, regardless of GNUTLS_INITSTAGE.
5101 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
5102 an error. Set process slots as soon as we allocate them.
5103
5104 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
5105
9c6c6f49
CY
51062011-10-27 Chong Yidong <cyd@gnu.org>
5107
9aba6043
SM
5108 * gnutls.c (emacs_gnutls_deinit): New function.
5109 Deallocate credentials structures as well as calling gnutls_deinit.
9c6c6f49
CY
5110 (Fgnutls_deinit, Fgnutls_boot): Use it.
5111
5112 * process.c (make_process): Initialize GnuTLS credentials to NULL.
5113 (deactivate_process): Call emacs_gnutls_deinit.
5114
657d08d3
JB
51152011-10-27 Juanma Barranquero <lekktu@gmail.com>
5116
5117 * image.c (x_create_x_image_and_pixmap):
5118 * w32.c (sys_rename, w32_delayed_load):
5119 * w32font.c (fill_in_logfont):
5120 * w32reg.c (x_get_string_resource): Silence compiler warnings.
5121
5430d399
JB
51222011-10-26 Juanma Barranquero <lekktu@gmail.com>
5123
5124 * w32fns.c (w32_default_color_map): New function,
5125 extracted from Fw32_default_color_map.
a7ef684b 5126 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
5430d399 5127
fe0055fa
PE
51282011-10-25 Paul Eggert <eggert@cs.ucla.edu>
5129
5130 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
5131
e6346438
SM
51322011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
5133
5134 * keyboard.c (test_undefined): New function (bug#9751).
5135 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
5136
e112cc37
ET
51372011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
5138
5139 * sysdep.c (init_sys_modes): Fix the check for the controlling
5140 terminal (Bug#6649).
5141
7b5d6677
EZ
51422011-10-20 Eli Zaretskii <eliz@gnu.org>
5143
5144 * dispextern.h (struct bidi_it): New member next_en_type.
5145
5146 * bidi.c (bidi_line_init): Initialize the next_en_type member.
5147 (bidi_resolve_explicit_1): When next_en_pos is valid for the
5148 current character, check also for next_en_type being WEAK_EN.
5149 (bidi_resolve_weak): Don't enter the expensive loop if the current
5150 position is before next_en_pos. Record the bidi type of the first
5151 non-ET, non-BN character we find, in addition to its position.
5152 (bidi_level_of_next_char): Invalidate next_en_type when
5153 next_en_pos is over-stepped.
5154
7da0b018
PE
51552011-10-20 Paul Eggert <eggert@cs.ucla.edu>
5156
5157 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
5158 * editfns.c: Rewrite current-time-zone so that it invokes
5159 the equivalent of (format-time-string "%Z") to get the time zone name.
5160 This fixes a bug when the time zone name contains characters that
5161 need converting from the system time locale to Emacs internal format.
5162 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
5163 that patch fixed format-time-string to do the conversion, but
5164 I forgot to fix current-time-zone.
5165 (format_time_string): New function, containing most of
5166 what Fformat_time_string used to contain.
5167 (Fformat_time_string): Rewrite in terms of format_time_string.
5168 This doesn't change this function's behavior.
5169 (current-time-zone): Rewrite to use format_time_string.
5170 This fixes the bug reported by Michael Schierl in
5171 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
5172 Jason Rumney's 2007-06-07 change worked around this bug, but
5173 didn't fix it.
5174 * systime.h (tzname, timezone): Remove no-longer-used declarations.
5175
8547b010
EZ
51762011-10-19 Eli Zaretskii <eliz@gnu.org>
5177
5178 * xdisp.c (start_display): If the character at POS is displayed
5179 via a display vector, reset IT->current.dpvec_index to zero.
12b32963
EZ
5180 (try_window_reusing_current_matrix): If a line ends in a display
5181 vector or the next line starts in a display vector, continue
5182 redrawing the window even though the character position of
5183 start_row was reached.
8547b010
EZ
5184 (Bug#9771, part 2)
5185
4e948d15
CY
51862011-10-18 Chong Yidong <cyd@gnu.org>
5187
5188 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
5189 with nobreak-char-display too.
5190
4787455f
EZ
51912011-10-18 Eli Zaretskii <eliz@gnu.org>
5192
5193 Fix part 3 of bug#9771.
5194 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
5195 (bidi_resolve_neutral): Don't enter the expensive loop looking for
5196 non-neutral characters if the current character is a paragraph
5197 separator (a.k.a. Newline). This avoids running the same
5198 expensive loop twice, once when we consume the preceding newline
5199 and the other time when the line actually needs to be displayed.
5200 Avoid the loop when we see neutrals on the base embedding level
5201 following a character whose directionality is the same as the
5202 paragraph's. This avoids running the expensive loop when a line
5203 ends in a long sequence of neutrals, like control characters.
5204 Add assertion against STRONG_AL type. Slightly rearrange code
5205 that determines the type of a neutral given the first non-neutral
5206 that follows it.
5207 (bidi_level_of_next_char): Set next_en_pos to zero when
5208 invalidating its info.
5209
2c91f553
EZ
52102011-10-17 Eli Zaretskii <eliz@gnu.org>
5211
5212 * xdisp.c (push_display_prop): Determine whether to record string
5213 or buffer position by IT->string, not by IT->method. Allow
5214 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
f2ff9e88
EZ
5215 (move_it_vertically_backward): Don't look for character position
5216 immediately after the newline when in a continuation line.
5217 (Bug#9771, part 1)
2c91f553 5218
c7b08b0d
MR
52192011-10-15 Martin Rudalics <rudalics@gmx.at>
5220
5221 * window.c (coordinates_in_window): Rewrite and delabelize
5222 vertical border check. (Bug#5357) (Bug#9618)
5223
6b02f655
SM
52242011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
5225
5226 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
5227 errors in XSetWindowBorder (bug#9310).
5228
81d40c92
DA
52292011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
5230
5231 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
5232 avoid crash when xmalloc overrun checking is enabled.
5233
d4172c3b
EZ
52342011-10-13 Eli Zaretskii <eliz@gnu.org>
5235
5236 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
5237 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
5238 cursor motion with <left> and <right> arrow keys.
5239
5240 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
5241 some callers set that themselves.
5242
b00eea75
EZ
52432011-10-12 Eli Zaretskii <eliz@gnu.org>
5244
5245 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
5246 display string and the previous row comes from the same string and
5247 is empty. (Bug#9739) (Bug#9738)
5248
8fe012c4
SM
52492011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
5250
5251 * doc.c (get_doc_string): Encode file name (bug#9735).
5252
0074aef2
EZ
52532011-10-12 Eli Zaretskii <eliz@gnu.org>
5254
79beb178
EZ
5255 * bidi.c (bidi_level_of_next_char):
5256 * xdisp.c (get_visually_first_element): Remove old incorrect
5257 comments regarding the Unicode Line Separator character.
5258
0074aef2
EZ
5259 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
5260
6e4b3fbe
DA
52612011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
5262
5263 * alloc.c (Fgc_status): Do not access beyond zombies array
5264 boundary if nzombies > MAX_ZOMBIES.
5265 * alloc.c (dump_zombies): Add missing format specifier.
5266
0324f3af
PE
52672011-10-12 Paul Eggert <eggert@cs.ucla.edu>
5268
b5525cac
PE
5269 * xdisp.c (set_cursor_from_row): Simplify conditionals,
5270 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
5271
0324f3af
PE
5272 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
5273 Some packages use them to denote characters with modifiers.
5274
e9b5f888
AS
52752011-10-11 Andreas Schwab <schwab@linux-m68k.org>
5276
5277 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
5278 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
5279 matching a pp-number. Rename parameter var to var1.
5280
127827c0
SM
52812011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
5282
5283 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
5284
c8fd3bd0
GM
52852011-10-08 Glenn Morris <rgm@gnu.org>
5286
5287 * callint.c (Fcall_interactively): Give a more explicit error for the
5288 'c' case with a non-character input. (Bug#8479)
5289
352ec8ff
EZ
52902011-10-08 Eli Zaretskii <eliz@gnu.org>
5291
03669ccb
EZ
5292 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
5293 lines.
7061c986
EZ
5294 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
5295 lines that are hscrolled on the left.
03669ccb 5296
352ec8ff
EZ
5297 * dispnew.c (buffer_posn_from_coords): Account for a possible
5298 presence of header-line. (Bug#4426)
5299
a66cfb1c
SM
53002011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
5301
6b02f655
SM
5302 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
5303 Don't advertise functionality which we discourage or doesn't work.
a66cfb1c 5304
7c5ee88e
PE
53052011-10-07 Paul Eggert <eggert@cs.ucla.edu>
5306
5307 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
5308 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
5309 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
5310 this makes Emacs dump core during garbage collection on rare
5311 occasions. sizeof is obviously inferior to offsetof here, so
5312 stick with offsetof.
5313 (GC_POINTER_ALIGNMENT): New macro.
5314 (mark_memory): Omit 3rd (offset) arg; caller changed.
5315 Don't assume EMACS_INT alignment is the same as pointer alignment.
5316
df1bbe5b
SM
53172011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
5318
5319 * keyboard.c (read_key_sequence_remapped): New var.
5320 (read_key_sequence): Compute remapping in the right buffer.
5321 (command_loop_1): Use read_key_sequence's remapping directly.
5322
51553db6
SM
53232011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
5324
32c1fffd
SM
5325 * dired.c (file_name_completion): Don't expand file name.
5326 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
5327 before checking file name handler.
5328
51553db6
SM
5329 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
5330 they've been requested explicitly (bug#9591).
5331
b6bd1599 53322011-10-01 Andreas Schwab <schwab@linux-m68k.org>
fa2ec41f
AS
5333
5334 * keymap.c (Fsingle_key_description): Use make_specified_string
5335 instead of build_string to build string from push_key_description.
5336 (Bug#5193)
5337
f701dc2a
PE
53382011-09-30 Paul Eggert <eggert@cs.ucla.edu>
5339
4222c55d
PE
5340 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
5341 This fixes a Y2038 bug on 64-bit hosts.
5342 * buffer.c (reset_buffer):
5343 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
5344 (Fclear_buffer_auto_save_failure):
5345 Use 0, not -1, to represent an unset failure time, since time_t
5346 might not be signed.
5347
f701dc2a
PE
5348 Remove dependency on glibc malloc internals.
5349 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
5350 Move back here from lisp.h, but with their new implementations.
5351 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
5352 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
5353 * charset.c (charset_table_init): New static var.
5354 (syms_of_charset): Use it instead of xmalloc. This removes a
5355 dependency on glibc malloc internals. See Eli Zaretskii's comment in
5356 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
5357 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
5358 Move back to alloc.c.
5359 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
5360 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
5361
9ceebf39
JD
53622011-09-30 Jan Djärv <jan.h.d@swipnet.se>
5363
5364 * nsterm.m (windowDidResize): Call x_set_window_size only when
5365 ns_in_resize is true. Otherwise set pixelwidth/height and
5366 call change_frame_size (Bug#9628).
5367
cb993c58
PE
53682011-09-30 Paul Eggert <eggert@cs.ucla.edu>
5369
3930c88b
PE
5370 Port --enable-checking=all to Fedora 14 x86-64.
5371 * charset.c (syms_of_charset): Also account for glibc malloc's
5372 internal overhead when calculating the initial malloc maximum.
5373
cb993c58
PE
5374 Port --enable-checking=all to Fedora 14 x86.
5375 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
5376 Move to lisp.h.
5377 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
5378 (overrun_check_realloc, overrun_check_free):
5379 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
5380 That way, xmalloc returns a properly-aligned pointer even if
5381 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
5382 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
5383 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
5384 into account when calculating the initial malloc maximum.
5385 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
5386 Move here from alloc.c, so that charset.c can use it too.
5387 Properly align; the old code wasn't right for common 32-bit hosts
5388 when configured with --enable-checking=all.
5389 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
5390 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
5391
31bed486
EZ
53922011-09-29 Eli Zaretskii <eliz@gnu.org>
5393
04c70788 5394 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
31bed486
EZ
5395 use EDOM.
5396
fbcaa2f3
EZ
53972011-09-28 Eli Zaretskii <eliz@gnu.org>
5398
5399 * xdisp.c (compute_display_string_end): If there's no display
5400 string at CHARPOS, return -1.
5401
5402 * bidi.c (bidi_fetch_char): When compute_display_string_end
5403 returns a negative value, treat the character as a normal
5404 character not covered by a display string. (Bug#9624)
5405
a239d4e9
JB
54062011-09-28 Juanma Barranquero <lekktu@gmail.com>
5407
5408 * lread.c (Fread_from_string): Fix typo in docstring.
5409
88652fd5
EZ
54102011-09-27 Eli Zaretskii <eliz@gnu.org>
5411
5412 * xdisp.c (handle_invisible_prop): If invisible text ends on a
5413 newline, reseat the iterator instead of bidi-iterating there one
5414 character at a time. (Bug#9610)
32c1fffd
SM
5415 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
5416 TO_CHARPOS if the bidi iterator is at base embedding level.
88652fd5 5417
ed497dd4
AS
54182011-09-27 Andreas Schwab <schwab@linux-m68k.org>
5419
5420 * lread.c (readevalloop): Use correct code for NBSP.
5421 (read1): Likewise. (Bug#9608)
5422
b2bf61aa
MA
54232011-09-25 Michael Albinus <michael.albinus@gmx.de>
5424
5425 * dbusbind.c (Fdbus_register_signal): When service is not
5426 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
5427
32bbb17c
GM
54282011-09-25 Glenn Morris <rgm@gnu.org>
5429
5430 * buffer.c (truncate-lines): Doc fix.
5431
94e0933e
CY
54322011-09-24 Chong Yidong <cyd@stupidchicken.com>
5433
5434 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
5435 (Fset_window_next_buffers): Doc fix.
5436
cddde921
GM
54372011-09-24 Glenn Morris <rgm@gnu.org>
5438
5439 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
5440
1260aef1
PE
54412011-09-24 Paul Eggert <eggert@cs.ucla.edu>
5442
25b4bfa0
PE
5443 Fix minor problems found by static checking.
5444 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
1260aef1
PE
5445 * indent.c (Fvertical_motion): Fix == vs = typo.
5446
e3cbd34b
EZ
54472011-09-24 Eli Zaretskii <eliz@gnu.org>
5448
a66cfb1c
SM
5449 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
5450 Default value is now t. Doc fix.
6bf7006f 5451
e3cbd34b 5452 * indent.c (Fvertical_motion): Compute and apply the overshoot
32c1fffd 5453 logic when moving up, not only when moving down. Fix the
e3cbd34b 5454 confusing name and values of the it_overshoot_expected variable;
32c1fffd 5455 logic changes accordingly. (Bug#9254) (Bug#9549)
e3cbd34b
EZ
5456
5457 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
5458 CHARPOS is covered by a display string which includes newlines.
5459 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
5460 is covered by a display string with embedded newlines.
5461
a3de0cbd
MA
54622011-09-24 Michael Albinus <michael.albinus@gmx.de>
5463
5464 * dbusbind.c (Fdbus_register_signal): Add match rule to
5465 Vdbus_registered_objects_table. (Bug#9581)
a66cfb1c
SM
5466 (Fdbus_register_method, Vdbus_registered_objects_table):
5467 Fix docstring.
a3de0cbd 5468
b260039d
JM
54692011-09-24 Jim Meyering <meyering@redhat.com>
5470
32c1fffd 5471 do not ignore write error for any output size
b260039d
JM
5472 The previous change was incomplete.
5473 While it makes emacs --batch detect the vast majority of stdout
5474 write failures, errors were still ignored whenever the output size is
5475 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
5476 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
5477 && echo FAIL: ignored write error
5478 FAIL: ignored write error
5479 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
5480 && echo FAIL: ignored write error
5481 FAIL: ignored write error
5482 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
5483
8eca8a7c
AS
54842011-09-23 Andreas Schwab <schwab@linux-m68k.org>
5485
5486 * emacs.c (Fkill_emacs): In noninteractive mode exit
5487 non-successfully if a write error occurred on stdout. (Bug#9574)
5488
3341db62
EZ
54892011-09-21 Eli Zaretskii <eliz@gnu.org>
5490
5491 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
5492 the xassert test.
5493
5494 * dispextern.h (struct it): Update the comment documenting what
5495 can it->OBJECT be.
5496
8c203dbf
EZ
54972011-09-20 Eli Zaretskii <eliz@gnu.org>
5498
5499 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
5500 a display string, extend search for cursor position to end of row.
5501 (find_row_edges): If the row ends in a newline from a display
5502 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
5503 Handle the case of a display string with multiple newlines.
fd317ddf
EZ
5504 (Fcurrent_bidi_paragraph_direction): Fix search for previous
5505 non-empty line. Fixes confusing cursor motion with arrow keys at
5506 the beginning of a line that starts with whitespace.
8c203dbf 5507
a4824228
LMI
55082011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
5509
5510 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
5511 (bug#9493).
5512
33ed493b
CY
55132011-09-18 Chong Yidong <cyd@stupidchicken.com>
5514
5515 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
5516 boolean (Bug#9154).
5517
56cd55c8
EZ
55182011-09-18 Eli Zaretskii <eliz@gnu.org>
5519
5520 * xdisp.c (display_line): Record maximum and minimum buffer
5521 positions even if no glyphs were produced (e.g., by a zero-width
5522 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
5523 buffer positions that will be removed from the glyph row because
5524 they don't fit.
c02dcedf
EZ
5525 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
5526 column is beyond frame width: don't subtract 1 "pixel" when
5527 computing width of the stretch.
3e62b7e0
EZ
5528 (reseat_at_next_visible_line_start): Undo the change made on
5529 2011-09-17 that saved paragraph information and restored it after
5530 the call to `reseat'. (Bug#9545)
56cd55c8 5531
5ed99d36 55322011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3390454c
YM
5533
5534 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
5535 and turn window cursor on if cleared (Bug#9415).
5536
5ed99d36 55372011-09-18 Andreas Schwab <schwab@linux-m68k.org>
edb7b4dc
AS
5538
5539 * search.c (boyer_moore): Take unibyte characters from pattern
5540 literally. (Bug#9458)
5541
9bade7b2
EZ
55422011-09-18 Eli Zaretskii <eliz@gnu.org>
5543
5544 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
5545
e5e9d610
PE
55462011-09-18 Paul Eggert <eggert@cs.ucla.edu>
5547
87e4427a
PE
5548 Fix minor problem found by static checking.
5549 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
5550 initialized, to pacify gcc -Wuninitialized.
5551
e5e9d610
PE
5552 * fileio.c: Report proper errno when syscall falls.
5553 (Finsert_file_contents): Save and restore errno,
5554 so that report_file_error outputs the correct diagnostic.
5555 (Fwrite_region) [CLASH_DETECTION]: Likewise.
5556
a1674f0b
EZ
55572011-09-18 Eli Zaretskii <eliz@gnu.org>
5558
5559 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
5560
fbfb6dd4
EZ
55612011-09-17 Eli Zaretskii <eliz@gnu.org>
5562
5563 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
5564 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
5565
bb187662
EZ
55662011-09-17 Eli Zaretskii <eliz@gnu.org>
5567
1137e8b8 5568 * xdisp.c (reseat_at_next_visible_line_start): Keep information
6b02f655 5569 about the current paragraph and restore it after the call to reseat.
1137e8b8
EZ
5570
5571 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
5572 (bidi_find_paragraph_start): Search back for paragraph beginning
5573 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
5574 (bidi_move_to_visually_next): Only trigger paragraph-related
5575 computations when the last character is a newline or at EOB, not
5576 just any NEUTRAL_B. (Bug#9470)
5577
bb187662
EZ
5578 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
5579 truncated lines if point is covered by a display string. (Bug#9524)
5580
2e621251
PE
55812011-09-16 Paul Eggert <eggert@cs.ucla.edu>
5582
5583 * xselect.c: Relax test for outgoing X longs (Bug#9498).
5584 (cons_to_x_long): New function.
5585 (lisp_data_to_selection_data): Use it. Correct the test for
5586 short-versus-long data; it was negated. Break out of vector
5587 loop, for efficiency, when a long datum is discovered.
5588
91a15bc6
SM
55892011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
5590
5591 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
5592
b41c3a35
EZ
55932011-09-16 Eli Zaretskii <eliz@gnu.org>
5594
5595 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
5596 GCC PR/17406) by declaring this function with external scope.
5597
7812ba2d
PE
55982011-09-15 Paul Eggert <eggert@cs.ucla.edu>
5599
5600 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
5601 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
5602
cf7edc2a
AS
56032011-09-15 Andreas Schwab <schwab@linux-m68k.org>
5604
5605 * editfns.c (Fformat): Correctly handle text properties on "%%".
5606
bd01620e
EZ
56072011-09-15 Eli Zaretskii <eliz@gnu.org>
5608
5609 * xterm.c (x_draw_composite_glyph_string_foreground):
5610 * w32term.c (x_draw_composite_glyph_string_foreground):
5611 * term.c (encode_terminal_code):
5612 * composite.c (composition_update_it, get_composition_id):
5613 * xdisp.c (get_next_display_element)
5614 (fill_composite_glyph_string): Add comments about special meaning
5615 of TAB characters in a composition.
5616
a02719a3
PE
56172011-09-15 Paul Eggert <eggert@cs.ucla.edu>
5618
5619 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
4c122725
PE
5620 This occurs when processing a multibyte format.
5621 Problem reported by Wolfgang Jenker.
a02719a3 5622
72589a3c
JB
56232011-09-15 Johan Bockgård <bojohan@gnu.org>
5624
5625 * xdisp.c (try_cursor_movement): Only check for exact match if
5626 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
5627
1c14176c
PE
56282011-09-14 Paul Eggert <eggert@cs.ucla.edu>
5629
5630 Remove unused external symbols.
5631 * dispextern.h (calc_pixel_width_or_height): Remove decl.
5632 * xdisp.c (calc_pixel_width_or_height): Now static.
5633 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
5634 * indent.c (check_display_width):
5635 * w32term.c: Fix comment to match code.
5636 * xterm.c, xterm.h (x_catching_errors): Remove.
5637
d2eea5b5
PE
56382011-09-14 Paul Eggert <eggert@cs.ucla.edu>
5639
5640 * xselect.c: Use signed conversions more consistently (Bug#9498).
5641 (selection_data_to_lisp_data): Assume incoming selection data are
5642 signed integers, not unsigned. This is to be consistent with
5643 outgoing selection data, which was modified to use signed integers
5644 in as part of the fix to Bug#9196 in response to Jan D.'s comment
5645 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
5646 expects long, not unsigned long.
5647
46888499
EZ
56482011-09-14 Eli Zaretskii <eliz@gnu.org>
5649
5650 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
5651 computation of loop end. Reported by Johan Bockgård
5652 <bojohan@gnu.org>.
5653
ef8ef9fb
CY
56542011-09-13 Chong Yidong <cyd@stupidchicken.com>
5655
5656 * frame.c (Fother_visible_frames_p): Function deleted.
5657
fa819fed
EZ
56582011-09-12 Eli Zaretskii <eliz@gnu.org>
5659
5660 * indent.c (compute_motion): Process display vector front to back
5661 rather than the other way around. (Bug#2496)
5662
2ba8e008
SM
56632011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
5664
5665 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
5666
20f53c69
CY
56672011-09-11 Chong Yidong <cyd@stupidchicken.com>
5668
5669 * minibuf.c (Fread_from_minibuffer): Doc fix.
5670
d562d7a4
EZ
56712011-09-11 Eli Zaretskii <eliz@gnu.org>
5672
5673 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
5674 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
5675
1c4d7f3d
LMI
56762011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
5677
5678 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
5679 value for non-existent files.
5680
b885bf36
EZ
56812011-09-11 Eli Zaretskii <eliz@gnu.org>
5682
5683 * fileio.c (Finsert_file_contents): If the file cannot be opened,
5684 set its "size" to -1. This will set the modtime_size field of
5685 the corresponding buffer to -1, which is what
5686 verify-visited-file-modtime expects for files that do not exist.
5687 (Bug#9139)
5688
6612f0bf
PE
56892011-09-11 Paul Eggert <eggert@cs.ucla.edu>
5690
5691 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
5692 here ...
5693 * lisp.h: ... from here. push_key_description is no longer
5694 defined in keyboard.c, so its declaration should not be in
5695 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
5696 logically belongs with push_key_description.
5697
dfb3f755
PE
56982011-09-10 Paul Eggert <eggert@cs.ucla.edu>
5699
5700 * buffer.h: Include <sys/types.h> instead of <time.h>.
5701 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
5702 Problem reported by Herbert J. Skuhra.
5703
3134906c
LMI
57042011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
5705
5706 * xml.c (parse_region): Make the parsing work for
5707 non-comment-starting XML files again (bug#9144).
5708
8d903f4e
AS
57092011-09-10 Andreas Schwab <schwab@linux-m68k.org>
5710
5711 * image.c (gif_load): Fix calculation of bottom and right corner.
5712 (Bug#9468)
5713
80ad64f4
EZ
57142011-09-10 Eli Zaretskii <eliz@gnu.org>
5715
5716 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
5717 redisplay in small windows.
5718
208a048d
EZ
57192011-09-09 Eli Zaretskii <eliz@gnu.org>
5720
5721 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
5722
9b1c252e
MR
57232011-09-08 Martin Rudalics <rudalics@gmx.at>
5724
5725 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
5726 Operate on live windows only.
5727
2949f33b
JB
57282011-09-08 Juanma Barranquero <lekktu@gmail.com>
5729
5730 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
5731
e08dcafd
EZ
57322011-09-07 Eli Zaretskii <eliz@gnu.org>
5733
5734 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
5735 only under bidi iteration.
5736
115b96bd
JD
57372011-09-07 Jan Djärv <jan.h.d@swipnet.se>
5738
5739 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
5740
c8199d0f
PE
57412011-09-06 Paul Eggert <eggert@cs.ucla.edu>
5742
5743 isnan: Fix porting problem to Solaris 10 with bundled gcc.
5744 Without this fix, the command to link temacs failed due to an
5745 undefined symbol __builtin_isnan. This is because
5746 /usr/include/iso/math_c99.h #defines isnan(x) to
5747 __builtin_isnan(x), but the bundled gcc, which identifies itself
5748 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
5749 a __builtin_isnan.
5750 * floatfns.c (isnan): #undef, and then #define to a clone of
5751 what's in data.c.
5752 (Fisnan): Always define, since it's always available now.
5753 (syms_of_floatfns): Always define isnan at the Lisp level.
5754
e39b275c 57552011-09-06 Paul Eggert <eggert@cs.ucla.edu>
1c262cae
PE
5756
5757 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
5758
b2db44d9 57592011-09-06 Paul Eggert <eggert@cs.ucla.edu>
728f8f0a 5760
f4af5137 5761 * fileio.c: Fix bugs with large file offsets (Bug#9428).
728f8f0a
PE
5762 The previous code assumed that file offsets (off_t values) fit in
5763 EMACS_INT variables, which is not true on typical 32-bit hosts.
5764 The code messed up by falsely reporting buffer overflow in cases
5765 such as (insert-file-contents "big" nil 1 2) into an empty buffer
5766 when "big" contains more than 2**29 bytes, even though this
5767 inserts just one byte and does not overflow the buffer.
5768 (Finsert_file_contents): Store file offsets as off_t
5769 values, not as EMACS_INT values. Check for overflow when
5770 converting between EMACS_INT and off_t. When checking for
5771 buffer overflow or for overlap, take the offsets into account.
5772 Don't use EMACS_INT for small values where int suffices.
5773 When checking for overlap, fix a typo: ZV was used where
5774 ZV_BYTE was intended.
5775 (Fwrite_region): Don't assume off_t fits into 'long'.
5776 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
5777
ecfc0a49
MA
57782011-09-05 Michael Albinus <michael.albinus@gmx.de>
5779
5780 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
5781
6511acf2 57822011-09-04 Paul Eggert <eggert@cs.ucla.edu>
61bfeeb7 5783
0999621a 5784 sprintf-related integer and memory overflow issues (Bug#9412).
62f19c19
PE
5785
5786 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
8666506e 5787 (esprintf, exprintf, evxprintf): New functions.
62f19c19 5788 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
6b02f655 5789 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
62f19c19
PE
5790 (modify_event_symbol): Do not assume that the length of
5791 name_alist_or_stem is safe to alloca and fits in int.
5792 (Fexecute_extended_command): Likewise for function name and binding.
5793 (Frecursion_depth): Wrap around reliably on integer overflow.
5794 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
5795 since some callers pass EMACS_INT values.
5796 (Fsingle_key_description): Don't crash if symbol name contains more
5797 than MAX_ALLOCA bytes.
5798 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
5799 (get_minibuffer): Arg is now EMACS_INT, not int.
5800 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
8666506e 5801 (esprintf, exprintf, evxprintf): New decls.
62f19c19
PE
5802 * window.h (command_loop_level, minibuf_level): Reflect API changes.
5803
2be7d702
PE
5804 * dbusbind.c (signature_cat): New function.
5805 (xd_signature, Fdbus_register_signal):
2ea16b89
PE
5806 Do not overrun buffer; instead, report string overflow.
5807
9d1df220
PE
5808 * dispnew.c (add_window_display_history): Don't overrun buffer.
5809 Truncate instead; this is OK since it's just a log.
5810
33ef5c64
PE
5811 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
5812 even if the time zone offset is outlandishly large.
5813 Don't mishandle offset == INT_MIN.
5814
66c6fdd5
PE
5815 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
5816 when creating daemon; the previous buffer-overflow check was incorrect.
5817
d749b01b
PE
5818 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
5819 which has the guts of the old verror function.
5820
b5cd1905
PE
5821 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
5822 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
5823
6e1a67fb
PE
5824 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
5825 (font_unparse_xlfd): Don't blindly alloca long strings.
c21721cc 5826 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
8666506e 5827 fits in int, when using sprintf. Use single snprintf to count
c21721cc
PE
5828 length of string rather than counting it via multiple sprintfs;
5829 that's simpler and more reliable.
c21721cc
PE
5830 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
5831 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
5832 sprintf, in case result does not fit in int.
5833
c57b67fc
PE
5834 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
5835 (fontset_from_font): Print it.
5836
8a401434
PE
5837 * frame.c (tty_frame_count): Now printmax_t, not int.
5838 (make_terminal_frame, set_term_frame_name): Print it.
5839 (x_report_frame_params): In X, window IDs are unsigned long,
5840 not signed long, so print them as unsigned.
5841 (validate_x_resource_name): Check for implausibly long names,
5842 and don't assume name length fits in 'int'.
5843 (x_get_resource_string): Don't blindly alloca invocation name;
5844 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
5845 not fit in int.
5846
6e1a67fb
PE
5847 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
5848 (xg_check_special_colors, xg_set_geometry):
84722b3d
PE
5849 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
5850
0df02bf3
PE
5851 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
5852 Use esprintf, not sprintf, in case result does not fit in int.
5853
48e30793
PE
5854 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
5855 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
5856 it as a large positive number.
5857 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
5858 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
5859
a66ff6d8
PE
5860 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
5861 in case result does not fit in int.
5862
aca216ff
PE
5863 * print.c (float_to_string): Detect width overflow more reliably.
5864 (print_object): Make sprintf buffer a bit bigger, to avoid potential
5865 buffer overrun. Don't assume list length fits in 'int'. Treat
5866 print length of 0 as 0, not as infinity; to be consistent with other
5867 uses of print length in this function. Don't overflow print length
5868 index. Don't assume hash table size fits in 'long', or that
5869 vectorlike size fits in 'unsigned long'.
5870
31c286f7
PE
5871 * process.c (make_process): Use printmax_t, not int, to format
5872 process-name gensyms.
5873
55e5faa1
PE
5874 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
5875
80f2e268
PE
5876 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
5877 to avoid potential buffer overrun.
5878
670741ab
PE
5879 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
5880 if X resource line is longer than 512 bytes.
5881
b7163a50
PE
5882 * xfns.c (x_window): Make sprintf buffer a bit bigger
5883 to avoid potential buffer overrun.
5884
ae58ff1f
PE
5885 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
5886
c43c8a6a
PE
5887 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
5888
3f8236f4
PE
58892011-09-04 Paul Eggert <eggert@cs.ucla.edu>
5890
53e9fe90 5891 Integer overflow fixes for scrolling, etc.
6511acf2
PE
5892 Without these, Emacs silently mishandles large integers sometimes.
5893 For example, "C-u 4294967297 M-x recenter" was treated as if
53e9fe90
PE
5894 it were "C-u 1 M-x recenter" on a typical 64-bit host.
5895
6511acf2
PE
5896 * xdisp.c (try_window_id): Check Emacs fixnum range before
5897 converting to 'int'.
806add1d 5898
6511acf2 5899 * window.c (window_scroll_line_based, Frecenter):
71f02bc5
PE
5900 Check that an Emacs fixnum is in range before assigning it to 'int'.
5901 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
5902 values converted from Emacs fixnums.
5903 (Frecenter): Don't wrap around a line count if it is out of 'int'
5904 range; instead, treat it as an extreme value.
5905 (Fset_window_configuration, compare_window_configurations):
5906 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
5907
6511acf2
PE
5908 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
5909 that can exceed INT_MAX. Check that EMACS_INT value is in range
5910 before assigning it to the (possibly-narrower) index.
a0efffc8
PE
5911 (match_limit): Don't assume that a fixnum can fit in 'int'.
5912
6511acf2 5913 * print.c (print_object): Use ptrdiff_t, not int, for index that can
29ebea3b
PE
5914 exceed INT_MAX.
5915
6511acf2 5916 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
3f8236f4
PE
5917 (Fvertical_motion): Don't wrap around LINES values that don't fit
5918 in 'int'. Instead, treat them as extreme values. This is good
5919 enough for windows, which can't have more than INT_MAX lines anyway.
5920
fcb901a7
LMI
59212011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
5922
0f2f6b6d
LMI
5923 * Require libxml/parser.h to avoid compilation warning.
5924
fcb901a7
LMI
5925 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
5926
5927 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
5928 since this reportedly can destroy thread storage.
5929
6e20a0d4
CY
59302011-08-30 Chong Yidong <cyd@stupidchicken.com>
5931
5932 * syntax.c (find_defun_start): Update all cache variables if
5933 exiting early (Bug#9401).
5934
148ae00e
EZ
59352011-08-30 Eli Zaretskii <eliz@gnu.org>
5936
f6cfbd8f
EZ
5937 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
5938
148ae00e
EZ
5939 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
5940 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
5941 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
5942
5943 * term.c (tty_append_glyph): New function.
5944 (produce_stretch_glyph): Static function and its prototype deleted.
5945
a66cfb1c
SM
5946 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
5947 Add prototypes.
148ae00e 5948
c4a07a4c
PE
59492011-08-29 Paul Eggert <eggert@cs.ucla.edu>
5950
5951 * image.c (parse_image_spec): Check for nonnegative, not for positive,
5952 when checking :margin (Bug#9390).
5953 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
a66cfb1c 5954 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
c4a07a4c
PE
5955 so that the name doesn't mislead. All uses changed.
5956
6bc8cd65
JB
59572011-08-28 Johan Bockgård <bojohan@gnu.org>
5958
5959 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
5960 set_tty_hooks.
5961
dca4927e
EZ
59622011-08-27 Eli Zaretskii <eliz@gnu.org>
5963
5964 * xdisp.c (move_it_to): Don't bail out early when reaching
5965 position beyond to_charpos, if we are scanning backwards.
5966 (move_it_vertically_backward): When DY == 0, make sure we get to
5967 the first character in the line after the newline.
5968
f2cad773
PE
59692011-08-27 Paul Eggert <eggert@cs.ucla.edu>
5970
5971 * ccl.c: Improve and simplify overflow checking (Bug#9196).
5972 (ccl_driver): Do not generate an out-of-range pointer.
5973 (Fccl_execute_on_string): Remove unnecessary check for
5974 integer overflow, noted by Stefan Monnier in
5975 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
5976 Remove a FIXME that didn't need fixing.
5977 Simplify the newly-introduced buffer reallocation code.
5978
0cae2cdb
JB
59792011-08-27 Juanma Barranquero <lekktu@gmail.com>
5980
5981 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
5982
5fc295a4 59832011-08-26 Paul Eggert <eggert@cs.ucla.edu>
ddff3151 5984
70c60eb2 5985 Integer and memory overflow issues (Bug#9196).
726e0ab1 5986
d31850da
PE
5987 * doc.c (get_doc_string): Rework so that
5988 get_doc_string_buffer_size is the actual buffer size, rather than
5989 being 1 less than the actual buffer size; this makes xpalloc more
5990 convenient.
5991
a69fbedb
PE
5992 * image.c (x_allocate_bitmap_record, cache_image):
5993 * xselect.c (Fx_register_dnd_atom):
5994 Simplify previous changes by using xpalloc.
5995
fe5c5d37
PE
5996 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
5997 since either will do and ptrdiff_t is convenient with xpalloc.
5998
0065d054
PE
5999 * charset.c (charset_table_size)
6000 (struct charset_sort_data.priority): Now ptrdiff_t.
6001 (charset_compare): Don't overflow if priorities differ greatly.
6002 (Fsort_charsets): Don't assume list length fits in int.
6003 Check for size-calculation overflow when allocating sort data.
6004 (syms_of_charset): Allocate an initial charset table that is
6005 just under 64 KiB, to avoid problems with glibc malloc and mmap.
6006
6007 * cmds.c (internal_self_insert): Check for size-calculation overflow.
6008
6009 * composite.h (struct composition.glyph_len): Now int, not unsigned.
6010 The actual value is always <= INT_MAX, and leaving it unsigned made
6011 overflow checking harder.
6012
6013 * dispextern.h (struct glyph_matrix.rows_allocated)
6014 (struct face_cache.size): Now ptrdiff_t, for convenience in use
6015 with xpalloc. The values are still always <= INT_MAX.
6016
6017 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
6018
6019 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
6020 (SAFE_NALLOCA): New macro.
6021
6022 * region-cache.c (struct boundary.pos, find_cache_boundary)
6023 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
6024 (set_cache_region, invalidate_region_cache)
6025 (revalidate_region_cache, know_region_cache, region_cache_forward)
6026 (region_cache_backward, pp_cache):
6027 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
6028 so that ptrdiff_t * can be passed to xpalloc.
6029 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
6030 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
6031 (pp_cache): Don't assume cache_len fits in int.
6032 * region-cache.h: Adjust extern decls to match.
6033
6034 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
6035 EMACS_INT, since either will do, for xpalloc.
6036
6037 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
6038 (xnmalloc, xnrealloc, xpalloc): New functions.
6039
726e0ab1
PE
6040 * bidi.c (bidi_shelve_header_size): New constant.
6041 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
6042 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
6043
51f30bc5 6044 * bidi.c (bidi_cache_shrink):
726e0ab1
PE
6045 * buffer.c (overlays_at, overlays_in, record_overlay_string)
6046 (overlay_strings):
6047 Don't update size of array until after memory allocation succeeds,
6048 because xmalloc/xrealloc may not return.
0065d054
PE
6049 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
6050 now that we have proper integer overflow checking.
6051 (record_overlay_string, overlay_strings): Catch overflows when
6052 calculating size of overlay_str_buf.
726e0ab1 6053
0065d054
PE
6054 * callproc.c (Fcall_process): Check for size overflow when
6055 calculating size of args2.
6056 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
6057 Normally we prefer signed values, but sticking with ptrdiff_t would
6058 require adding more-complicated checks.
726e0ab1
PE
6059
6060 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
6061 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
6062 Redo buffer-overflow calculations to avoid integer overflow.
0065d054 6063 Add a FIXME comment where memory seems to be over-allocated.
726e0ab1
PE
6064
6065 * character.c (Fstring): Check for size-calculation overflow.
6066
6067 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
6068 unnecessary integer overflow. Check for size overflow.
6069 (encode_coding_object): Don't update size until xmalloc succeeds.
6070
6071 * composite.c (get_composition_id): Check for overflow in glyph
6072 length calculations.
6073
6074 Integer and memory overflow fixes for display code.
6075 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
6076 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
6077 (scrolling_window): Check for overflow in size calculations.
6078 (line_draw_cost, realloc_glyph_pool, add_row_entry):
6079 Don't assume glyph table len fits in int.
6080 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
6081 (row_table_size): Now ptrdiff_t, not int.
6082 (scrolling_window): Avoid overflow in size calculations.
6083 Don't update size until allocation succeeds.
6084 * fns.c (concat): Check for overflow in size calculations.
6085 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
6086 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
6087 (NEXT_ALMOST_PRIME_LIMIT): New constant.
6088
6089 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
6090 (get_doc_string): Check for size calculation overflow.
6091 Don't update size until allocation succeeds.
6092 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
6093 EMACS_INT, where ptrdiff_t will do.
6094 (Fsubstitute_command_keys): Check for string overflow.
6095
6096 * editfns.c (set_time_zone_rule): Don't assume environment length
6097 fits in int.
6098 (message_length): Now ptrdiff_t, not int.
6099 (Fmessage_box): Don't update size until allocation succeeds.
6100 Don't assume message length fits in int.
6101 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
6102
0065d054
PE
6103 * emacs.c (main): Do not reallocate argv, since there is a null at
6104 the end that can be overwritten, and this way there's no need to
6105 worry about size-calculation overflow.
6106 (sort_args): Check for size-calculation overflow.
726e0ab1
PE
6107
6108 * eval.c (init_eval_once, grow_specpdl): Don't update size until
6109 alloc succeeds.
6110 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
6111
6112 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
6113 (x_set_scroll_bar_width, x_figure_window_size):
6114 Check for integer overflow.
6115 (x_set_alpha): Do not assume XINT fits in int.
6116
6117 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
6118 This is for the members text_lines, text_cols, total_lines, total_cols,
6119 where the system imposes an 'int' limit.
6120
6121 * fringe.c (Fdefine_fringe_bitmap):
6122 Don't update size until alloc works.
6123
6124 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
6125 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
6126
6127 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
6128 Check for size-calculation overflow.
6129 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
6130 do, as we prefer signed integers.
6131 (id_to_widget.max_size, id_to_widget.used)
6132 (xg_store_widget_in_map, xg_remove_widget_from_map)
6133 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
6134 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
6135 Use and return ptrdiff_t, not int.
6136 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
6137 * gtkutil.h: Change prototypes to match the above.
6138
6139 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
6140 are duplicate now that they've been promoted to lisp.h.
6141 (x_allocate_bitmap_record, x_alloc_image_color)
6142 (make_image_cache, cache_image, xpm_load):
6143 Don't update size until alloc is done.
6144 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
6145 (x_detect_edges):
3256efce 6146 Check for size calculation overflow.
726e0ab1
PE
6147 (ct_colors_allocated_max): New constant.
6148 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
6149 overflow.
3256efce 6150
726e0ab1
PE
6151 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
6152 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
6153 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
6154 Use ptrdiff_t, not int, to count maps.
6155 (read_char_minibuf_menu_prompt): Check for overflow in size
a66cfb1c
SM
6156 calculations. Don't update size until allocation succeeds.
6157 Redo calculations to avoid overflow.
726e0ab1
PE
6158 * keyboard.h: Change prototypes to match the above.
6159
6160 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
6161 to count maps.
6162 (current_minor_maps): Check for size calculation overflow.
6163 * keymap.h: Change prototypes to match the above.
6164
6165 * lread.c (read1, init_obarray): Don't update size until alloc done.
6166
6167 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
6168 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
6169
726e0ab1
PE
6170 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
6171 Now ptrdiff_t, not int.
6172 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
6173 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
6174
6175 * process.c (Fnetwork_interface_list): Check for overflow
6176 in size calculation.
6177
6178 * region-cache.c (move_cache_gap): Check for size calculation overflow.
6179
6180 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
6181 overflow. Don't bother calling xmalloc when xrealloc will do.
6182
6183 * search.c (Freplace_match): Check for size calculation overflow.
6184 (Fset_match_data): Don't assume list lengths fit in 'int'.
6185
6186 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
6187 for command line length. Do not attempt to address one before the
6188 beginning of an array, as that's not portable.
6189
6190 * term.c (max_frame_lines): Remove; unused.
6191 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
6192 not int.
6193 (encode_terminal_code, calculate_costs): Check for size
6194 calculation overflow.
6195 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
6196 table lengths and related sizes. Don't update size until alloc
6197 done. Redo calculations to avoid overflow.
6198 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
6199
6200 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
6201 subtracting pointers.
6202 (gobble_line): Check for overflow more carefully. Don't update size
6203 until alloc done.
6204
6205 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
6206 Don't update size until alloc done.
6207 Redo size calculations to avoid overflow.
6208 Check for size calculation overflow.
0065d054 6209 (main) [DEBUG]: Fix typo in invoking tparam1.
726e0ab1
PE
6210
6211 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
6212 Use ptrdiff_t, not int, for sizes.
6213 (store_mode_line_noprop_char): Don't update size until alloc done.
6214
0065d054
PE
6215 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
6216 Use ptrdiff_t, not int, for sizes.
6217 (Finternal_make_lisp_face, cache_face):
6218 Check for size calculation overflow.
6219 (cache_face): Treat size calculation overflows as if they were
6220 memory exhaustion (the usual treatment), rather than aborting.
726e0ab1
PE
6221
6222 * xfns.c (x_encode_text, x_set_name_internal)
6223 (Fx_change_window_property): Use ptrdiff_t, not int, to count
6224 sizes, since they can exceed INT_MAX in size. Check for size
6225 calculation overflow.
6226
0065d054
PE
6227 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
6228 (xg_select): Check for size calculation overflow.
726e0ab1
PE
6229 Don't update size until alloc done.
6230
0065d054 6231 * xrdb.c (get_environ_db): Don't assume path length fits in int,
726e0ab1 6232 as sprintf is limited to int lengths.
1d526e2f 6233
252c5ee1
PE
6234 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
6235 (X_LONG_MIN): New macros.
864d7ce7
PE
6236 Use them to make the following changes clearer.
6237 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
6238 This change doesn't affect the value now, but it may help remind
6239 future maintainers not to raise the value too much later.
6240 (SELECTION_QUANTUM): Remove, replacing with ...
6241 (selection_quantum): ... new function, which avoids overflow.
6242 All uses changed.
6243 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
6244 assumption that selection length fits in 'int'.
6245 (x_reply_selection_request, x_handle_selection_request)
6246 (x_get_window_property, receive_incremental_selection)
6247 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
6248 (lisp_data_to_selection_data, clean_local_selection_data):
6249 Use ptrdiff_t, not int, to record length of selection.
6250 (x_reply_selection_request, x_get_window_property)
6251 (receive_incremental_selection, x_property_data_to_lisp):
6252 Redo calculations to avoid overflow.
6253 (x_reply_selection_request): When sending hint, ceiling it at
252c5ee1 6254 X_LONG_MAX rather than relying on wraparound overflow to send
864d7ce7
PE
6255 something.
6256 (x_get_window_property, receive_incremental_selection)
6257 (lisp_data_to_selection_data, x_property_data_to_lisp):
6258 Check for size-calculation overflow.
6259 (x_get_window_property, receive_incremental_selection)
6260 (lisp_data_to_selection_data, Fx_register_dnd_atom):
6261 Don't store size until memory allocation succeeds.
6262 (x_get_window_property): Plug memory leak on memory exhaustion.
6263 Don't double-block input; malloc is safe here. Don't assume 2**34
6264 - 4 fits in unsigned long. Add an xassert to check
6265 XGetWindowProperty overflow. Be more careful about overflow
6266 calculations, and distinguish size from memory overflow better.
6267 (receive_incremental_selection): When tracing, don't assume
6268 unsigned int is less than INT_MAX.
6269 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
6270 harmful) conversions of unsigned short to int.
6271 (lisp_data_to_selection_data): Don't assume that integers
6272 in the range -65535 through -1 fit in an X unsigned short.
6273 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
6274 result parameters unless successful. Rely on cons_to_unsigned
6275 to report problems with elements; the old code wasn't right anyway.
6276 (x_check_property_data): Check for int overflow; we cannot use
6277 a wider type due to X limits.
6278 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
6279
726e0ab1 6280 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
34db673b 6281
0065d054
PE
6282 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
6283 (x_term_init): Check for size calculation overflow.
726e0ab1
PE
6284 (x_color_cells): Don't store size until memory allocation succeeds.
6285 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
0065d054 6286 Don't assume alloca size is less than MAX_ALLOCA.
726e0ab1
PE
6287 (x_term_init): Don't assume length fits in int (sprintf is limited
6288 to int size).
bc18e09d 6289
ebfa62c0
PE
6290 Use ptrdiff_t for composition IDs.
6291 * character.c (lisp_string_width):
6292 * composite.c (composition_table_size, n_compositions)
6293 (get_composition_id, composition_gstring_from_id):
6294 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
6295 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
6296 * window.c (Frecenter):
6297 Use ptrdiff_t, not int, for composition IDs.
6298 * composite.c (get_composition_id): Check for integer overflow.
6299 * composite.h: Adjust prototypes to match the above changes.
6300
d3411f89
PE
6301 Use ptrdiff_t for hash table indexes.
6302 * category.c (hash_get_category_set):
6303 * ccl.c (ccl_driver):
6304 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
6305 * coding.c (coding_system_charset_list, detect_coding_system):
6306 * coding.h (struct coding_system.id):
6307 * composite.c (get_composition_id, gstring_lookup_cache):
6308 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
6309 * image.c (xpm_get_color_table_h):
6310 * lisp.h (hash_lookup, hash_put):
6311 * minibuf.c (Ftest_completion):
6312 Use ptrdiff_t for hash table indexes, not int (which is too
6313 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
6314 32-bit --with-wide-int hosts).
6315
e097a6fa
PE
6316 * charset.c (Fdefine_charset_internal): Check for integer overflow.
6317 Add a FIXME comment about memory leaks.
6318 (syms_of_charset): Don't assume xmalloc returns.
6319
5637687f
PE
6320 Don't assume that stated character widths fit in int.
6321 * character.c (Fchar_width, c_string_width, lisp_string_width):
6322 * character.h (CHAR_WIDTH):
6323 * indent.c (MULTIBYTE_BYTES_WIDTH):
6324 Use sanitize_char_width to avoid undefined and/or bad behavior
6325 with outlandish widths.
a66cfb1c 6326 * character.h (sanitize_tab_width): Rename from sanitize_width,
5637687f
PE
6327 now that we have two such functions. All uses changed.
6328 (sanitize_char_width): New inline function.
6329
a2271ba2
PE
6330 Don't assume that tab-width fits in int.
6331 * character.h (sanitize_width): New inline function.
6332 (SANE_TAB_WIDTH): New macro.
6333 (ASCII_CHAR_WIDTH): Use it.
6334 * indent.c (sane_tab_width): Remove. All uses replaced by
6335 SANE_TAB_WIDTH (current_buffer).
6336 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
6337
18c52557
PE
6338 * fileio.c: Integer overflow issues with file modes.
6339 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
6340
caeeedc1
PE
6341 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
6342 Remove unreachable code.
6343 (read_hex, load_charset_map_from_file): Check for integer overflow.
6344
6df6ae42 6345 * xterm.c: Don't go over XClientMessageEvent limit.
50849c52
PE
6346 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
6347 (x_send_scroll_bar_event): Likewise. Check that the size does not
6348 exceed limits imposed by XClientMessageEvent, as well as the usual
6349 ptrdiff_t and size_t limits.
6350
b13995db
PE
6351 * keyboard.c: Overflow, signedness and related fixes.
6352 (make_lispy_movement): Use same integer type in forward decl
6353 that is used in the definition.
6354 (read_key_sequence, keyremap_step):
6355 Change bufsize argument back to int, undoing my 2011-03-30 change.
6356 We prefer signed types, and int is wide enough here.
6357 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
6358 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
6359 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
6360 length, not size_t. Use ptrdiff_t for index, not int.
6361 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
6362 possibility of integer overflow.
6363
13464394
PE
6364 Overflow, signedness and related fixes for images.
6365
6366 * dispextern.h (struct it.stack[0].u.image.image_id)
6367 (struct_it.image_id, struct image.id, struct image_cache.size)
6368 (struct image_cache.used, struct image_cache.ref_count):
6369 * gtkutil.c (update_frame_tool_bar):
6370 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
6371 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
6372 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
6373 * nsmenu.m (update_frame_tool_bar):
6374 * xdisp.c (calc_pixel_width_or_height):
6375 * xfns.c (image_cache_refcount):
6376 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
6377 on typical 64-bit hosts.
6378
6379 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
6380 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
6381 Omit unnecessary casts to int.
6382 (parse_image_spec): Check that integers fall into 'int' range
6383 when the callers expect that.
6384 (image_ascent): Redo ascent calculation to avoid int overflow.
6385 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
6386 (lookup_image): Remove unnecessary tests.
6387 (xbm_image_p): Locals are now of int, not EMACS_INT,
6388 since parse_image_check makes sure they fit into int.
6389 (png_load, gif_load, svg_load_image):
6390 Prefer int to unsigned where either will do.
6391 (tiff_handler): New function, combining the cores of the
a66cfb1c
SM
6392 old tiff_error_handler and tiff_warning_handler.
6393 This function is rewritten to use vsnprintf and thereby avoid
13464394
PE
6394 stack buffer overflows. It uses only the features of vsnprintf
6395 that are common to both POSIX and native Microsoft.
6396 (tiff_error_handler, tiff_warning_handler): Use it.
6397 (tiff_load, gif_load, imagemagick_load_image):
6398 Don't assume :index value fits in 'int'.
6399 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
6400 (imagemagick_load_image): Check that crop parameters fit into
6401 the integer types that MagickCropImage accepts. Don't assume
6402 Vimagemagick_render_type has a nonnegative value. Don't assume
6403 size_t fits in 'long'.
6404 (gs_load): Use printmax_t to print the widest integers possible.
6405 Check for integer overflow when computing image height and width.
6406
c11821d4
EZ
64072011-08-26 Eli Zaretskii <eliz@gnu.org>
6408
6409 * xdisp.c (redisplay_window): Don't force window start if point
6410 will be invisible in the resulting window. (Bug#9324)
6411
0c95fcf7
EZ
64122011-08-25 Eli Zaretskii <eliz@gnu.org>
6413
6414 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
6415 the display spec is of the form `(space ...)'.
6416 (handle_display_spec): Return the value returned by
6417 handle_single_display_spec, not just 1 or zero.
6418 (handle_single_display_spec): If the display spec is of the form
6419 `(space ...)', and specifies display in the text area, return 2
6420 rather than 1.
fee65a97 6421 (try_cursor_movement): Check for the need to scroll more
a66cfb1c
SM
6422 accurately, and prefer exact match for point under bidi.
6423 Don't advance `row' beyond the last row of the window.
0c95fcf7
EZ
6424
6425 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
6426 into disp_prop; all users changed.
6427
6428 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
6429 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
6430 for the text covered by the display property.
6431
e4ed06f1
CY
64322011-08-25 Chong Yidong <cyd@stupidchicken.com>
6433
6434 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
6435 Change return value to nil.
6436 (Frecord_buffer): Delete unused function.
6437
f67cdd7f
EZ
64382011-08-24 Eli Zaretskii <eliz@gnu.org>
6439
5980d4c6
EZ
6440 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
6441 buffers, return left-to-right.
8610fe8b
EZ
6442 (set_cursor_from_row): Consider candidate row a win if its glyph
6443 represents a newline and point is on that newline. Fixes cursor
6444 positioning on the newline at EOL of R2L text within L2R
6445 paragraph, and vice versa.
6446 (try_cursor_movement): Check continued rows, in addition to
6447 continuation rows. Fixes unwarranted scroll when point enters a
6448 continued line of R2L text within an L2R paragraph, or vice versa.
6449 (cursor_row_p): Consider the case of point being equal to
6450 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
6451 from the end of a short line to the beginning of a continued line
6452 of R2L text within L2R paragraph.
6453 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
6454 composed characters.
5980d4c6 6455
f67cdd7f
EZ
6456 * bidi.c (bidi_check_type): Use xassert.
6457 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
6458 members.
6459
bca633fb
EZ
64602011-08-23 Eli Zaretskii <eliz@gnu.org>
6461
6462 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
6463 a character.
6464
4a5885a7
CY
64652011-08-23 Chong Yidong <cyd@stupidchicken.com>
6466
6467 * nsfont.m (ns_otf_to_script): Fix typo.
6468
0902a04e
KH
64692011-08-22 Kenichi Handa <handa@m17n.org>
6470
6471 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
6472 extra slot even if the purpose is char-code-property-table.
6473
1a2e6670
EZ
64742011-08-23 Eli Zaretskii <eliz@gnu.org>
6475
8ddde651
EZ
6476 * xdisp.c (redisplay_window): When computing centering_position,
6477 account for the height of the header line. (Bug#8874)
6478
425cc014
EZ
6479 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
6480 instead of CHAR_TO_BYTE. Fixes a crash when a completion
6481 candidate is selected by the mouse, and that candidate has a
6482 composed character under the mouse.
6483
1a2e6670
EZ
6484 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
6485 coordinates reported by pos-visible-in-window-p for a composed
6486 character in column zero.
6487
8b76d6f8
SM
64882011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
6489
6490 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
6491
dac347dd
EZ
64922011-08-22 Eli Zaretskii <eliz@gnu.org>
6493
6494 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
6495 consider it a hit if to_charpos is anywhere in the range of the
6496 composed buffer positions.
6497
e013fb34
CY
64982011-08-22 Chong Yidong <cyd@stupidchicken.com>
6499
6500 * image.c (gif_load): Don't assume that each subimage has the same
6501 dimensions as the base image. Handle disposal method that is
6502 "undefined" by the gif spec (Bug#9335).
6503
bd1ba3e8
CY
65042011-08-20 Chong Yidong <cyd@stupidchicken.com>
6505
6506 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
024a2d76 6507 (Fcondition_case): Document `debug' symbol in error handler.
bd1ba3e8 6508
54a1215b
EZ
65092011-08-19 Eli Zaretskii <eliz@gnu.org>
6510
823564e5
EZ
6511 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
6512 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
6513 from an Org mode buffer to a Speedbar frame.
6514
54a1215b
EZ
6515 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
6516 a composition, take its buffer position from IT->cmp_it.charpos.
6517 Fixes cursor positioning at the beginning of a line that begins
6518 with a composed character.
6519
9778ebcc
EZ
65202011-08-18 Eli Zaretskii <eliz@gnu.org>
6521
0be6ee06
EZ
6522 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
6523 character bidirectional type, use STRONG_L instead. Fixes crashes
6524 in a buffer produced by `describe-categories'.
6525
9778ebcc
EZ
6526 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
6527 members before the level stack, so they would be saved and
6528 restored when copying iterator state. Fixes incorrect reordering
6529 around TABs covered by display properties.
6530
156bffbe
AS
65312011-08-18 Andreas Schwab <schwab@linux-m68k.org>
6532
6b02f655 6533 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
156bffbe 6534
72ad093b
CY
65352011-08-17 Chong Yidong <cyd@stupidchicken.com>
6536
6537 * eval.c (internal_condition_case, internal_condition_case_1)
8b76d6f8
SM
6538 (internal_condition_case_2, internal_condition_case_n):
6539 Remove unnecessary aborts (Bug#9081).
72ad093b 6540
35774242
EZ
65412011-08-17 Eli Zaretskii <eliz@gnu.org>
6542
6543 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
6544 has no `load' handler, try opening the file locally. (Bug#9311)
6545
db76dd85
KB
65462011-08-16 Ken Brown <kbrown@cornell.edu>
6547
6548 * gmalloc.c: Expand comment.
6549
b215eee5
EZ
65502011-08-16 Eli Zaretskii <eliz@gnu.org>
6551
6552 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
6553 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
6554
a4579d33
KB
65552011-08-16 Ken Brown <kbrown@cornell.edu>
6556
6557 Fix memory allocation problems in Cygwin build (Bug#9273).
6558
6559 * unexcw.c ( __malloc_initialized): Declare external variable.
6560 (fixup_executable): Force the dumped emacs to reinitialize malloc.
6561
8b76d6f8
SM
6562 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
6563 New variables.
a4579d33
KB
6564 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
6565 dumped emacs.
6566 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
6567 in the static heap.
6568 [CYGWIN] (special_realloc): New function.
6569 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
6570 requests to realloc storage in the static heap.
6571
3ebec551
PE
65722011-08-15 Paul Eggert <eggert@cs.ucla.edu>
6573
6574 * bidi.c (bidi_initialize): Remove unused local.
6575
9fd8be00
EZ
65762011-08-15 Eli Zaretskii <eliz@gnu.org>
6577
6b02f655
SM
6578 * bidimirror.h:
6579 * biditype.h: Remove file.
6580 * makefile.w32-in ($(BLD)/bidi.$(O)):
6581 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
474a8465
EZ
6582
6583 * dispextern.h: Fix a typo in the comment to bidi_type_t.
6584
6585 * chartab.c: Improve commentary for the uniprop_table API.
6586
32413314
EZ
6587 * bidi.c (bidi_paragraph_init): Support zero value of
6588 bidi_ignore_explicit_marks_for_paragraph_level.
474a8465
EZ
6589 (bidi_initialize): Use uniprop_table instead of including
6590 biditype.h and bidimirror.h.
32413314 6591
9fd8be00
EZ
6592 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
6593 coordinates of the iterator when restoring from ppos_it.
6594 (Bug#9296)
6595
5cf2b69b
KH
65962011-08-14 Kenichi Handa <handa@m17n.org>
6597
6598 * process.c (create_process): Call setup_process_coding_systems
72ad093b 6599 after the pid of the process is set to -1 (Bug#8162).
5cf2b69b 6600
daf17d00
EZ
66012011-08-14 Eli Zaretskii <eliz@gnu.org>
6602
6603 * xdisp.c (move_it_in_display_line_to): Don't invoke
6604 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
6605 ppos_it. Fixes vertical cursor motion when line beginning is
6606 covered by an image. (Bug#9296)
6607
08e3161a
JD
66082011-08-14 Jan Djärv <jan.h.d@swipnet.se>
6609
6610 * nsterm.h (ns_run_ascript): Declare.
6611 (NSAPP_DATA2_RUNASSCRIPT): Define.
6612
6613 * nsfns.m (as_script, as_result, as_status): New static variables.
6614 (ns_run_ascript): New function.
5e617bc2 6615 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
08e3161a
JD
6616 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
6617 the event loop. Get status from as_status (Bug#7276).
6618
6619 * nsterm.m (sendEvent): If event is NSApplicationDefined and
6620 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
6621 the event loop (Bug#7276).
6622
a3720aa2
AS
66232011-08-14 Andreas Schwab <schwab@linux-m68k.org>
6624
6625 * gnutls.c (QCgnutls_bootprop_priority)
6626 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
6627 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
6628 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
6629 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
6630 (QCgnutls_bootprop_verify_hostname_error)
6631 (QCgnutls_bootprop_callbacks_verify): Rename from
6632 Qgnutls_bootprop_..., all uses changed.
6633
6634 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
6635 uses changed.
6636
0a0d27fb
PE
66372011-08-14 Paul Eggert <eggert@cs.ucla.edu>
6638
19d5c50c
PE
6639 * xfaces.c (Qframe_set_background_mode): Now static.
6640 * dispextern.h (Qframe_set_background_mode): Remove decl.
6641
0a0d27fb
PE
6642 * process.c (Fnetwork_interface_info): Declare local only if needed.
6643
377538cb
JD
66442011-08-13 Jan Djärv <jan.h.d@swipnet.se>
6645
6646 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
6647 (Fnetwork_interface_list): Allocate in increments of bytes instead
6648 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
6649 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
6650 sockaddr.
6651 (struct ifflag_def): notrailers is smart on OSX.
6652 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
6653 Get hardware address with getifaddrs if available.
6654
08fff70c
EZ
66552011-08-12 Eli Zaretskii <eliz@gnu.org>
6656
6657 * xdisp.c (iterate_out_of_display_property): xassert that
6658 IT->position is set to within IT->object's boundaries. Break from
6659 the loop as soon as EOB is reached; avoids infloops in redisplay
8b76d6f8
SM
6660 when IT->position is set up wrongly due to some bug.
6661 Set IT->current to match the bidi iterator unconditionally.
08fff70c
EZ
6662 (push_display_prop): Allow GET_FROM_STRING as IT->method on
6663 entry. Force push_it to save on the stack the current
6664 buffer/string position, to be restored by pop_it. Fix flags in
6665 the iterator structure wrt the object coming from a display
6666 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
6667 properties. (Bug#9284)
6668
7be1c708 66692011-08-09 Andreas Schwab <schwab@linux-m68k.org>
aac0c6e3 6670
7be1c708
CY
6671 * fontset.c (fontset_get_font_group): Add proper type checks.
6672 (Bug#9172)
aac0c6e3 6673
7be1c708 66742011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
aac0c6e3 6675
7be1c708
CY
6676 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
6677 and LC_VERSION_MIN_MACOSX.
6678 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
6679 (dump_it) [LC_FUNCTION_STARTS]: Use it.
aac0c6e3 6680
97bb72a6
EZ
66812011-08-08 Eli Zaretskii <eliz@gnu.org>
6682
6683 * xdisp.c (forward_to_next_line_start): Allow to use the
8b76d6f8
SM
6684 no-display-properties-and-no-overlays under bidi display.
6685 Set disp_pos in the bidi iterator to avoid searches for display
757664a4 6686 properties and overlays.
97bb72a6 6687
d5617611
CY
66882011-08-08 Chong Yidong <cyd@stupidchicken.com>
6689
37e11a63
CY
6690 * editfns.c (Fset_time_zone_rule): Document relationship with the
6691 setenv function.
6692
d5617611
CY
6693 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
6694 the font entity extracted from the cache (Bug#8109).
6695
58872834
CY
66962011-08-07 Chong Yidong <cyd@stupidchicken.com>
6697
6698 * composite.c (autocmp_chars): Don't reset point. That is done by
6699 restore_point_unwind (Bug#5984).
6700
75bfc667
JL
67012011-08-07 Juri Linkov <juri@jurta.org>
6702
6703 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
6704 to show the arg `TIME' instead of `TIMEVAL'.
6705
d1410150
EZ
67062011-08-06 Eli Zaretskii <eliz@gnu.org>
6707
6708 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
6709 display property strides EOL and includes a newline, as in
6710 longlines-mode. (Bug#9254)
75b771e4
EZ
6711 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
6712 word-wrap under bidirectional display. (Bug#9224)
d1410150
EZ
6713
6714 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
6715 is non-zero, even if the data buffer is NULL. Fixes a crash in
6716 vertical-motion with longlines-mode. (Bug#9254)
6717
35928349
EZ
67182011-08-05 Eli Zaretskii <eliz@gnu.org>
6719
ec7cc85b
EZ
6720 * bidi.c <bidi_cache_total_alloc>: Now static.
6721 (bidi_initialize): Initialize bidi_cache_total_alloc.
6722
8b76d6f8 6723 * xdisp.c (display_line): Release buffer allocated for shelved bidi
35928349
EZ
6724 cache. (Bug#9221)
6725
6726 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
6727 amount allocated this far in `bidi_cache_total_alloc'.
6728 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
6729 non-zero, only free the data buffer without restoring the cache
6730 contents. All callers changed.
6731
6732 * dispextern.h (bidi_unshelve_cache): Update prototype.
6733
6734 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
6735 (move_it_in_display_line, move_it_to)
6736 (move_it_vertically_backward, move_it_by_lines): Replace the call
6737 to xfree to an equivalent call to bidi_unshelve_cache.
6738 (move_it_in_display_line_to): Fix logic of returning
412b6358 6739 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
35928349 6740
e2e2423b
EZ
67412011-08-05 Eli Zaretskii <eliz@gnu.org>
6742
6743 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
6744 came from a string character with a `cursor' property. (Bug#9229)
6745
ae9e757a
JD
67462011-08-04 Jan Djärv <jan.h.d@swipnet.se>
6747
6748 * Makefile.in (LIB_PTHREAD): New variable.
6749 (LIBES): Add LIB_PTHREAD (Bug#9216).
6750
6751 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
6752 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
6753
213bd7f2
AS
67542011-08-04 Andreas Schwab <schwab@linux-m68k.org>
6755
6b02f655 6756 * regex.c (re_iswctype): Remove some redundant boolean conversions.
213bd7f2 6757
99aaf75f
JD
67582011-08-04 Jan Djärv <jan.h.d@swipnet.se>
6759
6760 * xterm.c (x_find_topmost_parent): New function.
6761 (x_set_frame_alpha): Find topmost parent window with
6762 x_find_topmost_parent and set the property there also (bug#9181).
6763 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
6764
c74e9d86
PE
67652011-08-04 Paul Eggert <eggert@cs.ucla.edu>
6766
6767 * callproc.c (Fcall_process): Avoid vfork clobbering
6768 the local vars buffer, coding_systems, current_dir.
6769
640c8776
SM
67702011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
6771
6772 * keymap.c (Fmake_composed_keymap): Move to subr.el.
6773
f26d0e4c
PE
67742011-08-03 Paul Eggert <eggert@cs.ucla.edu>
6775
8a10d76c
PE
6776 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
6777 so that it is not optimized away.
6778
f26d0e4c
PE
6779 * xdisp.c (compute_display_string_pos): Remove unused local.
6780
55439c61
EZ
67812011-08-02 Eli Zaretskii <eliz@gnu.org>
6782
6783 Fix slow cursor motion and scrolling in large buffers with
6784 selective display, like Org Mode buffers. (Bug#9218)
6785
6786 * dispextern.h (struct bidi_it): New member disp_prop_p.
6787
6788 * xdisp.c: Remove one-slot cache of display string positions.
6789 (compute_display_string_pos): Accept an additional argument
5e617bc2 6790 DISP_PROP_P; callers changed. Scan at most 5K characters forward
55439c61
EZ
6791 for a display string or property. If found, set DISP_PROP_P
6792 non-zero.
6793
6794 * bidi.c (bidi_fetch_char): Accept an additional argument
640c8776
SM
6795 DISP_PROP_P, and pass it to compute_display_string_pos.
6796 Only handle text covered by a display string if DISP_PROP_P is returned
55439c61
EZ
6797 non-zero. All callers of bidi_fetch_char changed.
6798
fb33fa43
SM
67992011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
6800
6801 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
6802
b099e063
DM
68032010-12-03 Don March <don@ohspite.net>
6804
6805 * keymap.c (Fdefine_key): Fix non-prefix key error message when
6806 last character M-[char] is translated to ESC [char] (bug#7541).
6807
5cc7f7af
KH
68082011-08-02 Kenichi Handa <handa@m17n.org>
6809
d0fffa3f 6810 * lisp.h (uniprop_table): Extern it.
5cc7f7af
KH
6811
6812 * chartab.c (uniprop_table): Make it non-static.
6813
525d5e6e
EZ
68142011-08-01 Eli Zaretskii <eliz@gnu.org>
6815
6816 * xdisp.c (forward_to_next_line_start): Accept additional argument
6817 BIDI_IT_PREV, and store into it the state of the bidi iterator had
6818 on the newline.
6819 (reseat_at_next_visible_line_start): Use the bidi iterator state
6820 returned by forward_to_next_line_start to restore the state of
6821 it->bidi_it after backing up to previous newline. (Bug#9212)
6822
31011111
AS
68232011-07-30 Andreas Schwab <schwab@linux-m68k.org>
6824
6825 * regex.c (re_comp): Protoize.
6826 (re_exec): Fix return type.
6827 (regexec): Fix type of `ret'. (Bug#9203)
6828
476371c4
PE
68292011-07-28 Paul Eggert <eggert@cs.ucla.edu>
6830
e5d76069
PE
6831 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
6832 This is needed if max-image-size is a floating-point number.
6833
9a79b20c
AS
68342011-07-28 Andreas Schwab <schwab@linux-m68k.org>
6835
6836 * print.c (print_object): Print empty symbol as ##.
6837
6838 * lread.c (read1): Read ## as empty symbol.
6839
d8c2fa78
AA
68402011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
6841
6842 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
6843 setting frame foreground color (Bug#9175).
6844 (x_set_background_color): Likewise.
6845
ffe57a7a
AA
6846 * nsmenu.m (-setText): Size tooltip dimensions precisely to
6847 contents (Bug#9176).
6848 (EmacsTooltip -init): Remove bezels and add shadows to
6849 tooltip windows.
6850
bf3492a5
AA
6851 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
6852 or scroll bar (Bug#8470).
6853
d55e9c53
AA
6854 * nsfont.m (nsfont_open): Remove assignment to voffset and
6855 unnecessary vars hshink, expand, hd, full_height, min_height.
6856 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
6857
6858 * nsterm.h (nsfont_info): Remove voffset field.
6859
d8c2fa78 68602011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
4843aac3
AA
6861
6862 Implement strike-through and overline on NextStep (Bug#8863).
6863
6864 * nsfont.m (nsfont_open): Use underline position provided by font,
6865 instead of hard-coded value of 2.
6866 (nsfont_draw): Call ns_draw_text_decoration instead.
6867
6868 * nsterm.h: Add declaration for ns_draw_text_decoration.
6869
6870 * nsterm.m (ns_draw_text_decoration): New function for drawing
6871 underline, overline, and strike-through.
6872 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
6873 ns_draw_text_decoration. Change treatment of cursor drawing to
8d5ed899 6874 accommodate underlining, etc.
4843aac3 6875
4cc60b9b
EZ
68762011-07-28 Eli Zaretskii <eliz@gnu.org>
6877
bc7ece87
EZ
6878 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
6879 default.
4cc60b9b 6880
476371c4
PE
68812011-07-28 Paul Eggert <eggert@cs.ucla.edu>
6882
66606eea
PE
6883 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
6884 Without this fix, if a signal arrives just after memory fills up,
6885 'malloc' might be invoked reentrantly.
6886
476371c4
PE
6887 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
6888 In other words, assume that every image size is allowed, on non-X
6889 hosts. This assumption is probably wrong, but it lets Emacs compile.
6890
f3fcc40d
AS
68912011-07-28 Andreas Schwab <schwab@linux-m68k.org>
6892
6893 * regex.c (re_iswctype): Convert return values to boolean.
6894
350c992f
EZ
68952011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
6896
6897 * xdisp.c (compute_display_string_pos): Don't use cached display
6898 string position if the buffer had its restriction changed.
6899 (Bug#9184)
6900
5266b4bb
PE
69012011-07-28 Paul Eggert <eggert@cs.ucla.edu>
6902
6903 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
6904
2573a837 69052011-07-28 Paul Eggert <eggert@cs.ucla.edu>
ca4aa935 6906
41f55ccd 6907 Integer signedness and overflow and related fixes. (Bug#9079)
cf950e6b 6908
39e378da
PE
6909 * bidi.c: Integer size and overflow fixes.
6910 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
6911 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
6912 (bidi_cache_find_level_change, bidi_cache_ensure_space)
6913 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
6914 (bidi_find_other_level_edge):
6915 Use ptrdiff_t instead of EMACS_INT where either will do.
6916 This works better on 32-bit hosts configured --with-wide-int.
6917 (bidi_cache_ensure_space): Check for size-calculation overflow.
6918 Use % rather than repeated addition, for better worst-case speed.
6919 Don't set bidi_cache_size until after xrealloc returns, because it
6920 might not return.
6921 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
f0eb61e9
PE
6922 (bidi_cache_ensure_space): Also check that the bidi cache size
6923 does not exceed that of the largest Lisp string or buffer. See Eli
6924 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
39e378da 6925
5e927815
PE
6926 * alloc.c (__malloc_size_t): Remove.
6927 All uses replaced by size_t. See Andreas Schwab's note
6928 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
6929
ca4aa935
PE
6930 * image.c: Improve checking for integer overflow.
6931 (check_image_size): Assume that f is nonnull, since
6932 it is always nonnull in practice. This is one less thing to
6933 worry about when checking for integer overflow later.
6934 (x_check_image_size): New function, which checks for integer
6935 overflow issues inside X.
6936 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
6937 This removes the need for a memory_full check.
6938 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
6939 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
6940 (xbm_read_bitmap_data): Change locals back to 'int', since
6941 their values must fit in 'int'.
6942 (xpm_load_image, png_load, tiff_load):
6943 Invoke x_create_x_image_and_pixmap earlier,
6944 to avoid much needless work if the image is too large.
6945 (tiff_load): Treat overly large images as if
6946 x_create_x_image_and_pixmap failed, not as malloc failures.
6947 (gs_load): Use x_check_image_size.
6948
5f8f9cc2
PE
6949 * gtkutil.c: Omit integer casts.
6950 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
6951 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
6952
5adf60bc
PE
6953 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
6954
c8907a93
PE
6955 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
6956 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
6957 would wrongly return t on a 64-bit host.
6958
e3c25c68
PE
6959 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
6960 The plain *_OVERFLOW macros run afoul of GCC bug 49705
6961 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
6962 and therefore cause GCC to emit a bogus diagnostic in some cases.
6963
3f791afe
PE
6964 * image.c: Integer signedness and overflow and related fixes.
6965 This is not an exhaustive set of fixes, but it's time to
6966 record what I've got.
6967 (lookup_pixel_color, check_image_size): Remove redundant decls.
6968 (check_image_size): Don't assume that arbitrary EMACS_INT values
6969 fit in 'int', or that arbitrary 'double' values fit in 'int'.
6970 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
6971 (tiff_load, imagemagick_load_image):
6972 Check for overflow in size calculations.
6973 (x_create_x_image_and_pixmap): Remove unnecessary test for
6974 xmalloc returning NULL; that can't happen.
6975 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
6976 (xpm_color_bucket): Use better integer hashing function.
6977 (xpm_cache_color): Don't possibly over-allocate memory.
6978 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
6979 (gif_memory_source):
6980 Use ptrdiff_t, not int or size_t, to record sizes.
6981 (png_load): Don't assume values greater than 2**31 fit in 'int'.
6982 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
6983 either works, as we prefer signed integers.
6984 (tiff_read_from_memory, tiff_write_from_memory):
6985 Return tsize_t, not size_t, since that's what the TIFF API wants.
6986 (tiff_read_from_memory): Don't fail simply because the read would
6987 go past EOF; instead, return a short read.
6988 (tiff_load): Omit no-longer-needed casts.
6989 (Fimagemagick_types): Don't assume size fits into 'int'.
6990
3cc5a532
PE
6991 Improve hashing quality when configured --with-wide-int.
6992 * fns.c (hash_string): New function, taken from sxhash_string.
6993 Do not discard information about ASCII character case; this
6994 discarding is no longer needed.
6995 (sxhash-string): Use it. Change sig to match it. Caller changed.
6996 * lisp.h: Declare it.
6997 * lread.c (hash_string): Remove, since we now use fns.c's version.
6998 The fns.c version returns a wider integer if --with-wide-int is
6999 specified, so this should help the quality of the hashing a bit.
7000
b312a492
PE
7001 * emacs.c: Integer overflow minor fix.
7002 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
7003 Define only if GNU_LINUX.
7004 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
7005
dfd153ae
PE
7006 * dispnew.c: Integer signedness and overflow fixes.
7007 Remove unnecessary forward decls, that were a maintenance hassle.
7008 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
7009 All uses changed.
7010 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
7011 (scrolling_window): Use ptrdiff_t, not int, for byte count.
7012 (prepare_desired_row, line_draw_cost):
7013 Use int, not unsigned, where either works.
7014 (save_current_matrix, restore_current_matrix):
7015 Use ptrdiff_t, not size_t, where either works.
7016 (init_display): Check for overflow more accurately, and without
7017 relying on undefined behavior.
7018
a81d11a3
PE
7019 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
7020 Remove, replacing with the new symbols in lisp.h. All uses changed.
7021 * fileio.c (make_temp_name):
7022 * filelock.c (lock_file_1, lock_file):
7023 * xdisp.c (message_dolog):
7024 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
7025 Use pMd etc. instead.
7026 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
7027 replacing the pWIDE etc. symbols removed from editfns.c.
7028
3300e6fd
PE
7029 * keyboard.h (num_input_events): Now uintmax_t.
7030 This is (very slightly) less likely to mess up due to wraparound.
7031 All uses changed.
7032
fd05c7e9
PE
7033 * buffer.c: Integer signedness fixes.
7034 (alloc_buffer_text, enlarge_buffer_text):
7035 Use ptrdiff_t rather than size_t when either will do, as we prefer
7036 signed integers.
7037
903fe15d
PE
7038 * alloc.c: Integer signedness and overflow fixes.
7039 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
7040 (__malloc_size_t): Default to size_t, not to int.
7041 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
7042 (Fgarbage_collect, mark_object_loop_halt, mark_object):
7043 Prefer ptrdiff_t to size_t when either would do, as we prefer
7044 signed integers.
7045 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
7046 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
7047 Now const. Initialize with values that are in range even if char
7048 is signed.
7049 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
7050 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
7051 These functions do the right thing with sizes > 2**32.
7052 (check_depth): Now ptrdiff_t, not int.
7053 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
7054 Adjust to new way of storing sizes. Check for size overflow bugs
7055 in rest of code.
7056 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
7057 slightly wrong anyway, as it missed one instance of
7058 XMALLOC_OVERRUN_CHECK_OVERHEAD.
7059 (refill_memory_reserve): Omit needless cast to size_t.
7060 (mark_object_loop_halt): Mark as externally visible.
7061
ac82cc6a
PE
7062 * xselect.c: Integer signedness and overflow fixes.
7063 (Fx_register_dnd_atom, x_handle_dnd_message):
7064 Use ptrdiff_t, not size_t, since we prefer signed.
7065 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
7066 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
7067 x_dnd_atoms_size and x_dnd_atoms_length.
7068
c2d1e36d
PE
7069 * doprnt.c: Prefer signed to unsigned when either works.
7070 * eval.c (verror):
7071 * doprnt.c (doprnt):
7072 * lisp.h (doprnt):
7073 * xdisp.c (vmessage):
7074 Use ptrdiff_t, not size_t, when using or implementing doprnt,
7075 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
7076 prefer signed arithmetic to avoid comparison confusion.
7077 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
7078 but is a bit tricky.
7079
0e926e56
PE
7080 Assume freestanding C89 headers, string.h, stdlib.h.
7081 * data.c, doprnt.c, floatfns.c, print.c:
7082 Include float.h unconditionally.
7083 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
7084 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
7085 * regex.c: Likewise for stddef.h, string.h.
7086 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
7087 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
7088 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
7089 (STDC_HEADERS): Remove obsolete defines.
7090 * sysdep.c: Include limits.h unconditionally.
7091
9cfdb3ec
PE
7092 Assume support for memcmp, memcpy, memmove, memset.
7093 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
7094 * regex.c (memcmp, memcpy):
7095 Remove; we assume C89 now.
7096
7097 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
7098 (__malloc_safe_bcopy): Remove; no longer needed.
7099
cf950e6b 7100 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
6089c567
PE
7101 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
7102 well either way, and we prefer signed to unsigned.
7103
dbf38e02
LMI
71042011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
7105
7106 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
7107 closes the connection while we're reading (bug#9182).
7108
d6f0886c 71092011-07-25 Jan Djärv <jan.h.d@swipnet.se>
24e0f6b1 7110
d6f0886c
JD
7111 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
7112 are specified (Bug#9168).
24e0f6b1 7113
2eb1f9e6
PE
71142011-07-25 Paul Eggert <eggert@cs.ucla.edu>
7115
7116 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
7117 Found by GCC static checking and --with-wide-int on a 32-bit host.
7118
22381272 71192011-07-25 Eli Zaretskii <eliz@gnu.org>
7daee910
EZ
7120
7121 * xdisp.c (compute_display_string_pos): Fix logic of caching
7122 previous display string position. Initialize cached_prev_pos to
7123 -1. Fixes slow-down at the beginning of a buffer.
7124
f25e39b4
EZ
71252011-07-24 Eli Zaretskii <eliz@gnu.org>
7126
7127 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
7128 for attrs[LFACE_FONTSET_INDEX].
7129
04c4b52e
PE
71302011-07-23 Paul Eggert <eggert@cs.ucla.edu>
7131
7132 * xml.c (parse_region): Remove unused local
7133 that was recently introduced.
7134
c1734fbd
EZ
71352011-07-23 Eli Zaretskii <eliz@gnu.org>
7136
be18c5a5
EZ
7137 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
7138 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
7139
c1734fbd
EZ
7140 * xdisp.c (move_it_in_display_line_to): Record the best matching
7141 position for TO_CHARPOS while scanning the line, and restore it on
640c8776
SM
7142 exit if none of the characters scanned was an exact match.
7143 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
a9269c18
EZ
7144 when exact match is impossible due to invisible text, and the
7145 lines are truncated.
7146
a258d627
JD
71472011-07-23 Jan Djärv <jan.h.d@swipnet.se>
7148
7149 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
7150 for OSX >= 10.7.
7151
b6d5a689
EZ
71522011-07-22 Eli Zaretskii <eliz@gnu.org>
7153
0f74f785
EZ
7154 Fix a significant slow-down of cursor motion with C-n, C-p,
7155 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
7156 auto-repeat under bidi redisplay in fontified buffers.
b6d5a689 7157 * xdisp.c (compute_stop_pos_backwards): New function.
b6d5a689
EZ
7158 (next_element_from_buffer): Call compute_stop_pos_backwards to
7159 find a suitable prev_stop when we find ourselves before
0f74f785
EZ
7160 base_level_stop.
7161 (reseat): Don't look for prev_stop, as that could mean a very long
7162 run.
7163 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
7164 <cached_disp_overlay_modiff>: Cache for last found display string
7165 position.
551918c1 7166 (compute_display_string_pos): Return the cached position if asked
0f74f785
EZ
7167 about the same buffer in the same area of character positions, and
7168 the buffer wasn't changed since the time the display string
7169 position was cached.
551918c1 7170
b2d0c91a
EZ
71712011-07-22 Eli Zaretskii <eliz@gnu.org>
7172
7173 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
7174 is an integer, which is important for empty lines. (Bug#9149)
7175
043604ee
CY
71762011-07-22 Chong Yidong <cyd@stupidchicken.com>
7177
7178 * frame.c (Fmodify_frame_parameters): In tty case, update the
7179 default face if necessary (Bug#4238).
7180
da4adb04
CY
71812011-07-21 Chong Yidong <cyd@stupidchicken.com>
7182
7183 * editfns.c (Fstring_to_char): No need to explain what a character
7184 is in the docstring (Bug#6576).
7185
9abd0532
LMI
71862011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
7187
7188 * xml.c (parse_region): Make sure we always return a tree.
7189
36881d16
HK
71902011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
7191
7192 * xml.c (parse_region): If a document contains only comments,
7193 return that, too.
7194
1e98674d
LMI
71952011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
7196
7197 * xml.c (make_dom): Return comments, too.
7198
590bd467
PE
71992011-07-19 Paul Eggert <eggert@cs.ucla.edu>
7200
7201 Port to OpenBSD.
7202 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
7203 and the surrounding thread.
7204 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
7205 rather than fgets, and retry after EINTR. Otherwise, 'emacs
7206 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
7207 timer goes off.
7208 * s/openbsd.h (BROKEN_SIGIO): Define.
7209 * unexelf.c (unexec) [__OpenBSD__]:
7210 Don't update the .mdebug section of the Alpha COFF symbol table.
7211
f41628b2
LMI
72122011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
7213
7214 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
7215 (bug#8460).
7216
b59b67c5
PE
72172011-07-18 Paul Eggert <eggert@cs.ucla.edu>
7218
15e3a074
PE
7219 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
7220 This fixes some race conditions on the permissions of any newly
7221 created file.
7222
41bed37d
PE
7223 * alloc.c (valid_pointer_p): Use pipe, not open.
7224 This fixes some permissions issues when debugging.
7225
b59b67c5
PE
7226 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
7227 If fchown fails to set both uid and gid, try to set just gid,
7228 as that is sometimes allowed. Adjust the file's mode to eliminate
7229 setuid or setgid bits that are inappropriate if fchown fails.
7230
925a6be7
SM
72312011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
7232
7233 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
7234 to compare Lisp_Objects.
7235 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
7236 global_gnutls_log_level, don't mistake it for a Lisp_Object.
7237 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
7238
52968808
AS
72392011-07-17 Andreas Schwab <schwab@linux-m68k.org>
7240
0a6a104b
AS
7241 * lread.c (read_integer): Unread even EOF character.
7242 (read1): Likewise. Properly record start position of symbol.
7243
52968808
AS
7244 * lread.c (read1): Read `#:' as empty uninterned symbol if no
7245 symbol character follows.
7246
9e381cdd
PE
72472011-07-17 Paul Eggert <eggert@cs.ucla.edu>
7248
7249 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
7250 This works around a problem with the previous change to Fcopy_file.
7251 Recent glibc declares fchown with __attribute__((warn_unused_result)),
7252 and without this change, GCC might complain about discarding
7253 fchown's return value.
7254
b5641435
JB
72552011-07-16 Juanma Barranquero <lekktu@gmail.com>
7256
7257 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
7258
a8031457
PE
72592011-07-16 Paul Eggert <eggert@cs.ucla.edu>
7260
7261 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
7262
dd889327
LMI
72632011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
7264
750c33f7
LMI
7265 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
7266 it's used from the C level.
7267
dd889327
LMI
7268 * process.c: Use the same condition for POLL_FOR_INPUT in both
7269 keyboard.c and process.c (bug#1858).
7270
87e86684
LM
72712011-07-09 Lawrence Mitchell <wence@gmx.li>
7272
7273 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
7274 (Fgnutls_boot): Use it.
7275
64348f40
AS
72762011-07-15 Andreas Schwab <schwab@linux-m68k.org>
7277
7278 * doc.c (Fsubstitute_command_keys): Revert last change.
7279
1d698799
LMI
72802011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
7281
f863868c
LMI
7282 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
7283 quotes the next character, and doesn't affect other longer
7284 sequences (bug#8935).
7285
1d698799
LMI
7286 * lread.c (syms_of_lread): Clarify that is isn't only
7287 `eval-buffer' and `eval-defun' that's affected by
7288 `lexical-binding' (bug#8460).
7289
aa4b6df6
EZ
72902011-07-15 Eli Zaretskii <eliz@gnu.org>
7291
7292 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
6b02f655 7293 bidi redisplay when a line includes both an image and is truncated.
aa4b6df6 7294
5d856da6
PE
72952011-07-14 Paul Eggert <eggert@cs.ucla.edu>
7296
ad6042bb
PE
7297 Fix minor problems found by static checking.
7298 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
7299 (elsz): Now a signed constant, not a size_t var. We prefer signed
7300 types to unsigned, to avoid integer comparison confusion. Without
7301 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
7302 "cannot optimize loop, the loop counter may overflow", a symptom
7303 of the confusion.
f00bbb22 7304 * indent.c (Fvertical_motion): Mark locals as initialized.
5d856da6
PE
7305 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
7306
6468f31c
LMI
73072011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
7308
49080b10
LMI
7309 * search.c (Fre_search_backward): Mention `case-fold-search' in
7310 all the re_search_* functions (bug#8138).
7311
6468f31c
LMI
7312 * keyboard.c (Fopen_dribble_file): Document when the file is
7313 closed (bug#8056).
7314
c965adc5
EZ
73152011-07-14 Eli Zaretskii <eliz@gnu.org>
7316
df9733bf
EZ
7317 * bidi.c (bidi_dump_cached_states): Fix format of displaying
7318 bidi_cache_idx.
7319
0bb23927
EZ
7320 Support bidi reordering of display and overlay strings.
7321 * xdisp.c (compute_display_string_pos)
7322 (compute_display_string_end): Accept additional argument STRING.
7323 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
7324 (reseat_to_string): Initialize bidi_it->string.s and
7325 bidi_it->string.schars.
7326 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
640c8776
SM
7327 NULL (avoids a crash in bidi_paragraph_init).
7328 Initialize itb.string.lstring.
0bb23927
EZ
7329 (init_iterator): Call bidi_init_it only of a valid
7330 buffer position was specified. Initialize paragraph_embedding to
7331 L2R.
7332 (reseat_to_string): Initialize the bidi iterator.
7333 (display_string): If we need to ignore text properties of
7334 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
7335 original value of -1 will not work with bidi.)
7336 (compute_display_string_pos): First arg is now struct
7337 `text_pos *'; all callers changed. Support display properties on
7338 Lisp strings.
7339 (compute_display_string_end): Support display properties on Lisp
7340 strings.
7341 (init_iterator, reseat_1, reseat_to_string): Initialize the
7342 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
7343 when iterating on a string not from display properties).
640c8776
SM
7344 (compute_display_string_pos, compute_display_string_end):
7345 Fix calculation of the object to scan. Fixes an error when using
0bb23927
EZ
7346 arrow keys.
7347 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
640c8776
SM
7348 base_level_stop; instead, set base_level_stop to BEGV.
7349 Fixes crashes in vertical-motion.
0bb23927
EZ
7350 (next_element_from_buffer): Improve commentary for when
7351 the iterator is before prev_stop.
7352 (init_iterator): Initialize bidi_p from the default value of
7353 bidi-display-reordering, not from buffer-local value. Use the
7354 buffer-local value only if initializing for buffer iteration.
7355 (handle_invisible_prop): Support invisible properties on strings
7356 that are being bidi-reordered.
7357 (set_iterator_to_next): Support bidi reordering of C strings and
7358 Lisp strings.
7359 (next_element_from_string): Support bidi reordering of Lisp
7360 strings.
7361 (handle_stop_backwards): Support Lisp strings as well.
640c8776
SM
7362 (display_string): Support display of R2L glyph rows.
7363 Use IT_STRING_CHARPOS when displaying from a Lisp string.
0bb23927
EZ
7364 (init_iterator): Don't initialize it->bidi_p for strings
7365 here.
7366 (reseat_to_string): Initialize it->bidi_p for strings here.
7367 (next_element_from_string, next_element_from_c_string)
7368 (next_element_from_buffer): Add xassert's for correspondence
7369 between IT's object being iterated and it->bidi_it.string
7370 structure.
7371 (face_before_or_after_it_pos): Support bidi iteration.
7372 (next_element_from_c_string): Handle the case of the first string
7373 character that is not the first one in the visual order.
7374 (get_visually_first_element): New function, refactored from common
7375 parts of next_element_from_buffer, next_element_from_string, and
7376 next_element_from_c_string.
7377 (tool_bar_lines_needed, redisplay_tool_bar)
7378 (display_menu_bar): Force left-to-right direction. Add a FIXME
7379 comment for making that be controlled by a user option.
7380 (push_it, pop_it): Save and restore the state of the
7381 bidi iterator. Save and restore the bidi_p flag.
7382 (pop_it): Iterate out of display property for string iteration as
7383 well.
7384 (iterate_out_of_display_property): Support iteration over strings.
7385 (handle_single_display_spec): Set up it->bidi_it for iteration
7386 over a display string, and call bidi_init_it.
7387 (handle_single_display_spec, next_overlay_string)
7388 (get_overlay_strings_1, push_display_prop): Set up the bidi
7389 iterator for displaying display or overlay strings.
7390 (forward_to_next_line_start): Don't use the shortcut if
7391 bidi-iterating.
7392 (back_to_previous_visible_line_start): If handle_display_prop
7393 pushed the iterator stack, restore the internal state of the bidi
7394 iterator by calling bidi_pop_it same number of times.
7395 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
7396 and we are bidi-iterating, don't decrement the iterator position;
7397 instead, set the first_elt flag in the bidi iterator, to produce
7398 the same effect.
7399 (reseat_1): Remove redundant setting of string_from_display_prop_p.
7400 (push_display_prop): xassert that we are iterating a buffer.
7401 (push_it, pop_it): Save and restore paragraph_embedding member.
7402 (handle_single_display_spec, next_overlay_string)
7403 (get_overlay_strings_1, reseat_1, reseat_to_string)
7404 (push_display_prop): Set up the `unibyte' member of bidi_it.string
7405 correctly. Don't assume unibyte strings are not bidi-reordered.
7406 (compute_display_string_pos)
7407 (compute_display_string_end): Fix handling the case of C string.
7408 (push_it, pop_it): Save and restore from_disp_prop_p.
7409 (handle_single_display_spec, push_display_prop): Set the
7410 from_disp_prop_p flag.
7411 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
7412 (pop_it): Call iterate_out_of_display_property only if we are
7413 popping after iteration over a string that came from a display
7414 property. Fix a typo in popping stretch info. Add an assertion
7415 for verifying that the iterator position is in sync with the bidi
7416 iterator.
7417 (handle_single_display_spec, get_overlay_strings_1)
7418 (push_display_prop): Fix initialization of paragraph direction for
7419 string when that of the parent object is not yet determined.
7420 (reseat_1): Call bidi_init_it to resync the bidi
7421 iterator with IT's position. (Bug#7616)
7422 (find_row_edges): If ROW->start.pos gives position
7423 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
7424 (handle_stop, back_to_previous_visible_line_start, reseat_1):
7425 Reset the from_disp_prop_p flag.
7426 (SAVE_IT, RESTORE_IT): New macros.
7427 (pos_visible_p, face_before_or_after_it_pos)
7428 (back_to_previous_visible_line_start)
7429 (move_it_in_display_line_to, move_it_in_display_line)
7430 (move_it_to, move_it_vertically_backward, move_it_by_lines)
7431 (try_scrolling, redisplay_window, display_line): Use them when
7432 saving a temporary copy of the iterator and restoring it back.
7433 (back_to_previous_visible_line_start, reseat_1)
7434 (init_iterator): Empty the bidi cache "stack".
7435 (move_it_in_display_line_to): If iterator ended up at
7436 EOL, but we never saw any buffer positions smaller than
7437 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
7438 motion in bidi-reordered lines.
7439 (move_it_in_display_line_to): Record prev_method and prev_pos
7440 immediately before the call to set_iterator_to_next. Fixes cursor
7441 motion in bidi-reordered lines with stretch glyphs and strings
7442 displayed in margins. (Bug#8133) (Bug#8867)
7443 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
7444 TO_CHARPOS.
640c8776
SM
7445 (pos_visible_p): Support positions in bidi-reordered lines.
7446 Save and restore bidi cache.
0bb23927
EZ
7447
7448 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
7449 (bidi_paragraph_info): Delete unused struct.
7450 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
7451 (bidi_cache_start): New variable.
7452 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
7453 to zero.
7454 (bidi_cache_fetch_state, bidi_cache_search)
7455 (bidi_cache_find_level_change, bidi_cache_iterator_state)
7456 (bidi_cache_find, bidi_peek_at_next_level)
7457 (bidi_level_of_next_char, bidi_find_other_level_edge)
7458 (bidi_move_to_visually_next): Compare cache index with
7459 bidi_cache_start rather than with zero.
7460 (bidi_fetch_char): Accept new argument STRING; all callers
7461 changed. Support iteration over a string. Support strings with
7462 display properties. Support unibyte strings. Fix the type of
7463 `len' according to what STRING_CHAR_AND_LENGTH expects.
7464 (bidi_paragraph_init, bidi_resolve_explicit_1)
7465 (bidi_resolve_explicit, bidi_resolve_weak)
640c8776
SM
7466 (bidi_level_of_next_char, bidi_move_to_visually_next):
7467 Support iteration over a string.
0bb23927
EZ
7468 (bidi_set_sor_type, bidi_resolve_explicit_1)
7469 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
7470 can now be zero (for strings); special values 0 and -1 were
7471 changed to -1 and -2, respectively.
7472 (bidi_char_at_pos): New function.
7473 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
7474 Call it instead of FETCH_MULTIBYTE_CHAR.
7475 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
7476 initialized to valid values.
7477 (bidi_init_it): Don't initialize charpos and bytepos with invalid
7478 values.
7479 (bidi_level_of_next_char): Allow the sentinel "position" to pass
7480 the test for valid cached positions. Fix the logic for looking up
7481 the sentinel state in the cache. GCPRO the Lisp string we are
7482 iterating.
7483 (bidi_push_it, bidi_pop_it): New functions.
7484 (bidi_initialize): Initialize the bidi cache start stack pointer.
7485 (bidi_cache_ensure_space): New function, refactored from part of
7486 bidi_cache_iterator_state. Don't assume the required size is just
7487 one BIDI_CACHE_CHUNK away.
7488 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
7489 (bidi_count_bytes, bidi_char_at_pos): New functions.
7490 (bidi_cache_search): Don't assume bidi_cache_last_idx is
7491 always valid if bidi_cache_idx is valid.
7492 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
7493 is valid if it's going to be used.
7494 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
7495 (bidi_cache_fetch_state, bidi_cache_search)
c965adc5
EZ
7496 (bidi_cache_find_level_change, bidi_cache_ensure_space)
7497 (bidi_cache_iterator_state, bidi_cache_find)
640c8776
SM
7498 (bidi_find_other_level_edge, bidi_cache_start_stack):
7499 All variables related to cache indices are now EMACS_INT.
c965adc5 7500
0bb23927
EZ
7501 * dispextern.h (struct bidi_string_data): New structure.
7502 (struct bidi_it): New member `string'. Make flag members be 1-bit
7503 fields, and put them last in the struct.
640c8776
SM
7504 (compute_display_string_pos, compute_display_string_end):
7505 Update prototypes.
0bb23927
EZ
7506 (bidi_push_it, bidi_pop_it): Add prototypes.
7507 (struct iterator_stack_entry): New members bidi_p,
7508 paragraph_embedding, and from_disp_prop_p.
7509 (struct it): Member bidi_p is now a bit field 1 bit wide.
640c8776
SM
7510 (bidi_shelve_cache, bidi_unshelve_cache):
7511 Declare prototypes.
0bb23927
EZ
7512
7513 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
7514 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
7515 and vector-like objects.
7516
7517 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
7518 cache around display iteration.
7519
7520 * window.c (Fwindow_end, window_scroll_pixel_based)
7521 (displayed_window_lines, Frecenter): Save and restore the bidi
7522 cache around display iteration.
7523
3bbd2265
LMI
75242011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
7525
7526 * editfns.c (Fdelete_region): Clarify the use of the named
7527 parameters (bug#6788).
7528
adc47434
MR
75292011-07-14 Martin Rudalics <rudalics@gmx.at>
7530
7531 * indent.c (Fvertical_motion): Set and restore w->pointm when
7532 saving and restoring the window's buffer (Bug#9006).
7533
837c31f8
LMI
75342011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
7535
7536 * editfns.c (Fstring_to_char): Clarify just what is returned
7537 (bug#6576). Text by Eli Zaretskii.
7538
ac389d0c
JB
75392011-07-13 Juanma Barranquero <lekktu@gmail.com>
7540
7541 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
7542
0be0ce47
EZ
75432011-07-13 Eli Zaretskii <eliz@gnu.org>
7544
7545 * buffer.c (mmap_find): Fix a typo.
7546
cd18e7e3
JB
75472011-07-13 Johan Bockgård <bojohan@gnu.org>
7548
7549 Fix execution of x selection hooks.
7550 * xselect.c (Qx_lost_selection_functions)
7551 (Qx_sent_selection_functions): New vars.
7552 (syms_of_xselect): DEFSYM them.
7553 (x_handle_selection_request): Pass Qx_sent_selection_functions
7554 rather than Vx_sent_selection_functions to Frun_hook_with_args.
7555 (x_handle_selection_clear,x_clear_frame_selections):
7556 Pass Qx_lost_selection_functions rather than
7557 Vx_lost_selection_functions to Frun_hook_with_args.
7558
47ea7f44
PE
75592011-07-13 Paul Eggert <eggert@cs.ucla.edu>
7560
ac389d0c 7561 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
2941c447
PE
7562 The old code sometimes used this field without initializing it.
7563
47ea7f44
PE
7564 * alloc.c (gc_sweep): Don't read past end of array.
7565 In theory, the old code could also have corrupted Emacs internals,
7566 though it'd be very unlikely.
7567
bc985c87
AS
75682011-07-12 Andreas Schwab <schwab@linux-m68k.org>
7569
7570 * character.c (Fcharacterp): Don't advertise optional ignored
ac389d0c 7571 argument. (Bug#4026)
bc985c87 7572
0cf34688
LMI
75732011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
7574
b3dadd76
LMI
7575 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
7576 key" (bug#4257).
7577
0cf34688
LMI
7578 * window.c (Fset_window_start): Doc fix (bug#4199).
7579 (Fset_window_hscroll): Ditto.
7580
270768cd
PE
75812011-07-12 Paul Eggert <eggert@cs.ucla.edu>
7582
077e3dda 7583 Fix minor new problems caught by GCC 4.6.1.
270768cd 7584 * term.c (init_tty): Remove unused local.
490011a6 7585 * xsettings.c (store_monospaced_changed): Define this function only
077e3dda 7586 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
490011a6 7587 not used otherwise.
270768cd 7588
b1f58454
CY
75892011-07-12 Chong Yidong <cyd@stupidchicken.com>
7590
7591 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
7592
22b9578d
LMI
75932011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
7594
6e70ab07
LMI
7595 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
7596 are the mini-buffer and the echo area (bug#3320).
7597
22b9578d
LMI
7598 * term.c (init_tty): Remove support for supdup, c10 and perq
7599 terminals, which are no longer supported (bug#1482).
7600
8974cc9f
JB
76012011-07-10 Johan Bockgård <bojohan@gnu.org>
7602
7603 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
7604
a560d974
JD
76052011-07-10 Jan Djärv <jan.h.d@swipnet.se>
7606
7607 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
7608 for non-popups (Bug#3642).
7609
1dae0f0a
AS
76102011-07-10 Andreas Schwab <schwab@linux-m68k.org>
7611
268c2c36 7612 * alloc.c (reset_malloc_hooks): Protoize.
1dae0f0a 7613 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
268c2c36
AS
7614 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
7615 * cm.c (losecursor): Likewise.
1dae0f0a
AS
7616 * data.c (fmod): Likewise.
7617 * dispnew.c (swap_glyphs_in_rows): Likewise.
7618 * emacs.c (memory_warning_signal): Likewise.
7619 * floatfns.c (float_error): Likewise.
7620 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
7621 (otf_open, font_otf_capability, generate_otf_features)
7622 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
7623 Likewise.
7624 * image.c (pbm_read_file): Likewise.
7625 * indent.c (string_display_width): Likewise.
7626 * intervals.c (check_for_interval, search_for_interval)
7627 (inc_interval_count, count_intervals, root_interval)
7628 (adjust_intervals_for_insertion, make_new_interval): Likewise.
7629 * lread.c (defalias): Likewise.
268c2c36 7630 * ralloc.c (r_alloc_check): Likewise.
1dae0f0a
AS
7631 * regex.c (set_image_of_range_1, set_image_of_range)
7632 (regex_grow_registers): Likewise.
7633 * sysdep.c (strerror): Likewise.
7634 * termcap.c (valid_filename_p, tprint, main): Likewise.
7635 * tparam.c (main): Likewise.
7636 * unexhp9k800.c (run_time_remap, save_data_space)
7637 (update_file_ptrs, read_header, write_header, calculate_checksum)
7638 (copy_file, copy_rest, display_header): Likewise.
7639 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
7640 Likewise.
7641 * xdisp.c (check_it): Likewise.
7642 * xfaces.c (register_color, unregister_color, unregister_colors):
7643 Likewise.
7644 * xfns.c (print_fontset_result): Likewise.
7645 * xrdb.c (member, fatal, main): Likewise.
7646
99033785
PE
76472011-07-10 Paul Eggert <eggert@cs.ucla.edu>
7648
7649 Fix minor problems found by static checking (Bug#9031).
7650 * chartab.c (char_table_set_range, map_sub_char_table):
7651 Remove unused locals.
7652 (uniprop_table): Now static.
7653 * composite.c (_work_char): Remove unused static var.
7654
9cb2ac56
JB
76552011-07-09 Juanma Barranquero <lekktu@gmail.com>
7656
7657 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
7658
f25661f0
JD
76592011-07-09 Jan Djärv <jan.h.d@swipnet.se>
7660
7661 * gtkutil.c (qttip_cb): Remove code without function.
7662
8278c4fe
EZ
76632011-07-09 Eli Zaretskii <eliz@gnu.org>
7664
7665 * w32.c (pthread_sigmask): New stub.
7666
1692ae2d 76672011-07-08 Paul Eggert <eggert@cs.ucla.edu>
123403e4 7668
8a6ebd58 7669 Use pthread_sigmask, not sigprocmask (Bug#9010).
123403e4
PE
7670 sigprocmask is portable only for single-threaded applications, and
7671 Emacs can be multi-threaded when it uses GTK.
1301ac26
PE
7672 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
7673 (LIBES): Use it.
7674 * callproc.c (Fcall_process):
7675 * process.c (create_process):
7676 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
7677 Use pthread_sigmask, not sigprocmask.
123403e4 7678
1b854618
JD
76792011-07-08 Jan Djärv <jan.h.d@swipnet.se>
7680
7681 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
7682 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
7683 wrong (Bug#8591).
7684
3fe4b549
JD
76852011-07-08 Jan Djärv <jan.h.d@swipnet.se>
7686
0ce7e563
JD
7687 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
7688 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
7689 (xg_hide_tooltip): Fix comment.
7690
3fe4b549
JD
7691 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
7692 in registerServicesMenuSendTypes.
7693 (validRequestorForSendType): Don't check ns_return_types.
7694
7695 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
7696 ns_return_type.
7697
5df75e47
JR
76982011-07-08 Jason Rumney <jasonr@gnu.org>
7699
22610910
JR
7700 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
7701 SH_SHOW for hidden windows (Bug#5482).
7702
5df75e47
JR
7703 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
7704 frame struct members of non-existent frames (Bug#6284).
7705
699c10bd
JD
77062011-07-08 Jan Djärv <jan.h.d@swipnet.se>
7707
4393663b
JD
7708 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
7709 variable firstTime not needed on OSX >= 10.6.
7710 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
7711 >= 10.5. Use setKnobProportion, setDoubleValue.
7712
7713 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
7714 (MAC_OS_X_VERSION_10_5): Define if not defined.
7715 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
7716 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
7717 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
7718
7719 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
7720 cString and lossyCString on OSX >= 10.4
7721
58179cce 7722 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
4393663b
JD
7723 sizeToFit on OSX >= 10.2.
7724
7725 * nsimage.m (allocInitFromFile): Don't use deprecated method
7726 bestRepresentationForDevice on OSX >= 10.6.
7727
7728 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
7729 to avoid warning.
7730
7731 * emacs.c: Declare unexec_init_emacs_zone.
7732
a63e0781
JD
7733 * nsgui.h: Fix compiler warning about gnulib redefining verify.
7734
699c10bd
JD
7735 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
7736
7737 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
7738 on svcsMenu (Bug#8842).
7739
7740 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
7741 ns_return_types.
7742 (Fns_list_services): Just return Qnil on 10.6, code not working there.
7743
7744 * nsterm.m (QUTF8_STRING): Declare.
7745 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
7746 (validRequestorForSendType): Return type is (id).
7747 Change indexOfObjectIdenticalTo to indexOfObject.
7748 Check if we have local selection before returning self (Bug#8842).
7749 (writeSelectionToPasteboard): Put local selection into paste board
7750 if we have a local selection (Bug#8842).
7751 (syms_of_nsterm): DEFSYM QUTF8_STRING.
7752
7753 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
7754 (ns_get_local_selection): Declare.
7755
54e10184
LMI
77562011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
7757
9888ff71
LMI
7758 * keymap.c (describe_map_tree): Don't insert a double newline at
7759 the end of the buffer (bug#1169) and return whether we inserted
7760 something.
7761
54e10184
LMI
7762 * callint.c (Fcall_interactively): Change "reading args" to
7763 "providing args" to try to clarify what it does (bug#1010).
7764
15fa4783
KH
77652011-07-07 Kenichi Handa <handa@m17n.org>
7766
7767 * composite.c (composition_compute_stop_pos): Ignore a static
7768 composition starting before CHARPOS (Bug#8915).
7769
7770 * xdisp.c (handle_composition_prop): Likewise.
7771
a8815b00
EZ
77722011-07-07 Eli Zaretskii <eliz@gnu.org>
7773
7774 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
7775 (Bug#9015)
7776
ef7b981d 77772011-07-07 Kenichi Handa <handa@m17n.org>
c805dec0
KH
7778
7779 * character.h (unicode_category_t): New enum type.
7780
7781 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
7782 (Qchar_code_property_table): New variable.
7783 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
7784 (UNIPROP_COMPRESSED_FORM_P): New macros.
7785 (char_table_ascii): Uncompress the compressed values.
7786 (sub_char_table_ref): New arg is_uniprop. Callers changed.
7787 Uncompress the compressed values.
ac389d0c 7788 (sub_char_table_ref_and_range): Likewise.
c805dec0
KH
7789 (char_table_ref_and_range): Uncompress the compressed values.
7790 (sub_char_table_set): New arg is_uniprop. Callers changed.
7791 Uncompress the compressed values.
7792 (sub_char_table_set_range): Args changed. Callers changed.
7793 (char_table_set_range): Adjuted for the above change.
7794 (map_sub_char_table): Delete args default_val and parent. Add arg
7795 top. Give decoded values to a Lisp function.
640c8776 7796 (map_char_table): Adjust for the above change. Give decoded
c805dec0
KH
7797 values to a Lisp function. Gcpro more variables.
7798 (uniprop_table_uncompress)
7799 (uniprop_decode_value_run_length): New functions.
7800 (uniprop_decoder, uniprop_decoder_count): New variables.
7801 (uniprop_get_decoder, uniprop_encode_value_character)
7802 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
7803 New functions.
7804 (uniprop_encoder, uniprop_encoder_count): New variables.
7805 (uniprop_get_encoder, uniprop_table)
7806 (Funicode_property_table_internal, Fget_unicode_property_internal)
7807 (Fput_unicode_property_internal): New functions.
7808 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
7809 Sunicode_property_table_internal, Sget_unicode_property_internal,
5e617bc2 7810 and Sput_unicode_property_internal. Defvar_lisp
c805dec0
KH
7811 char-code-property-alist.
7812
640c8776 7813 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
c805dec0
KH
7814 Vunicode_category_table.
7815
640c8776 7816 * font.c (font_range): Adjust for the change of
c805dec0
KH
7817 Vunicode_category_table.
7818
76b397fb
DN
78192011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
7820
7821 * m/iris4d.h: Remove file, move contents ...
7822 * s/irix6-5.h: ... here.
7823
22b4128e
PE
78242011-07-06 Paul Eggert <eggert@cs.ucla.edu>
7825
7826 Remove unportable assumption about struct layout (Bug#8884).
8a5c77bb
PE
7827 * alloc.c (mark_buffer):
7828 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
7829 (clone_per_buffer_values): Don't assume that
22b4128e
PE
7830 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
7831 This isn't true in general, and it's particularly not true
7832 if Emacs is configured with --with-wide-int.
7833 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
7834 New macros, used in the buffer.c change.
7835
869795d6
JD
78362011-07-05 Jan Djärv <jan.h.d@swipnet.se>
7837
7838 * xsettings.c: Use both GConf and GSettings if both are available.
7839 (store_config_changed_event): Add comment.
7840 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
7841 (store_tool_bar_style_changed): New functions.
5e617bc2 7842 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
869795d6
JD
7843 (struct xsettings): Move font inside HAVE_XFT.
7844 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
640c8776 7845 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
869795d6 7846 Move inside HAVE_XFT.
640c8776 7847 (something_changed_gsettingsCB): Rename from something_changedCB.
869795d6
JD
7848 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
7849 also.
7850 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
5e617bc2 7851 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
640c8776 7852 (something_changed_gconfCB): Rename from something_changedCB.
869795d6
JD
7853 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
7854 (parse_settings): Move check for font inside HAVE_XFT.
7855 (read_settings, apply_xft_settings): Add comment.
7856 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
7857 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
7858 call store_font_name_changed.
7859 (xft_settings_event): Add comment.
7860 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
7861 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
7862 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
7863 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
7864 (xsettings_initialize): Call init_gsettings last.
640c8776
SM
7865 (xsettings_get_system_font, xsettings_get_system_normal_font):
7866 Add comment.
869795d6 7867
d8ed26bd
PE
78682011-07-05 Paul Eggert <eggert@cs.ucla.edu>
7869
7870 Random fixes. E.g., (random) never returned negative values.
7871 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
7872 subseconds part to the entropy, as that's a bit more random.
7873 Prefer signed to unsigned, since the signedness doesn't matter and
7874 in general we prefer signed. When given a limit, use a
7875 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
7876 latter isn't right if USE_2_TAGS_FOR_INTS.
7877 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
7878 not 0..VALMASK. Don't discard "excess" bits that random () returns.
7879
cabf1cac
SM
78802011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
7881
7882 * textprop.c (text_property_stickiness):
7883 Obey Vtext_property_default_nonsticky.
7884 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
7885 * w32fns.c (syms_of_w32fns):
7886 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
7887
6e9b2be9
PE
78882011-07-04 Paul Eggert <eggert@cs.ucla.edu>
7889
7890 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
7891 This is more efficient than Ffile_directory_p and avoids a minor race.
7892
90186c68
LMI
78932011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
7894
7c301272
LMI
7895 * buffer.c (Foverlay_put): Say what the return value is
7896 (bug#7835).
7897
c4f2d8d4
LMI
7898 * fileio.c (barf_or_query_if_file_exists): Check first if the file
7899 is a directory before asking whether to use the file name
7900 (bug#7564).
ad637907
LMI
7901 (barf_or_query_if_file_exists): Make the "File is a directory"
7902 error be more correct.
c4f2d8d4 7903
90186c68
LMI
7904 * fns.c (Frequire): Remove the mention of the .gz files, since
7905 that's installation-specific, but keep the mention of
7906 `get-load-suffixes'.
7907
da64016e
PE
79082011-07-04 Paul Eggert <eggert@cs.ucla.edu>
7909
7910 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
7911 Report string overflow if the output is too long.
7912
7d47b580
JB
79132011-07-04 Juanma Barranquero <lekktu@gmail.com>
7914
a555cb87
JB
7915 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
7916 (syms_of_gnutls): Remove duplicate DEFSYM for
7917 Qgnutls_bootprop_verify_hostname_error, an error for
7918 Qgnutls_bootprop_verify_error (which is no longer used).
7919
7d47b580
JB
7920 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
7921 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
7922 Also (re)move comments that are misplaced or no longer relevant.
7923
1e49bfab
LMI
79242011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
7925
7926 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
7927
1485f4c0
CY
79282011-07-03 Chong Yidong <cyd@stupidchicken.com>
7929
7930 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
7931 and background color parameters if they have been changed.
7932
a9ab721e
LMI
79332011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
7934
7935 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
7936
cf7cff57
PE
79372011-07-03 Paul Eggert <eggert@cs.ucla.edu>
7938
2e13213d
PE
7939 * xsettings.c (SYSTEM_FONT): Define only when used.
7940 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
7941
cf7cff57
PE
7942 * keymap.c (access_keymap_1): Now static.
7943
7a8e04f7
CY
79442011-07-02 Chong Yidong <cyd@stupidchicken.com>
7945
7946 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
7947 leave any prefix arg for the up event (Bug#1586).
7948
61352f62
LMI
79492011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
7950
69bb1ef7
LMI
7951 * lread.c (syms_of_lread): Mention single symbols defined by
7952 `defvar' or `defconst' (bug#7154).
7953
61352f62 7954 * fns.c (Frequire): Mention .el.gz files (bug#7314).
7b3747f9 7955 (Frequire): Mention get-load-suffixes.
61352f62 7956
28545e04
MR
79572011-07-02 Martin Rudalics <rudalics@gmx.at>
7958
7959 * window.h (window): Remove clone_number slot.
7960 * window.c (Fwindow_clone_number, Fset_window_clone_number):
7961 Remove.
7962 (make_parent_window, make_window, saved_window)
7963 (Fset_window_configuration, save_window_save): Don't deal with
7964 clone numbers.
7965 * buffer.c (Qclone_number): Remove declaration.
7966 (sort_overlays, overlay_strings): Don't deal with clone numbers.
7967
3349e122
SM
79682011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
7969
7970 Add multiple inheritance to keymaps.
7971 * keymap.c (Fmake_composed_keymap): New function.
7972 (Fset_keymap_parent): Simplify.
7973 (fix_submap_inheritance): Remove.
7974 (access_keymap_1): New function extracted from access_keymap to handle
7975 embedded parents and handle lists of maps.
7976 (access_keymap): Use it.
7977 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
7978 (Fcopy_keymap): Handle embedded parents.
7979 (Fcommand_remapping, define_as_prefix): Simplify.
7980 (Fkey_binding): Simplify.
7981 (syms_of_keymap): Move minibuffer-local-completion-map,
7982 minibuffer-local-filename-completion-map,
7983 minibuffer-local-must-match-map, and
7984 minibuffer-local-filename-must-match-map to Elisp.
7985 (syms_of_keymap): Defsubr make-composed-keymap.
7986 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
7987 (parse_menu_item): Trivial simplification.
7988
3279eb87
GM
79892011-07-01 Glenn Morris <rgm@gnu.org>
7990
7991 * Makefile.in (SETTINGS_LIBS): Fix typo.
7992
4550efdf
KI
79932011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny patch)
7994
7995 * coding.c (Fencode_coding_string): Record the last coding system
7996 used, as the function doc string says (bug#8738).
7997
0949d2b6
JD
79982011-07-01 Jan Djärv <jan.h.d@swipnet.se>
7999
8000 * xsettings.c (store_monospaced_changed): Take new font as arg and
8001 check for change against current_mono_font.
8002 (EMACS_TYPE_SETTINGS): Remove this and related defines.
8003 (emacs_settings_constructor, emacs_settings_get_property)
8004 (emacs_settings_set_property, emacs_settings_class_init)
8005 (emacs_settings_init, gsettings_obj): Remove.
8006 (something_changedCB): New function for HAVE_GSETTINGS.
8007 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
8008 with value as argument.
8009 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
8010 g_settings_new (Bug#8967). Do not create gsettings_obj.
9173deec 8011 Remove calls to g_settings_bind. Connect something_changedCB to
0949d2b6
JD
8012 "changed".
8013
8014 * xgselect.c: Add defined (HAVE_GSETTINGS).
8015 (xgselect_initialize): Ditto.
8016
8017 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
8018 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
8019 xg_select.
8020
bbc6b304
PE
80212011-07-01 Paul Eggert <eggert@cs.ucla.edu>
8022
8023 * eval.c (struct backtrace): Simplify and port the data structure.
8024 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
8025 signed bit field, as this assumption is not portable and it makes
8026 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
8027 "char debug_on_exit : 1" as this is not portable either; instead,
8028 use the portable "unsigned int debug_on_exit : 1". Remove unused
8029 member evalargs. Remove obsolete comments about cc bombing out.
8030
9851bfc5
JD
80312011-06-30 Jan Djärv <jan.h.d@swipnet.se>
8032
51bb811f 8033 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
9851bfc5
JD
8034 Let HAVE_GSETTINGS override HAVE_GCONF.
8035 (store_monospaced_changed): New function.
8036 (EMACS_SETTINGS): A new type derived from GObject to handle
8037 GSettings notifications.
8038 (emacs_settings_constructor, emacs_settings_get_property)
8039 (emacs_settings_set_property, emacs_settings_class_init):
8040 New functions.
8041 (gsettings_client, gsettings_obj): New variables.
8042 (GSETTINGS_SCHEMA): New define.
8043 (something_changedCB): Call store_monospaced_changed.
8044 (init_gsettings): New function.
8045 (xsettings_initialize): Call init_gsettings.
8046 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
8047 to NULL.
8048
640c8776 8049 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
9851bfc5
JD
8050 GCONF_CFLAGS/LIBS.
8051
5386012d
MR
80522011-06-29 Martin Rudalics <rudalics@gmx.at>
8053
8054 * window.c (resize_root_window, grow_mini_window)
8055 (shrink_mini_window): Rename Qresize_root_window to
8056 Qwindow_resize_root_window and Qresize_root_window_vertically to
8057 Qwindow_resize_root_window_vertically.
8058
f13e0b08
PE
80592011-06-28 Paul Eggert <eggert@cs.ucla.edu>
8060
8061 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
8062
94515237
JB
80632011-06-27 Juanma Barranquero <lekktu@gmail.com>
8064
8065 * makefile.w32-in: Redesign dependencies so they reflect more
8066 clearly which files are directly included by each source file,
8067 and not through other includes.
8068
e43b6e43
MR
80692011-06-27 Martin Rudalics <rudalics@gmx.at>
8070
8071 * buffer.c (Qclone_number): Declare static and DEFSYM it.
8072 (sort_overlays, overlay_strings): When an overlay's clone number
8073 matches the window's clone number process the overlay even if
8074 the overlay's window property doesn't match the current window.
8075
d68443dc
MR
8076 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
8077 (Fwindow_hchild): Rename to Fwindow_left_child.
8078 (Fwindow_next): Rename to Fwindow_next_sibling.
8079 (Fwindow_prev): Rename to Fwindow_prev_sibling.
d615d6d2
MR
8080 (resize_window_check): Rename to window_resize_check.
8081 (resize_window_apply): Rename to window_resize_apply.
8082 (Fresize_window_apply): Rename to Fwindow_resize_apply.
8083 (Fdelete_other_windows_internal, resize_frame_windows)
8084 (Fsplit_window_internal, Fdelete_window_internal)
8085 (grow_mini_window, shrink_mini_window)
8086 (Fresize_mini_window_internal): Fix callers accordingly.
d68443dc 8087
c7e73be5
JD
80882011-06-26 Jan Djärv <jan.h.d@swipnet.se>
8089
8090 * emacsgtkfixed.h: State that this is only used with Gtk+3.
8091 (emacs_fixed_set_min_size): Remove.
8092 (emacs_fixed_new): Take frame as argument.
8093
8094 * emacsgtkfixed.c: State that this is only used with Gtk+3.
8095 (_EmacsFixedPrivate): Remove minwidth/height.
8096 Add struct frame *f.
8097 (emacs_fixed_init): Initialize priv->f.
8098 (get_parent_class, emacs_fixed_set_min_size): Remove.
8099 (emacs_fixed_new): Set priv->f to argument.
8100 (emacs_fixed_get_preferred_width)
8101 (emacs_fixed_get_preferred_height): Use min_width/height from
8102 frames size_hint to set minimum and natural (Bug#8919).
8103 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
8104 and use min_width/height from frames size_hint to set
8105 min_width/height (Bug#8919).
8106
8107 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
9173deec
JB
8108 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
8109 Fix indentation.
c7e73be5 8110
cf99dcf8
EZ
81112011-06-26 Eli Zaretskii <eliz@gnu.org>
8112
8113 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
8114 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
8115 called at ZV.
8116
029529ac
CY
81172011-06-26 Chong Yidong <cyd@stupidchicken.com>
8118
8119 * process.c (wait_reading_process_output): Bypass select if
8120 waiting for a cell while ignoring keyboard input, and input is
8121 pending. Suggested by Jan Djärv (Bug#8869).
8122
7a7ef429
PE
81232011-06-25 Paul Eggert <eggert@cs.ucla.edu>
8124
8125 Use gnulib's dup2 module instead of rolling our own.
8126 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
8127
11fdef7d 81282011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
989b42d2
YM
8129
8130 * dispnew.c (scrolling_window): Before scrolling, turn off a
8131 mouse-highlight in the window being scrolled.
8132
cd3520a4
JB
81332011-06-24 Juanma Barranquero <lekktu@gmail.com>
8134
8135 Move DEFSYM to lisp.h and use everywhere.
8136
8137 * character.h (DEFSYM): Move declaration...
8138 * lisp.h (DEFSYM): ...here.
8139
8140 * gnutls.c:
8141 * minibuf.c:
8142 * w32menu.c:
8143 * w32proc.c:
8144 * w32select.c: Don't include character.h.
8145
8146 * alloc.c (syms_of_alloc):
8147 * buffer.c (syms_of_buffer):
8148 * bytecode.c (syms_of_bytecode):
8149 * callint.c (syms_of_callint):
8150 * casefiddle.c (syms_of_casefiddle):
8151 * casetab.c (init_casetab_once):
8152 * category.c (init_category_once, syms_of_category):
8153 * ccl.c (syms_of_ccl):
8154 * cmds.c (syms_of_cmds):
8155 * composite.c (syms_of_composite):
8156 * dbusbind.c (syms_of_dbusbind):
8157 * dired.c (syms_of_dired):
8158 * dispnew.c (syms_of_display):
8159 * doc.c (syms_of_doc):
8160 * editfns.c (syms_of_editfns):
8161 * emacs.c (syms_of_emacs):
8162 * eval.c (syms_of_eval):
8163 * fileio.c (syms_of_fileio):
8164 * fns.c (syms_of_fns):
8165 * frame.c (syms_of_frame):
8166 * fringe.c (syms_of_fringe):
8167 * insdel.c (syms_of_insdel):
8168 * keymap.c (syms_of_keymap):
8169 * lread.c (init_obarray, syms_of_lread):
8170 * macros.c (syms_of_macros):
8171 * msdos.c (syms_of_msdos):
8172 * print.c (syms_of_print):
8173 * process.c (syms_of_process):
8174 * search.c (syms_of_search):
8175 * sound.c (syms_of_sound):
8176 * syntax.c (init_syntax_once, syms_of_syntax):
8177 * terminal.c (syms_of_terminal):
8178 * textprop.c (syms_of_textprop):
8179 * undo.c (syms_of_undo):
8180 * w32.c (globals_of_w32):
8181 * window.c (syms_of_window):
8182 * xdisp.c (syms_of_xdisp):
8183 * xfaces.c (syms_of_xfaces):
8184 * xfns.c (syms_of_xfns):
8185 * xmenu.c (syms_of_xmenu):
8186 * xsettings.c (syms_of_xsettings):
8187 * xterm.c (syms_of_xterm): Use DEFSYM.
8188
4228cf16
TZ
81892011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
8190
cd3520a4 8191 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
4228cf16 8192
7fcccf1e
PE
81932011-06-23 Paul Eggert <eggert@cs.ucla.edu>
8194
7efb4e0e
PE
8195 Integer and buffer overflow fixes (Bug#8873).
8196
ff5844ad
PE
8197 * print.c (printchar, strout): Check for string overflow.
8198 (PRINTPREPARE, printchar, strout):
8199 Don't set size unless allocation succeeds.
8200
90532f02
PE
8201 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
8202 for sizes. Check for string overflow more accurately.
8203 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
8204
6d84508d
PE
8205 * macros.c: Integer and buffer overflow fixes.
8206 * keyboard.h (struct keyboard.kbd_macro_bufsize):
8207 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
8208 Use ptrdiff_t, not int, for sizes.
8209 Don't increment bufsize until after realloc succeeds.
8210 Check for size-calculation overflow.
8211 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
8212
437b2cb4
PE
8213 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
8214
8b9ac8b4
PE
8215 * lread.c: Integer overflow fixes.
8216 (read_integer): Radix is now EMACS_INT, not int,
8217 to improve quality of diagnostics for out-of-range radices.
8218 Calculate buffer size correctly for out-of-range radices.
8219 (read1): Check for integer overflow in radices, and in
8220 read-circle numbers.
82cb60d3
PE
8221 (read_escape): Avoid int overflow.
8222 (Fload, openp, read_buffer_size, read1)
8223 (substitute_object_recurse, read_vector, read_list, map_obarray):
8224 Use ptrdiff_t, not int, for sizes.
8225 (read1): Use EMACS_INT, not int, for sizes.
20270765 8226 Check for size overflow.
8b9ac8b4 8227
7fcccf1e
PE
8228 * image.c (cache_image): Check for size arithmetic overflow.
8229
bfbbd7e7
PE
8230 * lread.c: Integer overflow issues.
8231 (saved_doc_string_size, saved_doc_string_length)
8232 (prev_saved_doc_string_size, prev_saved_doc_string_length):
8233 Now ptrdiff_t, not int.
8234 (read1): Don't assume doc string length fits in int. Check for
8235 out-of-range doc string lengths.
8236 (read_list): Don't assume file position fits in int.
39019e54 8237 (read_escape): Check for hex character overflow.
bfbbd7e7 8238
4e323265
LL
82392011-06-22 Leo Liu <sdl.web@gmail.com>
8240
8241 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
8242 Move to minibuffer.el.
8243
85fece3e
PE
82442011-06-22 Paul Eggert <eggert@cs.ucla.edu>
8245
20b84ce9 8246 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
85fece3e
PE
8247 The following patches are for when GLYPH_DEBUG && !XASSERT.
8248 * dispextern.h (trace_redisplay_p, dump_glyph_string):
8249 * dispnew.c (flush_stdout):
8250 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
8251 Mark as externally visible.
8252 * dispnew.c (check_window_matrix_pointers): Now static.
8253 * dispnew.c (window_to_frame_vpos):
8254 * xfns.c (unwind_create_frame):
8255 * xterm.c (x_check_font): Remove unused local.
8256 * scroll.c (CHECK_BOUNDS):
8257 * xfaces.c (cache_fache): Rename local to avoid shadowing.
8258 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
8259 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
8260 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
8261 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
8262 Now static.
8263 (debug_method_add): Use va_list and vsprintf rather than relying
8264 on undefined behavior with wrong number of arguments.
8265 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
8266 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
8267 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
8268 since we're not interested in debugging glyphs with old libraries.
8269 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
8270 GCC 4.6.0's static checking.
8271
0766b489
PE
82722011-06-22 Paul Eggert <eggert@cs.ucla.edu>
8273
31fd4b32
PE
8274 Integer overflow and signedness fixes (Bug#8873).
8275 A few related buffer overrun fixes, too.
8276
b79e8648
PE
8277 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
8278
0766b489
PE
8279 * dispextern.h (struct face.stipple):
8280 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
8281 (x_bitmap_mask, x_allocate_bitmap_record)
8282 (x_create_bitmap_from_data, x_create_bitmap_from_file)
8283 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
8284 (x_create_bitmap_from_xpm_data):
8285 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
8286 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
8287 (.bitmaps_last):
8288 * xfaces.c (load_pixmap):
8289 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
8290 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
8291 (.bitmaps_last, struct x_output.icon_bitmap):
8292 Use ptrdiff_t, not int, for bitmap indexes.
8293 (x_allocate_bitmap_record): Check for size overflow.
8294 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
8295
b081724f
PE
8296 Use ptrdiff_t, not int, for overlay counts.
8297 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
8298 * editfns.c (overlays_around, get_pos_property):
8299 * textprop.c (get_char_property_and_overlay):
8300 * xdisp.c (next_overlay_change, note_mouse_highlight):
8301 * xfaces.c (face_at_buffer_position):
21514da7
PE
8302 * buffer.c (OVERLAY_COUNT_MAX): New macro.
8303 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
8304 (Fnext_overlay_change, Fprevious_overlay_change)
8305 (mouse_face_overlay_overlaps, Foverlays_in):
b081724f 8306 Use ptrdiff_t, not int, for sizes.
21514da7 8307 (overlays_at, overlays_in): Check for size-calculation overflow.
b081724f 8308
3de73e5e
PE
8309 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
8310
2606c57b
PE
8311 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
8312 (x_session_initialize): Do not assume string length fits in int.
8313
aaafe47a
PE
8314 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
8315 This is unlikely, but can occur if DPI is outlandish.
8316
2674ddc8 8317 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
3a5077c5
PE
8318 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
8319
28154962
PE
8320 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
8321 * xrdb.c (magic_file_p, search_magic_path):
8322 Omit last arg SUFFIX; it was always 0. All callers changed.
8323 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
8324
7de51af5
PE
8325 * xfont.c (xfont_match): Avoid need for strlen.
8326
25ed6cc3
PE
8327 * xfns.c: Don't assume strlen fits in int.
8328 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
8329
4eab31dd
PE
8330 * xdisp.c (message_log_check_duplicate): Return intmax_t,
8331 not unsigned long, as we prefer signed integers. All callers changed.
8332 Detect integer overflow in repeat count.
8333 (message_dolog): Don't assume print length fits in 39 bytes.
df1f27af 8334 (display_mode_element): Don't assume strlen fits in int.
4eab31dd 8335
171e2a58
PE
8336 * termcap.c: Don't assume sizes fit in int and never overflow.
8337 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
8338 (gobble_line): Check for size-calculation overflow.
8339
ad39faca 8340 * minibuf.c (Fread_buffer):
6e5bb2dc 8341 * lread.c (intern, intern_c_string):
74ca2eb3
PE
8342 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
8343 Don't assume string length fits in int.
8344
52c61c22 8345 * keyboard.c (parse_tool_bar_item):
9bda3520
PE
8346 * gtkutil.c (style_changed_cb): Avoid need for strlen.
8347
b5b8c9e5
PE
8348 * font.c: Don't assume string length fits in int.
8349 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
8350 Use ptrdiff_t, not int.
ccd6111c
PE
8351 (font_intern_prop): Don't assume string length fits in int.
8352 Don't assume integer property fits in fixnum.
8353 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
b5b8c9e5 8354
882f0d81 8355 * filelock.c: Fix some buffer overrun and integer overflow issues.
51cab52b 8356 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
882f0d81
PE
8357 Reformulate so as not to need the command string.
8358 Invoke gzip -cd rather than gunzip, as it's more portable.
8359 (lock_info_type, lock_file_1, lock_file):
8360 Don't assume pid_t and time_t fit in unsigned long.
8361 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
8362 (current_lock_owner): Prefer signed type for sizes.
8363 Use memcpy, not strncpy, where memcpy is what is really wanted.
8364 Don't assume (via atoi) that time_t and pid_t fit in int.
8365 Check for time_t and/or pid_t out of range, e.g., via a network share.
8366 Don't alloca where an auto var works fine.
8367
93f4cf88
PE
8368 * fileio.c: Fix some integer overflow issues.
8369 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
8370 Don't assume string length fits in int.
8371 (directory_file_name): Don't assume string length fits in long.
8372 (make_temp_name): Don't assume pid fits in int, or that its print
8373 length is less than 20.
8374
f3e92b69
PE
8375 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
8376
1bfdaf10
PE
8377 * coding.c (make_subsidiaries): Don't assume string length fits in int.
8378
35016e9a
PE
8379 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
8380
3d1e65a1
PE
8381 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
8382 We prefer signed integers, even for size calculations.
8383
0b963a93
PE
8384 * emacs.c: Don't assume string length fits in 'int'.
8385 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
8386 (main): Don't invoke strlen when not needed.
8387
573f4b54
PE
8388 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
8389 (XD_DEBUG_MESSAGE): Don't waste a byte.
8390
989f33ba
PE
8391 * callproc.c (getenv_internal_1, getenv_internal)
8392 (Fgetenv_internal):
965d34eb
PE
8393 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
8394
e4d29b33
PE
8395 * lread.c (invalid_syntax): Omit length argument.
8396 All uses changed. This doesn't fix a bug, but it simplifies the
8397 code away from its former Hollerith-constant appearance, and it's
8398 one less 'int' to worry about when looking at integer-overflow issues.
51cab52b 8399 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
e4d29b33 8400
eb49b136
PE
8401 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
8402 This didn't break anything, but it didn't help either.
8403 It's confusing to put a bogus integer in a place where the actual
8404 value does not matter.
9f62aeb1 8405 (LIST_END_P): Remove unused macro and its bogus comment.
cbeff735 8406 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
eb49b136 8407
15375a22
PE
8408 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
8409 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
8410 implementation.
b61cc01c
PE
8411 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
8412 We prefer signed types, and the value cannot exceed the EMACS_INT
8413 range anyway (because otherwise the length would not be representable).
9a8e8d9b
PE
8414 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
8415 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
8416 This avoids a GCC warning when WIDE_EMACS_INT.
15375a22 8417
53b2623d
PE
8418 * indent.c (sane_tab_width): New function.
8419 (current_column, scan_for_column, Findent_to, position_indentation)
8420 (compute_motion): Use it. This is just for clarity.
8fcaf9cc 8421 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
53b2623d 8422
51cab52b 8423 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
45aebb64 8424
f2ed8a70
PE
8425 * lisp.h (lint_assume): New macro.
8426 * composite.c (composition_gstring_put_cache):
8427 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
8428
abe80cc6
PE
8429 * editfns.c, insdel.c:
8430 Omit unnecessary forward decls, to simplify future changes.
a9e860e1 8431
b02c740e
PE
8432 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
8433
ebc96716
PE
8434 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
8435
b4e50fa0 8436 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
f03dc6ef 8437 Use much-faster test for byte-length change.
311d5d7c 8438 Don't assume string byte-length fits in 'int'.
a4cf38e4 8439 Check that character arg fits in 'int'.
85461888 8440 (mapcar1): Declare byte as byte, for clarity.
b4e50fa0 8441
c0c1ee9f
PE
8442 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
8443
a498d7f4
PE
8444 * fns.c (concat): Catch string overflow earlier.
8445 Do not rely on integer wraparound.
8446
51cab52b
PE
8447 * dispextern.h (struct it.overlay_strings_charpos)
8448 (struct it.selective): Now EMACS_INT, not int.
87830974
PE
8449 * xdisp.c (forward_to_next_line_start)
8450 (back_to_previous_visible_line_start)
8451 (reseat_at_next_visible_line_start, next_element_from_buffer):
8452 Don't arbitrarily truncate the value of 'selective' to int.
8453
76031fad
PE
8454 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
8455
5eb55db9
PE
8456 * composite.c: Don't truncate sizes to 'int'.
8457 (composition_gstring_p, composition_reseat_it)
8458 (composition_adjust_point): Use EMACS_INT, not int.
7d100a81
PE
8459 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
8460 not EMACS_UINT, for indexes.
5eb55db9 8461
0703a717
PE
8462 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
8463
d6202519
PE
8464 * buffer.c: Include <verify.h>.
8465 (struct sortvec.priority, struct sortstr.priority):
8961a454 8466 Now EMACS_INT, not int.
c20998a7 8467 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
67c36fce
PE
8468 (struct sortstr.size, record_overlay_string)
8469 (struct sortstrlist.size, struct sortlist.used):
8470 Don't truncate size to int.
8471 (record_overlay_string): Check for size-calculation overflow.
d6202519 8472 (init_buffer_once): Check at compile-time, not run-time.
fadf4e30 8473
d5a19415
JM
84742011-06-22 Jim Meyering <meyering@redhat.com>
8475
029529ac 8476 Don't leak an XBM-image-sized buffer
d5a19415
JM
8477 * image.c (xbm_load): Free the image buffer after using it.
8478
a9041e6c
PE
84792011-06-21 Paul Eggert <eggert@cs.ucla.edu>
8480
8481 Port to Sun C.
8482 * composite.c (find_automatic_composition): Omit needless 'return 0;'
8483 that Sun C diagnosed.
8484 * fns.c (secure_hash): Fix pointer signedness issue.
8485 * intervals.c (static_offset_intervals): New function.
8486 (offset_intervals): Use it.
8487
7f3f739f
LL
84882011-06-21 Leo Liu <sdl.web@gmail.com>
8489
8490 * deps.mk (fns.o):
8491 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
8492 sha512.h.
8493
8494 * fns.c (secure_hash): Rename from crypto_hash_function and change
8495 the first arg to accept symbols.
5b66d427 8496 (Fsecure_hash): New primitive.
7f3f739f
LL
8497 (syms_of_fns): New symbols.
8498
76147d94
DD
84992011-06-20 Deniz Dogan <deniz@dogan.se>
8500
8501 * process.c (Fset_process_buffer): Clarify return value in
8502 docstring.
8503
7d7d0045
CY
85042011-06-18 Chong Yidong <cyd@stupidchicken.com>
8505
8506 * dispnew.c (add_window_display_history): Use BVAR.
8507
8508 * xdisp.c (debug_method_add): Use BVAR.
8509 (check_window_end, dump_glyph_matrix, dump_glyph)
8510 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
8511
8512 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
8513 Likewise.
8514
8515 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
8516 check till after the cache is created in init_frame_faces.
8517
ff2bc410
SM
85182011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
8519
8520 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
8521
28177add
PE
85222011-06-16 Paul Eggert <eggert@cs.ucla.edu>
8523
dd3482fe
PE
8524 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
8525 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
8526 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
8527
393d71f3 8528 Improve buffer-overflow checking (Bug#8873).
1c8e352f
PE
8529 * fileio.c (Finsert_file_contents):
8530 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
8531 Remove the old (too-loose) buffer overflow checks.
8532 They weren't needed, since make_gap checks for buffer overflow.
8533 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
8534 The old code merely checked for Emacs fixnum overflow, and relied
8535 on undefined (wraparound) behavior. The new code avoids undefined
8536 behavior, and also checks for ptrdiff_t and/or size_t overflow.
8537
2e6813b0 8538 * editfns.c (Finsert_char): Don't dump core with very negative counts.
21d890a4
PE
8539 Tune. Don't use wider integers than needed. Don't use alloca.
8540 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
2e6813b0 8541
599a9e4f
PE
8542 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
8543
99561444
PE
8544 * insdel.c, lisp.h (buffer_overflow): New function.
8545 (insert_from_buffer_1, replace_range, replace_range_2):
8546 * insdel.c (make_gap_larger):
8547 * editfns.c (Finsert_char):
8548 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
8549
28177add
PE
8550 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
8551
e69dafad
PE
85522011-06-15 Paul Eggert <eggert@cs.ucla.edu>
8553
4baa020d 8554 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
ff672d2c 8555
b1c46f02
PE
8556 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
8557 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
8558
e69dafad
PE
8559 * fileio.c: Don't assume EMACS_INT fits in off_t.
8560 (emacs_lseek): New static function.
8561 (Finsert_file_contents, Fwrite_region): Use it.
8562 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
8563
566684ea
PE
8564 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
8565
e6966cd6
PE
8566 * fns.c: Don't overflow int when computing a list length.
8567 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
8568 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
8569 truncation on 64-bit hosts. Check for QUIT every
8570 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
8571 faster and is responsive enough.
8572 (Flength): Report an error instead of overflowing an integer.
8573 (Fsafe_length): Return a float if the value is not representable
8574 as a fixnum. This shouldn't happen except in contrived situations.
6346d301 8575 (Fnthcdr, Fsort): Don't assume list length fits in int.
de41a810 8576 (Fcopy_sequence): Don't assume vector length fits in int.
00c604f2 8577
dd0b0efb
PE
8578 * alloc.c: Check that resized vectors' lengths fit in fixnums.
8579 (header_size, word_size): New constants.
8580 (allocate_vectorlike): Don't check size overflow here.
8581 (allocate_vector): Check it here instead, since this is the only
8582 caller of allocate_vectorlike that could cause overflow.
8583 Check that the new vector's length is representable as a fixnum.
8584
86fe5cfe
PE
8585 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
8586 The previous code was bogus. For example, next_almost_prime (32)
8587 returned 39, which is undesirable as it is a multiple of 3; and
8588 next_almost_prime (24) returned 25, which is a multiple of 5 so
8589 why was the code bothering to check for multiples of 7?
8590
80e88859
PE
8591 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
8592
4a2f0ad6
PE
8593 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
8594
f66c7cf8
PE
8595 Variadic C functions now count arguments with ptrdiff_t.
8596 This partly undoes my 2011-03-30 change, which replaced int with size_t.
8597 Back then I didn't know that the Emacs coding style prefers signed int.
8598 Also, in the meantime I found a few more instances where arguments
4a2f0ad6
PE
8599 were being counted with int, which may truncate counts on 64-bit
8600 machines, or EMACS_INT, which may be unnecessarily wide.
f66c7cf8
PE
8601 * lisp.h (struct Lisp_Subr.function.aMANY)
8602 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
8603 Arg counts are now ptrdiff_t, not size_t.
8604 All variadic functions and their callers changed accordingly.
8605 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
8606 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
8607 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
8608 * callint.c (Fcall_interactively): Check arg count for overflow,
8609 to avoid potential buffer overrun. Use signed char, not 'int',
8610 for 'varies' array, so that we needn't bother to check its size
8611 calculation for overflow.
8612 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
8613 * eval.c (apply_lambda):
8614 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
8615 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
8616 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
8617
a1759b76
PE
8618 * callint.c (Fcall_interactively): Don't use index var as event count.
8619
d96be9fc
PE
8620 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
8621 * mem-limits.h (SIZE): Remove; no longer used.
8622
a690a978 8623 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
5efd304b 8624
578c21e6
PE
8625 Remove unnecessary casts.
8626 * xterm.c (x_term_init):
8627 * xfns.c (x_set_border_pixel):
8628 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
8629 These aren't needed now that we assume ANSI C.
8630
96f53c6c
PE
8631 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
8632 It's more likely to cause problems (due to unsigned overflow)
8633 than to cure them.
8634
83c77d31
PE
8635 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
8636
ee2079f1
PE
8637 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
8638
6da65536
PE
8639 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
8640
7147c4a4
PE
8641 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
8642
193e32d9
PE
8643 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
8644
e5533da6
PE
8645 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
8646
9910e595
PE
8647 GLYPH_CODE_FACE returns EMACS_INT, not int.
8648 * dispextern.h (merge_faces):
8649 * xfaces.c (merge_faces):
01103c44
PE
8650 * xdisp.c (get_next_display_element, next_element_from_display_vector):
8651 Don't assume EMACS_INT fits in int.
9910e595 8652
2638320e
PE
8653 * character.h (CHAR_VALID_P): Remove unused parameter.
8654 * fontset.c, lisp.h, xdisp.c: All uses changed.
8655
045eb8d9
PE
8656 * editfns.c (Ftranslate_region_internal): Omit redundant test.
8657
c1f134b5
PE
8658 * fns.c (concat): Minor tuning based on overflow analysis.
8659 This doesn't fix any bugs. Use int to hold character, instead
8660 of constantly refetching from Emacs object. Use XFASTINT, not
8661 XINT, for value known to be a character. Don't bother comparing
8662 a single byte to 0400, as it's always less.
8663
395fcb93 8664 * floatfns.c (Fexpt):
327eeec8
PE
8665 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
8666
abbd3d23
PE
8667 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
8668 for characters.
8669
684a03ef
PE
8670 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
8671
0fed43f3
PE
8672 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
8673 Without this fix, on a 64-bit host (aset S 0 4294967386) would
8674 incorrectly succeed when S was a string, because 4294967386 was
8675 truncated before it was used.
8676
8fd02eb7
PE
8677 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
8678 Otherwise, an out-of-range integer could cause undefined behavior
8679 on a 64-bit host.
8680
f8c86b69
PE
8681 * composite.c: Use int, not EMACS_INT, for characters.
8682 (fill_gstring_body, composition_compute_stop_pos): Use int, not
8683 EMACS_INT, for values that are known to be in character range.
8684 This doesn't fix any bugs but is the usual style inside Emacs and
8685 may generate better code on 32-bit machines.
8686
34206dd2
PE
8687 Make sure a 64-bit char is never passed to ENCODE_CHAR.
8688 This is for reasons similar to the recent CHAR_STRING fix.
8689 * charset.c (Fencode_char): Check that character arg is actually
8690 a character. Pass an int to ENCODE_CHAR.
8691 * charset.h (ENCODE_CHAR): Verify that the character argument is no
8692 wider than 'int', as a compile-time check to prevent future regressions
8693 in this area.
8694
c5958d4c 8695 * character.c (char_string): Remove unnecessary casts.
13bdea59
PE
8696
8697 Make sure a 64-bit char is never passed to CHAR_STRING.
8698 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
8699 by silently ignoring the top 32 bits, allowing some values
8700 that were far too large to be valid characters.
8701 * character.h: Include <verify.h>.
8702 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
8703 arguments are no wider than unsigned, as a compile-time check
8704 to prevent future regressions in this area.
8705 * data.c (Faset):
01103c44 8706 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
13bdea59
PE
8707 (Fsubst_char_in_region):
8708 * fns.c (concat):
8709 * xdisp.c (decode_mode_spec_coding):
8710 Adjust to CHAR_STRING's new requirement.
8711 * editfns.c (Finsert_char, Fsubst_char_in_region):
8712 * fns.c (concat): Check that character args are actually
8713 characters. Without this test, these functions did the wrong
8714 thing with wildly out-of-range values on 64-bit hosts.
8715
d37ca623
PE
8716 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
8717 These casts should not be needed on 32-bit hosts, either.
8718 * keyboard.c (read_char):
8719 * lread.c (Fload): Remove casts to unsigned.
8720
ea204efb
PE
8721 * lisp.h (UNSIGNED_CMP): New macro.
8722 This fixes comparison bugs on 64-bit hosts.
8723 (ASCII_CHAR_P): Use it.
8724 * casefiddle.c (casify_object):
01103c44 8725 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
ea204efb
PE
8726 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
8727 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
8728 * dispextern.h (FACE_FROM_ID):
8729 * keyboard.c (read_char): Use UNSIGNED_CMP.
8730
41cb286c
PE
8731 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
8732 not to EMACS_INT, to avoid GCC warning.
8733
4a1b9832
PE
8734 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
8735
55daad71
PE
8736 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
8737 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
8738 isn't needed on 32-bit machines.
8f95c75c 8739
01103c44
PE
8740 * buffer.c (Fgenerate_new_buffer_name):
8741 Use EMACS_INT for count, not int.
0ceccced 8742 (advance_to_char_boundary): Return EMACS_INT, not int.
e762cafe
PE
8743
8744 * data.c (Qcompiled_function): Now static.
8745
c6f072e7
PE
8746 * window.c (window_body_lines): Now static.
8747
20ce5912
PE
8748 * image.c (gif_load): Rename local to avoid shadowing.
8749
9c4c5f81
PE
8750 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
8751 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
8752 * alloc.c (make_save_value): Integer argument is now of type
8753 ptrdiff_t, not int.
8754 (mark_object): Use ptrdiff_t, not int.
8755 * lisp.h (pD): New macro.
8756 * print.c (print_object): Use it.
8757
c0c5c8ae
PE
8758 * alloc.c: Use EMACS_INT, not int, to count objects.
8759 (total_conses, total_markers, total_symbols, total_vector_size)
8760 (total_free_conses, total_free_markers, total_free_symbols)
01103c44
PE
8761 (total_free_floats, total_floats, total_free_intervals)
8762 (total_intervals, total_strings, total_free_strings):
c0c5c8ae
PE
8763 Now EMACS_INT, not int. All uses changed.
8764 (Fgarbage_collect): Compute overall total using a double, so that
8765 integer overflow is less likely to be a problem. Check for overflow
8766 when converting back to an integer.
5a25e253
PE
8767 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
8768 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
8769 These were 'int' variables that could overflow on 64-bit hosts;
8770 they were never used, so remove them instead of repairing them.
211a0b2a 8771 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
6349ae4d
PE
8772 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
8773 Previously, this ceilinged at INT_MAX, but that doesn't work on
8774 64-bit machines.
e46bb31a 8775 (allocate_pseudovector): Don't use EMACS_INT when int would do.
c0c5c8ae 8776
c78baabf 8777 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
86f61a15 8778 (allocate_vectorlike): Check for ptrdiff_t overflow.
b6439961
PE
8779 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
8780 when a (possibly-narrower) signed value would do just as well.
8781 We prefer using signed arithmetic, to avoid comparison confusion.
c78baabf 8782
c9d624c6
PE
8783 * alloc.c: Catch some string size overflows that we were missing.
8784 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
8785 for convenience in STRING_BYTES_MAX.
8786 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
8787 The definition here is exact; the one in lisp.h was approximate.
8788 (allocate_string_data): Check for string overflow. This catches
8789 some instances we weren't catching before. Also, it catches
8790 size_t overflow on (unusual) hosts where SIZE_MAX <= min
8791 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
8792 and ptrdiff_t and EMACS_INT are both 64 bits.
c78baabf 8793
c9d624c6
PE
8794 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
8795 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
640c8776 8796 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
c9d624c6 8797
353032ce
PE
8798 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
8799
2bccce07
PE
8800 * alloc.c (Fmake_string): Check for out-of-range init.
8801
0ac30604
SM
88022011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
8803
8804 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
8805
c195f2de
JD
88062011-06-14 Jan Djärv <jan.h.d@swipnet.se>
8807
8808 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
8809 xg_get_default_scrollbar_width.
8810
8811 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
8812 (int_gtk_range_get_value): Move to the scroll bar part of the file.
8813 (style_changed_cb): Call update_theme_scrollbar_width and call
8814 x_set_scroll_bar_default_width and xg_frame_set_char_size for
8815 all frames (Bug#8505).
8816 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
8817 Call gtk_window_set_resizable if HAVE_GTK3.
8818 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
8819 and height if HAVE_GTK3 (Bug#8505).
8820 (scroll_bar_width_for_theme): New variable.
8821 (update_theme_scrollbar_width): New function.
8822 (xg_get_default_scrollbar_width): Move code to
8823 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
8824 (xg_initialize): Call update_theme_scrollbar_width.
8825
8826 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
8827
8828 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
8829
e10ac9f1
MR
88302011-06-12 Martin Rudalics <rudalics@gmx.at>
8831
8832 * frame.c (make_frame): Call other_buffer_safely instead of
8833 other_buffer.
8834
8835 * window.c (temp_output_buffer_show): Call display_buffer with
8836 second argument Vtemp_buffer_show_specifiers and reset latter
8837 immediately after the call.
8838 (Vtemp_buffer_show_specifiers): New variable.
8839 (auto_window_vscroll_p, next_screen_context_lines)
8840 (Vscroll_preserve_screen_position): Remove leading asterisks from
8841 doc-strings.
8842
2d3c217e 88432011-06-12 Paul Eggert <eggert@cs.ucla.edu>
4475bec4 8844
7b7f97e8 8845 Fix minor problems found by GCC 4.6.0 static checking.
4475bec4
PE
8846 * buffer.c (Qclone_number): Remove for now, as it's unused.
8847 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
8848 (record_buffer): Remove unused local.
8849 * frame.c (other_visible_frames, frame_buffer_list): Now static.
8850 (set_frame_buffer_list): Remove; unused.
8851 * frame.h (other_visible_frames): Remove decl.
8852 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
8853 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
8854 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
8855 if HAVE_GPM.
8856 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
8857 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
8858 Define only if HAVE_GPM.
8859 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
8860 (update_hints_inhibit): Remove; never set. All uses removed.
8861 * widgetprv.h (emacsFrameClassRec): Remove decl.
8862 * window.c (delete_deletable_window): Now returns void, since it
8863 wasn't returning anything.
8864 (compare_window_configurations): Remove unused locals.
8865 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
8866 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
4475bec4
PE
8867 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
8868 the same widths as pointers. This follows up on the 2011-05-06 patch.
8869 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
8870 * xterm.h: Likewise.
8871 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
8872
1384b89e
JB
88732011-06-12 Juanma Barranquero <lekktu@gmail.com>
8874
8875 * makefile.w32-in: Update dependencies.
8876 (LISP_H): Add lib/intprops.h.
8877
1100a63c
CY
88782011-06-11 Chong Yidong <cyd@stupidchicken.com>
8879
8880 * image.c (gif_load): Add animation frame delay to the metadata.
8881 (syms_of_image): Use DEFSYM. New symbol `delay'.
8882
6198ccd0
MR
88832011-06-11 Martin Rudalics <rudalics@gmx.at>
8884
8885 * window.c (delete_deletable_window): Re-add.
8886 (Fset_window_configuration): Rewrite to handle dead buffers and
8887 consequently deletable windows.
8888 (window_tree, Fwindow_tree): Remove. Supply functionality in
8889 window.el.
8890 (compare_window_configurations): Simplify code.
8891
b6e3633c
AS
88922011-06-11 Andreas Schwab <schwab@linux-m68k.org>
8893
1ab0dee5
AS
8894 * image.c (imagemagick_load_image): Fix type mismatch.
8895 (Fimagemagick_types): Likewise.
8896
b6e3633c
AS
8897 * window.h (replace_buffer_in_windows): Declare.
8898
9397e56f
MR
88992011-06-11 Martin Rudalics <rudalics@gmx.at>
8900
8901 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
8902 Qclone_number. Remove external declaration of Qdelete_window.
8903 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
8904 code.
640c8776
SM
8905 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
8906 Run Qbuffer_list_update_hook if allowed.
9397e56f
MR
8907 (Fother_buffer): Rewrite doc-string. Major rewrite for new
8908 buffer list implementation.
8909 (other_buffer_safely): New function.
8910 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
8911 calls to replace_buffer_in_windows and
8912 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
8913 if allowed.
8914 (record_buffer): Inhibit quitting and rewrite using quittable
8915 functions. Run Qbuffer_list_update_hook if allowed.
8916 (Frecord_buffer, Funrecord_buffer): New functions.
640c8776
SM
8917 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
8918 Move switch-to-buffer to window.el.
9397e56f
MR
8919 (bury-buffer): Move to window.el.
8920 (Vbuffer_list_update_hook): New variable.
8921
8922 * lisp.h (other_buffer_safely): Add prototype in buffer.c
8923 section.
8924
8925 * window.h (resize_frame_windows): Move up in code.
8926 (Fwindow_frame): Remove EXFUN.
8927 (replace_buffer_in_all_windows): Remove prototype.
8928 (replace_buffer_in_windows_safely): Add prototype.
8929
8930 * window.c: Declare Qdelete_window static again. Move down
8931 declaration of select_count.
8932 (Fnext_window, Fprevious_window): Rewrite doc-strings.
8933 (Fother_window): Move to window.el.
8934 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
8935 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
8936 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
8937 window.el.
8938 (replace_buffer_in_windows): Implement by calling
8939 Qreplace_buffer_in_windows.
8940 (replace_buffer_in_all_windows): Remove with some functionality
8941 moved into replace_buffer_in_windows_safely.
8942 (replace_buffer_in_windows_safely): New function.
8943 (select_window_norecord, select_frame_norecord): Move in front
8944 of run_window_configuration_change_hook. Remove now obsolete
8945 declarations.
640c8776
SM
8946 (Fset_window_buffer): Rewrite doc-string.
8947 Call Qrecord_window_buffer.
9397e56f
MR
8948 (keys_of_window): Move binding for other-window to window.el.
8949
b50691aa
CY
89502011-06-11 Chong Yidong <cyd@stupidchicken.com>
8951
8952 * dispextern.h (struct image): Replace data member, whose int_val
8953 and ptr_val fields were not used by anything, with a single
8954 lisp_val object.
8955
8956 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
8957 (gif_clear_image, gif_load, imagemagick_load_image)
8958 (gs_clear_image, gs_load): Callers changed.
8959
3f754b86
PE
89602011-06-10 Paul Eggert <eggert@cs.ucla.edu>
8961
cca69397
PE
8962 * buffer.h: Include <time.h>, for time_t.
8963 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
8964
109e28d0
PE
8965 Fix minor problems found by static checking.
8966
60737f02
PE
8967 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
8968
4b66faf3
PE
8969 Make identifiers static if they are not used in other modules.
8970 * data.c (Qcompiled_function, Qframe, Qvector):
8971 * image.c (QimageMagick, Qsvg):
8972 * minibuf.c (Qmetadata):
8973 * window.c (resize_window_check, resize_root_window): Now static.
8974 * window.h (resize_window_check, resize_root_window): Remove decls.
8975
109e28d0
PE
8976 * window.c (window_deletion_count, delete_deletable_window):
8977 Remove; unused.
46a4ce9e
PE
8978 (window_body_lines): Now static.
8979 (Fdelete_other_windows_internal): Mark vars as initialized.
8980 Make sure 'resize_failed' is initialized.
8981 (run_window_configuration_change_hook): Rename local to avoid shadowing.
8982 (resize_window_apply): Remove unused local.
8983 * window.h (delete_deletable_window): Remove decl.
8984
109e28d0 8985 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
33290528
PE
8986 (imagemagick_load_image): Fix pointer signedness problem by changing
8987 last arg from unsigned char * to char *. All uses changed.
8988 Also, fix a local for similar reasons.
8989 Remove unused locals. Remove locals to avoid shadowing.
8990 (fn_rsvg_handle_free): Remove; unused.
8991 (svg_load, svg_load_image): Fix pointer signedness problem.
f7e13da3 8992 (imagemagick_load_image): Don't use garbage pointer image_wand.
33290528 8993
3f754b86
PE
8994 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
8995
2547adb1
CY
89962011-06-10 Chong Yidong <cyd@stupidchicken.com>
8997
8998 * image.c (gif_load): Fix omitted cast error introduced by
8999 2011-06-06 change.
9000
2c8e37d4
MR
90012011-06-10 Martin Rudalics <rudalics@gmx.at>
9002
9003 * window.h (resize_proportionally, orig_total_lines)
9004 (orig_top_line): Remove from window structure.
9005 (set_window_height, set_window_width, change_window_heights)
9006 (Fdelete_window): Remove prototypes.
9007 (resize_frame_windows): Remove duplicate declaration.
9008
440a42e3
EZ
90092011-06-10 Eli Zaretskii <eliz@gnu.org>
9010
9011 * window.h (resize_frame_windows, resize_window_check)
9012 (delete_deletable_window, resize_root_window)
9013 (resize_frame_windows): Declare prototypes.
9014
9015 * window.c (resize_window_apply): Make definition be "static" to
9016 match the prototype.
9017
562dd5e9
MR
90182011-06-10 Martin Rudalics <rudalics@gmx.at>
9019
9020 * window.c: Remove declarations of Qwindow_size_fixed,
9021 window_min_size_1, window_min_size_2, window_min_size,
9022 size_window, window_fixed_size_p, enlarge_window, delete_window.
9023 Remove static from declaration of Qdelete_window, it's
9024 temporarily needed by Fbury_buffer.
9025 (replace_window): Don't assign orig_top_line and
9026 orig_total_lines.
9027 (Fdelete_window, delete_window): Remove. Window deletion is
9028 handled by window.el.
640c8776
SM
9029 (window_loop): Remove DELETE_OTHER_WINDOWS case.
9030 Replace Fdelete_window calls with calls to Qdelete_window.
562dd5e9
MR
9031 (Fdelete_other_windows): Remove. Deleting other windows is
9032 handled by window.el.
9033 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
9034 handled in window.el.
9035 (window_min_size_2, window_min_size_1, window_min_size): Remove.
9036 Window minimum sizes are handled in window.el.
9037 (shrink_windows, size_window, set_window_height)
9038 (set_window_width, change_window_heights, window_height)
9039 (window_width, CURBEG, CURSIZE, enlarge_window)
9040 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
9041 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
9042 handled in window.el.
9043 (make_dummy_parent): Rename to make_parent_window and give it a
9044 second argument horflag.
9045 (make_window): Don't set resize_proportionally any more.
9046 (Fsplit_window): Remove. Windows are split in window.el.
9047 (save_restore_action, save_restore_orig_size)
9048 (shrink_window_lowest_first, save_restore_orig_size): Remove.
9049 Resize mini windows in window.el.
9050 (grow_mini_window, shrink_mini_window): Implement by calling
9051 Qresize_root_window_vertically, resize_window_check and
9052 resize_window_apply.
640c8776
SM
9053 (saved_window, Fset_window_configuration, save_window_save):
9054 Do not handle orig_top_line, orig_total_lines, and
562dd5e9
MR
9055 resize_proportionally.
9056 (window_min_height, window_min_width): Move to window.el.
9057 (keys_of_window): Move bindings for delete-other-windows,
9058 split-window, delete-window and enlarge-window to window.el.
9059
9060 * buffer.c: Temporarily extern Qdelete_window.
9061 (Fbury_buffer): Temporarily call Qdelete_window instead of
9062 Fdelete_window (Fbury_buffer will move to window.el soon).
9063
9064 * frame.c (set_menu_bar_lines_1): Remove code handling
9065 orig_top_line and orig_total_lines.
9066
9067 * dispnew.c (adjust_frame_glyphs_initially): Don't use
9068 set_window_height but set heights directly.
9069 (change_frame_size_1): Use resize_frame_windows.
9070
9071 * xdisp.c (init_xdisp): Don't use set_window_height but set
9072 heights directly.
9073
640c8776
SM
9074 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
9075 Use resize_frame_windows instead of change_window_heights and run
562dd5e9
MR
9076 run_window_configuration_change_hook.
9077
9078 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
9079 instead of change_window_heights and run
9080 run_window_configuration_change_hook.
9081
1a13852e
MR
90822011-06-09 Martin Rudalics <rudalics@gmx.at>
9083
9084 * window.c (replace_window): Rename second argument REPLACEMENT to
9085 NEW. New third argument SETFLAG. Rewrite.
9086 (delete_window, make_dummy_parent): Call replace_window with
9087 third argument 1.
9088 (window_list_1): Move down in code.
9089 (run_window_configuration_change_hook): Move set_buffer part
9090 before select_frame_norecord part in order to unwind correctly.
9091 Rename count1 to count.
9092 (recombine_windows, delete_deletable_window, resize_root_window)
9093 (Fdelete_other_windows_internal)
9094 (Frun_window_configuration_change_hook, make_parent_window)
9095 (resize_window_check, resize_window_apply, Fresize_window_apply)
9096 (resize_frame_windows, Fsplit_window_internal)
640c8776
SM
9097 (Fdelete_window_internal, Fresize_mini_window_internal):
9098 New functions.
1a13852e
MR
9099 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
9100
f3d1777e
MR
91012011-06-08 Martin Rudalics <rudalics@gmx.at>
9102
496e208e
MR
9103 * window.h (window): Add some new members to window structure -
9104 normal_lines, normal_cols, new_total, new_normal, clone_number,
9105 splits, nest, prev_buffers, next_buffers.
9106 (WINDOW_TOTAL_SIZE): Move here from window.c.
b9e809c2 9107 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
496e208e 9108
f3d1777e
MR
9109 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
9110 Remove.
496e208e
MR
9111 (make_dummy_parent): Set new members of windows structure.
9112 (make_window): Move down in code. Handle new members of window
9113 structure.
9114 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
9115 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
9116 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
9117 (Fset_window_prev_buffers, Fwindow_next_buffers)
640c8776
SM
9118 (Fset_window_next_buffers, Fset_window_clone_number):
9119 New functions.
496e208e
MR
9120 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
9121 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
9122 Doc-string fixes.
9123 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
9124 Argument WINDOW can be now internal window too.
9125 (Fwindow_use_time): Move up in code.
9126 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
9127 Rewrite doc-string.
9128 (Fset_window_configuration, saved_window)
9129 (Fcurrent_window_configuration, save_window_save): Handle new
9130 members of window structure.
b9e809c2
MR
9131 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
9132 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
9133 (syms_of_window): New Lisp objects Qrecord_window_buffer,
9134 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
9135 Qget_mru_window, Qresize_root_window,
9136 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
9137 Qauto_buffer_name; staticpro them.
f3d1777e 9138
abde8f8c
MR
91392011-06-07 Martin Rudalics <rudalics@gmx.at>
9140
9141 * window.c (Fwindow_total_size, Fwindow_left_column)
9142 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
9143 (Fwindow_list_1): New functions.
9144 (window_box_text_cols): Replace with window_body_cols.
640c8776
SM
9145 (Fwindow_width, Fscroll_left, Fscroll_right):
9146 Use window_body_cols instead of window_box_text_cols.
9147 (delete_window, Fset_window_configuration):
9148 Call delete_all_subwindows with window as argument.
fa8a67e6
MR
9149 (delete_all_subwindows): Take a window as argument and not a
9150 structure. Rewrite.
190b47e6
MR
9151 (window_loop): Remove handling of GET_LRU_WINDOW and
9152 GET_LARGEST_WINDOW.
9153 (Fget_lru_window, Fget_largest_window): Move to window.el.
abde8f8c
MR
9154
9155 * window.h: Extern window_body_cols instead of
fa8a67e6
MR
9156 window_box_text_cols. delete_all_subwindows now takes a
9157 Lisp_Object as argument.
abde8f8c 9158
640c8776
SM
9159 * indent.c (compute_motion, Fcompute_motion):
9160 Use window_body_cols instead of window_box_text_cols.
abde8f8c 9161
fa8a67e6
MR
9162 * frame.c (delete_frame): Call delete_all_subwindows with root
9163 window as argument.
9164
a54e3482
DC
91652011-06-07 Daniel Colascione <dan.colascione@gmail.com>
9166
9167 * fns.c (Fputhash): Document return value.
9168
60002bf5
CY
91692011-06-06 Chong Yidong <cyd@stupidchicken.com>
9170
9171 * image.c (gif_load): Implement gif89a spec "no disposal" method.
9172
0c671da6 91732011-06-06 Paul Eggert <eggert@cs.ucla.edu>
ccd9a01a 9174
b862a52a 9175 Cons<->int and similar integer overflow fixes (Bug#8794).
77984278 9176
be44ca6c
PE
9177 Check for overflow when converting integer to cons and back.
9178 * charset.c (Fdefine_charset_internal, Fdecode_char):
9179 Use cons_to_unsigned to catch overflow.
9180 (Fencode_char): Use INTEGER_TO_CONS.
9181 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
9182 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
9183 * data.c (long_to_cons, cons_to_long): Remove.
9184 (cons_to_unsigned, cons_to_signed): New functions.
9185 These signal an error for invalid or out-of-range values.
9186 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
9187 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
9188 * font.c (Ffont_variation_glyphs):
9189 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
9190 * lisp.h: Include <intprops.h>.
9191 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
9192 (cons_to_signed, cons_to_unsigned): New decls.
9193 (long_to_cons, cons_to_long): Remove decls.
9194 * undo.c (record_first_change): Use INTEGER_TO_CONS.
9195 (Fprimitive_undo): Use CONS_TO_INTEGER.
9196 * xfns.c (Fx_window_property): Likewise.
9197 * xselect.c: Include <limits.h>.
9198 (x_own_selection, selection_data_to_lisp_data):
9199 Use INTEGER_TO_CONS.
9200 (x_handle_selection_request, x_handle_selection_clear)
9201 (x_get_foreign_selection, Fx_disown_selection_internal)
9202 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
9203 (lisp_data_to_selection_data): Use cons_to_unsigned.
9204 (x_fill_property_data): Use cons_to_signed.
9205 Report values out of range.
9206
d1f3d2af
PE
9207 Check for buffer and string overflow more precisely.
9208 * buffer.h (BUF_BYTES_MAX): New macro.
9209 * lisp.h (STRING_BYTES_MAX): New macro.
9210 * alloc.c (Fmake_string):
9211 * character.c (string_escape_byte8):
9212 * coding.c (coding_alloc_by_realloc):
9213 * doprnt.c (doprnt):
9214 * editfns.c (Fformat):
9215 * eval.c (verror):
9216 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
9217 since they may not be the same number.
9218 * editfns.c (Finsert_char):
9219 * fileio.c (Finsert_file_contents):
9220 Likewise for BUF_BYTES_MAX.
9221
dd52fcea
PE
9222 * image.c: Use ptrdiff_t, not int, for sizes.
9223 (slurp_file): Switch from int to ptrdiff_t.
9224 All uses changed.
9225 (slurp_file): Check that file size fits in both size_t (for
9226 malloc) and ptrdiff_t (for sanity and safety).
9227
7f9bbdbb
PE
9228 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
9229 if b->modtime has its maximal value.
9230
dfe18f82
PE
9231 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
9232
84acfcf0
PE
9233 Don't assume time_t can fit into int.
9234 * buffer.h (struct buffer.modtime): Now time_t, not int.
9235 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
9236 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
9237
ccd9a01a
PE
9238 Minor fixes for signed vs unsigned integers.
9239 * character.h (MAYBE_UNIFY_CHAR):
9240 * charset.c (maybe_unify_char):
9241 * keyboard.c (read_char, reorder_modifiers):
9242 XINT -> XFASTINT, since the integer must be nonnegative.
9243 * ftfont.c (ftfont_spec_pattern):
9244 * keymap.c (access_keymap, silly_event_symbol_error):
9245 XUINT -> XFASTINT, since the integer must be nonnegative.
9246 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
9247 since it makes no difference and we prefer signed.
9248 * keyboard.c (record_char): Use XUINT when all the neighbors do.
9249 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
9250 nonnegative.
9251
d6d100dd
SM
92522011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
9253
9254 * window.h (Fwindow_frame): Declare.
9255
2b6148e4
PE
92562011-06-06 Paul Eggert <eggert@cs.ucla.edu>
9257
9258 * alloc.c: Simplify handling of large-request failures (Bug#8800).
9259 (SPARE_MEMORY): Always define.
9260 (LARGE_REQUEST): Remove.
9261 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
9262
f230ecc9
MR
92632011-06-06 Martin Rudalics <rudalics@gmx.at>
9264
727e958e
MR
9265 * lisp.h: Move EXFUNS for Fframe_root_window,
9266 Fframe_first_window and Fset_frame_selected_window to window.h.
9267
9268 * window.h: Move EXFUNS for Fframe_root_window,
9269 Fframe_first_window and Fset_frame_selected_window here from
9270 lisp.h.
9271
9272 * frame.c (Fwindow_frame, Fframe_first_window)
9273 (Fframe_root_window, Fframe_selected_window)
9274 (Fset_frame_selected_window): Move to window.c.
9275 (Factive_minibuffer_window): Move to minibuf.c.
9276 (Fother_visible_frames_p): New function.
9277
9278 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
9279
f230ecc9
MR
9280 * window.c (decode_window, decode_any_window): Move up in code.
9281 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
9282 (inhibit_frame_unsplittable): Remove unused variable.
bf60a96b
MR
9283 (Fwindow_buffer): Move up and rewrite doc-string.
9284 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
9285 (Fwindow_prev): New functions.
727e958e
MR
9286 (Fwindow_frame): Move here from frame.c. Accept any window as
9287 argument.
9288 (Fframe_root_window, Fframe_first_window)
9289 (Fframe_selected_window): Move here from frame.c. Accept frame
9290 or arbitrary window as argument. Update doc-strings.
9291 (Fminibuffer_window): Move up in code.
9292 (Fwindow_minibuffer_p): Move up in code and simplify.
d6d100dd
SM
9293 (Fset_frame_selected_window): Move here from frame.c.
9294 Marginal rewrite.
727e958e
MR
9295 (Fselected_window, select_window, Fselect_window): Move up in
9296 code. Minor doc-string fixes.
f230ecc9 9297
4d09bcf6
PE
92982011-06-06 Paul Eggert <eggert@cs.ucla.edu>
9299
9300 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
9301 Do not assume that spare memory exists; that assumption is valid
9302 only if SYSTEM_MALLOC.
9303 (LARGE_REQUEST): New macro, so that the issue of large requests
9304 is separated from the issue of spare memory.
9305
810928a2
AS
93062011-06-05 Andreas Schwab <schwab@linux-m68k.org>
9307
172418ad
AS
9308 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
9309 format. (Bug#8806)
9310
43f862f7
AS
9311 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
9312
810928a2
AS
9313 * xfns.c (x_set_scroll_bar_default_width): Move declarations
9314 before statements.
9315
a059fe24
JD
93162011-06-05 Jan Djärv <jan.h.d@swipnet.se>
9317
9318 * gtkutil.c (xg_get_default_scrollbar_width): New function.
9319
9320 * gtkutil.h: Declare xg_get_default_scrollbar_width.
9321
9322 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
9323 min width by calling x_set_scroll_bar_default_width (Bug#8505).
9324
989bf368
JB
93252011-06-05 Juanma Barranquero <lekktu@gmail.com>
9326
9327 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
9328
4b80f674
CY
93292011-06-04 Chong Yidong <cyd@stupidchicken.com>
9330
9331 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
9332 (x_clipboard_manager_save): Add return value.
d6d100dd
SM
9333 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
9334 New error handlers.
4b80f674
CY
9335 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
9336 Obey Vx_select_enable_clipboard_manager. Catch errors in
9337 x_clipboard_manager_save (Bug#8779).
9338 (Vx_select_enable_clipboard_manager): New variable.
de65b42c 9339 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
4b80f674 9340
99a33b77 93412011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
8b3115e7
DN
9342
9343 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
9344
99a33b77 93452011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14eca62f
YM
9346
9347 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
9348 in the current matrix if keep_current_p is non-zero.
9349
8264569d
EZ
93502011-06-04 Eli Zaretskii <eliz@gnu.org>
9351
9352 * bidi.c (bidi_level_of_next_char): Fix last change.
9353
57f97249
EZ
93542011-06-03 Eli Zaretskii <eliz@gnu.org>
9355
fec2107c 9356 Support bidi reordering of text covered by display properties.
57f97249 9357
fec2107c
EZ
9358 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
9359 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
9360 (bidi_cache_search, bidi_cache_iterator_state)
9361 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
d6d100dd
SM
9362 (bidi_level_of_next_char, bidi_move_to_visually_next):
9363 Support character positions inside a run of characters covered by a
fec2107c
EZ
9364 display string.
9365 (bidi_paragraph_init, bidi_resolve_explicit_1)
9366 (bidi_level_of_next_char): Call bidi_fetch_char and
9367 bidi_fetch_char_advance instead of FETCH_CHAR and
9368 FETCH_CHAR_ADVANCE.
9369 (bidi_init_it): Initialize new members.
9370 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
9371 definitions.
9372 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
9373 instead of using explicit *_CHAR codes.
d6d100dd
SM
9374 (bidi_resolve_explicit, bidi_resolve_weak):
9375 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
fec2107c
EZ
9376 bidirectional text is supported only in multibyte buffers.
9377 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
9378 it to initialize the frame_window_p member of struct bidi_it.
9379 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
9380 (bidi_resolve_explicit, bidi_resolve_weak)
9381 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
9382 bidi_it->nchars is non-positive.
9383 (bidi_level_of_next_char): Don't try to lookup the cache for the
9384 next/previous character if nothing is cached there yet, or if we
9385 were just reseat()'ed to a new position.
c40e2fb2 9386
0e14fe90
EZ
9387 * xdisp.c (set_cursor_from_row): Set start and stop points
9388 according to the row's direction when priming the loop that looks
9389 for the glyph on which to display cursor.
9390 (single_display_spec_intangible_p): Function deleted.
9391 (display_prop_intangible_p): Reimplement to call
9392 handle_display_spec instead of single_display_spec_intangible_p.
d6d100dd
SM
9393 Accept 3 additional arguments needed by handle_display_spec.
9394 This fixes incorrect cursor motion across display property with complex
0e14fe90
EZ
9395 values: lists, `(when COND...)' forms, etc.
9396 (single_display_spec_string_p): Support property values that are
9397 lists with the argument STRING its top-level element.
9398 (display_prop_string_p): Fix the condition for processing a
9399 property that is a list to be consistent with handle_display_spec.
fec2107c 9400 (handle_display_spec): New function, refactored from the
fc6f18ce
EZ
9401 last portion of handle_display_prop.
9402 (compute_display_string_pos): Accept additional argument
9403 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
9404 value of a `display' property is a "replacing spec".
9405 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
9406 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
9407 the display property, but just return a value indicating whether
9408 the display property will replace the characters it covers.
9409 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
9410 frame_window_p members of struct bidi_it.
d6d100dd
SM
9411 (compute_display_string_pos, compute_display_string_end):
9412 New functions.
fec2107c
EZ
9413 (push_it): Accept second argument POSITION, where pop_it should
9414 jump to continue iteration.
9415 (reseat_1): Initialize bidi_it.disp_pos.
fc6f18ce 9416
fec2107c
EZ
9417 * keyboard.c (adjust_point_for_property): Adjust the call to
9418 display_prop_intangible_p to its new signature.
fc6f18ce
EZ
9419
9420 * dispextern.h (struct bidi_it): New member frame_window_p.
fec2107c
EZ
9421 (bidi_init_it): Update prototypes.
9422 (display_prop_intangible_p): Update prototype.
d6d100dd
SM
9423 (compute_display_string_pos, compute_display_string_end):
9424 Declare prototypes.
fec2107c
EZ
9425 (struct bidi_it): New members nchars and disp_pos. ch_len is now
9426 EMACS_INT.
fc6f18ce 9427
40087514 94282011-06-02 Paul Eggert <eggert@cs.ucla.edu>
0de4bb68 9429
57f53182
PE
9430 Malloc failure behavior now depends on size of allocation.
9431 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
9432 * lisp.h: Change signatures accordingly.
9433 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
9434 All callers changed. (Bug#8762)
9435
9436 * gnutls.c: Use Emacs's memory allocators.
9437 Without this change, the gnutls library would invoke malloc etc.
9438 directly, which causes problems on non-SYNC_INPUT hosts, and which
9439 runs afoul of improving memory_full behavior. (Bug#8761)
9440 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
9441 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
9442 xfree instead of the default malloc, realloc, free.
9443 (Fgnutls_boot): No need to check for memory allocation failure,
9444 since xmalloc does that for us.
9445
ac32cd99 9446 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
3870d916
PE
9447 * category.c (hash_get_category_set):
9448 * ccl.c (ccl_driver):
9449 * charset.c (Fdefine_charset_internal):
9450 * charset.h (struct charset.hash_index):
9451 * composite.c (get_composition_id, gstring_lookup_cache)
9452 (composition_gstring_put_cache):
9453 * composite.h (struct composition.hash_index):
9454 * dispextern.h (struct image.hash):
9455 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
9456 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
9457 (hashfn_equal, hashfn_user_defined, make_hash_table)
9458 (maybe_resize_hash_table, hash_lookup, hash_put)
9459 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
9460 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
9461 (Fsxhash, Fgethash, Fputhash, Fmaphash):
9462 * image.c (make_image, search_image_cache, lookup_image)
9463 (xpm_put_color_table_h):
9464 * lisp.h (struct Lisp_Hash_Table):
0de4bb68 9465 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
ac389d0c 9466 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
3870d916 9467 for hashes and hash indexes, instead of 'unsigned' and 'int'.
40087514
PE
9468 * alloc.c (allocate_vectorlike):
9469 Check for overflow in vector size calculations.
9470 * ccl.c (ccl_driver):
9471 Check for overflow when converting EMACS_INT to int.
0de4bb68
PE
9472 * fns.c, image.c: Remove unnecessary static decls that would otherwise
9473 need to be updated by these changes.
40087514
PE
9474 * fns.c (make_hash_table, maybe_resize_hash_table):
9475 Check for integer overflow with large hash tables.
0de4bb68
PE
9476 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
9477 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
9478 (SXHASH_REDUCE): New macro.
9479 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
9480 Use it instead of discarding useful hash info with large hash values.
9481 (sxhash_float): New function.
9482 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
9483 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
40087514
PE
9484 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
9485 Rewrite to use FIXNUM_BITS, as this simplifies things.
0de4bb68
PE
9486 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
9487 Adjust signatures to match updated version of code.
9488 (consing_since_gc): Now EMACS_INT, since a single hash table can
9489 use more than INT_MAX bytes.
9490
698d32e2
DN
94912011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
9492
9493 Make it possible to build with GCC-4.6+ -O2 -flto.
9494
9495 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
9496
fd6fa53f
SM
94972011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
9498
9499 * minibuf.c (get_minibuffer, read_minibuf_unwind):
9500 Call minibuffer-inactive-mode.
9501
864db017
JB
95022011-05-31 Juanma Barranquero <lekktu@gmail.com>
9503
9504 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
9505 Update dependencies.
9506
2ad0baf4
DN
95072011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
9508
9509 * data.c (init_data): Remove code for UTS, this system is not
9510 supported anymore.
9511
4fcc2638
DN
95122011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
9513
9514 Don't force ./temacs to start in terminal mode.
9515
9516 * frame.c (make_initial_frame): Initialize faces in all cases, not
9517 only when CANNOT_DUMP is defined.
9518 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
9519
c56e0fd5
DN
95202011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
9521
9522 * dispnew.c (add_window_display_history): Use const for the string
9523 pointer. Remove declaration, not needed.
9524
333d54da 95252011-05-31 Paul Eggert <eggert@cs.ucla.edu>
9cf9f756 9526
55d4c1b2 9527 Use 'inline', not 'INLINE'.
333d54da 9528 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
55d4c1b2
PE
9529 * alloc.c, fontset.c (INLINE): Remove.
9530 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
9531 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
9532 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
9533 * gmalloc.c (register_heapinfo): Use inline unconditionally.
9534 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
9535
738db178
DN
95362011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
9537
9538 Make it possible to run ./temacs.
9539
9540 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
9541 syms_of_callproc does the same thing. Remove test for
9542 "initialized", do it in the caller.
9543 * emacs.c (main): Avoid calling set_initial_environment when dumping.
9544
620c53a6
SM
95452011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
9546
9547 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
9548 (read_minibuf): Use get_minibuffer.
9549 (syms_of_minibuf): Use DEFSYM.
9550 (Qmetadata): New var.
9551 * data.c (Qbuffer): Don't make it static.
9552 (syms_of_data): Use DEFSYM.
9553
e003a292
PE
95542011-05-31 Paul Eggert <eggert@cs.ucla.edu>
9555
9556 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
9557 (CCL_CODE_MIN): New macro.
9558
ed008a6d
PE
95592011-05-30 Paul Eggert <eggert@cs.ucla.edu>
9560
3687c2ef
PE
9561 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
9562
ed008a6d
PE
9563 * eval.c (Qdebug): Now static.
9564 * lisp.h (Qdebug): Remove decl. This reverts a part of the
9565 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
9566 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
9567
d66c4c7c
CY
95682011-05-29 Chong Yidong <cyd@stupidchicken.com>
9569
9570 * image.c: Various fixes to ImageMagick code comments.
9571 (Fimagemagick_types): Doc fix.
9572
5fbc2025
PE
95732011-05-29 Paul Eggert <eggert@cs.ucla.edu>
9574
0196f88a
PE
9575 Minor fixes prompted by GCC 4.6.0 warnings.
9576
9577 * xselect.c (converted_selections, conversion_fail_tag): Now static.
9578
5fbc2025
PE
9579 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
9580 (x_clipboard_manager_save_all): Move extern decl to ...
9581 * xterm.h: ... here, so that it can be checked for consistency.
9582
1dd3c2d9
CY
95832011-05-29 Chong Yidong <cyd@stupidchicken.com>
9584
9585 * xselect.c (x_clipboard_manager_save_frame)
9586 (x_clipboard_manager_save_all): New functions.
9587 (Fx_clipboard_manager_save): Lisp function deleted.
9588
9589 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
9590 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
9591
9592 * xterm.h: Update prototype.
9593
5ba6571d
WX
95942011-05-28 William Xu <william.xwl@gmail.com>
9595
9596 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
9597 exiting (Bug#8239).
9598
3eaff834
JM
95992011-05-28 Jim Meyering <meyering@redhat.com>
9600
e1900994 9601 Avoid a sign-extension bug in crypto_hash_function.
3eaff834
JM
9602 * fns.c (to_uchar): Define.
9603 (crypto_hash_function): Use it to convert some newly-signed
9604 variables to unsigned, to avoid sign-extension bugs. For example,
9605 without this change, (md5 "truc") would evaluate to
9606 45723a2aff78ff4fff7fff1114760e62 rather than the expected
9607 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
e1900994 9608 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
3eaff834 9609
0f6990a7
PE
96102011-05-27 Paul Eggert <eggert@cs.ucla.edu>
9611
9612 Integer overflow fixes.
c8a9ca5a 9613
08686060
PE
9614 * dbusbind.c: Serial number integer overflow fixes.
9615 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
08686060
PE
9616 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
9617 to hold a serial number that is too large for a fixnum.
9618 (Fdbus_method_return_internal, Fdbus_method_error_internal):
9619 Check for serial numbers out of range. Decode any serial number
59568bf0 9620 that was so large that it became a float. (Bug#8722)
08686060 9621
2d1fc3c7
PE
9622 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
9623 (Fdbus_call_method, Fdbus_call_method_asynchronously):
9624 Use XFASTINT rather than XUINT when numbers are nonnegative.
9625 (xd_append_arg, Fdbus_method_return_internal):
9626 (Fdbus_method_error_internal): Likewise. Also, for unsigned
9627 arguments, check that Lisp number is nonnegative, rather than
59568bf0 9628 silently wrapping negative numbers around. (Bug#8722)
30217ff0 9629 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
59568bf0 9630 (Bug#8722)
2d1fc3c7 9631
c8a9ca5a
PE
9632 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
9633
519e1d69
PE
9634 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
9635
6df6ae42 9636 ccl: Add integer overflow checks.
30569699
PE
9637 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
9638 (IN_INT_RANGE): New macros.
9639 (ccl_driver): Use them to check for integer overflow when
9640 decoding a CCL program. Many of the new checks are whether XINT (x)
9641 fits in int; it doesn't always, on 64-bit hosts. The new version
9642 doesn't catch all possible integer overflows, but it's an
847044ea 9643 improvement. (Bug#8719)
30569699 9644
c11285dc
PE
9645 * alloc.c (make_event_array): Use XINT, not XUINT.
9646 There's no need for unsigned here.
9647
fdccd48e
PE
9648 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
9649 This follows up to the 2011-05-06 change that substituted uintptr_t
9650 for EMACS_INT. This case wasn't caught back then.
9651
37910ab2
PE
9652 Rework Fformat to avoid integer overflow issues.
9653 * editfns.c: Include <float.h> unconditionally, as it's everywhere
9654 now (part of C89). Include <verify.h>.
9655 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
9656 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
9657 (Fformat): Avoid the prepass trying to compute sizes; it was only
9658 approximate and thus did not catch overflow reliably. Instead, walk
9659 through the format just once, formatting and computing sizes as we go,
9660 checking for integer overflow at every step, and allocating a larger
9661 buffer as needed. Keep track separately whether the format is
9662 multibyte. Keep only the most-recently calculated precision, rather
9663 than them all. Record whether each argument has been converted to
9664 string. Use EMACS_INT, not int, for byte and char and arg counts.
9665 Support field widths and precisions larger than INT_MAX. Avoid
9666 sprintf's undefined behavior with conversion specifications such as %#d
9667 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
9668 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
9669 formatting out-of-range floating point numbers with int
9173deec 9670 formats. (Bug#8668)
37910ab2 9671
2e6578fb
PE
9672 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
9673
0ae6bdee
PE
9674 * data.c: Avoid integer truncation in expressions involving floats.
9675 * data.c: Include <intprops.h>.
9676 (arith_driver): When there's an integer overflow in an expression
9677 involving floating point, convert the integers to floating point
9678 so that the resulting value does not suffer from catastrophic
9679 integer truncation. For example, on a 64-bit host (* 4
9680 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
9681 Do not rely on undefined behavior after integer overflow.
9682
de883a70
PE
9683 merge count_size_as_multibyte, parse_str_to_multibyte
9684 * character.c, character.h (count_size_as_multibyte):
fd6fa53f 9685 Rename from parse_str_to_multibyte; all uses changed.
de883a70
PE
9686 Check for integer overflow.
9687 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
9688 since it's now a duplicate of the other. This is more of
9689 a character than a buffer op, so better that it's in character.c.
9690 * fns.c, print.c: Adjust to above changes.
9691
2ff916cb
PE
96922011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
9693
9694 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
9695
f1b54466
PE
96962011-05-27 Paul Eggert <eggert@cs.ucla.edu>
9697
fb1ac845
PE
9698 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
9699 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
9700 (x_clipboard_manager_save): Now static.
9701 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
9702
f1b54466
PE
9703 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
9704 (crypto_hash_function): Now static.
9705 Fix pointer signedness problems. Avoid unnecessary initializations.
9706
a9f737ee
CY
97072011-05-27 Chong Yidong <cyd@stupidchicken.com>
9708
9709 * termhooks.h (Vselection_alist): Make it terminal-local.
9710
9711 * terminal.c (create_terminal): Initialize it.
9712
9713 * xselect.c: Support for clipboard managers.
9714 (Vselection_alist): Move to termhooks.h as terminal-local var.
9715 (LOCAL_SELECTION): New macro.
9716 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
9717 (symbol_to_x_atom): Remove gratuitous arg.
9718 (x_handle_selection_request, lisp_data_to_selection_data)
9719 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
620c53a6
SM
9720 (x_own_selection, x_get_local_selection, x_convert_selection):
9721 New arg, specifying work frame. Use terminal-local Vselection_alist.
a9f737ee
CY
9722 (some_frame_on_display): Delete unused function.
9723 (Fx_own_selection_internal, Fx_get_selection_internal)
9724 (Fx_disown_selection_internal, Fx_selection_owner_p)
9725 (Fx_selection_exists_p): New optional frame arg.
9726 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
9727 (x_handle_selection_clear): Don't treat other terminals with the
9728 same keyboard specially. Use the terminal-local Vselection_alist.
9729 (x_clear_frame_selections): Use Frun_hook_with_args.
9730
9731 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
9732
9733 * xterm.h: Add support for those atoms.
9734
e067f0c1
CY
97352011-05-26 Chong Yidong <cyd@stupidchicken.com>
9736
9737 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
9738 (converted_selections, conversion_fail_tag): New global variables.
9739 (x_selection_request_lisp_error): Free the above.
9740 (x_get_local_selection): Remove unnecessary code.
9741 (x_reply_selection_request): Args changed; handle arbitrary array
620c53a6
SM
9742 of converted selections stored in converted_selections.
9743 Separate the XChangeProperty and SelectionNotify steps.
e067f0c1
CY
9744 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
9745 (x_convert_selection): New function.
9746 (x_handle_selection_event): Simplify.
9747 (x_get_foreign_selection): Don't ignore incoming requests while
9748 waiting for an answer; this will fail when we implement
9749 SAVE_TARGETS, and seems unnecessary anyway.
9750 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
9751 (Vx_sent_selection_functions): Doc fix.
9752
0f4aebc0
LL
97532011-05-26 Leo Liu <sdl.web@gmail.com>
9754
9755 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
9756
e61124cd
YM
97572011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
9758
9759 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
9760
9761 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
9762 for fringe update if it has periodic bitmap.
ac389d0c 9763 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
e61124cd
YM
9764 and fringe_bitmap_periodic_p.
9765
9766 * fringe.c (get_fringe_bitmap_data): New function.
9767 (draw_fringe_bitmap_1, update_window_fringes): Use it.
9768 (update_window_fringes): Record periodicity of fringe bitmap in glyph
9769 row. Mark glyph row for fringe update if periodicity changed.
9770
9771 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
9772 for fringe update unless it has periodic bitmap.
9773
f16d9837
KH
97742011-05-25 Kenichi Handa <handa@m17n.org>
9775
9776 * xdisp.c (get_next_display_element): Set correct it->face_id for
9777 a static composition.
9778
e1b90ef6
LL
97792011-05-24 Leo Liu <sdl.web@gmail.com>
9780
9781 * deps.mk (fns.o):
9782 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
9783
9784 * fns.c (crypto_hash_function, Fsha1): New function.
9785 (Fmd5): Use crypto_hash_function.
9786 (syms_of_fns): Add Ssha1.
9787
7400048f
PE
97882011-05-22 Paul Eggert <eggert@cs.ucla.edu>
9789
9790 * gnutls.c: Remove unused macros.
9791 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
9792 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
9793 Remove macros that are defined and never used.
9794 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
9795
abb71cf4
CY
97962011-05-22 Chong Yidong <cyd@stupidchicken.com>
9797
9798 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
9799 (Fx_get_selection_internal): Minor cleanup.
9800 (Fx_own_selection_internal): Rename arguments for consistency with
9801 select.el.
9802
6307db39
PE
98032011-05-22 Paul Eggert <eggert@cs.ucla.edu>
9804
9805 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
9806
f3d4e0a4
CY
98072011-05-22 Chong Yidong <cyd@stupidchicken.com>
9808
9809 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
9810
4d8ade89
YM
98112011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
9812
9813 * dispnew.c (scrolling_window): Don't exclude the case that the
9814 last enabled row in the desired matrix touches the bottom boundary.
9815
32078c8d
GM
98162011-05-21 Glenn Morris <rgm@gnu.org>
9817
9818 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
33cf345f
GM
9819 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
9820 and add some more files.
32078c8d 9821
7285dc67
EZ
98222011-05-20 Eli Zaretskii <eliz@gnu.org>
9823
9824 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
9825 report_file_error introduced by the change from 2011-05-07.
9826
89d1bd22
PE
98272011-05-20 Paul Eggert <eggert@cs.ucla.edu>
9828
9829 * systime.h (Time): Define only if emacs is defined.
9830 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
9831 where the include path doesn't have X11/X.h by default. See
9832 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
9833
cd394be1 98342011-05-20 Kenichi Handa <handa@m17n.org>
31bfc35c
KH
9835
9836 * composite.c (find_automatic_composition): Fix previous change.
9837
b9704ad9
GM
98382011-05-20 Glenn Morris <rgm@gnu.org>
9839
9840 * lisp.mk: New file, split from Makefile.in.
9841 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
9842 (shortlisp): Remove.
9843 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
9844
4a720484
GM
98452011-05-19 Glenn Morris <rgm@gnu.org>
9846
9847 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
9848 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
9849 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
9850 (lisp): Set the order to that of loadup.el.
9851 (shortlisp): Make it a copy of $lisp.
9852 (SOME_MACHINE_LISP): Remove.
9853 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
9854 Use just $shortlisp, not $SOME_MACHINE_LISP too.
9855
a28d4396
KH
98562011-05-18 Kenichi Handa <handa@m17n.org>
9857
9858 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
9859 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
9860 (find_automatic_composition): Mostly rewrite for efficiency.
9861
a2b1fa8e
JB
98622011-05-18 Juanma Barranquero <lekktu@gmail.com>
9863
9864 * makefile.w32-in: Update dependencies.
9865
8e1f5610
CS
98662011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
9867
9868 * menu.c: Include limits.h (fixes the MS-Windows build broken by
7d7d0045 9869 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
8e1f5610 9870
7025ee00 98712011-05-18 Paul Eggert <eggert@cs.ucla.edu>
cb93f9be 9872
cdfa6eab
PE
9873 Fix some integer overflow issues, such as string length overflow.
9874
06d6db33
PE
9875 * insdel.c (count_size_as_multibyte): Check for string overflow.
9876
2b4560a8
PE
9877 * character.c (lisp_string_width): Check for string overflow.
9878 Use EMACS_INT, not int, for string indexes and lengths; in
9879 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
9880 the resulting string length overflows an EMACS_INT; instead,
9881 report a string overflow if no precision given. When checking for
9882 precision exhaustion, use a check that cannot possibly have
9883 integer overflow. (Bug#8675)
9884 * character.h (lisp_string_width): Adjust to new signature.
9885
cb93f9be
PE
9886 * alloc.c (string_overflow): New function.
9887 (Fmake_string): Use it. This doesn't change behavior, but saves
9888 a few bytes and will simplify future changes.
9889 * character.c (string_escape_byte8): Likewise.
9890 * lisp.h (string_overflow): New decl.
9891
1a1f3366
PE
9892 Fixups, following up to the user-interface timestamp change.
9893 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
9894 for UI timestamps, instead of unsigned long.
9fbd6841
PE
9895 * msdos.c (mouse_get_pos): Likewise.
9896 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
1a1f3366
PE
9897 * w32gui.h (Time): Define by including "systime.h" rather than by
9898 declaring it ourselves. (Bug#8664)
9899
d4e3e4d3
PE
9900 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
9901 * image.c (clear_image_cache): Likewise.
9902
f6a24d19
PE
9903 * term.c (term_mouse_position): Don't assume time_t wraparound.
9904
08dc5ae6
PE
9905 Be more systematic about user-interface timestamps.
9906 Before, the code sometimes used 'Time', sometimes 'unsigned long',
620c53a6
SM
9907 and sometimes 'EMACS_UINT', to represent these timestamps.
9908 This change causes it to use 'Time' uniformly, as that's what X uses.
08dc5ae6
PE
9909 This makes the code easier to follow, and makes it easier to catch
9910 integer overflow bugs such as Bug#8664.
9911 * frame.c (Fmouse_position, Fmouse_pixel_position):
9912 Use Time, not unsigned long, for user-interface timestamps.
9913 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
9914 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
9915 * keyboard.h (last_event_timestamp): Likewise.
9916 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
9917 * menu.h (xmenu_show): Likewise.
9918 * term.c (term_mouse_position): Likewise.
9919 * termhooks.h (struct input_event.timestamp): Likewise.
9920 (struct terminal.mouse_position_hook): Likewise.
9921 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
9922 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
9923 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
9924 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
9925 what it was before.
9926 * menu.h, termhooks.h: Include "systime.h", for Time.
9927
8e55734a
PE
9928 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
9929 Don't assume that the difference between two unsigned long values
9930 can fit into an integer. At this point, we know button_down_time
9931 <= event->timestamp, so the difference must be nonnegative, so
9932 there's no need to cast the result if double-click-time is
9933 nonnegative, as it should be; check that it's nonnegative, just in
9934 case. This bug is triggered when events are more than 2**31 ms
86db42d2 9935 apart (about 25 days). (Bug#8664)
8e55734a 9936
841f1b75 9937 * xselect.c (last_event_timestamp): Remove duplicate decl.
6434756c 9938 (x_own_selection): Remove needless cast to unsigned long.
841f1b75 9939
3e26f69c
PE
9940 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
9941 that always fit in int. Use a sentinel instead of a counter, to
9942 avoid a temp and to allay GCC's concerns about possible int overflow.
d230cb74
PE
9943 * frame.h (struct frame): Use int for menu_bar_items_used
9944 instead of EMACS_INT, since it always fits in int.
3e26f69c 9945
5cc152c0
PE
9946 * menu.c (grow_menu_items): Check for int overflow.
9947
d89eb65e
PE
9948 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
9949
5235bd3e
PE
9950 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
9951 Before, the code was not consistent. These values cannot exceed
9952 2**31 - 1 so there's no need to make them unsigned.
9953 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
9954 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
9955 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
9956 as modifiers.
9957 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
9958
bc827e23
PE
9959 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
9960 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
9961 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
9962 presumably because the widths might not match.
9963
78eb494e
PE
9964 * window.c (size_window): Avoid needless test at loop start.
9965
04f2d78b
CB
99662011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
9967
9968 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
9969
d2fc7e3d 99702011-05-12 Drew Adams <drew.adams@oracle.com>
e531bdff
DA
9971
9972 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
9973
d2fc7e3d 99742011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7db47798
YM
9975
9976 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
9977 `width' to `bar_area_x' and `bar_area_width', respectively.
9978 (x_scroll_run): Take account of fringe background extension.
9979
04f2d78b
CB
9980 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
9981 Rename local vars `left' and `width' to `bar_area_x' and
7db47798
YM
9982 `bar_area_width', respectively.
9983 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
9984 background extension.
9985
79b70037
GM
99862011-05-10 Jim Meyering <meyering@redhat.com>
9987
9988 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
9989
2f142cc5
JB
99902011-05-10 Juanma Barranquero <lekktu@gmail.com>
9991
9992 * image.c (Finit_image_library): Return t for built-in image types,
9993 like pbm and xbm. (Bug#8640)
9994
57679c86
AS
99952011-05-09 Andreas Schwab <schwab@linux-m68k.org>
9996
9997 * w32menu.c (set_frame_menubar): Fix submenu allocation.
9998
888c9e86
EZ
99992011-05-07 Eli Zaretskii <eliz@gnu.org>
10000
b0512a1d
EZ
10001 * w32console.c (Fset_screen_color): Doc fix.
10002 (Fget_screen_color): New function.
10003 (syms_of_ntterm): Defsubr it.
10004
7285dc67
EZ
10005 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
10006 unlink the temporary file if Fcall_process didn't create it in the
10007 first place.
10008 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
10009 child process will be redirected to a file specified with `:file'.
888c9e86
EZ
10010 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
10011 cue to call_process_cleanup not to close that handle.
10012
4d3fcc8e
BK
100132011-05-07 Ben Key <bkey76@gmail.com>
10014
10015 * makefile.w32-in: The bootstrap-temacs rule now makes use of
10016 one of two shell specific rules, either bootstrap-temacs-CMD or
10017 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
10018 to the previous implementation of the bootstrap-temacs rule.
10019 The bootstrap-temacs-CMD rule is similar to the previous
10020 implementation of the bootstrap-temacs rule except that it
10021 makes use of the ESC_CFLAGS variable instead of the CFLAGS
10022 variable.
10023
10024 These changes, along with some changes to nt/configure.bat,
10025 nt/gmake.defs, and nt/nmake.defs, are required to extend my
10026 earlier fix to add support for --cflags and --ldflags options
10027 that include quotes so that it works whether make uses cmd or
10028 sh as the shell.
10029
b4289b64
MA
100302011-05-06 Michael Albinus <michael.albinus@gmx.de>
10031
10032 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
10033 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
10034 is a constant.
10035 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
10036 a string. Handle both cases.
10037 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
10038 (Fdbus_register_method): Use Qinvalid_function.
10039
af4c0e28
JB
100402011-05-06 Juanma Barranquero <lekktu@gmail.com>
10041
10042 * makefile.w32-in: Update dependencies.
10043 (LISP_H): Add inttypes.h and stdin.h.
10044 (PROCESS_H): Add unistd.h.
10045
c51453d9
EZ
100462011-05-06 Eli Zaretskii <eliz@gnu.org>
10047
10048 * lread.c: Include limits.h (fixes the MS-Windows build broken by
10049 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
10050
8ff0ac3c 100512011-05-06 Paul Eggert <eggert@cs.ucla.edu>
c032b5f8 10052
4c4b566b
PE
10053 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
10054
aab2b9b5
PE
10055 * term.c (vfatal): Remove stray call to va_end.
10056 It's not needed and the C Standard doesn't allow it here anyway.
10057
c378da0b
PE
10058 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
10059 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
10060
288b08c7
PE
10061 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
10062 bytes.
10063
e3601888
PE
10064 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
10065
db6c0e74
PE
10066 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
10067
dd5963ea
PE
10068 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
10069
88c9450f
PE
10070 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
10071
2f9442b8
PE
10072 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
10073
c032b5f8
PE
10074 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
10075 * charset.c (Fdefine_charset_internal): Don't initialize
10076 charset.code_space[15]. The value was garbage, on hosts with
2d38271b 10077 32-bit int (Bug#8600).
a108c10b
PE
10078
10079 * lread.c (read_integer): Be more consistent with string-to-number.
10080 Use string_to_number to do the actual conversion; this avoids
10081 rounding errors and fixes some other screwups. Without this fix,
10082 for example, #x1fffffffffffffff was misread as -2305843009213693952.
10083 (digit_to_number): Move earlier, for benefit of read_integer.
10084 Return -1 if the digit is out of range for the base, -2 if it is
48e400f0 10085 not a digit in any supported base. (Bug#8602)
a108c10b 10086
ad5f9eea
PE
10087 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
10088
aec1708a
PE
10089 * dispnew.c (scrolling_window): Return 1 if we scrolled,
10090 to match comment at start of function. This also removes a
10091 GCC warning about overflow in a 32+64-bit port.
10092
47be4ab5
PE
10093 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
10094
371cac43
PE
10095 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
10096 Reported by Stefan Monnier in
10097 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
04f2d78b
CB
10098 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
10099 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
371cac43 10100
d01a7826
PE
10101 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
10102 (EMACS_UINTPTR): Likewise, with uintptr_t.
10103
7fd47d5c
PE
10104 * lisp.h: Prefer 64-bit EMACS_INT if available.
10105 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
10106 on 32-bit hosts that have 64-bit int, so that they can access
10107 large files.
122b0c86
PE
10108 However, temporarily disable this change unless the temporary
10109 symbol WIDE_EMACS_INT is defined.
7fd47d5c 10110
8727937b
PE
10111 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
10112
8ac068ac
PE
10113 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
10114 This removes an assumption that EMACS_INT and long are the same
10115 width as pointers. The assumption is true for Emacs porting targets
10116 now, but we want to make other targets possible.
10117 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
10118 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
10119 In the rest of the code, change types of integers that hold casted
10120 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
10121 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
10122 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
10123 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
10124 No need to cast type when ORing.
10125 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
10126 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
10127 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
10128 assume EMACS_INT is the same width as char *.
10129 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
10130 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
10131 Remove no-longer-needed casts.
10132 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
10133 (xg_tool_bar_help_callback, xg_make_tool_item):
10134 Use EMACS_INTPTR to hold an integer
10135 that will be cast to void *; this can avoid a GCC warning
10136 if EMACS_INT is not the same width as void *.
10137 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
10138 * xdisp.c (display_echo_area_1, resize_mini_window_1):
10139 (current_message_1, set_message_1):
10140 Use a local to convert to proper width without a cast.
10141 * xmenu.c (dialog_selection_callback): Likewise.
10142
ede49d71
PE
10143 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
10144 Also, don't assume VALBITS / RAND_BITS is less than 5,
10145 and don't rely on undefined behavior when shifting a 1 left into
10146 the sign bit.
10147 * lisp.h (get_random): Change signature to match.
10148
2f30ecd0
PE
10149 * lread.c (hash_string): Use size_t, not int, for hash computation.
10150 Normally we prefer signed values; but hashing is special, because
10151 it's better to use unsigned division on hash table sizes so that
10152 the remainder is nonnegative. Also, size_t is the natural width
10153 for hashing into memory. The previous code used 'int', which doesn't
10154 retain enough info to hash well into very large tables.
10155 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
10156
2a866e7b
PE
10157 * dbusbind.c: Don't possibly lose pointer info when converting.
10158 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
10159 Use XPNTR rather than XHASH, so that the high-order bits of
10160 the pointer aren't lost when converting through void *.
10161
51639eac
PE
10162 * eval.c (Fautoload): Don't double-shift a pointer.
10163
92394119
PE
10164 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
10165
dbdb9a7c
JB
101662011-05-06 Juanma Barranquero <lekktu@gmail.com>
10167
10168 * gnutls.c (DEF_GNUTLS_FN):
10169 * image.c (DEF_IMGLIB_FN): Make function pointers static.
10170
db7a0b4f
AS
101712011-05-05 Andreas Schwab <schwab@linux-m68k.org>
10172
10173 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
10174 marker. (Bug#8610)
10175
cd394be1 101762011-05-05 Eli Zaretskii <eliz@gnu.org>
fab624aa
EZ
10177
10178 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
10179 New version that can reserve upto 2GB of heap space.
10180
f7ff1b0f 101812011-05-05 Chong Yidong <cyd@stupidchicken.com>
45cb8994
CY
10182
10183 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
10184
639c109b
TZ
101852011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
10186
10187 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
10188 `gnutls_certificate_set_x509_key_file'.
10189
d2127135
JB
101902011-05-05 Juanma Barranquero <lekktu@gmail.com>
10191
10192 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
10193 Update dependencies.
10194
e968f4f3
JB
101952011-05-04 Juanma Barranquero <lekktu@gmail.com>
10196
10197 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
10198 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
10199 Remove unused parameter `fildes'.
10200 * process.c (read_process_output, send_process): Don't pass it.
10201
84d358f0
JB
102022011-05-04 Juanma Barranquero <lekktu@gmail.com>
10203
10204 Fix previous change: the library cache is defined in w32.c.
10205 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
10206 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
10207
0898ca10
JB
102082011-05-04 Juanma Barranquero <lekktu@gmail.com>
10209
10210 Implement dynamic loading of GnuTLS on Windows.
10211
10212 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
10213 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
10214 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
10215 Declare.
10216
10217 * gnutls.c (Qgnutls_dll): Define.
10218 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
10219 (gnutls_*): Declare function pointers.
10220 (init_gnutls_functions): New function to initialize function pointers.
10221 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
10222 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
10223 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
10224 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
10225 (emacs_gnutls_write, emacs_gnutls_read)
10226 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
10227 (Fgnutls_available_p): New function.
10228 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
10229 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
10230 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
10231
10232 * image.c: Include w32.h.
10233 (Vimage_type_cache): Delete.
10234 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
10235 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
10236 (w32_delayed_load): Move to w32.c.
10237
10238 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
10239
10240 * w32.c (QCloaded_from, Vlibrary_cache): Define.
10241 (w32_delayed_load): Move from image.c. When loading a library, record
10242 its filename in the :loaded-from property of the library id.
10243 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
10244 Initialize and staticpro them.
10245 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
10246
10247 * process.c: Include lisp.h before w32.h, not after.
10248 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
10249 instead of gnutls_record_check_pending.
10250
10251 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
10252
ff4de4aa
TZ
102532011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
10254
10255 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
10256 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
10257 as passed in.
10258
abe95abb
JD
102592011-05-03 Jan Djärv <jan.h.d@swipnet.se>
10260
10261 * xterm.c (x_set_frame_alpha): Do not set property on anything
10262 else than FRAME_X_OUTER_WINDOW (Bug#8608).
10263
e16e55d4
JB
102642011-05-02 Juanma Barranquero <lekktu@gmail.com>
10265
10266 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
10267
bafcf6a5
JB
102682011-05-02 Juanma Barranquero <lekktu@gmail.com>
10269
10270 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
10271 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
10272 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
10273 (gnutls_global_initialized, Qgnutls_bootprop_priority)
10274 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
10275 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
10276 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
10277 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
10278 (Qgnutls_bootprop_callbacks_verify): Make static.
10279
e7a6747f
AS
102802011-05-01 Andreas Schwab <schwab@linux-m68k.org>
10281
19ed11ba
AS
10282 * callproc.c: Indentation fixup.
10283
e7a6747f 10284 * sysdep.c (wait_for_termination_1): Make static.
04f2d78b
CB
10285 (wait_for_termination, interruptible_wait_for_termination):
10286 Move after wait_for_termination_1.
e7a6747f 10287
1ef14cb4
LMI
102882011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
10289
10290 * sysdep.c (interruptible_wait_for_termination): New function
10291 which is like wait_for_termination, but allows keyboard
10292 interruptions.
10293
10294 * callproc.c (Fcall_process): Add (:file "file") as an option for
10295 the STDOUT buffer.
10296 (Fcall_process_region): Ditto.
10297
330d880c
EZ
102982011-04-30 Eli Zaretskii <eliz@gnu.org>
10299
8db90b73
EZ
10300 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
10301 rather than `XVECTOR (FOO)->size'.
10302
330d880c
EZ
10303 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
10304 inttypes.h, as a gnulib replacement is used if it not available in
10305 system headers.
10306
15cbd324
EZ
103072011-04-21 Eli Zaretskii <eliz@gnu.org>
10308
10309 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
10310 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
10311 of MOST_POSITIVE_FIXNUM. (Bug#8528)
10312
10313 * coding.c (coding_alloc_by_realloc): Error out if destination
10314 will grow beyond MOST_POSITIVE_FIXNUM.
10315 (decode_coding_emacs_mule): Abort if there isn't enough place in
10316 charbuf for the composition carryover bytes. Reserve an extra
10317 space for up to 2 characters produced in a loop.
10318 (decode_coding_iso_2022): Abort if there isn't enough place in
10319 charbuf for the composition carryover bytes.
10320
103212011-04-21 Eli Zaretskii <eliz@gnu.org>
afda1437 10322
ae940cca
EZ
10323 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
10324 aborting when %lld or %lll format is passed.
10325 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
10326 %llo or %llx format is passed. (Bug#8545)
10327
03ab8921
EZ
10328 * window.c (window_scroll_line_based): Use a marker instead of
10329 simple variables to record original value of point. (Bug#7952)
10330
afda1437
EZ
10331 * doprnt.c (doprnt): Fix the case where a multibyte sequence
10332 produced by %s or %c overflows available buffer space. (Bug#8545)
10333
f76dee0c
PE
103342011-04-28 Paul Eggert <eggert@cs.ucla.edu>
10335
10336 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
283cdbef 10337 (SIZE_MAX): Move defn after all includes, as they might #define it.
f76dee0c 10338
fdc5744d
JB
103392011-04-28 Juanma Barranquero <lekktu@gmail.com>
10340
10341 * w32.c (init_environment): Warn about defaulting HOME to C:\.
10342
638f053a
JB
103432011-04-28 Juanma Barranquero <lekktu@gmail.com>
10344
10345 * keyboard.c (Qdelayed_warnings_hook): Define.
10346 (command_loop_1): Run `delayed-warnings-hook'
10347 if Vdelayed_warnings_list is non-nil.
10348 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
10349 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
10350
d178f871
EZ
103512011-04-28 Eli Zaretskii <eliz@gnu.org>
10352
10353 * doprnt.c (doprnt): Don't return value smaller than the buffer
10354 size if the message was truncated. (Bug#8545).
10355
b124fd93
JB
103562011-04-28 Juanma Barranquero <lekktu@gmail.com>
10357
10358 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
10359 (Fx_window_property): #if-0 the whole functions, not just the bodies.
10360
e810457d
PE
103612011-04-27 Paul Eggert <eggert@cs.ucla.edu>
10362
10363 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
10364
ea51cceb
JB
103652011-04-27 Juanma Barranquero <lekktu@gmail.com>
10366
10367 * makefile.w32-in: Update dependencies.
10368
94dcfacf
EZ
103692011-04-27 Eli Zaretskii <eliz@gnu.org>
10370
10371 Improve `doprnt' and its usage. (Bug#8545)
10372 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
10373 `format_end'. Remove support for %l as a conversion specifier.
10374 Don't use xrealloc. Improve diagnostics when the %l size modifier
10375 is used. Update the commentary.
10376
10377 * eval.c (verror): Simplify calculation of size_t.
10378
10379 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
10380 messages.
10381
f61f41d7
PE
103822011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
10383
10384 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
10385 change.
10386
96fb4434
PE
103872011-04-27 Paul Eggert <eggert@cs.ucla.edu>
10388
10389 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
10390 This makes this file independent of the recent pseudovector change.
10391
671875da 103922011-04-26 Paul Eggert <eggert@cs.ucla.edu>
eab3844f 10393
69e9b5a3
PE
10394 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
10395
b5f869a7 10396 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
7754e151 10397 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
8d4c3955 10398 Remove unused local.
c8926152 10399 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
080e5a8d 10400
841a1577 10401 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
04f2d78b
CB
10402 GCC 4.6.0 optimizes based on type-based alias analysis.
10403 For example, if b is of type struct buffer * and v of type struct
eab3844f
PE
10404 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
10405 != &v->size, and therefore "v->size = 1; b->size = 2; return
10406 v->size;" must therefore return 1. This assumption is incorrect
10407 for Emacs, since it type-puns struct Lisp_Vector * with many other
10408 types. To fix this problem, this patch adds a new type struct
f904488f 10409 vectorlike_header that documents the constraints on layout of vectors
eab3844f
PE
10410 and pseudovectors, and helps optimizing compilers not get fooled
10411 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
10412 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
f904488f
PE
10413 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
10414 the size member.
eab3844f
PE
10415 (XSETPVECTYPE): Rewrite in terms of new macro.
10416 (XSETPVECTYPESIZE): New macro, specifying both type and size.
10417 This is a bit clearer, and further avoids the possibility of
10418 undesirable aliasing.
10419 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
f904488f 10420 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
eab3844f
PE
10421 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
10422 since Lisp_Subr is a special case (no "next" field).
04f2d78b
CB
10423 (ASIZE): Now uses header.size rather than size.
10424 All previous uses of XVECTOR (foo)->size replaced to use this macro,
f904488f
PE
10425 to avoid the hassle of writing XVECTOR (foo)->header.size.
10426 (struct vectorlike_header): New type.
eab3844f
PE
10427 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
10428 object, to help avoid aliasing.
10429 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
10430 (SUBRP): Likewise, since Lisp_Subr is a special case.
10431 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
10432 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
10433 (struct Lisp_Hash_Table): Combine first two members into a single
f904488f 10434 struct vectorlike_header member. All uses of "size" and "next" members
eab3844f
PE
10435 changed to be "header.size" and "header.next".
10436 * buffer.h (struct buffer): Likewise.
10437 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
10438 * frame.h (struct frame): Likewise.
10439 * process.h (struct Lisp_Process): Likewise.
10440 * termhooks.h (struct terminal): Likewise.
10441 * window.c (struct save_window_data, struct saved_window): Likewise.
10442 * window.h (struct window): Likewise.
10443 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
10444 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
10445 * buffer.c (init_buffer_once): Likewise.
10446 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
10447 special case.
10448 * process.c (Fformat_network_address): Use local var for size,
10449 for brevity.
10450
0df1eac5
PE
10451 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
10452
847ab9d1 10453 Make the Lisp reader and string-to-float more consistent (Bug#8525)
452f4150
PE
10454 * data.c (atof): Remove decl; no longer used or needed.
10455 (digit_to_number): Move to lread.c.
10456 (Fstring_to_number): Use new string_to_number function, to be
10457 consistent with how the Lisp reader treats infinities and NaNs.
10458 Do not assume that floating-point numbers represent EMACS_INT
10459 without losing information; this is not true on most 64-bit hosts.
10460 Avoid double-rounding errors, by insisting on integers when
10461 parsing non-base-10 numbers, as the documentation specifies.
10462 * lisp.h (string_to_number): New decl, replacing ...
10463 (isfloat_string): Remove.
bc0a5c13 10464 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
d78050d6 10465 (read1): Do not accept +. and -. as integers; this
452f4150
PE
10466 appears to have been a coding error. Similarly, do not accept
10467 strings like +-1e0 as floating point numbers. Do not report
10468 overflow for integer overflows unless the base is not 10 which
10469 means we have no simple and reliable way to continue.
10470 Break out the floating-point parsing into a new
10471 function string_to_number, so that Fstring_to_number parses
10472 floating point numbers consistently with the Lisp reader.
04f2d78b 10473 (digit_to_number): Move here from data.c. Make it static inline.
452f4150
PE
10474 (E_CHAR, EXP_INT): Remove, replacing with ...
10475 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
10476 (string_to_number): New function, replacing isfloat_string.
10477 This function checks for valid syntax and produces the resulting
10478 Lisp float number too. Rework it so that string-to-number
bc0a5c13 10479 no longer mishandles examples like "1.0e+". Use strtoumax,
d78050d6
PE
10480 so that overflow for non-base-10 numbers is reported only when
10481 there's no portable and simple way to convert to floating point.
452f4150 10482
67769ffc
PE
10483 * textprop.c (set_text_properties_1): Rewrite for clarity,
10484 and to avoid GCC warning about integer overflow.
10485
c20db43f
PE
10486 * intervals.h (struct interval): Use EMACS_INT for members
10487 where EMACS_UINT might cause problems. See
10488 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
10489 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
10490 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
10491 All uses changed.
37aa2f85
PE
10492 (offset_intervals): Tell GCC not to worry about length overflow
10493 when negating a negative length.
c20db43f 10494
2538aa2f
PE
10495 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
10496 (overrun_check_free): Likewise.
10497
f2d3008d
PE
10498 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
10499 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
10500 word size.
10501
ec8df744
PE
10502 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
10503 (gnutls_make_error): Rename local to avoid shadowing.
10504 (gnutls_emacs_global_deinit): ifdef out; not used.
10505 (Fgnutls_boot): Use const for pointer to readonly storage.
10506 Comment out unused local. Fix pointer signedness problems.
10507
640ee02d
PE
10508 * lread.c (openp): Don't stuff size_t into an 'int'.
10509 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
10510 about possible signed overflow.
10511
6048fb2a
PE
10512 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
10513 (GDK_KEY_g): Don't define if already defined.
10514 (xg_prepare_tooltip): Avoid pointer signedness problem.
10515 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
10516
fa3c87e1
PE
10517 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
10518 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
10519
2172544b
PE
10520 * xfns.c (Fx_window_property): Simplify a bit,
10521 to make a bit faster and to avoid GCC 4.6.0 warning.
10522 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
10523
9b821a21
PE
10524 * fns.c (internal_equal): Don't assume size_t fits in int.
10525
3c616cfa
PE
10526 * alloc.c (compact_small_strings): Tighten assertion a little.
10527
c2982e87
PE
10528 Replace pEd with more-general pI, and fix some printf arg casts.
10529 * lisp.h (pI): New macro, generalizing old pEd macro to other
10530 conversion specifiers. For example, use "...%"pI"d..." rather
10531 than "...%"pEd"...".
10532 (pEd): Remove. All uses replaced with similar uses of pI.
61bdb816 10533 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
c2982e87
PE
10534 * alloc.c (check_pure_size): Don't overflow by converting size to int.
10535 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
10536 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
10537 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
10538 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
10539 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
10540 64-bit hosts.
10541 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
10542 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
10543 * print.c (safe_debug_print, print_object): Likewise.
10544 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
10545 to int.
6f04d126
PE
10546 Use pI instead of if-then-else-abort. Use %p to avoid casts,
10547 avoiding the 0 flag, which is not portable.
c2982e87
PE
10548 * process.c (Fmake_network_process): Use pI to avoid cast.
10549 * region-cache.c (pp_cache): Likewise.
10550 * xdisp.c (decode_mode_spec): Likewise.
10551 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
10552 behavior on 64-bit hosts with printf arg.
6f04d126 10553 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
c2982e87
PE
10554 (x_stop_queuing_selection_requests): Likewise.
10555 (x_get_window_property): Don't truncate byte count to an 'int'
10556 when tracing.
0b432f21 10557
5e073ec7
PE
10558 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
10559 here, since it parses constructs like leading '-' and spaces,
10560 which are not wanted; and it overflows with large numbers.
10561 Instead, simply match F[0-9]+, which is what is wanted anyway.
10562
36372bf9
PE
10563 * alloc.c: Remove unportable assumptions about struct layout.
10564 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
10565 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
10566 (allocate_vectorlike, make_pure_vector): Use the new macros,
10567 plus offsetof, to remove unportable assumptions about struct layout.
10568 These assumptions hold on all porting targets that I know of, but
10569 they are not guaranteed, they're easy to remove, and removing them
10570 makes further changes easier.
10571
0b432f21
PE
10572 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
10573 This doesn't fix a bug but makes the code clearer.
bfd1c781
PE
10574 (string_overrun_cookie): Now const. Use initializers that
10575 don't formally overflow signed char, to avoid warnings.
000098c1
PE
10576 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
10577 can cause Emacs to crash when string overrun checking is enabled.
c7bda33c
PE
10578 (allocate_buffer): Don't assume sizeof (struct buffer) is a
10579 multiple of sizeof (EMACS_INT); it need not be, if
10580 alignof(EMACS_INT) < sizeof (EMACS_INT).
d0f4e1f5 10581 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
0b432f21 10582
895009e1
JB
105832011-04-26 Juanma Barranquero <lekktu@gmail.com>
10584
10585 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
10586
6a7a1b0b
TZ
105872011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
10588
10589 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
b5f869a7 10590 supposed to be handshaking. (Bug#8556)
6a7a1b0b
TZ
10591 Reported by Paul Eggert <eggert@cs.ucla.edu>.
10592
841a1577 105932011-04-26 Daniel Colascione <dan.colascione@gmail.com>
0438ce91
DC
10594
10595 * lisp.h (Qdebug): List symbol.
895009e1 10596 * eval.c (Qdebug): Restore global linkage.
0438ce91
DC
10597 * keyboard.c (debug-on-event): New variable.
10598 (handle_user_signal): Break into debugger when debug-on-event
10599 matches the current signal symbol.
10600
f2d3ba6f
DN
106012011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
10602
10603 * alloc.c (check_sblock, check_string_bytes)
10604 (check_string_free_list): Convert to standard C.
10605
42ce4c63
TZ
106062011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
10607
10608 * w32.c (emacs_gnutls_push): Fix typo.
10609
825cd63c
EZ
106102011-04-25 Eli Zaretskii <eliz@gnu.org>
10611
fb11d64d
EZ
10612 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
10613 "cast to pointer from integer of different size".
10614
825cd63c
EZ
10615 Improve doprnt and its use in verror. (Bug#8545)
10616 * doprnt.c (doprnt): Document the set of format control sequences
10617 supported by the function. Use SAFE_ALLOCA instead of always
10618 using `alloca'.
10619
10620 * eval.c (verror): Don't limit the buffer size at size_max-1, that
10621 is one byte too soon. Don't use xrealloc; instead xfree and
10622 xmalloc anew.
10623
e061a11b
TZ
106242011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
10625
10626 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
10627 callbacks stage.
10628
10629 * gnutls.c: Renamed global_initialized to
10630 gnutls_global_initialized. Added internals for the
10631 :verify-hostname-error, :verify-error, and :verify-flags
10632 parameters of `gnutls-boot' and documented those parameters in the
10633 docstring. Start callback support.
9173deec
JB
10634 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
10635 unless a fatal error occurred. Call gnutls_alert_send_appropriate
10636 on error. Return error code.
e061a11b
TZ
10637 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
10638 (emacs_gnutls_read): Likewise.
10639 (Fgnutls_boot): Return handshake error code.
10640 (emacs_gnutls_handle_error): New function.
10641 (wsaerror_to_errno): Likewise.
10642
10643 * w32.h (emacs_gnutls_pull): Add prototype.
10644 (emacs_gnutls_push): Likewise.
10645
10646 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
10647 (emacs_gnutls_push): Likewise.
10648
106492011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
10650
10651 * process.c (wait_reading_process_output): Check if GnuTLS
10652 buffered some data internally if no FDs are set for TLS
10653 connections.
10654
10655 * makefile.w32-in (OBJ2): Add gnutls.$(O).
10656 (LIBS): Link to USER_LIBS.
10657 ($(BLD)/gnutls.$(0)): New target.
10658
fa6996bc
EZ
106592011-04-24 Eli Zaretskii <eliz@gnu.org>
10660
eb35682e
EZ
10661 * xdisp.c (handle_single_display_spec): Rename the
10662 display_replaced_before_p argument into display_replaced_p, to
10663 make it consistent with the commentary. Fix typos in the
10664 commentary.
10665
e2ad650c
EZ
10666 * textprop.c (syms_of_textprop): Remove dead code.
10667 (copy_text_properties): Delete obsolete commentary about an
10668 interface that was deleted long ago. Fix typos in the description
10669 of arguments.
10670
1b2de274
EZ
10671 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
10672 to changes in oldXMenu/XMenu.h from 2011-04-16.
10673 <menu_help_message, prev_menu_help_message>: Constify.
10674 (IT_menu_make_room): menu->help_text is now `const char **';
10675 adjust.
10676
10677 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
10678 to changes in oldXMenu/XMenu.h from 2011-04-16.
10679 (struct XMenu): Declare `help_text' `const char **'.
10680
10681 * xfaces.c <Qunspecified>: Make extern again.
10682
10683 * syntax.c: Include sys/types.h before including regex.h, as
75f1671a 10684 required by POSIX.
1b2de274 10685
762b15be
EZ
10686 * doc.c (get_doc_string): Improve the format passed to `error'.
10687
10688 * doprnt.c (doprnt): Improve commentary.
10689
10690 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
10691
10692 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
10693 them with etags.
10694
f1052e5d
EZ
10695 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
10696 changes in globals.h immediately force recompilation.
762b15be
EZ
10697 (TAGS): Depend on $(CURDIR)/m/intel386.h and
10698 $(CURDIR)/s/ms-w32.h.
10699 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
f1052e5d 10700
fa6996bc
EZ
10701 * character.c (Fchar_direction): Function deleted.
10702 (syms_of_character): Don't defsubr it.
10703 <char-direction-table>: Deleted.
10704
e6c3da20
EZ
107052011-04-23 Eli Zaretskii <eliz@gnu.org>
10706
10707 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
10708 * doprnt.c: Include limits.h.
10709 (SIZE_MAX): New macro.
04f2d78b
CB
10710 (doprnt): Return a size_t value. 2nd arg is now size_t.
10711 Many local variables are now size_t instead of int or unsigned.
e6c3da20
EZ
10712 Improve overflow protection. Support `l' modifier for integer
10713 conversions. Support %l conversion. Don't assume an EMACS_INT
10714 argument for integer conversions and for %c.
10715
10716 * lisp.h (doprnt): Restore prototype.
10717
10718 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
10719 $(SRC)/character.h.
10720
10721 * Makefile.in (base_obj): Add back doprnt.o.
10722
10723 * deps.mk (doprnt.o): Add back prerequisites.
10724 (callint.o): Depend on character.h.
10725
10726 * eval.c (internal_lisp_condition_case): Include the handler
10727 representation in the error message.
10728 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
10729 when breaking from the loop.
10730
10731 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
10732
10733 * callint.c (Fcall_interactively): When displaying error message
10734 about invalid control letter, pass the character's codepoint, not
10735 a pointer to its multibyte form. Improve display of the character
10736 in octal and display also its hex code.
10737
10738 * character.c (char_string): Use %x to display the (unsigned)
10739 codepoint of an invalid character, to avoid displaying a bogus
10740 negative value.
10741
10742 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
10743 `error', not SYMBOL_NAME itself.
10744
10745 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
10746 character arguments to `error'.
10747
10748 * charset.c (check_iso_charset_parameter): Fix incorrect argument
10749 to `error' in error message about FINAL_CHAR argument. Make sure
10750 FINAL_CHAR is a character, and use %c when it is passed as
10751 argument to `error'.
10752
4ffd0d6b 107532011-04-23 Eli Zaretskii <eliz@gnu.org>
97a93095
EZ
10754
10755 * s/ms-w32.h (localtime): Redirect to sys_localtime.
10756
10757 * w32.c: Include <time.h>.
10758 (sys_localtime): New function.
10759
4ffd0d6b 107602011-04-23 Chong Yidong <cyd@stupidchicken.com>
c17819f4
CY
10761
10762 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
10763
4ffd0d6b 10764 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
aac0c6e3 10765
4ffd0d6b 107662011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
aac0c6e3 10767
4ffd0d6b
GM
10768 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
10769 zombies (Bug#8467).
aac0c6e3 10770
04c56954
EZ
107712011-04-19 Eli Zaretskii <eliz@gnu.org>
10772
10773 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
10774 gl_state.e_property when gl_state.object is Qt.
10775
10776 * insdel.c (make_gap_larger): Remove limitation of buffer size
10777 to <= INT_MAX.
10778
16a43933
CY
107792011-04-18 Chong Yidong <cyd@stupidchicken.com>
10780
10781 * xdisp.c (lookup_glyphless_char_display)
10782 (produce_glyphless_glyph): Handle cons cell entry in
10783 glyphless-char-display.
10784 (Vglyphless_char_display): Document it.
10785
10786 * term.c (produce_glyphless_glyph): Handle cons cell entry in
10787 glyphless-char-display.
10788
4581706e
CY
107892011-04-17 Chong Yidong <cyd@stupidchicken.com>
10790
10791 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
10792
10793 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
10794
10795 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
10796 definition for no-X builds.
10797
4887c6e2 107982011-04-16 Paul Eggert <eggert@cs.ucla.edu>
764430a3 10799
fd35b6f9
PE
10800 Static checks with GCC 4.6.0 and non-default toolkits.
10801
5c1ccb01
PE
10802 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
10803
006c5daa
PE
10804 * process.c (keyboard_bit_set): Define only if SIGIO.
10805 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
10806 (send_process): Repair possible setjmp clobbering.
10807
efc736d3
PE
10808 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
10809
4e2fe2e6
PE
10810 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
10811
f97334a2
PE
10812 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
10813
4e75f29d
PE
10814 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
10815 Define only if needed.
10816
90efadd1
PE
10817 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
10818 by pacifying GCC about it. Maybe it's time to retire it?
875975e9 10819 * xfaces.c (USG, __TIMEVAL__): Likewise.
90efadd1 10820
3c647824
PE
10821 * dispextern.h (struct redisplay_interface): Rename param
10822 to avoid shadowing.
e264f262 10823 * termhooks.h (struct terminal): Likewise.
761383f4 10824 * xterm.c (xembed_send_message): Likewise.
3c647824 10825
b58c5c4a
PE
10826 * insdel.c (make_gap_smaller): Define only if
10827 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
10828
cad59032
PE
10829 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
10830 it.
10831
c339dc2e
PE
10832 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
10833 so that we aren't warned about unused symbols.
10834
91a3e27b
PE
10835 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
10836
399c71d3 10837 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
7a3fb125 10838
8ffc96f5
PE
10839 * xfns.c (x_real_positions): Mark locals as initialized.
10840
eef9bc79
PE
10841 * xmenu.c (xmenu_show): Don't use uninitialized vars.
10842
098db9dd
PE
10843 * xterm.c: Fix problems found by static analysis with other toolkits.
10844 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
dda3aedd
PE
10845 (x_dispatch_event): Declare static if USE_GTK, and
10846 define if USE_GTK || USE_X_TOOLKIT.
098db9dd 10847 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
dda3aedd 10848 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
841a1577
JB
10849 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
10850 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
098db9dd 10851
eb18f6cc
PE
10852 * xmenu.c (menu_help_callback): Pointer type fixes.
10853 Use const pointers when pointing at readonly data. Avoid pointer
10854 signedness clashes.
10855 (FALSE): Remove unused macro.
10856 (update_frame_menubar): Remove unused decl.
10857
1fe72bf8
PE
10858 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
10859
60d9e1db
PE
10860 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
10861 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
10862 (single_menu_item): Rename local to avoid shadowing.
10863
39261c26
PE
10864 * keyboard.c (make_lispy_event): Remove unused local var.
10865
018c5e19
PE
10866 * frame.c, frame.h (x_get_resource_string): Bring this back, but
10867 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
10868
63d2b86e
PE
10869 * bitmaps: Change bitmaps from unsigned char back to the X11
10870 compatible char. Avoid the old compiler warnings about
10871 out-of-range initializers by using, for example, '\xab' rather
10872 than 0xab.
10873
aefd87e1
PE
10874 * xgselect.c (xgselect_initialize): Check vs interface
10875 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
10876
bf501fb9
PE
10877 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
10878
e9829fdf
PE
10879 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
10880 to read-only memory.
10881
1086c095
PE
10882 * fns.c (vector): Remove; this old hack is no longer needed.
10883
2baccd04 10884 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
401f10cb 10885 Remove unused var.
dde42981 10886 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
2baccd04 10887
72391843 10888 * xrdb.c (x_load_resources): Omit unused local.
3565b346 10889
436c16df 10890 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
8a94ea33 10891 (x_window): Rename locals to avoid shadowing.
dc5ddd85 10892 (USG): Use the kludged USG macro, to pacify gcc.
436c16df 10893
92bb796d 10894 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
bbbef9e1 10895 (x_term_init): Remove local to avoid shadowing.
92bb796d 10896
764430a3 10897 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
4887c6e2
PE
10898
10899 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
10900 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
10901
d1dfb56c
EZ
109022011-04-16 Eli Zaretskii <eliz@gnu.org>
10903
c4354cb4
EZ
10904 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
10905
d1dfb56c
EZ
10906 Fix regex.c, syntax.c and friends for buffers > 2GB.
10907 * syntax.h (struct gl_state_s): Declare character position members
10908 EMACS_INT.
10909
10910 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
10911
04f2d78b
CB
10912 * textprop.c (verify_interval_modification, interval_of):
10913 Declare arguments EMACS_INT.
d1dfb56c
EZ
10914
10915 * intervals.c (adjust_intervals_for_insertion): Declare arguments
10916 EMACS_INT.
10917
10918 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
10919
10920 * indent.c (Fvertical_motion): Local variable it_start is now
10921 EMACS_INT.
10922
10923 * regex.c (re_match, re_match_2, re_match_2_internal)
10924 (bcmp_translate, regcomp, regexec, print_double_string)
10925 (group_in_compile_stack, re_search, re_search_2, regex_compile)
10926 (re_compile_pattern, re_exec): Declare arguments and local
10927 variables `size_t' and `ssize_t' and return values `regoff_t', as
10928 appropriate.
10929 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
10930 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
10931 <compile_stack_type>: `size' and `avail' are now `size_t'.
10932
10933 * regex.h <regoff_t>: Use ssize_t, not int.
10934 (re_search, re_search_2, re_match, re_match_2): Arguments that
10935 specify buffer/string position and length are now ssize_t and
10936 size_t. Return type is regoff_t.
10937
613052cd
BK
109382011-04-16 Ben Key <bkey76@gmail.com>
10939
10940 * nsfont.m: Fixed bugs in ns_get_family and
10941 ns_descriptor_to_entity that were caused by using free to
10942 deallocate memory blocks that were allocated by xmalloc (via
10943 xstrdup). This caused Emacs to crash when compiled with
10944 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
10945 --enable-checking=xmallocoverrun). xfree is now used to
10946 deallocate these memory blocks.
10947
4170f62f 109482011-04-15 Paul Eggert <eggert@cs.ucla.edu>
3e047f51 10949
71b41406
PE
10950 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
10951
9587a89d
PE
10952 emacs_write: Accept and return EMACS_INT for sizes.
10953 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
10954 et seq.
10955 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
10956 Accept and return EMACS_INT.
10957 (emacs_gnutls_write): Return the number of bytes written on
10958 partial writes.
10959 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
273a5f82
PE
10960 (emacs_read, emacs_write): Remove check for negative size, as the
10961 Emacs source code has been audited now.
9587a89d
PE
10962 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
10963 (emacs_read, emacs_write): Use it.
273a5f82
PE
10964 * process.c (send_process): Adjust to the new signatures of
10965 emacs_write and emacs_gnutls_write. Do not attempt to store
10966 a byte offset into an 'int'; it might overflow.
9587a89d 10967 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
273a5f82 10968
3e047f51
PE
10969 * sound.c: Don't assume sizes fit in 'int'.
10970 (struct sound_device.period_size, alsa_period_size):
9c3c56a7 10971 Return EMACS_INT, not int.
3e047f51 10972 (struct sound_device.write, vox_write, alsa_write):
9c3c56a7
PE
10973 Accept EMACS_INT, not int.
10974 (wav_play, au_play): Use EMACS_INT to store sizes and to
3e047f51
PE
10975 record read return values.
10976
cc39a9db
BK
109772011-04-15 Ben Key <bkey76@gmail.com>
10978
c9d0ec6d
JB
10979 * keyboard.c (Qundefined): Don't declare static since it is used
10980 in nsfns.m.
10981 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
10982 static since they are used in nsfont.m.
cc39a9db 10983
6c60eb9f
SM
109842011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
10985
10986 * process.c (Qprocessp): Don't declare static.
10987 * lisp.h (Qprocessp): Declare again.
10988
7990b61a
JB
109892011-04-15 Juanma Barranquero <lekktu@gmail.com>
10990
10991 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
10992
5d4cb038
PE
109932011-04-14 Paul Eggert <eggert@cs.ucla.edu>
10994
8bd7b830 10995 Improve C-level modularity by making more things 'static'.
cd64ea1d 10996
e3b27b31
PE
10997 Don't publish debugger-only interfaces to other modules.
10998 * lisp.h (safe_debug_print, debug_output_compilation_hack):
10999 (verify_bytepos, count_markers): Move decls to the only modules
11000 that need them.
11001 * region-cache.h (pp_cache): Likewise.
11002 * window.h (check_all_windows): Likewise.
11003 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
11004
5d4cb038
PE
11005 * sysdep.c (croak): Now static, if
11006 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
11007 * syssignal.h (croak): Declare only if not static.
69003fd8
PE
11008
11009 * alloc.c (refill_memory_reserve): Now static if
11010 !defined REL_ALLOC || defined SYSTEM_MALLOC.
11011 * lisp.h (refill_memory_reserve): Declare only if not static.
93ea6e8f 11012
e87b6180
PE
11013 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
11014 Define only if USE_LUCID.
11015
ac64929e
PE
11016 * xrdb.c (x_customization_string, x_rm_string): Now static.
11017
6f37259d
PE
11018 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
11019 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
11020
1683e3ab
PE
11021 * xdisp.c (draw_row_with_mouse_face): Now static.
11022 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
11023
de9c2632
PE
11024 * window.h (check_all_windows): Mark externally visible.
11025
2b96acb7
PE
11026 * window.c (window_deletion_count): Now static.
11027
11028 * undo.c: Make symbols static if they're not exported.
11029 (last_undo_buffer, last_boundary_position, pending_boundary):
11030 Now static.
11031
50436f33
PE
11032 * textprop.c (interval_insert_behind_hooks): Now static.
11033 (interval_insert_in_front_hooks): Likewise.
11034
64520e5c
PE
11035 * term.c: Make symbols static if they're not exported.
11036 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
11037 (max_frame_lines, tty_set_terminal_modes):
11038 (tty_reset_terminal_modes, tty_turn_off_highlight):
11039 (get_tty_terminal): Now static.
11040 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
11041 * termhooks.h (term_mouse_moveto): Do not declare if
8bd7b830 11042 HAVE_WINDOW_SYSTEM.
64520e5c
PE
11043 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
11044 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
11045
1fa53021
PE
11046 * sysdep.c: Make symbols static if they're not exported.
11047 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
11048 Now static.
11049 (sigprocmask_set, full_mask): Remove; unused.
11050 (wait_debugging): Mark as visible.
11051 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
11052 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
11053
d4b43b22
PE
11054 * syntax.c (syntax_temp): Define only if !__GNUC__.
11055
b7c513d0
PE
11056 * sound.c (current_sound_device, current_sound): Now static.
11057
989b29ad
PE
11058 * search.c (searchbufs, searchbuf_head): Now static.
11059
13a55a78
PE
11060 * scroll.c (scroll_cost): Remove; unused.
11061 * dispextern.h (scroll_cost): Remove decl.
11062
de68a1fc
PE
11063 * region-cache.h (pp_cache): Mark as externally visible.
11064
40ccffa6
PE
11065 * process.c: Make symbols static if they're not exported.
11066 (process_tick, update_tick, create_process, chan_process):
11067 (Vprocess_alist, proc_buffered_char, datagram_access):
11068 (fd_callback_data, send_process_frame, process_sent_to): Now static.
11069 (deactivate_process): Mark defn as static, as well as decl.
11070 * lisp.h (create_process): Remove decl.
11071 * process.h (chan_process, Vprocess_alist): Remove decls.
11072
ad64fc97
PE
11073 * print.c: Make symbols static if they're not exported.
11074 (print_depth, new_backquote_output, being_printed, print_buffer):
11075 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
11076 (print_interval, print_number_index, initial_stderr_stream):
11077 Now static.
11078 * lisp.h (Fprinc): Remove decl.
11079 (debug_output_compilation_hack): Mark as externally visible.
11080
adddb265
PE
11081 * sysdep.c (croak): Move decl from here to syssignal.h.
11082 * syssignal.h (croak): Put it here, so the API can be checked when
11083 'croak' is called from dissociate_if_controlling_tty.
11084
1717ede2
PE
11085 * minibuf.c: Make symbols static if they're not exported.
11086 (minibuf_save_list, choose_minibuf_frame): Now static.
11087 * lisp.h (choose_minibuf_frame): Remove decl.
11088
fa5fb2bc
PE
11089 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
11090
1e3890d1
PE
11091 * lread.c: Make symbols static if they're not exported.
11092 (read_objects, initial_obarray, oblookup_last_bucket_number):
11093 Now static.
11094 (make_symbol): Remove; unused.
11095 * lisp.h (initial_obarray, make_symbol): Remove decls.
11096
8a1414fa
PE
11097 * keyboard.c: Make symbols static if they're not exported.
11098 (single_kboard, recent_keys_index, total_keys, recent_keys):
11099 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
11100 (this_single_command_key_start, echoing, last_auto_save):
11101 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
11102 (command_loop, echo_now, keyboard_init_hook, help_char_p):
11103 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
11104 (Vlispy_mouse_stem, double_click_count):
11105 Now static.
11106 (force_auto_save_soon): Define only if SIGDANGER.
11107 (ignore_mouse_drag_p): Now static if
11108 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
11109 (print_help): Remove; unused.
11110 (stop_character, last_timer_event): Mark as externally visible.
11111 * keyboard.h (ignore_mouse_drag_p): Declare only if
11112 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
11113 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
11114 * lisp.h (echoing): Remove decl.
11115 (force_auto_save_soon): Declare only if SIGDANGER.
11116 * xdisp.c (redisplay_window): Simplify code, to make it more
11117 obvious that ignore_mouse_drag_p is not accessed if !defined
11118 USE_GTK && !defined HAVE_NS.
11119
93ea6e8f
PE
11120 * intervals.c: Make symbols static if they're not exported.
11121 (merge_properties_sticky, merge_interval_right, delete_interval):
11122 Now static.
11123 * intervals.h (merge_interval_right, delete_interval): Remove decls.
11124
77382fcc
PE
11125 * insdel.c: Make symbols static if they're not exported.
11126 However, leave prepare_to_modify_buffer alone. It's never
11127 called from outside this function, but that appears to be a bug.
11128 (combine_after_change_list, combine_after_change_buffer):
4889fc82 11129 (adjust_after_replace, signal_before_change): Now static.
77382fcc
PE
11130 (adjust_after_replace_noundo): Remove; unused.
11131 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
4889fc82 11132 (signal_before_change): Remove decls.
77382fcc 11133
9306c32e
PE
11134 * indent.c (val_compute_motion, val_vmotion): Now static.
11135
cd44d2eb
PE
11136 * image.c: Make symbols static if they're not exported.
11137 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
11138 if USE_GTK.
11139 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
11140 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
11141
ad9a7a06
PE
11142 * fringe.c (standard_bitmaps): Now static.
11143 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
11144
81626931
PE
11145 * frame.c: Make symbols static if they're not exported.
11146 (x_report_frame_params, make_terminal_frame): Now static.
11147 (get_frame_param): Now static, unless HAVE_NS.
11148 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
11149 (x_get_resource_string): Remove; not used.
11150 * frame.h (make_terminal_frame, x_report_frame_params):
11151 (x_get_resource_string); Remove decls.
11152 (x_fullscreen_adjust): Declare only if WINDOWSNT.
11153 * lisp.h (get_frame_param): Declare only if HAVE_NS.
11154
239f9db9
PE
11155 * font.c, fontset.c: Make symbols static if they're not exported.
11156 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
11157 (FACE_SUITABLE_FOR_CHAR_P): Use it.
11158 * font.c (font_close_object): Now static.
11159 * font.h (font_close_object): Remove.
11160 * fontset.c (FONTSET_OBJLIST): Remove.
11161 (free_realized_fontset) #if-0 the body, which does nothing.
11162 (face_suitable_for_char_p): #if-0, as it's never called.
11163 * fontset.h (face_suitable_for_char_p): Remove decl.
04f2d78b
CB
11164 * xfaces.c (face_at_string_position):
11165 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
239f9db9
PE
11166 since 0 is always ASCII.
11167
dfcf3579
PE
11168 * fns.c (weak_hash_tables): Now static.
11169
5045092b
PE
11170 * fileio.c: Make symbols static if they're not exported.
11171 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
11172 (Vwrite_region_annotation_buffers): Now static.
11173
57a96f5c
PE
11174 * eval.c: Make symbols static if they're not exported.
11175 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
11176 * lisp.h (backtrace_list): Remove decl.
11177
35f08c38
PE
11178 * emacs.c: Make symbols static if they're not exported.
11179 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
11180 (fatal_error_code, fatal_error_signal_hook, standard_args):
11181 Now static.
11182 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
11183 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
11184 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
11185 * lisp.h (fatal_error_signal_hook): Remove decl.
11186 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
11187
f44bd759
PE
11188 * editfns.c: Move a (normally-unused) function to its only use.
11189 * editfns.c, lisp.h (get_operating_system_release): Remove.
11190 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
11191 worth the hassle of breaking this out.
11192
b532497d
PE
11193 * xterm.c: Make symbols static if they're not exported.
11194 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
11195 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
11196 (x_destroy_window, x_delete_display):
11197 Now static.
11198 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
11199 (x_mouse_leave): Remove; unused.
11200 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
11201 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
11202 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
11203 Remove decls.
11204 (x_mouse_leave): Declare only if WINDOWSNT.
11205 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
11206 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
11207 USE_X_TOOLKIT.
11208
1675728f
PE
11209 * ftxfont.c: Make symbols static if they're not exported.
11210 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
11211 HAVE_FREETYPE.
11212 * font.h (ftxfont_driver): Likewise.
11213
e4cebfca
PE
11214 * xfns.c: Make symbols static if they're not exported.
11215 (x_last_font_name, x_display_info_for_name):
11216 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
11217 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
11218 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
11219 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
11220 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
11221 (last_show_tip_args): Now static.
11222 (xic_defaut_fontset, xic_create_fontsetname): Define only if
11223 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
11224 (x_screen_planes): Remove; unused.
11225 * dispextern.h (x_screen_planes): Remove decl.
11226
5bf46f05
PE
11227 * dispnew.c: Make symbols static if they're not exported.
11228 * dispextern.h (redraw_garbaged_frames, scrolling):
11229 (increment_row_positions): Remove.
11230 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
11231 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
11232 Now static.
11233 (redraw_garbaged_frames): Remove; unused.
11234
435f4c28
PE
11235 * xfaces.c: Make symbols static if they're not exported.
11236 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
11237 Remove decls.
11238 * xterm.h (defined_color): Remove decls.
11239 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
11240 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
11241 (menu_face_changed_default, defined_color, free_realized_face):
11242 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
11243 (ascii_face_of_lisp_face): Remove; unused.
11244
8524aef3
PE
11245 * xdisp.c: Make symbols static if they're not exported.
11246 * dispextern.h (scratch_glyph_row, window_box_edges):
11247 (glyph_to_pixel_coords, set_cursor_from_row):
11248 (get_next_display_element, set_iterator_to_next):
11249 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
11250 (show_mouse_face): Remove decls
11251 * frame.h (message_buf_print): Likewise.
11252 * lisp.h (pop_message, set_message, check_point_in_composition):
11253 Likewise.
11254 * xterm.h (set_vertical_scroll_bar): Likewise.
11255 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
11256 (message_buf_print, scratch_glyph_row, displayed_buffer):
11257 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
11258 (get_next_display_element, show_mouse_face, window_box_edges):
11259 (frame_to_window_pixel_xy, check_point_in_composition):
11260 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
11261 (glyph_to_pixel_coords): Remove; unused.
11262
16390cd2
PE
11263 * dired.c (file_name_completion): Now static.
11264
11265 * dbusbind.c (xd_in_read_queued_messages): Now static.
11266
a25f4dfa
PE
11267 * lisp.h (circular_list_error, FOREACH): Remove; unused.
11268 * data.c (circular_list_error): Remove.
11269
14a9c8df
PE
11270 * commands.h (last_point_position, last_point_position_buffer):
11271 (last_point_position_window): Remove decls.
11272 * keyboard.c: Make these variables static.
11273
04f2d78b
CB
11274 * coding.h (coding, code_convert_region, encode_coding_gap):
11275 Remove decls.
74ab6df5
PE
11276 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
11277 (iso_code_class, detect_coding, code_convert_region): Now static.
11278 (encode_coding_gap): Remove; unused.
11279
38dfbee1
PE
11280 * chartab.c (chartab_chars, chartab_bits): Now static.
11281
a2cb4e63
PE
11282 * charset.h (charset_iso_8859_1): Remove decl.
11283 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
11284 Now static.
11285
127198fd
PE
11286 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
11287 * ccl.c (Vccl_program_table): Now static.
11288 (check_ccl_update): Remove; unused.
11289
d85b608f
PE
11290 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
11291 * category.h: ... from here.
11292 * category.c (check_category_table, set_category_set): Now static.
11293
31cd66f3
PE
11294 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
11295 * lisp.h: Remove these decls.
11296
c358e587
PE
11297 * buffer.c (buffer_count): Remove unused var.
11298
e78aecca
PE
11299 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
11300 so that it's not optimized away.
11301 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
11302 * dispextern.h (bidi_dump_cached_states): Remove, since it's
11303 exported only to the debugger.
11304
e192d7d3 11305 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
04f2d78b 11306 * atimer.h (run_all_atimers): Remove; not exported.
e192d7d3 11307
92470028
PE
11308 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
11309 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
11310 was inaccessible from Lisp.
11311 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
11312 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
11313
244ed907
PE
11314 alloc.c: Import and export fewer symbols, and remove unused items.
11315 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
11316 is defined.
11317 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
11318 it's not optimized away by whole-program optimization.
11319 (message_enable_multibyte, free_misc): Remove.
11320 (catchlist, handlerlist, mark_backtrace):
11321 Declare only if BYTE_MARK_STACK.
11322 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
11323 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
11324 (message_enable_multibyte): Remove decl.
11325 (free_misc, interval_free_list, float_block, float_block_index):
11326 (n_float_blocks, float_free_list, cons_block, cons_block_index):
11327 (cons_free_list, last_marked_index):
11328 Now static.
11329 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
11330 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
11331 (mark_backtrace): Define only if BYTE_MARK_STACK.
11332 * xdisp.c (message_enable_multibyte): Now static.
11333
61c2b50e 11334 Declare Lisp_Object Q* variables to be 'static' if not exported.
955cbe7b
PE
11335 This makes it easier for human readers (and static analyzers)
11336 to see whether these variables are used from other modules.
11337 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
11338 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
11339 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
11340 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
11341 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
11342 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
11343 * xmenu.c, xselect.c:
11344 Declare Q* vars static if they are not used in other modules.
11345 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
11346 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
11347 Remove decls of unexported vars.
11348 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
11349
95c82688
PE
11350 * lisp.h (DEFINE_FUNC): Make sname 'static'.
11351
16a97296
PE
11352 Make Emacs functions such as Fatom 'static' by default.
11353 This makes it easier for human readers (and static analyzers)
11354 to see whether these functions can be called from other modules.
11355 DEFUN now defines a static function. To make the function external
11356 so that it can be used in other C modules, use the new macro DEFUE.
8bd7b830
PE
11357 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
11358 (Finit_image_library):
16a97296
PE
11359 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
11360 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
11361 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
11362 Remove decls, since these functions are now static.
11363 (Funintern, Fget_internal_run_time): New decls, since these functions
11364 were already external.
95c82688 11365
16a97296
PE
11366 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
11367 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
11368 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
11369 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
11370 * keyboard.c, keymap.c, lread.c:
11371 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
11372 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
11373 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
11374 Mark functions with DEFUE instead of DEFUN,
11375 if they are used in other modules.
11376 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
11377 decls for now-static functions.
11378 * buffer.h (Fdelete_overlay): Remove decl.
11379 * callproc.c (Fgetenv_internal): Mark as internal.
11380 * composite.c (Fremove_list_of_text_properties): Remove decl.
11381 (Fcomposition_get_gstring): New forward static decl.
11382 * composite.h (Fcomposite_get_gstring): Remove decl.
11383 * dired.c (Ffile_attributes): New forward static decl.
11384 * doc.c (Fdocumntation_property): New forward static decl.
11385 * eval.c (Ffetch_bytecode): New forward static decl.
11386 (Funintern): Remove extern decl; now in .h file where it belongs.
11387 * fileio.c (Fmake_symbolic_link): New forward static decl.
11388 * image.c (Finit_image_library): New forward static decl.
11389 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
11390 * intervals.h (Fprevious_property_change):
11391 (Fremove_list_of_text_properties): Remove decls.
11392 * keyboard.c (Fthis_command_keys): Remove decl.
11393 (Fcommand_execute): New forward static decl.
11394 * keymap.c (Flookup_key): New forward static decl.
11395 (Fcopy_keymap): Now static.
11396 * keymap.h (Flookup_key): Remove decl.
11397 * process.c (Fget_process): New forward static decl.
11398 (Fprocess_datagram_address): Mark as internal.
11399 * syntax.c (Fsyntax_table_p): New forward static decl.
11400 (skip_chars): Remove duplicate decl.
11401 * textprop.c (Fprevious_property_change): New forward static decl.
11402 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
11403 Now internal.
11404 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
11405 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
11406
785bbd42
PE
11407 * editfns.c (Fformat): Remove unreachable code.
11408
8b913b57
AS
114092011-04-14 Andreas Schwab <schwab@linux-m68k.org>
11410
11411 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
11412 change. (Bug#8496)
11413
a6744a35
EZ
114142011-04-13 Eli Zaretskii <eliz@gnu.org>
11415
11416 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
11417 when at ZV. (Bug#8487)
11418
e7974947
AS
114192011-04-12 Andreas Schwab <schwab@linux-m68k.org>
11420
baad03f0
AS
11421 * charset.c (Fclear_charset_maps): Use xfree instead of free.
11422 (Bug#8437)
11423 * keyboard.c (parse_tool_bar_item): Likewise.
11424 * sound.c (sound_cleanup, alsa_close): Likewise.
11425 * termcap.c (tgetent): Likewise.
11426 * xfns.c (x_default_font_parameter): Likewise.
11427 * xsettings.c (read_and_apply_settings): Likewise.
11428
e7974947
AS
11429 * alloc.c (overrun_check_malloc, overrun_check_realloc)
11430 (overrun_check_free): Protoize.
11431
28272684
PE
114322011-04-12 Paul Eggert <eggert@cs.ucla.edu>
11433
11434 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
11435 since callers should never pass a negative size.
11436 Change the signature to match that of plain 'read' and 'write'; see
11437 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
11438 * lisp.h: Update prototypes of emacs_write and emacs_read.
11439
11997c76
EZ
114402011-04-11 Eli Zaretskii <eliz@gnu.org>
11441
11442 * xdisp.c (redisplay_window): Don't try to determine the character
11443 position of the scroll margin if the window start point w->startp
e896f03c 11444 is outside the buffer's accessible region. (Bug#8468)
11997c76 11445
8a2cbd72
EZ
114462011-04-10 Eli Zaretskii <eliz@gnu.org>
11447
11448 Fix write-region and its subroutines for buffers > 2GB.
11449 * fileio.c (a_write, e_write): Modify declaration of arguments and
11450 local variables to support buffers larger than 2GB.
11451 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
11452
11453 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
11454 argument, local variables, and return value.
11455
11456 * lisp.h: Update prototypes of emacs_write and emacs_read.
11457
11458 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
11459
4073e537 114602011-04-10 Paul Eggert <eggert@cs.ucla.edu>
eb3f1cc8 11461
1ebfdcb6
PE
11462 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
11463
b2ded58d
PE
11464 Fix more problems found by GCC 4.6.0's static checks.
11465
7d66342c
PE
11466 * xdisp.c (vmessage): Use a better test for character truncation.
11467
bbf47d44
PE
11468 * charset.c (load_charset_map): <, not <=, for optimization,
11469 and to avoid potential problems with integer overflow.
9248994d 11470 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
f9a68bc5 11471 * casetab.c (set_identity, shuffle): Likewise.
3ab1c7ce 11472 * editfns.c (Fformat): Likewise.
1e69125e 11473 * syntax.c (skip_chars): Likewise.
3befa583 11474
e3019616
PE
11475 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
11476 This also lets GCC 4.6.0 generate slightly better loop code.
11477
becfa255
PE
11478 * callint.c (Fcall_interactively): <, not <=, for optimization.
11479 (Fcall_interactively): Count the number of arguments produced,
11480 not the number of arguments given. This is simpler and lets GCC
11481 4.6.0 generate slightly better code.
11482
dae0cd48
PE
11483 * ftfont.c: Distingish more carefully between FcChar8 and char.
11484 The previous code passed unsigned char * to a functions like
11485 strlen and xstrcasecmp that expect char *, which does not
11486 conform to the C standard.
11487 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
11488 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
11489 char * when the C standard requires it.
11490
76032d70
PE
11491 * keyboard.c (read_char): Remove unused var.
11492
eb3f1cc8
PE
11493 * eval.c: Port to Windows vsnprintf (Bug#8435).
11494 Include <limits.h>.
11495 (SIZE_MAX): Define if the headers do not.
11496 (verror): Do not give up if vsnprintf returns a negative count.
11497 Instead, grow the buffer. This ports to Windows vsnprintf, which
11498 does not conform to C99. Problem reported by Eli Zaretskii.
11499 Also, simplify the allocation scheme, by avoiding the need for
11500 calling realloc, and removing the ALLOCATED variable.
11501
70476b54
PE
11502 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
11503
12020a9e
PE
11504 Remove invocations of doprnt, as Emacs now uses vsnprintf.
11505 But keep the doprint source code for now, as we might revamp it
11506 and use it again (Bug#8435).
ea6c7ae6
PE
11507 * lisp.h (doprnt): Remove.
11508 * Makefile.in (base_obj): Remove doprnt.o.
11509 * deps.mk (doprnt.o): Remove.
11510
5fdb398c
PE
11511 error: Print 32- and 64-bit integers portably (Bug#8435).
11512 Without this change, on typical 64-bit hosts error ("...%d...", N)
11513 was used to print both 32- and 64-bit integers N, which relied on
11514 undefined behavior.
61bdb816 11515 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
5fdb398c
PE
11516 * lisp.h (error, verror): Mark as printf-like functions.
11517 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
11518 Report overflow in size calculations when allocating printf buffer.
11519 Do not truncate output string at its first null byte.
11520 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
11521 Truncate the output at a character boundary, since vsnprintf does not
11522 do that.
11523 * charset.c (check_iso_charset_parameter): Convert internal
11524 character to string before calling 'error', since %c now has the
11525 printf meaning.
11526 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
11527 overflow when computing char to be passed to 'error'. Do not
11528 pass Lisp_Object to 'error'; pass the integer instead.
11529 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
11530 formatted with plain %d.
11531
b189fa66
PE
11532 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
11533
bff87ef0
PE
11534 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
11535
7e2cac20
PE
11536 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
11537
ce4d90b5
PE
11538 * xterm.c (x_catch_errors): Remove duplicate declaration.
11539
266c9547
PE
11540 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
11541
79c49ad2
PE
11542 * xdisp.c, lisp.h (message_nolog): Remove; unused.
11543
368f4090
JM
115442011-04-10 Jim Meyering <meyering@redhat.com>
11545
11546 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
11547 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
11548 return ssize_t not "int", and use size_t as the buffer length.
11549 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
11550 * gnutls.h: Update declarations.
11551 * process.c (read_process_output): Use ssize_t, to match.
11552 (send_process): Likewise.
11553
a32d4040
CY
115542011-04-09 Chong Yidong <cyd@stupidchicken.com>
11555
11556 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
11557
8546720e 115582011-04-09 Chong Yidong <cyd@stupidchicken.com>
aac0c6e3 11559
04f2d78b
CB
11560 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
11561 Use unsigned char, to match FcChar8 type definition.
aac0c6e3 11562
8546720e
GM
11563 * xterm.c (handle_one_xevent):
11564 * xmenu.c (create_and_show_popup_menu):
11565 * xselect.c (x_decline_selection_request)
11566 (x_reply_selection_request): Avoid type-punned deref of X events.
aac0c6e3 11567
0a2f5c1a 115682011-04-09 Eli Zaretskii <eliz@gnu.org>
a53e2e89
EZ
11569
11570 Fix some uses of `int' instead of EMACS_INT.
11571 * search.c (string_match_1, fast_string_match)
11572 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
11573 (scan_buffer, find_next_newline_no_quit)
11574 (find_before_next_newline, search_command, Freplace_match)
11575 (Fmatch_data): Make some `int' variables be EMACS_INT.
11576
11577 * xdisp.c (display_count_lines): 3rd argument and return value now
11578 EMACS_INT. All callers changed.
11579 (pint2hrstr): Last argument is now EMACS_INT.
11580
11581 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
11582 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
11583 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
11584 (decode_coding_utf_16, decode_coding_emacs_mule)
11585 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
11586 (decode_coding_ccl, decode_coding_charset)
11587 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
11588 (decode_coding_iso_2022, decode_coding_emacs_mule)
11589 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
11590 <char_offset, last_offset>: Declare EMACS_INT.
11591 (encode_coding_utf_8, encode_coding_utf_16)
11592 (encode_coding_emacs_mule, encode_invocation_designation)
11593 (encode_designation_at_bol, encode_coding_iso_2022)
11594 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
11595 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
11596 Declare EMACS_INT.
11597 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
11598 (encode_invocation_designation): Last argument P_NCHARS is now
11599 EMACS_INT.
11600 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
11601 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
11602
11603 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
11604 All users changed.
11605
11606 * ccl.c (Fccl_execute_on_string): Declare some variables
11607 EMACS_INT.
11608
8546720e 116092011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
0080dc6b
SS
11610
11611 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
11612
4e19a977
CS
116132011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
11614
11615 * process.c (Fformat_network_address): Doc fix.
11616
87302331
R
116172011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
11618
ee7683eb 11619 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
87302331 11620
cbb59342
CY
116212011-04-08 Chong Yidong <cyd@stupidchicken.com>
11622
11623 * keyboard.c (read_char): Call Lisp function help-form-show,
11624 instead of using internal_with_output_to_temp_buffer.
11625 (Qhelp_form_show): New var.
e0d38eeb 11626 (syms_of_keyboard): Use DEFSYM macro.
cbb59342
CY
11627
11628 * print.c (internal_with_output_to_temp_buffer): Function deleted.
11629
11630 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
11631
e67a13ab
CY
116322011-04-06 Chong Yidong <cyd@stupidchicken.com>
11633
04f2d78b
CB
11634 * process.c (Flist_processes): Remove to Lisp.
11635 (list_processes_1): Delete.
e67a13ab 11636
973f782d
EZ
116372011-04-06 Eli Zaretskii <eliz@gnu.org>
11638
7c106b1e
EZ
11639 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
11640
973f782d
EZ
11641 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
11642
41cf7d1a 116432011-04-06 Paul Eggert <eggert@cs.ucla.edu>
27ccc379 11644
ca23cc88
PE
11645 Fix more problems found by GCC 4.6.0's static checks.
11646
f390e2d5
PE
11647 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
11648
42eea0d0
PE
11649 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
11650
b69769da 11651 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
1e973bc7 11652
f9541e84
PE
11653 * xdisp.c (vmessage): Mark as a printf-like function.
11654
13841b55
PE
11655 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
11656
c136c10f
PE
11657 * sound.c (sound_warning): Don't crash if arg contains a printf format.
11658
5e2d4a30
PE
11659 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
11660 printf-like functions.
11661 (tiff_load): Add casts to remove these marks before passing them
11662 to system-supplied API.
11663
583f48b9
PE
11664 * eval.c (Fsignal): Remove excess argument to 'fatal'.
11665
b25d760e
PE
11666 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
11667 This avoids several warnings with gcc -Wstrict-overflow.
d5efd1d1
PE
11668 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
11669 directly, rather than having caller test rule sign. This avoids
11670 some unnecessary tests.
11671 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
11672 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
11673 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
b25d760e 11674
bc7b6697 11675 * xfont.c (xfont_text_extents): Remove var that was set but not used.
625a3eb1 11676 (xfont_open): Avoid unnecessary tests.
bc7b6697 11677
27ccc379
PE
11678 * composite.c (composition_gstring_put_cache): Use unsigned integer.
11679
dcd5c89a
PE
11680 * composite.h, composite.c (composition_gstring_put_cache):
11681 Use EMACS_INT, not int, for length.
11682
b13a45c6
PE
11683 * composite.h (COMPOSITION_DECODE_REFS): New macro,
11684 breaking out part of COMPOSITION_DECODE_RULE.
11685 (COMPOSITION_DECODE_RULE): Use it.
11686 * composite.c (get_composition_id): Remove unused local vars,
11687 by using the new macro.
11688
1e792e4d
PE
11689 * textprop.c (set_text_properties_1): Change while to do-while,
11690 since the condition is always true at first.
11691
dc6c6455 11692 * intervals.c (graft_intervals_into_buffer): Mark var as used.
aa86731f
PE
11693 (interval_deletion_adjustment): Return unsigned value.
11694 All uses changed.
dc6c6455 11695
aba7731a
PE
11696 * process.c (list_processes_1, create_pty, read_process_output):
11697 (exec_sentinel): Remove vars that were set but not used.
afd4052b 11698 (create_pty): Remove unnecessary "volatile"s.
bc57d757 11699 (Fnetwork_interface_info): Avoid possibility of int overflow.
82eaa333 11700 (read_process_output): Do adaptive read buffering even if carryover.
fe07cdfa 11701 (read_process_output): Simplify nbytes computation if buffered.
aba7731a 11702
fdfc4bf3
PE
11703 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
11704
fca8fe46 11705 * syntax.c (scan_words): Remove var that was set but not used.
12cbf13f 11706 (update_syntax_table): Use unsigned instead of int.
fca8fe46 11707
06a0259a 11708 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
3c346cc3 11709 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
e6eb4e9e 11710 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
06a0259a 11711
e7b9e80f
PE
11712 * print.c (print_error_message): Avoid int overflow.
11713
56201685
PE
11714 * font.c (font_list_entities): Redo for clarity,
11715 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
11716
78834453 11717 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
790771b1 11718 (font_score): Avoid potential overflow in diff calculation.
78834453 11719
0bc0b309 11720 * fns.c (substring_both): Remove var that is set but not used.
8cd55cb4 11721 (sxhash): Redo loop for clarity and to avoid wraparound warning.
0bc0b309 11722
e610eaca
PE
11723 * eval.c (funcall_lambda): Rename local to avoid shadowing.
11724
b895abce
PE
11725 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
11726 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
11727 can always succeed if overflow has undefined behavior.
11728
1f1d9321 11729 * search.c (boyer_moore, wordify): Remove vars set but not used.
6f076cc7 11730 (wordify): Omit three unnecessary tests.
1f1d9321 11731
c59478bc
PE
11732 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
11733 All callers changed. This avoids the need for an unused var.
11734
79b73827
PE
11735 * casefiddle.c (casify_region): Remove var that is set but not used.
11736
a4db5dfe
PE
11737 * dired.c (file_name_completion): Remove var that is set but not used.
11738
43aae36e
PE
11739 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
11740
2a47c44d 11741 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
163c5f32 11742 (Finsert_file_contents): Remove unnecessary code checking fd.
2a47c44d 11743
a37c69bf
PE
11744 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
11745 Check for integer overflow on size calculations.
11746
328ab8e7
PE
11747 * buffer.c (Fprevious_overlay_change): Remove var that is set
11748 but not used.
11749
e5a2a5cb
PE
11750 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
11751 Remove vars that are set but not used.
8d84a6eb 11752 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
6b043475 11753 (timer_check_2): Mark vars as initialized.
e5a2a5cb 11754
a60e5f68
PE
11755 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
11756
f661cb61 11757 * image.c (lookup_image): Remove var that is set but not used.
35fa624f 11758 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
f661cb61 11759
f0397f5a
PE
11760 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
11761 that are set but not used.
11762
8664db06 11763 * xfns.c (make_invisible_cursor): Don't return garbage
03733ee7 11764 if XCreateBitmapFromData fails (Bug#8410).
8664db06 11765
6abdaa4a
PE
11766 * xselect.c (x_get_local_selection, x_handle_property_notify):
11767 Remove vars that are set but not used.
11768
0ce7538d 11769 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
6abdaa4a 11770 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
0ce7538d 11771
9ae848fc
PE
11772 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
11773 Remove var that is set but not used.
0b918413
PE
11774 (scroll_bar_windows_size): Now size_t, not int.
11775 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
11776 Check for overflow.
9ae848fc 11777
a5a62657
PE
11778 * xfaces.c (realize_named_face): Remove vars that are set but not used.
11779 (map_tty_color) [!defined MSDOS]: Likewise.
11780
5c5cdd39
PE
11781 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
11782
66ebf983
PE
11783 * coding.c: Remove vars that are set but not used.
11784 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
11785 All callers changed.
11786 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
11787 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
11788 (decode_coding_charset): Remove vars that are set but not used.
11789
1be4d761
PE
11790 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
11791 that is set but not used.
11792
47553fa8
PE
11793 * print.c (print_object): Remove var that is set but not used.
11794
1f7196bf 11795 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
d1fdcab7
PE
11796 The gnulib version avoids calling malloc in the usual case,
11797 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
11798 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
11799 * filelock.c (current_lock_owner): Likewise.
11800 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
11801 * sysdep.c: Include allocator.h, careadlinkat.h.
11802 (emacs_no_realloc_allocator): New static constant.
11803 (emacs_readlink): New function.
fdb61804
PE
11804 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
11805 ../lib/careadlinkat.h.
d1fdcab7 11806
f84c17c7
SM
118072011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
11808
11809 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
11810 first non-nil return value).
11811
ef3862ad
JD
118122011-04-03 Jan Djärv <jan.h.d@swipnet.se>
11813
11814 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
11815 if not defined (Bug#8403).
11816
376a7006
JB
118172011-04-02 Juanma Barranquero <lekktu@gmail.com>
11818
11819 * xdisp.c (display_count_lines): Remove parameter `start',
11820 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
11821 (get_char_face_and_encoding): Remove parameter `multibyte_p',
11822 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
11823 (fill_stretch_glyph_string): Remove parameters `row' and `area',
11824 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
11825 and thereabouts. All callers changed.
11826 (get_per_char_metric): Remove parameter `f', unused since
11827 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
11828
6ca3801d
JM
118292011-04-02 Jim Meyering <meyering@redhat.com>
11830
11831 do not dereference NULL upon failed strdup
11832 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
11833 (ns_get_family): Likewise.
11834
d8e2b5ba
JB
118352011-04-02 Juanma Barranquero <lekktu@gmail.com>
11836
11837 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
11838
8c74fcbd
JD
118392011-04-02 Jan Djärv <jan.h.d@swipnet.se>
11840
11841 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
11842 later (Bug#8403).
11843
7200d79c
SM
118442011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
11845
03408648 11846 Add lexical binding.
7200d79c 11847
03408648
SM
11848 * window.c (Ftemp_output_buffer_show): New fun.
11849 (Fsave_window_excursion):
11850 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
11851
11852 * lread.c (lisp_file_lexically_bound_p): New function.
11853 (Fload): Bind Qlexical_binding.
11854 (readevalloop): Remove `evalfun' arg.
11855 Bind Qinternal_interpreter_environment.
11856 (Feval_buffer): Bind Qlexical_binding.
11857 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
11858 Mark as dynamic.
11859 (syms_of_lread): Declare `lexical-binding'.
11860
11861 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
11862
11863 * keyboard.c (eval_dyn): New fun.
11864 (menu_item_eval_property): Use it.
ca105506
SM
11865
11866 * image.c (parse_image_spec): Use Ffunctionp.
ca105506 11867
03408648
SM
11868 * fns.c (concat, mapcar1): Accept byte-code-functions.
11869
11870 * eval.c (Fsetq): Handle lexical vars.
11871 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
11872 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
11873 (FletX, Flet): Obey lexical binding.
11874 (Fcommandp): Handle closures.
11875 (Feval): New `lexical' arg.
11876 (eval_sub): New function extracted from Feval. Use it almost
11877 everywhere where Feval was used. Look up vars in lexical env.
11878 Handle closures.
11879 (Ffunctionp): Move from subr.el.
11880 (Ffuncall): Handle closures.
11881 (apply_lambda): Remove `eval_flags'.
11882 (funcall_lambda): Handle closures and new byte-code-functions.
11883 (Fspecial_variable_p): New function.
11884 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
11885 but without exporting it to Lisp.
23aba0ea 11886
23aba0ea 11887 * doc.c (Fdocumentation, store_function_docstring):
03408648 11888 * data.c (Finteractive_form): Handle closures.
23aba0ea 11889
03408648
SM
11890 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
11891 interactive spec.
ba83908c 11892
04f2d78b
CB
11893 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
11894 New byte-codes.
03408648
SM
11895 (exec_byte_code): New function extracted from Fbyte_code to handle new
11896 calling convention for byte-code-functions. Add new byte-codes.
ba83908c 11897
03408648 11898 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
e2abe5a1 11899
03408648 11900 * alloc.c (Fmake_symbol): Init new `declared_special' field.
e2abe5a1 11901
e2abce01
JB
119022011-03-31 Juanma Barranquero <lekktu@gmail.com>
11903
11904 * xdisp.c (redisplay_internal): Fix prototype.
11905
63696a73 119062011-03-31 Eli Zaretskii <eliz@gnu.org>
09725d26 11907
63696a73 11908 * xdisp.c (SCROLL_LIMIT): New macro.
04f2d78b
CB
11909 (try_scrolling): Use it when setting scroll_limit.
11910 Limit scrolling to 100 screen lines.
63696a73
EZ
11911 (redisplay_window): Even when falling back on "recentering",
11912 position point in the window according to scroll-conservatively,
11913 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
11914
11915 (try_scrolling): When point is above the window, allow searching
11916 as far as scroll_max, or one screenful, to compute vertical
11917 distance from PT to the scroll margin position. This prevents
11918 try_scrolling from unnecessarily failing when
11919 scroll-conservatively is set to a value slightly larger than the
11920 window height. Clean up the case of PT below the margin at bottom
11921 of window: scroll_max can no longer be INT_MAX. When aggressive
11922 scrolling is in use, don't let point enter the opposite scroll
11923 margin as result of the scroll.
11924 (syms_of_xdisp) <scroll-conservatively>: Document the
09725d26
EZ
11925 threshold of 100 lines for never-recentering scrolling.
11926
e4cc2dfc
JB
119272011-03-31 Juanma Barranquero <lekktu@gmail.com>
11928
11929 * dispextern.h (move_it_by_lines):
11930 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
11931 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
11932 (message_log_check_duplicate): Remove parameters `prev_bol' and
11933 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
11934 (redisplay_internal): Remove parameter `preserve_echo_area',
11935 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
11936
11937 * indent.c (Fvertical_motion):
11938 * window.c (window_scroll_pixel_based, Frecenter):
11939 Don't pass `need_y_p' to `move_it_by_lines'.
11940
1c470562
SM
119412011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
11942
44f230aa
SM
11943 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
11944 steal a few bits to be more compact.
11945 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
11946 Remove unneeded casts.
11947
1c470562
SM
11948 * bytecode.c (Fbyte_code): CAR and CDR can GC.
11949
888adce9
ZK
119502011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
11951
11952 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
11953 binding" message (bug#7967).
11954
f838ed7b
PE
119552011-03-30 Paul Eggert <eggert@cs.ucla.edu>
11956
77861b95
PE
11957 Fix more problems found by GCC 4.6.0's static checks.
11958
de6dbc14
PE
11959 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
11960 Remove unused local var.
11961
f838ed7b
PE
11962 * editfns.c (Fmessage_box): Remove unused local var.
11963
792c7b2b
PE
11964 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
11965 (note_mode_line_or_margin_highlight, note_mouse_highlight):
11966 Omit unused local vars.
c499e557 11967 * window.c (shrink_windows): Omit unused local var.
b01a1c29 11968 * menu.c (digest_single_submenu): Omit unused local var.
0bc32927
PE
11969 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
11970 Omit unused local var.
11971
ba0165e1
PE
11972 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
11973 Don't assume string length fits in int.
32ad8845 11974 (keyremap_step, read_key_sequence): Use size_t for sizes.
48011560 11975 (read_key_sequence): Don't check last_real_key_start redundantly.
ba0165e1 11976
3c59b4c9
PE
11977 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
11978 instead of alloca (Bug#8344).
11979
a3eed478 11980 * eval.c (Fbacktrace): Don't assume nargs fits in int.
5d5d959d 11981 (Fbacktrace_frame): Don't assume nframes fits in int.
a3eed478 11982
eb4d412d
PE
11983 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
11984
1658b401
PE
11985 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
11986 concerns.
11987
11988 * term.c (produce_glyphless_glyph): Remove unnecessary test.
11989
11990 * cm.c (calccost): Turn while-do into do-while, for clarity.
44f730c8 11991
9a2c6e05
PE
11992 * keyboard.c (syms_of_keyboard): Use the same style as later
11993 in this function when indexing through an array. This also
11994 works around GCC bug 48267.
11995
03d0a109
PE
11996 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
11997
44f730c8
PE
11998 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
11999
fe75f926
PE
12000 * chartab.c (sub_char_table_ref_and_range): Redo for slight
12001 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
12002
ffa8c828
PE
12003 * keyboard.c, keyboard.h (num_input_events): Now size_t.
12004 This avoids undefined behavior on integer overflow, and is a bit
12005 more convenient anyway since it is compared to a size_t variable.
12006
c5101a77
PE
12007 Variadic C functions now count arguments with size_t, not int.
12008 This avoids an unnecessary limitation on 64-bit machines, which
12009 caused (substring ...) to crash on large vectors (Bug#8344).
12010 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
12011 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
77861b95 12012 All variadic functions and their callers changed accordingly.
c5101a77
PE
12013 (struct gcpro.nvars): Now size_t, not int. All uses changed.
12014 * data.c (arith_driver, float_arith_driver): Likewise.
12015 * editfns.c (general_insert_function): Likewise.
12016 * eval.c (struct backtrace.nargs, interactive_p)
12017 (internal_condition_case_n, run_hook_with_args, apply_lambda)
12018 (funcall_lambda, mark_backtrace): Likewise.
12019 * fns.c (concat): Likewise.
12020 * frame.c (x_set_frame_parameters): Likewise.
12021 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
12022 0 if not found, not -1. All callers changed.
12023
dd3f25f7
PE
12024 * alloc.c (garbage_collect): Don't assume stack size fits in int.
12025 (stack_copy_size): Now size_t, not int.
12026 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
12027
461c2ab9
JB
120282011-03-28 Juanma Barranquero <lekktu@gmail.com>
12029
12030 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
12031 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
12032 All callers changed.
12033
12034 * lisp.h (multibyte_char_to_unibyte):
12035 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
12036 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
12037 * character.h (CHAR_TO_BYTE8):
12038 * cmds.c (internal_self_insert):
12039 * editfns.c (general_insert_function):
12040 * keymap.c (push_key_description):
12041 * search.c (Freplace_match):
12042 * xdisp.c (message_dolog, set_message_1): All callers changed.
12043
f6d62986
SM
120442011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
12045
12046 * keyboard.c (safe_run_hook_funcall): New function.
12047 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
12048 don't set the hook to nil, but remove the offending function instead.
12049 (Qcommand_hook_internal): Remove, unused.
12050 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
12051 Vcommand_hook_internal.
12052
12053 * eval.c (enum run_hooks_condition): Remove.
12054 (funcall_nil, funcall_not): New functions.
12055 (run_hook_with_args): Call each function through a `funcall' argument.
12056 Remove `cond' argument, now redundant.
12057 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
12058 (Frun_hook_with_args_until_failure): Adjust accordingly.
12059 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
12060
1db5b1ad
JB
120612011-03-28 Juanma Barranquero <lekktu@gmail.com>
12062
12063 * dispextern.h (string_buffer_position): Remove declaration.
12064
12065 * print.c (strout): Remove parameter `multibyte', unused since
12066 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
12067
12068 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
12069 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
12070 All callers changed.
12071
12072 * w32.c (_wsa_errlist): Use braces for struct initializers.
12073
12074 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
12075 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
12076 All callers changed.
12077 (string_buffer_position): Likewise. Also, make static (it's never
12078 used outside xdisp.c).
12079 (cursor_row_p): Remove parameter `w', unused since
12080 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
12081 (decode_mode_spec): Remove parameter `precision', introduced during
12082 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
12083 All callers changed.
12084
5ffb62aa
JD
120852011-03-27 Jan Djärv <jan.h.d@swipnet.se>
12086
12087 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
12088
461c2ab9 120892011-03-27 Anders Lindgren <andlind@gmail.com>
f0a1382a
JD
12090
12091 * nsterm.m (ns_menu_bar_is_hidden): New variable.
12092 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
12093 (ns_update_auto_hide_menu_bar): New functions.
12094 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
12095 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
12096 ns_constrain_all_frames.
12097 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
12098 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
12099
5c380ffb
JD
121002011-03-27 Jan Djärv <jan.h.d@swipnet.se>
12101
12102 * nsmenu.m (runDialogAt): Remove argument to timer_check.
12103
9af30bdf
GM
121042011-03-27 Glenn Morris <rgm@gnu.org>
12105
12106 * syssignal.h: Replace RETSIGTYPE with void.
12107 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
12108 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
12109 Replace SIGTYPE with void everywhere.
12110 * s/usg5-4-common.h (SIGTYPE): Remove definition.
12111 * s/template.h (SIGTYPE): Remove commented out definition.
12112
e2abce01
JB
121132011-03-26 Eli Zaretskii <eliz@gnu.org>
12114
12115 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
12116 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
12117
f868cd8a
JB
121182011-03-26 Juanma Barranquero <lekktu@gmail.com>
12119
59eb0929
JB
12120 * w32.c (read_unc_volume): Use parameter `henum', instead of
12121 global variable `wget_enum_handle'.
12122
12123 * keymap.c (describe_vector): Remove parameters `indices' and
12124 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
12125 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
12126
f868cd8a
JB
12127 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
12128
12129 * keyboard.c (timer_check): Remove parameter `do_it_now',
12130 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
12131 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
12132 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
12133
12134 * keyboard.c (read_char):
12135 * w32menu.c (w32_menu_display_help):
12136 * xmenu.c (show_help_event, menu_help_callback):
12137 Adjust calls to `show_help_echo'.
12138
12139 * gtkutil.c (xg_maybe_add_timer):
12140 * keyboard.c (readable_events):
12141 * process.c (wait_reading_process_output):
12142 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
12143
12144 * insdel.c (adjust_markers_gap_motion):
12145 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
12146 (gap_left, gap_right): Don't call it.
12147
2ecf6fdb
CY
121482011-03-25 Chong Yidong <cyd@stupidchicken.com>
12149
12150 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
12151 incurred during fontification.
12152
6b1f9ba4
JB
121532011-03-25 Juanma Barranquero <lekktu@gmail.com>
12154
12155 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
12156 (DEFVAR_PER_BUFFER): Don't pass it.
12157
12158 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
12159 (scrolling_window): Don't pass it.
12160
0f4a96b5
JB
121612011-03-25 Juanma Barranquero <lekktu@gmail.com>
12162
12163 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
12164
12165 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
12166 and `suffix'.
12167 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
12168 of variables specific to SELinux and computation of `encoded_absname'.
12169
12170 * image.c (XPutPixel): Remove unused variable `height'.
12171
12172 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
12173
12174 * unexw32.c (get_section_info): Remove unused variable `section'.
12175
12176 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
12177 (system_process_attributes): Remove unused variable `sess'.
12178 (sys_read): Remove unused variable `err'.
12179
12180 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
12181 (w32_wnd_proc): Remove unused variable `isdead'.
12182 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
12183 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
12184 (x_create_tip_frame): Remove unused variable `tem'.
12185
12186 * w32inevt.c (w32_console_read_socket):
12187 Remove unused variable `no_events'.
12188
12189 * w32term.c (x_draw_composite_glyph_string_foreground):
12190 Remove unused variable `width'.
12191
1149507c
JB
121922011-03-24 Juanma Barranquero <lekktu@gmail.com>
12193
12194 * w32term.c (x_set_glyph_string_clipping):
12195 Don't pass uninitialized region to CombineRgn.
12196
9c88f339
JB
121972011-03-23 Juanma Barranquero <lekktu@gmail.com>
12198
12199 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
12200 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
12201 (Fx_close_connection): Remove unused variable `i'.
12202
12203 * w32font.c (w32font_draw): Return number of glyphs.
12204 (w32font_open_internal): Remove unused variable `i'.
12205 (w32font_driver): Add missing initializer.
12206
12207 * w32menu.c (utf8to16): Remove unused variable `utf16'.
12208 (fill_in_menu): Remove unused variable `items_added'.
12209
12210 * w32term.c (last_mouse_press_frame): Remove static global variable.
12211 (w32_clip_to_row): Remove unused variable `f'.
12212 (x_delete_terminal): Remove unused variable `i'.
12213
12214 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
12215 (NOTHING): Remove unused static global variable.
12216 (uniscribe_check_otf): Remove unused variable `table'.
12217 (uniscribe_font_driver): Add missing initializers.
12218
dee091a3
JD
122192011-03-23 Julien Danjou <julien@danjou.info>
12220
12221 * term.c (Fsuspend_tty, Fresume_tty):
12222 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
12223 * window.c (temp_output_buffer_show):
12224 * insdel.c (signal_before_change):
12225 * frame.c (Fhandle_switch_frame):
12226 * fileio.c (Fdo_auto_save):
12227 * emacs.c (Fkill_emacs):
12228 * editfns.c (save_excursion_restore):
12229 * cmds.c (internal_self_insert):
12230 * callint.c (Fcall_interactively):
12231 * buffer.c (Fkill_all_local_variables):
12232 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
12233 Use Frun_hooks.
0f4a96b5 12234 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
e9fce1ac 12235 unconditionally since it does the check itself.
dee091a3 12236
2c520ab5 122372011-03-23 Paul Eggert <eggert@cs.ucla.edu>
f0641eff 12238
c9c49752
PE
12239 Fix more problems found by GCC 4.5.2's static checks.
12240
8abc3f12
PE
12241 * coding.c (encode_coding_raw_text): Avoid unnecessary test
12242 the first time through the loop, since we know p0 < p1 then.
12243 This also avoids a gcc -Wstrict-overflow warning.
12244
a2d26660
PE
12245 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
12246 leading to a memory leak, possible in functions like
12247 load_charset_map_from_file that can allocate an unbounded number
b12ef411 12248 of objects (Bug#8318).
a2d26660 12249
916c72e9
PE
12250 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
12251 that could (at least in theory) be that large.
12252
19ab8a18
PE
12253 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
12254 This is less likely to overflow, and avoids undefined behavior if
12255 overflow does occur. All callers changed. Use strtoul to scan
12256 for the unsigned long integer.
b7cbbd6f
PE
12257 (pint2hrstr): Simplify and tune code slightly.
12258 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
19ab8a18 12259
f0641eff
PE
12260 * scroll.c (do_scrolling): Work around GCC bug 48228.
12261 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
12262
7f650bb9
PE
12263 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
12264 This also avoids a warning with gcc -Wstrict-overflow.
39f5e519
PE
12265 (validate_x_resource_name): Simplify count usage.
12266 This also avoids a warning with gcc -Wstrict-overflow.
7f650bb9 12267
37dd57d1
PE
12268 * fileio.c (Fcopy_file): Report error if fchown or fchmod
12269 fail (Bug#8306).
81e56e61 12270
699979fc 12271 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
dc1ca6a8 12272
401bf9b4
PE
12273 * process.c (Fmake_network_process): Use socklen_t, not int,
12274 where POSIX says socklen_t is required in portable programs.
12275 This fixes a porting bug on hosts like 64-bit HP-UX, where
591b2973 12276 socklen_t is wider than int (Bug#8277).
401bf9b4
PE
12277 (Fmake_network_process, server_accept_connection):
12278 (wait_reading_process_output, read_process_output):
12279 Likewise.
12280
b93aacde
PE
12281 * process.c: Rename or move locals to avoid shadowing.
12282 (list_processes_1, Fmake_network_process):
12283 (read_process_output_error_handler, exec_sentinel_error_handler):
12284 Rename or move locals.
4dc343ee 12285 (Fmake_network_process): Define label "retry_connect" only if needed.
0da49335 12286 (Fnetwork_interface_info): Fix pointer signedness.
f990b4e5 12287 (process_send_signal): Add cast to avoid pointer signedness problem.
7b808126 12288 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
c939f91b 12289 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
b93aacde 12290
af8a867c 12291 Make tparam.h and terminfo.c consistent.
44f230aa
SM
12292 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
12293 Include tparam.h instead, since it declares them.
af8a867c
PE
12294 * cm.h (PC): Remove extern decl; tparam.h now does this.
12295 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
12296 * terminfo.c: Include tparam.h, to check interfaces.
12297 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
12298 (tparam): Adjust signature to match interface in tparam.h;
12299 this removes some undefined behavior. Check that outstring and len
12300 are zero, which they always are with Emacs.
12301 * tparam.h (PC, BC, UP): New extern decls.
12302
0248044d 12303 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
001a7ab4 12304 (xftfont_open): Rename locals to avoid shadowing.
0248044d 12305
8ff096c1 12306 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
a00924bb
PE
12307 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
12308 (OTF_TAG_SYM): Omit macro if not needed.
e932860f 12309 (ftfont_list): Remove unused local.
49eaafba
PE
12310 (get_adstyle_property, ftfont_pattern_entity):
12311 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
12312 Rename locals to avoid shadowing.
8ff096c1 12313
e2be39f6
PE
12314 * xfont.c (xfont_list_family): Mark var as initialized.
12315
c9735e30
PE
12316 * xml.c (make_dom): Now static.
12317
8f5201ae
PE
12318 * composite.c (composition_compute_stop_pos): Rename local to
12319 avoid shadowing.
b246f932
PE
12320 (composition_reseat_it): Remove unused locals.
12321 (find_automatic_composition, composition_adjust_point): Likewise.
80e079b2 12322 (composition_update_it): Mark var as initialized.
11b61122
PE
12323 (find_automatic_composition): Mark vars as initialized,
12324 with a FIXME (Bug#8290).
8f5201ae 12325
760fbc2c
PE
12326 character.h: Rename locals to avoid shadowing.
12327 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
12328 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
12329 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
12330 (BUF_DEC_POS): Be more systematic about renaming local temporaries
12331 to avoid shadowing.
12332
ff08eb85
PE
12333 * textprop.c (property_change_between_p): Remove; unused.
12334
fc7bf025
PE
12335 * intervals.c (interval_start_pos): Now static.
12336
235d7abc
PE
12337 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
12338
44f230aa
SM
12339 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
12340 Rename locals to avoid shadowing.
3e7d6594 12341
50060332
PE
12342 * sound.c (wav_play, au_play, Fplay_sound_internal):
12343 Fix pointer signedness.
d01f234b 12344 (alsa_choose_format): Remove unused local var.
c83b8872
PE
12345 (wav_play): Initialize a variable to 0, to prevent undefined
12346 behavior (Bug#8278).
50060332 12347
c4fc4e30
PE
12348 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
12349
918436ed
PE
12350 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
12351
c939f91b
PE
12352 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
12353 clobbering (Bug#8298).
b9c7f648
PE
12354 * sysdep.c (sys_subshell): Likewise.
12355 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
7e9123a2 12356
6bd8c144
PE
12357 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
12358 This should get cleaned up, so that child_setup has the
12359 same signature on all platforms.
12360
7710357c 12361 * callproc.c (call_process_cleanup): Now static.
cb1d0ef7 12362 (relocate_fd): Rename locals to avoid shadowing.
7710357c 12363
c59da222
CY
123642011-03-22 Chong Yidong <cyd@stupidchicken.com>
12365
12366 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
12367 not to be necessary, and produces flickering.
12368
66b87493
GM
123692011-03-20 Glenn Morris <rgm@gnu.org>
12370
12371 * config.in: Remove file.
12372
45b6f6d5
JB
123732011-03-20 Juanma Barranquero <lekktu@gmail.com>
12374
12375 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
12376 are now in src/globals.h.
12377 (syms_of_minibuf): Remove spurious & from previous change.
12378
cd394be1 123792011-03-20 Leo Liu <sdl.web@gmail.com>
3ec03f7e
LL
12380
12381 * minibuf.c (completing-read-function): New variable.
12382 (completing-read-default): Rename from completing-read.
12383 (completing-read): Call completing-read-function.
12384
b14e3e21
CY
123852011-03-19 Juanma Barranquero <lekktu@gmail.com>
12386
12387 * xfaces.c (Fx_load_color_file):
12388 Read color file from absolute filename (bug#8250).
12389
f2b726e6
JB
123902011-03-19 Juanma Barranquero <lekktu@gmail.com>
12391
12392 * makefile.w32-in: Update dependencies.
12393
09f6ff02
EZ
123942011-03-17 Eli Zaretskii <eliz@gnu.org>
12395
12396 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
12397
29a6015a
PE
123982011-03-17 Paul Eggert <eggert@cs.ucla.edu>
12399
a3a6c54e
PE
12400 Fix more problems found by GCC 4.5.2's static checks.
12401
b766f867
PE
12402 * process.c (make_serial_process_unwind, send_process_trap):
12403 (sigchld_handler): Now static.
12404
be02381c
PE
12405 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
12406 That way, the code declares only the vars that it needs.
12407 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
12408 * s/cygwin.h (PTY_ITERATION): Likewise.
12409 * s/darwin.h (PTY_ITERATION): Likewise.
12410 * s/gnu-linux.h (PTY_ITERATION): Likewise.
12411
57048744
PE
12412 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
12413 * process.c (allocate_pty): Don't declare stb unless it's needed.
12414
7914961c 12415 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
615f2d59
PE
12416 (CONSTANTLIM): Remove; unused.
12417 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
12418 Define only if needed.
7914961c 12419
b3967b18
PE
12420 * unexelf.c (unexec): Name an expression,
12421 to avoid gcc -Wbad-function-cast warning.
9ae71512
PE
12422 Use a different way to cause a compilation error if anyone uses
12423 n rather than nn, a way that does not involve shadowing.
73366a00 12424 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
b3967b18 12425
29a6015a
PE
12426 * deps.mk (unexalpha.o): Remove; unused.
12427
43cfc33e 12428 New file unexec.h, the (simple) interface for unexec (Bug#8267).
7feda0d2 12429 * unexec.h: New file.
ce701a33
PE
12430 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
12431 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
12432 Depend on unexec.h.
12433 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
12434 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
12435 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
381259ef 12436 Change as necessary to match prototype in unexec.h.
ce701a33 12437
01f44d5a
PE
12438 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
12439 shadowing.
4f63c6bb 12440 (back_comment, skip_chars): Mark vars as initialized.
01f44d5a 12441
a6670b0b
PE
12442 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
12443 Rename locals to avoid shadowing.
12444
cef2010d 12445 * lread.c (read1): Rewrite so as not to use empty "else".
0902fe45 12446 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
cef2010d 12447
d4d7173a
PE
12448 * print.c (Fredirect_debugging_output): Fix pointer signedess.
12449
f08b802a
PE
12450 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
12451 warning when compiling print.c.
12452
3ddb0639
PE
12453 * font.c (font_unparse_fcname): Abort in an "impossible" situation
12454 instead of using an uninitialized var.
5ad03b97 12455 (font_sort_entities): Mark var as initialized.
3ddb0639 12456
170a2692
PE
12457 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
12458
e663c700
PE
12459 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
12460 pointers to constants.
89bc529a 12461 (font_parse_fcname): Remove unused vars.
7b81e2d0 12462 (font_delete_unmatched): Now static.
ea838e10 12463 (font_get_spec): Remove; unused.
13a547c6
PE
12464 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
12465 (font_update_drivers, Ffont_get_glyphs, font_add_log):
12466 Rename or move locals to avoid shadowing.
e663c700 12467
2a80c887 12468 * fns.c (require_nesting_list, require_unwind): Now static.
612f56df 12469 (Ffillarray): Rename locals to avoid shadowing.
2a80c887 12470
1384fa33 12471 * floatfns.c (domain_error2): Define only if needed.
a885e2ed 12472 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1384fa33 12473
8b2c52e9
PE
12474 * alloc.c (mark_backtrace): Move decl from here ...
12475 * lisp.h: ... to here, so that it can be checked.
12476
475545b5 12477 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
d28a2170 12478 (Fdefvar): Rewrite so as not to use empty "else".
cfcbfb1a
PE
12479 (lisp_indirect_variable): Name an expression,
12480 to avoid gcc -Wbad-function-cast warning.
1faed8ae 12481 (Fdefvar): Rename locals to avoid shadowing.
475545b5 12482
b1349114 12483 * callint.c (quotify_arg, quotify_args): Now static.
a3e8cbda 12484 (Fcall_interactively): Rename locals to avoid shadowing.
b0e80955 12485 Use const pointer when appropriate.
b1349114 12486
a2928364
PE
12487 * lisp.h (get_system_name, get_operating_system_release):
12488 Move decls here, to check interfaces.
12489 * process.c (get_operating_system_release): Move decl to lisp.h.
12490 * xrdb.c (get_system_name): Likewise.
63c5d10b
PE
12491 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
12492 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
12493 some of which prompt warnings from gcc -Wbad-function-cast.
545b49b4
PE
12494 (Fformat_time_string, Fencode_time, Finsert_char):
12495 (Ftranslate_region_internal, Fformat):
12496 Rename or remove local vars to avoid shadowing.
9710023e 12497 (Ftranslate_region_internal): Mark var as initialized.
63c5d10b 12498
a415e694
PE
12499 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
12500 avoid shadowing.
12501
8ef4622d
PE
12502 * lisp.h (eassert): Check that the argument compiles, even if
12503 ENABLE_CHECKING is not defined.
12504
946f9a5b
PE
12505 * data.c (Findirect_variable): Name an expression, to avoid
12506 gcc -Wbad-function-cast warning.
112396d6 12507 (default_value, arithcompare, arith_driver, arith_error): Now static.
b9b84fa9 12508 (store_symval_forwarding): Rename local to avoid shadowing.
44f230aa
SM
12509 (Fmake_variable_buffer_local, Fmake_local_variable):
12510 Mark variables as initialized.
52746918 12511 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
946f9a5b 12512
e5aab7e7 12513 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
ae35e756
PE
12514 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
12515 Rename locals to avoid shadowing.
dff45157
PE
12516 (mark_stack): Move local variables into the #ifdef region where
12517 they're used.
7bc26fdb
PE
12518 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
12519 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
12520 needed otherwise.
12521 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
12522 (GC_STRING_CHARS): Remove; not used.
d40d4be1 12523 (Fmemory_limit): Cast sbrk's returned value to char *.
ae35e756 12524
e5aab7e7
PE
12525 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
12526 avoids undefined behavior in theory.
12527
4da60324
PE
12528 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
12529
88043301
PE
12530 Use functions, not macros, for up- and down-casing (Bug#8254).
12531 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
12532 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
12533 to use the following functions instead of these macros.
12534 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
12535 EMACS_INT, since callers assume the returned value fits in int.
12536 (upcase1): Likewise, for UPCASE_TABLE.
12537 (uppercasep, lowercasep, upcase): New static inline functions.
0da09c43 12538 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
db69b0cd 12539 the race-condition problem in the old DOWNCASE.
88043301 12540
19ed5445
PE
12541 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
12542 Rename locals to avoid shadowing.
12543 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
abbd1bcf
PE
12544 (regex_compile, re_search_2, re_match_2_internal):
12545 Remove unused local vars.
952db0d7
PE
12546 (FREE_VAR): Rewrite so as not to use empty "else",
12547 which gcc can warn about.
da053e48 12548 (regex_compile, re_match_2_internal): Mark locals as initialized.
b313f9d8
PE
12549 (RETALLOC_IF): Define only if needed.
12550 (WORDCHAR_P): Likewise. This one is never needed, but is used
12551 only in a comment talking about a compiler bug, so put inside
12552 the #if 0 of that comment.
12553 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
12554 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
12555 Remove; unused.
19ed5445 12556
1f3561e4 12557 * search.c (boyer_moore): Rename locals to avoid shadowing.
76ef09b7
PE
12558 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
12559 (PREV_CHAR_BOUNDARY): Likewise.
1f3561e4 12560
ded6f8f7
PE
12561 * search.c (simple_search): Remove unused var.
12562
dbd37a95
PE
12563 * dired.c (compile_pattern): Move decl from here ...
12564 * lisp.h: ... to here, so that it can be checked.
12565 (struct re_registers): New forward decl.
12566
7e47afad
PE
12567 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
12568
85f24f61
PE
12569 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
12570 All uses changed.
12571 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
12572 Rename locals to avoid shadowing.
5671df8f 12573 (Fvertical_motion): Mark locals as initialized.
85f24f61 12574
181aa2be 12575 * casefiddle.c (casify_object, casify_region): Now static.
e45a141a 12576 (casify_region): Mark local as initialized.
181aa2be 12577
930d429c
PE
12578 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
12579
7082eac6
PE
12580 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
12581 New macros, so that the caller can use some names other than
12582 gcpro1, gcpro2, etc.
12583 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
12584 of the new macros.
12585 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
12586 argument, for consistency with GCPRO2_VAR, etc: it is now the
12587 prefix of the variable, not the variable itself. All uses
12588 changed.
38b2c076
PE
12589 * dired.c (directory_files_internal, file_name_completion):
12590 Rename locals to avoid shadowing.
12591
15206ed9
PE
12592 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
12593 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
12594 dired.c's scmp function, had undefined behavior.
12595 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
12596 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
12597 * buffer.h: ... to here, because these macros use current_buffer,
12598 and the new implementation with inline functions needs to have
12599 current_buffer in scope now, rather than later when the macros
12600 are used.
12601 (downcase, upcase1): New static inline functions.
12602 (DOWNCASE, UPCASE1): Reimplement using these functions.
12603 This avoids undefined behavior in expressions like
12604 DOWNCASE (x) == DOWNCASE (y), which previously suffered
12605 from race conditions in accessing the global variables
12606 case_temp1 and case_temp2.
12607 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
12608 * lisp.h (case_temp1, case_temp2): Remove their decls.
12609 * character.h (ASCII_CHAR_P): Move from here ...
12610 * lisp.h: ... to here, so that the inline functions mentioned
12611 above can use them.
12612
4a6bea26
PE
12613 * dired.c (directory_files_internal_unwind): Now static.
12614
f14b7e14
PE
12615 * fileio.c (file_name_as_directory, directory_file_name):
12616 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
12617 Now static.
2893f146
PE
12618 (file_name_as_directory): Use const pointers when appropriate.
12619 (Fexpand_file_name): Likewise. In particular, newdir might
12620 point at constant storage, so make it a const pointer.
fd4ead52 12621 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
b14aac08
PE
12622 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
12623 signedness issues.
f839df0c
PE
12624 (Fset_file_times, Finsert_file_contents, auto_save_error):
12625 Rename locals to avoid shadowing.
f14b7e14 12626
5716756e 12627 * minibuf.c (choose_minibuf_frame_1): Now static.
62137a95
PE
12628 (Ftry_completion, Fall_completions): Rename or remove locals
12629 to avoid shadowing.
5716756e 12630
b4c3046a
PE
12631 * marker.c (bytepos_to_charpos): Remove; unused.
12632
b45db522
PE
12633 * lisp.h (verify_bytepos, count_markers): New decls,
12634 so that gcc does not warn that these functions aren't declared.
12635
85876d07
PE
12636 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
12637 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
f0cb4a60 12638 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
40ef059e 12639 (copy_text): Remove unused local var.
85876d07 12640
03d78a21 12641 * filelock.c (within_one_second): Now static.
b3dd38ab 12642 (lock_file_1): Rename local to avoid shadowing.
03d78a21 12643
5df8f01b
PE
12644 * buffer.c (fix_overlays_before): Mark locals as initialized.
12645 (fix_start_end_in_overlays): Likewise. This function should be
12646 simplified by using pointers-to-pointers, but that's a different
12647 matter.
b1d876f1 12648 (switch_to_buffer_1): Now static.
8f54f30a
PE
12649 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
12650 (report_overlay_modification): Rename locals to avoid shadowing.
c3bd59b5 12651
a70072c9 12652 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
fbd02d7b 12653 Fix pointer signedness issue.
edced198
PE
12654 (sys_subshell): Mark local as volatile if checking for lint,
12655 to suppress a gcc -Wclobbered warning that does not seem to be right.
15dfd3d9 12656 (MAXPATHLEN): Define only if needed.
a70072c9 12657
a0977c44
PE
12658 * process.c (serial_open, serial_configure): Move decls from here ...
12659 * systty.h: ... to here, so that they can be checked.
12660
a884fdcc
PE
12661 * fns.c (get_random, seed_random): Move extern decls from here ...
12662 * lisp.h: ... to here, so that they can be checked.
12663
604efe86 12664 * sysdep.c (reset_io): Now static.
b8950c94 12665 (wait_for_termination_signal): Remove; unused.
604efe86 12666
38fc62d9
PE
12667 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
12668 (copy_keymap_item, append_key, push_text_char_description):
12669 Now static.
1004a21a 12670 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
dbbb8427 12671 (DENSE_TABLE_SIZE): Remove; unused.
c1141155
PE
12672 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
12673 (describe_map_tree):
12674 Rename locals to avoid shadowing.
38fc62d9 12675
2f2650da
PE
12676 * keyboard.c: Declare functions static if they are not used elsewhere.
12677 (echo_char, echo_dash, cmd_error, top_level_2):
12678 (poll_for_input, handle_async_input): Now static.
69a058fa
PE
12679 (read_char, kbd_buffer_get_event, make_lispy_position):
12680 (make_lispy_event, make_lispy_movement, apply_modifiers):
12681 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
12682 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
12683 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
c8a06054 12684 (read_key_sequence, read_char): Mark locals as initialized.
3ac94672 12685 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
2f2650da 12686
a053e86c 12687 * keyboard.h (make_ctrl_char): New decl.
da2f2dd9
PE
12688 (mark_kboards): Move decl here ...
12689 * alloc.c (mark_kboards): ... from here.
a053e86c 12690
4752793e
PE
12691 * lisp.h (force_auto_save_soon): New decl.
12692
74f10ca7 12693 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
244fc23d
PE
12694 (DEFINE_DUMMY_FUNCTION): New macro.
12695 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
12696 Use it.
c03cd23f
PE
12697 (main): Add casts to avoid warnings
12698 if GCC considers string literals to be constants.
74f10ca7 12699
022e70d4
PE
12700 * lisp.h (fatal_error_signal): Add decl, since it's exported.
12701
59d6fe83
PE
12702 * dbusbind.c: Pointer signedness fixes.
12703 (xd_signature, xd_append_arg, xd_initialize):
12704 (Fdbus_call_method, Fdbus_call_method_asynchronously):
12705 (Fdbus_method_return_internal, Fdbus_method_error_internal):
12706 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
12707 (Fdbus_register_signal): Use SSDATA when the context wants char *.
12708
78320123
PE
12709 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
12710 if GCC considers string literals to be constants.
49cebcca 12711 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
78320123 12712
35ac2a97
SM
127132011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
12714
fb103ca9
SM
12715 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
12716 (print_preprocess, print_object): New macro to fix last change.
12717
35ac2a97
SM
12718 * print.c (print_preprocess): Don't forget font objects.
12719
62973b41
JB
127202011-03-16 Juanma Barranquero <lekktu@gmail.com>
12721
12722 * emacs.c (USAGE3): Doc fixes.
12723
0e48bb22
AS
127242011-03-15 Andreas Schwab <schwab@linux-m68k.org>
12725
12726 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
12727 structure.
12728
7684e57b
JB
127292011-03-14 Juanma Barranquero <lekktu@gmail.com>
12730
12731 * lisp.h (VWindow_system, Qfile_name_history):
12732 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
12733 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
12734 (w32_system_caret_x, w32_system_caret_y): Declare extern.
12735
12736 * w32select.c: Don't #include "keyboard.h".
c96bbc66 12737 (run_protected): Add extern declaration for waiting_for_input.
7684e57b
JB
12738
12739 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
12740 * w32console.c (detect_input_pending, read_input_pending)
12741 (encode_terminal_code):
12742 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
12743 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
12744 (w32_system_caret_y, Qfile_name_history):
12745 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
12746 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
12747 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
12748 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
12749 * w32proc.c (Qlocal, report_file_error):
12750 * w32term.c (Vwindow_system, updating_frame):
12751 * w32uniscribe.c (initialized, uniscribe_font_driver):
12752 Remove unneeded extern declarations.
12753
2aa46d6c
CY
127542011-03-14 Chong Yidong <cyd@stupidchicken.com>
12755
c96bbc66 12756 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
2aa46d6c 12757
cffc6f3b
CY
127582011-03-13 Chong Yidong <cyd@stupidchicken.com>
12759
12760 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
12761 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
12762 These macros can no longer be used for assignment.
12763
44f230aa
SM
12764 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
12765 Assign struct members directly, instead of using BUF_BEGV etc.
cffc6f3b
CY
12766 (record_buffer_markers, fetch_buffer_markers): New functions for
12767 recording and fetching special buffer markers.
12768 (set_buffer_internal_1, set_buffer_temp): Use them.
12769
12770 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
12771
12772 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
12773
12774 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
12775 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
12776
12777 * xdisp.c (hscroll_window_tree):
12778 (reconsider_clip_changes): Use PT instead of BUF_PT.
12779
d251f04b
EZ
127802011-03-13 Eli Zaretskii <eliz@gnu.org>
12781
12782 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
12783 $(EMACS_ROOT)/lib/intprops.h.
12784
f0c77cd1
PE
127852011-03-13 Paul Eggert <eggert@cs.ucla.edu>
12786
3eca4629
PE
12787 Fix more problems found by GCC 4.5.2's static checks.
12788
7c86ee98
PE
12789 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
12790 to unsigned char * to avoid compiler diagnostic.
b0afc268
PE
12791 (xg_free_frame_widgets): Make it clear that a local variable is
12792 needed only if USE_GTK_TOOLTIP.
01e0b5ad
PE
12793 (gdk_window_get_screen): Make it clear that this macro is needed
12794 only if USE_GTK_TOOLTIP.
1e5524e7
PE
12795 (int_gtk_range_get_value): New function, which avoids a diagnostic
12796 from gcc -Wbad-function-cast.
12797 (xg_set_toolkit_scroll_bar_thumb): Use it.
12798 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
12799 diagnostic from gcc -Wbad-function-cast.
65dc836c
PE
12800 (get_utf8_string, xg_get_file_with_chooser):
12801 Rename locals to avoid shadowing.
12802 (create_dialog): Move locals to avoid shadowing.
7c86ee98 12803
41729b81
PE
12804 * xgselect.c (xg_select): Remove unused var.
12805
f0c77cd1
PE
12806 * image.c (four_corners_best): Mark locals as initialized.
12807 (gif_load): Initialize transparent_p to zero (Bug#8238).
12808 Mark another local as initialized.
ec6cf4c6 12809 (my_png_error, my_error_exit): Mark with NO_RETURN.
f0c77cd1 12810
ce0ad53d 12811 * image.c (clear_image_cache): Now static.
d5d5a617 12812 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
e22cffbc 12813 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
77a765fd
PE
12814 (x_edge_detection): Remove unnecessary cast that
12815 gcc -Wbad-function-cast diagnoses.
2037898d 12816 (gif_load): Fix pointer signedness.
6ae141d6
PE
12817 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
12818 (jpeg_load, gif_load): Rename locals to avoid shadowing.
ce0ad53d 12819
33383987 128202011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3eca4629 12821
d32df629
PE
12822 Improve quality of tests for time stamp overflow.
12823 For example, without this patch (encode-time 0 0 0 1 1
12824 1152921504606846976) returns the obviously-bogus value (-948597
12825 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
12826 reports time overflow. See
12827 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
b8d9bd41
PE
12828 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
12829 * editfns.c: Include limits.h and intprops.h.
12830 (TIME_T_MIN, TIME_T_MAX): New macros.
12831 (time_overflow): Move earlier, to before first use.
12832 (hi_time, lo_time): New functions, for an accurate test for
12833 out-of-range times.
12834 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
12835 (Fget_internal_run_time): Don't assume time_t fits in int.
12836 (make_time): Use list2 instead of Fcons twice.
12837 (Fdecode_time): More accurate test for out-of-range times.
12838 (check_tm_member): New function.
12839 (Fencode_time): Use it, to test for out-of-range times.
d32df629
PE
12840 (lisp_time_argument): Don't rely on undefined left-shift and
12841 right-shift behavior when checking for time stamp overflow.
8be6f318 12842
fe31d94c
PE
12843 * editfns.c (time_overflow): New function, refactoring common code.
12844 (Fformat_time_string, Fdecode_time, Fencode_time):
12845 (Fcurrent_time_string): Use it.
12846
8be6f318
PE
12847 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
12848 * dired.c (make_time): Move to ...
12849 * editfns.c (make_time): ... here.
12850 * systime.h: Note the move.
12851
09d9db2c 128522011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
c47cbdfd 12853
126bc0dc
YM
12854 * fringe.c (update_window_fringes): Remove unused variables.
12855
c47cbdfd
YM
12856 * unexmacosx.c (copy_data_segment): Also copy __got section.
12857 (Bug#8223)
12858
7ac80be9
EZ
128592011-03-12 Eli Zaretskii <eliz@gnu.org>
12860
c96bbc66 12861 * termcap.c [MSDOS]: Include "msdos.h".
058e5dad
EZ
12862 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
12863 Constify `char *' arguments and their references according to
12864 prototypes in tparam.h.
12865
ecb0f94d 12866 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
058e5dad 12867
7ac80be9
EZ
12868 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
12869 Adapt all references accordingly.
12870
12871 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
12872
ef1fd07e
TT
128732011-03-11 Tom Tromey <tromey@redhat.com>
12874
12875 * buffer.c (syms_of_buffer): Remove obsolete comment.
12876
7ef4b50c
EZ
128772011-03-11 Eli Zaretskii <eliz@gnu.org>
12878
12879 * termhooks.h (encode_terminal_code): Declare prototype.
12880
12881 * msdos.c (encode_terminal_code): Don't declare prototype.
12882
12883 * term.c (encode_terminal_code): Now external again, used by
12884 w32console.c and msdos.c.
12885
44f230aa
SM
12886 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
12887 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
7ef4b50c 12888
4b1ec863 128892011-03-11 Paul Eggert <eggert@cs.ucla.edu>
f78faa98 12890
1714f52b 12891 Fix some minor problems found by GCC 4.5.2's static checks.
83316bf4 12892
4b1ec863
PE
12893 * fringe.c (update_window_fringes): Mark locals as initialized
12894 (Bug#8227).
12895 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
bf60f616 12896
524c7aa6
PE
12897 * alloc.c (mark_fringe_data): Move decl from here ...
12898 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
12899 to check its interface.
12900 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
12901
a5c0af81 12902 * fontset.c (free_realized_fontset): Now static.
7519b8cd 12903 (Fset_fontset_font): Rename local to avoid shadowing.
cc6e5db1 12904 (fontset_font): Mark local as initialized.
a9a06e0b 12905 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
a5c0af81 12906
b4716021
PE
12907 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
12908
811e9bac 12909 * xselect.c (x_disown_buffer_selections): Remove; not used.
7b83e2f1 12910 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
aa0daa9f
PE
12911 (x_own_selection, Fx_disown_selection_internal): Rename locals
12912 to avoid shadowing.
12913 (x_handle_dnd_message): Remove local to avoid shadowing.
811e9bac 12914
7e3ab302
PE
12915 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
12916 so that the caller can use some name other than gcpro1.
12917 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
58d2d479
PE
12918 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
12919 (Fx_backspace_delete_keys_p):
12920 Use them to avoid shadowing, and rename vars to avoid shadowing.
12921 (x_decode_color, x_set_name, x_window): Now static.
6b437900 12922 (Fx_create_frame): Add braces to silence GCC warning.
c0951e53 12923 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
06b0c8a0
PE
12924 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
12925 Remove unused locals.
7e3ab302
PE
12926 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
12927 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
12928 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
12929 macros.
f78faa98 12930
e2b13473
PE
12931 * xterm.h (x_mouse_leave): New decl.
12932
77f23912
PE
12933 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
12934 Remove unused functions.
cdf4ba58
PE
12935 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
12936 (x_calc_absolute_position): Now static.
7411c686 12937 (XTread_socket): Don't define label "out" unless it's used.
2b07bcff 12938 Don't declare local "event" unless it's used.
ed7bf3a5
PE
12939 (x_iconify_frame, x_free_frame_resources): Don't declare locals
12940 unless they are used.
38d0b34a
PE
12941 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
12942 (x_fatal_error_signal): Remove; not used.
a6067996
PE
12943 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
12944 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
12945 (x_error_catcher, x_connection_closed, x_error_handler):
12946 (x_error_quitter, xembed_send_message, x_iconify_frame):
12947 (my_log_handler): Rename locals to avoid shadowing.
28f1c698 12948 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2a8fade0 12949 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
77f23912 12950
44f230aa
SM
12951 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
12952 Rename or move locals to avoid shadowing.
6b463e58 12953 (tty_defined_color, merge_face_heights): Now static.
5967d051 12954 (free_realized_faces_for_fontset): Remove; not used.
1e9966ea
PE
12955 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
12956 does not deduce is never used uninitialized.
73719eba
PE
12957 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
12958 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
071048a3 12959
426994c3 12960 * terminal.c (store_terminal_param): Now static.
5489860b 12961
032f1620 12962 * xmenu.c (menu_highlight_callback): Now static.
9d66f88e 12963 (set_frame_menubar): Remove unused local.
d4323972 12964 (xmenu_show): Rename parameter to avoid shadowing.
6d1f7fee
PE
12965 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
12966 since they might point to immutable storage.
281585b0
PE
12967 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
12968 since it's unused otherwise.
032f1620 12969
367c19e5 12970 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
53df7c11 12971 Add a FIXME, since the code still doesn't look right. (Bug#8215)
9f36b9fd
PE
12972 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
12973 avoids a gcc -Wuninitialized diagnostic.
0e086e8f 12974 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
44a3a108
PE
12975 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
12976 does not deduce are never used uninitialized.
70739cbe 12977
07b48fa9
PE
12978 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
12979
8868a238 12980 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
4554d213
PE
12981 * window.c (window_loop, size_window):
12982 (run_window_configuration_change_hook, enlarge_window): Likewise.
8868a238 12983
7e5cf297 12984 * window.c (display_buffer): Now static.
d6550a9f
PE
12985 (size_window): Mark variables that gcc -Wuninitialized
12986 does not deduce are never used uninitialized.
a586633d
PE
12987 * window.h (check_all_windows): New decl, to forestall
12988 gcc -Wmissing-prototypes diagnostic.
5b555da1 12989 * dispextern.h (bidi_dump_cached_states): Likewise.
7e5cf297 12990
f6095868
PE
12991 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
12992 shadowing.
12993 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
726929c4
PE
12994 Include <limits.h>.
12995 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
12996 and to avoid gcc -Wuninitialized warning.
89ef49df
PE
12997 (load_charset_map): Mark variables that gcc -Wuninitialized
12998 does not deduce are never used uninitialized.
53df7c11 12999 (load_charset): Abort instead of using uninitialized var (Bug#8229).
f6095868 13000
f38b440c
PE
13001 * coding.c (coding_set_source, coding_set_destination):
13002 Use "else { /* comment */ }" rather than "else /* comment */;"
13003 for clarity, and to avoid gcc -Wempty-body warning.
2735d060
PE
13004 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
13005 a block, when the outer 'i' will do.
13006 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
13007 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
13008 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
13009 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
13010 (Fdecode_sjis_char, Fdefine_coding_system_internal):
13011 Rename locals to avoid shadowing.
13012 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
e2f1bab9
PE
13013 * coding.c (emacs_mule_char, encode_invocation_designation):
13014 Now static, since they're not used elsewhere.
413bb2db 13015 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
c4a63b12 13016 (decode_coding_object, encode_coding_object, detect_coding_system):
ee05f961
PE
13017 (decode_coding_emacs_mule): Mark variables that gcc
13018 -Wuninitialized does not deduce are never used uninitialized.
160b01f6
PE
13019 (detect_coding_iso_2022): Initialize a local variable that might
13020 be used uninitialized. Leave a FIXME because it's not clear that
53df7c11 13021 this initialization is needed. (Bug#8211)
5f58e762
PE
13022 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
13023 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
13024 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
13025 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
13026 Remove unused macros.
f38b440c 13027
232b38b9 13028 * category.c (hash_get_category_set): Remove unused local var.
9f3b5e69 13029 (copy_category_table): Now static, since it's not used elsewhere.
d0891610 13030 * character.c (string_count_byte8): Likewise.
232b38b9 13031
fb90da1b
PE
13032 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
13033 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
13034
fb93dbc2
PE
13035 * chartab.c (copy_sub_char_table): Now static, since it's not used
13036 elsewhere.
5c156ace
PE
13037 (sub_char_table_ref_and_range, char_table_ref_and_range):
13038 Rename locals to avoid shadowing.
bbcd0949 13039 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
fb93dbc2 13040
7d3b3862 13041 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
630d6892 13042 (BIDI_BOB): Remove unused macro.
7d3b3862 13043
6be7d3da
PE
13044 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
13045 deduce are never used uninitialized.
c2ed9c8b 13046 * term.c (encode_terminal_code): Likewise.
6be7d3da 13047
75f8807f 13048 * term.c (encode_terminal_code): Now static. Remove unused local.
72abad34 13049
50938595
PE
13050 * tparam.h: New file.
13051 * term.c, tparam.h: Include it.
13052 * deps.mk (term.o, tparam.o): Depend on tparam.h.
13053 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
13054 Move these decls to tparam.h, and make them agree with what
13055 is actually in tparam.c. The previous trick of using incompatible
13056 decls in different modules does not conform to the C standard.
13057 All callers of tparam changed to use tparam's actual API.
13058 * tparam.c (tparam1, tparam, tgoto):
13059 Use const pointers where appropriate.
13060
fbceeba2
PE
13061 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
13062 * cm.h (struct cm): Likewise.
13063 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
13064 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
13065 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
13066 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
13067 (turn_on_face, init_tty): Likewise.
13068 * termchar.h (struct tty_display_info): Likewise.
fbceeba2 13069
7f3f1250
PE
13070 * term.c (term_mouse_position): Rename local to avoid shadowing.
13071
e6ca6543
PE
13072 * alloc.c (mark_ttys): Move decl from here ...
13073 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
13074
c40f8d15
AS
130752011-03-11 Andreas Schwab <schwab@linux-m68k.org>
13076
13077 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
13078
cfe0661d
JB
130792011-03-09 Juanma Barranquero <lekktu@gmail.com>
13080
13081 * search.c (compile_pattern_1): Remove argument regp, unused since
13082 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
13083 (compile_pattern): Don't pass it.
13084
0afb4571
J
130852011-03-08 Jan Djärv <jan.h.d@swipnet.se>
13086
13087 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
13088 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
13089 for ! HAVE_GTK3.
13090 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
13091
13092 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
13093
13094 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
13095 gdk_window_get_screen, gdk_window_get_geometry,
13096 gdk_x11_window_lookup_for_display and GDK_KEY_g.
13097 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
13098 (xg_get_pixbuf_from_pixmap): New function.
13099 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
13100 to Pixmap, take frame as parameter, remove GdkColormap parameter.
13101 Call xg_get_pixbuf_from_pixmap instead of
13102 gdk_pixbuf_get_from_drawable.
13103 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
13104 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
13105 (xg_check_special_colors): Use GtkStyleContext and its functions
13106 for HAVE_GTK3.
13107 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
13108 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
13109 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
44f230aa
SM
13110 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
13111 Call gtk_widget_get_preferred_size.
0afb4571
J
13112 (xg_frame_resized): gdk_window_get_geometry only takes 5
13113 parameters.
44f230aa
SM
13114 (xg_win_to_widget, xg_event_is_for_menubar):
13115 Call gdk_x11_window_lookup_for_display.
0afb4571
J
13116 (xg_set_widget_bg): New function.
13117 (delete_cb): New function.
895009e1 13118 (xg_create_frame_widgets): Connect delete-event to delete_cb.
5c32d3f2 13119 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
0afb4571
J
13120 (xg_set_background_color): Call xg_set_widget_bg.
13121 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
13122 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
13123 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
13124 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
13125 if ! HAVE_GTK3.
13126 (update_frame_tool_bar): Call gtk_widget_hide.
13127 (xg_initialize): Use GDK_KEY_g.
13128
13129 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
13130 if ! HAVE_GTK3
13131 (x_session_initialize): Call gdk_x11_set_sm_client_id.
13132
13133 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
13134 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
13135 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
13136
1c2cc4ef
JB
131372011-03-08 Juanma Barranquero <lekktu@gmail.com>
13138
13139 * w32xfns.c (select_palette): Check success of RealizePalette against
13140 GDI_ERROR, not zero.
13141
33383987 13142See ChangeLog.11 for earlier changes.
aac0c6e3
MR
13143
13144;; Local Variables:
13145;; coding: utf-8
aac0c6e3
MR
13146;; End:
13147
2f097256 13148 Copyright (C) 2011-2012 Free Software Foundation, Inc.
aac0c6e3
MR
13149
13150 This file is part of GNU Emacs.
13151
13152 GNU Emacs is free software: you can redistribute it and/or modify
13153 it under the terms of the GNU General Public License as published by
13154 the Free Software Foundation, either version 3 of the License, or
13155 (at your option) any later version.
13156
13157 GNU Emacs is distributed in the hope that it will be useful,
13158 but WITHOUT ANY WARRANTY; without even the implied warranty of
13159 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13160 GNU General Public License for more details.
13161
13162 You should have received a copy of the GNU General Public License
13163 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.