* fileio.c (Finsert_file_contents): Properly handle st_mtime
[bpt/emacs.git] / src / ChangeLog
CommitLineData
636334d6
AS
12012-07-03 Andreas Schwab <schwab@linux-m68k.org>
2
3 * fileio.c (Finsert_file_contents): Properly handle st_mtime
4 marker for non-existing file. (Bug#11852)
5
e2017fe2
GM
62012-07-03 Glenn Morris <rgm@gnu.org>
7
8 * lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN
9 and did not make it into globals.h).
10
404dbd37
TT
112012-07-03 Tom Tromey <tromey@redhat.com>
12
13 * window.c (Fset_window_margins, Fset_window_fringes)
14 (Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
15 * textprop.c (Fprevious_property_change): No longer static.
16 * syntax.c (Fsyntax_table_p): No longer static.
17 * process.c (Fget_process, Fprocess_datagram_address): No longer
18 static.
19 * keymap.c (Flookup_key, Fcopy_keymap): No longer static.
20 * keyboard.c (Fcommand_execute): No longer static.
21 Remove EXFUN.
22 * insdel.c (Fcombine_after_change_execute): No longer static.
23 * image.c (Finit_image_library): No longer static.
24 * fileio.c (Fmake_symbolic_link): No longer static.
25 * eval.c (Ffetch_bytecode): No longer static.
26 * editfns.c (Fuser_full_name): No longer static.
27 * doc.c: (Fdocumentation_property, Fsnarf_documentation): No
28 longer static.
29 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
30 static.
31 * dired.c (Ffile_attributes): No longer static.
32 * composite.c (Fcomposition_get_gstring): No longer static.
33 * callproc.c (Fgetenv_internal): No longer static.
34
35 * ccl.h: Remove EXFUNs.
36 * buffer.h: Remove EXFUNs.
37 * dispextern.h: Remove EXFUNs.
38 * intervals.h: Remove EXFUNs.
39 * fontset.h: Remove EXFUN.
40 * font.h: Remove EXFUNs.
41 * dosfns.c (system_process_attributes): Remove EXFUN.
42 * keymap.h: Remove EXFUNs.
43 * lisp.h: Remove EXFUNs.
44 * w32term.h: Remove EXFUNs.
45 * window.h: Remove EXFUNs.
46 * xsettings.h: Remove EXFUN.
47 * xterm.h: Remove EXFUN.
48
8e4fd1e1
GM
492012-07-03 Glenn Morris <rgm@gnu.org>
50
51 * lisp.h (Frandom): Make it visible to C.
52 * buffer.c (Fgenerate_new_buffer_name): Speed up finding a new
53 buffer for invisible buffers. (Bug#1229)
54
ca95b3eb
DA
552012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
56
57 Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
58 values which aren't power of 2.
59 * alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro. Verify
60 it's value and the value of VECTOR_BLOCK_SIZE. Adjust users
61 accordingly.
62
7555c33f
SM
632012-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
64
65 * lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better.
66
67 * alloc.c (mark_object): Revert part of last patch to use `switch'.
68
d12e8f5a
DA
692012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
70
71 * alloc.c (allocate_vector_block): Remove redundant
72 calls to mallopt if DOUG_LEA_MALLOC is defined.
73 (allocate_vectorlike): If DOUG_LEA_MALLOC is defined,
74 avoid calls to mallopt if zero_vector is returned.
75
296094c3
DA
762012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
77
78 * alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES
79 is enabled, avoid dereferencing NULL current_sblock if
80 running undumped.
81
36429c89
DA
822012-07-03 Dmitry Antipov <dmantipov@yandex.ru>
83
84 Cleanup basic buffer management.
85 * buffer.h (struct buffer): Change layout to use generic vector
86 marking code. Fix some comments. Change type of 'clip_changed'
87 to bitfield. Remove unused #ifndef old.
88 (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
89 (GET_OVERLAYS_AT): Fix indentation.
90 (for_each_per_buffer_object_at): New macro.
91 * buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
92 (Fbuffer_local_variables): Use it.
93 (init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
94 * alloc.c (allocate_buffer): Adjust to match new layout of
95 struct buffer. Fix comment.
96 (mark_overlay): New function.
97 (mark_buffer): Use it. Use mark_vectorlike to mark normal
98 Lisp area of struct buffer.
99 (mark_object): Use it. Adjust marking of misc objects
100 and related comments.
101
3b3e4cac
PE
1022012-07-02 Paul Eggert <eggert@cs.ucla.edu>
103
104 * alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS"
105 wrapper that is not needed because the wrapped code is a no-op (zero
106 machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined.
107 This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64.
108
cf5c0175
DA
1092012-07-02 Dmitry Antipov <dmantipov@yandex.ru>
110
111 * alloc.c (mark_buffer): Simplify. Remove prototype.
112 (mark_object): Add comment. Reorganize marking of vector-like
faf611c7 113 objects. Use CHECK_LIVE for all vector-like objects except buffers
cf5c0175
DA
114 and subroutines when GC_CHECK_MARKED_OBJECTS is defined. Avoid
115 redundant calls to mark_vectorlike for bool vectors.
116
ca26824c
GM
1172012-06-30 Glenn Morris <rgm@gnu.org>
118
2e4c5312
GM
119 * nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp.
120
ca26824c
GM
121 * epaths.in (PATH_SITELOADSEARCH): New.
122 * lread.c (init_lread): Use PATH_SITELOADSEARCH.
123 This is rather than relying on --enable-locallisppath elements
124 having "site-lisp" in their names. (Bug#10208#25, 11658)
125
0d23c240
EZ
1262012-06-30 Eli Zaretskii <eliz@gnu.org>
127
c9240d7a
EZ
128 * w32proc.c (sys_select): Accept and ignore one more argument.
129
130 * w32.c (emacs_gnutls_pull): Call select with one more argument.
131
0d23c240 132 * sysselect.h [DOS_NT]: Don't include sys/select.h.
9ff8f76b 133 (pselect) [!MS_DOS]: Redirect to sys_select.
0d23c240
EZ
134
135 * sysdep.c: Don't include dos.h and dosfns.h.
136
137 * process.c (sys_select):
138 * msdos.c (sys_select): Accept one more argument and ignore it.
139
140 * msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
141 adapt data types and code to that.
142
143 * dosfns.c:
144 * msdos.c (gettime, settime): Define away the prototypes in dos.h,
145 which clashes with the gnulib function of the same name.
146
af5a5a98
AS
1472012-06-30 Andreas Schwab <schwab@linux-m68k.org>
148
c5e4379c
AS
149 * font.c (font_style_to_value, font_style_symbolic)
150 (font_prop_validate_style): Add type checks for values in
151 font_style_table.
152
af5a5a98
AS
153 * lisp.h (CHECK_RANGED_INTEGER): Make value to check the first
154 argument.
155 * character.c, charset.c, menu.c, process.c, window.c: Adjust all
156 uses.
157
8d38f461
EZ
1582012-06-29 Eli Zaretskii <eliz@gnu.org>
159
2e5a6631
EZ
160 * xdisp.c (try_window_id): Undo last change.
161
8d38f461
EZ
162 * w32.c (getwd): Adjust commentary about startup_dir.
163 (init_environment): Always call sys_access, even in non-MSVC
164 builds. Don't chdir to the directory of the Emacs executable.
165 This undoes code from 1997 which was justified by the need to
166 "avoid conflicts when removing and renaming directories". But its
167 downside was that every relative file name was being interpreted
168 relative to the directory of the Emacs executable, which can never
169 be TRT. In particular, it broke sys_access when called with
170 relative file names.
171 (sys_access): Map GetLastError to errno.
172
2af3565e
DA
1732012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
174
175 * window.h (struct window): Change type of 'fringes_outside_margins'
176 to bitfield. Fix comment. Adjust users accordingly.
cf5c0175 177 (struct window): Change type of 'window_end_bytepos' to ptrdiff_t.
2af3565e
DA
178 Adjust comment.
179 * xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos'
180 to ptrdiff_t.
181
c8d3a25c 1822012-06-29 Andreas Schwab <schwab@linux-m68k.org>
57570cd3 183
c8d3a25c
GM
184 * gnutls.c (emacs_gnutls_handshake):
185 Add QUIT to make the loop interruptible.
57570cd3 186
c8d3a25c 1872012-06-29 Glenn Morris <rgm@gnu.org>
d01fd55f 188
c8d3a25c
GM
189 * charset.c (init_charset): Make lack of etc/charsets fatal.
190
3e984ee8
DA
1912012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
192
193 * editfns.c (region_limit): Fix type mismatch.
194
ef884f23
DA
1952012-06-29 Dmitry Antipov <dmantipov@yandex.ru>
196
197 * nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be
198 undefined. Convert from xassert to eassert.
199 * nsmenu.m: Convert from xassert to eassert.
200 * nsterm.m: Likewise.
201
7d7e0027
SM
2022012-06-28 Stefan Monnier <monnier@iro.umontreal.ca>
203
204 * editfns.c (region_limit): Clip to narrowing (bug#11770).
205
aa754e6a
PE
2062012-06-28 Paul Eggert <eggert@cs.ucla.edu>
207
208 Avoid integer overflow on scroll-left and scroll-right.
209 * window.c (HSCROLL_MAX): New macro.
210 (Fscroll_left, Fscroll_right): Avoid undefined behavior on integer
211 overflow when requested scroll falls outside ptrdiff_t range.
212
80b00b08
DA
2132012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
214
215 * window.h (struct window): Change type of 'hscroll',
216 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
217 'last_modified' and 'last_overlay_modified' to EMACS_INT.
218 Adjust users accordingly.
219 * xdisp.c (try_cursor_movement): Replace type check with eassert.
220 * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
221 from EMACS_INT to ptrdiff_t.
222 (make_window): Omit redundant initialization.
223
62b2bcf6
JB
2242012-06-28 Juanma Barranquero <lekktu@gmail.com>
225
226 * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
227
45942c7d
DA
2282012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
229
230 * window.h (struct window): Change type of 'use_time' and
231 'sequence_number' from Lisp_Object to int.
232 * frame.c (make_frame): Adjust users accordingly.
233 * print.c (print_object): Likewise.
234 * window.c (select_window, Fwindow_use_time, make_parent_window)
235 (make_window): Likewise.
236
e509cfa6
DA
2372012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
238
239 * dispextern.h (GLYPH_DEBUG): Now defined in config.h if
240 enabled with --enable-checking=[all,glyphs] configure option.
241 Fix GLYPH_DEBUG usage assuming that it may be undefined,
242 adjust comments accordingly.
243 * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
244 undefined, adjust comments accordingly.
245 * image.c: Likewise.
246 * scroll.c: Likewise.
247 * w32fns.c: Likewise.
248 * w32term.c: Likewise.
249 * xdisp.c: Likewise.
250 * xfaces.c: Likewise.
251 * xfns.c: Likewise.
252 * xterm.c: Likewise.
253
a54e2c05
DA
2542012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
255
256 Generalize run-time debugging checks.
257 * dispextern.h (XASSERTS): Remove.
258 * fontset.c (xassert): Remove.
259 Convert from xassert to eassert.
260 * alloc.c: Convert from xassert to eassert.
261 * bidi.c: Likewise.
262 * dispnew.c: Likewise.
263 * fns.c: Likewise.
264 * fringe.c: Likewise.
265 * ftfont.c: Likewise.
266 * gtkutil.c: Likewise.
267 * image.c: Likewise.
268 * keyboard.c: Likewise.
269 * menu.c: Likewise.
270 * process.c: Likewise.
271 * scroll.c: Likewise.
272 * sound.c: Likewise.
273 * term.c: Likewise.
274 * w32console.c: Likewise.
275 * w32fns.c: Likewise.
276 * w32term.c: Likewise.
277 * window.c: Likewise.
278 * xdisp.c: Likewise.
279 * xfaces.c: Likewise.
280 * xfns.c: Likewise.
281 * xselect.c: Likewise.
282 * xterm.c: Likewise.
283
1ec4b7b2
SM
2842012-06-27 Stefan Monnier <monnier@iro.umontreal.ca>
285
286 * fns.c (maybe_resize_hash_table): Output message when growing the
287 purify-hashtable.
288
2014308a
DA
2892012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
290
291 * alloc.c (allocate_string_data): Remove dead code.
292 * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
293 avoid GCC warning about unused macro.
294
246155eb
DA
2952012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
296
297 * alloc.c (allocate_string): Omit intervals initialization.
298 * alloc.c (make_uninit_multibyte_string): Initialize intervals
299 as in make_pure_string and make_pure_c_string.
300
43184b7b
DA
3012012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
302
303 * alloc.c (allocate_string): Fix last change.
304
3fe6dd74
DA
3052012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
306
307 * alloc.c (allocate_string): Remove two redundant calls
308 to memset, add explicit initialization where appropriate.
309
1ba6038a
GM
3102012-06-27 Glenn Morris <rgm@gnu.org>
311
312 * lisp.mk (lisp): Remove paths.elc.
313
c89926a5
CY
3142012-06-27 Chong Yidong <cyd@gnu.org>
315
316 * doc.c (Fsubstitute_command_keys): Fix punctuation.
317
ed6b3510
JW
3182012-06-26 John Wiegley <johnw@newartisans.com>
319
1ec4b7b2 320 * unexmacosx.c (copy_data_segment): Add two section names used
157e99e4
JW
321 on Mac OS X Lion: __mod_init_func and __mod_term_func.
322
ed6b3510
JW
323 * alloc.c (mark_memory): Do not check with -faddress-sanitizer
324 when building with Clang.
325
8edd4a2b
SM
3262012-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
327
328 * eval.c (Fapply): Allow calling it with a single argument.
329
f6f62d1b
EZ
3302012-06-26 Eli Zaretskii <eliz@gnu.org>
331
332 * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
333 _stricmp and _strnicmp.
334 (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
335
62efea5e
DA
3362012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
337
338 * alloc.c (allocate_window): Zero out non-Lisp part of newly
339 allocated window.
340 (allocate_process): Likewise for new process.
8edd4a2b 341 (allocate_terminal): Change to use offsetof.
62efea5e
DA
342 (allocate_frame): Likewise.
343 * frame.c (make_frame): Omit redundant initialization.
344 * window.c (make_parent_window): Use memset.
345 (make_window): Omit redundant initialization.
346 * process.c (make_process): Omit redundant initialization.
347 * terminal.c (create_terminal): Likewise.
348
42997f4d
DA
3492012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
350
351 * term.c (delete_tty): Remove redundant call to memset.
352
1130ecfc
DA
3532012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
354
355 * alloc.c: Remove build_string.
356 * lisp.h: Define build_string as static inline. This provides
357 a better opportunity to optimize away calls to strlen when the
358 function is called with compile-time constant argument.
359 * image.c (imagemagick_error): Convert to build_string.
360 * w32proc.c (sys_spawnve): Likewise.
361 * xterm.c (x_term_init): Likewise.
362
cf38a720
PE
3632012-06-26 Paul Eggert <eggert@cs.ucla.edu>
364
99027bdd
PE
365 Use sprintf return value instead of invoking strlen on result.
366 In the old days this wasn't portable, since some sprintf
367 implementations returned char *. But they died out years ago and
368 Emacs already assumes sprintf returns int.
369 Similarly for float_to_string.
370 This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
371 * ccl.c (ccl_driver):
372 * character.c (string_escape_byte8):
373 * data.c (Fnumber_to_string):
374 * doprnt.c (doprnt):
375 * print.c (print_object):
376 * xdisp.c (message_dolog):
377 * xfns.c (syms_of_xfns):
378 Use sprintf or float_to_string result to avoid need to call strlen.
379 * data.c (Fnumber_to_string):
380 Use make_unibyte_string, since the string must be ASCII.
381 * lisp.h, print.c (float_to_string): Now returns int length.
382 * term.c (produce_glyphless_glyph):
383 Use sprintf result rather than recomputing it.
384
cf38a720
PE
385 Clean out last vestiges of the old HAVE_CONFIG_H stuff.
386 * Makefile.in (ALL_CFLAGS):
387 * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
388 * gmalloc.c, regex.c: Include <config.h> unconditionally.
389
3511c784
DA
3902012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
391
0a08eb21 392 * dispextern.h (xstrcasecmp): Define to library function
3511c784
DA
393 strcasecmp if available.
394 * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
395
fb7da12e
AS
3962012-06-25 Andreas Schwab <schwab@linux-m68k.org>
397
398 * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
399 Avoid comma operator.
400 * menu.c (push_submenu_start, push_submenu_end)
401 (push_left_right_boundary, push_menu_pane): Likewise.
402 * msdos.c (dos_rawgetc): Likewise.
403
afa2ffd8
DA
4042012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
405
406 * xfns.c (xic_create_fontsetname): Remove redundant calls
407 to memset.
408
b3b4476b
PE
4092012-06-25 Paul Eggert <eggert@cs.ucla.edu>
410
4495ff38
PE
411 * gtkutil.c (get_utf8_string): Remove redundant assignment.
412 sprintf already null-terminates its output.
413
b3b4476b
PE
414 * xfns.c (x_window): Remove redundant cast.
415
b00876c9
DA
4162012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
417
418 * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
419 `const char *' to `char *' to avoid compiler warning.
420
d188e26b
PE
4212012-06-24 Paul Eggert <eggert@cs.ucla.edu>
422
885d1d74
PE
423 * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
424 instead of truncating it to 63 (admittedly a generous limit).
425
d188e26b
PE
426 * process.c: Fix spelling and caps in comments.
427
e2f560b1
DN
4282012-06-24 Dan Nicolaescu <dann@ics.uci.edu>
429
e86db54b 430 * emacs.c (setpgrp): Remove definition, unused.
e2f560b1
DN
431 * sysdep.c (setpgrp): Remove definition, not used in this file.
432
7583a3a1
JB
4332012-06-24 Juanma Barranquero <lekktu@gmail.com>
434
435 * makefile.w32-in: Update dependencies.
436
696056c2
EZ
4372012-06-24 Eli Zaretskii <eliz@gnu.org>
438
439 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
440 (SYSTIME_H): Add nt/inc/sys/time.h.
441
442 * systime.h [WINDOWSNT]: Include sys/time.h.
443
444 * s/ms-w32.h (struct timespec): Definition moved from
445 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
446
845ca893
PE
4472012-06-24 Paul Eggert <eggert@cs.ucla.edu>
448
449 Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
450 * buffer.h (buffer_slot_type_mismatch):
451 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
452 * eval.c (unwind_to_catch):
453 * image.c (my_png_error, my_error_exit):
454 * keyboard.c (quit_throw_to_read_char, user_error)
455 (Fexit_recursive_edit, Fabort_recursive_edit):
456 * lisp.h (die, args_out_of_range, args_out_of_range_3)
457 (wrong_type_argument, buffer_overflow, __executable_start)
458 (memory_full, buffer_memory_full, string_overflow, Fthrow)
459 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
460 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
461 (fatal):
462 (child_setup) [!DOS_NT]:
463 * lread.c (end_of_file_error, invalid_syntax):
464 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
465 * puresize.h (pure_write_error):
466 * search.c (matcher_overflow):
467 * sound.c (sound_perror, alsa_sound_perror):
468 * sysdep.c, syssignal.h (croak):
469 * term.c (maybe_fatal, vfatal):
470 * textprop.c (text_read_only):
471 * undo.c (user_error):
472 * unexmacosx.c (unexec_error):
473 * xterm.c (x_ins_del_lines, x_delete_glyphs):
474 Use _Noreturn rather than NO_RETURN.
475 No need for separate decl merely because of _Noreturn.
476 * sound.c (sound_warning, parse_sound):
477 Remove unnecessary forward decls.
478
f1dd8073
PE
4792012-06-24 Paul Eggert <eggert@cs.ucla.edu>
480
481 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
482 * lisp.h (WAIT_READING_MAX): New macro.
483 * dispnew.c (Fsleep_for, sit_for):
484 * keyboard.c (kbd_buffer_get_event):
485 * process.c (Faccept_process_output):
486 Use it to avoid bogus compiler warnings with obsolescent GCC versions.
487 This improves on the previous patch, which introduced a bug
488 when time_t is unsigned and as wide as intmax_t.
489 See <http://bugs.gnu.org/9000#51>.
490
b82c1755
EZ
4912012-06-23 Eli Zaretskii <eliz@gnu.org>
492
493 * dispnew.c (sit_for, Fsleep_for):
494 * keyboard.c (kbd_buffer_get_event):
495 * process.c (Faccept_process_output): Avoid compiler warnings when
496 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
497
ca300656
JB
4982012-06-23 Juanma Barranquero <lekktu@gmail.com>
499
049ec95b
JB
500 * makefile.w32-in: Update dependencies.
501
ca300656
JB
502 * w32.c (ltime): Add return type and declare static.
503 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
504
db7b8d06
PE
5052012-06-23 Paul Eggert <eggert@cs.ucla.edu>
506
507 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
508 Privately reported by Herbert J. Skuhra.
509 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
510 All uses changed.
511 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
512 not make_lisp_timeval, when the argument is of type EMACS_TIME.
513
0bd8297f
EZ
5142012-06-23 Eli Zaretskii <eliz@gnu.org>
515
96512555
EZ
516 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
517 last argument of make_unibyte_string.
518
0bd8297f
EZ
519 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
520 language ID in the event parameters.
521
522 * w32term.c (w32_read_socket): Put the new keyboard codepage into
523 event.code, not the obscure "character set ID".
524
63def6b6
CY
5252012-06-23 Chong Yidong <cyd@gnu.org>
526
527 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
528
e8a02204
EZ
5292012-06-23 Eli Zaretskii <eliz@gnu.org>
530
388cdec0
EZ
531 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
532 * w32.c (fdutimens): New function.
533
534 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
535
536 * s/ms-w32.h (pselect): Redirect to sys_select.
537
538 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
539
e8a02204
EZ
540 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
541 in the logic of incrementing and decrementing the value of
542 use_relocatable_buffers.
543
d054f3fb
PE
5442012-06-23 Paul Eggert <eggert@cs.ucla.edu>
545
546 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
547 Privately reported by Herbert J. Skuhra.
548 [__FreeBSD__]: Remove "*/" typo after "#include".
549 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
550 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
551 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
552 Don't assume EMACS_TIME and struct timeval are the same type.
553
d35af63c
PE
5542012-06-22 Paul Eggert <eggert@cs.ucla.edu>
555
556 Support higher-resolution time stamps (Bug#9000).
557 The time stamps are only nanosecond-resolution at the C level,
558 since that's the best that any real-world system supports now.
559 But they are picosecond-resolution at the Lisp level, as that's
560 easy, and leaves room for future OS improvements.
561
562 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
563 (LIBES): Use it.
564
565 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
566 Don't get current time unless it's needed.
567
568 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
569 now provides it if it's absent.
570 (start_atimer): Port to higher-res time stamps.
571 Check for time stamp overflow. Don't get current time more
572 often than is needed.
573
574 * buffer.h (struct buffer): Buffer modtime now has high resolution.
575 Include systime.h, not time.h.
576 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
577
578 * dired.c: Include stat-time.h.
579 (Ffile-attributes): File times now have higher resolution.
580
581 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
582 (struct image): Timestamp now has higher resolution.
583
584 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
585 has at least microseconds now. All uses removed.
586 (update_frame, update_single_window, update_window, update_frame_1)
587 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
588
589 * editfns.c (time_overflow): Now extern.
590 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
591 (float-time, Fformat_time_string, Fcurrent_time_string)
592 (Fcurrent_time_zone): Accept and generate higher-resolution
593 time stamps.
594 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
595 (decode_time_components, lisp_seconds_argument): New functions.
596 (make_time): Now static.
597 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
598 Report an error if the time is invalid, rather than having the caller
599 do that.
600
601 * fileio.c: Include <stat-time.h>
602 (Fcopy_file): Copy higher-resolution time stamps.
603 Prefer to set the time stamp via a file descriptor if that works.
604 (Fset_file_times, Finsert_file_contents, Fwrite_region)
605 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
606 (Fvisited_file_modtime, Fset_visited_file_modtime):
607 Support higher-resolution time stamps.
608
609 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
610
611 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
612
613 * image.c (prepare_image_for_display, clear_image_cache)
614 (lookup_image): Port to higer-resolution time stamps.
615
616 * keyboard.c (start_polling, bind_polling_period):
617 Check for time stamp overflow.
618 (read_char, kbd_buffer_get_event, timer_start_idle)
619 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
620 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
621 Port to higher-resolution time stamps. Do not assume time_t is signed.
622 (decode_timer): New function. Timers are now vectors of length 9,
623 not 8, to accommodate the picosecond component.
624 (timer_check_2): Use it.
625
626 * nsterm.m (select_timeout, timeval_subtract): Remove.
627 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
628 as they're a bit more accurate and handle overflow better.
629 (ns_select): Change prototype to be compatible with pselect.
630 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
631 * nsterm.h (ns_select): Adjust prototype.
632
633 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
634 us-resolution time stamps.
635 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
636
637 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
638
639 * lisp.h (time_overflow): New decl.
640 (wait_reading_process_output): First arg is now intmax_t, not int,
641 to accommodate larger waits.
642
643 * process.h (struct Lisp_Process.read_output_delay):
644 Now counts nanoseconds, not microseconds.
645 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
646 EMACS_HAS_USECS.
647 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
648 (wait_reading_process_output):
649 Port to ns-resolution time stamps.
650 (Faccept_process_output, wait_reading_process_output):
651 Check for time stamp overflow. Do not assume time_t is signed.
652 (select_wrapper): Remove; we now use pselect.
653 (Fprocess_attributes): Now generates ns-resolution time stamps.
654
655 * sysdep.c: Include utimens.h. Don't include utime.h
656 or worry about struct utimbuf; gnulib does that for us now.
657 (gettimeofday): Remove; gnulib provides a substitute.
658 (make_timeval): New function.
659 (set_file_times): Now sets ns-resolution time stamps.
660 New arg FD; all uses changed.
661 (time_from_jiffies, ltime_from_jiffies, get_up_time)
662 (system_process_attributes):
663 Now returns ns-resolution time stamp. All uses changed.
664 Check for time stamp overflow.
665
666 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
667 provides a substitute now.
668
669 * systime.h: Include timespec.h rather than sys/time.h and time.h,
670 since it guarantees struct timespec.
671 (EMACS_TIME): Now struct timespec, so that we can support
672 ns-resolution time stamps.
673 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
674 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
675 (EMACS_USECS): Remove.
676 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
677 so multiply the arg by 1000 before storing it.
678 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
679 New macros.
680 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
681 Port to ns-resolution time stamps.
682 (EMACS_TIME_NEG_P): Remove; replaced by....
683 (EMACS_TIME_SIGN): New macro.
684 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
685 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
686 (set_file_times, make_time, lisp_time_argument): Adjust signature.
687 (make_timeval, make_lisp_time, decode_time_components): New decls.
688 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
689 that it mishandled time_t overflow. You can't compare by subtracting!
690 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
691 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
692
693 * term.c: Include <sys/time.h>.
694 (timeval_to_Time): New function, for proper overflow wraparound.
695 (term_mouse_position, term_mouse_click): Use it.
696
697 * undo.c (record_first_change): Support higher-resolution time stamps
698 in the undo buffer.
699 (Fprimitive_undo): Use them when restoring time stamps.
700
701 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
702 (w32_get_internal_run_time):
703 Port to higher-resolution Emacs time stamps.
704 (ltime): Now accepts single 64-bit integer, as that's more convenient
705 for callers.
706
707 * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
708
709 * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
710 for compatibility with pselect. Support ns-resolution time stamps.
711
712 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
713
714 * xselect.c (wait_for_property_change, x_get_foreign_selection):
715 Check for time stamp overflow, and support ns-resolution time stamps.
716
717 * xterm.c: Don't include sys/time.h; gnulib does that for us now.
718 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
719 (timeval_subtract): Remove; no longer needed.
720 (XTflash, XTring_bell, x_wait_for_event):
721 Port to ns-resolution time stamps. Don't assume time_t is signed.
722
b6a92dfe
CY
7232012-06-22 Chong Yidong <cyd@gnu.org>
724
725 * xdisp.c (x_consider_frame_title): Revert last change.
726
d251c37c
EZ
7272012-06-22 Eli Zaretskii <eliz@gnu.org>
728
729 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
730 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
731 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
732 staticidx goes up to 1597 out of 1600 = 0x640.)
733
f10deafb
PE
7342012-06-20 Paul Eggert <eggert@cs.ucla.edu>
735
736 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
737 Otherwise, the umask might be mistakenly 0 while handling input signals.
738
ec6de1e2
SM
7392012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
740
741 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
742
28be1ada
DA
7432012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
744
745 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
746 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
747 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
748 access to `contents' member of Lisp_Vector objects with AREF and ASET
749 where appropriate.
750
c6bf3022
CY
7512012-06-19 Chong Yidong <cyd@gnu.org>
752
753 * frame.c (delete_frame): When selecting a frame on a different
754 text terminal, do not alter the terminal's top-frame.
755
756 * xdisp.c (format_mode_line_unwind_data): Record the target
757 frame's selected window and its terminal's top-frame.
758 (unwind_format_mode_line): Restore them.
759 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
760 Callers changed.
761 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
762 since tty frames can be explicitly named.
763 (prepare_menu_bars): Likewise.
764
765 * term.c (Ftty_top_frame): New function.
766
defd4196
PE
7672012-06-18 Paul Eggert <eggert@cs.ucla.edu>
768
769 Port byte-code-meter to modern targets.
770 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
771 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
8b5257e1 772 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
defd4196
PE
773 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
774 (METER_1, METER_2): Simplify.
775
1053a871
SM
7762012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
777
778 * data.c (Fdefalias): Return `symbol' (bug#11686).
779
b7e8d081
MR
7802012-06-18 Martin Rudalics <rudalics@gmx.at>
781
782 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
1053a871
SM
783 gets killed during executing of this function (Bug#11665).
784 Try to always return Qt when the buffer has been actually killed.
b7e8d081
MR
785 (Vkill_buffer_query_functions): In doc-string say that functions
786 run by this hook should not change the current buffer.
787
7ea2b339
PE
7882012-06-18 Paul Eggert <eggert@cs.ucla.edu>
789
790 Fix recently-introduced process.c problems found by static checking.
791 * process.c (write_queue_push, write_queue_pop, send_process):
792 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
793 (write_queue_pop): Fix pointer signedness problem.
794 (send_process): Remove unused local.
795
96a313a1
CY
7962012-06-17 Chong Yidong <cyd@gnu.org>
797
798 * xdisp.c (redisplay_internal): No need to redisplay terminal
799 frames that are not on top.
800
20ca2e94
TN
8012012-06-17 Troels Nielsen <bn.troels@gmail.com>
802
803 * process.c (make_process): Initialize write_queue.
804 (write_queue_push, write_queue_pop): New functions.
805 (send_process): Use them to maintain correct ordering of process
806 writes (Bug#10815).
807
9a900ca9
PE
8082012-06-17 Paul Eggert <eggert@cs.ucla.edu>
809
310fbfa8
PE
810 * lisp.h (eassert): Assume C89 or later.
811 This removes the need for CHECK.
812 (CHECK): Remove. Its comments about always evaluating its
813 argument were confusing, as 'eassert' typically does not evaluate
814 its argument.
815
27bb1ca4
PE
816 * coding.c (produce_chars): Use ptrdiff_t, not int.
817
9a900ca9
PE
818 * xterm.c (x_draw_underwave): Check for integer overflow.
819 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
820
41b7f8bc 8212012-06-17 Jan Djärv <jan.h.d@swipnet.se>
50a93863
JD
822
823 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
824 referenced (Bug#11583).
825
9b0e3eba
AA
8262012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
827
828 Implement wave-style variant of underlining.
829 * dispextern.h (face_underline_type): New enum.
830 (face): Add field for underline type.
831 * nsterm.m (ns_draw_underwave): New function.
832 (ns_draw_text_decoration): Use it.
833 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
834 New functions.
835 (x_draw_glyph_string): Use them.
836 * xfaces.c (Qline, Qwave): New Lisp objects.
837 (check_lface_attrs, merge_face_ref)
1053a871
SM
838 (Finternal_set_lisp_face_attribute, realize_x_face):
839 Handle wave-style underline face attributes.
9b0e3eba
AA
840 * xterm.c (x_draw_underwave): New function.
841 (x_draw_glyph_string): Use it.
842
0fb52f11
JB
8432012-06-16 Juanma Barranquero <lekktu@gmail.com>
844
845 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
846 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
847 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
848 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
849 ($(BLD)/w32select.$(O)): Update dependencies.
850
e5560ff7
AS
8512012-06-16 Andreas Schwab <schwab@linux-m68k.org>
852
853 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
854 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
855 * character.c (_fetch_multibyte_char_p): Remove.
856 * alloc.c: Include "character.h" before "buffer.h".
857 * bidi.c: Likewise.
858 * buffer.c: Likewise.
859 * bytecode.c: Likewise.
860 * callint.c: Likewise.
861 * callproc.c: Likewise.
862 * casefiddle.c: Likewise.
863 * casetab.c: Likewise.
864 * category.c: Likewise.
865 * cmds.c: Likewise.
866 * coding.c: Likewise.
867 * composite.c: Likewise.
868 * dired.c: Likewise.
869 * dispnew.c: Likewise.
870 * doc.c: Likewise.
871 * dosfns.c: Likewise.
872 * editfns.c: Likewise.
873 * emacs.c: Likewise.
874 * fileio.c: Likewise.
875 * filelock.c: Likewise.
876 * font.c: Likewise.
877 * fontset.c: Likewise.
878 * fringe.c: Likewise.
879 * indent.c: Likewise.
880 * insdel.c: Likewise.
881 * intervals.c: Likewise.
882 * keyboard.c: Likewise.
883 * keymap.c: Likewise.
884 * lread.c: Likewise.
885 * macros.c: Likewise.
886 * marker.c: Likewise.
887 * minibuf.c: Likewise.
888 * nsfns.m: Likewise.
889 * nsmenu.m: Likewise.
890 * print.c: Likewise.
891 * process.c: Likewise.
892 * regex.c: Likewise.
893 * region-cache.c: Likewise.
894 * search.c: Likewise.
895 * syntax.c: Likewise.
896 * term.c: Likewise.
897 * textprop.c: Likewise.
898 * undo.c: Likewise.
899 * unexsol.c: Likewise.
900 * w16select.c: Likewise.
901 * w32fns.c: Likewise.
902 * w32menu.c: Likewise.
903 * window.c: Likewise.
904 * xdisp.c: Likewise.
905 * xfns.c: Likewise.
906 * xmenu.c: Likewise.
907 * xml.c: Likewise.
908 * xselect.c: Likewise.
909
2f07e6af
EZ
9102012-06-16 Eli Zaretskii <eliz@gnu.org>
911
1053a871
SM
912 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
913 If all the glyphs of the glyph row came from strings, and we have no
2f07e6af 914 cursor positioning clues, put the cursor on the first glyph of the
1097afe4
EZ
915 row.
916 (handle_face_prop): Use chunk-relative overlay string index when
917 indexing into it->string_overlays array. (Bug#11653)
946fdb73
EZ
918 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
919 the rightmost. (Bug#11720)
2f07e6af 920
29b83cec
AS
9212012-06-16 Andreas Schwab <schwab@linux-m68k.org>
922
923 * category.h (CHAR_HAS_CATEGORY): Define as inline.
924 (CATEGORY_MEMBER): Enforce 1/0 value.
925 * category.c (_temp_category_set): Remove.
926
4c5501e9
EZ
9272012-06-16 Eli Zaretskii <eliz@gnu.org>
928
929 * window.c (Fdelete_other_windows_internal)
930 (Fdelete_window_internal): Don't access frame's mouse highlight
931 info of the initial frame. (Bug#11677)
932
2b570124
PE
9332012-06-14 Paul Eggert <eggert@cs.ucla.edu>
934
e93864f9
PE
935 * .gdbinit (xgetint): Fix recently-introduced paren typo.
936 Assume USE_2_TAGS_FOR_INTS.
937 (xreload): Adjust $tagmask width to match recent lisp.h change.
938
2b570124
PE
939 Simplify lisp.h in minor ways that should not affect code.
940 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
941 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
942 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
943 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
944 (INTTYPEBITS): New macro, for clarity.
945 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
1053a871
SM
946 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
947 Simplify now that USE_LSB_TAG is always defined.
2b570124
PE
948 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
949 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
950
81755f69
JB
9512012-06-13 Juanma Barranquero <lekktu@gmail.com>
952
953 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
954
16192a57
GM
9552012-06-13 Glenn Morris <rgm@gnu.org>
956
957 * s/bsd-common.h (BSD4_3):
958 * s/usg5-4-common.h (USG5_4): No longer define; unused.
959
646b5f55
AS
9602012-06-13 Andreas Schwab <schwab@linux-m68k.org>
961
962 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
963 instead of union.
964 (XLI, XIL): Define.
1053a871
SM
965 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
966 Use them.
967 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
646b5f55 968 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
1053a871 969 * alloc.c (widen_to_Lisp_Object): Remove.
646b5f55
AS
970 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
971 * frame.c (delete_frame): Remove outdated comment.
972 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
973 USE_LISP_UNION_TYPE.
974 (Fw32_unregister_hot_key): Likewise.
975 (Fw32_toggle_lock_key): Likewise.
976 * w32menu.c (add_menu_item): Likewise.
977 (w32_menu_display_help): Use XIL instead of checking
978 USE_LISP_UNION_TYPE.
979 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
980 (init_heap): Likewise.
981 * w32term.c (w32_read_socket): Update comment.
982
1d3823c9
GM
9832012-06-13 Glenn Morris <rgm@gnu.org>
984
c62ff706
GM
985 * s/usg5-4-common.h, src/s/unixware.h:
986 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
987
1d3823c9
GM
988 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
989
bfe3e0a2
PE
9902012-06-13 Paul Eggert <eggert@cs.ucla.edu>
991
992 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
993 * alloc.c (make_number) [!defined make_number]:
994 Remove, as lisp.h always defines this now.
995 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
996 (roundup_size): Verify that it is a power of 2.
997 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
998 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
999 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
1000 -DUSE_LSB_TAG=0, to override the automatically-selected default.
1001 USE_LSB_TAG now is always defined to be either 0 or 1.
1002 All uses changed.
1003 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
1004 code works fine either way, and efficiency is not a concern here,
1005 as the union type is for debugging, not for production.
1006 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
1007 Use an inline function on all platforms when using the union type,
1008 since this is simpler and 'static inline' can be used portably
1009 within Emacs now.
1010 (LISP_INITIALLY_ZERO): New macro.
1011 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
1012 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
1013
45fa9c0f
GM
10142012-06-12 Glenn Morris <rgm@gnu.org>
1015
b4492cba
GM
1016 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
1017
1018 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
0d369729 1019
45fa9c0f
GM
1020 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
1021 Move BROKEN_SIGIO to configure.
1022
1023 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
1024 Move NO_TERMIO to configure.
1025
0e25d334
CY
10262012-06-12 Chong Yidong <cyd@gnu.org>
1027
1028 * image.c (imagemagick_load_image): Use MagickFlattenImage if
1029 MagickMergeImageLayers is undefined. Use pixel pusher loop if
1030 MagickExportImagePixels is undefined.
1031
43682bb6
PE
10322012-06-12 Paul Eggert <eggert@cs.ucla.edu>
1033
1034 * image.c (imagemagick_load_image): Remove unused label.
1035
a9be7d2b
GM
10362012-06-11 Glenn Morris <rgm@gnu.org>
1037
1038 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
1039 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
1040 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
1041 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
1042
3017f87f
SM
10432012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
1044
1045 * alloc.c (make_byte_code): New function.
1046 (Fmake_byte_code): Use it. Don't purify here.
1047 * lread.c (read1): Use it as well to avoid extra allocation.
1048
1b9b4cf4
CY
10492012-06-11 Chong Yidong <cyd@gnu.org>
1050
1051 * image.c (imagemagick_load_image): Implement transparency.
1052
95988fcf
AS
10532012-06-10 Andreas Schwab <schwab@linux-m68k.org>
1054
1055 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
1056 account for preceding backslashes. (Bug#11663)
1057
cd4eb164
CY
10582012-06-09 Chong Yidong <cyd@gnu.org>
1059
1060 * term.c: Support italics in capable terminals (Bug#9652).
1061 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
1062 (turn_on_face): Output using TS_enter_italic_mode if available.
1063 Don't handle unused blinking and alt-charset cases.
1064 (turn_off_face): Handle italic case; discard unused tty_blinking_p
1065 and tty_alt_charset_p cases.
1066 (tty_capable_p, init_tty): Support italics.
1067
1068 * termchar.h (struct tty_display_info): Add field for italics.
1069 Remove unused blink field.
1070
1071 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
1072 Handle slant.
1073
1074 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
1075 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
1076 tty_alt_charset_p. Add tty_italic_p.
1077
ff88beb8
MA
10782012-06-09 Michael Albinus <michael.albinus@gmx.de>
1079
1080 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
1081 dbus_type_is_basic if available.
1082 (xd_extract_signed, xd_extract_unsigned): Rename from
1083 extract_signed and extract_unsigned, respectively. Adapt callers.
1084
44286096
CY
10852012-06-09 Chong Yidong <cyd@gnu.org>
1086
1682701f
CY
1087 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
1088
44286096
CY
1089 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
1090 case (Bug#9752).
1091
d86feb17
PE
10922012-06-08 Paul Eggert <eggert@cs.ucla.edu>
1093
1094 * xdisp.c (vmessage): Treat frame message as multibyte.
1095 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
1096 would generate the diagnostic "Making \302\247 buffer-local while
1097 let-bound!".
1098
d5c20fe8
EZ
10992012-06-08 Eli Zaretskii <eliz@gnu.org>
1100
1101 * dispnew.c (showing_window_margins_p): Undo last change, which
1102 was done due to an inadvertent commit.
1103 (adjust_frame_glyphs_for_frame_redisplay): Do call
1104 showing_window_margins_p.
1105
513749ee
SM
11062012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
1107
1108 * eval.c (Fmake_var_non_special): New primitive.
1109 (syms_of_eval): Defsubr it.
1110 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
1111
d4a8f5c1
JB
11122012-06-08 Juanma Barranquero <lekktu@gmail.com>
1113
1114 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
1115 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
1116
8bbbc977
EZ
11172012-06-08 Eli Zaretskii <eliz@gnu.org>
1118
1119 * alloc.c (allocate_vectorlike): Fix last change.
1120
f3372c87
DA
11212012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
1122
1123 Block-based vector allocation of small vectors.
1124 * lisp.h (struct vectorlike_header): New field `nbytes',
1125 adjust comment accordingly.
1126 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
1127 to denote vector blocks. Adjust users (live_vector_p,
1128 mark_maybe_pointer, valid_lisp_object_p) accordingly.
1129 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
1130 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES),
1131 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX),
1132 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST),
1133 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
1134 (roundup_size): New constant.
1135 (struct vector_block): New data type.
1136 (vector_blocks, vector_free_lists, zero_vector): New variables.
513749ee 1137 (all_vectors): Rename to `large_vectors'.
f3372c87
DA
1138 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
1139 (sweep_vectors): New functions.
1140 (allocate_vectorlike): Return `zero_vector' as the only vector of
1141 0 items. Allocate new vector from block if vector size is less than
1142 or equal to VBLOCK_BYTES_MAX.
1143 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
1144 (init_alloc_once): Add call to init_vectors.
1145
4f18a4ed
SM
11462012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
1147
1148 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
1149
86f158bc
PE
11502012-06-07 Paul Eggert <eggert@cs.ucla.edu>
1151
1152 * doprnt.c (doprnt): Truncate multibyte char correctly.
1153 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
1154 would mishandle a string argument "Xc" if X was a multibyte
1155 character of length 2: it would truncate after X's first byte
1156 rather than including all of X.
1157
c5cfcbe0
CY
11582012-06-06 Chong Yidong <cyd@gnu.org>
1159
1160 * buffer.c (word_wrap): Doc fix.
1161
c05cf390
PE
11622012-06-04 Paul Eggert <eggert@cs.ucla.edu>
1163
1164 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
1165
0c3461de
GM
11662012-06-03 Glenn Morris <rgm@gnu.org>
1167
1168 * xdisp.c (tool-bar-style): Doc fix.
1169
c71232db
UM
11702012-06-03 Ulrich Müller <ulm@gentoo.org>
1171
1172 * Makefile.in (PAXCTL): Define.
1173 (temacs$(EXEEXT)): Disable memory randomization for the temacs
1174 binary via PaX flags if the paxctl utility is available.
1175 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
1176 Restore PaX flags to their default. (Bug#11398)
1177
383f7350
CY
11782012-06-03 Chong Yidong <cyd@gnu.org>
1179
1180 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
1181 buffer (Bug#11226).
1182
5f2c76c6
CY
11832012-06-03 Chong Yidong <cyd@gnu.org>
1184
1185 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
1186 (note_mode_line_or_margin_highlight): If there is no help echo,
1187 use mode-line-default-help-echo. Handle the case where the mouse
1188 position is past the end of the mode line string.
1189
1190 * buffer.c (buffer_local_value_1): New function, split from
1191 Fbuffer_local_value; can return Qunbound.
1192 (Fbuffer_local_value): Use it.
1193 (Vmode_line_format): Docstring tweaks.
1194
773d47f6
PE
11952012-06-02 Paul Eggert <eggert@cs.ucla.edu>
1196
1197 * sysdep.c (system_process_attributes): Improve comment.
1198
f2d6a3df
SM
11992012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
1200
1201 * keyboard.c: Export real-this-command to Elisp.
1202 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
1203 and DEFVAR it. Update all users.
1204
63810350
PE
12052012-06-02 Paul Eggert <eggert@cs.ucla.edu>
1206
7bd5c1f4
PE
1207 * minibuf.c (Fassoc_string): Remove duplicate declaration.
1208
63810350
PE
1209 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
1210 Convert pctcpu and pctmem to Lisp float properly.
1211 Let the compiler fold better, as 100.0/0x8000 is exact.
1212
a2821611
AS
12132012-06-02 Andreas Schwab <schwab@linux-m68k.org>
1214
1215 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
1216 cons_block.
1217
5fceba1d
PE
12182012-06-01 Paul Eggert <eggert@cs.ucla.edu>
1219
1220 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
1221
c98ff5dd
DA
12222012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
1223
1224 For a 'struct window', replace some Lisp_Object fields to
1225 bitfields where appropriate, remove unused fields.
1226 * window.h (struct window): Remove unused 'last_mark_x' and
1227 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
1228 change it's type from Lisp_Object to bitfield.
1229 Change type of 'force_start', 'optional_new_start',
1230 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
1231 fields from Lisp_Object to bitfield. Adjust users accordingly.
1232
ca34e0be
PE
12332012-05-31 Paul Eggert <eggert@cs.ucla.edu>
1234
1235 Pacify gcc -Wdouble-precision when using Xaw.
1236 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
1237 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
1238 Use 'float' consistently, rather than 'float' in most places
1239 and 'double' in a couple of places.
1240
efc00ab1 12412012-05-31 Eli Zaretskii <eliz@gnu.org>
d5fd2c54
EZ
1242
1243 * xdisp.c (handle_stop): Detect whether we have overlay strings
1244 loaded by testing it->current.overlay_string_index to be
1245 non-negative, instead of checking whether n_overlay_strings is
1246 positive. (Bug#11587)
1247
efc00ab1 12482012-05-31 Chong Yidong <cyd@gnu.org>
353c87f6
CY
1249
1250 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
1251
1252 * doc.c (Fsubstitute_command_keys): Doc fix.
1253
efc00ab1 12542012-05-31 Eli Zaretskii <eliz@gnu.org>
a02ae4e5
EZ
1255
1256 * search.c (search_buffer): Remove calls to
1257 r_alloc_inhibit_buffer_relocation, as it is now called by
1258 maybe_unify_char, which was the cause of relocation of buffer text
1259 in bug#11519.
1260
efc00ab1 12612012-05-31 Eli Zaretskii <eliz@gnu.org>
291d430f
EZ
1262
1263 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
1264 for the duration of call to load_charset, to avoid problems with
1265 callers of maybe_unify_char that access buffer text through C
1266 pointers.
1267
1268 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
1269 decrement the inhibition flag, instead of just setting or
1270 resetting it.
1271
ba93a187
PE
12722012-05-31 Paul Eggert <eggert@cs.ucla.edu>
1273
1274 Remove obsolete '#define static' cruft.
1275 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
1276 This #undef was "temporary" in 2000; it is no longer needed
1277 now that '#define static' has gone away.
1278 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
1279 (gray_bitmap_bits): Remove; no longer needed.
1280 All uses replaced with definiens.
1281 * xterm.c: Include "bitmaps/gray.xbm".
1282
9e4bf381
PE
12832012-05-30 Paul Eggert <eggert@cs.ucla.edu>
1284
1285 Clean up __executable_start, monstartup when --enable-profiling.
1286 The following changes affect the code only when profiling.
1287 * dispnew.c (__executable_start): Rename from safe_bcopy.
1288 Define only on platforms that need it.
1289 * emacs.c: Include <sys/gmon.h> when profiling.
1290 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
1291 (__executable_start): Remove decl, since lisp.h does it now.
1292 (safe_bcopy): Remove decl; no longer has that name.
1293 (main): Coalesce #if into single bit of code, for simplicity.
1294 Cast pointers to uintptr_t, since standard libraries want integers
1295 and not pointers.
1296 * lisp.h (__executable_start): New decl.
1297
32d72c2f
GM
12982012-05-31 Glenn Morris <rgm@gnu.org>
1299
1300 * image.c (Fimagemagick_types): Doc fix.
1301
baac5bc7
JM
13022012-05-30 Jim Meyering <meyering@redhat.com>
1303
1304 * callproc.c (Fcall_process_region): Include directory component
1305 in mkstemp error message (Bug#11586).
1306
72cb32cf
PE
13072012-05-30 Paul Eggert <eggert@cs.ucla.edu>
1308
1309 * alloc.c, lisp.h (make_pure_vector): Now static.
1310
61b108cc
SM
13112012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
1312
1313 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
1314 Move to byte-run.el.
1315 (Fautoload): Do the hash-doc more carefully.
1316 * data.c (Fdefalias): Purify definition, except for keymaps.
1317 (Qdefun): Move from eval.c.
1318 * lisp.h (Qdefun): Remove.
1319 * lread.c (read1): Tiny simplification.
1320
471fe23d
TN
13212012-05-29 Troels Nielsen <bn.troels@gmail.com>
1322
934f3f58 1323 Do not create empty overlays with the evaporate property (Bug#9642).
471fe23d
TN
1324 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
1325 Bug#9642, but explicitly check that the buffer the overlay would
1326 be moved to is live and rearrange lines to make sure that errors
1327 will not put the overlay in an inconsistent state.
1328 (Fdelete_overlay): Cosmetics.
1329
85d0efd1
EZ
13302012-05-28 Eli Zaretskii <eliz@gnu.org>
1331
1332 * w32term.c (my_bring_window_to_top): New function.
1333 (x_raise_frame): Use handle returned by DeferWindowPos, which
61b108cc
SM
1334 could be different from the original one.
1335 Call my_bring_window_to_top instead of my_set_foreground_window.
85d0efd1
EZ
1336 (Bug#11513)
1337
1338 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
1339 by calling BringWindowToTop.
1340
1341 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
1342 (WM_EMACS_END): Increase by one.
1343
da92a98c
PE
13442012-05-28 Paul Eggert <eggert@cs.ucla.edu>
1345
1346 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
1347 This avoids undefined behavior that might cause the eassert
1348 to not catch an out-of-range value.
1349
74d1f848
JB
13502012-05-28 Juanma Barranquero <lekktu@gmail.com>
1351
1352 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
1353 Update dependencies.
1354
9e1a06fc
EZ
13552012-05-27 Eli Zaretskii <eliz@gnu.org>
1356
1357 * bidi.c (bidi_mirror_char): Fix last change.
1358
f3dd7312
AS
13592012-05-27 Andreas Schwab <schwab@linux-m68k.org>
1360
1361 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
1362 when referring to sectname field in printf format.
1363
81899c91
PE
13642012-05-27 Paul Eggert <eggert@cs.ucla.edu>
1365
57b81a9f
PE
1366 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
1367 Only r_alloc_inhibit_buffer_relocation needed to be added;
1368 the others were already declared.
1369
81899c91
PE
1370 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
1371 before checking whether it's out of range. Put the check inside
1372 eassert. See
1373 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
1374
33017faf 13752012-05-27 Ken Brown <kbrown@cornell.edu>
2f9b9adb
KB
1376
1377 * callproc.c (Fcall_process): Restore a line that was accidentally
1378 commented out in the 2011-02-13 change (bug#11547).
1379
33017faf 13802012-05-27 Eli Zaretskii <eliz@gnu.org>
52c55cc7
EZ
1381
1382 * lisp.h [REL_ALLOC]: Add prototypes for external functions
1383 defined on ralloc.c.
1384
1385 * buffer.c [REL_ALLOC]: Remove prototypes of
1386 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
1387 they are now on lisp.h.
1388
1389 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
1390
1391 * search.c (search_buffer): Use it to inhibit relocation of buffer
1392 text while re_search_2 is doing its job, because re_search_2 is
1393 passed C pointers to buffer text. (Bug#11519)
1394
23415acf
EZ
1395 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
1396 Update value to 24.
1397
44e27368
EZ
1398 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
1399 state after an additional call to move_it_in_display_line_to, keep
1400 the values of it->max_ascent and it->max_descent found for the
1401 entire line.
1402 (pos_visible_p): Revert the comparison against bottom_y to what it
1403 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
1404 (Bug#11464)
1405
c1892f11
PE
14062012-05-26 Paul Eggert <eggert@cs.ucla.edu>
1407
1408 Fix coding-related core dumps with gcc -ftrapv.
1409 The code was computing A - B, where A and B are pointers, and B is
1410 random garbage. This can lead to core dumps on platforms that
1411 have special pointer registers, and it also leads to core dumps on
1412 x86-64 when compiled with gcc -ftrapv. The fix is to compute
1413 A - B only when B is initialized properly.
1414 * coding.c (coding_set_source, coding_set_destination): Return void.
1415 (coding_change_source, coding_change_destinations): New functions,
1416 with the old behaviors of coding_set_source and coding_set_destination.
1417 All callers that need an offset changed to use these new functions.
1418
eb7afdad
GM
14192012-05-26 Glenn Morris <rgm@gnu.org>
1420
1421 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
1422
f12fdf02
EZ
14232012-05-26 Eli Zaretskii <eliz@gnu.org>
1424
53a63be6 1425 Extend mouse support on W32 text-mode console.
61b108cc
SM
1426 * xdisp.c (draw_row_with_mouse_face):
1427 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
eb3f6f01 1428
eb3f6f01 1429 * w32console.c: Include window.h.
61b108cc
SM
1430 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
1431 New functions.
eb3f6f01
EZ
1432 (initialize_w32_display): Initialize mouse-highlight data.
1433
53a63be6
EZ
1434 * w32inevt.c: Include termchar.h and window.h.
1435 (do_mouse_event): Support mouse-autoselect-window. When the mouse
1436 moves, call note_mouse_highlight. If help_echo changed, call
1437 gen_help_event to produce help-echo message in the echo area.
1438 Call clear_mouse_face if mouse_face_hidden is set in the mouse
1439 highlight info.
1440
4cfd81f6
PE
14412012-05-26 Paul Eggert <eggert@cs.ucla.edu>
1442
1443 * lread.c (read1): Simplify slightly to avoid an overflow warning
1444 with GCC 4.7.0 on x86-64.
1445
4446092a
EZ
14462012-05-26 Eli Zaretskii <eliz@gnu.org>
1447
1448 * bidi.c (bidi_mirror_char): Revert last change: an int is
1449 definitely wide enough here.
1450
42b2a986 14512012-05-25 Paul Eggert <eggert@cs.ucla.edu>
3164aeac 1452
42b2a986 1453 Fix integer width and related bugs (Bug#9874).
eb106a49 1454 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
d311d28c
PE
1455 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
1456 (string_bytes, check_sblock, allocate_string_data):
1457 (compact_small_strings, Fmake_bool_vector, make_string)
1458 (make_unibyte_string, make_multibyte_string)
1459 (make_string_from_bytes, make_specified_string)
1460 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
1461 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
1462 (mark_vectorlike):
1463 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1464 (allocate_pseudovector):
1465 Use int, not EMACS_INT, where int is wide enough.
1466 (inhibit_garbage_collection, Fgarbage_collect):
1467 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1468 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
1469 int might not be wide enough.
1470 (bidi_cache_search, bidi_cache_find, bidi_init_it)
1471 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
1472 (bidi_at_paragraph_end, bidi_find_paragraph_start)
1473 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
1474 (bidi_level_of_next_char, bidi_move_to_visually_next):
1475 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1476 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
1477 (Fkill_buffer, Fset_buffer_major_mode)
1478 (advance_to_char_boundary, Fbuffer_swap_text)
1479 (Fset_buffer_multibyte, overlays_at, overlays_in)
1480 (overlay_touches_p, struct sortvec, record_overlay_string)
1481 (overlay_strings, recenter_overlay_lists)
1482 (adjust_overlays_for_insert, adjust_overlays_for_delete)
1483 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
1484 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
1485 (Foverlay_recenter, last_overlay_modification_hooks_used)
1486 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
1487 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
977b0e45
PE
1488 (validate_region): Omit unnecessary test for b <= e,
1489 since that's guaranteed by the previous test.
d311d28c
PE
1490 (adjust_overlays_for_delete): Avoid pos + length overflow.
1491 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
1492 (report_overlay_modification):
1493 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1494 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
1495 Omit pointer cast, which isn't needed anyway, and doesn't work
1496 after the EMACS_INT -> ptrdiff_t change.
02481186 1497 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
d311d28c
PE
1498 * buffer.h: Adjust decls to match defn changes elsewhere.
1499 (struct buffer_text, struct buffer):
1500 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1501 Use EMACS_INT, not int, where int might not be wide enough.
39b5db3b
PE
1502 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
1503 not int, to avoid needless 32-bit limit on 64-bit hosts.
1504 (exec_byte_code): Use tighter memory-full test, one that checks
1505 for alloca overflow. Don't compute the address of the object just
1506 before an array, as that's not portable. Use EMACS_INT, not
1507 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
d311d28c
PE
1508 * callint.c (Fcall_interactively):
1509 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1510 * callproc.c (call_process_kill, Fcall_process):
1511 Don't assume pid_t fits into an Emacs fixnum.
1512 (call_process_cleanup, Fcall_process, child_setup):
1513 Don't assume pid_t fits into int.
1514 (call_process_cleanup, Fcall_process, delete_temp_file)
1515 (Fcall_process_region):
1516 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1517 (Fcall_process): Simplify handling of volatile integers.
1518 Use int, not EMACS_INT, where int will do.
1519 * casefiddle.c (casify_object, casify_region, operate_on_word)
1520 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
1521 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1522 (casify_object): Avoid integer overflow when overallocating buffer.
1523 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
45c2afd6 1524 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
d311d28c
PE
1525 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
1526 * category.h (CATEGORYP): Don't assume arg is nonnegative.
1527 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
1528 integers are now checked earlier. All uses replaced with XINT.
1529 (ccl_driver):
1530 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1531 For CCL_MapSingle, check that content and value are in int range.
c801946a
PE
1532 (ccl_driver, Fregister_code_conversion_map):
1533 Check that Vcode_version_map_vector is a vector.
d311d28c
PE
1534 (resolve_symbol_ccl_program): Check that vector header is in range.
1535 Always copy the vector, so that we can check its contents reliably
1536 now rather than having to recheck each instruction as it's being
1537 executed. Check that vector words fit in 'int'.
1538 (ccl_get_compiled_code, Fregister_ccl_program)
1539 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
1540 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
1541 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
1542 contents are in range.
1543 (Fccl_execute_on_string): Check that status is in range.
1544 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
1545 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
1546 Accept and return EMACS_INT, not int, because callers can pass values
1547 out of 'int' range.
1548 (c_string_width, strwidth, lisp_string_width, chars_in_text)
1549 (multibyte_chars_in_text, parse_str_as_multibyte)
1550 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
1551 (str_as_unibyte, str_to_unibyte, string_count_byte8)
1552 (string_escape_byte8, Fget_byte):
1553 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
a14e1568 1554 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
d311d28c
PE
1555 avoid mishandling large integers.
1556 * character.h: Adjust decls to match defn changes elsewhere.
1557 * charset.c (load_charset_map_from_file, find_charsets_in_text)
1558 (Ffind_charset_region):
1559 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1560 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
1561 (load_charset_map_from_vector, Fdefine_charset_internal):
3c7649c1 1562 Don't assume fixnum fits in int.
d311d28c
PE
1563 (load_charset_map_from_vector, Fmap_charset_chars):
1564 Remove now-unnecessary CHECK_NATNUMs.
1565 (Fdefine_charset_internal): Check ranges here, more carefully.
3c7649c1
PE
1566 Don't rely on undefined behavior with signed left shift overflow.
1567 Don't assume unsigned int fits into fixnum, or that fixnum fits
1568 into unsigned int. Don't require max_code to be a valid fixnum;
1569 that's not true for gb10830 4-byte on a 32-bit host. Allow
1570 invalid_code to be a cons, for the same reason. Require code_offset
1571 to be a character. Avoid int overflow if max_char is close
1572 to INT_MAX.
1573 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
1574 this is intended anyway and avoids some undefined behavior.
1575 (load_charset_map): Pass unsigned, not int, as 2nd arg of
1576 INDEX_TO_CODE_POINT, as that's what it expects.
1577 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
60ad3eab
PE
1578 * charset.h (DECODE_CHAR): Return int, not unsigned;
1579 this is what was intended anyway, and it avoids undefined behavior.
1580 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
1581 integer-overflow issues.
1582 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
1583 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
1584 where the argument is EMACS_INT, and this behavior is not intended.
d311d28c
PE
1585 * chartab.c (Fmake_char_table, Fset_char_table_range)
1586 (uniprop_get_decoder, uniprop_get_encoder):
1587 Don't assume fixnum fits in int.
1588 * cmds.c (move_point): New function, that does the gist of
1589 Fforward_char and Fbackward_char, but does so while checking
1590 for integer overflow more accurately.
c96e5d6a 1591 (Fforward_char, Fbackward_char): Use it.
d311d28c
PE
1592 (Fforward_line, Fend_of_line, internal_self_insert)
1593 (internal_self_insert):
1594 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1595 Fix a FIXME, by checking for integer overflow when calculating
1596 target_clm and actual_clm.
1597 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
8f50130c 1598 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
d311d28c
PE
1599 (ASSURE_DESTINATION, coding_alloc_by_realloc)
1600 (coding_alloc_by_making_gap, alloc_destination)
1601 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
1602 (encode_coding_utf_16, detect_coding_emacs_mule)
1603 (decode_coding_emacs_mule, encode_coding_emacs_mule)
1604 (detect_coding_iso_2022, decode_coding_iso_2022)
1605 (encode_invocation_designation, encode_designation_at_bol)
1606 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
1607 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
1608 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
1609 (encode_coding_ccl, encode_coding_raw_text)
1610 (detect_coding_charset, decode_coding_charset)
1611 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
1612 (produce_composition, produce_charset, produce_annotation)
1613 (decode_coding, handle_composition_annotation)
1614 (handle_charset_annotation, consume_chars, decode_coding_gap)
1615 (decode_coding_object, encode_coding_object, detect_coding_system)
1616 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
1617 (code_convert_region, code_convert_string)
8f50130c
PE
1618 (Fdefine_coding_system_internal)
1619 (coding_set_source, coding_set_destination):
d311d28c
PE
1620 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1621 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
1622 (Fdefine_coding_system_internal):
1623 Don't assume fixnums fit in int.
1624 (decode_coding_gap, decode_coding_object, encode_coding_object)
5895d7b9 1625 (Fread_coding_system, Fdetect_coding_region)
2c6a9faa
PE
1626 (Funencodable_char_position, Fcheck_coding_systems_region)
1627 (get_translation, handle_composition_annotation, consume_chars):
d311d28c 1628 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
977b0e45 1629 (consume_chars): Rewrite to not calculate an address outside buffer.
d311d28c 1630 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
7b09a37a 1631 Don't access memory outside of the args array.
d311d28c 1632 (Fdefine_coding_system_internal): Check for charset-id overflow.
47664caa
PE
1633 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
1634 result of ENCODE_CHAR.
d311d28c
PE
1635 * coding.h: Adjust decls to match defn changes elsewhere.
1636 (struct coding_system):
1637 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1638 * composite.c (get_composition_id, find_composition)
1639 (run_composition_function, update_compositions)
1640 (compose_text, composition_gstring_put_cache)
1641 (composition_gstring_p, composition_gstring_width)
1642 (fill_gstring_header, fill_gstring_body, autocmp_chars)
1643 (composition_compute_stop_pos, composition_reseat_it)
1644 (composition_update_it, struct position_record)
1645 (find_automatic_composition, composition_adjust_point)
1646 (Fcomposition_get_gstring, Ffind_composition_internal):
1647 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1648 (update_compositions):
1649 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1650 * composite.h: Adjust decls to match defn changes elsewhere.
1651 (struct composition):
1652 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1653 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
1654 Do not attempt to compute the address of the object just before a
1655 buffer; this is not portable.
1656 (Faref, Faset):
1657 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1658 (Faset): Use int, not EMACS_INT, where int is wide enough.
1659 (Fstring_to_number): Don't assume fixnums fit in int.
1660 (Frem): Don't assume arg is nonnegative.
1661 * dbusbind.c (xd_append_arg): Check for integers out of range.
1662 (Fdbus_call_method): Don't overflow the timeout int.
42b2a986 1663 (extract_signed, extract_unsigned): New functions.
243e0530
PE
1664 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
1665 (xd_get_connection_references): Return ptrdiff_t, not int.
1666 All uses changed.
1667 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
1668 (xd_read_message_1):
1669 Use int, not unsigned, where the dbus API uses int.
1670 (Fdbus_message_internal): Don't overflow mtype.
1671 (syms_of_dbusbind): Allocate right-sized buffer for integers.
d311d28c
PE
1672 * dired.c (directory_files_internal, file_name_completion, scmp)
1673 (file_name_completion_stat):
1674 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1675 (file_name_completion): Don't overflow matchcount.
1676 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
1677 * dispextern.h: Adjust decls to match defn changes elsewhere.
1678 (struct text_pos, struct glyph, struct bidi_saved_info)
1679 (struct bidi_string_data, struct bidi_it, struct composition_it)
1680 (struct it):
1681 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1682 (struct display_pos, struct composition_it, struct it):
1683 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1684 * dispnew.c (increment_matrix_positions)
1685 (increment_row_positions, mode_line_string)
1686 (marginal_area_string):
1687 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
54e1617f 1688 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
d311d28c
PE
1689 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1690 (duration_to_sec_usec): New function, to check for overflow better.
1691 (Fsleep_for, sit_for): Use it.
1692 * doc.c (get_doc_string, store_function_docstring):
1693 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1694 (get_doc_string, Fsnarf_documentation):
1695 Use int, not EMACS_INT, where int is wide enough.
1696 (get_doc_string):
1697 Use SAFE_ALLOCA, not alloca.
1698 Check for overflow when converting EMACS_INT to off_t.
1699 * doprnt.c (doprnt):
1700 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1701 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
1702 Don't assume uid_t fits into fixnum.
1703 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
1704 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
1705 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
1706 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
1707 (general_insert_function)
1708 (Finsert_char, make_buffer_string, make_buffer_string_both)
1709 (update_buffer_properties, Fbuffer_substring)
1710 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
1711 (Fsubst_char_in_region, check_translation)
1712 (Ftranslate_region_internal, save_restriction_restore, Fformat)
1713 (transpose_markers, Ftranspose_regions):
1714 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1715 (clip_to_bounds): Move to lisp.h as an inline function).
1716 (Fconstrain_to_field): Don't assume integers are nonnegative.
1717 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
1718 (Fsubst_char_in_region, Fsave_restriction):
1719 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1720 (Femacs_pid): Don't assume pid_t fits into fixnum.
1721 (lo_time): Use int, not EMACS_INT, when int suffices.
1722 (lisp_time_argument): Check for usec out of range.
1723 (Fencode_time): Don't assume fixnum fits in int.
3f4eabd1
PE
1724 (Fuser_login_name, Fuser_full_name): Signal an error
1725 if a uid argument is out of range, rather than relying on
1726 undefined behavior.
c8d5c857
PE
1727 (Fformat_time_string): Remove now-unnecessary check.
1728 lisp_time_argument checks for out-of-range usec now.
243e0530 1729 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
d311d28c
PE
1730 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
1731 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
1732 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
1733 (init_cmdargs, Fdump_emacs):
1734 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1735 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
1736 the bottom (typically) 32 bits of the fixnum.
1737 * eval.c (specpdl_size, call_debugger):
1738 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1739 (when_entered_debugger, Fbacktrace_debug):
1740 Don't assume fixnum can fit in int.
1741 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
1742 the object just before a buffer; this is not portable.
1743 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
1744 (grow_specpdl, unbind_to):
1745 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1746 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
1747 (grow_specpdl): Simplify allocation by using xpalloc.
856bbc81 1748 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
d311d28c
PE
1749 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
1750 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
1751 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1752 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
1753 (a_write, e_write):
1754 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1755 (Fcopy_file, non_regular_nbytes, read_non_regular)
1756 (Finsert_file_contents):
1757 Use int, not EMACS_INT, where int is wide enough.
1758 (READ_BUF_SIZE): Verify that it fits in int.
1759 (Finsert_file_contents): Check that counts are in proper range,
1760 rather than assuming fixnums fit into ptrdiff_t etc.
1761 Don't assume fixnums fit into int.
125b3835 1762 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
5895d7b9
PE
1763 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
1764 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
d311d28c
PE
1765 (string_char_to_byte, string_byte_to_char)
1766 (string_make_multibyte, string_to_multibyte)
1767 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
1768 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
1769 (substring_both, Fdelete, internal_equal, Ffillarray)
1770 (Fclear_string, mapcar1)
1771 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
1772 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
1773 (larger_vector, make_hash_table, maybe_resize_hash_table)
1774 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
1775 (Fmaphash, secure_hash):
1776 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1777 (concat): Check for string index and length overflow.
1778 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
1779 (Frequire):
1780 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1781 (larger_vector): New API (vec, incr_min, size_max) replaces old
1782 one (vec, new_size, init). This catches size overflow.
1783 INIT was removed because it was always Qnil.
1784 All callers changed.
1785 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
1786 the upper bound on a hash table index size.
1787 (make_hash_table, maybe_resize_hash_table): Use it.
1788 (secure_hash): Computer start_byte and end_byte only after
1789 they're known to be in ptrdiff_t range.
1790 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
1791 (Ffont_get_glyphs, Ffont_at):
1792 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1793 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
1794 (Flist_fonts, Fopen_font):
1795 Don't assume fixnum can fit in int.
1796 (check_gstring): Don't assume index can fit in int.
1797 (font_match_p): Check that fixnum is a character, not a nonnegative
1798 fixnum, since the later code needs to stuff it into an int.
1799 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
1800 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
1801 conversion overflow issues.
1802 (Fopen_font): Check for integer out of range.
1803 (Ffont_get_glyphs): Don't assume index can fit in int.
1804 * font.h: Adjust decls to match defn changes elsewhere.
1805 * fontset.c (reorder_font_vector): Redo score calculation to avoid
1806 integer overflow.
1807 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
1808 printmax_t, where ptrdiff_t is wide enough.
1809 (Finternal_char_font):
1810 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1811 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
1812 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
1813 (Fset_frame_position, x_set_frame_parameters)
1814 (x_set_line_spacing, x_set_border_width)
1815 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
1816 Check that fixnums are in proper range for system types.
1817 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
1818 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1819 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
1820 Use SAFE_ALLOCA_LISP, not alloca.
1821 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
1822 intptr_t is wide enough.
1823 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
1824 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
1825 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
1826 Check for fixnum out of range.
1827 * ftfont.c (ftfont_list): Don't assume index fits in int.
1828 Check that fixnums are in proper range for system types.
1829 (ftfont_shape_by_flt):
1830 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
d311d28c
PE
1831 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
1832 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1833 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
1834 Check that fixnums are in proper range for system types.
1835 * gnutls.h: Adjust decls to match defn changes elsewhere.
1836 * gtkutil.c (xg_dialog_run):
1837 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1838 (update_frame_tool_bar):
1839 Check that fixnums are in proper range for system types.
1840 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
5895d7b9 1841 (lookup_image): Check that fixnums are in range for system types.
d311d28c
PE
1842 * indent.c (last_known_column, last_known_column_point):
1843 (current_column_bol_cache):
1844 (skip_invisible, current_column, check_display_width):
1845 (check_display_width, scan_for_column, current_column_1)
1846 (Findent_to, Fcurrent_indentation, position_indentation)
1847 (indented_beyond_p, Fmove_to_column, compute_motion):
1848 (Fcompute_motion, Fvertical_motion):
1849 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1850 (last_known_column_modified): Use EMACS_INT, not int.
1851 (check_display_width):
1852 (Fcompute_motion):
1853 Check that fixnums and floats are in proper range for system types.
1854 (compute_motion): Don't assume index or fixnum fits in int.
1855 (compute_motion, Fcompute_motion):
1856 Use int, not EMACS_INT, when it is wide enough.
1857 (vmotion): Omit local var start_hpos that is always 0; that way
1858 we don't need to worry about overflow in expressions involving it.
1859 * indent.h: Adjust decls to match defn changes elsewhere.
1860 (struct position):
1861 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1862 Use int, not EMACS_INT, where int is wide enough.
1863 Remove unused members ovstring_chars_done and tab_offset;
1864 all uses removed.
1865 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
1866 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
1867 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
1868 (make_gap, copy_text, insert, insert_and_inherit)
1869 (insert_before_markers, insert_before_markers_and_inherit)
1870 (insert_1, count_combining_before, count_combining_after)
1871 (insert_1_both, insert_from_string)
1872 (insert_from_string_before_markers, insert_from_string_1)
1873 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
1874 (adjust_after_replace, adjust_after_insert, replace_range)
1875 (replace_range_2, del_range, del_range_1, del_range_byte)
1876 (del_range_both, del_range_2, modify_region)
1877 (prepare_to_modify_buffer, signal_before_change)
1878 (signal_after_change, Fcombine_after_change_execute):
1879 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1880 * intervals.c (traverse_intervals, rotate_right, rotate_left)
1881 (balance_an_interval, split_interval_right, split_interval_left)
1882 (find_interval, next_interval, update_interval)
1883 (adjust_intervals_for_insertion, delete_node, delete_interval)
1884 (interval_deletion_adjustment, adjust_intervals_for_deletion)
1885 (static_offset_intervals, offset_intervals)
1886 (merge_interval_right, merge_interval_left, make_new_interval)
1887 (graft_intervals_into_buffer, temp_set_point_both)
1888 (temp_set_point, set_point, adjust_for_invis_intang)
1889 (set_point_both, move_if_not_intangible, get_property_and_range)
1890 (get_local_map, copy_intervals, copy_intervals_to_string)
1891 (compare_string_intervals, set_intervals_multibyte_1):
1892 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1893 * intervals.h: Adjust decls to match defn changes elsewhere.
1894 (struct interval):
1895 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1896 * keyboard.c (this_command_key_count, this_single_command_key_start)
1897 (before_command_key_count, before_command_echo_length, echo_now)
1898 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
1899 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
1900 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
1901 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
1902 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1903 (last_non_minibuf_size, last_point_position, echo_truncate)
1904 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
1905 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
1906 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
1907 (stuff_buffered_input):
1908 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1909 (last_auto_save, command_loop_1, read_char):
1910 Use EMACS_INT, not int, to avoid integer overflow.
1911 (record_char): Avoid overflow in total_keys computation.
1912 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
1913 * keyboard.h: Adjust decls to match defn changes elsewhere.
1914 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
1915 (Fkey_description, Fdescribe_vector, Flookup_key):
1916 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1917 (click_position): New function, to check that positions are in range.
1918 (Fcurrent_active_maps):
1919 (describe_command):
1920 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1921 (Faccessible_keymaps, Fkey_description):
1922 (preferred_sequence_p):
1923 Don't assume fixnum can fit into int.
1924 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
1925 Check for integer overflow in size calculations.
1926 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
1927 avoid mishandling large integers.
1928 * lisp.h: Adjust decls to match defn changes elsewhere.
1929 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
1930 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
1931 (struct Lisp_Marker):
1932 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1933 (clip_to_bounds): Now an inline function, moved here from editfns.c.
d311d28c
PE
1934 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
1935 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
1936 All callers changed.
1937 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
1938 Assume the arg has valid form, since it always does.
1939 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
1940 unsigned integer system type.
1941 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
1942 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
1943 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1944 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
1945 (duration_to_sec_usec): New decl.
1946 * lread.c (read_from_string_index, read_from_string_index_byte)
1947 (read_from_string_limit, readchar, unreadchar, openp)
1948 (read_internal_start, read1, oblookup):
1949 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1950 (Fload, readevalloop, Feval_buffer, Feval_region):
1951 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1952 (openp): Check for out-of-range argument to 'access'.
1953 (read1): Use int, not EMACS_INT, where int is wide enough.
1954 Don't assume fixnum fits into int.
6efdadfd 1955 Fix off-by-one error that can read outside a buffer.
1ab7b8ac
PE
1956 (read_filtered_event): Use duration_to_sec_usec
1957 to do proper overflow checking on durations.
d311d28c
PE
1958 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
1959 in size calculation.
1960 (Fexecute_kbd_macro):
1961 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1962 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
1963 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
1964 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
1965 (set_marker_both, set_marker_restricted_both, marker_position)
1966 (marker_byte_position, Fbuffer_has_markers_at):
1967 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1968 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
61b108cc 1969 * menu.c (ensure_menu_items): Rename from grow_menu_items.
d311d28c
PE
1970 It now merely ensures that the menu is large enough, without
1971 necessarily growing it, as this avoids some integer overflow issues.
1972 All callers changed.
1973 (keymap_panes, parse_single_submenu, Fx_popup_menu):
1974 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1975 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
1976 Use SAFE_ALLOCA_LISP, not alloca.
1977 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
1978 to EMACS_INT. Check that fixnums are in proper range for system types.
1979 * minibuf.c (minibuf_prompt_width, string_to_object)
1980 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
1981 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
1982 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1983 (get_minibuffer, read_minibuf_unwind):
1984 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1985 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
1986 this simplifies overflow checking. All callers changed.
1987 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
1988 (Ftest_completion):
1989 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1990 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
1991 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
1992 Check that fixnums are in proper range for system types.
1993 (Fx_create_frame, Fx_show_tip):
1994 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1995 * nsfont.m (ns_findfonts, nsfont_list_family):
1996 Don't assume fixnum fits in long.
1997 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
1998 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1999 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
2000 wide enough.
17fdb222 2001 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
d311d28c
PE
2002 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2003 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
2004 (PRINTDECLARE, PRINTPREPARE):
2005 (strout, print_string):
2006 (print, print_preprocess, print_check_string_charset_prop)
2007 (print_object):
2008 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2009 (PRINTDECLARE):
2010 (temp_output_buffer_setup, Fprin1_to_string, print_object):
2011 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2012 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
d311d28c 2013 (printchar, strout): Use xpalloc to catch size calculation overflow.
0fd11aa5 2014 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
d311d28c
PE
2015 (print_error_message): Use SAFE_ALLOCA, not alloca.
2016 (print_object): Use int, not EMACS_INT, where int is wide enough.
a8b7caa3
PE
2017 (print_depth, new_backquote_output, print_number_index):
2018 Use ptrdiff_t, not int, where int might not be wide enough.
d311d28c
PE
2019 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
2020 (Fset_process_window_size, Fformat_network_address)
2021 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
d44287d4 2022 (sigchld_handler):
d311d28c 2023 Check that fixnums are in proper range for system types.
d44287d4 2024 (Fsignal_process): Simplify by avoiding a goto.
d83cf4cc
PE
2025 Check for process-ids out of pid_t range rather than relying on
2026 undefined behavior.
e4d81efc 2027 (process_tick, update_tick): Use EMACS_INT, not int.
d311d28c
PE
2028 (Fformat_network_address, read_process_output, send_process)
2029 (Fprocess_send_region, status_notify):
2030 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2031 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
2032 (wait_reading_process_output, read_process_output, exec_sentinel):
2033 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2034 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
2035 (Faccept_process_output): Use duration_to_sec_usec to do proper
2036 overflow checking on durations.
dde14581
PE
2037 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
2038 Don't assume pid_t fits in int.
02481186
PE
2039 * process.h (struct Lisp_Process): Members tick and update_tick
2040 are now of type EMACS_INT, not int.
b62b53e8
PE
2041 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
2042 configured --with-wide-int.
d311d28c
PE
2043 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
2044 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
2045 * search.c (looking_at_1, string_match_1):
2046 (fast_string_match, fast_c_string_match_ignore_case)
2047 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
2048 (scan_newline, find_before_next_newline, search_command)
2049 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
2050 (set_search_regs, wordify):
2051 (Freplace_match):
2052 (Fmatch_data):
2053 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2054 (string_match_1, search_buffer, set_search_regs):
2055 (Fmatch_data):
2056 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2057 (wordify): Check for overflow in size calculation.
2058 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
2059 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
2060 Check that fixnums are in proper range for system types.
2061 * sound.c (struct sound_device)
2062 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
2063 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2064 (Fplay_sound_internal):
2065 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
eacd378d 2066 * syntax.c (struct lisp_parse_state, find_start_modiff)
d311d28c
PE
2067 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
2068 (Fparse_partial_sexp):
2069 Don't assume fixnums can fit in int.
2070 (struct lisp_parse_state, find_start_pos, find_start_value)
2071 (find_start_value_byte, find_start_begv)
2072 (update_syntax_table, char_quoted, dec_bytepos)
2073 (find_defun_start, prev_char_comend_first, back_comment):
2074 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
2075 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
2076 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2077 (Finternal_describe_syntax_value): Check that match_lisp is a
2078 character, not an integer, since the code stuffs it into int.
2079 (scan_words, scan_sexps_forward):
2080 Check that fixnums are in proper range for system types.
2081 (Fforward_word):
2082 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2083 (scan_sexps_forward):
2084 Use CHARACTERP, not INTEGERP, since the value must fit into int.
2085 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
2086 * syntax.h: Adjust decls to match defn changes elsewhere.
2087 (struct gl_state_s):
2088 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
e4ecdc9c
PE
2089 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
2090 MOST_POSITIVE_FIXNUM.
d311d28c
PE
2091 * sysdep.c (wait_for_termination_1, wait_for_termination)
2092 (interruptible_wait_for_termination, mkdir):
2093 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
2094 (emacs_read, emacs_write):
2095 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
225a2cff
PE
2096 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
2097 and double all fit in int.
d311d28c
PE
2098 * term.c (set_tty_color_mode):
2099 Check that fixnums are in proper range for system types.
2100 * termhooks.h (struct input_event):
2101 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2102 * textprop.c (validate_interval_range, interval_of)
2103 (Fadd_text_properties, set_text_properties_1)
2104 (Fremove_text_properties, Fremove_list_of_text_properties)
2105 (Ftext_property_any, Ftext_property_not_all)
2106 (copy_text_properties, text_property_list, extend_property_ranges)
2107 (verify_interval_modification):
2108 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2109 (Fnext_single_char_property_change)
2110 (Fprevious_single_char_property_change):
2111 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5895d7b9
PE
2112 (copy_text_properties):
2113 Check for integer overflow in index calculation.
d311d28c
PE
2114 * undo.c (last_boundary_position, record_point, record_insert)
2115 (record_delete, record_marker_adjustment, record_change)
2116 (record_property_change):
2117 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2118 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
2119 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2120 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
2121 (Fx_hide_tip, Fx_file_dialog):
2122 * w32menu.c (set_frame_menubar):
2123 Use ptrdiff_t, not int, for consistency with rest of code.
2124 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
2125 (select_window, Fdelete_other_windows_internal)
2126 (window_scroll_pixel_based, window_scroll_line_based)
2127 (Frecenter, Fset_window_configuration):
2128 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2129 (Fset_window_hscroll, run_window_configuration_change_hook)
2130 (set_window_buffer, temp_output_buffer_show, scroll_command)
5895d7b9 2131 (Fscroll_other_window, Frecenter):
d311d28c
PE
2132 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2133 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
2134 Don't assume fixnum fits in int.
2135 (Fset_window_scroll_bars):
2136 Check that fixnums are in proper range for system types.
2137 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
2138 (string_pos, c_string_pos, number_of_chars, init_iterator)
2139 (in_ellipses_for_invisible_text_p, init_from_display_pos)
2140 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
2141 (compute_display_string_end, handle_face_prop)
5895d7b9
PE
2142 (face_before_or_after_it_pos, handle_invisible_prop)
2143 (handle_display_prop, handle_display_spec, handle_single_display_spec)
d311d28c
PE
2144 (display_prop_intangible_p, string_buffer_position_lim)
2145 (string_buffer_position, handle_composition_prop, load_overlay_strings)
2146 (get_overlay_strings_1, get_overlay_strings)
2147 (iterate_out_of_display_property, forward_to_next_line_start)
2148 (back_to_previous_visible_line_start, reseat, reseat_to_string)
2149 (get_next_display_element, set_iterator_to_next)
2150 (get_visually_first_element, compute_stop_pos_backwards)
2151 (handle_stop_backwards, next_element_from_buffer)
2152 (move_it_in_display_line_to, move_it_in_display_line)
2153 (move_it_to, move_it_vertically_backward, move_it_by_lines)
2154 (add_to_log, message_dolog, message_log_check_duplicate)
2155 (message2, message2_nolog, message3, message3_nolog
2156 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
2157 (current_message_1, truncate_echo_area, truncate_message_1)
2158 (set_message, set_message_1, store_mode_line_noprop)
2159 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
2160 (text_outside_line_unchanged_p, check_point_in_composition)
2161 (reconsider_clip_changes)
2162 (redisplay_internal, set_cursor_from_row, try_scrolling)
2163 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
2164 (redisplay_window, find_last_unchanged_at_beg_row)
2165 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
2166 (trailing_whitespace_p, find_row_edges, display_line)
2167 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
2168 (display_mode_element, store_mode_line_string)
2169 (pint2str, pint2hrstr, decode_mode_spec)
2170 (display_count_lines, display_string, draw_glyphs)
2171 (x_produce_glyphs, x_insert_glyphs)
2172 (rows_from_pos_range, mouse_face_from_buffer_pos)
2173 (fast_find_string_pos, mouse_face_from_string_pos)
2174 (note_mode_line_or_margin_highlight, note_mouse_highlight):
2175 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2176 (safe_call, init_from_display_pos, handle_fontified_prop)
2177 (handle_single_display_spec, load_overlay_strings)
2178 (with_echo_area_buffer, setup_echo_area_for_printing)
2179 (display_echo_area, echo_area_display)
2180 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
2181 (update_tool_bar, hscroll_window_tree, redisplay_internal)
5895d7b9
PE
2182 (redisplay_window, dump_glyph_row, display_mode_line)
2183 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
43ad2e9a 2184 (handle_display_spec, display_prop_string_p):
d311d28c
PE
2185 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2186 (handle_single_display_spec, build_desired_tool_bar_string)
2187 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
2188 (get_specified_cursor_type):
2189 Check that fixnums are in proper range for system types.
2190 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
2191 (Flookup_image_map):
2192 Don't assume fixnums fit in int.
2193 (compare_overlay_entries):
2194 Avoid mishandling comparisons due to subtraction overflow.
2195 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
2196 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
2197 (handle_tool_bar_click):
2198 Use int, not unsigned, since we prefer signed and the signedness
2199 doesn't matter here.
2200 (get_next_display_element, next_element_from_display_vector):
2201 Use int, not EMACS_INT, when int is wide enough.
2202 (start_hourglass): Use duration_to_sec_usec to do proper
2203 overflow checking on durations.
2204 * xfaces.c (Fbitmap_spec_p):
2205 Check that fixnums are in proper range for system types.
2206 (compare_fonts_by_sort_order):
2207 Avoid mishandling comparisons due to subtraction overflow.
2208 (Fx_family_fonts, realize_basic_faces):
2209 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2210 (Fx_family_fonts):
2211 Don't assume fixnum fits in int.
2212 Use SAFE_ALLOCA_LISP, not alloca.
2213 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
2214 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
2215 (face_at_buffer_position, face_for_overlay_string)
2216 (face_at_string_position):
2217 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2218 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
2219 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
2220 (Fx_show_tip):
2221 Check that fixnums are in proper range for system types.
2222 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
2223 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
2224 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2225 (Fx_change_window_property): Don't assume fixnums fit in int.
2226 * xfont.c (xfont_chars_supported):
2227 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2228 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
2229 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
2230 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2231 * xml.c (parse_region):
2232 * xrdb.c (magic_file_p):
2233 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2234 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
2235 (x_get_local_selection, x_reply_selection_request)
2236 (x_handle_selection_request, wait_for_property_change):
2237 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2238 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
2239 short is wide enough.
2240 (x_send_client_event): Don't assume fixnum fits in int.
2241 * xterm.c (x_x_to_emacs_modifiers):
2242 Don't assume EMACS_INT overflows nicely into int.
2243 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
2244 may come from Lisp.
2245 (handle_one_xevent): NATNUMP can eval its arg twice.
2246 (x_connection_closed):
2247 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2248 * xterm.h: Adjust decls to match defn changes elsewhere.
2249 (struct scroll_bar): Use struct vectorlike_header
2250 rather than rolling our own approximation.
2251 (SCROLL_BAR_VEC_SIZE): Remove; not used.
2252
c6574eb5
GM
22532012-05-25 Glenn Morris <rgm@gnu.org>
2254
2255 * lisp.mk (lisp): Update for more files being compiled now.
2256
e8d32c7e
SM
22572012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
2258
48def666
SM
2259 * lread.c: Remove `read_pure' which makes no difference.
2260 (read_pure): Remove var.
2261 (unreadpure): Remove function.
2262 (readevalloop): Don't call read_list with -1 flag.
2263 (read1, read_vector): Don't test read_pure any more.
2264 (read_list): Simplify.
2265
e8d32c7e
SM
2266 * fileio.c, character.h: Minor style tweaks.
2267
4b2addb7
DA
22682012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
2269
2270 * window.h (clip_changed): Remove useless declaration.
2271
584461b2
JB
22722012-05-22 Juanma Barranquero <lekktu@gmail.com>
2273
2274 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
2275 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
2276
34374650
PE
22772012-05-22 Paul Eggert <eggert@cs.ucla.edu>
2278
2279 Remove src/m/*.
2280 This directory predates autoconf and is no longer needed nowadays.
2281 Move its few remaining bits of functionality to where they're needed.
2282 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
2283 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
2284 * m/template.h: Remove.
2285 * Makefile.in (M_FILE): Remove. All uses removed.
2286 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
2287 * lisp.h (USE_LSB_TAG):
2288 * mem-limits.h (EXCEEDS_LISP_PTR):
2289 Use VAL_MAX, not VALBITS, in #if.
2290 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
2291 (EMACS_UINT): Define unconditionally now.
2292 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
2293 (BITS_PER_EMACS_INT): New constants, replacing
2294 what used to be in config.h, but not useful in #if.
2295 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
2296 define them any more.
2297 (VAL_MAX): New macro.
2298 (VALMASK): Use it.
2299 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
2300 BITS_PER_EMACS_INT, in #if.
2301 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
2302 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
2303 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
2304 * s/ms-w32.h (DATA_START):
2305 Move here from removed file m/intel386.h.
2306 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
2307 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
2308
261cb4bb
PE
23092012-05-21 Paul Eggert <eggert@cs.ucla.edu>
2310
2311 Assume C89 or later.
2312 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
2313 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
2314 (xrealloc):
2315 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
2316 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
2317 * textprop.c, tparam.c (NULL): Remove.
2318 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
2319 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
2320 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
2321 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
2322 * xterm.c (input_signal_count): Assume volatile works.
2323
ff23cd9f
KB
23242012-05-21 Ken Brown <kbrown@cornell.edu>
2325
2326 * xgselect.c (xg_select): Fix first argument in call to 'select'
2327 (bug#11508).
2328
1b170bc6
KB
23292012-05-20 Ken Brown <kbrown@cornell.edu>
2330
2331 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
bd7239f5 2332 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
1b170bc6 2333
b2f4d39f
KB
23342012-05-19 Ken Brown <kbrown@cornell.edu>
2335
2336 * xfns.c (x_in_use): Remove `static' qualifier.
2337 * xterm.h (x_in_use): Declare.
2338 * xgselect.c: Include xterm.h.
2339 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
2340 and `display_arg' (bug#9754).
2341
003fdae2
PE
23422012-05-19 Paul Eggert <eggert@cs.ucla.edu>
2343
9232a6d9
PE
2344 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
2345
003fdae2
PE
2346 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
2347 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
2348
784b56e2
EZ
23492012-05-18 Eli Zaretskii <eliz@gnu.org>
2350
2351 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
2352
2353 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
2354 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c
2355
2356 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
2357 reference to image_cache->refcount.
2358 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
2359
a0a79cde
JL
23602012-05-17 Juri Linkov <juri@jurta.org>
2361
2362 * search.c (Fword_search_regexp, Fword_search_backward)
2363 (Fword_search_forward, Fword_search_backward_lax)
2364 (Fword_search_forward_lax): Move functions to isearch.el
2365 (bug#10145, bug#11381).
2366
b0572523
PE
23672012-05-16 Paul Eggert <eggert@cs.ucla.edu>
2368
2369 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
2370
9660f5fc
SM
23712012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
2372
2373 * lread.c (init_obarray): Declare Qt and Qnil as special.
2374
4374de83
GM
23752012-05-14 Glenn Morris <rgm@gnu.org>
2376
2377 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
985584ae 2378 Put "libexec" before "bin", for the sake of init_callproc_1.
4374de83 2379
dc44c39a
PE
23802012-05-14 Paul Eggert <eggert@cs.ucla.edu>
2381
078c97cb
PE
2382 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
2383
dc44c39a
PE
2384 * unexaix.c: Port to more-recent AIX compilers.
2385 (report_error, report_error_1, make_hdr, copy_sym)
2386 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
2387 Make arguments const char *, not char *, to avoid violations of C
2388 standard and to fix some AIX warnings reported by Gilles Pion.
2389
e18afed7 23902012-05-14 Eli Zaretskii <eliz@gnu.org>
ac268e67
EZ
2391
2392 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
2393 already have overlays loaded.
2394 (handle_single_display_spec): Before returning without displaying
2395 fringe bitmap, synchronize the bidi iterator with the main display
2396 iterator, by calling iterate_out_of_display_property.
2397 (iterate_out_of_display_property): Detect buffer iteration by
2398 testing that it->string is a Lisp string.
2399 (get_next_display_element): When the current object is exhausted,
2400 and there's something on it->stack, call set_iterator_to_next to
2401 proceed with what's on the stack, instead of returning zero.
2402 (set_iterator_to_next): If called at the end of a Lisp string,
2403 proceed to consider_string_end without incrementing string
2404 position. Don't increment display vector index past the end of
2405 the display vector. (Bug#11417)
c8fb9dc6
EZ
2406 (pos_visible_p): Don't report a position visible when move_it_to
2407 stopped at the last line of window, which happens to be scanned
2408 backwards by the bidi iteration. (Bug#11464)
ac268e67 2409
e18afed7 24102012-05-14 Eli Zaretskii <eliz@gnu.org>
82f9b393
EZ
2411
2412 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
2413 and right-margin display specs even if the spec is invalid or we
61b108cc
SM
2414 are on a TTY, and thus unable to display on the fringes.
2415 That's because the text with the property will not be displayed anyway,
82f9b393
EZ
2416 so we need to signal to the caller that this is a "replacing"
2417 display spec. This fixes display when the spec is invalid or we
2418 are on a TTY.
2419
e18afed7 24202012-05-14 Paul Eggert <eggert@cs.ucla.edu>
297834cd
PE
2421
2422 * unexaix.c (make_hdr): Fix typo in prototype.
2423 This bug broke the build on AIX. Problem reported by Gilles Pion.
2424
9d0a235a
MA
24252012-05-14 Michael Albinus <michael.albinus@gmx.de>
2426
2427 * keyboard.c (kbd_buffer_get_event): Read special events also in
2428 batch mode. (Bug#11415)
2429
9e6b06ed
GM
24302012-05-12 Glenn Morris <rgm@gnu.org>
2431
2432 * ns.mk: Update for ns_appbindir no longer having trailing "/".
2433
c1a1d7a3
EZ
24342012-05-12 Eli Zaretskii <eliz@gnu.org>
2435
2436 * lisp.mk (lisp): Add newcomment.elc.
2437
3fe7cdc8
GM
24382012-05-12 Glenn Morris <rgm@gnu.org>
2439
2440 * Makefile.in (MKDIR_P): New, set by configure.
2441 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
2442
53f7d2c0
PE
24432012-05-11 Paul Eggert <eggert@cs.ucla.edu>
2444
2445 Remove unused function hourglass_started.
2446 * dispextern.h (hourglass_started):
2447 * w32fns.c (hourglass_started):
2448 * xdisp.c (hourglass_started): Remove.
2449
75aafb17
JB
24502012-05-10 Juanma Barranquero <lekktu@gmail.com>
2451
2452 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
2453 Update dependencies.
2454
12959e8e
PE
24552012-05-10 Paul Eggert <eggert@cs.ucla.edu>
2456
97107e2e
PE
2457 * xgselect.c (xg_select): Put maxfds+1 into a var.
2458 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
2459
12959e8e
PE
2460 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
2461
836d29b3
DA
24622012-05-10 Dave Abrahams <dave@boostpro.com>
2463
2464 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
2465 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
2466
5cb67954
MA
24672012-05-09 Michael Albinus <michael.albinus@gmx.de>
2468
2469 * dbusbind.c (xd_registered_buses): New internal Lisp object.
2470 Rename all occurences of Vdbus_registered_buses to xd_registered_buses.
2471 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
2472 Initialize xd_registered_buses.
2473
3478ec45
PE
24742012-05-09 Paul Eggert <eggert@cs.ucla.edu>
2475
b263a6b0
PE
2476 Untag more efficiently if USE_LSB_TAG.
2477 This is based on a proposal by YAMAMOTO Mitsuharu in
2478 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
2479 For an admittedly artificial (nth 8000 longlist) benchmark on
2480 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
2481 Emacs's overall text size by 1%.
2482 * lisp.h (XUNTAG): New macro.
2483 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
2484 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
2485 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
2486 * eval.c (Fautoload):
2487 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
2488 * frame.h (XFRAME): Use XUNTAG.
2489
3478ec45
PE
2490 Port recent dbusbind.c changes to 32-bit --with-wide-int.
2491 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
2492 Remove unportable assumptions about print widths of types like
2493 dbus_uint32_t.
2494 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
2495 intptr_t when converting between pointer and integer, to avoid GCC
2496 warnings about wrong width.
2497
666b903b 24982012-05-09 Eli Zaretskii <eliz@gnu.org>
0d887c7d
EZ
2499
2500 * w32proc.c (new_child): Force Windows to reserve only 64KB of
2501 stack for each reader_thread, instead of defaulting to 8MB
2502 determined by the linker. This avoids failures in creating
2503 subprocesses on Windows 7, see the discussion in this thread:
2504 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
2505
b120cc17
JC
25062012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
2507
2508 Fix up display of the *Minibuf-0* buffer in the mini window.
2509 * keyboard.c (read_char): Don't clear the echo area if there's no
2510 message to clear.
2511 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
2fed2689 2512 contents of *Minibuf-0*) if there's no message displayed in its stead.
b120cc17 2513
9a4b36f8
MA
25142012-05-07 Michael Albinus <michael.albinus@gmx.de>
2515
2516 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
2517 batch mode.
2518
e5f9458f
CY
25192012-05-06 Chong Yidong <cyd@gnu.org>
2520
2521 * lisp.mk (lisp): Update.
2522
eceeb5fc 25232012-05-05 Jim Meyering <meyering@redhat.com>
bf98199c
JM
2524
2525 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
2526
71873e2b
SM
25272012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
2528
2529 * data.c (PUT_ERROR): New macro.
2530 (syms_of_data): Use it. Add new error type `user-error'.
2531 * undo.c (user_error): New function.
2532 (Fprimitive_undo): Use it.
2533 * print.c (print_error_message): Adjust print style for `user-error'.
2534 * keyboard.c (user_error): New function.
2535 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
2536
ab0fa4e4
PE
25372012-05-03 Paul Eggert <eggert@cs.ucla.edu>
2538
2539 Do not limit current-time-string to years 1000..9999.
2540 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
2541 (Fcurrent_time_string): Support any year that is supported by the
2542 underlying localtime representation. Don't use asctime, as it
2543 has undefined behavior for years outside the range -999..9999.
2544
7ed806a7
PE
25452012-05-02 Paul Eggert <eggert@cs.ucla.edu>
2546
2547 Fix race conditions involving setenv, gmtime, localtime, asctime.
2548 Without this fix, interrupts could mess up code that uses these
2549 nonreentrant functions, since setting TZ invalidates existing
2550 tm_zone or tzname values, and since most of these functions return
2551 pointers to static storage.
2552 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
2553 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
2554 Grow the critical sections to include not just invoking
2555 localtime/gmtime, but also accessing these functions' results
2556 including their tm_zone values if any, and any related TZ setting.
2557 (format_time_string): Last arg is now struct tm *, not struct tm **,
71873e2b
SM
2558 so that the struct tm is saved in the critical section.
2559 All callers changed. Simplify allocation of initial buffer, partly
7ed806a7
PE
2560 motivated by the fact that memory allocation needs to be outside
2561 the critical section.
2562
0c16dfed
DA
25632012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
2564
2565 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
2566 with RESET_INTERVAL.
2567
2568 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
2569 Remove duplicated buffer name initialization.
2570
3f83ace8
JM
25712012-05-02 Jim Meyering <jim@meyering.net>
2572
2573 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
2574
c7b8541e
JM
2575 * xfns.c (x_window): Use xstrdup (Bug#11375).
2576
90207a15 25772012-05-02 Eli Zaretskii <eliz@gnu.org>
2fa85638
EZ
2578
2579 * xdisp.c (pos_visible_p): If already at a newline from the
2580 display string before the 'while' loop, don't walk back the glyphs
2581 from it3.glyph_row. Solves assertion violation when the display
2582 string begins with a newline (egg.el). (Bug#11367)
2583
b593d6a9
AH
25842012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
2585
2586 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
2587 Move to simple.el.
2588
4737362e
GM
25892012-05-01 Glenn Morris <rgm@gnu.org>
2590
99cf43f9
GM
2591 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
2592 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
2593 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
2594 All were removed before 23.1.
2595
9311dcff
GM
2596 * dispnew.c: Remove HAVE_LIBNCURSES test;
2597 it is always true on relevant platforms.
2598
4d5c6349
GM
2599 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
2600 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
2601
4737362e
GM
2602 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
2603
74dd3a6b
AS
26042012-04-30 Andreas Schwab <schwab@linux-m68k.org>
2605
2606 * .gdbinit (xpr): Remove checks for no longer existing misc types.
2607 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
2608 Remove.
2609
13c379ee
PE
26102012-04-28 Paul Eggert <eggert@cs.ucla.edu>
2611
2612 Do not avoid creating empty evaporating overlays (Bug#9642).
2613 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
2614 That is, do not delete an evaporating overlay if it becomes
2615 empty after its bounds are adjusted to fit within its buffer.
2616 This fix caused other problems, and I'm reverting it until we get
2617 to the bottom of them.
2618
a8e7d6d7 26192012-04-27 Chong Yidong <cyd@gnu.org>
9be2fd9b
CY
2620
2621 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
2622
a8e7d6d7 26232012-04-27 Eli Zaretskii <eliz@gnu.org>
f0ee99a0
EZ
2624
2625 * xdisp.c (pos_visible_p): If the window start position is beyond
2626 ZV, start the display from buffer beginning. Prevents assertion
2627 violation in init_iterator when the minibuffer window is scrolled
2628 via the scroll bar.
2629
2630 * window.c (window_scroll_pixel_based): Likewise.
2631
a8e7d6d7 26322012-04-27 Chong Yidong <cyd@gnu.org>
9ec7751f
CY
2633
2634 * keymap.c (where_is_internal): Doc fix (Bug#10872).
2635
a8e7d6d7 26362012-04-27 Glenn Morris <rgm@gnu.org>
24c51a09
GM
2637
2638 * fileio.c (Fcopy_file, Fset_file_selinux_context):
2639 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
2640
a8e7d6d7 26412012-04-27 Eli Zaretskii <eliz@gnu.org>
73055685 2642
b593d6a9
AH
2643 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
2644 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
73055685 2645
1c6900d9
EZ
26462012-04-26 Eli Zaretskii <eliz@gnu.org>
2647
4c3fa1d9
EZ
2648 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
2649 display element, check also the underlying string or buffer
2650 character. (Bug#11341)
2651
1c6900d9
EZ
2652 * w32menu.c: Include w32heap.h.
2653 (add_menu_item): If the call to AppendMenuW (via
2654 unicode_append_menu) fails, disable Unicode menus only if we are
2655 running on Windows 9X/Me.
2656
42bf8205
AS
26572012-04-24 Andreas Schwab <schwab@linux-m68k.org>
2658
2659 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
2660 (xgetint): Add missing shift for LSB tags.
2661
b1bac16e
MR
26622012-04-24 Martin Rudalics <rudalics@gmx.at>
2663
2664 * keyboard.c (read_char): Don't wipe echo area for select window
2665 events: These might get delayed via `mouse-autoselect-window'
2666 (Bug#11304).
2667
d69621cc
JB
26682012-04-24 Juanma Barranquero <lekktu@gmail.com>
2669
2670 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
2671 manipulation of :loaded-from data.
2672
02fd101b
JB
26732012-04-23 Juanma Barranquero <lekktu@gmail.com>
2674
2675 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
2676 now a cons (bug#11311).
2677
888bec30
PE
26782012-04-23 Paul Eggert <eggert@cs.ucla.edu>
2679
89a438bd
PE
2680 Do not create empty overlays with the evaporate property (Bug#9642).
2681 * buffer.c (Fmove_overlay): Delete an evaporating overlay
2682 if it becomes empty after its bounds are adjusted to fit within
2683 its buffer. Without this fix, in a nonempty buffer (let ((o
2684 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
2685 yields an empty overlay that has the evaporate property, which is
2686 not supposed to happen.
2687
1068fe4d
PE
2688 Fix minor GTK3 problems found by static checking.
2689 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
2690 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
2691 (struct _EmacsFixedClass, emacs_fixed_get_type):
2692 Move decls here from emacsgtkfixed.h, since they needn't be public.
2693 (emacs_fixed_get_type): Now static.
2694 (emacs_fixed_class_init): Omit unused local.
2695 (emacs_fixed_child_type): Remove; unused.
2696 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
2697 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
2698 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
2699 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
2700 (EMACS_FIXED_GET_CLASS): Remove; unused.
2701 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
2702
888bec30
PE
2703 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
2704 Problem reported by Juanma Barranquero for Windows -Wunused-function.
2705
de85e130
PE
27062012-04-22 Paul Eggert <eggert@cs.ucla.edu>
2707
d0baac98 2708 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
bd7239f5 2709 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
d0baac98
PE
2710 (__malloc_size_t, __malloc_ptrdiff_t):
2711 Remove. All uses removed, replaced by the definiens if needed,
2712 since we can assume C89 or better now.
2713 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
2714 (protect_malloc_state, align, get_contiguous_space)
2715 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
2716 (malloc_atfork_handler_child, malloc_enable_thread)
2717 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
2718 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
2719 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
2720 (special_realloc, _realloc_internal_nolock, _realloc_internal)
2721 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
2722 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
2723 Define using prototypes, not old style.
2724 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
2725 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
2726 (align): Don't assume that signed integer overflow wraps around.
2727 Omit unused local var.
2728 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
2729 (_free_internal_nolock, memalign, mallochook, reallochook):
2730 Omit no-longer-needed casts.
2731 (valloc): Use getpagesize, not __getpagesize.
2732 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
2733 (struct hdr): The 'magic' member is now size_t, not unsigned long.
2734
de85e130
PE
2735 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
2736
dcbf5805
MA
27372012-04-22 Michael Albinus <michael.albinus@gmx.de>
2738
2739 Move functions from C to Lisp. Make non-blocking method calls
2740 the default. Implement further D-Bus standard interfaces.
2741
2742 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
2743 (QCdbus_request_name_allow_replacement)
2744 (QCdbus_request_name_replace_existing)
2745 (QCdbus_request_name_do_not_queue)
2746 (QCdbus_request_name_reply_primary_owner)
2747 (QCdbus_request_name_reply_in_queue)
2748 (QCdbus_request_name_reply_exists)
2749 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
2750 (QCdbus_registered_serial, QCdbus_registered_method)
2751 (QCdbus_registered_signal): New Lisp objects.
2752 (XD_DEBUG_MESSAGE): Use sizeof.
2753 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
2754 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
2755 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
2756 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
2757 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
2758 (xd_signature, xd_append_arg): Allow float for integer types.
2759 (xd_get_connection_references): New function.
b593d6a9
AH
2760 (xd_get_connection_address): Rename from xd_initialize.
2761 Return cached address.
dcbf5805
MA
2762 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
2763 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
2764 level.
2765 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
9a4b36f8 2766 Return number of refcounts.
dcbf5805
MA
2767 (Fdbus_get_unique_name): Make stronger parameter check.
2768 (Fdbus_message_internal): New defun.
2769 (Fdbus_call_method, Fdbus_call_method_asynchronously)
2770 (Fdbus_method_return_internal, Fdbus_method_error_internal)
2771 (Fdbus_send_signal, Fdbus_register_service)
2772 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
2773 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
2774 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
2775 (Vdbus_compiled_version, Vdbus_runtime_version)
2776 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
2777 (Vdbus_message_type_method_return, Vdbus_message_type_error)
2778 (Vdbus_message_type_signal): New defvars.
b593d6a9
AH
2779 (Vdbus_registered_buses, Vdbus_registered_objects_table):
2780 Adapt docstring.
dcbf5805 2781
52828e02
PE
27822012-04-22 Paul Eggert <eggert@cs.ucla.edu>
2783
da05bc4c
PE
2784 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
2785 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
2786 Do not assume ptrdiff_t is the same width as 'int'.
2787
52828e02
PE
2788 * alloc.c: Handle unusual debugging option combinations.
2789 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
2790 since the two debugging options are incompatible.
2791 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
2792 is defined.
2793 (mem_init, mem_insert, mem_insert_fixup):
2794 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
2795 (NEED_MEM_INSERT): Remove; no longer needed.
2796
f01769f9
LL
27972012-04-22 Leo Liu <sdl.web@gmail.com>
2798
2799 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
2800
5790543d
PE
28012012-04-22 Paul Eggert <eggert@cs.ucla.edu>
2802
2803 * sysdep.c [__FreeBSD__]: Minor cleanups.
2804 (list_system_processes, system_process_attributes) [__FreeBSD__]:
2805 Use Emacs indenting style more consistently. Avoid some casts.
2806 Use 'double' consistently rather than mixing 'float' and 'double'.
2807
b91b7e4d
EW
28082012-04-21 Eduard Wiebe <usenet@pusto.de>
2809
b593d6a9
AH
2810 * sysdep.c (list_system_processes, system_process_attributes):
2811 Add implementation for FreeBSD (Bug#5243).
b91b7e4d 2812
6114eb15
AS
28132012-04-21 Andreas Schwab <schwab@linux-m68k.org>
2814
2815 * lisp.mk (lisp): Update.
2816
2f38dff7
PE
28172012-04-20 Paul Eggert <eggert@cs.ucla.edu>
2818
2819 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
2820 It is never used otherwise.
2821
4ae29f89
SM
28222012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
2823
2824 * print.c (print_preprocess): Only check print_depth if print-circle
2825 is nil.
2826 (print_object): Check for cycles even when print-circle is nil and
2827 print-gensym is t, but only check print_depth if print-circle is nil.
2828
f30d612a
CY
28292012-04-20 Chong Yidong <cyd@gnu.org>
2830
2831 * process.c (wait_reading_process_output): If EIO occurs on a pty,
2832 set the status to "failed" and ensure that sentinel is run.
2833
c07a4c0b 28342012-04-20 Glenn Morris <rgm@gnu.org>
016a35df
GM
2835
2836 * process.c (Fset_process_inherit_coding_system_flag)
2837 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
4373fd43 2838 (Fmake_network_process, Fmake_serial_process): Doc fix.
016a35df 2839
c07a4c0b 28402012-04-20 Eli Zaretskii <eliz@gnu.org>
20a68157
EZ
2841
2842 * xdisp.c (string_buffer_position_lim): Limit starting position to
2843 BEGV.
2844 (set_cursor_from_row): If called for a mode-line or header-line
2845 row, return zero immediately.
2846 (try_cursor_movement): If inside continuation line, don't back up
4ae29f89
SM
2847 farther than the first row after the header line, if any.
2848 Don't consider the header-line row as "partially visible", even if
20a68157
EZ
2849 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
2850
c07a4c0b 28512012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 2852
4ae29f89
SM
2853 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
2854 (bug#11238).
ad3a2b41 2855
c07a4c0b 28562012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
6c94c34f 28572012-04-18 Paul Eggert <eggert@cs.ucla.edu>
ae6e112d
PE
2858
2859 configure: new option --enable-gcc-warnings (Bug#11207)
2860 * Makefile.in (C_WARNINGS_SWITCH): Remove.
2861 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
2862 (ALL_CFLAGS): Use new macros rather than old.
2863 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
2864 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
2865 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
2866 -Wunused-result, -Wunused-variable. This should go away once
2867 the Emacs and Gnulib regex code is merged.
2868 (xmalloc, xrealloc): Now static.
2869
aba027e8
PE
28702012-04-17 Paul Eggert <eggert@cs.ucla.edu>
2871
2872 * dired.c (Fsystem_groups): Remove unused local.
2873
e5a36063
GM
28742012-04-17 Glenn Morris <rgm@gnu.org>
2875
2876 * dired.c (Fsystem_users): Doc fix.
2877
316411f0
DA
28782012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
2879
2880 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
2881 (syms_of_dired): Add them.
2882
9426aba4
PE
28832012-04-16 Paul Eggert <eggert@cs.ucla.edu>
2884
b62a57be
PE
2885 Fix minor alloc.c problems found by static checking.
2886 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
2887 New extern decls, to avoid calling undeclared functions.
2888 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
2889 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
2890 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
2891 (NEED_MEM_INSERT): New macro.
2892 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
4b5afbb0 2893 Remove one incorrect comment and fix another.
b62a57be 2894
3539f31f
PE
2895 Fix minor ralloc.c problems found by static checking.
2896 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
2897 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
2898 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
2899 (r_alloc_sbrk): Now static.
2900
a041960a
PE
2901 Improve ralloc.c interface checking.
2902 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
2903 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
2904 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
2905 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
2906 [REL_ALLOC]: ... to here, to check interface.
2907 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
2908 Remove decls. This fixes an "It stinks!".
2909
9426aba4
PE
2910 * alloc.c (which_symbols): Fix alignment issue / type clash.
2911
d55c12ed
AS
29122012-04-15 Andreas Schwab <schwab@linux-m68k.org>
2913
2914 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
2915 (struct Lisp_Misc_Any): Likewise.
2916 (struct Lisp_Free): Likewise.
2917 * alloc.c (union aligned_Lisp_Symbol): Define.
2918 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
2919 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
2920 (union aligned_Lisp_Misc): Define.
2921 (MARKER_BLOCK_SIZE, struct marker_block): Use union
2922 aligned_Lisp_Misc instead of union Lisp_Misc.
4ae29f89 2923 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
d55c12ed 2924
b948ce8b
PE
29252012-04-14 Paul Eggert <eggert@cs.ucla.edu>
2926
2927 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
2928 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
2929 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
2930 * s/netbsd.h, s/sol2-6.h:
2931 Remove definition of GC_MARK_STACK, since the default now works.
2932 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
2933 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
2934 no longer the default.
2935 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
2936
35dc09a1 29372012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 2938
35dc09a1
GM
2939 * lread.c (lisp_file_lexically_bound_p):
2940 Fix hang at ";-*-\n" (bug#11238).
ad3a2b41 2941
35dc09a1
GM
29422012-04-14 Eli Zaretskii <eliz@gnu.org>
2943
2944 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
2945 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
2946
29472012-04-14 Jan Djärv <jan.h.d@swipnet.se>
2948
2949 * nsterm.m (constrainFrameRect): Always constrain when there is only
2950 one screen (Bug#10962).
2951
bcd86815
KB
29522012-04-13 Ken Brown <kbrown@cornell.edu>
2953
2954 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
2955
c25df26e
RT
29562012-04-13 Reuben Thomas <rrt@sc3d.org>
2957
2958 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
2959
0fc59f1e
DC
29602012-04-11 Daniel Colascione <dancol@dancol.org>
2961
2962 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
2963 against is gone. It's better to use vfork now so that when Cygwin
2964 gains a new, working vfork, we use it automatically (bug#10398).
2965
de8c03dc
SM
29662012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
2967
2968 * window.c (save_window_save): Obey window-point-insertion-type.
2969
2f097256
GM
29702012-04-11 Glenn Morris <rgm@gnu.org>
2971
2972 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
2973
453b951e
SM
29742012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
2975
2976 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
2977
75f1671a 29782012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
6bbef4e5
JC
2979
2980 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
2981 (force_quit_count): New var.
2982 (handle_interrupt): Use it.
2983
2a8ce227
JB
29842012-04-10 Juanma Barranquero <lekktu@gmail.com>
2985
2986 * w32.c (w32_delayed_load): Record the full path of the library
2987 being loaded (bug#10424).
2988
935396c0
GM
29892012-04-09 Glenn Morris <rgm@gnu.org>
2990
05920a43
GM
2991 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
2992 not just in the obarray, before snarfing them. (Bug#11036)
2993
935396c0
GM
2994 * Makefile.in ($(leimdir)/leim-list.el):
2995 Pass EMACS rather than BUILT_EMACS.
2996
a18ecafa
TZ
29972012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
2998
2999 * process.c (make_process):
3000 * process.h: Add integer `gnutls_handshakes_tried' member to
3001 process struct.
3002
6bbef4e5
JC
3003 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
3004 Add convenience `GNUTLS_LOG2i' macro.
a18ecafa
TZ
3005
3006 * gnutls.c (gnutls_log_function2i): Convenience log function.
3007 (emacs_gnutls_read): Use new log functions,
3008 `gnutls_handshakes_tried' process member, and
3009 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
3010 attempts per process (connection).
3011
b4d3bc10
CY
30122012-04-09 Chong Yidong <cyd@gnu.org>
3013
3014 * eval.c (Fuser_variable_p, user_variable_p_eh)
3015 (lisp_indirect_variable): Functions deleted.
3016 (Fdefvar): Caller changed.
3017
3018 * callint.c (Finteractive, Fcall_interactively):
3019 * minibuf.c (Fread_variable): Callers changed.
3020
70f4d973
EZ
30212012-04-09 Eli Zaretskii <eliz@gnu.org>
3022
3023 * xdisp.c (set_cursor_from_row): If the display string appears in
3024 the buffer at position that is closer to point than the position
3025 after the display string, display the cursor on the first glyph of
3026 the display string. Fixes cursor display when a 'display' text
3027 property immediately follows invisible text. (Bug#11094)
3028
cb3c2e3e
PE
30292012-04-09 Paul Eggert <eggert@cs.ucla.edu>
3030
3031 composite.c: use 'double' consistently
3032 * composite.c (get_composition_id): Use 'double' consistently
3033 instead of converting 'float' to 'double' and vice versa; this is
3034 easier to understand and avoids a GCC warning.
3035
fd06db5d
GM
30362012-04-09 Glenn Morris <rgm@gnu.org>
3037
50fe702a
GM
3038 * Makefile.in: Generate leim-list with bootstrap-emacs, in
3039 preparation for dumping it with emacs. (Bug#4789)
3040 (leimdir): New variable.
3041 ($(leimdir)/leim-list.el): New rule.
3042 (emacs$(EXEEXT)): Depend on leim-list.el.
3043
fd06db5d
GM
3044 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
3045 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
3046 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
3047
55c131ee
AS
30482012-04-08 Andreas Schwab <schwab@linux-m68k.org>
3049
3050 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
3051 proper alignment.
3052
9209588f
JB
30532012-04-07 Juanma Barranquero <lekktu@gmail.com>
3054
3055 * xml.c (init_libxml2_functions) [WINDOWSNT]:
3056 Remove unused local variable.
3057
e3fb2efb
PE
30582012-04-07 Paul Eggert <eggert@cs.ucla.edu>
3059
3060 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
3061 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
3062 (mark_memory): Mark Lisp_Objects only if pointers might hide in
3063 objects, as mark_maybe_pointer will catch them otherwise.
3064 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
3065 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
3066
b5385551
PE
30672012-04-07 Paul Eggert <eggert@cs.ucla.edu>
3068
3069 Fix typo that broke non-Windows builds.
3070 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
3071
9078ead6
EZ
30722012-04-07 Eli Zaretskii <eliz@gnu.org>
3073
3074 Support building on MS-Windows with libxml2.
3075
3076 * makefile.w32-in (OBJ2): Add xml.$(O).
3077 (GLOBAL_SOURCES): Add xml.c.
3078 ($(BLD)/xml.$(O)): New dependency list.
3079
3080 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
3081 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
3082 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
3083 [!WINDOWSNT]: New macros.
3084 (init_libxml2_functions, libxml2_loaded_p): New functions.
3085 (parse_region): Call fn_xmlCheckVersion instead of using the macro
3086 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
3087 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
3088 Calls xmlCleanupParser only if libxml2 was loaded (or statically
3089 linked in).
6bbef4e5
JC
3090 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
3091 Call init_libxml2_functions before calling libxml2 functions.
9078ead6
EZ
3092 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
3093
3094 * emacs.c: Don't include libxml/parser.h.
3095 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
3096 xmlCleanupParser directly.
3097
3098 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
3099
3811fdf3
EZ
31002012-04-07 Eli Zaretskii <eliz@gnu.org>
3101
3102 * indent.c (Fvertical_motion): If there is a display string at
3103 point, use it.vpos to compute how many lines to backtrack after
3104 move_it_to point. (Bug#11133)
3105
2f8e16b2
EZ
31062012-04-06 Eli Zaretskii <eliz@gnu.org>
3107
3108 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
3109 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
3110 about subtle differences between FETCH_CHAR* and STRING_CHAR*
3111 macros related to unification of CJK characters. For the details,
3112 see the discussion following the message here:
3113 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
3114
3d439cd1
CY
31152012-04-04 Chong Yidong <cyd@gnu.org>
3116
3117 * keyboard.c (Vdelayed_warnings_list): Doc fix.
3118
8bc53d00
EZ
31192012-04-01 Eli Zaretskii <eliz@gnu.org>
3120
3121 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
3122 instead of alloca. (Bug#11138)
3123
3b0512a3
AS
31242012-04-01 Andreas Schwab <schwab@linux-m68k.org>
3125
3126 * w32menu.c (is_simple_dialog): Properly check lisp types.
3127 (Bug#11141)
3128
8427ddd2
EZ
31292012-03-31 Eli Zaretskii <eliz@gnu.org>
3130
979022ef
EZ
3131 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
3132 position we get to after a call to move_it_to fails the
3133 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
3134 only if we wind up in a string from display property. (Bug#11063)
3135
a6b1c7cc
EZ
3136 * window.c (Fdelete_other_windows_internal): Invalidate the row
3137 and column information about mouse highlight, so that redisplay
3138 restores it after reallocating the glyph matrices. (Bug#7464)
3139
8427ddd2
EZ
3140 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
3141 string comes from a `display' text property, use the buffer
3142 position of that property as if we actually saw that position in
3143 the row's glyphs.
697ba24b
EZ
3144 (move_it_by_lines): Remove the assertion that
3145 "it->current_x == 0 && it->hpos == 0" which can be legitimately
3146 violated when there's a before-string at the beginning of a line.
3147 (Bug#11063)
8427ddd2 3148
65a0a738
EZ
31492012-03-30 Eli Zaretskii <eliz@gnu.org>
3150
3151 * xdisp.c (append_space_for_newline): If the default face was
3152 remapped, use the remapped face for the appended newline.
3153 (extend_face_to_end_of_line): Use the remapped default face for
3154 extending the face to the end of the line.
3155 (display_line): Call extend_face_to_end_of_line when the default
3156 face was remapped. (Bug#11068)
3157
581355cc
EZ
31582012-03-29 Eli Zaretskii <eliz@gnu.org>
3159
3160 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
3161
e8fc049f
SM
31622012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
3163
3164 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
3165
4fb9a543
GM
31662012-03-27 Glenn Morris <rgm@gnu.org>
3167
3168 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
3169 Doc fixes.
3170
679910f1
KH
31712012-03-26 Kenichi Handa <handa@m17n.org>
3172
3173 * dispextern.h (struct glyph): Fix previous change. Change the
3174 bit length of glyphless.ch to 25 (Bug#11082).
3175
90d49b7f
CY
31762012-03-26 Chong Yidong <cyd@gnu.org>
3177
3178 * keyboard.c (Vselection_inhibit_update_commands): New variable.
3179 (command_loop_1): Use it; inhibit selection update for
3180 handle-select-window too (Bug#8996).
3181
f514f6f0
FP
31822012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
3183
e8fc049f 3184 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
f514f6f0 3185
bf43fa51
KH
31862012-03-25 Kenichi Handa <handa@m17n.org>
3187
3188 * dispextern.h (struct glyph): Change the bit length of
3189 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
3190
8a0c01dd
EZ
31912012-03-24 Eli Zaretskii <eliz@gnu.org>
3192
3193 * s/ms-w32.h (tzname): Include time.h before redirecting to
3194 _tzname. Fixes the MSVC build. (Bug#9960)
3195
7d1c3a76
AS
31962012-03-24 Andreas Schwab <schwab@linux-m68k.org>
3197
8ed79523
AS
3198 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
3199 characters.
3200
7d1c3a76
AS
3201 * xterm.c (XTread_socket): Only modify handling_signal if
3202 !SYNC_INPUT. (Bug#11080)
3203
e99a9b8b
EZ
32042012-03-23 Eli Zaretskii <eliz@gnu.org>
3205
3206 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
3207 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
3208 when fetching a multibyte character consumes more bytes than
3209 CHAR_BYTES returns, due to unification of CJK characters in
3210 string_char. (Bug#11073)
3211
5063c0e1
TN
32122012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
3213
3214 * process.c (wait_reading_process_output): Handle pty disconnect
3215 by refraining from sending oneself a SIGCHLD (bug#10933).
3216
9f851fbd
CY
32172012-03-22 Chong Yidong <cyd@gnu.org>
3218
3219 * dispextern.h (struct it): New member string_from_prefix_prop_p.
3220
5063c0e1 3221 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
9f851fbd
CY
3222 Mark string as coming from a prefix property.
3223 (handle_face_prop): Use default face for prefix strings (Bug#4281).
3224 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
3225
fb5b8aca
CY
32262012-03-21 Chong Yidong <cyd@gnu.org>
3227
3228 * xfaces.c (Vface_remapping_alist): Doc fix.
3229
62356a1b
EZ
32302012-03-20 Eli Zaretskii <eliz@gnu.org>
3231
3232 * w32proc.c (Fw32_set_console_codepage)
5063c0e1
TN
3233 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
3234 Doc fixes.
62356a1b 3235
025de85b
CY
32362012-03-20 Chong Yidong <cyd@gnu.org>
3237
3238 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
3239 to reflect default non-nil value of redisplay-dont-pause.
3240
4827f94e
KH
32412012-03-19 Kenichi Handa <handa@m17n.org>
3242
3243 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
3244 it fit in a valid range (Bug#11003).
3245
e50a24a2
EZ
32462012-03-18 Eli Zaretskii <eliz@gnu.org>
3247
3248 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
3249 that is not from display property, accept the row as a "cursor
3250 row" if one of the string's character has a non-nil `cursor'
3251 property. Fixes cursor positioning when there are newlines in
3252 overlay strings, e.g. in icomplete.el. (Bug#11035)
3253
9af5ed87
PE
32542012-03-12 Paul Eggert <eggert@cs.ucla.edu>
3255
3256 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
3257
d1f55f16
CY
32582012-03-12 Chong Yidong <cyd@gnu.org>
3259
3260 * eval.c (inhibit_lisp_code): Rename from
3261 inhibit_window_configuration_change_hook; move from window.c.
3262
3263 * xfns.c (unwind_create_frame_1, Fx_create_frame):
3264 * window.c (run_window_configuration_change_hook)
3265 (syms_of_window): Callers changed.
3266
66c5eebd
CY
32672012-03-11 Chong Yidong <cyd@gnu.org>
3268
413df973
CY
3269 * keymap.c (Fkey_description): Doc fix (Bug#9700).
3270
66c5eebd
CY
3271 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
3272
1de11f56
CY
32732012-03-10 Chong Yidong <cyd@gnu.org>
3274
3275 * frame.c (other_visible_frames): Don't assume the selected frame
3276 is visible (Bug#10955).
3277
cae07000
SM
32782012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
3279
3280 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
3281
89c94350
JD
32822012-03-08 Jan Djärv <jan.h.d@swipnet.se>
3283
3284 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
3285 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
3286 zero (Bug#10954).
3287
999dd333
GM
32882012-03-03 Glenn Morris <rgm@gnu.org>
3289
01a6dcc8 3290 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
999dd333 3291
de0100f2
EZ
32922012-03-02 Eli Zaretskii <eliz@gnu.org>
3293
3294 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
3295 position past the first glyph_row that ends at ZV. (Bug#10902)
b8456c5c
EZ
3296 (redisplay_window, next_element_from_string): Fix typos in
3297 comments.
3e441275
EZ
3298 (redisplay_window): Pass to move_it_vertically the margin in
3299 pixels, not in screen lines.
de0100f2 3300
96a72ee9
GM
33012012-03-02 Glenn Morris <rgm@gnu.org>
3302
3303 * buffer.c (buffer-list-update-hook): Doc fix.
3304
312508d7
EZ
33052012-02-29 Eli Zaretskii <eliz@gnu.org>
3306
3307 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
3308 push_it before setting up the iterator for the first overlay
3309 string, even if we have an empty string loaded.
3310 (next_overlay_string): If there's an empty string on the iterator
3311 stack, pop the stack. (Bug#10903)
3312
27f3c637
PE
33132012-02-25 Paul Eggert <eggert@cs.ucla.edu>
3314
3315 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
3316 Suggested by Stefan Monnier in
3317 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
3318 * alloc.c (widen_to_Lisp_Object): New static function.
3319 (mark_memory): Also mark Lisp_Objects by fetching pointer words
3320 and widening them to Lisp_Objects. This would work even if
3321 USE_LSB_TAG is defined and wide integers are used, which might
3322 happen in a future version of Emacs.
3323
3c9dfce6
CY
33242012-02-25 Chong Yidong <cyd@gnu.org>
3325
fa74b241
CY
3326 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
3327 Doc fix.
3328
3c9dfce6
CY
3329 * xselect.c (Fx_selection_exists_p): Doc fix.
3330 (x_clipboard_manager_save_all): Print an informative message
3331 before saving to clipboard manager.
3332
9486df08
CY
33332012-02-24 Chong Yidong <cyd@gnu.org>
3334
3335 * keyboard.c (process_special_events): Handle all X selection
3336 requests in kbd_buffer, not just the next one (Bug#8869).
3337
f01d3321
CY
33382012-02-23 Chong Yidong <cyd@gnu.org>
3339
3340 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
3341 call when setting menu-bar-lines and tool-bar-lines parameters.
3342 (unwind_create_frame_1): New helper function.
3343
3344 * window.c (inhibit_window_configuration_change_hook): New var.
3345 (run_window_configuration_change_hook): Obey it.
b2e4ca7d 3346 (syms_of_window): Initialize it.
f01d3321 3347
86b847b6
CY
33482012-02-22 Chong Yidong <cyd@gnu.org>
3349
3350 * xterm.c (x_draw_image_relief): Add missing type check for
3351 Vtool_bar_button_margin (Bug#10743).
3352
a59225b1
CY
33532012-02-21 Chong Yidong <cyd@gnu.org>
3354
3355 * fileio.c (Vfile_name_handler_alist): Doc fix.
3356
3357 * buffer.c (Fget_file_buffer): Protect against invalid file
3358 handler return value.
3359
310f5bd4
PE
33602012-02-20 Paul Eggert <eggert@cs.ucla.edu>
3361
cb3a28cc
PE
3362 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
3363 when computing $valmask.
3364
310f5bd4
PE
3365 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
3366 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
3367 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
3368 It's useless in that case, and it can cause problems on hosts
3369 that allocate halves of EMACS_INT values separately.
3370 Reported by Dan Horák. Diagnosed by Andreas Schwab in
3371 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
3372 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
3373 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
3374 it avoids undefined behavior on hosts where shifting right by more
3375 than the word width has undefined behavior.
3376
2375c96a
CY
33772012-02-19 Chong Yidong <cyd@gnu.org>
3378
3379 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
3380 (Funhandled_file_name_directory, Ffile_name_as_directory)
3381 (Fdirectory_file_name, Fexpand_file_name)
3382 (Fsubstitute_in_file_name): Protect against invalid file handler
3383 return values (Bug#10845).
3384
3eb49e71
EZ
33852012-02-18 Eli Zaretskii <eliz@gnu.org>
3386
3387 * .gdbinit (pitx): Fix incorrect references to fields of the
3388 iterator stack.
3389
7b926f3f
CY
33902012-02-17 Chong Yidong <cyd@gnu.org>
3391
3392 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
3393
11273115
PE
33942012-02-15 Paul Eggert <eggert@cs.ucla.edu>
3395
3396 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
3397 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
3398
c3a70e2b
CY
33992012-02-15 Chong Yidong <cyd@gnu.org>
3400
3401 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
3402 marked as special. Also, starting docstrings with * is obsolete.
3403
0ca43699
AS
34042012-02-13 Andreas Schwab <schwab@linux-m68k.org>
3405
3406 * gnutls.c (emacs_gnutls_write): Fix last change.
3407
2e8f3c56
LI
34082012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
3409
3410 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
3411 send_process.
3412
af70074f
SM
34132012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
3414
3415 * keymap.c (Fsingle_key_description): Handle char ranges.
3416
95986d52
CY
34172012-02-12 Chong Yidong <cyd@gnu.org>
3418
afd83bd1
CY
3419 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
3420 as that creates a dangerous corner case.
3421
95986d52
CY
3422 * window.c (Fdelete_window_internal): Invalidate the mouse
3423 highlight (Bug#9904).
3424
bd7da63e
GM
34252012-02-12 Glenn Morris <rgm@gnu.org>
3426
3427 * xselect.c (Fx_own_selection_internal)
3428 (Fx_get_selection_internal, Fx_disown_selection_internal)
3429 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
3430 * nsselect.m (Fx_own_selection_internal)
3431 (Fx_disown_selection_internal, Fx_selection_exists_p)
3432 (Fx_selection_owner_p, Fx_get_selection_internal):
3433 Sync docs and argument specs with the xselect.c versions.
3434
77abcbc2
LI
34352012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
3436
3437 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
3438
90b671e2
EZ
34392012-02-11 Eli Zaretskii <eliz@gnu.org>
3440
1c0ca0b7
EZ
3441 * w32select.c (Fx_selection_exists_p): Sync doc string and
3442 argument list with xselect.c. (Bug#10783)
3443
3444 * w16select.c (Fx_selection_exists_p): Sync doc string and
3445 argument list with xselect.c. (Bug#10783)
90b671e2 3446
49241268
GM
34472012-02-10 Glenn Morris <rgm@gnu.org>
3448
3449 * fns.c (Fsecure_hash): Doc fix.
3450
f998bbe7 34512012-02-09 Kenichi Handa <handa@m17n.org>
5c1ca13d
KH
3452
3453 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
3454
0992bd9c
CY
34552012-02-07 Chong Yidong <cyd@gnu.org>
3456
3457 * buffer.c (Fbuffer_local_variables)
3458 (buffer_lisp_local_variables): Handle unbound vars correctly;
3459 don't let Qunbound leak into Lisp.
3460
af008560
GM
34612012-02-07 Glenn Morris <rgm@gnu.org>
3462
dd605cc4
GM
3463 * image.c (Fimagemagick_types): Doc fix.
3464
af008560
GM
3465 * image.c (imagemagick-render-type): Change it from a lisp object
3466 to an integer. Move the doc here from the lisp manual.
3467 Treat all values not equal to 0 the same.
3468
1449fa1d
CY
34692012-02-06 Chong Yidong <cyd@gnu.org>
3470
3471 * doc.c (store_function_docstring): Avoid applying docstring of
3472 alias to base function (Bug#2603).
3473
3723ec07
AS
34742012-02-04 Andreas Schwab <schwab@linux-m68k.org>
3475
3476 * .gdbinit (pp1, pv1): Remove redundant defines.
3477 (pr): Use pp.
3478
79c1cc1e
CY
34792012-02-04 Chong Yidong <cyd@gnu.org>
3480
3481 * nsterm.m: Declare a global (Bug#10694).
3482
d7f29f8e
EZ
34832012-02-04 Eli Zaretskii <eliz@gnu.org>
3484
cae07000
SM
3485 * w32.c (get_emacs_configuration_options):
3486 Include --enable-checking, if specified, in the return value.
d7f29f8e 3487
3b95a6f9
MR
34882012-02-04 Martin Rudalics <rudalics@gmx.at>
3489
3490 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
3491 after rounding frame sizes. (Bug#9723)
3492
d6fa96a6
EZ
34932012-02-04 Eli Zaretskii <eliz@gnu.org>
3494
3495 * keyboard.c (adjust_point_for_property): Don't position point
3496 before BEGV. (Bug#10696)
3497
df0b2940
PE
34982012-02-03 Paul Eggert <eggert@cs.ucla.edu>
3499
3500 Handle overflow when computing char display width (Bug#9496).
3501 * character.c (char_width): Return EMACS_INT, not int.
3502 (char_width, c_string_width): Check for overflow when
3503 computing the width; this is possible now that individual
3504 characters can have unbounded width. Problem introduced
3505 by merge from Emacs 23 on 2012-01-19.
3506
6bee44d6
MA
35072012-02-02 Michael Albinus <michael.albinus@gmx.de>
3508
3509 * dbusbind.c (Fdbus_register_method): Mention the return value
3510 :ignore in the docstring.
3511
44f92739
GM
35122012-02-02 Glenn Morris <rgm@gnu.org>
3513
1b9f60cc
GM
3514 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
3515
44f92739
GM
3516 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
3517 Unconditionally set to t. (Bug#10673)
3518 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
3519 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
3520 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
3521
c5d3843c
KH
35222012-02-02 Kenichi Handa <handa@m17n.org>
3523
3524 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
3525 0, do not call append_composite_glyph.
3526
159462d4 35272012-02-02 Kenichi Handa <handa@m17n.org>
d2a51fd7
KH
3528
3529 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
3530 NULL (Bug#6988).
3531 (x_produce_glyphs): If the component of a composition is a null
3532 string, set it->pixel_width to 1 to avoid zero-width glyph.
3533
78cef877
EZ
35342012-02-01 Eli Zaretskii <eliz@gnu.org>
3535
3536 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
3537 first 2 arguments are identical. This makes inserting large
3538 output from a subprocess an order of magnitude faster on
3539 MS-Windows, where all sbrk'ed memory is always contiguous.
3540
97897668
GM
35412012-01-31 Glenn Morris <rgm@gnu.org>
3542
3543 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
c78c6e0b 3544 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
97897668
GM
3545 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
3546
31fd3586
GM
35472012-01-29 Glenn Morris <rgm@gnu.org>
3548
3549 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
3550
0e24a8b2
CY
35512012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
3552
3553 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
3554
cc0adcb0
CY
35552012-01-28 Chong Yidong <cyd@gnu.org>
3556
3557 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
3558
acc28cb9
CY
35592012-01-26 Chong Yidong <cyd@gnu.org>
3560
9c69cfb7
CY
3561 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
3562
acc28cb9
CY
3563 * search.c (Fsearch_forward, Fsearch_backward): Document negative
3564 repeat counts (Bug#10507).
3565
48da7392
GM
35662012-01-26 Glenn Morris <rgm@gnu.org>
3567
3568 * lread.c (syms_of_lread): Doc fix.
3569
14af5f7f
CY
35702012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
3571
3572 * coding.c (encode_designation_at_bol): Change return value to
3573 EMACS_INT.
3574
0b21c100
CY
35752012-01-25 Chong Yidong <cyd@gnu.org>
3576
3577 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
3578
3c2907f7
CY
35792012-01-21 Chong Yidong <cyd@gnu.org>
3580
3581 * floatfns.c (Fcopysign): Make the second argument non-optional,
3582 since nil is not allowed anyway.
3583
959ad23f
AS
35842012-01-21 Andreas Schwab <schwab@linux-m68k.org>
3585
3586 * process.c (read_process_output): Use p instead of XPROCESS (proc).
3587 (send_process): Likewise.
3588
34a02f46
MR
35892012-01-19 Martin Rudalics <rudalics@gmx.at>
3590
3591 * window.c (save_window_save, Fcurrent_window_configuration)
cae07000
SM
3592 (Vwindow_persistent_parameters): Do not use Qstate.
3593 Rewrite doc-strings.
34a02f46 3594
1259009a 35952012-01-19 Kenichi Handa <handa@m17n.org>
25ed9e61
KH
3596
3597 * character.c (char_width): New function.
70d4fdf6
GM
3598 (Fchar_width, c_string_width, lisp_string_width):
3599 Use char_width (Bug#9496).
25ed9e61 3600
6a6ee00d
MR
36012012-01-16 Martin Rudalics <rudalics@gmx.at>
3602
3603 * window.c (Vwindow_persistent_parameters): New variable.
3604 (Fset_window_configuration, save_window_save): Handle persistent
3605 window parameters.
3606
c85efaf7
EZ
36072012-01-14 Eli Zaretskii <eliz@gnu.org>
3608
3609 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
3610 thrashing the stack of the thread. (Bug#9087)
3611
5944709e
PE
36122012-01-12 Paul Eggert <eggert@cs.ucla.edu>
3613
3614 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
3615
e71f5d99
EZ
36162012-01-11 Eli Zaretskii <eliz@gnu.org>
3617
3618 * xdisp.c (rows_from_pos_range): Handle the case where the
3619 highlight ends on a newline. (Bug#10464)
3620 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
3621 he end column for display of highlight that ends on a newline
3622 before a R2L line.
3623
ce316182
GM
36242012-01-11 Glenn Morris <rgm@gnu.org>
3625
3626 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
3627 from load-path also when installation-directory is nil. (Bug#10208)
3628
5b43da69
GM
36292012-01-10 Glenn Morris <rgm@gnu.org>
3630
74cc8ff9
GM
3631 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
3632
7d8d6e4e
GM
3633 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
3634 Update template values to be closer to their typical values these days.
5b43da69 3635
a0db8d43
EZ
36362012-01-09 Eli Zaretskii <eliz@gnu.org>
3637
3638 * xdisp.c (rows_from_pos_range): Accept additional argument
3639 DISP_STRING, and accept any glyph in a row whose object is that
3640 string as eligible for mouse highlight. Fixes mouse highlight of
3641 display strings from overlays. (Bug#10464)
3642
9a0115ab 36432012-01-07 Paul Eggert <eggert@cs.ucla.edu>
09450bae 3644
b9110d6a 3645 emacs: fix an auto-save permissions race condition (Bug#10400)
09450bae
PE
3646 * fileio.c (auto_saving_dir_umask): New static var.
3647 (Fmake_directory_internal): Use it.
3648 (do_auto_save_make_dir): Set it, instead of invoking chmod after
3649 creating the directory. The old code temporarily assigns
3650 too-generous permissions to the directory.
3651 (do_auto_save_eh): Clear it.
b9110d6a 3652 (Fdo_auto_save): Catch all errors, not just file errors, so
09450bae
PE
3653 that the var is always cleared.
3654
6c1bd3f3
EZ
36552012-01-07 Eli Zaretskii <eliz@gnu.org>
3656
3657 * search.c (scan_buffer): Pass character positions to
3658 know_region_cache, not byte positions. (Bug#6540)
3659
069d2b50
L
36602012-01-07 LynX <_LynX@bk.ru> (tiny change)
3661
3662 * w32.c (sys_rename): Report EXDEV when rename of a directory
3663 fails because the target is on another logical disk. (Bug#10284)
3664
75bf0d33
DB
36652012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
3666
3667 * xterm.c (x_embed_request_focus): New function.
3668
3669 * xterm.h: Add prototype.
3670
3671 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
3672
1c6e5a32
GM
36732012-01-05 Glenn Morris <rgm@gnu.org>
3674
3675 * emacs.c (emacs_copyright): Update short copyright year to 2012.
3676
651e947e
EZ
36772012-01-01 Eli Zaretskii <eliz@gnu.org>
3678
3679 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
3680 Load gnutls_transport_set_lowat only if GnuTLS version is below
3681 2.11.1.
3682 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
3683 GnuTLS versions below 2.11.1.
3684
3778cdd8
AL
36852011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
3686
3687 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
3688 to the doc string advising against its use for altering the way
3689 windows are scrolled.
3690
0e5317f7
KH
36912011-12-28 Kenichi Handa <handa@m17n.org>
3692
3693 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
3694 coding-system ASCII compatible only when it does not produce BOM
3695 on encoding (Bug#10383).
3696
93d5ca1f
JD
36972011-12-26 Jan Djärv <jan.h.d@swipnet.se>
3698
3699 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
3700 can scroll.
3701 (create_and_show_popup_menu): Always use menu_position_func for
3702 Gtk3 (Bug#10361).
3703
ca22b785
AS
37042011-12-24 Andreas Schwab <schwab@linux-m68k.org>
3705
3706 * callint.c (Fcall_interactively): Don't truncate prompt string.
3707
d048e1e6
EZ
37082011-12-23 Eli Zaretskii <eliz@gnu.org>
3709
3710 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
3711 property that ends at ZV, so that the bidi iteration could be
3ba1a2ad 3712 resumed from there (after widening). (Bug#10360)
d048e1e6 3713
5ccaba1f
JD
37142011-12-22 Jan Djärv <jan.h.d@swipnet.se>
3715
3716 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
3717
204ee57f
JD
37182011-12-21 Jan Djärv <jan.h.d@swipnet.se>
3719
b81d40f0
JB
3720 * nsterm.m (x_free_frame_resources):
3721 Release f->output_data.ns->miniimage.
204ee57f
JD
3722 (ns_index_color): Fix indentation. Do not retain
3723 color_table->colors[i].
3724
3725 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
3726 before returning.
3727
3728 * nsfns.m (x_set_background_color): Assign return value from
3729 ns_index_color to face-background instead of NSColor*.
3730 (ns_implicitly_set_icon_type): Fix indentation.
3731 Change assignment in for loop to comparison.
3732
3733 * emacs.c (ns_pool): New variable.
3734 (main): Assign ns_pool.
3735 (Fkill_emacs): Call ns_release_autorelease_pool.
3736
3737 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
3738 autorelease fdesc, release fdAttrs and tdict.
3739 (ns_get_covering_families): Release charset.
3740 (ns_findfonts): Release NSFontDescriptor created with new.
3741 (ns_uni_to_glyphs): Fix indentation.
3742 (setString): Release attrStr before assigning new value.
3743
c803b2b7
JD
37442011-12-18 Jan Djärv <jan.h.d@swipnet.se>
3745
678f4426
JD
3746 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
3747 and NS_IMPL_COCOA.
3748 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
3749 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
3750
cd394be1 37512011-12-18 David Reitter <reitter@cmu.edu>
678f4426 3752
5fecd5fc
JD
3753 * nsterm.m (ns_term_init): Subscribe for notifications
3754 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
3755 to method trackingNotification in EmacsMenu.
3756
3757 * nsmenu.m (trackingMenu): New variable.
3771cb17 3758 (trackingNotification): New method (from Aquamacs).
5fecd5fc 3759 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
3771cb17 3760 from Aquamacs (Bug#7030).
678f4426
JD
3761
37622011-12-18 Jan Djärv <jan.h.d@swipnet.se>
5fecd5fc 3763
c803b2b7
JD
3764 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
3765 (symbol_to_nsstring): Fix indentation.
3766 (ns_symbol_to_pb): New function.
cae07000
SM
3767 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
3768 (Fns_rotate_cut_buffers_internal): Remove.
3769 (Fns_store_selection_internal): Rename from
c803b2b7
JD
3770 Fns_store_cut_buffer_internal.
3771 (ns_get_foreign_selection, Fx_own_selection_internal)
3772 (Fx_disown_selection_internal, Fx_selection_exists_p)
b81d40f0
JB
3773 (Fns_get_selection_internal, Fns_store_selection_internal):
3774 Use ns_symbol_to_pb and check if return value is nil.
3775 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
3776 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
c803b2b7
JD
3777 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
3778 renamed to Sns_store_selection_internal.
3779 (ns_handle_selection_request): Move code to Fx_own_selection_internal
3780 and remove this function.
3781 (ns_handle_selection_clear): Remove, never used.
3782 (Fx_own_selection_internal): Move code from ns_handle_selection_request
3783 here.
3784
e1b01a3a
KB
37852011-12-17 Ken Brown <kbrown@cornell.edu>
3786
3787 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
3788 GID is unknown (Bug#10257).
3789
2adb6e85
PE
37902011-12-17 Paul Eggert <eggert@cs.ucla.edu>
3791
3792 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
3793 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
3794 which caused a build failure on GNU/Linux IA-64. This problem was
3795 introduced by my 2011-10-07 patch.
3796
d1d7b339
JL
37972011-12-15 Juri Linkov <juri@jurta.org>
3798
3799 * image.c (imagemagick_error): New function. (Bug#10112)
3800 (imagemagick_load_image): Comment out `MagickSetResolution' call.
3801 Use `imagemagick_error' where ImageMagick functions return
3802 `MagickFalse'.
3803 (Fimagemagick_types): Add `Fnreverse' to return the list in the
3804 proper order.
3805
100d5755
KH
38062011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3807
3808 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
3809 fill background (Bug#8992).
3810
454592a6
MR
38112011-12-13 Martin Rudalics <rudalics@gmx.at>
3812
3813 * window.c (Vwindow_combination_resize)
3814 (Vwindow_combination_limit): Use t instead of non-nil in
3815 doc-strings.
61d4b438
MR
3816 (Vrecenter_redisplay): Add first sentence of doc-string on
3817 separate line.
53524d93 3818 (Frecenter): Fix doc-string typo.
454592a6 3819
3633e3aa
KH
38202011-12-11 Kenichi Handa <handa@m17n.org>
3821
3822 * coding.c (Funencodable_char_position): Pay attention to the
3823 buffer text relocation (Bug#9389).
3824
7b9d523a 38252011-12-10 Jan Djärv <jan.h.d@swipnet.se>
61ccba97 3826
7b9d523a
JD
3827 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
3828 gtk_init (Bug#10100).
3829
b73189c6
EZ
38302011-12-10 Eli Zaretskii <eliz@gnu.org>
3831
3832 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
3833 IT->string is nil. (Bug#10263)
3834
f7dfe5d6
JD
38352011-12-10 Jan Djärv <jan.h.d@swipnet.se>
3836
83faebb4
JD
3837 * nsterm.h (x_free_frame_resources): Declare.
3838
f7dfe5d6
JD
3839 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
3840 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
3841
3842 * nsterm.h (ns_get_defaults_value): Declare.
3843
3844 * nsterm.m (ns_default): Call ns_get_defaults_value.
3845
7cd4e72c
EZ
38462011-12-09 Eli Zaretskii <eliz@gnu.org>
3847
3848 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
3849 (Bug#10170)
3850
b34d7317
YM
38512011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3852
3853 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
3854 that where the value of an _OBJC_* symbol points to is in the .bss
3855 section (Bug#10240).
3856
76470ad1
KH
38572011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
3858
3859 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
2fac8180 3860 after the loop to call ccl_driver at least once (Bug#8619).
76470ad1 3861
745fff94
KH
38622011-12-08 Kenichi Handa <handa@m17n.org>
3863
3864 * ftfont.c (get_adstyle_property): Fix previous change
3865 (Bug#10233).
3866
6e44397c
JB
38672011-12-07 Juanma Barranquero <lekktu@gmail.com>
3868
3869 * w32.c (init_environment): If no_site_lisp, remove site-lisp
3870 dirs from the default value of EMACSLOADPATH (bug#10208).
3871
7efa6272
GM
38722011-12-07 Glenn Morris <rgm@gnu.org>
3873
3874 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
3875 installation and source directories as well. (Bug#10208)
3876
f6fc4d87
CY
38772011-12-06 Chong Yidong <cyd@gnu.org>
3878
3879 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
3880
2bf26180
GM
38812011-12-06 Glenn Morris <rgm@gnu.org>
3882
3883 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
3884 as an error, not just -1. (Bug#10217)
3885
3a6ad4f0
CY
38862011-12-05 Chong Yidong <cyd@gnu.org>
3887
3888 * keyboard.c (process_special_events): New function.
3889 (swallow_events, Finput_pending_p): Use it (Bug#10195).
3890
75a3b399
PE
38912011-12-05 Paul Eggert <eggert@cs.ucla.edu>
3892
3893 * coding.c (encode_designation_at_bol): Don't use uninitialized
3894 local variable (Bug#9318).
3895
c3c9e25e
KH
38962011-12-05 Kenichi Handa <handa@m17n.org>
3897
3898 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
3899 return Qnil (Bug#8046, Bug#10193).
3900
5eb05ea3
KH
39012011-12-05 Kenichi Handa <handa@m17n.org>
3902
3903 * coding.c (encode_designation_at_bol): New args charbuf_end and
3904 dst. Return the number of produced bytes. Callers changed.
a79703f5
KH
3905 (coding_set_source): Return how many bytes coding->source was
3906 relocated.
3907 (coding_set_destination): Return how many bytes
3908 coding->destination was relocated.
3909 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
cae07000 3910 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
5eb05ea3
KH
3911
39122011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
3913
3914 * coding.c (CODING_CHAR_CHARSET_P): New macro.
3915 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
3916 macro (Bug#9318).
3917
39182011-12-05 Andreas Schwab <schwab@linux-m68k.org>
3919
3920 The following changes are to fix Bug#9318.
3921
a79703f5 3922 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
5eb05ea3
KH
3923 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
3924 (encode_coding_iso_2022, encode_coding_sjis)
a79703f5 3925 (encode_coding_big5, encode_coding_charset): Use the above macros.
5eb05ea3 3926
7dbda6df
JB
39272011-12-05 Juanma Barranquero <lekktu@gmail.com>
3928
3929 * lisp.h (process_quit_flag): Fix external declaration.
3930
6d5eb5b0
SM
39312011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
3932
3933 Don't macro-inline non-performance-critical code.
3934 * eval.c (process_quit_flag): New function.
3935 * lisp.h (QUIT): Use it.
3936
a0c3fad0
JD
39372011-12-04 Jan Djärv <jan.h.d@swipnet.se>
3938
3939 * nsfns.m (get_geometry_from_preferences): New function.
3940 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
3941
6c07aac2
AS
39422011-12-04 Andreas Schwab <schwab@linux-m68k.org>
3943
3944 * emacs.c (Qkill_emacs): Define.
3945 (syms_of_emacs): Initialize it.
3946 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
3947 Qquit_flag to `kill-emacs' instead.
6d5eb5b0
SM
3948 (quit_throw_to_read_char): Add parameter `from_signal'.
3949 All callers changed. Call Fkill_emacs if requested and safe.
6c07aac2
AS
3950 * lisp.h (QUIT): Call Fkill_emacs if requested.
3951
c052ead4
JD
39522011-12-03 Jan Djärv <jan.h.d@swipnet.se>
3953
3954 * widget.c (update_wm_hints): Return if wmshell is null.
3955 (widget_update_wm_size_hints): New function.
3956
3957 * widget.h (widget_update_wm_size_hints): Declare.
3958
3959 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
3960 widget_update_wm_size_hints (Bug#10104).
3961
9e49252b
EZ
39622011-12-03 Eli Zaretskii <eliz@gnu.org>
3963
3964 * xdisp.c (handle_invisible_prop): If the invisible text ends just
3965 before a newline, prepare the bidi iterator for consuming the
3966 newline, and keep the current paragraph direction. (Bug#10183)
e9a49426 3967 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
9e49252b 3968
02b16839
JL
39692011-12-02 Juri Linkov <juri@jurta.org>
3970
3971 * search.c (Fword_search_regexp): New Lisp function created from
3972 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
3973 (Fword_search_backward, Fword_search_forward)
3974 (Fword_search_backward_lax, Fword_search_forward_lax):
3975 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
3976 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
3977
0068070e
SM
39782011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
3979
3980 * fileio.c (Finsert_file_contents): Move after-change-function call
3981 to before the "handled:" label, since all "goto handled" appear in
3982 cases where the *-change-functions have already been properly called
3983 (bug#10117).
3984
3360a3fc
AS
39852011-12-01 Andreas Schwab <schwab@linux-m68k.org>
3986
3987 * keyboard.c (interrupt_signal): Don't call kill-emacs when
3988 waiting for input. (Bug#10169)
3989
73d6c093
EZ
39902011-11-30 Eli Zaretskii <eliz@gnu.org>
3991
3992 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
3993 verifies glyph row's hash code--we have just reallocated the
3994 glyphs, so their contents can be complete garbage. (Bug#10164)
3995
febe6bea
JB
39962011-11-30 Juanma Barranquero <lekktu@gmail.com>
3997
3998 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
3999
801a4313
EZ
40002011-11-30 Eli Zaretskii <eliz@gnu.org>
4001
4002 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
4003 attributes are tested _before_ calling verify_row_hash, to protect
4004 against GCC re-ordering of the tests. (Bug#10164)
4005
2b56b87e
JD
40062011-11-29 Jan Djärv <jan.h.d@swipnet.se>
4007
4008 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
4009
4010 * xterm.c (handle_one_xevent): Only set async_visible and friends
4011 if net_wm_state_hidden_seen is non-zero (Bug#10002)
7dbda6df 4012 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
2b56b87e
JD
4013 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
4014
dbf31225
PE
40152011-11-28 Paul Eggert <eggert@cs.ucla.edu>
4016
4017 Remove GCPRO-related macros that exist only to avoid shadowing locals.
4018 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
4019 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
4020 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
4021 All uses changed to use GCPRO1 etc.
4022 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
4023 Revert to old implementation (i.e., before 2011-03-11).
4024
1305621b
YM
40252011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
4026
4027 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
4028 of scroll runs so as to avoid assigning disabled bogus rows and
4029 unnecessary graphics copy operations.
4030
8c9afb46
EZ
40312011-11-27 Eli Zaretskii <eliz@gnu.org>
4032
4033 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
4034 (snprintf) [_MSC_VER]: Redirect to _snprintf.
4035 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
4036 (malloc, free, realloc, calloc): Redirect to e_* only when
4037 compiling Emacs.
4038
4039 * lisp.h (GCTYPEBITS): Move before first use.
4040 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
4041 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
4042 this macro definition.
4043
4044 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
4045 _MSC_VER.
4046
54e9e3bf
JD
40472011-11-27 Jan Djärv <jan.h.d@swipnet.se>
4048
6d5eb5b0
SM
4049 * gtkutil.c (xg_create_frame_widgets):
4050 Call gtk_window_set_has_resize_grip (FALSE) if that function is
54e9e3bf
JD
4051 present with Gtk+ 2.0.
4052
83aca1cb
PE
40532011-11-26 Paul Eggert <eggert@cs.ucla.edu>
4054
4055 * fileio.c (Finsert_file_contents): Undo previous change; see
4056 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
4057
5b76caa4
PE
40582011-11-26 Paul Eggert <eggert@cs.ucla.edu>
4059
4060 Rename locals to avoid shadowing.
4061 * fileio.c (Finsert_file_contents):
4062 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
4063 * process.c (wait_reading_process_output):
4064 Rename inner 'proc' to 'p' to avoid shadowing.
4065 Indent for consistency with usual Emacs style.
4066
8c535114
EZ
40672011-11-25 Eli Zaretskii <eliz@gnu.org>
4068
4069 * xdisp.c (redisplay_window): If cursor row is not fully visible
4070 after recentering, and scroll-conservatively is set to a large
4071 number, scroll window by a few more lines to make the cursor fully
4072 visible and out of scroll-margin. (Bug#10105)
91b4a718
EZ
4073 (start_display): Don't move to the next line if the display should
4074 start at a newline that is part of a display vector or an overlay
4075 string. (Bug#10119)
8c535114 4076
fa4fdb5c
JL
40772011-11-24 Juri Linkov <juri@jurta.org>
4078
4079 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
4080 after the `MagickPingImage' call. (Bug#10112)
4081
90ec88df
CY
40822011-11-23 Chong Yidong <cyd@gnu.org>
4083
4084 * window.c (Fcoordinates_in_window_p): Accept only live windows.
4085
56e2e794
MR
40862011-11-23 Martin Rudalics <rudalics@gmx.at>
4087
4088 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
4089 making another buffer current. (Bug#10114)
4090
b6e64c41
GM
40912011-11-23 Glenn Morris <rgm@gnu.org>
4092
4093 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
4094
6b21de18
CY
40952011-11-23 Chong Yidong <cyd@gnu.org>
4096
4097 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
4098 using it (Bug#5984).
4099
b12cd789
EZ
41002011-11-22 Eli Zaretskii <eliz@gnu.org>
4101
4102 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
4103 and header-lines, as they don't have one computed for them.
4104 (Bug#10098)
4105
4106 * .gdbinit (prow): Make displayed values more self-explaining.
4107 Add row's hash code.
4108
261b6fd4
LMI
41092011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
4110
4111 * process.c (wait_reading_process_output): Fix asynchrounous
4112 GnuTLS socket handling on some versions of the GnuTLS library.
16c1ad08 4113 (wait_reading_process_output): Add comment and URL.
261b6fd4 4114
e7cfd277
JD
41152011-11-21 Jan Djärv <jan.h.d@swipnet.se>
4116
4117 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
4118
a9b9b7f5
CY
41192011-11-21 Chong Yidong <cyd@gnu.org>
4120
4121 * window.c (Fnext_window, Fprevious_window): Doc fix.
4122
b0d15b4f
SM
41232011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
4124
4125 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
4126
fe7a3057
JB
41272011-11-20 Juanma Barranquero <lekktu@gmail.com>
4128
4129 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
4130
d2999b1a
MR
41312011-11-20 Martin Rudalics <rudalics@gmx.at>
4132
4133 * window.c (Fset_window_combination_limit): Rename argument
4134 STATUS to LIMIT.
4135 (Vwindow_combination_limit): Remove "status" from doc-string.
4136
d5ff9cd0
AS
41372011-11-20 Andreas Schwab <schwab@linux-m68k.org>
4138
4139 * m/ibms390.h: Remove.
4140 * m/ibms390x.h: Don't include "ibms390.h".
4141
a5bb9bd3
SM
41422011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
4143
4144 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
4145 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
4146
cd1181db
JB
41472011-11-20 Juanma Barranquero <lekktu@gmail.com>
4148
4149 * casetab.c (Fset_case_table):
4150 * charset.c (Fcharset_after): Fix typos.
4151
615a3b8d 41522011-11-20 Paul Eggert <eggert@cs.ucla.edu>
6a0bf43d 4153
17e845af
PE
4154 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
4155 Otherwise, valgrind does not work on some platforms.
4156 Problem reported by Andreas Schwab in
6a0bf43d
PE
4157 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
4158 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
4159 is set, removing the need for VIRT_ADDRESS_VARIES.
4160 (PURE_P): Use a more-efficient implementation that needs just one
4161 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
4162 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
4163 to 4 (xorl, subq, cmpq, setbe).
4164 * alloc.c (pure): Always extern now, since that's the
4165 VIRT_ADDR_VARIES behavior.
4166 (PURE_POINTER_P): Use a single comparison, not two, for
4167 consistency with the new puresize.h.
4168 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
4169 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
4170 Remove VIRT_ADDR_VARIES no longer needed.
4171
f8fe6f96
EZ
41722011-11-19 Eli Zaretskii <eliz@gnu.org>
4173
4174 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
4175 (erase_phys_cursor, update_window_cursor, show_mouse_face)
4176 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
4177 behave as if the cursor position were at the window margin.
4178
4179 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
4180 and the cursor position is out of bounds, behave as if the cursor
4181 position were at the window margin. (Bug#10075)
4182
df05a53c
CY
41832011-11-18 Chong Yidong <cyd@gnu.org>
4184
4185 * window.c (Fwindow_combination_limit): Make first argument
4186 non-optional, since it is meaningless for live windows like the
4187 selected window.
61ccba97 4188
2071918e
DA
41892011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
4190
4191 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
4192
b50a28de
SM
41932011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
4194
4195 * intervals.c: Fix grafting over the whole buffer (bug#10071).
4196 (graft_intervals_into_buffer): Simplify.
4197
015137db
EZ
41982011-11-18 Eli Zaretskii <eliz@gnu.org>
4199
4200 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
4201 hash values of the two rows.
4202 (copy_row_except_pointers): Preserve the used[] arrays and the
4203 hash values of the two rows. (Bug#10035)
68c95424 4204 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
015137db
EZ
4205
4206 * xdisp.c (row_hash): New function, body extracted from
4207 compute_line_metrics.
4208 (compute_line_metrics): Call row_hash, instead of computing the
4209 hash code inline.
4210
4211 * dispnew.c (verify_row_hash): Call row_hash for computing the
4212 hash code of a row, instead of duplicating code from xdisp.c.
4213
4214 * dispextern.h (row_hash): Add prototype.
4215
a2addb04
TH
42162011-11-18 Tassilo Horn <tassilo@member.fsf.org>
4217
4218 * frame.c (delete_frame): Don't delete the terminal when the last
4219 X frame is closed if emacs is built with GTK toolkit.
4220
df85d315
JB
42212011-11-17 Juanma Barranquero <lekktu@gmail.com>
4222
4223 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
4224
a0c2d0ae
MR
42252011-11-17 Martin Rudalics <rudalics@gmx.at>
4226
4227 * window.c (Vwindow_splits): Rename to
4228 Vwindow_combination_resize. Suggested by Juri Linkov.
4229 (Fsplit_window_internal): Use Vwindow_combination_resize instead
4230 of Vwindow_splits.
4231
58179cce
JB
42322011-11-16 Juanma Barranquero <lekktu@gmail.com>
4233
7877f373
JB
4234 * nsfns.m (Fns_font_name):
4235 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
58179cce 4236
b6f67890
MR
42372011-11-16 Martin Rudalics <rudalics@gmx.at>
4238
4239 * window.h (window): Rename slot "nest" to "combination_limit".
4240 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
4241 (Fset_window_nest): Rename to Fset_window_combination_limit.
4242 (Vwindow_nest): Rename to Vwindow_combination_limit.
4243 (recombine_windows, make_parent_window, make_window)
4244 (Fsplit_window_internal, saved_window)
4245 (Fset_window_configuration, save_window_save): Rename all
4246 occurrences of window_nest to window_combination_limit.
4247
c7015153
JB
42482011-11-15 Juanma Barranquero <lekktu@gmail.com>
4249
4250 * image.c (imagemagick_load_image): Fix typo.
4251
322ad6ec
EZ
42522011-11-14 Eli Zaretskii <eliz@gnu.org>
4253
4254 * xdisp.c (display_line): Move the call to
4255 highlight_trailing_whitespace before the call to
4256 compute_line_metrics, since the latter needs to see the final
6d5eb5b0
SM
4257 faces of all the glyphs to compute ROW's hash value.
4258 Fixes assertion violations in row_equal_p. (Bug#10035)
322ad6ec 4259
f067b8ec
JB
42602011-11-14 Juanma Barranquero <lekktu@gmail.com>
4261
4262 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
4263 just return (bug#10044).
4264
1e5b2111
EZ
42652011-11-12 Eli Zaretskii <eliz@gnu.org>
4266
7ef3cbd5
EZ
4267 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
4268 with user-defined heap size. Bump the default size of the temacs
4269 heap to 27MB, to avoid memory warning when running temacs.
4270 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
4271
1e5b2111
EZ
4272 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
4273 current_matrix and desired_matrix. (Bug#9990)
7a7270dd
EZ
4274 (verify_row_hash) [XASSERTS]: New function.
4275 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
4276 that the hash value of glyph rows is correct.
1e5b2111 4277
89d61221
MR
42782011-11-12 Martin Rudalics <rudalics@gmx.at>
4279
4280 * window.h (window): Remove splits slot.
4281 * window.c (Fwindow_splits, Fset_window_splits): Remove.
4282 (Fdelete_other_windows_internal, make_parent_window)
4283 (make_window, Fsplit_window_internal, Fdelete_window_internal)
4284 (Fset_window_configuration, save_window_save): Don't deal with
4285 split status of windows.
4286 (saved_window): Remove splits slot.
4287 (Vwindow_splits): Rewrite doc-string.
4288
97f18cc8
JD
42892011-11-11 Jan Djärv <jan.h.d@swipnet.se>
4290
4291 * xfns.c (unwind_create_frame):
4292 * nsfns.m (unwind_create_frame):
4293 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
4294 Vframe_list (Bug#9999).
4295
22a648b4
DA
42962011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
4297
0b381c7e 4298 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
22a648b4 4299
659afede
KH
43002011-11-11 Kenichi Handa <handa@m17n.org>
4301
4302 * callproc.c (Fcall_process): Set the member dst_multibyte of
4303 process_coding.
4304
9ac0394b
KH
43052011-11-11 Johan Bockgård <bojohan@gnu.org>
4306
4307 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
4308 avoid a crash (bug#9496).
4309
2fbdc249
CY
43102011-11-09 Chong Yidong <cyd@gnu.org>
4311
4312 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
4313 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
4314
ac6b1f81
PE
43152011-11-08 Paul Eggert <eggert@cs.ucla.edu>
4316
4317 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
4318
09db192c
PE
43192011-11-08 Paul Eggert <eggert@cs.ucla.edu>
4320
4321 Avoid some portability problems by eschewing 'extern inline' functions.
4322 The trivial performance wins aren't worth the portability hassles; see
4323 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
4324 et seq.
4325 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
4326 (window_box_width, window_box_left, window_box_left_offset)
4327 (window_box_right, window_box_right_offset): Undo previous change,
4328 by removing the "extern"s.
4329 * intervals.c (adjust_intervals_for_insertion)
4330 (adjust_intervals_for_deletion): Undo previous change,
4331 making these static again.
4332 (offset_intervals, temp_set_point_both, temp_set_point)
4333 (copy_intervals_to_string): No longer inline.
4334 * xdisp.c (window_text_bottom_y, window_box_width)
4335 (window_box_height, window_box_left_offset)
4336 (window_box_right_offset, window_box_left, window_box_right)
4337 (window_box): No longer inline.
4338
105216ed
CY
43392011-11-08 Chong Yidong <cyd@gnu.org>
4340
4341 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
6d5eb5b0
SM
4342 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
4343 Signal an error if not a live window.
105216ed
CY
4344 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
4345 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
4346
ae9e237f
JB
43472011-11-07 Juanma Barranquero <lekktu@gmail.com>
4348
4349 * lisp.h (syms_of_abbrev): Remove declaration.
4350 Reported by CHENG Gao <chenggao@royau.me>.
4351
c7aa8333
EZ
43522011-11-07 Eli Zaretskii <eliz@gnu.org>
4353
4354 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
4355 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
4356 of temacs in GUI mode.
4357
be7f5545
MR
43582011-11-07 Martin Rudalics <rudalics@gmx.at>
4359
4360 * window.h: Declare delete_all_child_windows instead of
4361 delete_all_subwindows.
4362 * window.c (Fwindow_nest, Fset_window_nest)
4363 (Fset_window_new_total, Fset_window_new_normal)
4364 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
4365 (delete_all_subwindows): Rename to delete_all_child_windows.
4366 (Fdelete_other_windows_internal, Fset_window_configuration):
4367 Call delete_all_child_windows instead of delete_all_subwindows.
4368 * frame.c (delete_frame): Call delete_all_child_windows instead
4369 of delete_all_subwindows.
4370
ca78dc43
PE
43712011-11-07 Paul Eggert <eggert@cs.ucla.edu>
4372
4373 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
4374 This is also needed for porting to any host where GC_MARK_STACK is
4375 not GC_MAKE_GCPROS_NOOPS.
4376 (which_symbols): Use it.
4377
a0241d01
KH
43782011-11-07 Kenichi Handa <handa@m17n.org>
4379
4380 * coding.c (coding_set_destination): Check coding->src_pos only
4381 when coding->src_object is a buffer (bug#9910).
4382
4383 * process.c (send_process): Set the member src_multibyte of coding
4384 to 0 (bug#9911) when sending a unibyte text.
4385
4386 * callproc.c (Fcall_process): Set the member src_multibyte of
4387 process_coding to 0 (bug#9912).
4388
a64bfdfa 43892011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
ba24cea2
YM
4390
4391 * xmenu.c (cleanup_widget_value_tree): New function.
4392 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
4393 calling free_menubar_widget_value_tree directly (Bug#9830).
4394
cb41b32a
PE
43952011-11-06 Paul Eggert <eggert@cs.ucla.edu>
4396
4397 Fix some portability problems with 'inline'.
4398 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
4399 (window_box_width, window_box_left, window_box_left_offset)
4400 (window_box_right, window_box_right_offset): Declare extern.
4401 Otherwise, these inline functions do not conform to C99 and
4402 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
4403 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
4404 * intervals.c (adjust_intervals_for_insertion)
4405 (adjust_intervals_for_deletion): Now extern, because otherwise the
4406 extern inline functions 'offset_intervals' couldn't refer to it.
4407 (static_offset_intervals): Remove.
4408 (offset_intervals): Rewrite using the old contents of
4409 static_offset_intervals. The old version didn't conform to C99
4410 because an extern inline function contained a reference to an
4411 identifier with static linkage.
4412
b7041366
AS
44132011-11-06 Andreas Schwab <schwab@linux-m68k.org>
4414
4415 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
4416 GC.
4417
88a37c4d
EZ
44182011-11-06 Eli Zaretskii <eliz@gnu.org>
4419
4420 * xdisp.c (init_iterator, reseat_to_string): Don't set the
4421 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
4422 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
4423 return Qleft_to_right.
4424
49745b39
CY
44252011-11-06 Chong Yidong <cyd@gnu.org>
4426
4427 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
4428 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
4429 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
4430 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
4431 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
4432 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
4433 (Fwindow_vscroll): Doc fix.
4434 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
4435 argument, since it makes no sense to pass a live window and for
4436 consistency with window-child.
4437
1f05cd82
CS
44382011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
4439
4440 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
4441 support MSVC.
4442
22610910
JR
44432011-11-05 Jason Rumney <jasonr@gnu.org>
4444
4445 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
4446 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
4447 fonts (Bug#6029).
4448 (add_font_entity_to_list): Fix logic errors in mixed boolean and
4449 bitwise arithmetic preventing use of unicode-sip and non-truetype
4450 opentype fonts.
4451
a06776b2
EZ
44522011-11-05 Eli Zaretskii <eliz@gnu.org>
4453
3ad924ba
EZ
4454 * s/ms-w32.h (fstat, stat, utime): Move redirections to
4455 "emacs"-only part.
4456
a06776b2
EZ
4457 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
4458 initialization code to keep similarity to xfns.c after changes
4459 from 2011-11-05.
4460
c9e7db78
JD
44612011-11-05 Jan Djärv <jan.h.d@swipnet.se>
4462
a97f8f3f
JD
4463 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
4464 (unwind_create_frame): New function (Bug#9943).
4465 (Fx_create_frame): Restructure code to be more similar to the one in
4466 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
4467 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
4468 Move terminal->reference_count++ just before making the frame official
4469 (Bug#9943).
4470
4471 * nsterm.m (x_free_frame_resources): New function.
4472 (x_destroy_window): Move code to x_free_frame_resources.
4473
c9e7db78 4474 * xfns.c (unwind_create_frame): Fix comment.
6d5eb5b0
SM
4475 (Fx_create_frame, x_create_tip_frame):
4476 Move terminal->reference_count++ just before making the frame
75f1671a 4477 official. Move initialization of image_cache_refcount and
c9e7db78
JD
4478 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
4479
a6fc3b5c
EZ
44802011-11-05 Eli Zaretskii <eliz@gnu.org>
4481
4482 Support MSVC build with newer versions of Visual Studio.
4483 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
4484 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
4485 nt/gmake.defs.
4486
4487 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
4488 which are not supported by MSVC.
4489 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
4490 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
4491 bitfields.
4492 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
4493 types in bitfields.
4494 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
4495
4496 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
4497
58179cce 44982011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
a6fc3b5c
EZ
4499
4500 Support MSVC build with newer versions of Visual Studio.
4501 * w32.c: Don't include w32api.h for MSVC.
4502 (init_environment) [_MSC_VER]: Call sys_access, not _access.
4503
4504 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
4505 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
4506 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
4507 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
4508 e_* cousins.
4509 (alloca) [_MSC_VER]: Define to _alloca.
4510
4511 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
4512
4513 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
4514
a58c13ed
EZ
45152011-11-04 Eli Zaretskii <eliz@gnu.org>
4516
4517 * xdisp.c (note_mouse_highlight): If either of
4518 previous/next-single-property-change returns nil, treat that as
4519 the beginning or the end of the buffer. (Bug#9955)
4520
fe0b6370
JD
45212011-11-04 Jan Djärv <jan.h.d@swipnet.se>
4522
a58c13ed 4523 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
fe0b6370
JD
4524 label is not null (Bug#9951).
4525 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
4526 may be NULL.
4527
89bd5ee1
EZ
45282011-11-04 Eli Zaretskii <eliz@gnu.org>
4529
4530 * window.c (Fwindow_body_size): Mention in the doc string that the
4531 return value is in frame's canonical units. (Bug#9949)
4532
84c3edb9
EZ
45332011-11-03 Eli Zaretskii <eliz@gnu.org>
4534
4e2fb5c7
EZ
4535 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
4536
84c3edb9 4537 * w32fns.c (unwind_create_frame): If needed, free the glyph
3ab15fd6 4538 matrices of the partially constructed frame. (Bug#9943)
2a58bbc1 4539 * xfns.c (unwind_create_frame): Likewise.
84c3edb9 4540
bc17a887
EZ
45412011-11-01 Eli Zaretskii <eliz@gnu.org>
4542
4543 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
4544 Don't stop backward scan on the continuation glyph, even though
4545 its CHARPOS is positive.
6d5eb5b0
SM
4546 (mouse_face_from_buffer_pos, note_mouse_highlight):
4547 Rename cover_string to disp_string.
bc17a887 4548
4ee88440
MR
45492011-11-01 Martin Rudalics <rudalics@gmx.at>
4550
4551 * window.c (temp_output_buffer_show): Don't use
4552 Vtemp_buffer_show_specifiers.
4553 (Vtemp_buffer_show_specifiers): Remove unused variable.
4554
c2ff3c02
EZ
45552011-10-30 Eli Zaretskii <eliz@gnu.org>
4556
4557 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
4558 past the beginning of the current glyph matrix.
4559
58179cce 45602011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
6e56383b
JD
4561
4562 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
4563 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
4564 HAVE_GTK3 (Bug#9869).
b77a6a7f 4565
3b574623
JD
4566 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
4567 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
4568
b77a6a7f
JD
4569 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
4570
4571 * xterm.c: Declare x_handle_net_wm_state to return int.
4572 (handle_one_xevent): Check if we are iconified but don't have
4573 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
4574 (get_current_wm_state): Return non-zero if not hidden,
4575 check for _NET_WM_STATE_HIDDEN (Bug#9893).
4576 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
4577 (x_handle_net_wm_state): Return what get_current_wm_state returns.
4578 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
4579
196e41e4
PE
45802011-10-29 Paul Eggert <eggert@cs.ucla.edu>
4581
4582 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
4583 so that this new function doesn't get optimized away by a
4584 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
4585
021f2e1a
AS
45862011-10-29 Andreas Schwab <schwab@linux-m68k.org>
4587
4588 * frame.h (MOUSE_HL_INFO): Remove excess parens.
4589
8b058d44
EZ
45902011-10-29 Eli Zaretskii <eliz@gnu.org>
4591
4592 Fix the `xbytecode' command.
4593 * .gdbinit (xprintbytestr): New command.
b50a28de 4594 (xwhichsymbols): Rename from `which'; all callers changed.
8b058d44
EZ
4595 (xbytecode): Print the byte-code string as well.
4596
4452fb80
EZ
45972011-10-29 Kim Storm <storm@cua.dk>
4598
8b058d44
EZ
4599 * alloc.c (which_symbols): New function.
4600
21b72067
AS
46012011-10-29 Andreas Schwab <schwab@linux-m68k.org>
4602
4603 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
4604 line. (Bug#9903)
4605
83ed7b5c
GM
46062011-10-29 Glenn Morris <rgm@gnu.org>
4607
4608 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
4609 Not clear what it was for, and it causes various bugs. (Bug#9839)
4610
5a7a728b
EZ
46112011-10-28 Eli Zaretskii <eliz@gnu.org>
4612
4613 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
4614 possible random value that matches one of those tested as
4615 condition to clear the mouse face.
4616
d3d0842f
CY
46172011-10-28 Chong Yidong <cyd@gnu.org>
4618
4619 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
4620
31b39d13
DN
46212011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
4622
4623 * window.c (make_window): Initialize phys_cursor_on_p.
4624
9aba6043
SM
46252011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
4626
4627 * lisp.h (struct Lisp_Symbol): Update comments.
4628
c20992f4
JB
46292011-10-28 Juanma Barranquero <lekktu@gmail.com>
4630
4631 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
4632
db4f02f2
EZ
46332011-10-28 Eli Zaretskii <eliz@gnu.org>
4634
4635 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
4636 <oslsachem@gmail.com> for helping to debug this.
4637
4638 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
4639 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
4640 (g_b_init_get_glyph_outline_w): New static variables.
4641 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
4642 (GetGlyphOutlineW_Proc): New typedefs.
4643 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
9aba6043
SM
4644 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
4645 New functions.
4646 (w32font_open_internal, compute_metrics):
4647 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
db4f02f2
EZ
4648 instead of calling the "wide" APIs directly.
4649
4650 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
4651
4652 * w32.h (syms_of_w32font): Add prototype.
4653
87e68db4
JB
46542011-10-27 Juanma Barranquero <lekktu@gmail.com>
4655
4656 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
4657 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
4658 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
4659 (Fmove_to_window_line): Doc fix.
4660
435c1d67
CY
46612011-10-27 Chong Yidong <cyd@gnu.org>
4662
4663 * process.c (make_process): Set gnutls_state to NULL.
4664
4665 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
4666 non-NULL, regardless of GNUTLS_INITSTAGE.
4667 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
4668 an error. Set process slots as soon as we allocate them.
4669
4670 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
4671
9c6c6f49
CY
46722011-10-27 Chong Yidong <cyd@gnu.org>
4673
9aba6043
SM
4674 * gnutls.c (emacs_gnutls_deinit): New function.
4675 Deallocate credentials structures as well as calling gnutls_deinit.
9c6c6f49
CY
4676 (Fgnutls_deinit, Fgnutls_boot): Use it.
4677
4678 * process.c (make_process): Initialize GnuTLS credentials to NULL.
4679 (deactivate_process): Call emacs_gnutls_deinit.
4680
657d08d3
JB
46812011-10-27 Juanma Barranquero <lekktu@gmail.com>
4682
4683 * image.c (x_create_x_image_and_pixmap):
4684 * w32.c (sys_rename, w32_delayed_load):
4685 * w32font.c (fill_in_logfont):
4686 * w32reg.c (x_get_string_resource): Silence compiler warnings.
4687
5430d399
JB
46882011-10-26 Juanma Barranquero <lekktu@gmail.com>
4689
4690 * w32fns.c (w32_default_color_map): New function,
4691 extracted from Fw32_default_color_map.
a7ef684b 4692 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
5430d399 4693
fe0055fa
PE
46942011-10-25 Paul Eggert <eggert@cs.ucla.edu>
4695
4696 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
4697
e6346438
SM
46982011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
4699
4700 * keyboard.c (test_undefined): New function (bug#9751).
4701 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
4702
e112cc37
ET
47032011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
4704
4705 * sysdep.c (init_sys_modes): Fix the check for the controlling
4706 terminal (Bug#6649).
4707
7b5d6677
EZ
47082011-10-20 Eli Zaretskii <eliz@gnu.org>
4709
4710 * dispextern.h (struct bidi_it): New member next_en_type.
4711
4712 * bidi.c (bidi_line_init): Initialize the next_en_type member.
4713 (bidi_resolve_explicit_1): When next_en_pos is valid for the
4714 current character, check also for next_en_type being WEAK_EN.
4715 (bidi_resolve_weak): Don't enter the expensive loop if the current
4716 position is before next_en_pos. Record the bidi type of the first
4717 non-ET, non-BN character we find, in addition to its position.
4718 (bidi_level_of_next_char): Invalidate next_en_type when
4719 next_en_pos is over-stepped.
4720
7da0b018
PE
47212011-10-20 Paul Eggert <eggert@cs.ucla.edu>
4722
4723 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
4724 * editfns.c: Rewrite current-time-zone so that it invokes
4725 the equivalent of (format-time-string "%Z") to get the time zone name.
4726 This fixes a bug when the time zone name contains characters that
4727 need converting from the system time locale to Emacs internal format.
4728 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
4729 that patch fixed format-time-string to do the conversion, but
4730 I forgot to fix current-time-zone.
4731 (format_time_string): New function, containing most of
4732 what Fformat_time_string used to contain.
4733 (Fformat_time_string): Rewrite in terms of format_time_string.
4734 This doesn't change this function's behavior.
4735 (current-time-zone): Rewrite to use format_time_string.
4736 This fixes the bug reported by Michael Schierl in
4737 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
4738 Jason Rumney's 2007-06-07 change worked around this bug, but
4739 didn't fix it.
4740 * systime.h (tzname, timezone): Remove no-longer-used declarations.
4741
8547b010
EZ
47422011-10-19 Eli Zaretskii <eliz@gnu.org>
4743
4744 * xdisp.c (start_display): If the character at POS is displayed
4745 via a display vector, reset IT->current.dpvec_index to zero.
12b32963
EZ
4746 (try_window_reusing_current_matrix): If a line ends in a display
4747 vector or the next line starts in a display vector, continue
4748 redrawing the window even though the character position of
4749 start_row was reached.
8547b010
EZ
4750 (Bug#9771, part 2)
4751
4e948d15
CY
47522011-10-18 Chong Yidong <cyd@gnu.org>
4753
4754 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
4755 with nobreak-char-display too.
4756
4787455f
EZ
47572011-10-18 Eli Zaretskii <eliz@gnu.org>
4758
4759 Fix part 3 of bug#9771.
4760 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
4761 (bidi_resolve_neutral): Don't enter the expensive loop looking for
4762 non-neutral characters if the current character is a paragraph
4763 separator (a.k.a. Newline). This avoids running the same
4764 expensive loop twice, once when we consume the preceding newline
4765 and the other time when the line actually needs to be displayed.
4766 Avoid the loop when we see neutrals on the base embedding level
4767 following a character whose directionality is the same as the
4768 paragraph's. This avoids running the expensive loop when a line
4769 ends in a long sequence of neutrals, like control characters.
4770 Add assertion against STRONG_AL type. Slightly rearrange code
4771 that determines the type of a neutral given the first non-neutral
4772 that follows it.
4773 (bidi_level_of_next_char): Set next_en_pos to zero when
4774 invalidating its info.
4775
2c91f553
EZ
47762011-10-17 Eli Zaretskii <eliz@gnu.org>
4777
4778 * xdisp.c (push_display_prop): Determine whether to record string
4779 or buffer position by IT->string, not by IT->method. Allow
4780 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
f2ff9e88
EZ
4781 (move_it_vertically_backward): Don't look for character position
4782 immediately after the newline when in a continuation line.
4783 (Bug#9771, part 1)
2c91f553 4784
c7b08b0d
MR
47852011-10-15 Martin Rudalics <rudalics@gmx.at>
4786
4787 * window.c (coordinates_in_window): Rewrite and delabelize
4788 vertical border check. (Bug#5357) (Bug#9618)
4789
6b02f655
SM
47902011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
4791
4792 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
4793 errors in XSetWindowBorder (bug#9310).
4794
81d40c92
DA
47952011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
4796
4797 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
4798 avoid crash when xmalloc overrun checking is enabled.
4799
d4172c3b
EZ
48002011-10-13 Eli Zaretskii <eliz@gnu.org>
4801
4802 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
4803 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
4804 cursor motion with <left> and <right> arrow keys.
4805
4806 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
4807 some callers set that themselves.
4808
b00eea75
EZ
48092011-10-12 Eli Zaretskii <eliz@gnu.org>
4810
4811 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
4812 display string and the previous row comes from the same string and
4813 is empty. (Bug#9739) (Bug#9738)
4814
8fe012c4
SM
48152011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
4816
4817 * doc.c (get_doc_string): Encode file name (bug#9735).
4818
0074aef2
EZ
48192011-10-12 Eli Zaretskii <eliz@gnu.org>
4820
79beb178
EZ
4821 * bidi.c (bidi_level_of_next_char):
4822 * xdisp.c (get_visually_first_element): Remove old incorrect
4823 comments regarding the Unicode Line Separator character.
4824
0074aef2
EZ
4825 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
4826
6e4b3fbe
DA
48272011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
4828
4829 * alloc.c (Fgc_status): Do not access beyond zombies array
4830 boundary if nzombies > MAX_ZOMBIES.
4831 * alloc.c (dump_zombies): Add missing format specifier.
4832
0324f3af
PE
48332011-10-12 Paul Eggert <eggert@cs.ucla.edu>
4834
b5525cac
PE
4835 * xdisp.c (set_cursor_from_row): Simplify conditionals,
4836 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
4837
0324f3af
PE
4838 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
4839 Some packages use them to denote characters with modifiers.
4840
e9b5f888
AS
48412011-10-11 Andreas Schwab <schwab@linux-m68k.org>
4842
4843 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
4844 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
4845 matching a pp-number. Rename parameter var to var1.
4846
127827c0
SM
48472011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
4848
4849 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
4850
c8fd3bd0
GM
48512011-10-08 Glenn Morris <rgm@gnu.org>
4852
4853 * callint.c (Fcall_interactively): Give a more explicit error for the
4854 'c' case with a non-character input. (Bug#8479)
4855
352ec8ff
EZ
48562011-10-08 Eli Zaretskii <eliz@gnu.org>
4857
03669ccb
EZ
4858 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
4859 lines.
7061c986
EZ
4860 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
4861 lines that are hscrolled on the left.
03669ccb 4862
352ec8ff
EZ
4863 * dispnew.c (buffer_posn_from_coords): Account for a possible
4864 presence of header-line. (Bug#4426)
4865
a66cfb1c
SM
48662011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
4867
6b02f655
SM
4868 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
4869 Don't advertise functionality which we discourage or doesn't work.
a66cfb1c 4870
7c5ee88e
PE
48712011-10-07 Paul Eggert <eggert@cs.ucla.edu>
4872
4873 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
4874 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
4875 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
4876 this makes Emacs dump core during garbage collection on rare
4877 occasions. sizeof is obviously inferior to offsetof here, so
4878 stick with offsetof.
4879 (GC_POINTER_ALIGNMENT): New macro.
4880 (mark_memory): Omit 3rd (offset) arg; caller changed.
4881 Don't assume EMACS_INT alignment is the same as pointer alignment.
4882
df1bbe5b
SM
48832011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
4884
4885 * keyboard.c (read_key_sequence_remapped): New var.
4886 (read_key_sequence): Compute remapping in the right buffer.
4887 (command_loop_1): Use read_key_sequence's remapping directly.
4888
51553db6
SM
48892011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
4890
32c1fffd
SM
4891 * dired.c (file_name_completion): Don't expand file name.
4892 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
4893 before checking file name handler.
4894
51553db6
SM
4895 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
4896 they've been requested explicitly (bug#9591).
4897
b6bd1599 48982011-10-01 Andreas Schwab <schwab@linux-m68k.org>
fa2ec41f
AS
4899
4900 * keymap.c (Fsingle_key_description): Use make_specified_string
4901 instead of build_string to build string from push_key_description.
4902 (Bug#5193)
4903
f701dc2a
PE
49042011-09-30 Paul Eggert <eggert@cs.ucla.edu>
4905
4222c55d
PE
4906 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
4907 This fixes a Y2038 bug on 64-bit hosts.
4908 * buffer.c (reset_buffer):
4909 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
4910 (Fclear_buffer_auto_save_failure):
4911 Use 0, not -1, to represent an unset failure time, since time_t
4912 might not be signed.
4913
f701dc2a
PE
4914 Remove dependency on glibc malloc internals.
4915 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
4916 Move back here from lisp.h, but with their new implementations.
4917 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
4918 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
4919 * charset.c (charset_table_init): New static var.
4920 (syms_of_charset): Use it instead of xmalloc. This removes a
4921 dependency on glibc malloc internals. See Eli Zaretskii's comment in
4922 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
4923 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
4924 Move back to alloc.c.
4925 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
4926 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
4927
9ceebf39
JD
49282011-09-30 Jan Djärv <jan.h.d@swipnet.se>
4929
4930 * nsterm.m (windowDidResize): Call x_set_window_size only when
4931 ns_in_resize is true. Otherwise set pixelwidth/height and
4932 call change_frame_size (Bug#9628).
4933
cb993c58
PE
49342011-09-30 Paul Eggert <eggert@cs.ucla.edu>
4935
3930c88b
PE
4936 Port --enable-checking=all to Fedora 14 x86-64.
4937 * charset.c (syms_of_charset): Also account for glibc malloc's
4938 internal overhead when calculating the initial malloc maximum.
4939
cb993c58
PE
4940 Port --enable-checking=all to Fedora 14 x86.
4941 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
4942 Move to lisp.h.
4943 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
4944 (overrun_check_realloc, overrun_check_free):
4945 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
4946 That way, xmalloc returns a properly-aligned pointer even if
4947 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
4948 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
4949 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
4950 into account when calculating the initial malloc maximum.
4951 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
4952 Move here from alloc.c, so that charset.c can use it too.
4953 Properly align; the old code wasn't right for common 32-bit hosts
4954 when configured with --enable-checking=all.
4955 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
4956 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
4957
31bed486
EZ
49582011-09-29 Eli Zaretskii <eliz@gnu.org>
4959
04c70788 4960 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
31bed486
EZ
4961 use EDOM.
4962
fbcaa2f3
EZ
49632011-09-28 Eli Zaretskii <eliz@gnu.org>
4964
4965 * xdisp.c (compute_display_string_end): If there's no display
4966 string at CHARPOS, return -1.
4967
4968 * bidi.c (bidi_fetch_char): When compute_display_string_end
4969 returns a negative value, treat the character as a normal
4970 character not covered by a display string. (Bug#9624)
4971
a239d4e9
JB
49722011-09-28 Juanma Barranquero <lekktu@gmail.com>
4973
4974 * lread.c (Fread_from_string): Fix typo in docstring.
4975
88652fd5
EZ
49762011-09-27 Eli Zaretskii <eliz@gnu.org>
4977
4978 * xdisp.c (handle_invisible_prop): If invisible text ends on a
4979 newline, reseat the iterator instead of bidi-iterating there one
4980 character at a time. (Bug#9610)
32c1fffd
SM
4981 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
4982 TO_CHARPOS if the bidi iterator is at base embedding level.
88652fd5 4983
ed497dd4
AS
49842011-09-27 Andreas Schwab <schwab@linux-m68k.org>
4985
4986 * lread.c (readevalloop): Use correct code for NBSP.
4987 (read1): Likewise. (Bug#9608)
4988
b2bf61aa
MA
49892011-09-25 Michael Albinus <michael.albinus@gmx.de>
4990
4991 * dbusbind.c (Fdbus_register_signal): When service is not
4992 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
4993
32bbb17c
GM
49942011-09-25 Glenn Morris <rgm@gnu.org>
4995
4996 * buffer.c (truncate-lines): Doc fix.
4997
94e0933e
CY
49982011-09-24 Chong Yidong <cyd@stupidchicken.com>
4999
5000 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
5001 (Fset_window_next_buffers): Doc fix.
5002
cddde921
GM
50032011-09-24 Glenn Morris <rgm@gnu.org>
5004
5005 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
5006
1260aef1
PE
50072011-09-24 Paul Eggert <eggert@cs.ucla.edu>
5008
25b4bfa0
PE
5009 Fix minor problems found by static checking.
5010 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
1260aef1
PE
5011 * indent.c (Fvertical_motion): Fix == vs = typo.
5012
e3cbd34b
EZ
50132011-09-24 Eli Zaretskii <eliz@gnu.org>
5014
a66cfb1c
SM
5015 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
5016 Default value is now t. Doc fix.
6bf7006f 5017
e3cbd34b 5018 * indent.c (Fvertical_motion): Compute and apply the overshoot
32c1fffd 5019 logic when moving up, not only when moving down. Fix the
e3cbd34b 5020 confusing name and values of the it_overshoot_expected variable;
32c1fffd 5021 logic changes accordingly. (Bug#9254) (Bug#9549)
e3cbd34b
EZ
5022
5023 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
5024 CHARPOS is covered by a display string which includes newlines.
5025 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
5026 is covered by a display string with embedded newlines.
5027
a3de0cbd
MA
50282011-09-24 Michael Albinus <michael.albinus@gmx.de>
5029
5030 * dbusbind.c (Fdbus_register_signal): Add match rule to
5031 Vdbus_registered_objects_table. (Bug#9581)
a66cfb1c
SM
5032 (Fdbus_register_method, Vdbus_registered_objects_table):
5033 Fix docstring.
a3de0cbd 5034
b260039d
JM
50352011-09-24 Jim Meyering <meyering@redhat.com>
5036
32c1fffd 5037 do not ignore write error for any output size
b260039d
JM
5038 The previous change was incomplete.
5039 While it makes emacs --batch detect the vast majority of stdout
5040 write failures, errors were still ignored whenever the output size is
5041 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
5042 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
5043 && echo FAIL: ignored write error
5044 FAIL: ignored write error
5045 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
5046 && echo FAIL: ignored write error
5047 FAIL: ignored write error
5048 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
5049
8eca8a7c
AS
50502011-09-23 Andreas Schwab <schwab@linux-m68k.org>
5051
5052 * emacs.c (Fkill_emacs): In noninteractive mode exit
5053 non-successfully if a write error occurred on stdout. (Bug#9574)
5054
3341db62
EZ
50552011-09-21 Eli Zaretskii <eliz@gnu.org>
5056
5057 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
5058 the xassert test.
5059
5060 * dispextern.h (struct it): Update the comment documenting what
5061 can it->OBJECT be.
5062
8c203dbf
EZ
50632011-09-20 Eli Zaretskii <eliz@gnu.org>
5064
5065 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
5066 a display string, extend search for cursor position to end of row.
5067 (find_row_edges): If the row ends in a newline from a display
5068 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
5069 Handle the case of a display string with multiple newlines.
fd317ddf
EZ
5070 (Fcurrent_bidi_paragraph_direction): Fix search for previous
5071 non-empty line. Fixes confusing cursor motion with arrow keys at
5072 the beginning of a line that starts with whitespace.
8c203dbf 5073
a4824228
LMI
50742011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
5075
5076 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
5077 (bug#9493).
5078
33ed493b
CY
50792011-09-18 Chong Yidong <cyd@stupidchicken.com>
5080
5081 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
5082 boolean (Bug#9154).
5083
56cd55c8
EZ
50842011-09-18 Eli Zaretskii <eliz@gnu.org>
5085
5086 * xdisp.c (display_line): Record maximum and minimum buffer
5087 positions even if no glyphs were produced (e.g., by a zero-width
5088 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
5089 buffer positions that will be removed from the glyph row because
5090 they don't fit.
c02dcedf
EZ
5091 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
5092 column is beyond frame width: don't subtract 1 "pixel" when
5093 computing width of the stretch.
3e62b7e0
EZ
5094 (reseat_at_next_visible_line_start): Undo the change made on
5095 2011-09-17 that saved paragraph information and restored it after
5096 the call to `reseat'. (Bug#9545)
56cd55c8 5097
5ed99d36 50982011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3390454c
YM
5099
5100 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
5101 and turn window cursor on if cleared (Bug#9415).
5102
5ed99d36 51032011-09-18 Andreas Schwab <schwab@linux-m68k.org>
edb7b4dc
AS
5104
5105 * search.c (boyer_moore): Take unibyte characters from pattern
5106 literally. (Bug#9458)
5107
9bade7b2
EZ
51082011-09-18 Eli Zaretskii <eliz@gnu.org>
5109
5110 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
5111
e5e9d610
PE
51122011-09-18 Paul Eggert <eggert@cs.ucla.edu>
5113
87e4427a
PE
5114 Fix minor problem found by static checking.
5115 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
5116 initialized, to pacify gcc -Wuninitialized.
5117
e5e9d610
PE
5118 * fileio.c: Report proper errno when syscall falls.
5119 (Finsert_file_contents): Save and restore errno,
5120 so that report_file_error outputs the correct diagnostic.
5121 (Fwrite_region) [CLASH_DETECTION]: Likewise.
5122
a1674f0b
EZ
51232011-09-18 Eli Zaretskii <eliz@gnu.org>
5124
5125 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
5126
fbfb6dd4
EZ
51272011-09-17 Eli Zaretskii <eliz@gnu.org>
5128
5129 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
5130 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
5131
bb187662
EZ
51322011-09-17 Eli Zaretskii <eliz@gnu.org>
5133
1137e8b8 5134 * xdisp.c (reseat_at_next_visible_line_start): Keep information
6b02f655 5135 about the current paragraph and restore it after the call to reseat.
1137e8b8
EZ
5136
5137 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
5138 (bidi_find_paragraph_start): Search back for paragraph beginning
5139 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
5140 (bidi_move_to_visually_next): Only trigger paragraph-related
5141 computations when the last character is a newline or at EOB, not
5142 just any NEUTRAL_B. (Bug#9470)
5143
bb187662
EZ
5144 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
5145 truncated lines if point is covered by a display string. (Bug#9524)
5146
2e621251
PE
51472011-09-16 Paul Eggert <eggert@cs.ucla.edu>
5148
5149 * xselect.c: Relax test for outgoing X longs (Bug#9498).
5150 (cons_to_x_long): New function.
5151 (lisp_data_to_selection_data): Use it. Correct the test for
5152 short-versus-long data; it was negated. Break out of vector
5153 loop, for efficiency, when a long datum is discovered.
5154
91a15bc6
SM
51552011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
5156
5157 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
5158
b41c3a35
EZ
51592011-09-16 Eli Zaretskii <eliz@gnu.org>
5160
5161 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
5162 GCC PR/17406) by declaring this function with external scope.
5163
7812ba2d
PE
51642011-09-15 Paul Eggert <eggert@cs.ucla.edu>
5165
5166 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
5167 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
5168
cf7edc2a
AS
51692011-09-15 Andreas Schwab <schwab@linux-m68k.org>
5170
5171 * editfns.c (Fformat): Correctly handle text properties on "%%".
5172
bd01620e
EZ
51732011-09-15 Eli Zaretskii <eliz@gnu.org>
5174
5175 * xterm.c (x_draw_composite_glyph_string_foreground):
5176 * w32term.c (x_draw_composite_glyph_string_foreground):
5177 * term.c (encode_terminal_code):
5178 * composite.c (composition_update_it, get_composition_id):
5179 * xdisp.c (get_next_display_element)
5180 (fill_composite_glyph_string): Add comments about special meaning
5181 of TAB characters in a composition.
5182
a02719a3
PE
51832011-09-15 Paul Eggert <eggert@cs.ucla.edu>
5184
5185 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
4c122725
PE
5186 This occurs when processing a multibyte format.
5187 Problem reported by Wolfgang Jenker.
a02719a3 5188
72589a3c
JB
51892011-09-15 Johan Bockgård <bojohan@gnu.org>
5190
5191 * xdisp.c (try_cursor_movement): Only check for exact match if
5192 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
5193
1c14176c
PE
51942011-09-14 Paul Eggert <eggert@cs.ucla.edu>
5195
5196 Remove unused external symbols.
5197 * dispextern.h (calc_pixel_width_or_height): Remove decl.
5198 * xdisp.c (calc_pixel_width_or_height): Now static.
5199 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
5200 * indent.c (check_display_width):
5201 * w32term.c: Fix comment to match code.
5202 * xterm.c, xterm.h (x_catching_errors): Remove.
5203
d2eea5b5
PE
52042011-09-14 Paul Eggert <eggert@cs.ucla.edu>
5205
5206 * xselect.c: Use signed conversions more consistently (Bug#9498).
5207 (selection_data_to_lisp_data): Assume incoming selection data are
5208 signed integers, not unsigned. This is to be consistent with
5209 outgoing selection data, which was modified to use signed integers
5210 in as part of the fix to Bug#9196 in response to Jan D.'s comment
5211 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
5212 expects long, not unsigned long.
5213
46888499
EZ
52142011-09-14 Eli Zaretskii <eliz@gnu.org>
5215
5216 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
5217 computation of loop end. Reported by Johan Bockgård
5218 <bojohan@gnu.org>.
5219
ef8ef9fb
CY
52202011-09-13 Chong Yidong <cyd@stupidchicken.com>
5221
5222 * frame.c (Fother_visible_frames_p): Function deleted.
5223
fa819fed
EZ
52242011-09-12 Eli Zaretskii <eliz@gnu.org>
5225
5226 * indent.c (compute_motion): Process display vector front to back
5227 rather than the other way around. (Bug#2496)
5228
2ba8e008
SM
52292011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
5230
5231 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
5232
20f53c69
CY
52332011-09-11 Chong Yidong <cyd@stupidchicken.com>
5234
5235 * minibuf.c (Fread_from_minibuffer): Doc fix.
5236
d562d7a4
EZ
52372011-09-11 Eli Zaretskii <eliz@gnu.org>
5238
5239 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
5240 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
5241
1c4d7f3d
LMI
52422011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
5243
5244 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
5245 value for non-existent files.
5246
b885bf36
EZ
52472011-09-11 Eli Zaretskii <eliz@gnu.org>
5248
5249 * fileio.c (Finsert_file_contents): If the file cannot be opened,
5250 set its "size" to -1. This will set the modtime_size field of
5251 the corresponding buffer to -1, which is what
5252 verify-visited-file-modtime expects for files that do not exist.
5253 (Bug#9139)
5254
6612f0bf
PE
52552011-09-11 Paul Eggert <eggert@cs.ucla.edu>
5256
5257 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
5258 here ...
5259 * lisp.h: ... from here. push_key_description is no longer
5260 defined in keyboard.c, so its declaration should not be in
5261 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
5262 logically belongs with push_key_description.
5263
dfb3f755
PE
52642011-09-10 Paul Eggert <eggert@cs.ucla.edu>
5265
5266 * buffer.h: Include <sys/types.h> instead of <time.h>.
5267 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
5268 Problem reported by Herbert J. Skuhra.
5269
3134906c
LMI
52702011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
5271
5272 * xml.c (parse_region): Make the parsing work for
5273 non-comment-starting XML files again (bug#9144).
5274
8d903f4e
AS
52752011-09-10 Andreas Schwab <schwab@linux-m68k.org>
5276
5277 * image.c (gif_load): Fix calculation of bottom and right corner.
5278 (Bug#9468)
5279
80ad64f4
EZ
52802011-09-10 Eli Zaretskii <eliz@gnu.org>
5281
5282 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
5283 redisplay in small windows.
5284
208a048d
EZ
52852011-09-09 Eli Zaretskii <eliz@gnu.org>
5286
5287 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
5288
9b1c252e
MR
52892011-09-08 Martin Rudalics <rudalics@gmx.at>
5290
5291 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
5292 Operate on live windows only.
5293
2949f33b
JB
52942011-09-08 Juanma Barranquero <lekktu@gmail.com>
5295
5296 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
5297
e08dcafd
EZ
52982011-09-07 Eli Zaretskii <eliz@gnu.org>
5299
5300 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
5301 only under bidi iteration.
5302
115b96bd
JD
53032011-09-07 Jan Djärv <jan.h.d@swipnet.se>
5304
5305 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
5306
c8199d0f
PE
53072011-09-06 Paul Eggert <eggert@cs.ucla.edu>
5308
5309 isnan: Fix porting problem to Solaris 10 with bundled gcc.
5310 Without this fix, the command to link temacs failed due to an
5311 undefined symbol __builtin_isnan. This is because
5312 /usr/include/iso/math_c99.h #defines isnan(x) to
5313 __builtin_isnan(x), but the bundled gcc, which identifies itself
5314 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
5315 a __builtin_isnan.
5316 * floatfns.c (isnan): #undef, and then #define to a clone of
5317 what's in data.c.
5318 (Fisnan): Always define, since it's always available now.
5319 (syms_of_floatfns): Always define isnan at the Lisp level.
5320
e39b275c 53212011-09-06 Paul Eggert <eggert@cs.ucla.edu>
1c262cae
PE
5322
5323 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
5324
b2db44d9 53252011-09-06 Paul Eggert <eggert@cs.ucla.edu>
728f8f0a 5326
f4af5137 5327 * fileio.c: Fix bugs with large file offsets (Bug#9428).
728f8f0a
PE
5328 The previous code assumed that file offsets (off_t values) fit in
5329 EMACS_INT variables, which is not true on typical 32-bit hosts.
5330 The code messed up by falsely reporting buffer overflow in cases
5331 such as (insert-file-contents "big" nil 1 2) into an empty buffer
5332 when "big" contains more than 2**29 bytes, even though this
5333 inserts just one byte and does not overflow the buffer.
5334 (Finsert_file_contents): Store file offsets as off_t
5335 values, not as EMACS_INT values. Check for overflow when
5336 converting between EMACS_INT and off_t. When checking for
5337 buffer overflow or for overlap, take the offsets into account.
5338 Don't use EMACS_INT for small values where int suffices.
5339 When checking for overlap, fix a typo: ZV was used where
5340 ZV_BYTE was intended.
5341 (Fwrite_region): Don't assume off_t fits into 'long'.
5342 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
5343
ecfc0a49
MA
53442011-09-05 Michael Albinus <michael.albinus@gmx.de>
5345
5346 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
5347
6511acf2 53482011-09-04 Paul Eggert <eggert@cs.ucla.edu>
61bfeeb7 5349
0999621a 5350 sprintf-related integer and memory overflow issues (Bug#9412).
62f19c19
PE
5351
5352 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
8666506e 5353 (esprintf, exprintf, evxprintf): New functions.
62f19c19 5354 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
6b02f655 5355 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
62f19c19
PE
5356 (modify_event_symbol): Do not assume that the length of
5357 name_alist_or_stem is safe to alloca and fits in int.
5358 (Fexecute_extended_command): Likewise for function name and binding.
5359 (Frecursion_depth): Wrap around reliably on integer overflow.
5360 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
5361 since some callers pass EMACS_INT values.
5362 (Fsingle_key_description): Don't crash if symbol name contains more
5363 than MAX_ALLOCA bytes.
5364 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
5365 (get_minibuffer): Arg is now EMACS_INT, not int.
5366 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
8666506e 5367 (esprintf, exprintf, evxprintf): New decls.
62f19c19
PE
5368 * window.h (command_loop_level, minibuf_level): Reflect API changes.
5369
2be7d702
PE
5370 * dbusbind.c (signature_cat): New function.
5371 (xd_signature, Fdbus_register_signal):
2ea16b89
PE
5372 Do not overrun buffer; instead, report string overflow.
5373
9d1df220
PE
5374 * dispnew.c (add_window_display_history): Don't overrun buffer.
5375 Truncate instead; this is OK since it's just a log.
5376
33ef5c64
PE
5377 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
5378 even if the time zone offset is outlandishly large.
5379 Don't mishandle offset == INT_MIN.
5380
66c6fdd5
PE
5381 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
5382 when creating daemon; the previous buffer-overflow check was incorrect.
5383
d749b01b
PE
5384 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
5385 which has the guts of the old verror function.
5386
b5cd1905
PE
5387 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
5388 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
5389
6e1a67fb
PE
5390 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
5391 (font_unparse_xlfd): Don't blindly alloca long strings.
c21721cc 5392 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
8666506e 5393 fits in int, when using sprintf. Use single snprintf to count
c21721cc
PE
5394 length of string rather than counting it via multiple sprintfs;
5395 that's simpler and more reliable.
c21721cc
PE
5396 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
5397 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
5398 sprintf, in case result does not fit in int.
5399
c57b67fc
PE
5400 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
5401 (fontset_from_font): Print it.
5402
8a401434
PE
5403 * frame.c (tty_frame_count): Now printmax_t, not int.
5404 (make_terminal_frame, set_term_frame_name): Print it.
5405 (x_report_frame_params): In X, window IDs are unsigned long,
5406 not signed long, so print them as unsigned.
5407 (validate_x_resource_name): Check for implausibly long names,
5408 and don't assume name length fits in 'int'.
5409 (x_get_resource_string): Don't blindly alloca invocation name;
5410 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
5411 not fit in int.
5412
6e1a67fb
PE
5413 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
5414 (xg_check_special_colors, xg_set_geometry):
84722b3d
PE
5415 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
5416
0df02bf3
PE
5417 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
5418 Use esprintf, not sprintf, in case result does not fit in int.
5419
48e30793
PE
5420 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
5421 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
5422 it as a large positive number.
5423 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
5424 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
5425
a66ff6d8
PE
5426 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
5427 in case result does not fit in int.
5428
aca216ff
PE
5429 * print.c (float_to_string): Detect width overflow more reliably.
5430 (print_object): Make sprintf buffer a bit bigger, to avoid potential
5431 buffer overrun. Don't assume list length fits in 'int'. Treat
5432 print length of 0 as 0, not as infinity; to be consistent with other
5433 uses of print length in this function. Don't overflow print length
5434 index. Don't assume hash table size fits in 'long', or that
5435 vectorlike size fits in 'unsigned long'.
5436
31c286f7
PE
5437 * process.c (make_process): Use printmax_t, not int, to format
5438 process-name gensyms.
5439
55e5faa1
PE
5440 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
5441
80f2e268
PE
5442 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
5443 to avoid potential buffer overrun.
5444
670741ab
PE
5445 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
5446 if X resource line is longer than 512 bytes.
5447
b7163a50
PE
5448 * xfns.c (x_window): Make sprintf buffer a bit bigger
5449 to avoid potential buffer overrun.
5450
ae58ff1f
PE
5451 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
5452
c43c8a6a
PE
5453 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
5454
3f8236f4
PE
54552011-09-04 Paul Eggert <eggert@cs.ucla.edu>
5456
53e9fe90 5457 Integer overflow fixes for scrolling, etc.
6511acf2
PE
5458 Without these, Emacs silently mishandles large integers sometimes.
5459 For example, "C-u 4294967297 M-x recenter" was treated as if
53e9fe90
PE
5460 it were "C-u 1 M-x recenter" on a typical 64-bit host.
5461
6511acf2
PE
5462 * xdisp.c (try_window_id): Check Emacs fixnum range before
5463 converting to 'int'.
806add1d 5464
6511acf2 5465 * window.c (window_scroll_line_based, Frecenter):
71f02bc5
PE
5466 Check that an Emacs fixnum is in range before assigning it to 'int'.
5467 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
5468 values converted from Emacs fixnums.
5469 (Frecenter): Don't wrap around a line count if it is out of 'int'
5470 range; instead, treat it as an extreme value.
5471 (Fset_window_configuration, compare_window_configurations):
5472 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
5473
6511acf2
PE
5474 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
5475 that can exceed INT_MAX. Check that EMACS_INT value is in range
5476 before assigning it to the (possibly-narrower) index.
a0efffc8
PE
5477 (match_limit): Don't assume that a fixnum can fit in 'int'.
5478
6511acf2 5479 * print.c (print_object): Use ptrdiff_t, not int, for index that can
29ebea3b
PE
5480 exceed INT_MAX.
5481
6511acf2 5482 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
3f8236f4
PE
5483 (Fvertical_motion): Don't wrap around LINES values that don't fit
5484 in 'int'. Instead, treat them as extreme values. This is good
5485 enough for windows, which can't have more than INT_MAX lines anyway.
5486
fcb901a7
LMI
54872011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
5488
0f2f6b6d
LMI
5489 * Require libxml/parser.h to avoid compilation warning.
5490
fcb901a7
LMI
5491 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
5492
5493 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
5494 since this reportedly can destroy thread storage.
5495
6e20a0d4
CY
54962011-08-30 Chong Yidong <cyd@stupidchicken.com>
5497
5498 * syntax.c (find_defun_start): Update all cache variables if
5499 exiting early (Bug#9401).
5500
148ae00e
EZ
55012011-08-30 Eli Zaretskii <eliz@gnu.org>
5502
f6cfbd8f
EZ
5503 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
5504
148ae00e
EZ
5505 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
5506 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
5507 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
5508
5509 * term.c (tty_append_glyph): New function.
5510 (produce_stretch_glyph): Static function and its prototype deleted.
5511
a66cfb1c
SM
5512 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
5513 Add prototypes.
148ae00e 5514
c4a07a4c
PE
55152011-08-29 Paul Eggert <eggert@cs.ucla.edu>
5516
5517 * image.c (parse_image_spec): Check for nonnegative, not for positive,
5518 when checking :margin (Bug#9390).
5519 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
a66cfb1c 5520 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
c4a07a4c
PE
5521 so that the name doesn't mislead. All uses changed.
5522
6bc8cd65
JB
55232011-08-28 Johan Bockgård <bojohan@gnu.org>
5524
5525 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
5526 set_tty_hooks.
5527
dca4927e
EZ
55282011-08-27 Eli Zaretskii <eliz@gnu.org>
5529
5530 * xdisp.c (move_it_to): Don't bail out early when reaching
5531 position beyond to_charpos, if we are scanning backwards.
5532 (move_it_vertically_backward): When DY == 0, make sure we get to
5533 the first character in the line after the newline.
5534
f2cad773
PE
55352011-08-27 Paul Eggert <eggert@cs.ucla.edu>
5536
5537 * ccl.c: Improve and simplify overflow checking (Bug#9196).
5538 (ccl_driver): Do not generate an out-of-range pointer.
5539 (Fccl_execute_on_string): Remove unnecessary check for
5540 integer overflow, noted by Stefan Monnier in
5541 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
5542 Remove a FIXME that didn't need fixing.
5543 Simplify the newly-introduced buffer reallocation code.
5544
0cae2cdb
JB
55452011-08-27 Juanma Barranquero <lekktu@gmail.com>
5546
5547 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
5548
5fc295a4 55492011-08-26 Paul Eggert <eggert@cs.ucla.edu>
ddff3151 5550
70c60eb2 5551 Integer and memory overflow issues (Bug#9196).
726e0ab1 5552
d31850da
PE
5553 * doc.c (get_doc_string): Rework so that
5554 get_doc_string_buffer_size is the actual buffer size, rather than
5555 being 1 less than the actual buffer size; this makes xpalloc more
5556 convenient.
5557
a69fbedb
PE
5558 * image.c (x_allocate_bitmap_record, cache_image):
5559 * xselect.c (Fx_register_dnd_atom):
5560 Simplify previous changes by using xpalloc.
5561
fe5c5d37
PE
5562 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
5563 since either will do and ptrdiff_t is convenient with xpalloc.
5564
0065d054
PE
5565 * charset.c (charset_table_size)
5566 (struct charset_sort_data.priority): Now ptrdiff_t.
5567 (charset_compare): Don't overflow if priorities differ greatly.
5568 (Fsort_charsets): Don't assume list length fits in int.
5569 Check for size-calculation overflow when allocating sort data.
5570 (syms_of_charset): Allocate an initial charset table that is
5571 just under 64 KiB, to avoid problems with glibc malloc and mmap.
5572
5573 * cmds.c (internal_self_insert): Check for size-calculation overflow.
5574
5575 * composite.h (struct composition.glyph_len): Now int, not unsigned.
5576 The actual value is always <= INT_MAX, and leaving it unsigned made
5577 overflow checking harder.
5578
5579 * dispextern.h (struct glyph_matrix.rows_allocated)
5580 (struct face_cache.size): Now ptrdiff_t, for convenience in use
5581 with xpalloc. The values are still always <= INT_MAX.
5582
5583 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
5584
5585 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
5586 (SAFE_NALLOCA): New macro.
5587
5588 * region-cache.c (struct boundary.pos, find_cache_boundary)
5589 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
5590 (set_cache_region, invalidate_region_cache)
5591 (revalidate_region_cache, know_region_cache, region_cache_forward)
5592 (region_cache_backward, pp_cache):
5593 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
5594 so that ptrdiff_t * can be passed to xpalloc.
5595 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
5596 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
5597 (pp_cache): Don't assume cache_len fits in int.
5598 * region-cache.h: Adjust extern decls to match.
5599
5600 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
5601 EMACS_INT, since either will do, for xpalloc.
5602
5603 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
5604 (xnmalloc, xnrealloc, xpalloc): New functions.
5605
726e0ab1
PE
5606 * bidi.c (bidi_shelve_header_size): New constant.
5607 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
5608 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
5609
51f30bc5 5610 * bidi.c (bidi_cache_shrink):
726e0ab1
PE
5611 * buffer.c (overlays_at, overlays_in, record_overlay_string)
5612 (overlay_strings):
5613 Don't update size of array until after memory allocation succeeds,
5614 because xmalloc/xrealloc may not return.
0065d054
PE
5615 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
5616 now that we have proper integer overflow checking.
5617 (record_overlay_string, overlay_strings): Catch overflows when
5618 calculating size of overlay_str_buf.
726e0ab1 5619
0065d054
PE
5620 * callproc.c (Fcall_process): Check for size overflow when
5621 calculating size of args2.
5622 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
5623 Normally we prefer signed values, but sticking with ptrdiff_t would
5624 require adding more-complicated checks.
726e0ab1
PE
5625
5626 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
5627 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
5628 Redo buffer-overflow calculations to avoid integer overflow.
0065d054 5629 Add a FIXME comment where memory seems to be over-allocated.
726e0ab1
PE
5630
5631 * character.c (Fstring): Check for size-calculation overflow.
5632
5633 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
5634 unnecessary integer overflow. Check for size overflow.
5635 (encode_coding_object): Don't update size until xmalloc succeeds.
5636
5637 * composite.c (get_composition_id): Check for overflow in glyph
5638 length calculations.
5639
5640 Integer and memory overflow fixes for display code.
5641 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
5642 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
5643 (scrolling_window): Check for overflow in size calculations.
5644 (line_draw_cost, realloc_glyph_pool, add_row_entry):
5645 Don't assume glyph table len fits in int.
5646 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
5647 (row_table_size): Now ptrdiff_t, not int.
5648 (scrolling_window): Avoid overflow in size calculations.
5649 Don't update size until allocation succeeds.
5650 * fns.c (concat): Check for overflow in size calculations.
5651 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
5652 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
5653 (NEXT_ALMOST_PRIME_LIMIT): New constant.
5654
5655 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
5656 (get_doc_string): Check for size calculation overflow.
5657 Don't update size until allocation succeeds.
5658 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
5659 EMACS_INT, where ptrdiff_t will do.
5660 (Fsubstitute_command_keys): Check for string overflow.
5661
5662 * editfns.c (set_time_zone_rule): Don't assume environment length
5663 fits in int.
5664 (message_length): Now ptrdiff_t, not int.
5665 (Fmessage_box): Don't update size until allocation succeeds.
5666 Don't assume message length fits in int.
5667 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
5668
0065d054
PE
5669 * emacs.c (main): Do not reallocate argv, since there is a null at
5670 the end that can be overwritten, and this way there's no need to
5671 worry about size-calculation overflow.
5672 (sort_args): Check for size-calculation overflow.
726e0ab1
PE
5673
5674 * eval.c (init_eval_once, grow_specpdl): Don't update size until
5675 alloc succeeds.
5676 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
5677
5678 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
5679 (x_set_scroll_bar_width, x_figure_window_size):
5680 Check for integer overflow.
5681 (x_set_alpha): Do not assume XINT fits in int.
5682
5683 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
5684 This is for the members text_lines, text_cols, total_lines, total_cols,
5685 where the system imposes an 'int' limit.
5686
5687 * fringe.c (Fdefine_fringe_bitmap):
5688 Don't update size until alloc works.
5689
5690 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
5691 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
5692
5693 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
5694 Check for size-calculation overflow.
5695 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
5696 do, as we prefer signed integers.
5697 (id_to_widget.max_size, id_to_widget.used)
5698 (xg_store_widget_in_map, xg_remove_widget_from_map)
5699 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
5700 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
5701 Use and return ptrdiff_t, not int.
5702 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
5703 * gtkutil.h: Change prototypes to match the above.
5704
5705 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
5706 are duplicate now that they've been promoted to lisp.h.
5707 (x_allocate_bitmap_record, x_alloc_image_color)
5708 (make_image_cache, cache_image, xpm_load):
5709 Don't update size until alloc is done.
5710 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
5711 (x_detect_edges):
3256efce 5712 Check for size calculation overflow.
726e0ab1
PE
5713 (ct_colors_allocated_max): New constant.
5714 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
5715 overflow.
3256efce 5716
726e0ab1
PE
5717 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
5718 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
5719 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
5720 Use ptrdiff_t, not int, to count maps.
5721 (read_char_minibuf_menu_prompt): Check for overflow in size
a66cfb1c
SM
5722 calculations. Don't update size until allocation succeeds.
5723 Redo calculations to avoid overflow.
726e0ab1
PE
5724 * keyboard.h: Change prototypes to match the above.
5725
5726 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
5727 to count maps.
5728 (current_minor_maps): Check for size calculation overflow.
5729 * keymap.h: Change prototypes to match the above.
5730
5731 * lread.c (read1, init_obarray): Don't update size until alloc done.
5732
5733 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
5734 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
5735
726e0ab1
PE
5736 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
5737 Now ptrdiff_t, not int.
5738 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
5739 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
5740
5741 * process.c (Fnetwork_interface_list): Check for overflow
5742 in size calculation.
5743
5744 * region-cache.c (move_cache_gap): Check for size calculation overflow.
5745
5746 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
5747 overflow. Don't bother calling xmalloc when xrealloc will do.
5748
5749 * search.c (Freplace_match): Check for size calculation overflow.
5750 (Fset_match_data): Don't assume list lengths fit in 'int'.
5751
5752 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
5753 for command line length. Do not attempt to address one before the
5754 beginning of an array, as that's not portable.
5755
5756 * term.c (max_frame_lines): Remove; unused.
5757 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
5758 not int.
5759 (encode_terminal_code, calculate_costs): Check for size
5760 calculation overflow.
5761 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
5762 table lengths and related sizes. Don't update size until alloc
5763 done. Redo calculations to avoid overflow.
5764 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
5765
5766 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
5767 subtracting pointers.
5768 (gobble_line): Check for overflow more carefully. Don't update size
5769 until alloc done.
5770
5771 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
5772 Don't update size until alloc done.
5773 Redo size calculations to avoid overflow.
5774 Check for size calculation overflow.
0065d054 5775 (main) [DEBUG]: Fix typo in invoking tparam1.
726e0ab1
PE
5776
5777 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
5778 Use ptrdiff_t, not int, for sizes.
5779 (store_mode_line_noprop_char): Don't update size until alloc done.
5780
0065d054
PE
5781 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
5782 Use ptrdiff_t, not int, for sizes.
5783 (Finternal_make_lisp_face, cache_face):
5784 Check for size calculation overflow.
5785 (cache_face): Treat size calculation overflows as if they were
5786 memory exhaustion (the usual treatment), rather than aborting.
726e0ab1
PE
5787
5788 * xfns.c (x_encode_text, x_set_name_internal)
5789 (Fx_change_window_property): Use ptrdiff_t, not int, to count
5790 sizes, since they can exceed INT_MAX in size. Check for size
5791 calculation overflow.
5792
0065d054
PE
5793 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
5794 (xg_select): Check for size calculation overflow.
726e0ab1
PE
5795 Don't update size until alloc done.
5796
0065d054 5797 * xrdb.c (get_environ_db): Don't assume path length fits in int,
726e0ab1 5798 as sprintf is limited to int lengths.
1d526e2f 5799
252c5ee1
PE
5800 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
5801 (X_LONG_MIN): New macros.
864d7ce7
PE
5802 Use them to make the following changes clearer.
5803 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
5804 This change doesn't affect the value now, but it may help remind
5805 future maintainers not to raise the value too much later.
5806 (SELECTION_QUANTUM): Remove, replacing with ...
5807 (selection_quantum): ... new function, which avoids overflow.
5808 All uses changed.
5809 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
5810 assumption that selection length fits in 'int'.
5811 (x_reply_selection_request, x_handle_selection_request)
5812 (x_get_window_property, receive_incremental_selection)
5813 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
5814 (lisp_data_to_selection_data, clean_local_selection_data):
5815 Use ptrdiff_t, not int, to record length of selection.
5816 (x_reply_selection_request, x_get_window_property)
5817 (receive_incremental_selection, x_property_data_to_lisp):
5818 Redo calculations to avoid overflow.
5819 (x_reply_selection_request): When sending hint, ceiling it at
252c5ee1 5820 X_LONG_MAX rather than relying on wraparound overflow to send
864d7ce7
PE
5821 something.
5822 (x_get_window_property, receive_incremental_selection)
5823 (lisp_data_to_selection_data, x_property_data_to_lisp):
5824 Check for size-calculation overflow.
5825 (x_get_window_property, receive_incremental_selection)
5826 (lisp_data_to_selection_data, Fx_register_dnd_atom):
5827 Don't store size until memory allocation succeeds.
5828 (x_get_window_property): Plug memory leak on memory exhaustion.
5829 Don't double-block input; malloc is safe here. Don't assume 2**34
5830 - 4 fits in unsigned long. Add an xassert to check
5831 XGetWindowProperty overflow. Be more careful about overflow
5832 calculations, and distinguish size from memory overflow better.
5833 (receive_incremental_selection): When tracing, don't assume
5834 unsigned int is less than INT_MAX.
5835 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
5836 harmful) conversions of unsigned short to int.
5837 (lisp_data_to_selection_data): Don't assume that integers
5838 in the range -65535 through -1 fit in an X unsigned short.
5839 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
5840 result parameters unless successful. Rely on cons_to_unsigned
5841 to report problems with elements; the old code wasn't right anyway.
5842 (x_check_property_data): Check for int overflow; we cannot use
5843 a wider type due to X limits.
5844 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
5845
726e0ab1 5846 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
34db673b 5847
0065d054
PE
5848 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
5849 (x_term_init): Check for size calculation overflow.
726e0ab1
PE
5850 (x_color_cells): Don't store size until memory allocation succeeds.
5851 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
0065d054 5852 Don't assume alloca size is less than MAX_ALLOCA.
726e0ab1
PE
5853 (x_term_init): Don't assume length fits in int (sprintf is limited
5854 to int size).
bc18e09d 5855
ebfa62c0
PE
5856 Use ptrdiff_t for composition IDs.
5857 * character.c (lisp_string_width):
5858 * composite.c (composition_table_size, n_compositions)
5859 (get_composition_id, composition_gstring_from_id):
5860 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
5861 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
5862 * window.c (Frecenter):
5863 Use ptrdiff_t, not int, for composition IDs.
5864 * composite.c (get_composition_id): Check for integer overflow.
5865 * composite.h: Adjust prototypes to match the above changes.
5866
d3411f89
PE
5867 Use ptrdiff_t for hash table indexes.
5868 * category.c (hash_get_category_set):
5869 * ccl.c (ccl_driver):
5870 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
5871 * coding.c (coding_system_charset_list, detect_coding_system):
5872 * coding.h (struct coding_system.id):
5873 * composite.c (get_composition_id, gstring_lookup_cache):
5874 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
5875 * image.c (xpm_get_color_table_h):
5876 * lisp.h (hash_lookup, hash_put):
5877 * minibuf.c (Ftest_completion):
5878 Use ptrdiff_t for hash table indexes, not int (which is too
5879 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
5880 32-bit --with-wide-int hosts).
5881
e097a6fa
PE
5882 * charset.c (Fdefine_charset_internal): Check for integer overflow.
5883 Add a FIXME comment about memory leaks.
5884 (syms_of_charset): Don't assume xmalloc returns.
5885
5637687f
PE
5886 Don't assume that stated character widths fit in int.
5887 * character.c (Fchar_width, c_string_width, lisp_string_width):
5888 * character.h (CHAR_WIDTH):
5889 * indent.c (MULTIBYTE_BYTES_WIDTH):
5890 Use sanitize_char_width to avoid undefined and/or bad behavior
5891 with outlandish widths.
a66cfb1c 5892 * character.h (sanitize_tab_width): Rename from sanitize_width,
5637687f
PE
5893 now that we have two such functions. All uses changed.
5894 (sanitize_char_width): New inline function.
5895
a2271ba2
PE
5896 Don't assume that tab-width fits in int.
5897 * character.h (sanitize_width): New inline function.
5898 (SANE_TAB_WIDTH): New macro.
5899 (ASCII_CHAR_WIDTH): Use it.
5900 * indent.c (sane_tab_width): Remove. All uses replaced by
5901 SANE_TAB_WIDTH (current_buffer).
5902 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
5903
18c52557
PE
5904 * fileio.c: Integer overflow issues with file modes.
5905 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
5906
caeeedc1
PE
5907 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
5908 Remove unreachable code.
5909 (read_hex, load_charset_map_from_file): Check for integer overflow.
5910
6df6ae42 5911 * xterm.c: Don't go over XClientMessageEvent limit.
50849c52
PE
5912 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
5913 (x_send_scroll_bar_event): Likewise. Check that the size does not
5914 exceed limits imposed by XClientMessageEvent, as well as the usual
5915 ptrdiff_t and size_t limits.
5916
b13995db
PE
5917 * keyboard.c: Overflow, signedness and related fixes.
5918 (make_lispy_movement): Use same integer type in forward decl
5919 that is used in the definition.
5920 (read_key_sequence, keyremap_step):
5921 Change bufsize argument back to int, undoing my 2011-03-30 change.
5922 We prefer signed types, and int is wide enough here.
5923 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
5924 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
5925 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
5926 length, not size_t. Use ptrdiff_t for index, not int.
5927 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
5928 possibility of integer overflow.
5929
13464394
PE
5930 Overflow, signedness and related fixes for images.
5931
5932 * dispextern.h (struct it.stack[0].u.image.image_id)
5933 (struct_it.image_id, struct image.id, struct image_cache.size)
5934 (struct image_cache.used, struct image_cache.ref_count):
5935 * gtkutil.c (update_frame_tool_bar):
5936 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
5937 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
5938 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
5939 * nsmenu.m (update_frame_tool_bar):
5940 * xdisp.c (calc_pixel_width_or_height):
5941 * xfns.c (image_cache_refcount):
5942 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
5943 on typical 64-bit hosts.
5944
5945 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
5946 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
5947 Omit unnecessary casts to int.
5948 (parse_image_spec): Check that integers fall into 'int' range
5949 when the callers expect that.
5950 (image_ascent): Redo ascent calculation to avoid int overflow.
5951 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
5952 (lookup_image): Remove unnecessary tests.
5953 (xbm_image_p): Locals are now of int, not EMACS_INT,
5954 since parse_image_check makes sure they fit into int.
5955 (png_load, gif_load, svg_load_image):
5956 Prefer int to unsigned where either will do.
5957 (tiff_handler): New function, combining the cores of the
a66cfb1c
SM
5958 old tiff_error_handler and tiff_warning_handler.
5959 This function is rewritten to use vsnprintf and thereby avoid
13464394
PE
5960 stack buffer overflows. It uses only the features of vsnprintf
5961 that are common to both POSIX and native Microsoft.
5962 (tiff_error_handler, tiff_warning_handler): Use it.
5963 (tiff_load, gif_load, imagemagick_load_image):
5964 Don't assume :index value fits in 'int'.
5965 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
5966 (imagemagick_load_image): Check that crop parameters fit into
5967 the integer types that MagickCropImage accepts. Don't assume
5968 Vimagemagick_render_type has a nonnegative value. Don't assume
5969 size_t fits in 'long'.
5970 (gs_load): Use printmax_t to print the widest integers possible.
5971 Check for integer overflow when computing image height and width.
5972
c11821d4
EZ
59732011-08-26 Eli Zaretskii <eliz@gnu.org>
5974
5975 * xdisp.c (redisplay_window): Don't force window start if point
5976 will be invisible in the resulting window. (Bug#9324)
5977
0c95fcf7
EZ
59782011-08-25 Eli Zaretskii <eliz@gnu.org>
5979
5980 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
5981 the display spec is of the form `(space ...)'.
5982 (handle_display_spec): Return the value returned by
5983 handle_single_display_spec, not just 1 or zero.
5984 (handle_single_display_spec): If the display spec is of the form
5985 `(space ...)', and specifies display in the text area, return 2
5986 rather than 1.
fee65a97 5987 (try_cursor_movement): Check for the need to scroll more
a66cfb1c
SM
5988 accurately, and prefer exact match for point under bidi.
5989 Don't advance `row' beyond the last row of the window.
0c95fcf7
EZ
5990
5991 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
5992 into disp_prop; all users changed.
5993
5994 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
5995 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
5996 for the text covered by the display property.
5997
e4ed06f1
CY
59982011-08-25 Chong Yidong <cyd@stupidchicken.com>
5999
6000 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
6001 Change return value to nil.
6002 (Frecord_buffer): Delete unused function.
6003
f67cdd7f
EZ
60042011-08-24 Eli Zaretskii <eliz@gnu.org>
6005
5980d4c6
EZ
6006 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
6007 buffers, return left-to-right.
8610fe8b
EZ
6008 (set_cursor_from_row): Consider candidate row a win if its glyph
6009 represents a newline and point is on that newline. Fixes cursor
6010 positioning on the newline at EOL of R2L text within L2R
6011 paragraph, and vice versa.
6012 (try_cursor_movement): Check continued rows, in addition to
6013 continuation rows. Fixes unwarranted scroll when point enters a
6014 continued line of R2L text within an L2R paragraph, or vice versa.
6015 (cursor_row_p): Consider the case of point being equal to
6016 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
6017 from the end of a short line to the beginning of a continued line
6018 of R2L text within L2R paragraph.
6019 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
6020 composed characters.
5980d4c6 6021
f67cdd7f
EZ
6022 * bidi.c (bidi_check_type): Use xassert.
6023 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
6024 members.
6025
bca633fb
EZ
60262011-08-23 Eli Zaretskii <eliz@gnu.org>
6027
6028 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
6029 a character.
6030
4a5885a7
CY
60312011-08-23 Chong Yidong <cyd@stupidchicken.com>
6032
6033 * nsfont.m (ns_otf_to_script): Fix typo.
6034
0902a04e
KH
60352011-08-22 Kenichi Handa <handa@m17n.org>
6036
6037 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
6038 extra slot even if the purpose is char-code-property-table.
6039
1a2e6670
EZ
60402011-08-23 Eli Zaretskii <eliz@gnu.org>
6041
8ddde651
EZ
6042 * xdisp.c (redisplay_window): When computing centering_position,
6043 account for the height of the header line. (Bug#8874)
6044
425cc014
EZ
6045 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
6046 instead of CHAR_TO_BYTE. Fixes a crash when a completion
6047 candidate is selected by the mouse, and that candidate has a
6048 composed character under the mouse.
6049
1a2e6670
EZ
6050 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
6051 coordinates reported by pos-visible-in-window-p for a composed
6052 character in column zero.
6053
8b76d6f8
SM
60542011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
6055
6056 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
6057
dac347dd
EZ
60582011-08-22 Eli Zaretskii <eliz@gnu.org>
6059
6060 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
6061 consider it a hit if to_charpos is anywhere in the range of the
6062 composed buffer positions.
6063
e013fb34
CY
60642011-08-22 Chong Yidong <cyd@stupidchicken.com>
6065
6066 * image.c (gif_load): Don't assume that each subimage has the same
6067 dimensions as the base image. Handle disposal method that is
6068 "undefined" by the gif spec (Bug#9335).
6069
bd1ba3e8
CY
60702011-08-20 Chong Yidong <cyd@stupidchicken.com>
6071
6072 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
024a2d76 6073 (Fcondition_case): Document `debug' symbol in error handler.
bd1ba3e8 6074
54a1215b
EZ
60752011-08-19 Eli Zaretskii <eliz@gnu.org>
6076
823564e5
EZ
6077 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
6078 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
6079 from an Org mode buffer to a Speedbar frame.
6080
54a1215b
EZ
6081 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
6082 a composition, take its buffer position from IT->cmp_it.charpos.
6083 Fixes cursor positioning at the beginning of a line that begins
6084 with a composed character.
6085
9778ebcc
EZ
60862011-08-18 Eli Zaretskii <eliz@gnu.org>
6087
0be6ee06
EZ
6088 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
6089 character bidirectional type, use STRONG_L instead. Fixes crashes
6090 in a buffer produced by `describe-categories'.
6091
9778ebcc
EZ
6092 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
6093 members before the level stack, so they would be saved and
6094 restored when copying iterator state. Fixes incorrect reordering
6095 around TABs covered by display properties.
6096
156bffbe
AS
60972011-08-18 Andreas Schwab <schwab@linux-m68k.org>
6098
6b02f655 6099 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
156bffbe 6100
72ad093b
CY
61012011-08-17 Chong Yidong <cyd@stupidchicken.com>
6102
6103 * eval.c (internal_condition_case, internal_condition_case_1)
8b76d6f8
SM
6104 (internal_condition_case_2, internal_condition_case_n):
6105 Remove unnecessary aborts (Bug#9081).
72ad093b 6106
35774242
EZ
61072011-08-17 Eli Zaretskii <eliz@gnu.org>
6108
6109 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
6110 has no `load' handler, try opening the file locally. (Bug#9311)
6111
db76dd85
KB
61122011-08-16 Ken Brown <kbrown@cornell.edu>
6113
6114 * gmalloc.c: Expand comment.
6115
b215eee5
EZ
61162011-08-16 Eli Zaretskii <eliz@gnu.org>
6117
6118 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
6119 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
6120
a4579d33
KB
61212011-08-16 Ken Brown <kbrown@cornell.edu>
6122
6123 Fix memory allocation problems in Cygwin build (Bug#9273).
6124
6125 * unexcw.c ( __malloc_initialized): Declare external variable.
6126 (fixup_executable): Force the dumped emacs to reinitialize malloc.
6127
8b76d6f8
SM
6128 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
6129 New variables.
a4579d33
KB
6130 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
6131 dumped emacs.
6132 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
6133 in the static heap.
6134 [CYGWIN] (special_realloc): New function.
6135 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
6136 requests to realloc storage in the static heap.
6137
3ebec551
PE
61382011-08-15 Paul Eggert <eggert@cs.ucla.edu>
6139
6140 * bidi.c (bidi_initialize): Remove unused local.
6141
9fd8be00
EZ
61422011-08-15 Eli Zaretskii <eliz@gnu.org>
6143
6b02f655
SM
6144 * bidimirror.h:
6145 * biditype.h: Remove file.
6146 * makefile.w32-in ($(BLD)/bidi.$(O)):
6147 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
474a8465
EZ
6148
6149 * dispextern.h: Fix a typo in the comment to bidi_type_t.
6150
6151 * chartab.c: Improve commentary for the uniprop_table API.
6152
32413314
EZ
6153 * bidi.c (bidi_paragraph_init): Support zero value of
6154 bidi_ignore_explicit_marks_for_paragraph_level.
474a8465
EZ
6155 (bidi_initialize): Use uniprop_table instead of including
6156 biditype.h and bidimirror.h.
32413314 6157
9fd8be00
EZ
6158 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
6159 coordinates of the iterator when restoring from ppos_it.
6160 (Bug#9296)
6161
5cf2b69b
KH
61622011-08-14 Kenichi Handa <handa@m17n.org>
6163
6164 * process.c (create_process): Call setup_process_coding_systems
72ad093b 6165 after the pid of the process is set to -1 (Bug#8162).
5cf2b69b 6166
daf17d00
EZ
61672011-08-14 Eli Zaretskii <eliz@gnu.org>
6168
6169 * xdisp.c (move_it_in_display_line_to): Don't invoke
6170 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
6171 ppos_it. Fixes vertical cursor motion when line beginning is
6172 covered by an image. (Bug#9296)
6173
08e3161a
JD
61742011-08-14 Jan Djärv <jan.h.d@swipnet.se>
6175
6176 * nsterm.h (ns_run_ascript): Declare.
6177 (NSAPP_DATA2_RUNASSCRIPT): Define.
6178
6179 * nsfns.m (as_script, as_result, as_status): New static variables.
6180 (ns_run_ascript): New function.
5e617bc2 6181 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
08e3161a
JD
6182 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
6183 the event loop. Get status from as_status (Bug#7276).
6184
6185 * nsterm.m (sendEvent): If event is NSApplicationDefined and
6186 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
6187 the event loop (Bug#7276).
6188
a3720aa2
AS
61892011-08-14 Andreas Schwab <schwab@linux-m68k.org>
6190
6191 * gnutls.c (QCgnutls_bootprop_priority)
6192 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
6193 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
6194 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
6195 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
6196 (QCgnutls_bootprop_verify_hostname_error)
6197 (QCgnutls_bootprop_callbacks_verify): Rename from
6198 Qgnutls_bootprop_..., all uses changed.
6199
6200 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
6201 uses changed.
6202
0a0d27fb
PE
62032011-08-14 Paul Eggert <eggert@cs.ucla.edu>
6204
19d5c50c
PE
6205 * xfaces.c (Qframe_set_background_mode): Now static.
6206 * dispextern.h (Qframe_set_background_mode): Remove decl.
6207
0a0d27fb
PE
6208 * process.c (Fnetwork_interface_info): Declare local only if needed.
6209
377538cb
JD
62102011-08-13 Jan Djärv <jan.h.d@swipnet.se>
6211
6212 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
6213 (Fnetwork_interface_list): Allocate in increments of bytes instead
6214 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
6215 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
6216 sockaddr.
6217 (struct ifflag_def): notrailers is smart on OSX.
6218 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
6219 Get hardware address with getifaddrs if available.
6220
08fff70c
EZ
62212011-08-12 Eli Zaretskii <eliz@gnu.org>
6222
6223 * xdisp.c (iterate_out_of_display_property): xassert that
6224 IT->position is set to within IT->object's boundaries. Break from
6225 the loop as soon as EOB is reached; avoids infloops in redisplay
8b76d6f8
SM
6226 when IT->position is set up wrongly due to some bug.
6227 Set IT->current to match the bidi iterator unconditionally.
08fff70c
EZ
6228 (push_display_prop): Allow GET_FROM_STRING as IT->method on
6229 entry. Force push_it to save on the stack the current
6230 buffer/string position, to be restored by pop_it. Fix flags in
6231 the iterator structure wrt the object coming from a display
6232 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
6233 properties. (Bug#9284)
6234
7be1c708 62352011-08-09 Andreas Schwab <schwab@linux-m68k.org>
aac0c6e3 6236
7be1c708
CY
6237 * fontset.c (fontset_get_font_group): Add proper type checks.
6238 (Bug#9172)
aac0c6e3 6239
7be1c708 62402011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
aac0c6e3 6241
7be1c708
CY
6242 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
6243 and LC_VERSION_MIN_MACOSX.
6244 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
6245 (dump_it) [LC_FUNCTION_STARTS]: Use it.
aac0c6e3 6246
97bb72a6
EZ
62472011-08-08 Eli Zaretskii <eliz@gnu.org>
6248
6249 * xdisp.c (forward_to_next_line_start): Allow to use the
8b76d6f8
SM
6250 no-display-properties-and-no-overlays under bidi display.
6251 Set disp_pos in the bidi iterator to avoid searches for display
757664a4 6252 properties and overlays.
97bb72a6 6253
d5617611
CY
62542011-08-08 Chong Yidong <cyd@stupidchicken.com>
6255
37e11a63
CY
6256 * editfns.c (Fset_time_zone_rule): Document relationship with the
6257 setenv function.
6258
d5617611
CY
6259 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
6260 the font entity extracted from the cache (Bug#8109).
6261
58872834
CY
62622011-08-07 Chong Yidong <cyd@stupidchicken.com>
6263
6264 * composite.c (autocmp_chars): Don't reset point. That is done by
6265 restore_point_unwind (Bug#5984).
6266
75bfc667
JL
62672011-08-07 Juri Linkov <juri@jurta.org>
6268
6269 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
6270 to show the arg `TIME' instead of `TIMEVAL'.
6271
d1410150
EZ
62722011-08-06 Eli Zaretskii <eliz@gnu.org>
6273
6274 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
6275 display property strides EOL and includes a newline, as in
6276 longlines-mode. (Bug#9254)
75b771e4
EZ
6277 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
6278 word-wrap under bidirectional display. (Bug#9224)
d1410150
EZ
6279
6280 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
6281 is non-zero, even if the data buffer is NULL. Fixes a crash in
6282 vertical-motion with longlines-mode. (Bug#9254)
6283
35928349
EZ
62842011-08-05 Eli Zaretskii <eliz@gnu.org>
6285
ec7cc85b
EZ
6286 * bidi.c <bidi_cache_total_alloc>: Now static.
6287 (bidi_initialize): Initialize bidi_cache_total_alloc.
6288
8b76d6f8 6289 * xdisp.c (display_line): Release buffer allocated for shelved bidi
35928349
EZ
6290 cache. (Bug#9221)
6291
6292 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
6293 amount allocated this far in `bidi_cache_total_alloc'.
6294 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
6295 non-zero, only free the data buffer without restoring the cache
6296 contents. All callers changed.
6297
6298 * dispextern.h (bidi_unshelve_cache): Update prototype.
6299
6300 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
6301 (move_it_in_display_line, move_it_to)
6302 (move_it_vertically_backward, move_it_by_lines): Replace the call
6303 to xfree to an equivalent call to bidi_unshelve_cache.
6304 (move_it_in_display_line_to): Fix logic of returning
412b6358 6305 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
35928349 6306
e2e2423b
EZ
63072011-08-05 Eli Zaretskii <eliz@gnu.org>
6308
6309 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
6310 came from a string character with a `cursor' property. (Bug#9229)
6311
ae9e757a
JD
63122011-08-04 Jan Djärv <jan.h.d@swipnet.se>
6313
6314 * Makefile.in (LIB_PTHREAD): New variable.
6315 (LIBES): Add LIB_PTHREAD (Bug#9216).
6316
6317 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
6318 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
6319
213bd7f2
AS
63202011-08-04 Andreas Schwab <schwab@linux-m68k.org>
6321
6b02f655 6322 * regex.c (re_iswctype): Remove some redundant boolean conversions.
213bd7f2 6323
99aaf75f
JD
63242011-08-04 Jan Djärv <jan.h.d@swipnet.se>
6325
6326 * xterm.c (x_find_topmost_parent): New function.
6327 (x_set_frame_alpha): Find topmost parent window with
6328 x_find_topmost_parent and set the property there also (bug#9181).
6329 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
6330
c74e9d86
PE
63312011-08-04 Paul Eggert <eggert@cs.ucla.edu>
6332
6333 * callproc.c (Fcall_process): Avoid vfork clobbering
6334 the local vars buffer, coding_systems, current_dir.
6335
640c8776
SM
63362011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
6337
6338 * keymap.c (Fmake_composed_keymap): Move to subr.el.
6339
f26d0e4c
PE
63402011-08-03 Paul Eggert <eggert@cs.ucla.edu>
6341
8a10d76c
PE
6342 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
6343 so that it is not optimized away.
6344
f26d0e4c
PE
6345 * xdisp.c (compute_display_string_pos): Remove unused local.
6346
55439c61
EZ
63472011-08-02 Eli Zaretskii <eliz@gnu.org>
6348
6349 Fix slow cursor motion and scrolling in large buffers with
6350 selective display, like Org Mode buffers. (Bug#9218)
6351
6352 * dispextern.h (struct bidi_it): New member disp_prop_p.
6353
6354 * xdisp.c: Remove one-slot cache of display string positions.
6355 (compute_display_string_pos): Accept an additional argument
5e617bc2 6356 DISP_PROP_P; callers changed. Scan at most 5K characters forward
55439c61
EZ
6357 for a display string or property. If found, set DISP_PROP_P
6358 non-zero.
6359
6360 * bidi.c (bidi_fetch_char): Accept an additional argument
640c8776
SM
6361 DISP_PROP_P, and pass it to compute_display_string_pos.
6362 Only handle text covered by a display string if DISP_PROP_P is returned
55439c61
EZ
6363 non-zero. All callers of bidi_fetch_char changed.
6364
fb33fa43
SM
63652011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
6366
6367 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
6368
b099e063
DM
63692010-12-03 Don March <don@ohspite.net>
6370
6371 * keymap.c (Fdefine_key): Fix non-prefix key error message when
6372 last character M-[char] is translated to ESC [char] (bug#7541).
6373
5cc7f7af
KH
63742011-08-02 Kenichi Handa <handa@m17n.org>
6375
d0fffa3f 6376 * lisp.h (uniprop_table): Extern it.
5cc7f7af
KH
6377
6378 * chartab.c (uniprop_table): Make it non-static.
6379
525d5e6e
EZ
63802011-08-01 Eli Zaretskii <eliz@gnu.org>
6381
6382 * xdisp.c (forward_to_next_line_start): Accept additional argument
6383 BIDI_IT_PREV, and store into it the state of the bidi iterator had
6384 on the newline.
6385 (reseat_at_next_visible_line_start): Use the bidi iterator state
6386 returned by forward_to_next_line_start to restore the state of
6387 it->bidi_it after backing up to previous newline. (Bug#9212)
6388
31011111
AS
63892011-07-30 Andreas Schwab <schwab@linux-m68k.org>
6390
6391 * regex.c (re_comp): Protoize.
6392 (re_exec): Fix return type.
6393 (regexec): Fix type of `ret'. (Bug#9203)
6394
476371c4
PE
63952011-07-28 Paul Eggert <eggert@cs.ucla.edu>
6396
e5d76069
PE
6397 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
6398 This is needed if max-image-size is a floating-point number.
6399
9a79b20c
AS
64002011-07-28 Andreas Schwab <schwab@linux-m68k.org>
6401
6402 * print.c (print_object): Print empty symbol as ##.
6403
6404 * lread.c (read1): Read ## as empty symbol.
6405
d8c2fa78
AA
64062011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
6407
6408 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
6409 setting frame foreground color (Bug#9175).
6410 (x_set_background_color): Likewise.
6411
ffe57a7a
AA
6412 * nsmenu.m (-setText): Size tooltip dimensions precisely to
6413 contents (Bug#9176).
6414 (EmacsTooltip -init): Remove bezels and add shadows to
6415 tooltip windows.
6416
bf3492a5
AA
6417 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
6418 or scroll bar (Bug#8470).
6419
d55e9c53
AA
6420 * nsfont.m (nsfont_open): Remove assignment to voffset and
6421 unnecessary vars hshink, expand, hd, full_height, min_height.
6422 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
6423
6424 * nsterm.h (nsfont_info): Remove voffset field.
6425
d8c2fa78 64262011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
4843aac3
AA
6427
6428 Implement strike-through and overline on NextStep (Bug#8863).
6429
6430 * nsfont.m (nsfont_open): Use underline position provided by font,
6431 instead of hard-coded value of 2.
6432 (nsfont_draw): Call ns_draw_text_decoration instead.
6433
6434 * nsterm.h: Add declaration for ns_draw_text_decoration.
6435
6436 * nsterm.m (ns_draw_text_decoration): New function for drawing
6437 underline, overline, and strike-through.
6438 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
6439 ns_draw_text_decoration. Change treatment of cursor drawing to
8d5ed899 6440 accommodate underlining, etc.
4843aac3 6441
4cc60b9b
EZ
64422011-07-28 Eli Zaretskii <eliz@gnu.org>
6443
bc7ece87
EZ
6444 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
6445 default.
4cc60b9b 6446
476371c4
PE
64472011-07-28 Paul Eggert <eggert@cs.ucla.edu>
6448
66606eea
PE
6449 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
6450 Without this fix, if a signal arrives just after memory fills up,
6451 'malloc' might be invoked reentrantly.
6452
476371c4
PE
6453 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
6454 In other words, assume that every image size is allowed, on non-X
6455 hosts. This assumption is probably wrong, but it lets Emacs compile.
6456
f3fcc40d
AS
64572011-07-28 Andreas Schwab <schwab@linux-m68k.org>
6458
6459 * regex.c (re_iswctype): Convert return values to boolean.
6460
350c992f
EZ
64612011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
6462
6463 * xdisp.c (compute_display_string_pos): Don't use cached display
6464 string position if the buffer had its restriction changed.
6465 (Bug#9184)
6466
5266b4bb
PE
64672011-07-28 Paul Eggert <eggert@cs.ucla.edu>
6468
6469 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
6470
2573a837 64712011-07-28 Paul Eggert <eggert@cs.ucla.edu>
ca4aa935 6472
41f55ccd 6473 Integer signedness and overflow and related fixes. (Bug#9079)
cf950e6b 6474
39e378da
PE
6475 * bidi.c: Integer size and overflow fixes.
6476 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
6477 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
6478 (bidi_cache_find_level_change, bidi_cache_ensure_space)
6479 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
6480 (bidi_find_other_level_edge):
6481 Use ptrdiff_t instead of EMACS_INT where either will do.
6482 This works better on 32-bit hosts configured --with-wide-int.
6483 (bidi_cache_ensure_space): Check for size-calculation overflow.
6484 Use % rather than repeated addition, for better worst-case speed.
6485 Don't set bidi_cache_size until after xrealloc returns, because it
6486 might not return.
6487 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
f0eb61e9
PE
6488 (bidi_cache_ensure_space): Also check that the bidi cache size
6489 does not exceed that of the largest Lisp string or buffer. See Eli
6490 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
39e378da 6491
5e927815
PE
6492 * alloc.c (__malloc_size_t): Remove.
6493 All uses replaced by size_t. See Andreas Schwab's note
6494 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
6495
ca4aa935
PE
6496 * image.c: Improve checking for integer overflow.
6497 (check_image_size): Assume that f is nonnull, since
6498 it is always nonnull in practice. This is one less thing to
6499 worry about when checking for integer overflow later.
6500 (x_check_image_size): New function, which checks for integer
6501 overflow issues inside X.
6502 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
6503 This removes the need for a memory_full check.
6504 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
6505 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
6506 (xbm_read_bitmap_data): Change locals back to 'int', since
6507 their values must fit in 'int'.
6508 (xpm_load_image, png_load, tiff_load):
6509 Invoke x_create_x_image_and_pixmap earlier,
6510 to avoid much needless work if the image is too large.
6511 (tiff_load): Treat overly large images as if
6512 x_create_x_image_and_pixmap failed, not as malloc failures.
6513 (gs_load): Use x_check_image_size.
6514
5f8f9cc2
PE
6515 * gtkutil.c: Omit integer casts.
6516 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
6517 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
6518
5adf60bc
PE
6519 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
6520
c8907a93
PE
6521 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
6522 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
6523 would wrongly return t on a 64-bit host.
6524
e3c25c68
PE
6525 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
6526 The plain *_OVERFLOW macros run afoul of GCC bug 49705
6527 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
6528 and therefore cause GCC to emit a bogus diagnostic in some cases.
6529
3f791afe
PE
6530 * image.c: Integer signedness and overflow and related fixes.
6531 This is not an exhaustive set of fixes, but it's time to
6532 record what I've got.
6533 (lookup_pixel_color, check_image_size): Remove redundant decls.
6534 (check_image_size): Don't assume that arbitrary EMACS_INT values
6535 fit in 'int', or that arbitrary 'double' values fit in 'int'.
6536 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
6537 (tiff_load, imagemagick_load_image):
6538 Check for overflow in size calculations.
6539 (x_create_x_image_and_pixmap): Remove unnecessary test for
6540 xmalloc returning NULL; that can't happen.
6541 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
6542 (xpm_color_bucket): Use better integer hashing function.
6543 (xpm_cache_color): Don't possibly over-allocate memory.
6544 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
6545 (gif_memory_source):
6546 Use ptrdiff_t, not int or size_t, to record sizes.
6547 (png_load): Don't assume values greater than 2**31 fit in 'int'.
6548 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
6549 either works, as we prefer signed integers.
6550 (tiff_read_from_memory, tiff_write_from_memory):
6551 Return tsize_t, not size_t, since that's what the TIFF API wants.
6552 (tiff_read_from_memory): Don't fail simply because the read would
6553 go past EOF; instead, return a short read.
6554 (tiff_load): Omit no-longer-needed casts.
6555 (Fimagemagick_types): Don't assume size fits into 'int'.
6556
3cc5a532
PE
6557 Improve hashing quality when configured --with-wide-int.
6558 * fns.c (hash_string): New function, taken from sxhash_string.
6559 Do not discard information about ASCII character case; this
6560 discarding is no longer needed.
6561 (sxhash-string): Use it. Change sig to match it. Caller changed.
6562 * lisp.h: Declare it.
6563 * lread.c (hash_string): Remove, since we now use fns.c's version.
6564 The fns.c version returns a wider integer if --with-wide-int is
6565 specified, so this should help the quality of the hashing a bit.
6566
b312a492
PE
6567 * emacs.c: Integer overflow minor fix.
6568 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
6569 Define only if GNU_LINUX.
6570 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
6571
dfd153ae
PE
6572 * dispnew.c: Integer signedness and overflow fixes.
6573 Remove unnecessary forward decls, that were a maintenance hassle.
6574 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
6575 All uses changed.
6576 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
6577 (scrolling_window): Use ptrdiff_t, not int, for byte count.
6578 (prepare_desired_row, line_draw_cost):
6579 Use int, not unsigned, where either works.
6580 (save_current_matrix, restore_current_matrix):
6581 Use ptrdiff_t, not size_t, where either works.
6582 (init_display): Check for overflow more accurately, and without
6583 relying on undefined behavior.
6584
a81d11a3
PE
6585 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
6586 Remove, replacing with the new symbols in lisp.h. All uses changed.
6587 * fileio.c (make_temp_name):
6588 * filelock.c (lock_file_1, lock_file):
6589 * xdisp.c (message_dolog):
6590 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
6591 Use pMd etc. instead.
6592 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
6593 replacing the pWIDE etc. symbols removed from editfns.c.
6594
3300e6fd
PE
6595 * keyboard.h (num_input_events): Now uintmax_t.
6596 This is (very slightly) less likely to mess up due to wraparound.
6597 All uses changed.
6598
fd05c7e9
PE
6599 * buffer.c: Integer signedness fixes.
6600 (alloc_buffer_text, enlarge_buffer_text):
6601 Use ptrdiff_t rather than size_t when either will do, as we prefer
6602 signed integers.
6603
903fe15d
PE
6604 * alloc.c: Integer signedness and overflow fixes.
6605 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
6606 (__malloc_size_t): Default to size_t, not to int.
6607 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
6608 (Fgarbage_collect, mark_object_loop_halt, mark_object):
6609 Prefer ptrdiff_t to size_t when either would do, as we prefer
6610 signed integers.
6611 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
6612 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
6613 Now const. Initialize with values that are in range even if char
6614 is signed.
6615 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
6616 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
6617 These functions do the right thing with sizes > 2**32.
6618 (check_depth): Now ptrdiff_t, not int.
6619 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
6620 Adjust to new way of storing sizes. Check for size overflow bugs
6621 in rest of code.
6622 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
6623 slightly wrong anyway, as it missed one instance of
6624 XMALLOC_OVERRUN_CHECK_OVERHEAD.
6625 (refill_memory_reserve): Omit needless cast to size_t.
6626 (mark_object_loop_halt): Mark as externally visible.
6627
ac82cc6a
PE
6628 * xselect.c: Integer signedness and overflow fixes.
6629 (Fx_register_dnd_atom, x_handle_dnd_message):
6630 Use ptrdiff_t, not size_t, since we prefer signed.
6631 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
6632 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
6633 x_dnd_atoms_size and x_dnd_atoms_length.
6634
c2d1e36d
PE
6635 * doprnt.c: Prefer signed to unsigned when either works.
6636 * eval.c (verror):
6637 * doprnt.c (doprnt):
6638 * lisp.h (doprnt):
6639 * xdisp.c (vmessage):
6640 Use ptrdiff_t, not size_t, when using or implementing doprnt,
6641 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
6642 prefer signed arithmetic to avoid comparison confusion.
6643 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
6644 but is a bit tricky.
6645
0e926e56
PE
6646 Assume freestanding C89 headers, string.h, stdlib.h.
6647 * data.c, doprnt.c, floatfns.c, print.c:
6648 Include float.h unconditionally.
6649 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
6650 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
6651 * regex.c: Likewise for stddef.h, string.h.
6652 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
6653 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
6654 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
6655 (STDC_HEADERS): Remove obsolete defines.
6656 * sysdep.c: Include limits.h unconditionally.
6657
9cfdb3ec
PE
6658 Assume support for memcmp, memcpy, memmove, memset.
6659 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
6660 * regex.c (memcmp, memcpy):
6661 Remove; we assume C89 now.
6662
6663 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
6664 (__malloc_safe_bcopy): Remove; no longer needed.
6665
cf950e6b 6666 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
6089c567
PE
6667 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
6668 well either way, and we prefer signed to unsigned.
6669
dbf38e02
LMI
66702011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
6671
6672 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
6673 closes the connection while we're reading (bug#9182).
6674
d6f0886c 66752011-07-25 Jan Djärv <jan.h.d@swipnet.se>
24e0f6b1 6676
d6f0886c
JD
6677 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
6678 are specified (Bug#9168).
24e0f6b1 6679
2eb1f9e6
PE
66802011-07-25 Paul Eggert <eggert@cs.ucla.edu>
6681
6682 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
6683 Found by GCC static checking and --with-wide-int on a 32-bit host.
6684
22381272 66852011-07-25 Eli Zaretskii <eliz@gnu.org>
7daee910
EZ
6686
6687 * xdisp.c (compute_display_string_pos): Fix logic of caching
6688 previous display string position. Initialize cached_prev_pos to
6689 -1. Fixes slow-down at the beginning of a buffer.
6690
f25e39b4
EZ
66912011-07-24 Eli Zaretskii <eliz@gnu.org>
6692
6693 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
6694 for attrs[LFACE_FONTSET_INDEX].
6695
04c4b52e
PE
66962011-07-23 Paul Eggert <eggert@cs.ucla.edu>
6697
6698 * xml.c (parse_region): Remove unused local
6699 that was recently introduced.
6700
c1734fbd
EZ
67012011-07-23 Eli Zaretskii <eliz@gnu.org>
6702
be18c5a5
EZ
6703 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
6704 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
6705
c1734fbd
EZ
6706 * xdisp.c (move_it_in_display_line_to): Record the best matching
6707 position for TO_CHARPOS while scanning the line, and restore it on
640c8776
SM
6708 exit if none of the characters scanned was an exact match.
6709 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
a9269c18
EZ
6710 when exact match is impossible due to invisible text, and the
6711 lines are truncated.
6712
a258d627
JD
67132011-07-23 Jan Djärv <jan.h.d@swipnet.se>
6714
6715 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
6716 for OSX >= 10.7.
6717
b6d5a689
EZ
67182011-07-22 Eli Zaretskii <eliz@gnu.org>
6719
0f74f785
EZ
6720 Fix a significant slow-down of cursor motion with C-n, C-p,
6721 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
6722 auto-repeat under bidi redisplay in fontified buffers.
b6d5a689 6723 * xdisp.c (compute_stop_pos_backwards): New function.
b6d5a689
EZ
6724 (next_element_from_buffer): Call compute_stop_pos_backwards to
6725 find a suitable prev_stop when we find ourselves before
0f74f785
EZ
6726 base_level_stop.
6727 (reseat): Don't look for prev_stop, as that could mean a very long
6728 run.
6729 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
6730 <cached_disp_overlay_modiff>: Cache for last found display string
6731 position.
551918c1 6732 (compute_display_string_pos): Return the cached position if asked
0f74f785
EZ
6733 about the same buffer in the same area of character positions, and
6734 the buffer wasn't changed since the time the display string
6735 position was cached.
551918c1 6736
b2d0c91a
EZ
67372011-07-22 Eli Zaretskii <eliz@gnu.org>
6738
6739 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
6740 is an integer, which is important for empty lines. (Bug#9149)
6741
043604ee
CY
67422011-07-22 Chong Yidong <cyd@stupidchicken.com>
6743
6744 * frame.c (Fmodify_frame_parameters): In tty case, update the
6745 default face if necessary (Bug#4238).
6746
da4adb04
CY
67472011-07-21 Chong Yidong <cyd@stupidchicken.com>
6748
6749 * editfns.c (Fstring_to_char): No need to explain what a character
6750 is in the docstring (Bug#6576).
6751
9abd0532
LMI
67522011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
6753
6754 * xml.c (parse_region): Make sure we always return a tree.
6755
36881d16
HK
67562011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
6757
6758 * xml.c (parse_region): If a document contains only comments,
6759 return that, too.
6760
1e98674d
LMI
67612011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
6762
6763 * xml.c (make_dom): Return comments, too.
6764
590bd467
PE
67652011-07-19 Paul Eggert <eggert@cs.ucla.edu>
6766
6767 Port to OpenBSD.
6768 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
6769 and the surrounding thread.
6770 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
6771 rather than fgets, and retry after EINTR. Otherwise, 'emacs
6772 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
6773 timer goes off.
6774 * s/openbsd.h (BROKEN_SIGIO): Define.
6775 * unexelf.c (unexec) [__OpenBSD__]:
6776 Don't update the .mdebug section of the Alpha COFF symbol table.
6777
f41628b2
LMI
67782011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
6779
6780 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
6781 (bug#8460).
6782
b59b67c5
PE
67832011-07-18 Paul Eggert <eggert@cs.ucla.edu>
6784
15e3a074
PE
6785 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
6786 This fixes some race conditions on the permissions of any newly
6787 created file.
6788
41bed37d
PE
6789 * alloc.c (valid_pointer_p): Use pipe, not open.
6790 This fixes some permissions issues when debugging.
6791
b59b67c5
PE
6792 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
6793 If fchown fails to set both uid and gid, try to set just gid,
6794 as that is sometimes allowed. Adjust the file's mode to eliminate
6795 setuid or setgid bits that are inappropriate if fchown fails.
6796
925a6be7
SM
67972011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
6798
6799 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
6800 to compare Lisp_Objects.
6801 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
6802 global_gnutls_log_level, don't mistake it for a Lisp_Object.
6803 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
6804
52968808
AS
68052011-07-17 Andreas Schwab <schwab@linux-m68k.org>
6806
0a6a104b
AS
6807 * lread.c (read_integer): Unread even EOF character.
6808 (read1): Likewise. Properly record start position of symbol.
6809
52968808
AS
6810 * lread.c (read1): Read `#:' as empty uninterned symbol if no
6811 symbol character follows.
6812
9e381cdd
PE
68132011-07-17 Paul Eggert <eggert@cs.ucla.edu>
6814
6815 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
6816 This works around a problem with the previous change to Fcopy_file.
6817 Recent glibc declares fchown with __attribute__((warn_unused_result)),
6818 and without this change, GCC might complain about discarding
6819 fchown's return value.
6820
b5641435
JB
68212011-07-16 Juanma Barranquero <lekktu@gmail.com>
6822
6823 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
6824
a8031457
PE
68252011-07-16 Paul Eggert <eggert@cs.ucla.edu>
6826
6827 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
6828
dd889327
LMI
68292011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
6830
750c33f7
LMI
6831 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
6832 it's used from the C level.
6833
dd889327
LMI
6834 * process.c: Use the same condition for POLL_FOR_INPUT in both
6835 keyboard.c and process.c (bug#1858).
6836
87e86684
LM
68372011-07-09 Lawrence Mitchell <wence@gmx.li>
6838
6839 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
6840 (Fgnutls_boot): Use it.
6841
64348f40
AS
68422011-07-15 Andreas Schwab <schwab@linux-m68k.org>
6843
6844 * doc.c (Fsubstitute_command_keys): Revert last change.
6845
1d698799
LMI
68462011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
6847
f863868c
LMI
6848 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
6849 quotes the next character, and doesn't affect other longer
6850 sequences (bug#8935).
6851
1d698799
LMI
6852 * lread.c (syms_of_lread): Clarify that is isn't only
6853 `eval-buffer' and `eval-defun' that's affected by
6854 `lexical-binding' (bug#8460).
6855
aa4b6df6
EZ
68562011-07-15 Eli Zaretskii <eliz@gnu.org>
6857
6858 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
6b02f655 6859 bidi redisplay when a line includes both an image and is truncated.
aa4b6df6 6860
5d856da6
PE
68612011-07-14 Paul Eggert <eggert@cs.ucla.edu>
6862
ad6042bb
PE
6863 Fix minor problems found by static checking.
6864 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
6865 (elsz): Now a signed constant, not a size_t var. We prefer signed
6866 types to unsigned, to avoid integer comparison confusion. Without
6867 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
6868 "cannot optimize loop, the loop counter may overflow", a symptom
6869 of the confusion.
f00bbb22 6870 * indent.c (Fvertical_motion): Mark locals as initialized.
5d856da6
PE
6871 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
6872
6468f31c
LMI
68732011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
6874
49080b10
LMI
6875 * search.c (Fre_search_backward): Mention `case-fold-search' in
6876 all the re_search_* functions (bug#8138).
6877
6468f31c
LMI
6878 * keyboard.c (Fopen_dribble_file): Document when the file is
6879 closed (bug#8056).
6880
c965adc5
EZ
68812011-07-14 Eli Zaretskii <eliz@gnu.org>
6882
df9733bf
EZ
6883 * bidi.c (bidi_dump_cached_states): Fix format of displaying
6884 bidi_cache_idx.
6885
0bb23927
EZ
6886 Support bidi reordering of display and overlay strings.
6887 * xdisp.c (compute_display_string_pos)
6888 (compute_display_string_end): Accept additional argument STRING.
6889 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
6890 (reseat_to_string): Initialize bidi_it->string.s and
6891 bidi_it->string.schars.
6892 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
640c8776
SM
6893 NULL (avoids a crash in bidi_paragraph_init).
6894 Initialize itb.string.lstring.
0bb23927
EZ
6895 (init_iterator): Call bidi_init_it only of a valid
6896 buffer position was specified. Initialize paragraph_embedding to
6897 L2R.
6898 (reseat_to_string): Initialize the bidi iterator.
6899 (display_string): If we need to ignore text properties of
6900 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
6901 original value of -1 will not work with bidi.)
6902 (compute_display_string_pos): First arg is now struct
6903 `text_pos *'; all callers changed. Support display properties on
6904 Lisp strings.
6905 (compute_display_string_end): Support display properties on Lisp
6906 strings.
6907 (init_iterator, reseat_1, reseat_to_string): Initialize the
6908 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
6909 when iterating on a string not from display properties).
640c8776
SM
6910 (compute_display_string_pos, compute_display_string_end):
6911 Fix calculation of the object to scan. Fixes an error when using
0bb23927
EZ
6912 arrow keys.
6913 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
640c8776
SM
6914 base_level_stop; instead, set base_level_stop to BEGV.
6915 Fixes crashes in vertical-motion.
0bb23927
EZ
6916 (next_element_from_buffer): Improve commentary for when
6917 the iterator is before prev_stop.
6918 (init_iterator): Initialize bidi_p from the default value of
6919 bidi-display-reordering, not from buffer-local value. Use the
6920 buffer-local value only if initializing for buffer iteration.
6921 (handle_invisible_prop): Support invisible properties on strings
6922 that are being bidi-reordered.
6923 (set_iterator_to_next): Support bidi reordering of C strings and
6924 Lisp strings.
6925 (next_element_from_string): Support bidi reordering of Lisp
6926 strings.
6927 (handle_stop_backwards): Support Lisp strings as well.
640c8776
SM
6928 (display_string): Support display of R2L glyph rows.
6929 Use IT_STRING_CHARPOS when displaying from a Lisp string.
0bb23927
EZ
6930 (init_iterator): Don't initialize it->bidi_p for strings
6931 here.
6932 (reseat_to_string): Initialize it->bidi_p for strings here.
6933 (next_element_from_string, next_element_from_c_string)
6934 (next_element_from_buffer): Add xassert's for correspondence
6935 between IT's object being iterated and it->bidi_it.string
6936 structure.
6937 (face_before_or_after_it_pos): Support bidi iteration.
6938 (next_element_from_c_string): Handle the case of the first string
6939 character that is not the first one in the visual order.
6940 (get_visually_first_element): New function, refactored from common
6941 parts of next_element_from_buffer, next_element_from_string, and
6942 next_element_from_c_string.
6943 (tool_bar_lines_needed, redisplay_tool_bar)
6944 (display_menu_bar): Force left-to-right direction. Add a FIXME
6945 comment for making that be controlled by a user option.
6946 (push_it, pop_it): Save and restore the state of the
6947 bidi iterator. Save and restore the bidi_p flag.
6948 (pop_it): Iterate out of display property for string iteration as
6949 well.
6950 (iterate_out_of_display_property): Support iteration over strings.
6951 (handle_single_display_spec): Set up it->bidi_it for iteration
6952 over a display string, and call bidi_init_it.
6953 (handle_single_display_spec, next_overlay_string)
6954 (get_overlay_strings_1, push_display_prop): Set up the bidi
6955 iterator for displaying display or overlay strings.
6956 (forward_to_next_line_start): Don't use the shortcut if
6957 bidi-iterating.
6958 (back_to_previous_visible_line_start): If handle_display_prop
6959 pushed the iterator stack, restore the internal state of the bidi
6960 iterator by calling bidi_pop_it same number of times.
6961 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
6962 and we are bidi-iterating, don't decrement the iterator position;
6963 instead, set the first_elt flag in the bidi iterator, to produce
6964 the same effect.
6965 (reseat_1): Remove redundant setting of string_from_display_prop_p.
6966 (push_display_prop): xassert that we are iterating a buffer.
6967 (push_it, pop_it): Save and restore paragraph_embedding member.
6968 (handle_single_display_spec, next_overlay_string)
6969 (get_overlay_strings_1, reseat_1, reseat_to_string)
6970 (push_display_prop): Set up the `unibyte' member of bidi_it.string
6971 correctly. Don't assume unibyte strings are not bidi-reordered.
6972 (compute_display_string_pos)
6973 (compute_display_string_end): Fix handling the case of C string.
6974 (push_it, pop_it): Save and restore from_disp_prop_p.
6975 (handle_single_display_spec, push_display_prop): Set the
6976 from_disp_prop_p flag.
6977 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
6978 (pop_it): Call iterate_out_of_display_property only if we are
6979 popping after iteration over a string that came from a display
6980 property. Fix a typo in popping stretch info. Add an assertion
6981 for verifying that the iterator position is in sync with the bidi
6982 iterator.
6983 (handle_single_display_spec, get_overlay_strings_1)
6984 (push_display_prop): Fix initialization of paragraph direction for
6985 string when that of the parent object is not yet determined.
6986 (reseat_1): Call bidi_init_it to resync the bidi
6987 iterator with IT's position. (Bug#7616)
6988 (find_row_edges): If ROW->start.pos gives position
6989 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
6990 (handle_stop, back_to_previous_visible_line_start, reseat_1):
6991 Reset the from_disp_prop_p flag.
6992 (SAVE_IT, RESTORE_IT): New macros.
6993 (pos_visible_p, face_before_or_after_it_pos)
6994 (back_to_previous_visible_line_start)
6995 (move_it_in_display_line_to, move_it_in_display_line)
6996 (move_it_to, move_it_vertically_backward, move_it_by_lines)
6997 (try_scrolling, redisplay_window, display_line): Use them when
6998 saving a temporary copy of the iterator and restoring it back.
6999 (back_to_previous_visible_line_start, reseat_1)
7000 (init_iterator): Empty the bidi cache "stack".
7001 (move_it_in_display_line_to): If iterator ended up at
7002 EOL, but we never saw any buffer positions smaller than
7003 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
7004 motion in bidi-reordered lines.
7005 (move_it_in_display_line_to): Record prev_method and prev_pos
7006 immediately before the call to set_iterator_to_next. Fixes cursor
7007 motion in bidi-reordered lines with stretch glyphs and strings
7008 displayed in margins. (Bug#8133) (Bug#8867)
7009 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
7010 TO_CHARPOS.
640c8776
SM
7011 (pos_visible_p): Support positions in bidi-reordered lines.
7012 Save and restore bidi cache.
0bb23927
EZ
7013
7014 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
7015 (bidi_paragraph_info): Delete unused struct.
7016 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
7017 (bidi_cache_start): New variable.
7018 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
7019 to zero.
7020 (bidi_cache_fetch_state, bidi_cache_search)
7021 (bidi_cache_find_level_change, bidi_cache_iterator_state)
7022 (bidi_cache_find, bidi_peek_at_next_level)
7023 (bidi_level_of_next_char, bidi_find_other_level_edge)
7024 (bidi_move_to_visually_next): Compare cache index with
7025 bidi_cache_start rather than with zero.
7026 (bidi_fetch_char): Accept new argument STRING; all callers
7027 changed. Support iteration over a string. Support strings with
7028 display properties. Support unibyte strings. Fix the type of
7029 `len' according to what STRING_CHAR_AND_LENGTH expects.
7030 (bidi_paragraph_init, bidi_resolve_explicit_1)
7031 (bidi_resolve_explicit, bidi_resolve_weak)
640c8776
SM
7032 (bidi_level_of_next_char, bidi_move_to_visually_next):
7033 Support iteration over a string.
0bb23927
EZ
7034 (bidi_set_sor_type, bidi_resolve_explicit_1)
7035 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
7036 can now be zero (for strings); special values 0 and -1 were
7037 changed to -1 and -2, respectively.
7038 (bidi_char_at_pos): New function.
7039 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
7040 Call it instead of FETCH_MULTIBYTE_CHAR.
7041 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
7042 initialized to valid values.
7043 (bidi_init_it): Don't initialize charpos and bytepos with invalid
7044 values.
7045 (bidi_level_of_next_char): Allow the sentinel "position" to pass
7046 the test for valid cached positions. Fix the logic for looking up
7047 the sentinel state in the cache. GCPRO the Lisp string we are
7048 iterating.
7049 (bidi_push_it, bidi_pop_it): New functions.
7050 (bidi_initialize): Initialize the bidi cache start stack pointer.
7051 (bidi_cache_ensure_space): New function, refactored from part of
7052 bidi_cache_iterator_state. Don't assume the required size is just
7053 one BIDI_CACHE_CHUNK away.
7054 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
7055 (bidi_count_bytes, bidi_char_at_pos): New functions.
7056 (bidi_cache_search): Don't assume bidi_cache_last_idx is
7057 always valid if bidi_cache_idx is valid.
7058 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
7059 is valid if it's going to be used.
7060 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
7061 (bidi_cache_fetch_state, bidi_cache_search)
c965adc5
EZ
7062 (bidi_cache_find_level_change, bidi_cache_ensure_space)
7063 (bidi_cache_iterator_state, bidi_cache_find)
640c8776
SM
7064 (bidi_find_other_level_edge, bidi_cache_start_stack):
7065 All variables related to cache indices are now EMACS_INT.
c965adc5 7066
0bb23927
EZ
7067 * dispextern.h (struct bidi_string_data): New structure.
7068 (struct bidi_it): New member `string'. Make flag members be 1-bit
7069 fields, and put them last in the struct.
640c8776
SM
7070 (compute_display_string_pos, compute_display_string_end):
7071 Update prototypes.
0bb23927
EZ
7072 (bidi_push_it, bidi_pop_it): Add prototypes.
7073 (struct iterator_stack_entry): New members bidi_p,
7074 paragraph_embedding, and from_disp_prop_p.
7075 (struct it): Member bidi_p is now a bit field 1 bit wide.
640c8776
SM
7076 (bidi_shelve_cache, bidi_unshelve_cache):
7077 Declare prototypes.
0bb23927
EZ
7078
7079 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
7080 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
7081 and vector-like objects.
7082
7083 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
7084 cache around display iteration.
7085
7086 * window.c (Fwindow_end, window_scroll_pixel_based)
7087 (displayed_window_lines, Frecenter): Save and restore the bidi
7088 cache around display iteration.
7089
3bbd2265
LMI
70902011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
7091
7092 * editfns.c (Fdelete_region): Clarify the use of the named
7093 parameters (bug#6788).
7094
adc47434
MR
70952011-07-14 Martin Rudalics <rudalics@gmx.at>
7096
7097 * indent.c (Fvertical_motion): Set and restore w->pointm when
7098 saving and restoring the window's buffer (Bug#9006).
7099
837c31f8
LMI
71002011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
7101
7102 * editfns.c (Fstring_to_char): Clarify just what is returned
7103 (bug#6576). Text by Eli Zaretskii.
7104
ac389d0c
JB
71052011-07-13 Juanma Barranquero <lekktu@gmail.com>
7106
7107 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
7108
0be0ce47
EZ
71092011-07-13 Eli Zaretskii <eliz@gnu.org>
7110
7111 * buffer.c (mmap_find): Fix a typo.
7112
cd18e7e3
JB
71132011-07-13 Johan Bockgård <bojohan@gnu.org>
7114
7115 Fix execution of x selection hooks.
7116 * xselect.c (Qx_lost_selection_functions)
7117 (Qx_sent_selection_functions): New vars.
7118 (syms_of_xselect): DEFSYM them.
7119 (x_handle_selection_request): Pass Qx_sent_selection_functions
7120 rather than Vx_sent_selection_functions to Frun_hook_with_args.
7121 (x_handle_selection_clear,x_clear_frame_selections):
7122 Pass Qx_lost_selection_functions rather than
7123 Vx_lost_selection_functions to Frun_hook_with_args.
7124
47ea7f44
PE
71252011-07-13 Paul Eggert <eggert@cs.ucla.edu>
7126
ac389d0c 7127 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
2941c447
PE
7128 The old code sometimes used this field without initializing it.
7129
47ea7f44
PE
7130 * alloc.c (gc_sweep): Don't read past end of array.
7131 In theory, the old code could also have corrupted Emacs internals,
7132 though it'd be very unlikely.
7133
bc985c87
AS
71342011-07-12 Andreas Schwab <schwab@linux-m68k.org>
7135
7136 * character.c (Fcharacterp): Don't advertise optional ignored
ac389d0c 7137 argument. (Bug#4026)
bc985c87 7138
0cf34688
LMI
71392011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
7140
b3dadd76
LMI
7141 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
7142 key" (bug#4257).
7143
0cf34688
LMI
7144 * window.c (Fset_window_start): Doc fix (bug#4199).
7145 (Fset_window_hscroll): Ditto.
7146
270768cd
PE
71472011-07-12 Paul Eggert <eggert@cs.ucla.edu>
7148
077e3dda 7149 Fix minor new problems caught by GCC 4.6.1.
270768cd 7150 * term.c (init_tty): Remove unused local.
490011a6 7151 * xsettings.c (store_monospaced_changed): Define this function only
077e3dda 7152 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
490011a6 7153 not used otherwise.
270768cd 7154
b1f58454
CY
71552011-07-12 Chong Yidong <cyd@stupidchicken.com>
7156
7157 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
7158
22b9578d
LMI
71592011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
7160
6e70ab07
LMI
7161 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
7162 are the mini-buffer and the echo area (bug#3320).
7163
22b9578d
LMI
7164 * term.c (init_tty): Remove support for supdup, c10 and perq
7165 terminals, which are no longer supported (bug#1482).
7166
8974cc9f
JB
71672011-07-10 Johan Bockgård <bojohan@gnu.org>
7168
7169 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
7170
a560d974
JD
71712011-07-10 Jan Djärv <jan.h.d@swipnet.se>
7172
7173 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
7174 for non-popups (Bug#3642).
7175
1dae0f0a
AS
71762011-07-10 Andreas Schwab <schwab@linux-m68k.org>
7177
268c2c36 7178 * alloc.c (reset_malloc_hooks): Protoize.
1dae0f0a 7179 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
268c2c36
AS
7180 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
7181 * cm.c (losecursor): Likewise.
1dae0f0a
AS
7182 * data.c (fmod): Likewise.
7183 * dispnew.c (swap_glyphs_in_rows): Likewise.
7184 * emacs.c (memory_warning_signal): Likewise.
7185 * floatfns.c (float_error): Likewise.
7186 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
7187 (otf_open, font_otf_capability, generate_otf_features)
7188 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
7189 Likewise.
7190 * image.c (pbm_read_file): Likewise.
7191 * indent.c (string_display_width): Likewise.
7192 * intervals.c (check_for_interval, search_for_interval)
7193 (inc_interval_count, count_intervals, root_interval)
7194 (adjust_intervals_for_insertion, make_new_interval): Likewise.
7195 * lread.c (defalias): Likewise.
268c2c36 7196 * ralloc.c (r_alloc_check): Likewise.
1dae0f0a
AS
7197 * regex.c (set_image_of_range_1, set_image_of_range)
7198 (regex_grow_registers): Likewise.
7199 * sysdep.c (strerror): Likewise.
7200 * termcap.c (valid_filename_p, tprint, main): Likewise.
7201 * tparam.c (main): Likewise.
7202 * unexhp9k800.c (run_time_remap, save_data_space)
7203 (update_file_ptrs, read_header, write_header, calculate_checksum)
7204 (copy_file, copy_rest, display_header): Likewise.
7205 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
7206 Likewise.
7207 * xdisp.c (check_it): Likewise.
7208 * xfaces.c (register_color, unregister_color, unregister_colors):
7209 Likewise.
7210 * xfns.c (print_fontset_result): Likewise.
7211 * xrdb.c (member, fatal, main): Likewise.
7212
99033785
PE
72132011-07-10 Paul Eggert <eggert@cs.ucla.edu>
7214
7215 Fix minor problems found by static checking (Bug#9031).
7216 * chartab.c (char_table_set_range, map_sub_char_table):
7217 Remove unused locals.
7218 (uniprop_table): Now static.
7219 * composite.c (_work_char): Remove unused static var.
7220
9cb2ac56
JB
72212011-07-09 Juanma Barranquero <lekktu@gmail.com>
7222
7223 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
7224
f25661f0
JD
72252011-07-09 Jan Djärv <jan.h.d@swipnet.se>
7226
7227 * gtkutil.c (qttip_cb): Remove code without function.
7228
8278c4fe
EZ
72292011-07-09 Eli Zaretskii <eliz@gnu.org>
7230
7231 * w32.c (pthread_sigmask): New stub.
7232
1692ae2d 72332011-07-08 Paul Eggert <eggert@cs.ucla.edu>
123403e4 7234
8a6ebd58 7235 Use pthread_sigmask, not sigprocmask (Bug#9010).
123403e4
PE
7236 sigprocmask is portable only for single-threaded applications, and
7237 Emacs can be multi-threaded when it uses GTK.
1301ac26
PE
7238 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
7239 (LIBES): Use it.
7240 * callproc.c (Fcall_process):
7241 * process.c (create_process):
7242 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
7243 Use pthread_sigmask, not sigprocmask.
123403e4 7244
1b854618
JD
72452011-07-08 Jan Djärv <jan.h.d@swipnet.se>
7246
7247 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
7248 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
7249 wrong (Bug#8591).
7250
3fe4b549
JD
72512011-07-08 Jan Djärv <jan.h.d@swipnet.se>
7252
0ce7e563
JD
7253 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
7254 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
7255 (xg_hide_tooltip): Fix comment.
7256
3fe4b549
JD
7257 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
7258 in registerServicesMenuSendTypes.
7259 (validRequestorForSendType): Don't check ns_return_types.
7260
7261 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
7262 ns_return_type.
7263
5df75e47
JR
72642011-07-08 Jason Rumney <jasonr@gnu.org>
7265
22610910
JR
7266 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
7267 SH_SHOW for hidden windows (Bug#5482).
7268
5df75e47
JR
7269 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
7270 frame struct members of non-existent frames (Bug#6284).
7271
699c10bd
JD
72722011-07-08 Jan Djärv <jan.h.d@swipnet.se>
7273
4393663b
JD
7274 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
7275 variable firstTime not needed on OSX >= 10.6.
7276 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
7277 >= 10.5. Use setKnobProportion, setDoubleValue.
7278
7279 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
7280 (MAC_OS_X_VERSION_10_5): Define if not defined.
7281 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
7282 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
7283 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
7284
7285 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
7286 cString and lossyCString on OSX >= 10.4
7287
58179cce 7288 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
4393663b
JD
7289 sizeToFit on OSX >= 10.2.
7290
7291 * nsimage.m (allocInitFromFile): Don't use deprecated method
7292 bestRepresentationForDevice on OSX >= 10.6.
7293
7294 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
7295 to avoid warning.
7296
7297 * emacs.c: Declare unexec_init_emacs_zone.
7298
a63e0781
JD
7299 * nsgui.h: Fix compiler warning about gnulib redefining verify.
7300
699c10bd
JD
7301 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
7302
7303 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
7304 on svcsMenu (Bug#8842).
7305
7306 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
7307 ns_return_types.
7308 (Fns_list_services): Just return Qnil on 10.6, code not working there.
7309
7310 * nsterm.m (QUTF8_STRING): Declare.
7311 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
7312 (validRequestorForSendType): Return type is (id).
7313 Change indexOfObjectIdenticalTo to indexOfObject.
7314 Check if we have local selection before returning self (Bug#8842).
7315 (writeSelectionToPasteboard): Put local selection into paste board
7316 if we have a local selection (Bug#8842).
7317 (syms_of_nsterm): DEFSYM QUTF8_STRING.
7318
7319 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
7320 (ns_get_local_selection): Declare.
7321
54e10184
LMI
73222011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
7323
9888ff71
LMI
7324 * keymap.c (describe_map_tree): Don't insert a double newline at
7325 the end of the buffer (bug#1169) and return whether we inserted
7326 something.
7327
54e10184
LMI
7328 * callint.c (Fcall_interactively): Change "reading args" to
7329 "providing args" to try to clarify what it does (bug#1010).
7330
15fa4783
KH
73312011-07-07 Kenichi Handa <handa@m17n.org>
7332
7333 * composite.c (composition_compute_stop_pos): Ignore a static
7334 composition starting before CHARPOS (Bug#8915).
7335
7336 * xdisp.c (handle_composition_prop): Likewise.
7337
a8815b00
EZ
73382011-07-07 Eli Zaretskii <eliz@gnu.org>
7339
7340 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
7341 (Bug#9015)
7342
ef7b981d 73432011-07-07 Kenichi Handa <handa@m17n.org>
c805dec0
KH
7344
7345 * character.h (unicode_category_t): New enum type.
7346
7347 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
7348 (Qchar_code_property_table): New variable.
7349 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
7350 (UNIPROP_COMPRESSED_FORM_P): New macros.
7351 (char_table_ascii): Uncompress the compressed values.
7352 (sub_char_table_ref): New arg is_uniprop. Callers changed.
7353 Uncompress the compressed values.
ac389d0c 7354 (sub_char_table_ref_and_range): Likewise.
c805dec0
KH
7355 (char_table_ref_and_range): Uncompress the compressed values.
7356 (sub_char_table_set): New arg is_uniprop. Callers changed.
7357 Uncompress the compressed values.
7358 (sub_char_table_set_range): Args changed. Callers changed.
7359 (char_table_set_range): Adjuted for the above change.
7360 (map_sub_char_table): Delete args default_val and parent. Add arg
7361 top. Give decoded values to a Lisp function.
640c8776 7362 (map_char_table): Adjust for the above change. Give decoded
c805dec0
KH
7363 values to a Lisp function. Gcpro more variables.
7364 (uniprop_table_uncompress)
7365 (uniprop_decode_value_run_length): New functions.
7366 (uniprop_decoder, uniprop_decoder_count): New variables.
7367 (uniprop_get_decoder, uniprop_encode_value_character)
7368 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
7369 New functions.
7370 (uniprop_encoder, uniprop_encoder_count): New variables.
7371 (uniprop_get_encoder, uniprop_table)
7372 (Funicode_property_table_internal, Fget_unicode_property_internal)
7373 (Fput_unicode_property_internal): New functions.
7374 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
7375 Sunicode_property_table_internal, Sget_unicode_property_internal,
5e617bc2 7376 and Sput_unicode_property_internal. Defvar_lisp
c805dec0
KH
7377 char-code-property-alist.
7378
640c8776 7379 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
c805dec0
KH
7380 Vunicode_category_table.
7381
640c8776 7382 * font.c (font_range): Adjust for the change of
c805dec0
KH
7383 Vunicode_category_table.
7384
76b397fb
DN
73852011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
7386
7387 * m/iris4d.h: Remove file, move contents ...
7388 * s/irix6-5.h: ... here.
7389
22b4128e
PE
73902011-07-06 Paul Eggert <eggert@cs.ucla.edu>
7391
7392 Remove unportable assumption about struct layout (Bug#8884).
8a5c77bb
PE
7393 * alloc.c (mark_buffer):
7394 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
7395 (clone_per_buffer_values): Don't assume that
22b4128e
PE
7396 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
7397 This isn't true in general, and it's particularly not true
7398 if Emacs is configured with --with-wide-int.
7399 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
7400 New macros, used in the buffer.c change.
7401
869795d6
JD
74022011-07-05 Jan Djärv <jan.h.d@swipnet.se>
7403
7404 * xsettings.c: Use both GConf and GSettings if both are available.
7405 (store_config_changed_event): Add comment.
7406 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
7407 (store_tool_bar_style_changed): New functions.
5e617bc2 7408 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
869795d6
JD
7409 (struct xsettings): Move font inside HAVE_XFT.
7410 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
640c8776 7411 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
869795d6 7412 Move inside HAVE_XFT.
640c8776 7413 (something_changed_gsettingsCB): Rename from something_changedCB.
869795d6
JD
7414 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
7415 also.
7416 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
5e617bc2 7417 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
640c8776 7418 (something_changed_gconfCB): Rename from something_changedCB.
869795d6
JD
7419 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
7420 (parse_settings): Move check for font inside HAVE_XFT.
7421 (read_settings, apply_xft_settings): Add comment.
7422 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
7423 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
7424 call store_font_name_changed.
7425 (xft_settings_event): Add comment.
7426 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
7427 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
7428 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
7429 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
7430 (xsettings_initialize): Call init_gsettings last.
640c8776
SM
7431 (xsettings_get_system_font, xsettings_get_system_normal_font):
7432 Add comment.
869795d6 7433
d8ed26bd
PE
74342011-07-05 Paul Eggert <eggert@cs.ucla.edu>
7435
7436 Random fixes. E.g., (random) never returned negative values.
7437 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
7438 subseconds part to the entropy, as that's a bit more random.
7439 Prefer signed to unsigned, since the signedness doesn't matter and
7440 in general we prefer signed. When given a limit, use a
7441 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
7442 latter isn't right if USE_2_TAGS_FOR_INTS.
7443 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
7444 not 0..VALMASK. Don't discard "excess" bits that random () returns.
7445
cabf1cac
SM
74462011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
7447
7448 * textprop.c (text_property_stickiness):
7449 Obey Vtext_property_default_nonsticky.
7450 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
7451 * w32fns.c (syms_of_w32fns):
7452 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
7453
6e9b2be9
PE
74542011-07-04 Paul Eggert <eggert@cs.ucla.edu>
7455
7456 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
7457 This is more efficient than Ffile_directory_p and avoids a minor race.
7458
90186c68
LMI
74592011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
7460
7c301272
LMI
7461 * buffer.c (Foverlay_put): Say what the return value is
7462 (bug#7835).
7463
c4f2d8d4
LMI
7464 * fileio.c (barf_or_query_if_file_exists): Check first if the file
7465 is a directory before asking whether to use the file name
7466 (bug#7564).
ad637907
LMI
7467 (barf_or_query_if_file_exists): Make the "File is a directory"
7468 error be more correct.
c4f2d8d4 7469
90186c68
LMI
7470 * fns.c (Frequire): Remove the mention of the .gz files, since
7471 that's installation-specific, but keep the mention of
7472 `get-load-suffixes'.
7473
da64016e
PE
74742011-07-04 Paul Eggert <eggert@cs.ucla.edu>
7475
7476 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
7477 Report string overflow if the output is too long.
7478
7d47b580
JB
74792011-07-04 Juanma Barranquero <lekktu@gmail.com>
7480
a555cb87
JB
7481 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
7482 (syms_of_gnutls): Remove duplicate DEFSYM for
7483 Qgnutls_bootprop_verify_hostname_error, an error for
7484 Qgnutls_bootprop_verify_error (which is no longer used).
7485
7d47b580
JB
7486 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
7487 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
7488 Also (re)move comments that are misplaced or no longer relevant.
7489
1e49bfab
LMI
74902011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
7491
7492 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
7493
1485f4c0
CY
74942011-07-03 Chong Yidong <cyd@stupidchicken.com>
7495
7496 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
7497 and background color parameters if they have been changed.
7498
a9ab721e
LMI
74992011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
7500
7501 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
7502
cf7cff57
PE
75032011-07-03 Paul Eggert <eggert@cs.ucla.edu>
7504
2e13213d
PE
7505 * xsettings.c (SYSTEM_FONT): Define only when used.
7506 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
7507
cf7cff57
PE
7508 * keymap.c (access_keymap_1): Now static.
7509
7a8e04f7
CY
75102011-07-02 Chong Yidong <cyd@stupidchicken.com>
7511
7512 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
7513 leave any prefix arg for the up event (Bug#1586).
7514
61352f62
LMI
75152011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
7516
69bb1ef7
LMI
7517 * lread.c (syms_of_lread): Mention single symbols defined by
7518 `defvar' or `defconst' (bug#7154).
7519
61352f62 7520 * fns.c (Frequire): Mention .el.gz files (bug#7314).
7b3747f9 7521 (Frequire): Mention get-load-suffixes.
61352f62 7522
28545e04
MR
75232011-07-02 Martin Rudalics <rudalics@gmx.at>
7524
7525 * window.h (window): Remove clone_number slot.
7526 * window.c (Fwindow_clone_number, Fset_window_clone_number):
7527 Remove.
7528 (make_parent_window, make_window, saved_window)
7529 (Fset_window_configuration, save_window_save): Don't deal with
7530 clone numbers.
7531 * buffer.c (Qclone_number): Remove declaration.
7532 (sort_overlays, overlay_strings): Don't deal with clone numbers.
7533
3349e122
SM
75342011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
7535
7536 Add multiple inheritance to keymaps.
7537 * keymap.c (Fmake_composed_keymap): New function.
7538 (Fset_keymap_parent): Simplify.
7539 (fix_submap_inheritance): Remove.
7540 (access_keymap_1): New function extracted from access_keymap to handle
7541 embedded parents and handle lists of maps.
7542 (access_keymap): Use it.
7543 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
7544 (Fcopy_keymap): Handle embedded parents.
7545 (Fcommand_remapping, define_as_prefix): Simplify.
7546 (Fkey_binding): Simplify.
7547 (syms_of_keymap): Move minibuffer-local-completion-map,
7548 minibuffer-local-filename-completion-map,
7549 minibuffer-local-must-match-map, and
7550 minibuffer-local-filename-must-match-map to Elisp.
7551 (syms_of_keymap): Defsubr make-composed-keymap.
7552 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
7553 (parse_menu_item): Trivial simplification.
7554
3279eb87
GM
75552011-07-01 Glenn Morris <rgm@gnu.org>
7556
7557 * Makefile.in (SETTINGS_LIBS): Fix typo.
7558
4550efdf
KI
75592011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny patch)
7560
7561 * coding.c (Fencode_coding_string): Record the last coding system
7562 used, as the function doc string says (bug#8738).
7563
0949d2b6
JD
75642011-07-01 Jan Djärv <jan.h.d@swipnet.se>
7565
7566 * xsettings.c (store_monospaced_changed): Take new font as arg and
7567 check for change against current_mono_font.
7568 (EMACS_TYPE_SETTINGS): Remove this and related defines.
7569 (emacs_settings_constructor, emacs_settings_get_property)
7570 (emacs_settings_set_property, emacs_settings_class_init)
7571 (emacs_settings_init, gsettings_obj): Remove.
7572 (something_changedCB): New function for HAVE_GSETTINGS.
7573 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
7574 with value as argument.
7575 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
7576 g_settings_new (Bug#8967). Do not create gsettings_obj.
9173deec 7577 Remove calls to g_settings_bind. Connect something_changedCB to
0949d2b6
JD
7578 "changed".
7579
7580 * xgselect.c: Add defined (HAVE_GSETTINGS).
7581 (xgselect_initialize): Ditto.
7582
7583 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
7584 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
7585 xg_select.
7586
bbc6b304
PE
75872011-07-01 Paul Eggert <eggert@cs.ucla.edu>
7588
7589 * eval.c (struct backtrace): Simplify and port the data structure.
7590 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
7591 signed bit field, as this assumption is not portable and it makes
7592 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
7593 "char debug_on_exit : 1" as this is not portable either; instead,
7594 use the portable "unsigned int debug_on_exit : 1". Remove unused
7595 member evalargs. Remove obsolete comments about cc bombing out.
7596
9851bfc5
JD
75972011-06-30 Jan Djärv <jan.h.d@swipnet.se>
7598
51bb811f 7599 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
9851bfc5
JD
7600 Let HAVE_GSETTINGS override HAVE_GCONF.
7601 (store_monospaced_changed): New function.
7602 (EMACS_SETTINGS): A new type derived from GObject to handle
7603 GSettings notifications.
7604 (emacs_settings_constructor, emacs_settings_get_property)
7605 (emacs_settings_set_property, emacs_settings_class_init):
7606 New functions.
7607 (gsettings_client, gsettings_obj): New variables.
7608 (GSETTINGS_SCHEMA): New define.
7609 (something_changedCB): Call store_monospaced_changed.
7610 (init_gsettings): New function.
7611 (xsettings_initialize): Call init_gsettings.
7612 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
7613 to NULL.
7614
640c8776 7615 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
9851bfc5
JD
7616 GCONF_CFLAGS/LIBS.
7617
5386012d
MR
76182011-06-29 Martin Rudalics <rudalics@gmx.at>
7619
7620 * window.c (resize_root_window, grow_mini_window)
7621 (shrink_mini_window): Rename Qresize_root_window to
7622 Qwindow_resize_root_window and Qresize_root_window_vertically to
7623 Qwindow_resize_root_window_vertically.
7624
f13e0b08
PE
76252011-06-28 Paul Eggert <eggert@cs.ucla.edu>
7626
7627 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
7628
94515237
JB
76292011-06-27 Juanma Barranquero <lekktu@gmail.com>
7630
7631 * makefile.w32-in: Redesign dependencies so they reflect more
7632 clearly which files are directly included by each source file,
7633 and not through other includes.
7634
e43b6e43
MR
76352011-06-27 Martin Rudalics <rudalics@gmx.at>
7636
7637 * buffer.c (Qclone_number): Declare static and DEFSYM it.
7638 (sort_overlays, overlay_strings): When an overlay's clone number
7639 matches the window's clone number process the overlay even if
7640 the overlay's window property doesn't match the current window.
7641
d68443dc
MR
7642 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
7643 (Fwindow_hchild): Rename to Fwindow_left_child.
7644 (Fwindow_next): Rename to Fwindow_next_sibling.
7645 (Fwindow_prev): Rename to Fwindow_prev_sibling.
d615d6d2
MR
7646 (resize_window_check): Rename to window_resize_check.
7647 (resize_window_apply): Rename to window_resize_apply.
7648 (Fresize_window_apply): Rename to Fwindow_resize_apply.
7649 (Fdelete_other_windows_internal, resize_frame_windows)
7650 (Fsplit_window_internal, Fdelete_window_internal)
7651 (grow_mini_window, shrink_mini_window)
7652 (Fresize_mini_window_internal): Fix callers accordingly.
d68443dc 7653
c7e73be5
JD
76542011-06-26 Jan Djärv <jan.h.d@swipnet.se>
7655
7656 * emacsgtkfixed.h: State that this is only used with Gtk+3.
7657 (emacs_fixed_set_min_size): Remove.
7658 (emacs_fixed_new): Take frame as argument.
7659
7660 * emacsgtkfixed.c: State that this is only used with Gtk+3.
7661 (_EmacsFixedPrivate): Remove minwidth/height.
7662 Add struct frame *f.
7663 (emacs_fixed_init): Initialize priv->f.
7664 (get_parent_class, emacs_fixed_set_min_size): Remove.
7665 (emacs_fixed_new): Set priv->f to argument.
7666 (emacs_fixed_get_preferred_width)
7667 (emacs_fixed_get_preferred_height): Use min_width/height from
7668 frames size_hint to set minimum and natural (Bug#8919).
7669 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
7670 and use min_width/height from frames size_hint to set
7671 min_width/height (Bug#8919).
7672
7673 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
9173deec
JB
7674 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
7675 Fix indentation.
c7e73be5 7676
cf99dcf8
EZ
76772011-06-26 Eli Zaretskii <eliz@gnu.org>
7678
7679 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
7680 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
7681 called at ZV.
7682
029529ac
CY
76832011-06-26 Chong Yidong <cyd@stupidchicken.com>
7684
7685 * process.c (wait_reading_process_output): Bypass select if
7686 waiting for a cell while ignoring keyboard input, and input is
7687 pending. Suggested by Jan Djärv (Bug#8869).
7688
7a7ef429
PE
76892011-06-25 Paul Eggert <eggert@cs.ucla.edu>
7690
7691 Use gnulib's dup2 module instead of rolling our own.
7692 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
7693
11fdef7d 76942011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
989b42d2
YM
7695
7696 * dispnew.c (scrolling_window): Before scrolling, turn off a
7697 mouse-highlight in the window being scrolled.
7698
cd3520a4
JB
76992011-06-24 Juanma Barranquero <lekktu@gmail.com>
7700
7701 Move DEFSYM to lisp.h and use everywhere.
7702
7703 * character.h (DEFSYM): Move declaration...
7704 * lisp.h (DEFSYM): ...here.
7705
7706 * gnutls.c:
7707 * minibuf.c:
7708 * w32menu.c:
7709 * w32proc.c:
7710 * w32select.c: Don't include character.h.
7711
7712 * alloc.c (syms_of_alloc):
7713 * buffer.c (syms_of_buffer):
7714 * bytecode.c (syms_of_bytecode):
7715 * callint.c (syms_of_callint):
7716 * casefiddle.c (syms_of_casefiddle):
7717 * casetab.c (init_casetab_once):
7718 * category.c (init_category_once, syms_of_category):
7719 * ccl.c (syms_of_ccl):
7720 * cmds.c (syms_of_cmds):
7721 * composite.c (syms_of_composite):
7722 * dbusbind.c (syms_of_dbusbind):
7723 * dired.c (syms_of_dired):
7724 * dispnew.c (syms_of_display):
7725 * doc.c (syms_of_doc):
7726 * editfns.c (syms_of_editfns):
7727 * emacs.c (syms_of_emacs):
7728 * eval.c (syms_of_eval):
7729 * fileio.c (syms_of_fileio):
7730 * fns.c (syms_of_fns):
7731 * frame.c (syms_of_frame):
7732 * fringe.c (syms_of_fringe):
7733 * insdel.c (syms_of_insdel):
7734 * keymap.c (syms_of_keymap):
7735 * lread.c (init_obarray, syms_of_lread):
7736 * macros.c (syms_of_macros):
7737 * msdos.c (syms_of_msdos):
7738 * print.c (syms_of_print):
7739 * process.c (syms_of_process):
7740 * search.c (syms_of_search):
7741 * sound.c (syms_of_sound):
7742 * syntax.c (init_syntax_once, syms_of_syntax):
7743 * terminal.c (syms_of_terminal):
7744 * textprop.c (syms_of_textprop):
7745 * undo.c (syms_of_undo):
7746 * w32.c (globals_of_w32):
7747 * window.c (syms_of_window):
7748 * xdisp.c (syms_of_xdisp):
7749 * xfaces.c (syms_of_xfaces):
7750 * xfns.c (syms_of_xfns):
7751 * xmenu.c (syms_of_xmenu):
7752 * xsettings.c (syms_of_xsettings):
7753 * xterm.c (syms_of_xterm): Use DEFSYM.
7754
4228cf16
TZ
77552011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
7756
cd3520a4 7757 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
4228cf16 7758
7fcccf1e
PE
77592011-06-23 Paul Eggert <eggert@cs.ucla.edu>
7760
7efb4e0e
PE
7761 Integer and buffer overflow fixes (Bug#8873).
7762
ff5844ad
PE
7763 * print.c (printchar, strout): Check for string overflow.
7764 (PRINTPREPARE, printchar, strout):
7765 Don't set size unless allocation succeeds.
7766
90532f02
PE
7767 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
7768 for sizes. Check for string overflow more accurately.
7769 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
7770
6d84508d
PE
7771 * macros.c: Integer and buffer overflow fixes.
7772 * keyboard.h (struct keyboard.kbd_macro_bufsize):
7773 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
7774 Use ptrdiff_t, not int, for sizes.
7775 Don't increment bufsize until after realloc succeeds.
7776 Check for size-calculation overflow.
7777 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
7778
437b2cb4
PE
7779 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
7780
8b9ac8b4
PE
7781 * lread.c: Integer overflow fixes.
7782 (read_integer): Radix is now EMACS_INT, not int,
7783 to improve quality of diagnostics for out-of-range radices.
7784 Calculate buffer size correctly for out-of-range radices.
7785 (read1): Check for integer overflow in radices, and in
7786 read-circle numbers.
82cb60d3
PE
7787 (read_escape): Avoid int overflow.
7788 (Fload, openp, read_buffer_size, read1)
7789 (substitute_object_recurse, read_vector, read_list, map_obarray):
7790 Use ptrdiff_t, not int, for sizes.
7791 (read1): Use EMACS_INT, not int, for sizes.
20270765 7792 Check for size overflow.
8b9ac8b4 7793
7fcccf1e
PE
7794 * image.c (cache_image): Check for size arithmetic overflow.
7795
bfbbd7e7
PE
7796 * lread.c: Integer overflow issues.
7797 (saved_doc_string_size, saved_doc_string_length)
7798 (prev_saved_doc_string_size, prev_saved_doc_string_length):
7799 Now ptrdiff_t, not int.
7800 (read1): Don't assume doc string length fits in int. Check for
7801 out-of-range doc string lengths.
7802 (read_list): Don't assume file position fits in int.
39019e54 7803 (read_escape): Check for hex character overflow.
bfbbd7e7 7804
4e323265
LL
78052011-06-22 Leo Liu <sdl.web@gmail.com>
7806
7807 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
7808 Move to minibuffer.el.
7809
85fece3e
PE
78102011-06-22 Paul Eggert <eggert@cs.ucla.edu>
7811
20b84ce9 7812 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
85fece3e
PE
7813 The following patches are for when GLYPH_DEBUG && !XASSERT.
7814 * dispextern.h (trace_redisplay_p, dump_glyph_string):
7815 * dispnew.c (flush_stdout):
7816 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
7817 Mark as externally visible.
7818 * dispnew.c (check_window_matrix_pointers): Now static.
7819 * dispnew.c (window_to_frame_vpos):
7820 * xfns.c (unwind_create_frame):
7821 * xterm.c (x_check_font): Remove unused local.
7822 * scroll.c (CHECK_BOUNDS):
7823 * xfaces.c (cache_fache): Rename local to avoid shadowing.
7824 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
7825 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
7826 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
7827 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
7828 Now static.
7829 (debug_method_add): Use va_list and vsprintf rather than relying
7830 on undefined behavior with wrong number of arguments.
7831 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
7832 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
7833 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
7834 since we're not interested in debugging glyphs with old libraries.
7835 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
7836 GCC 4.6.0's static checking.
7837
0766b489
PE
78382011-06-22 Paul Eggert <eggert@cs.ucla.edu>
7839
31fd4b32
PE
7840 Integer overflow and signedness fixes (Bug#8873).
7841 A few related buffer overrun fixes, too.
7842
b79e8648
PE
7843 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
7844
0766b489
PE
7845 * dispextern.h (struct face.stipple):
7846 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
7847 (x_bitmap_mask, x_allocate_bitmap_record)
7848 (x_create_bitmap_from_data, x_create_bitmap_from_file)
7849 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
7850 (x_create_bitmap_from_xpm_data):
7851 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
7852 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
7853 (.bitmaps_last):
7854 * xfaces.c (load_pixmap):
7855 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
7856 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
7857 (.bitmaps_last, struct x_output.icon_bitmap):
7858 Use ptrdiff_t, not int, for bitmap indexes.
7859 (x_allocate_bitmap_record): Check for size overflow.
7860 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
7861
b081724f
PE
7862 Use ptrdiff_t, not int, for overlay counts.
7863 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
7864 * editfns.c (overlays_around, get_pos_property):
7865 * textprop.c (get_char_property_and_overlay):
7866 * xdisp.c (next_overlay_change, note_mouse_highlight):
7867 * xfaces.c (face_at_buffer_position):
21514da7
PE
7868 * buffer.c (OVERLAY_COUNT_MAX): New macro.
7869 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
7870 (Fnext_overlay_change, Fprevious_overlay_change)
7871 (mouse_face_overlay_overlaps, Foverlays_in):
b081724f 7872 Use ptrdiff_t, not int, for sizes.
21514da7 7873 (overlays_at, overlays_in): Check for size-calculation overflow.
b081724f 7874
3de73e5e
PE
7875 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
7876
2606c57b
PE
7877 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
7878 (x_session_initialize): Do not assume string length fits in int.
7879
aaafe47a
PE
7880 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
7881 This is unlikely, but can occur if DPI is outlandish.
7882
2674ddc8 7883 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
3a5077c5
PE
7884 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
7885
28154962
PE
7886 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
7887 * xrdb.c (magic_file_p, search_magic_path):
7888 Omit last arg SUFFIX; it was always 0. All callers changed.
7889 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
7890
7de51af5
PE
7891 * xfont.c (xfont_match): Avoid need for strlen.
7892
25ed6cc3
PE
7893 * xfns.c: Don't assume strlen fits in int.
7894 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
7895
4eab31dd
PE
7896 * xdisp.c (message_log_check_duplicate): Return intmax_t,
7897 not unsigned long, as we prefer signed integers. All callers changed.
7898 Detect integer overflow in repeat count.
7899 (message_dolog): Don't assume print length fits in 39 bytes.
df1f27af 7900 (display_mode_element): Don't assume strlen fits in int.
4eab31dd 7901
171e2a58
PE
7902 * termcap.c: Don't assume sizes fit in int and never overflow.
7903 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
7904 (gobble_line): Check for size-calculation overflow.
7905
ad39faca 7906 * minibuf.c (Fread_buffer):
6e5bb2dc 7907 * lread.c (intern, intern_c_string):
74ca2eb3
PE
7908 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
7909 Don't assume string length fits in int.
7910
52c61c22 7911 * keyboard.c (parse_tool_bar_item):
9bda3520
PE
7912 * gtkutil.c (style_changed_cb): Avoid need for strlen.
7913
b5b8c9e5
PE
7914 * font.c: Don't assume string length fits in int.
7915 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
7916 Use ptrdiff_t, not int.
ccd6111c
PE
7917 (font_intern_prop): Don't assume string length fits in int.
7918 Don't assume integer property fits in fixnum.
7919 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
b5b8c9e5 7920
882f0d81 7921 * filelock.c: Fix some buffer overrun and integer overflow issues.
51cab52b 7922 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
882f0d81
PE
7923 Reformulate so as not to need the command string.
7924 Invoke gzip -cd rather than gunzip, as it's more portable.
7925 (lock_info_type, lock_file_1, lock_file):
7926 Don't assume pid_t and time_t fit in unsigned long.
7927 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
7928 (current_lock_owner): Prefer signed type for sizes.
7929 Use memcpy, not strncpy, where memcpy is what is really wanted.
7930 Don't assume (via atoi) that time_t and pid_t fit in int.
7931 Check for time_t and/or pid_t out of range, e.g., via a network share.
7932 Don't alloca where an auto var works fine.
7933
93f4cf88
PE
7934 * fileio.c: Fix some integer overflow issues.
7935 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
7936 Don't assume string length fits in int.
7937 (directory_file_name): Don't assume string length fits in long.
7938 (make_temp_name): Don't assume pid fits in int, or that its print
7939 length is less than 20.
7940
f3e92b69
PE
7941 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
7942
1bfdaf10
PE
7943 * coding.c (make_subsidiaries): Don't assume string length fits in int.
7944
35016e9a
PE
7945 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
7946
3d1e65a1
PE
7947 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
7948 We prefer signed integers, even for size calculations.
7949
0b963a93
PE
7950 * emacs.c: Don't assume string length fits in 'int'.
7951 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
7952 (main): Don't invoke strlen when not needed.
7953
573f4b54
PE
7954 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
7955 (XD_DEBUG_MESSAGE): Don't waste a byte.
7956
989f33ba
PE
7957 * callproc.c (getenv_internal_1, getenv_internal)
7958 (Fgetenv_internal):
965d34eb
PE
7959 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
7960
e4d29b33
PE
7961 * lread.c (invalid_syntax): Omit length argument.
7962 All uses changed. This doesn't fix a bug, but it simplifies the
7963 code away from its former Hollerith-constant appearance, and it's
7964 one less 'int' to worry about when looking at integer-overflow issues.
51cab52b 7965 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
e4d29b33 7966
eb49b136
PE
7967 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
7968 This didn't break anything, but it didn't help either.
7969 It's confusing to put a bogus integer in a place where the actual
7970 value does not matter.
9f62aeb1 7971 (LIST_END_P): Remove unused macro and its bogus comment.
cbeff735 7972 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
eb49b136 7973
15375a22
PE
7974 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
7975 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
7976 implementation.
b61cc01c
PE
7977 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
7978 We prefer signed types, and the value cannot exceed the EMACS_INT
7979 range anyway (because otherwise the length would not be representable).
9a8e8d9b
PE
7980 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
7981 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
7982 This avoids a GCC warning when WIDE_EMACS_INT.
15375a22 7983
53b2623d
PE
7984 * indent.c (sane_tab_width): New function.
7985 (current_column, scan_for_column, Findent_to, position_indentation)
7986 (compute_motion): Use it. This is just for clarity.
8fcaf9cc 7987 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
53b2623d 7988
51cab52b 7989 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
45aebb64 7990
f2ed8a70
PE
7991 * lisp.h (lint_assume): New macro.
7992 * composite.c (composition_gstring_put_cache):
7993 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
7994
abe80cc6
PE
7995 * editfns.c, insdel.c:
7996 Omit unnecessary forward decls, to simplify future changes.
a9e860e1 7997
b02c740e
PE
7998 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
7999
ebc96716
PE
8000 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
8001
b4e50fa0 8002 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
f03dc6ef 8003 Use much-faster test for byte-length change.
311d5d7c 8004 Don't assume string byte-length fits in 'int'.
a4cf38e4 8005 Check that character arg fits in 'int'.
85461888 8006 (mapcar1): Declare byte as byte, for clarity.
b4e50fa0 8007
c0c1ee9f
PE
8008 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
8009
a498d7f4
PE
8010 * fns.c (concat): Catch string overflow earlier.
8011 Do not rely on integer wraparound.
8012
51cab52b
PE
8013 * dispextern.h (struct it.overlay_strings_charpos)
8014 (struct it.selective): Now EMACS_INT, not int.
87830974
PE
8015 * xdisp.c (forward_to_next_line_start)
8016 (back_to_previous_visible_line_start)
8017 (reseat_at_next_visible_line_start, next_element_from_buffer):
8018 Don't arbitrarily truncate the value of 'selective' to int.
8019
76031fad
PE
8020 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
8021
5eb55db9
PE
8022 * composite.c: Don't truncate sizes to 'int'.
8023 (composition_gstring_p, composition_reseat_it)
8024 (composition_adjust_point): Use EMACS_INT, not int.
7d100a81
PE
8025 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
8026 not EMACS_UINT, for indexes.
5eb55db9 8027
0703a717
PE
8028 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
8029
d6202519
PE
8030 * buffer.c: Include <verify.h>.
8031 (struct sortvec.priority, struct sortstr.priority):
8961a454 8032 Now EMACS_INT, not int.
c20998a7 8033 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
67c36fce
PE
8034 (struct sortstr.size, record_overlay_string)
8035 (struct sortstrlist.size, struct sortlist.used):
8036 Don't truncate size to int.
8037 (record_overlay_string): Check for size-calculation overflow.
d6202519 8038 (init_buffer_once): Check at compile-time, not run-time.
fadf4e30 8039
d5a19415
JM
80402011-06-22 Jim Meyering <meyering@redhat.com>
8041
029529ac 8042 Don't leak an XBM-image-sized buffer
d5a19415
JM
8043 * image.c (xbm_load): Free the image buffer after using it.
8044
a9041e6c
PE
80452011-06-21 Paul Eggert <eggert@cs.ucla.edu>
8046
8047 Port to Sun C.
8048 * composite.c (find_automatic_composition): Omit needless 'return 0;'
8049 that Sun C diagnosed.
8050 * fns.c (secure_hash): Fix pointer signedness issue.
8051 * intervals.c (static_offset_intervals): New function.
8052 (offset_intervals): Use it.
8053
7f3f739f
LL
80542011-06-21 Leo Liu <sdl.web@gmail.com>
8055
8056 * deps.mk (fns.o):
8057 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
8058 sha512.h.
8059
8060 * fns.c (secure_hash): Rename from crypto_hash_function and change
8061 the first arg to accept symbols.
5b66d427 8062 (Fsecure_hash): New primitive.
7f3f739f
LL
8063 (syms_of_fns): New symbols.
8064
76147d94
DD
80652011-06-20 Deniz Dogan <deniz@dogan.se>
8066
8067 * process.c (Fset_process_buffer): Clarify return value in
8068 docstring.
8069
7d7d0045
CY
80702011-06-18 Chong Yidong <cyd@stupidchicken.com>
8071
8072 * dispnew.c (add_window_display_history): Use BVAR.
8073
8074 * xdisp.c (debug_method_add): Use BVAR.
8075 (check_window_end, dump_glyph_matrix, dump_glyph)
8076 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
8077
8078 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
8079 Likewise.
8080
8081 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
8082 check till after the cache is created in init_frame_faces.
8083
ff2bc410
SM
80842011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
8085
8086 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
8087
28177add
PE
80882011-06-16 Paul Eggert <eggert@cs.ucla.edu>
8089
dd3482fe
PE
8090 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
8091 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
8092 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
8093
393d71f3 8094 Improve buffer-overflow checking (Bug#8873).
1c8e352f
PE
8095 * fileio.c (Finsert_file_contents):
8096 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
8097 Remove the old (too-loose) buffer overflow checks.
8098 They weren't needed, since make_gap checks for buffer overflow.
8099 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
8100 The old code merely checked for Emacs fixnum overflow, and relied
8101 on undefined (wraparound) behavior. The new code avoids undefined
8102 behavior, and also checks for ptrdiff_t and/or size_t overflow.
8103
2e6813b0 8104 * editfns.c (Finsert_char): Don't dump core with very negative counts.
21d890a4
PE
8105 Tune. Don't use wider integers than needed. Don't use alloca.
8106 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
2e6813b0 8107
599a9e4f
PE
8108 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
8109
99561444
PE
8110 * insdel.c, lisp.h (buffer_overflow): New function.
8111 (insert_from_buffer_1, replace_range, replace_range_2):
8112 * insdel.c (make_gap_larger):
8113 * editfns.c (Finsert_char):
8114 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
8115
28177add
PE
8116 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
8117
e69dafad
PE
81182011-06-15 Paul Eggert <eggert@cs.ucla.edu>
8119
4baa020d 8120 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
ff672d2c 8121
b1c46f02
PE
8122 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
8123 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
8124
e69dafad
PE
8125 * fileio.c: Don't assume EMACS_INT fits in off_t.
8126 (emacs_lseek): New static function.
8127 (Finsert_file_contents, Fwrite_region): Use it.
8128 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
8129
566684ea
PE
8130 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
8131
e6966cd6
PE
8132 * fns.c: Don't overflow int when computing a list length.
8133 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
8134 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
8135 truncation on 64-bit hosts. Check for QUIT every
8136 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
8137 faster and is responsive enough.
8138 (Flength): Report an error instead of overflowing an integer.
8139 (Fsafe_length): Return a float if the value is not representable
8140 as a fixnum. This shouldn't happen except in contrived situations.
6346d301 8141 (Fnthcdr, Fsort): Don't assume list length fits in int.
de41a810 8142 (Fcopy_sequence): Don't assume vector length fits in int.
00c604f2 8143
dd0b0efb
PE
8144 * alloc.c: Check that resized vectors' lengths fit in fixnums.
8145 (header_size, word_size): New constants.
8146 (allocate_vectorlike): Don't check size overflow here.
8147 (allocate_vector): Check it here instead, since this is the only
8148 caller of allocate_vectorlike that could cause overflow.
8149 Check that the new vector's length is representable as a fixnum.
8150
86fe5cfe
PE
8151 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
8152 The previous code was bogus. For example, next_almost_prime (32)
8153 returned 39, which is undesirable as it is a multiple of 3; and
8154 next_almost_prime (24) returned 25, which is a multiple of 5 so
8155 why was the code bothering to check for multiples of 7?
8156
80e88859
PE
8157 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
8158
4a2f0ad6
PE
8159 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
8160
f66c7cf8
PE
8161 Variadic C functions now count arguments with ptrdiff_t.
8162 This partly undoes my 2011-03-30 change, which replaced int with size_t.
8163 Back then I didn't know that the Emacs coding style prefers signed int.
8164 Also, in the meantime I found a few more instances where arguments
4a2f0ad6
PE
8165 were being counted with int, which may truncate counts on 64-bit
8166 machines, or EMACS_INT, which may be unnecessarily wide.
f66c7cf8
PE
8167 * lisp.h (struct Lisp_Subr.function.aMANY)
8168 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
8169 Arg counts are now ptrdiff_t, not size_t.
8170 All variadic functions and their callers changed accordingly.
8171 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
8172 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
8173 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
8174 * callint.c (Fcall_interactively): Check arg count for overflow,
8175 to avoid potential buffer overrun. Use signed char, not 'int',
8176 for 'varies' array, so that we needn't bother to check its size
8177 calculation for overflow.
8178 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
8179 * eval.c (apply_lambda):
8180 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
8181 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
8182 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
8183
a1759b76
PE
8184 * callint.c (Fcall_interactively): Don't use index var as event count.
8185
d96be9fc
PE
8186 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
8187 * mem-limits.h (SIZE): Remove; no longer used.
8188
a690a978 8189 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
5efd304b 8190
578c21e6
PE
8191 Remove unnecessary casts.
8192 * xterm.c (x_term_init):
8193 * xfns.c (x_set_border_pixel):
8194 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
8195 These aren't needed now that we assume ANSI C.
8196
96f53c6c
PE
8197 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
8198 It's more likely to cause problems (due to unsigned overflow)
8199 than to cure them.
8200
83c77d31
PE
8201 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
8202
ee2079f1
PE
8203 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
8204
6da65536
PE
8205 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
8206
7147c4a4
PE
8207 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
8208
193e32d9
PE
8209 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
8210
e5533da6
PE
8211 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
8212
9910e595
PE
8213 GLYPH_CODE_FACE returns EMACS_INT, not int.
8214 * dispextern.h (merge_faces):
8215 * xfaces.c (merge_faces):
01103c44
PE
8216 * xdisp.c (get_next_display_element, next_element_from_display_vector):
8217 Don't assume EMACS_INT fits in int.
9910e595 8218
2638320e
PE
8219 * character.h (CHAR_VALID_P): Remove unused parameter.
8220 * fontset.c, lisp.h, xdisp.c: All uses changed.
8221
045eb8d9
PE
8222 * editfns.c (Ftranslate_region_internal): Omit redundant test.
8223
c1f134b5
PE
8224 * fns.c (concat): Minor tuning based on overflow analysis.
8225 This doesn't fix any bugs. Use int to hold character, instead
8226 of constantly refetching from Emacs object. Use XFASTINT, not
8227 XINT, for value known to be a character. Don't bother comparing
8228 a single byte to 0400, as it's always less.
8229
395fcb93 8230 * floatfns.c (Fexpt):
327eeec8
PE
8231 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
8232
abbd3d23
PE
8233 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
8234 for characters.
8235
684a03ef
PE
8236 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
8237
0fed43f3
PE
8238 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
8239 Without this fix, on a 64-bit host (aset S 0 4294967386) would
8240 incorrectly succeed when S was a string, because 4294967386 was
8241 truncated before it was used.
8242
8fd02eb7
PE
8243 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
8244 Otherwise, an out-of-range integer could cause undefined behavior
8245 on a 64-bit host.
8246
f8c86b69
PE
8247 * composite.c: Use int, not EMACS_INT, for characters.
8248 (fill_gstring_body, composition_compute_stop_pos): Use int, not
8249 EMACS_INT, for values that are known to be in character range.
8250 This doesn't fix any bugs but is the usual style inside Emacs and
8251 may generate better code on 32-bit machines.
8252
34206dd2
PE
8253 Make sure a 64-bit char is never passed to ENCODE_CHAR.
8254 This is for reasons similar to the recent CHAR_STRING fix.
8255 * charset.c (Fencode_char): Check that character arg is actually
8256 a character. Pass an int to ENCODE_CHAR.
8257 * charset.h (ENCODE_CHAR): Verify that the character argument is no
8258 wider than 'int', as a compile-time check to prevent future regressions
8259 in this area.
8260
c5958d4c 8261 * character.c (char_string): Remove unnecessary casts.
13bdea59
PE
8262
8263 Make sure a 64-bit char is never passed to CHAR_STRING.
8264 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
8265 by silently ignoring the top 32 bits, allowing some values
8266 that were far too large to be valid characters.
8267 * character.h: Include <verify.h>.
8268 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
8269 arguments are no wider than unsigned, as a compile-time check
8270 to prevent future regressions in this area.
8271 * data.c (Faset):
01103c44 8272 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
13bdea59
PE
8273 (Fsubst_char_in_region):
8274 * fns.c (concat):
8275 * xdisp.c (decode_mode_spec_coding):
8276 Adjust to CHAR_STRING's new requirement.
8277 * editfns.c (Finsert_char, Fsubst_char_in_region):
8278 * fns.c (concat): Check that character args are actually
8279 characters. Without this test, these functions did the wrong
8280 thing with wildly out-of-range values on 64-bit hosts.
8281
d37ca623
PE
8282 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
8283 These casts should not be needed on 32-bit hosts, either.
8284 * keyboard.c (read_char):
8285 * lread.c (Fload): Remove casts to unsigned.
8286
ea204efb
PE
8287 * lisp.h (UNSIGNED_CMP): New macro.
8288 This fixes comparison bugs on 64-bit hosts.
8289 (ASCII_CHAR_P): Use it.
8290 * casefiddle.c (casify_object):
01103c44 8291 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
ea204efb
PE
8292 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
8293 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
8294 * dispextern.h (FACE_FROM_ID):
8295 * keyboard.c (read_char): Use UNSIGNED_CMP.
8296
41cb286c
PE
8297 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
8298 not to EMACS_INT, to avoid GCC warning.
8299
4a1b9832
PE
8300 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
8301
55daad71
PE
8302 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
8303 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
8304 isn't needed on 32-bit machines.
8f95c75c 8305
01103c44
PE
8306 * buffer.c (Fgenerate_new_buffer_name):
8307 Use EMACS_INT for count, not int.
0ceccced 8308 (advance_to_char_boundary): Return EMACS_INT, not int.
e762cafe
PE
8309
8310 * data.c (Qcompiled_function): Now static.
8311
c6f072e7
PE
8312 * window.c (window_body_lines): Now static.
8313
20ce5912
PE
8314 * image.c (gif_load): Rename local to avoid shadowing.
8315
9c4c5f81
PE
8316 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
8317 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
8318 * alloc.c (make_save_value): Integer argument is now of type
8319 ptrdiff_t, not int.
8320 (mark_object): Use ptrdiff_t, not int.
8321 * lisp.h (pD): New macro.
8322 * print.c (print_object): Use it.
8323
c0c5c8ae
PE
8324 * alloc.c: Use EMACS_INT, not int, to count objects.
8325 (total_conses, total_markers, total_symbols, total_vector_size)
8326 (total_free_conses, total_free_markers, total_free_symbols)
01103c44
PE
8327 (total_free_floats, total_floats, total_free_intervals)
8328 (total_intervals, total_strings, total_free_strings):
c0c5c8ae
PE
8329 Now EMACS_INT, not int. All uses changed.
8330 (Fgarbage_collect): Compute overall total using a double, so that
8331 integer overflow is less likely to be a problem. Check for overflow
8332 when converting back to an integer.
5a25e253
PE
8333 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
8334 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
8335 These were 'int' variables that could overflow on 64-bit hosts;
8336 they were never used, so remove them instead of repairing them.
211a0b2a 8337 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
6349ae4d
PE
8338 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
8339 Previously, this ceilinged at INT_MAX, but that doesn't work on
8340 64-bit machines.
e46bb31a 8341 (allocate_pseudovector): Don't use EMACS_INT when int would do.
c0c5c8ae 8342
c78baabf 8343 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
86f61a15 8344 (allocate_vectorlike): Check for ptrdiff_t overflow.
b6439961
PE
8345 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
8346 when a (possibly-narrower) signed value would do just as well.
8347 We prefer using signed arithmetic, to avoid comparison confusion.
c78baabf 8348
c9d624c6
PE
8349 * alloc.c: Catch some string size overflows that we were missing.
8350 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
8351 for convenience in STRING_BYTES_MAX.
8352 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
8353 The definition here is exact; the one in lisp.h was approximate.
8354 (allocate_string_data): Check for string overflow. This catches
8355 some instances we weren't catching before. Also, it catches
8356 size_t overflow on (unusual) hosts where SIZE_MAX <= min
8357 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
8358 and ptrdiff_t and EMACS_INT are both 64 bits.
c78baabf 8359
c9d624c6
PE
8360 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
8361 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
640c8776 8362 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
c9d624c6 8363
353032ce
PE
8364 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
8365
2bccce07
PE
8366 * alloc.c (Fmake_string): Check for out-of-range init.
8367
0ac30604
SM
83682011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
8369
8370 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
8371
c195f2de
JD
83722011-06-14 Jan Djärv <jan.h.d@swipnet.se>
8373
8374 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
8375 xg_get_default_scrollbar_width.
8376
8377 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
8378 (int_gtk_range_get_value): Move to the scroll bar part of the file.
8379 (style_changed_cb): Call update_theme_scrollbar_width and call
8380 x_set_scroll_bar_default_width and xg_frame_set_char_size for
8381 all frames (Bug#8505).
8382 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
8383 Call gtk_window_set_resizable if HAVE_GTK3.
8384 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
8385 and height if HAVE_GTK3 (Bug#8505).
8386 (scroll_bar_width_for_theme): New variable.
8387 (update_theme_scrollbar_width): New function.
8388 (xg_get_default_scrollbar_width): Move code to
8389 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
8390 (xg_initialize): Call update_theme_scrollbar_width.
8391
8392 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
8393
8394 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
8395
e10ac9f1
MR
83962011-06-12 Martin Rudalics <rudalics@gmx.at>
8397
8398 * frame.c (make_frame): Call other_buffer_safely instead of
8399 other_buffer.
8400
8401 * window.c (temp_output_buffer_show): Call display_buffer with
8402 second argument Vtemp_buffer_show_specifiers and reset latter
8403 immediately after the call.
8404 (Vtemp_buffer_show_specifiers): New variable.
8405 (auto_window_vscroll_p, next_screen_context_lines)
8406 (Vscroll_preserve_screen_position): Remove leading asterisks from
8407 doc-strings.
8408
2d3c217e 84092011-06-12 Paul Eggert <eggert@cs.ucla.edu>
4475bec4 8410
7b7f97e8 8411 Fix minor problems found by GCC 4.6.0 static checking.
4475bec4
PE
8412 * buffer.c (Qclone_number): Remove for now, as it's unused.
8413 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
8414 (record_buffer): Remove unused local.
8415 * frame.c (other_visible_frames, frame_buffer_list): Now static.
8416 (set_frame_buffer_list): Remove; unused.
8417 * frame.h (other_visible_frames): Remove decl.
8418 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
8419 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
8420 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
8421 if HAVE_GPM.
8422 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
8423 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
8424 Define only if HAVE_GPM.
8425 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
8426 (update_hints_inhibit): Remove; never set. All uses removed.
8427 * widgetprv.h (emacsFrameClassRec): Remove decl.
8428 * window.c (delete_deletable_window): Now returns void, since it
8429 wasn't returning anything.
8430 (compare_window_configurations): Remove unused locals.
8431 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
8432 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
4475bec4
PE
8433 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
8434 the same widths as pointers. This follows up on the 2011-05-06 patch.
8435 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
8436 * xterm.h: Likewise.
8437 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
8438
1384b89e
JB
84392011-06-12 Juanma Barranquero <lekktu@gmail.com>
8440
8441 * makefile.w32-in: Update dependencies.
8442 (LISP_H): Add lib/intprops.h.
8443
1100a63c
CY
84442011-06-11 Chong Yidong <cyd@stupidchicken.com>
8445
8446 * image.c (gif_load): Add animation frame delay to the metadata.
8447 (syms_of_image): Use DEFSYM. New symbol `delay'.
8448
6198ccd0
MR
84492011-06-11 Martin Rudalics <rudalics@gmx.at>
8450
8451 * window.c (delete_deletable_window): Re-add.
8452 (Fset_window_configuration): Rewrite to handle dead buffers and
8453 consequently deletable windows.
8454 (window_tree, Fwindow_tree): Remove. Supply functionality in
8455 window.el.
8456 (compare_window_configurations): Simplify code.
8457
b6e3633c
AS
84582011-06-11 Andreas Schwab <schwab@linux-m68k.org>
8459
1ab0dee5
AS
8460 * image.c (imagemagick_load_image): Fix type mismatch.
8461 (Fimagemagick_types): Likewise.
8462
b6e3633c
AS
8463 * window.h (replace_buffer_in_windows): Declare.
8464
9397e56f
MR
84652011-06-11 Martin Rudalics <rudalics@gmx.at>
8466
8467 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
8468 Qclone_number. Remove external declaration of Qdelete_window.
8469 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
8470 code.
640c8776
SM
8471 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
8472 Run Qbuffer_list_update_hook if allowed.
9397e56f
MR
8473 (Fother_buffer): Rewrite doc-string. Major rewrite for new
8474 buffer list implementation.
8475 (other_buffer_safely): New function.
8476 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
8477 calls to replace_buffer_in_windows and
8478 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
8479 if allowed.
8480 (record_buffer): Inhibit quitting and rewrite using quittable
8481 functions. Run Qbuffer_list_update_hook if allowed.
8482 (Frecord_buffer, Funrecord_buffer): New functions.
640c8776
SM
8483 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
8484 Move switch-to-buffer to window.el.
9397e56f
MR
8485 (bury-buffer): Move to window.el.
8486 (Vbuffer_list_update_hook): New variable.
8487
8488 * lisp.h (other_buffer_safely): Add prototype in buffer.c
8489 section.
8490
8491 * window.h (resize_frame_windows): Move up in code.
8492 (Fwindow_frame): Remove EXFUN.
8493 (replace_buffer_in_all_windows): Remove prototype.
8494 (replace_buffer_in_windows_safely): Add prototype.
8495
8496 * window.c: Declare Qdelete_window static again. Move down
8497 declaration of select_count.
8498 (Fnext_window, Fprevious_window): Rewrite doc-strings.
8499 (Fother_window): Move to window.el.
8500 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
8501 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
8502 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
8503 window.el.
8504 (replace_buffer_in_windows): Implement by calling
8505 Qreplace_buffer_in_windows.
8506 (replace_buffer_in_all_windows): Remove with some functionality
8507 moved into replace_buffer_in_windows_safely.
8508 (replace_buffer_in_windows_safely): New function.
8509 (select_window_norecord, select_frame_norecord): Move in front
8510 of run_window_configuration_change_hook. Remove now obsolete
8511 declarations.
640c8776
SM
8512 (Fset_window_buffer): Rewrite doc-string.
8513 Call Qrecord_window_buffer.
9397e56f
MR
8514 (keys_of_window): Move binding for other-window to window.el.
8515
b50691aa
CY
85162011-06-11 Chong Yidong <cyd@stupidchicken.com>
8517
8518 * dispextern.h (struct image): Replace data member, whose int_val
8519 and ptr_val fields were not used by anything, with a single
8520 lisp_val object.
8521
8522 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
8523 (gif_clear_image, gif_load, imagemagick_load_image)
8524 (gs_clear_image, gs_load): Callers changed.
8525
3f754b86
PE
85262011-06-10 Paul Eggert <eggert@cs.ucla.edu>
8527
cca69397
PE
8528 * buffer.h: Include <time.h>, for time_t.
8529 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
8530
109e28d0
PE
8531 Fix minor problems found by static checking.
8532
60737f02
PE
8533 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
8534
4b66faf3
PE
8535 Make identifiers static if they are not used in other modules.
8536 * data.c (Qcompiled_function, Qframe, Qvector):
8537 * image.c (QimageMagick, Qsvg):
8538 * minibuf.c (Qmetadata):
8539 * window.c (resize_window_check, resize_root_window): Now static.
8540 * window.h (resize_window_check, resize_root_window): Remove decls.
8541
109e28d0
PE
8542 * window.c (window_deletion_count, delete_deletable_window):
8543 Remove; unused.
46a4ce9e
PE
8544 (window_body_lines): Now static.
8545 (Fdelete_other_windows_internal): Mark vars as initialized.
8546 Make sure 'resize_failed' is initialized.
8547 (run_window_configuration_change_hook): Rename local to avoid shadowing.
8548 (resize_window_apply): Remove unused local.
8549 * window.h (delete_deletable_window): Remove decl.
8550
109e28d0 8551 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
33290528
PE
8552 (imagemagick_load_image): Fix pointer signedness problem by changing
8553 last arg from unsigned char * to char *. All uses changed.
8554 Also, fix a local for similar reasons.
8555 Remove unused locals. Remove locals to avoid shadowing.
8556 (fn_rsvg_handle_free): Remove; unused.
8557 (svg_load, svg_load_image): Fix pointer signedness problem.
f7e13da3 8558 (imagemagick_load_image): Don't use garbage pointer image_wand.
33290528 8559
3f754b86
PE
8560 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
8561
2547adb1
CY
85622011-06-10 Chong Yidong <cyd@stupidchicken.com>
8563
8564 * image.c (gif_load): Fix omitted cast error introduced by
8565 2011-06-06 change.
8566
2c8e37d4
MR
85672011-06-10 Martin Rudalics <rudalics@gmx.at>
8568
8569 * window.h (resize_proportionally, orig_total_lines)
8570 (orig_top_line): Remove from window structure.
8571 (set_window_height, set_window_width, change_window_heights)
8572 (Fdelete_window): Remove prototypes.
8573 (resize_frame_windows): Remove duplicate declaration.
8574
440a42e3
EZ
85752011-06-10 Eli Zaretskii <eliz@gnu.org>
8576
8577 * window.h (resize_frame_windows, resize_window_check)
8578 (delete_deletable_window, resize_root_window)
8579 (resize_frame_windows): Declare prototypes.
8580
8581 * window.c (resize_window_apply): Make definition be "static" to
8582 match the prototype.
8583
562dd5e9
MR
85842011-06-10 Martin Rudalics <rudalics@gmx.at>
8585
8586 * window.c: Remove declarations of Qwindow_size_fixed,
8587 window_min_size_1, window_min_size_2, window_min_size,
8588 size_window, window_fixed_size_p, enlarge_window, delete_window.
8589 Remove static from declaration of Qdelete_window, it's
8590 temporarily needed by Fbury_buffer.
8591 (replace_window): Don't assign orig_top_line and
8592 orig_total_lines.
8593 (Fdelete_window, delete_window): Remove. Window deletion is
8594 handled by window.el.
640c8776
SM
8595 (window_loop): Remove DELETE_OTHER_WINDOWS case.
8596 Replace Fdelete_window calls with calls to Qdelete_window.
562dd5e9
MR
8597 (Fdelete_other_windows): Remove. Deleting other windows is
8598 handled by window.el.
8599 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
8600 handled in window.el.
8601 (window_min_size_2, window_min_size_1, window_min_size): Remove.
8602 Window minimum sizes are handled in window.el.
8603 (shrink_windows, size_window, set_window_height)
8604 (set_window_width, change_window_heights, window_height)
8605 (window_width, CURBEG, CURSIZE, enlarge_window)
8606 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
8607 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
8608 handled in window.el.
8609 (make_dummy_parent): Rename to make_parent_window and give it a
8610 second argument horflag.
8611 (make_window): Don't set resize_proportionally any more.
8612 (Fsplit_window): Remove. Windows are split in window.el.
8613 (save_restore_action, save_restore_orig_size)
8614 (shrink_window_lowest_first, save_restore_orig_size): Remove.
8615 Resize mini windows in window.el.
8616 (grow_mini_window, shrink_mini_window): Implement by calling
8617 Qresize_root_window_vertically, resize_window_check and
8618 resize_window_apply.
640c8776
SM
8619 (saved_window, Fset_window_configuration, save_window_save):
8620 Do not handle orig_top_line, orig_total_lines, and
562dd5e9
MR
8621 resize_proportionally.
8622 (window_min_height, window_min_width): Move to window.el.
8623 (keys_of_window): Move bindings for delete-other-windows,
8624 split-window, delete-window and enlarge-window to window.el.
8625
8626 * buffer.c: Temporarily extern Qdelete_window.
8627 (Fbury_buffer): Temporarily call Qdelete_window instead of
8628 Fdelete_window (Fbury_buffer will move to window.el soon).
8629
8630 * frame.c (set_menu_bar_lines_1): Remove code handling
8631 orig_top_line and orig_total_lines.
8632
8633 * dispnew.c (adjust_frame_glyphs_initially): Don't use
8634 set_window_height but set heights directly.
8635 (change_frame_size_1): Use resize_frame_windows.
8636
8637 * xdisp.c (init_xdisp): Don't use set_window_height but set
8638 heights directly.
8639
640c8776
SM
8640 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
8641 Use resize_frame_windows instead of change_window_heights and run
562dd5e9
MR
8642 run_window_configuration_change_hook.
8643
8644 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
8645 instead of change_window_heights and run
8646 run_window_configuration_change_hook.
8647
1a13852e
MR
86482011-06-09 Martin Rudalics <rudalics@gmx.at>
8649
8650 * window.c (replace_window): Rename second argument REPLACEMENT to
8651 NEW. New third argument SETFLAG. Rewrite.
8652 (delete_window, make_dummy_parent): Call replace_window with
8653 third argument 1.
8654 (window_list_1): Move down in code.
8655 (run_window_configuration_change_hook): Move set_buffer part
8656 before select_frame_norecord part in order to unwind correctly.
8657 Rename count1 to count.
8658 (recombine_windows, delete_deletable_window, resize_root_window)
8659 (Fdelete_other_windows_internal)
8660 (Frun_window_configuration_change_hook, make_parent_window)
8661 (resize_window_check, resize_window_apply, Fresize_window_apply)
8662 (resize_frame_windows, Fsplit_window_internal)
640c8776
SM
8663 (Fdelete_window_internal, Fresize_mini_window_internal):
8664 New functions.
1a13852e
MR
8665 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
8666
f3d1777e
MR
86672011-06-08 Martin Rudalics <rudalics@gmx.at>
8668
496e208e
MR
8669 * window.h (window): Add some new members to window structure -
8670 normal_lines, normal_cols, new_total, new_normal, clone_number,
8671 splits, nest, prev_buffers, next_buffers.
8672 (WINDOW_TOTAL_SIZE): Move here from window.c.
b9e809c2 8673 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
496e208e 8674
f3d1777e
MR
8675 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
8676 Remove.
496e208e
MR
8677 (make_dummy_parent): Set new members of windows structure.
8678 (make_window): Move down in code. Handle new members of window
8679 structure.
8680 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
8681 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
8682 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
8683 (Fset_window_prev_buffers, Fwindow_next_buffers)
640c8776
SM
8684 (Fset_window_next_buffers, Fset_window_clone_number):
8685 New functions.
496e208e
MR
8686 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
8687 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
8688 Doc-string fixes.
8689 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
8690 Argument WINDOW can be now internal window too.
8691 (Fwindow_use_time): Move up in code.
8692 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
8693 Rewrite doc-string.
8694 (Fset_window_configuration, saved_window)
8695 (Fcurrent_window_configuration, save_window_save): Handle new
8696 members of window structure.
b9e809c2
MR
8697 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
8698 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
8699 (syms_of_window): New Lisp objects Qrecord_window_buffer,
8700 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
8701 Qget_mru_window, Qresize_root_window,
8702 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
8703 Qauto_buffer_name; staticpro them.
f3d1777e 8704
abde8f8c
MR
87052011-06-07 Martin Rudalics <rudalics@gmx.at>
8706
8707 * window.c (Fwindow_total_size, Fwindow_left_column)
8708 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
8709 (Fwindow_list_1): New functions.
8710 (window_box_text_cols): Replace with window_body_cols.
640c8776
SM
8711 (Fwindow_width, Fscroll_left, Fscroll_right):
8712 Use window_body_cols instead of window_box_text_cols.
8713 (delete_window, Fset_window_configuration):
8714 Call delete_all_subwindows with window as argument.
fa8a67e6
MR
8715 (delete_all_subwindows): Take a window as argument and not a
8716 structure. Rewrite.
190b47e6
MR
8717 (window_loop): Remove handling of GET_LRU_WINDOW and
8718 GET_LARGEST_WINDOW.
8719 (Fget_lru_window, Fget_largest_window): Move to window.el.
abde8f8c
MR
8720
8721 * window.h: Extern window_body_cols instead of
fa8a67e6
MR
8722 window_box_text_cols. delete_all_subwindows now takes a
8723 Lisp_Object as argument.
abde8f8c 8724
640c8776
SM
8725 * indent.c (compute_motion, Fcompute_motion):
8726 Use window_body_cols instead of window_box_text_cols.
abde8f8c 8727
fa8a67e6
MR
8728 * frame.c (delete_frame): Call delete_all_subwindows with root
8729 window as argument.
8730
a54e3482
DC
87312011-06-07 Daniel Colascione <dan.colascione@gmail.com>
8732
8733 * fns.c (Fputhash): Document return value.
8734
60002bf5
CY
87352011-06-06 Chong Yidong <cyd@stupidchicken.com>
8736
8737 * image.c (gif_load): Implement gif89a spec "no disposal" method.
8738
0c671da6 87392011-06-06 Paul Eggert <eggert@cs.ucla.edu>
ccd9a01a 8740
b862a52a 8741 Cons<->int and similar integer overflow fixes (Bug#8794).
77984278 8742
be44ca6c
PE
8743 Check for overflow when converting integer to cons and back.
8744 * charset.c (Fdefine_charset_internal, Fdecode_char):
8745 Use cons_to_unsigned to catch overflow.
8746 (Fencode_char): Use INTEGER_TO_CONS.
8747 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
8748 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
8749 * data.c (long_to_cons, cons_to_long): Remove.
8750 (cons_to_unsigned, cons_to_signed): New functions.
8751 These signal an error for invalid or out-of-range values.
8752 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
8753 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
8754 * font.c (Ffont_variation_glyphs):
8755 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
8756 * lisp.h: Include <intprops.h>.
8757 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
8758 (cons_to_signed, cons_to_unsigned): New decls.
8759 (long_to_cons, cons_to_long): Remove decls.
8760 * undo.c (record_first_change): Use INTEGER_TO_CONS.
8761 (Fprimitive_undo): Use CONS_TO_INTEGER.
8762 * xfns.c (Fx_window_property): Likewise.
8763 * xselect.c: Include <limits.h>.
8764 (x_own_selection, selection_data_to_lisp_data):
8765 Use INTEGER_TO_CONS.
8766 (x_handle_selection_request, x_handle_selection_clear)
8767 (x_get_foreign_selection, Fx_disown_selection_internal)
8768 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
8769 (lisp_data_to_selection_data): Use cons_to_unsigned.
8770 (x_fill_property_data): Use cons_to_signed.
8771 Report values out of range.
8772
d1f3d2af
PE
8773 Check for buffer and string overflow more precisely.
8774 * buffer.h (BUF_BYTES_MAX): New macro.
8775 * lisp.h (STRING_BYTES_MAX): New macro.
8776 * alloc.c (Fmake_string):
8777 * character.c (string_escape_byte8):
8778 * coding.c (coding_alloc_by_realloc):
8779 * doprnt.c (doprnt):
8780 * editfns.c (Fformat):
8781 * eval.c (verror):
8782 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
8783 since they may not be the same number.
8784 * editfns.c (Finsert_char):
8785 * fileio.c (Finsert_file_contents):
8786 Likewise for BUF_BYTES_MAX.
8787
dd52fcea
PE
8788 * image.c: Use ptrdiff_t, not int, for sizes.
8789 (slurp_file): Switch from int to ptrdiff_t.
8790 All uses changed.
8791 (slurp_file): Check that file size fits in both size_t (for
8792 malloc) and ptrdiff_t (for sanity and safety).
8793
7f9bbdbb
PE
8794 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
8795 if b->modtime has its maximal value.
8796
dfe18f82
PE
8797 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
8798
84acfcf0
PE
8799 Don't assume time_t can fit into int.
8800 * buffer.h (struct buffer.modtime): Now time_t, not int.
8801 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
8802 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
8803
ccd9a01a
PE
8804 Minor fixes for signed vs unsigned integers.
8805 * character.h (MAYBE_UNIFY_CHAR):
8806 * charset.c (maybe_unify_char):
8807 * keyboard.c (read_char, reorder_modifiers):
8808 XINT -> XFASTINT, since the integer must be nonnegative.
8809 * ftfont.c (ftfont_spec_pattern):
8810 * keymap.c (access_keymap, silly_event_symbol_error):
8811 XUINT -> XFASTINT, since the integer must be nonnegative.
8812 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
8813 since it makes no difference and we prefer signed.
8814 * keyboard.c (record_char): Use XUINT when all the neighbors do.
8815 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
8816 nonnegative.
8817
d6d100dd
SM
88182011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
8819
8820 * window.h (Fwindow_frame): Declare.
8821
2b6148e4
PE
88222011-06-06 Paul Eggert <eggert@cs.ucla.edu>
8823
8824 * alloc.c: Simplify handling of large-request failures (Bug#8800).
8825 (SPARE_MEMORY): Always define.
8826 (LARGE_REQUEST): Remove.
8827 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
8828
f230ecc9
MR
88292011-06-06 Martin Rudalics <rudalics@gmx.at>
8830
727e958e
MR
8831 * lisp.h: Move EXFUNS for Fframe_root_window,
8832 Fframe_first_window and Fset_frame_selected_window to window.h.
8833
8834 * window.h: Move EXFUNS for Fframe_root_window,
8835 Fframe_first_window and Fset_frame_selected_window here from
8836 lisp.h.
8837
8838 * frame.c (Fwindow_frame, Fframe_first_window)
8839 (Fframe_root_window, Fframe_selected_window)
8840 (Fset_frame_selected_window): Move to window.c.
8841 (Factive_minibuffer_window): Move to minibuf.c.
8842 (Fother_visible_frames_p): New function.
8843
8844 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
8845
f230ecc9
MR
8846 * window.c (decode_window, decode_any_window): Move up in code.
8847 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
8848 (inhibit_frame_unsplittable): Remove unused variable.
bf60a96b
MR
8849 (Fwindow_buffer): Move up and rewrite doc-string.
8850 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
8851 (Fwindow_prev): New functions.
727e958e
MR
8852 (Fwindow_frame): Move here from frame.c. Accept any window as
8853 argument.
8854 (Fframe_root_window, Fframe_first_window)
8855 (Fframe_selected_window): Move here from frame.c. Accept frame
8856 or arbitrary window as argument. Update doc-strings.
8857 (Fminibuffer_window): Move up in code.
8858 (Fwindow_minibuffer_p): Move up in code and simplify.
d6d100dd
SM
8859 (Fset_frame_selected_window): Move here from frame.c.
8860 Marginal rewrite.
727e958e
MR
8861 (Fselected_window, select_window, Fselect_window): Move up in
8862 code. Minor doc-string fixes.
f230ecc9 8863
4d09bcf6
PE
88642011-06-06 Paul Eggert <eggert@cs.ucla.edu>
8865
8866 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
8867 Do not assume that spare memory exists; that assumption is valid
8868 only if SYSTEM_MALLOC.
8869 (LARGE_REQUEST): New macro, so that the issue of large requests
8870 is separated from the issue of spare memory.
8871
810928a2
AS
88722011-06-05 Andreas Schwab <schwab@linux-m68k.org>
8873
172418ad
AS
8874 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
8875 format. (Bug#8806)
8876
43f862f7
AS
8877 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
8878
810928a2
AS
8879 * xfns.c (x_set_scroll_bar_default_width): Move declarations
8880 before statements.
8881
a059fe24
JD
88822011-06-05 Jan Djärv <jan.h.d@swipnet.se>
8883
8884 * gtkutil.c (xg_get_default_scrollbar_width): New function.
8885
8886 * gtkutil.h: Declare xg_get_default_scrollbar_width.
8887
8888 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
8889 min width by calling x_set_scroll_bar_default_width (Bug#8505).
8890
989bf368
JB
88912011-06-05 Juanma Barranquero <lekktu@gmail.com>
8892
8893 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
8894
4b80f674
CY
88952011-06-04 Chong Yidong <cyd@stupidchicken.com>
8896
8897 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
8898 (x_clipboard_manager_save): Add return value.
d6d100dd
SM
8899 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
8900 New error handlers.
4b80f674
CY
8901 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
8902 Obey Vx_select_enable_clipboard_manager. Catch errors in
8903 x_clipboard_manager_save (Bug#8779).
8904 (Vx_select_enable_clipboard_manager): New variable.
de65b42c 8905 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
4b80f674 8906
99a33b77 89072011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
8b3115e7
DN
8908
8909 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
8910
99a33b77 89112011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14eca62f
YM
8912
8913 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
8914 in the current matrix if keep_current_p is non-zero.
8915
8264569d
EZ
89162011-06-04 Eli Zaretskii <eliz@gnu.org>
8917
8918 * bidi.c (bidi_level_of_next_char): Fix last change.
8919
57f97249
EZ
89202011-06-03 Eli Zaretskii <eliz@gnu.org>
8921
fec2107c 8922 Support bidi reordering of text covered by display properties.
57f97249 8923
fec2107c
EZ
8924 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
8925 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
8926 (bidi_cache_search, bidi_cache_iterator_state)
8927 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
d6d100dd
SM
8928 (bidi_level_of_next_char, bidi_move_to_visually_next):
8929 Support character positions inside a run of characters covered by a
fec2107c
EZ
8930 display string.
8931 (bidi_paragraph_init, bidi_resolve_explicit_1)
8932 (bidi_level_of_next_char): Call bidi_fetch_char and
8933 bidi_fetch_char_advance instead of FETCH_CHAR and
8934 FETCH_CHAR_ADVANCE.
8935 (bidi_init_it): Initialize new members.
8936 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
8937 definitions.
8938 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
8939 instead of using explicit *_CHAR codes.
d6d100dd
SM
8940 (bidi_resolve_explicit, bidi_resolve_weak):
8941 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
fec2107c
EZ
8942 bidirectional text is supported only in multibyte buffers.
8943 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
8944 it to initialize the frame_window_p member of struct bidi_it.
8945 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
8946 (bidi_resolve_explicit, bidi_resolve_weak)
8947 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
8948 bidi_it->nchars is non-positive.
8949 (bidi_level_of_next_char): Don't try to lookup the cache for the
8950 next/previous character if nothing is cached there yet, or if we
8951 were just reseat()'ed to a new position.
c40e2fb2 8952
0e14fe90
EZ
8953 * xdisp.c (set_cursor_from_row): Set start and stop points
8954 according to the row's direction when priming the loop that looks
8955 for the glyph on which to display cursor.
8956 (single_display_spec_intangible_p): Function deleted.
8957 (display_prop_intangible_p): Reimplement to call
8958 handle_display_spec instead of single_display_spec_intangible_p.
d6d100dd
SM
8959 Accept 3 additional arguments needed by handle_display_spec.
8960 This fixes incorrect cursor motion across display property with complex
0e14fe90
EZ
8961 values: lists, `(when COND...)' forms, etc.
8962 (single_display_spec_string_p): Support property values that are
8963 lists with the argument STRING its top-level element.
8964 (display_prop_string_p): Fix the condition for processing a
8965 property that is a list to be consistent with handle_display_spec.
fec2107c 8966 (handle_display_spec): New function, refactored from the
fc6f18ce
EZ
8967 last portion of handle_display_prop.
8968 (compute_display_string_pos): Accept additional argument
8969 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
8970 value of a `display' property is a "replacing spec".
8971 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
8972 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
8973 the display property, but just return a value indicating whether
8974 the display property will replace the characters it covers.
8975 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
8976 frame_window_p members of struct bidi_it.
d6d100dd
SM
8977 (compute_display_string_pos, compute_display_string_end):
8978 New functions.
fec2107c
EZ
8979 (push_it): Accept second argument POSITION, where pop_it should
8980 jump to continue iteration.
8981 (reseat_1): Initialize bidi_it.disp_pos.
fc6f18ce 8982
fec2107c
EZ
8983 * keyboard.c (adjust_point_for_property): Adjust the call to
8984 display_prop_intangible_p to its new signature.
fc6f18ce
EZ
8985
8986 * dispextern.h (struct bidi_it): New member frame_window_p.
fec2107c
EZ
8987 (bidi_init_it): Update prototypes.
8988 (display_prop_intangible_p): Update prototype.
d6d100dd
SM
8989 (compute_display_string_pos, compute_display_string_end):
8990 Declare prototypes.
fec2107c
EZ
8991 (struct bidi_it): New members nchars and disp_pos. ch_len is now
8992 EMACS_INT.
fc6f18ce 8993
40087514 89942011-06-02 Paul Eggert <eggert@cs.ucla.edu>
0de4bb68 8995
57f53182
PE
8996 Malloc failure behavior now depends on size of allocation.
8997 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
8998 * lisp.h: Change signatures accordingly.
8999 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
9000 All callers changed. (Bug#8762)
9001
9002 * gnutls.c: Use Emacs's memory allocators.
9003 Without this change, the gnutls library would invoke malloc etc.
9004 directly, which causes problems on non-SYNC_INPUT hosts, and which
9005 runs afoul of improving memory_full behavior. (Bug#8761)
9006 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
9007 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
9008 xfree instead of the default malloc, realloc, free.
9009 (Fgnutls_boot): No need to check for memory allocation failure,
9010 since xmalloc does that for us.
9011
ac32cd99 9012 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
3870d916
PE
9013 * category.c (hash_get_category_set):
9014 * ccl.c (ccl_driver):
9015 * charset.c (Fdefine_charset_internal):
9016 * charset.h (struct charset.hash_index):
9017 * composite.c (get_composition_id, gstring_lookup_cache)
9018 (composition_gstring_put_cache):
9019 * composite.h (struct composition.hash_index):
9020 * dispextern.h (struct image.hash):
9021 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
9022 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
9023 (hashfn_equal, hashfn_user_defined, make_hash_table)
9024 (maybe_resize_hash_table, hash_lookup, hash_put)
9025 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
9026 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
9027 (Fsxhash, Fgethash, Fputhash, Fmaphash):
9028 * image.c (make_image, search_image_cache, lookup_image)
9029 (xpm_put_color_table_h):
9030 * lisp.h (struct Lisp_Hash_Table):
0de4bb68 9031 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
ac389d0c 9032 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
3870d916 9033 for hashes and hash indexes, instead of 'unsigned' and 'int'.
40087514
PE
9034 * alloc.c (allocate_vectorlike):
9035 Check for overflow in vector size calculations.
9036 * ccl.c (ccl_driver):
9037 Check for overflow when converting EMACS_INT to int.
0de4bb68
PE
9038 * fns.c, image.c: Remove unnecessary static decls that would otherwise
9039 need to be updated by these changes.
40087514
PE
9040 * fns.c (make_hash_table, maybe_resize_hash_table):
9041 Check for integer overflow with large hash tables.
0de4bb68
PE
9042 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
9043 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
9044 (SXHASH_REDUCE): New macro.
9045 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
9046 Use it instead of discarding useful hash info with large hash values.
9047 (sxhash_float): New function.
9048 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
9049 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
40087514
PE
9050 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
9051 Rewrite to use FIXNUM_BITS, as this simplifies things.
0de4bb68
PE
9052 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
9053 Adjust signatures to match updated version of code.
9054 (consing_since_gc): Now EMACS_INT, since a single hash table can
9055 use more than INT_MAX bytes.
9056
698d32e2
DN
90572011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
9058
9059 Make it possible to build with GCC-4.6+ -O2 -flto.
9060
9061 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
9062
fd6fa53f
SM
90632011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
9064
9065 * minibuf.c (get_minibuffer, read_minibuf_unwind):
9066 Call minibuffer-inactive-mode.
9067
864db017
JB
90682011-05-31 Juanma Barranquero <lekktu@gmail.com>
9069
9070 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
9071 Update dependencies.
9072
2ad0baf4
DN
90732011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
9074
9075 * data.c (init_data): Remove code for UTS, this system is not
9076 supported anymore.
9077
4fcc2638
DN
90782011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
9079
9080 Don't force ./temacs to start in terminal mode.
9081
9082 * frame.c (make_initial_frame): Initialize faces in all cases, not
9083 only when CANNOT_DUMP is defined.
9084 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
9085
c56e0fd5
DN
90862011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
9087
9088 * dispnew.c (add_window_display_history): Use const for the string
9089 pointer. Remove declaration, not needed.
9090
333d54da 90912011-05-31 Paul Eggert <eggert@cs.ucla.edu>
9cf9f756 9092
55d4c1b2 9093 Use 'inline', not 'INLINE'.
333d54da 9094 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
55d4c1b2
PE
9095 * alloc.c, fontset.c (INLINE): Remove.
9096 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
9097 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
9098 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
9099 * gmalloc.c (register_heapinfo): Use inline unconditionally.
9100 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
9101
738db178
DN
91022011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
9103
9104 Make it possible to run ./temacs.
9105
9106 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
9107 syms_of_callproc does the same thing. Remove test for
9108 "initialized", do it in the caller.
9109 * emacs.c (main): Avoid calling set_initial_environment when dumping.
9110
620c53a6
SM
91112011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
9112
9113 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
9114 (read_minibuf): Use get_minibuffer.
9115 (syms_of_minibuf): Use DEFSYM.
9116 (Qmetadata): New var.
9117 * data.c (Qbuffer): Don't make it static.
9118 (syms_of_data): Use DEFSYM.
9119
e003a292
PE
91202011-05-31 Paul Eggert <eggert@cs.ucla.edu>
9121
9122 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
9123 (CCL_CODE_MIN): New macro.
9124
ed008a6d
PE
91252011-05-30 Paul Eggert <eggert@cs.ucla.edu>
9126
3687c2ef
PE
9127 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
9128
ed008a6d
PE
9129 * eval.c (Qdebug): Now static.
9130 * lisp.h (Qdebug): Remove decl. This reverts a part of the
9131 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
9132 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
9133
d66c4c7c
CY
91342011-05-29 Chong Yidong <cyd@stupidchicken.com>
9135
9136 * image.c: Various fixes to ImageMagick code comments.
9137 (Fimagemagick_types): Doc fix.
9138
5fbc2025
PE
91392011-05-29 Paul Eggert <eggert@cs.ucla.edu>
9140
0196f88a
PE
9141 Minor fixes prompted by GCC 4.6.0 warnings.
9142
9143 * xselect.c (converted_selections, conversion_fail_tag): Now static.
9144
5fbc2025
PE
9145 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
9146 (x_clipboard_manager_save_all): Move extern decl to ...
9147 * xterm.h: ... here, so that it can be checked for consistency.
9148
1dd3c2d9
CY
91492011-05-29 Chong Yidong <cyd@stupidchicken.com>
9150
9151 * xselect.c (x_clipboard_manager_save_frame)
9152 (x_clipboard_manager_save_all): New functions.
9153 (Fx_clipboard_manager_save): Lisp function deleted.
9154
9155 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
9156 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
9157
9158 * xterm.h: Update prototype.
9159
5ba6571d
WX
91602011-05-28 William Xu <william.xwl@gmail.com>
9161
9162 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
9163 exiting (Bug#8239).
9164
3eaff834
JM
91652011-05-28 Jim Meyering <meyering@redhat.com>
9166
e1900994 9167 Avoid a sign-extension bug in crypto_hash_function.
3eaff834
JM
9168 * fns.c (to_uchar): Define.
9169 (crypto_hash_function): Use it to convert some newly-signed
9170 variables to unsigned, to avoid sign-extension bugs. For example,
9171 without this change, (md5 "truc") would evaluate to
9172 45723a2aff78ff4fff7fff1114760e62 rather than the expected
9173 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
e1900994 9174 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
3eaff834 9175
0f6990a7
PE
91762011-05-27 Paul Eggert <eggert@cs.ucla.edu>
9177
9178 Integer overflow fixes.
c8a9ca5a 9179
08686060
PE
9180 * dbusbind.c: Serial number integer overflow fixes.
9181 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
08686060
PE
9182 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
9183 to hold a serial number that is too large for a fixnum.
9184 (Fdbus_method_return_internal, Fdbus_method_error_internal):
9185 Check for serial numbers out of range. Decode any serial number
59568bf0 9186 that was so large that it became a float. (Bug#8722)
08686060 9187
2d1fc3c7
PE
9188 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
9189 (Fdbus_call_method, Fdbus_call_method_asynchronously):
9190 Use XFASTINT rather than XUINT when numbers are nonnegative.
9191 (xd_append_arg, Fdbus_method_return_internal):
9192 (Fdbus_method_error_internal): Likewise. Also, for unsigned
9193 arguments, check that Lisp number is nonnegative, rather than
59568bf0 9194 silently wrapping negative numbers around. (Bug#8722)
30217ff0 9195 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
59568bf0 9196 (Bug#8722)
2d1fc3c7 9197
c8a9ca5a
PE
9198 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
9199
519e1d69
PE
9200 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
9201
6df6ae42 9202 ccl: Add integer overflow checks.
30569699
PE
9203 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
9204 (IN_INT_RANGE): New macros.
9205 (ccl_driver): Use them to check for integer overflow when
9206 decoding a CCL program. Many of the new checks are whether XINT (x)
9207 fits in int; it doesn't always, on 64-bit hosts. The new version
9208 doesn't catch all possible integer overflows, but it's an
847044ea 9209 improvement. (Bug#8719)
30569699 9210
c11285dc
PE
9211 * alloc.c (make_event_array): Use XINT, not XUINT.
9212 There's no need for unsigned here.
9213
fdccd48e
PE
9214 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
9215 This follows up to the 2011-05-06 change that substituted uintptr_t
9216 for EMACS_INT. This case wasn't caught back then.
9217
37910ab2
PE
9218 Rework Fformat to avoid integer overflow issues.
9219 * editfns.c: Include <float.h> unconditionally, as it's everywhere
9220 now (part of C89). Include <verify.h>.
9221 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
9222 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
9223 (Fformat): Avoid the prepass trying to compute sizes; it was only
9224 approximate and thus did not catch overflow reliably. Instead, walk
9225 through the format just once, formatting and computing sizes as we go,
9226 checking for integer overflow at every step, and allocating a larger
9227 buffer as needed. Keep track separately whether the format is
9228 multibyte. Keep only the most-recently calculated precision, rather
9229 than them all. Record whether each argument has been converted to
9230 string. Use EMACS_INT, not int, for byte and char and arg counts.
9231 Support field widths and precisions larger than INT_MAX. Avoid
9232 sprintf's undefined behavior with conversion specifications such as %#d
9233 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
9234 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
9235 formatting out-of-range floating point numbers with int
9173deec 9236 formats. (Bug#8668)
37910ab2 9237
2e6578fb
PE
9238 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
9239
0ae6bdee
PE
9240 * data.c: Avoid integer truncation in expressions involving floats.
9241 * data.c: Include <intprops.h>.
9242 (arith_driver): When there's an integer overflow in an expression
9243 involving floating point, convert the integers to floating point
9244 so that the resulting value does not suffer from catastrophic
9245 integer truncation. For example, on a 64-bit host (* 4
9246 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
9247 Do not rely on undefined behavior after integer overflow.
9248
de883a70
PE
9249 merge count_size_as_multibyte, parse_str_to_multibyte
9250 * character.c, character.h (count_size_as_multibyte):
fd6fa53f 9251 Rename from parse_str_to_multibyte; all uses changed.
de883a70
PE
9252 Check for integer overflow.
9253 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
9254 since it's now a duplicate of the other. This is more of
9255 a character than a buffer op, so better that it's in character.c.
9256 * fns.c, print.c: Adjust to above changes.
9257
2ff916cb
PE
92582011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
9259
9260 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
9261
f1b54466
PE
92622011-05-27 Paul Eggert <eggert@cs.ucla.edu>
9263
fb1ac845
PE
9264 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
9265 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
9266 (x_clipboard_manager_save): Now static.
9267 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
9268
f1b54466
PE
9269 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
9270 (crypto_hash_function): Now static.
9271 Fix pointer signedness problems. Avoid unnecessary initializations.
9272
a9f737ee
CY
92732011-05-27 Chong Yidong <cyd@stupidchicken.com>
9274
9275 * termhooks.h (Vselection_alist): Make it terminal-local.
9276
9277 * terminal.c (create_terminal): Initialize it.
9278
9279 * xselect.c: Support for clipboard managers.
9280 (Vselection_alist): Move to termhooks.h as terminal-local var.
9281 (LOCAL_SELECTION): New macro.
9282 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
9283 (symbol_to_x_atom): Remove gratuitous arg.
9284 (x_handle_selection_request, lisp_data_to_selection_data)
9285 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
620c53a6
SM
9286 (x_own_selection, x_get_local_selection, x_convert_selection):
9287 New arg, specifying work frame. Use terminal-local Vselection_alist.
a9f737ee
CY
9288 (some_frame_on_display): Delete unused function.
9289 (Fx_own_selection_internal, Fx_get_selection_internal)
9290 (Fx_disown_selection_internal, Fx_selection_owner_p)
9291 (Fx_selection_exists_p): New optional frame arg.
9292 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
9293 (x_handle_selection_clear): Don't treat other terminals with the
9294 same keyboard specially. Use the terminal-local Vselection_alist.
9295 (x_clear_frame_selections): Use Frun_hook_with_args.
9296
9297 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
9298
9299 * xterm.h: Add support for those atoms.
9300
e067f0c1
CY
93012011-05-26 Chong Yidong <cyd@stupidchicken.com>
9302
9303 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
9304 (converted_selections, conversion_fail_tag): New global variables.
9305 (x_selection_request_lisp_error): Free the above.
9306 (x_get_local_selection): Remove unnecessary code.
9307 (x_reply_selection_request): Args changed; handle arbitrary array
620c53a6
SM
9308 of converted selections stored in converted_selections.
9309 Separate the XChangeProperty and SelectionNotify steps.
e067f0c1
CY
9310 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
9311 (x_convert_selection): New function.
9312 (x_handle_selection_event): Simplify.
9313 (x_get_foreign_selection): Don't ignore incoming requests while
9314 waiting for an answer; this will fail when we implement
9315 SAVE_TARGETS, and seems unnecessary anyway.
9316 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
9317 (Vx_sent_selection_functions): Doc fix.
9318
0f4aebc0
LL
93192011-05-26 Leo Liu <sdl.web@gmail.com>
9320
9321 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
9322
e61124cd
YM
93232011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
9324
9325 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
9326
9327 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
9328 for fringe update if it has periodic bitmap.
ac389d0c 9329 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
e61124cd
YM
9330 and fringe_bitmap_periodic_p.
9331
9332 * fringe.c (get_fringe_bitmap_data): New function.
9333 (draw_fringe_bitmap_1, update_window_fringes): Use it.
9334 (update_window_fringes): Record periodicity of fringe bitmap in glyph
9335 row. Mark glyph row for fringe update if periodicity changed.
9336
9337 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
9338 for fringe update unless it has periodic bitmap.
9339
f16d9837
KH
93402011-05-25 Kenichi Handa <handa@m17n.org>
9341
9342 * xdisp.c (get_next_display_element): Set correct it->face_id for
9343 a static composition.
9344
e1b90ef6
LL
93452011-05-24 Leo Liu <sdl.web@gmail.com>
9346
9347 * deps.mk (fns.o):
9348 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
9349
9350 * fns.c (crypto_hash_function, Fsha1): New function.
9351 (Fmd5): Use crypto_hash_function.
9352 (syms_of_fns): Add Ssha1.
9353
7400048f
PE
93542011-05-22 Paul Eggert <eggert@cs.ucla.edu>
9355
9356 * gnutls.c: Remove unused macros.
9357 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
9358 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
9359 Remove macros that are defined and never used.
9360 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
9361
abb71cf4
CY
93622011-05-22 Chong Yidong <cyd@stupidchicken.com>
9363
9364 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
9365 (Fx_get_selection_internal): Minor cleanup.
9366 (Fx_own_selection_internal): Rename arguments for consistency with
9367 select.el.
9368
6307db39
PE
93692011-05-22 Paul Eggert <eggert@cs.ucla.edu>
9370
9371 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
9372
f3d4e0a4
CY
93732011-05-22 Chong Yidong <cyd@stupidchicken.com>
9374
9375 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
9376
4d8ade89
YM
93772011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
9378
9379 * dispnew.c (scrolling_window): Don't exclude the case that the
9380 last enabled row in the desired matrix touches the bottom boundary.
9381
32078c8d
GM
93822011-05-21 Glenn Morris <rgm@gnu.org>
9383
9384 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
33cf345f
GM
9385 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
9386 and add some more files.
32078c8d 9387
7285dc67
EZ
93882011-05-20 Eli Zaretskii <eliz@gnu.org>
9389
9390 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
9391 report_file_error introduced by the change from 2011-05-07.
9392
89d1bd22
PE
93932011-05-20 Paul Eggert <eggert@cs.ucla.edu>
9394
9395 * systime.h (Time): Define only if emacs is defined.
9396 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
9397 where the include path doesn't have X11/X.h by default. See
9398 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
9399
cd394be1 94002011-05-20 Kenichi Handa <handa@m17n.org>
31bfc35c
KH
9401
9402 * composite.c (find_automatic_composition): Fix previous change.
9403
b9704ad9
GM
94042011-05-20 Glenn Morris <rgm@gnu.org>
9405
9406 * lisp.mk: New file, split from Makefile.in.
9407 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
9408 (shortlisp): Remove.
9409 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
9410
4a720484
GM
94112011-05-19 Glenn Morris <rgm@gnu.org>
9412
9413 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
9414 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
9415 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
9416 (lisp): Set the order to that of loadup.el.
9417 (shortlisp): Make it a copy of $lisp.
9418 (SOME_MACHINE_LISP): Remove.
9419 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
9420 Use just $shortlisp, not $SOME_MACHINE_LISP too.
9421
a28d4396
KH
94222011-05-18 Kenichi Handa <handa@m17n.org>
9423
9424 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
9425 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
9426 (find_automatic_composition): Mostly rewrite for efficiency.
9427
a2b1fa8e
JB
94282011-05-18 Juanma Barranquero <lekktu@gmail.com>
9429
9430 * makefile.w32-in: Update dependencies.
9431
8e1f5610
CS
94322011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
9433
9434 * menu.c: Include limits.h (fixes the MS-Windows build broken by
7d7d0045 9435 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
8e1f5610 9436
7025ee00 94372011-05-18 Paul Eggert <eggert@cs.ucla.edu>
cb93f9be 9438
cdfa6eab
PE
9439 Fix some integer overflow issues, such as string length overflow.
9440
06d6db33
PE
9441 * insdel.c (count_size_as_multibyte): Check for string overflow.
9442
2b4560a8
PE
9443 * character.c (lisp_string_width): Check for string overflow.
9444 Use EMACS_INT, not int, for string indexes and lengths; in
9445 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
9446 the resulting string length overflows an EMACS_INT; instead,
9447 report a string overflow if no precision given. When checking for
9448 precision exhaustion, use a check that cannot possibly have
9449 integer overflow. (Bug#8675)
9450 * character.h (lisp_string_width): Adjust to new signature.
9451
cb93f9be
PE
9452 * alloc.c (string_overflow): New function.
9453 (Fmake_string): Use it. This doesn't change behavior, but saves
9454 a few bytes and will simplify future changes.
9455 * character.c (string_escape_byte8): Likewise.
9456 * lisp.h (string_overflow): New decl.
9457
1a1f3366
PE
9458 Fixups, following up to the user-interface timestamp change.
9459 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
9460 for UI timestamps, instead of unsigned long.
9fbd6841
PE
9461 * msdos.c (mouse_get_pos): Likewise.
9462 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
1a1f3366
PE
9463 * w32gui.h (Time): Define by including "systime.h" rather than by
9464 declaring it ourselves. (Bug#8664)
9465
d4e3e4d3
PE
9466 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
9467 * image.c (clear_image_cache): Likewise.
9468
f6a24d19
PE
9469 * term.c (term_mouse_position): Don't assume time_t wraparound.
9470
08dc5ae6
PE
9471 Be more systematic about user-interface timestamps.
9472 Before, the code sometimes used 'Time', sometimes 'unsigned long',
620c53a6
SM
9473 and sometimes 'EMACS_UINT', to represent these timestamps.
9474 This change causes it to use 'Time' uniformly, as that's what X uses.
08dc5ae6
PE
9475 This makes the code easier to follow, and makes it easier to catch
9476 integer overflow bugs such as Bug#8664.
9477 * frame.c (Fmouse_position, Fmouse_pixel_position):
9478 Use Time, not unsigned long, for user-interface timestamps.
9479 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
9480 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
9481 * keyboard.h (last_event_timestamp): Likewise.
9482 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
9483 * menu.h (xmenu_show): Likewise.
9484 * term.c (term_mouse_position): Likewise.
9485 * termhooks.h (struct input_event.timestamp): Likewise.
9486 (struct terminal.mouse_position_hook): Likewise.
9487 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
9488 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
9489 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
9490 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
9491 what it was before.
9492 * menu.h, termhooks.h: Include "systime.h", for Time.
9493
8e55734a
PE
9494 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
9495 Don't assume that the difference between two unsigned long values
9496 can fit into an integer. At this point, we know button_down_time
9497 <= event->timestamp, so the difference must be nonnegative, so
9498 there's no need to cast the result if double-click-time is
9499 nonnegative, as it should be; check that it's nonnegative, just in
9500 case. This bug is triggered when events are more than 2**31 ms
86db42d2 9501 apart (about 25 days). (Bug#8664)
8e55734a 9502
841f1b75 9503 * xselect.c (last_event_timestamp): Remove duplicate decl.
6434756c 9504 (x_own_selection): Remove needless cast to unsigned long.
841f1b75 9505
3e26f69c
PE
9506 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
9507 that always fit in int. Use a sentinel instead of a counter, to
9508 avoid a temp and to allay GCC's concerns about possible int overflow.
d230cb74
PE
9509 * frame.h (struct frame): Use int for menu_bar_items_used
9510 instead of EMACS_INT, since it always fits in int.
3e26f69c 9511
5cc152c0
PE
9512 * menu.c (grow_menu_items): Check for int overflow.
9513
d89eb65e
PE
9514 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
9515
5235bd3e
PE
9516 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
9517 Before, the code was not consistent. These values cannot exceed
9518 2**31 - 1 so there's no need to make them unsigned.
9519 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
9520 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
9521 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
9522 as modifiers.
9523 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
9524
bc827e23
PE
9525 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
9526 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
9527 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
9528 presumably because the widths might not match.
9529
78eb494e
PE
9530 * window.c (size_window): Avoid needless test at loop start.
9531
04f2d78b
CB
95322011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
9533
9534 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
9535
d2fc7e3d 95362011-05-12 Drew Adams <drew.adams@oracle.com>
e531bdff
DA
9537
9538 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
9539
d2fc7e3d 95402011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7db47798
YM
9541
9542 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
9543 `width' to `bar_area_x' and `bar_area_width', respectively.
9544 (x_scroll_run): Take account of fringe background extension.
9545
04f2d78b
CB
9546 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
9547 Rename local vars `left' and `width' to `bar_area_x' and
7db47798
YM
9548 `bar_area_width', respectively.
9549 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
9550 background extension.
9551
79b70037
GM
95522011-05-10 Jim Meyering <meyering@redhat.com>
9553
9554 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
9555
2f142cc5
JB
95562011-05-10 Juanma Barranquero <lekktu@gmail.com>
9557
9558 * image.c (Finit_image_library): Return t for built-in image types,
9559 like pbm and xbm. (Bug#8640)
9560
57679c86
AS
95612011-05-09 Andreas Schwab <schwab@linux-m68k.org>
9562
9563 * w32menu.c (set_frame_menubar): Fix submenu allocation.
9564
888c9e86
EZ
95652011-05-07 Eli Zaretskii <eliz@gnu.org>
9566
b0512a1d
EZ
9567 * w32console.c (Fset_screen_color): Doc fix.
9568 (Fget_screen_color): New function.
9569 (syms_of_ntterm): Defsubr it.
9570
7285dc67
EZ
9571 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
9572 unlink the temporary file if Fcall_process didn't create it in the
9573 first place.
9574 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
9575 child process will be redirected to a file specified with `:file'.
888c9e86
EZ
9576 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
9577 cue to call_process_cleanup not to close that handle.
9578
4d3fcc8e
BK
95792011-05-07 Ben Key <bkey76@gmail.com>
9580
9581 * makefile.w32-in: The bootstrap-temacs rule now makes use of
9582 one of two shell specific rules, either bootstrap-temacs-CMD or
9583 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
9584 to the previous implementation of the bootstrap-temacs rule.
9585 The bootstrap-temacs-CMD rule is similar to the previous
9586 implementation of the bootstrap-temacs rule except that it
9587 makes use of the ESC_CFLAGS variable instead of the CFLAGS
9588 variable.
9589
9590 These changes, along with some changes to nt/configure.bat,
9591 nt/gmake.defs, and nt/nmake.defs, are required to extend my
9592 earlier fix to add support for --cflags and --ldflags options
9593 that include quotes so that it works whether make uses cmd or
9594 sh as the shell.
9595
b4289b64
MA
95962011-05-06 Michael Albinus <michael.albinus@gmx.de>
9597
9598 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
9599 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
9600 is a constant.
9601 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
9602 a string. Handle both cases.
9603 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
9604 (Fdbus_register_method): Use Qinvalid_function.
9605
af4c0e28
JB
96062011-05-06 Juanma Barranquero <lekktu@gmail.com>
9607
9608 * makefile.w32-in: Update dependencies.
9609 (LISP_H): Add inttypes.h and stdin.h.
9610 (PROCESS_H): Add unistd.h.
9611
c51453d9
EZ
96122011-05-06 Eli Zaretskii <eliz@gnu.org>
9613
9614 * lread.c: Include limits.h (fixes the MS-Windows build broken by
9615 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
9616
8ff0ac3c 96172011-05-06 Paul Eggert <eggert@cs.ucla.edu>
c032b5f8 9618
4c4b566b
PE
9619 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
9620
aab2b9b5
PE
9621 * term.c (vfatal): Remove stray call to va_end.
9622 It's not needed and the C Standard doesn't allow it here anyway.
9623
c378da0b
PE
9624 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
9625 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
9626
288b08c7
PE
9627 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
9628 bytes.
9629
e3601888
PE
9630 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
9631
db6c0e74
PE
9632 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
9633
dd5963ea
PE
9634 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
9635
88c9450f
PE
9636 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
9637
2f9442b8
PE
9638 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
9639
c032b5f8
PE
9640 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
9641 * charset.c (Fdefine_charset_internal): Don't initialize
9642 charset.code_space[15]. The value was garbage, on hosts with
2d38271b 9643 32-bit int (Bug#8600).
a108c10b
PE
9644
9645 * lread.c (read_integer): Be more consistent with string-to-number.
9646 Use string_to_number to do the actual conversion; this avoids
9647 rounding errors and fixes some other screwups. Without this fix,
9648 for example, #x1fffffffffffffff was misread as -2305843009213693952.
9649 (digit_to_number): Move earlier, for benefit of read_integer.
9650 Return -1 if the digit is out of range for the base, -2 if it is
48e400f0 9651 not a digit in any supported base. (Bug#8602)
a108c10b 9652
ad5f9eea
PE
9653 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
9654
aec1708a
PE
9655 * dispnew.c (scrolling_window): Return 1 if we scrolled,
9656 to match comment at start of function. This also removes a
9657 GCC warning about overflow in a 32+64-bit port.
9658
47be4ab5
PE
9659 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
9660
371cac43
PE
9661 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
9662 Reported by Stefan Monnier in
9663 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
04f2d78b
CB
9664 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
9665 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
371cac43 9666
d01a7826
PE
9667 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
9668 (EMACS_UINTPTR): Likewise, with uintptr_t.
9669
7fd47d5c
PE
9670 * lisp.h: Prefer 64-bit EMACS_INT if available.
9671 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
9672 on 32-bit hosts that have 64-bit int, so that they can access
9673 large files.
122b0c86
PE
9674 However, temporarily disable this change unless the temporary
9675 symbol WIDE_EMACS_INT is defined.
7fd47d5c 9676
8727937b
PE
9677 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
9678
8ac068ac
PE
9679 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
9680 This removes an assumption that EMACS_INT and long are the same
9681 width as pointers. The assumption is true for Emacs porting targets
9682 now, but we want to make other targets possible.
9683 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
9684 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
9685 In the rest of the code, change types of integers that hold casted
9686 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
9687 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
9688 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
9689 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
9690 No need to cast type when ORing.
9691 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
9692 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
9693 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
9694 assume EMACS_INT is the same width as char *.
9695 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
9696 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
9697 Remove no-longer-needed casts.
9698 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
9699 (xg_tool_bar_help_callback, xg_make_tool_item):
9700 Use EMACS_INTPTR to hold an integer
9701 that will be cast to void *; this can avoid a GCC warning
9702 if EMACS_INT is not the same width as void *.
9703 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
9704 * xdisp.c (display_echo_area_1, resize_mini_window_1):
9705 (current_message_1, set_message_1):
9706 Use a local to convert to proper width without a cast.
9707 * xmenu.c (dialog_selection_callback): Likewise.
9708
ede49d71
PE
9709 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
9710 Also, don't assume VALBITS / RAND_BITS is less than 5,
9711 and don't rely on undefined behavior when shifting a 1 left into
9712 the sign bit.
9713 * lisp.h (get_random): Change signature to match.
9714
2f30ecd0
PE
9715 * lread.c (hash_string): Use size_t, not int, for hash computation.
9716 Normally we prefer signed values; but hashing is special, because
9717 it's better to use unsigned division on hash table sizes so that
9718 the remainder is nonnegative. Also, size_t is the natural width
9719 for hashing into memory. The previous code used 'int', which doesn't
9720 retain enough info to hash well into very large tables.
9721 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
9722
2a866e7b
PE
9723 * dbusbind.c: Don't possibly lose pointer info when converting.
9724 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
9725 Use XPNTR rather than XHASH, so that the high-order bits of
9726 the pointer aren't lost when converting through void *.
9727
51639eac
PE
9728 * eval.c (Fautoload): Don't double-shift a pointer.
9729
92394119
PE
9730 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
9731
dbdb9a7c
JB
97322011-05-06 Juanma Barranquero <lekktu@gmail.com>
9733
9734 * gnutls.c (DEF_GNUTLS_FN):
9735 * image.c (DEF_IMGLIB_FN): Make function pointers static.
9736
db7a0b4f
AS
97372011-05-05 Andreas Schwab <schwab@linux-m68k.org>
9738
9739 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
9740 marker. (Bug#8610)
9741
cd394be1 97422011-05-05 Eli Zaretskii <eliz@gnu.org>
fab624aa
EZ
9743
9744 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
9745 New version that can reserve upto 2GB of heap space.
9746
f7ff1b0f 97472011-05-05 Chong Yidong <cyd@stupidchicken.com>
45cb8994
CY
9748
9749 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
9750
639c109b
TZ
97512011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
9752
9753 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
9754 `gnutls_certificate_set_x509_key_file'.
9755
d2127135
JB
97562011-05-05 Juanma Barranquero <lekktu@gmail.com>
9757
9758 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
9759 Update dependencies.
9760
e968f4f3
JB
97612011-05-04 Juanma Barranquero <lekktu@gmail.com>
9762
9763 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
9764 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
9765 Remove unused parameter `fildes'.
9766 * process.c (read_process_output, send_process): Don't pass it.
9767
84d358f0
JB
97682011-05-04 Juanma Barranquero <lekktu@gmail.com>
9769
9770 Fix previous change: the library cache is defined in w32.c.
9771 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
9772 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
9773
0898ca10
JB
97742011-05-04 Juanma Barranquero <lekktu@gmail.com>
9775
9776 Implement dynamic loading of GnuTLS on Windows.
9777
9778 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
9779 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
9780 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
9781 Declare.
9782
9783 * gnutls.c (Qgnutls_dll): Define.
9784 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
9785 (gnutls_*): Declare function pointers.
9786 (init_gnutls_functions): New function to initialize function pointers.
9787 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
9788 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
9789 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
9790 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
9791 (emacs_gnutls_write, emacs_gnutls_read)
9792 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
9793 (Fgnutls_available_p): New function.
9794 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
9795 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
9796 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
9797
9798 * image.c: Include w32.h.
9799 (Vimage_type_cache): Delete.
9800 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
9801 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
9802 (w32_delayed_load): Move to w32.c.
9803
9804 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
9805
9806 * w32.c (QCloaded_from, Vlibrary_cache): Define.
9807 (w32_delayed_load): Move from image.c. When loading a library, record
9808 its filename in the :loaded-from property of the library id.
9809 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
9810 Initialize and staticpro them.
9811 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
9812
9813 * process.c: Include lisp.h before w32.h, not after.
9814 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
9815 instead of gnutls_record_check_pending.
9816
9817 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
9818
ff4de4aa
TZ
98192011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
9820
9821 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
9822 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
9823 as passed in.
9824
abe95abb
JD
98252011-05-03 Jan Djärv <jan.h.d@swipnet.se>
9826
9827 * xterm.c (x_set_frame_alpha): Do not set property on anything
9828 else than FRAME_X_OUTER_WINDOW (Bug#8608).
9829
e16e55d4
JB
98302011-05-02 Juanma Barranquero <lekktu@gmail.com>
9831
9832 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
9833
bafcf6a5
JB
98342011-05-02 Juanma Barranquero <lekktu@gmail.com>
9835
9836 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
9837 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
9838 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
9839 (gnutls_global_initialized, Qgnutls_bootprop_priority)
9840 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
9841 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
9842 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
9843 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
9844 (Qgnutls_bootprop_callbacks_verify): Make static.
9845
e7a6747f
AS
98462011-05-01 Andreas Schwab <schwab@linux-m68k.org>
9847
19ed11ba
AS
9848 * callproc.c: Indentation fixup.
9849
e7a6747f 9850 * sysdep.c (wait_for_termination_1): Make static.
04f2d78b
CB
9851 (wait_for_termination, interruptible_wait_for_termination):
9852 Move after wait_for_termination_1.
e7a6747f 9853
1ef14cb4
LMI
98542011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
9855
9856 * sysdep.c (interruptible_wait_for_termination): New function
9857 which is like wait_for_termination, but allows keyboard
9858 interruptions.
9859
9860 * callproc.c (Fcall_process): Add (:file "file") as an option for
9861 the STDOUT buffer.
9862 (Fcall_process_region): Ditto.
9863
330d880c
EZ
98642011-04-30 Eli Zaretskii <eliz@gnu.org>
9865
8db90b73
EZ
9866 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
9867 rather than `XVECTOR (FOO)->size'.
9868
330d880c
EZ
9869 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
9870 inttypes.h, as a gnulib replacement is used if it not available in
9871 system headers.
9872
15cbd324
EZ
98732011-04-21 Eli Zaretskii <eliz@gnu.org>
9874
9875 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
9876 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
9877 of MOST_POSITIVE_FIXNUM. (Bug#8528)
9878
9879 * coding.c (coding_alloc_by_realloc): Error out if destination
9880 will grow beyond MOST_POSITIVE_FIXNUM.
9881 (decode_coding_emacs_mule): Abort if there isn't enough place in
9882 charbuf for the composition carryover bytes. Reserve an extra
9883 space for up to 2 characters produced in a loop.
9884 (decode_coding_iso_2022): Abort if there isn't enough place in
9885 charbuf for the composition carryover bytes.
9886
98872011-04-21 Eli Zaretskii <eliz@gnu.org>
afda1437 9888
ae940cca
EZ
9889 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
9890 aborting when %lld or %lll format is passed.
9891 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
9892 %llo or %llx format is passed. (Bug#8545)
9893
03ab8921
EZ
9894 * window.c (window_scroll_line_based): Use a marker instead of
9895 simple variables to record original value of point. (Bug#7952)
9896
afda1437
EZ
9897 * doprnt.c (doprnt): Fix the case where a multibyte sequence
9898 produced by %s or %c overflows available buffer space. (Bug#8545)
9899
f76dee0c
PE
99002011-04-28 Paul Eggert <eggert@cs.ucla.edu>
9901
9902 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
283cdbef 9903 (SIZE_MAX): Move defn after all includes, as they might #define it.
f76dee0c 9904
fdc5744d
JB
99052011-04-28 Juanma Barranquero <lekktu@gmail.com>
9906
9907 * w32.c (init_environment): Warn about defaulting HOME to C:\.
9908
638f053a
JB
99092011-04-28 Juanma Barranquero <lekktu@gmail.com>
9910
9911 * keyboard.c (Qdelayed_warnings_hook): Define.
9912 (command_loop_1): Run `delayed-warnings-hook'
9913 if Vdelayed_warnings_list is non-nil.
9914 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
9915 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
9916
d178f871
EZ
99172011-04-28 Eli Zaretskii <eliz@gnu.org>
9918
9919 * doprnt.c (doprnt): Don't return value smaller than the buffer
9920 size if the message was truncated. (Bug#8545).
9921
b124fd93
JB
99222011-04-28 Juanma Barranquero <lekktu@gmail.com>
9923
9924 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
9925 (Fx_window_property): #if-0 the whole functions, not just the bodies.
9926
e810457d
PE
99272011-04-27 Paul Eggert <eggert@cs.ucla.edu>
9928
9929 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
9930
ea51cceb
JB
99312011-04-27 Juanma Barranquero <lekktu@gmail.com>
9932
9933 * makefile.w32-in: Update dependencies.
9934
94dcfacf
EZ
99352011-04-27 Eli Zaretskii <eliz@gnu.org>
9936
9937 Improve `doprnt' and its usage. (Bug#8545)
9938 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
9939 `format_end'. Remove support for %l as a conversion specifier.
9940 Don't use xrealloc. Improve diagnostics when the %l size modifier
9941 is used. Update the commentary.
9942
9943 * eval.c (verror): Simplify calculation of size_t.
9944
9945 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
9946 messages.
9947
f61f41d7
PE
99482011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
9949
9950 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
9951 change.
9952
96fb4434
PE
99532011-04-27 Paul Eggert <eggert@cs.ucla.edu>
9954
9955 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
9956 This makes this file independent of the recent pseudovector change.
9957
671875da 99582011-04-26 Paul Eggert <eggert@cs.ucla.edu>
eab3844f 9959
69e9b5a3
PE
9960 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
9961
b5f869a7 9962 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
7754e151 9963 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
8d4c3955 9964 Remove unused local.
c8926152 9965 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
080e5a8d 9966
841a1577 9967 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
04f2d78b
CB
9968 GCC 4.6.0 optimizes based on type-based alias analysis.
9969 For example, if b is of type struct buffer * and v of type struct
eab3844f
PE
9970 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
9971 != &v->size, and therefore "v->size = 1; b->size = 2; return
9972 v->size;" must therefore return 1. This assumption is incorrect
9973 for Emacs, since it type-puns struct Lisp_Vector * with many other
9974 types. To fix this problem, this patch adds a new type struct
f904488f 9975 vectorlike_header that documents the constraints on layout of vectors
eab3844f
PE
9976 and pseudovectors, and helps optimizing compilers not get fooled
9977 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
9978 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
f904488f
PE
9979 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
9980 the size member.
eab3844f
PE
9981 (XSETPVECTYPE): Rewrite in terms of new macro.
9982 (XSETPVECTYPESIZE): New macro, specifying both type and size.
9983 This is a bit clearer, and further avoids the possibility of
9984 undesirable aliasing.
9985 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
f904488f 9986 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
eab3844f
PE
9987 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
9988 since Lisp_Subr is a special case (no "next" field).
04f2d78b
CB
9989 (ASIZE): Now uses header.size rather than size.
9990 All previous uses of XVECTOR (foo)->size replaced to use this macro,
f904488f
PE
9991 to avoid the hassle of writing XVECTOR (foo)->header.size.
9992 (struct vectorlike_header): New type.
eab3844f
PE
9993 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
9994 object, to help avoid aliasing.
9995 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
9996 (SUBRP): Likewise, since Lisp_Subr is a special case.
9997 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
9998 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
9999 (struct Lisp_Hash_Table): Combine first two members into a single
f904488f 10000 struct vectorlike_header member. All uses of "size" and "next" members
eab3844f
PE
10001 changed to be "header.size" and "header.next".
10002 * buffer.h (struct buffer): Likewise.
10003 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
10004 * frame.h (struct frame): Likewise.
10005 * process.h (struct Lisp_Process): Likewise.
10006 * termhooks.h (struct terminal): Likewise.
10007 * window.c (struct save_window_data, struct saved_window): Likewise.
10008 * window.h (struct window): Likewise.
10009 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
10010 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
10011 * buffer.c (init_buffer_once): Likewise.
10012 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
10013 special case.
10014 * process.c (Fformat_network_address): Use local var for size,
10015 for brevity.
10016
0df1eac5
PE
10017 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
10018
847ab9d1 10019 Make the Lisp reader and string-to-float more consistent (Bug#8525)
452f4150
PE
10020 * data.c (atof): Remove decl; no longer used or needed.
10021 (digit_to_number): Move to lread.c.
10022 (Fstring_to_number): Use new string_to_number function, to be
10023 consistent with how the Lisp reader treats infinities and NaNs.
10024 Do not assume that floating-point numbers represent EMACS_INT
10025 without losing information; this is not true on most 64-bit hosts.
10026 Avoid double-rounding errors, by insisting on integers when
10027 parsing non-base-10 numbers, as the documentation specifies.
10028 * lisp.h (string_to_number): New decl, replacing ...
10029 (isfloat_string): Remove.
bc0a5c13 10030 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
d78050d6 10031 (read1): Do not accept +. and -. as integers; this
452f4150
PE
10032 appears to have been a coding error. Similarly, do not accept
10033 strings like +-1e0 as floating point numbers. Do not report
10034 overflow for integer overflows unless the base is not 10 which
10035 means we have no simple and reliable way to continue.
10036 Break out the floating-point parsing into a new
10037 function string_to_number, so that Fstring_to_number parses
10038 floating point numbers consistently with the Lisp reader.
04f2d78b 10039 (digit_to_number): Move here from data.c. Make it static inline.
452f4150
PE
10040 (E_CHAR, EXP_INT): Remove, replacing with ...
10041 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
10042 (string_to_number): New function, replacing isfloat_string.
10043 This function checks for valid syntax and produces the resulting
10044 Lisp float number too. Rework it so that string-to-number
bc0a5c13 10045 no longer mishandles examples like "1.0e+". Use strtoumax,
d78050d6
PE
10046 so that overflow for non-base-10 numbers is reported only when
10047 there's no portable and simple way to convert to floating point.
452f4150 10048
67769ffc
PE
10049 * textprop.c (set_text_properties_1): Rewrite for clarity,
10050 and to avoid GCC warning about integer overflow.
10051
c20db43f
PE
10052 * intervals.h (struct interval): Use EMACS_INT for members
10053 where EMACS_UINT might cause problems. See
10054 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
10055 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
10056 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
10057 All uses changed.
37aa2f85
PE
10058 (offset_intervals): Tell GCC not to worry about length overflow
10059 when negating a negative length.
c20db43f 10060
2538aa2f
PE
10061 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
10062 (overrun_check_free): Likewise.
10063
f2d3008d
PE
10064 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
10065 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
10066 word size.
10067
ec8df744
PE
10068 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
10069 (gnutls_make_error): Rename local to avoid shadowing.
10070 (gnutls_emacs_global_deinit): ifdef out; not used.
10071 (Fgnutls_boot): Use const for pointer to readonly storage.
10072 Comment out unused local. Fix pointer signedness problems.
10073
640ee02d
PE
10074 * lread.c (openp): Don't stuff size_t into an 'int'.
10075 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
10076 about possible signed overflow.
10077
6048fb2a
PE
10078 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
10079 (GDK_KEY_g): Don't define if already defined.
10080 (xg_prepare_tooltip): Avoid pointer signedness problem.
10081 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
10082
fa3c87e1
PE
10083 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
10084 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
10085
2172544b
PE
10086 * xfns.c (Fx_window_property): Simplify a bit,
10087 to make a bit faster and to avoid GCC 4.6.0 warning.
10088 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
10089
9b821a21
PE
10090 * fns.c (internal_equal): Don't assume size_t fits in int.
10091
3c616cfa
PE
10092 * alloc.c (compact_small_strings): Tighten assertion a little.
10093
c2982e87
PE
10094 Replace pEd with more-general pI, and fix some printf arg casts.
10095 * lisp.h (pI): New macro, generalizing old pEd macro to other
10096 conversion specifiers. For example, use "...%"pI"d..." rather
10097 than "...%"pEd"...".
10098 (pEd): Remove. All uses replaced with similar uses of pI.
61bdb816 10099 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
c2982e87
PE
10100 * alloc.c (check_pure_size): Don't overflow by converting size to int.
10101 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
10102 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
10103 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
10104 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
10105 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
10106 64-bit hosts.
10107 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
10108 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
10109 * print.c (safe_debug_print, print_object): Likewise.
10110 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
10111 to int.
6f04d126
PE
10112 Use pI instead of if-then-else-abort. Use %p to avoid casts,
10113 avoiding the 0 flag, which is not portable.
c2982e87
PE
10114 * process.c (Fmake_network_process): Use pI to avoid cast.
10115 * region-cache.c (pp_cache): Likewise.
10116 * xdisp.c (decode_mode_spec): Likewise.
10117 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
10118 behavior on 64-bit hosts with printf arg.
6f04d126 10119 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
c2982e87
PE
10120 (x_stop_queuing_selection_requests): Likewise.
10121 (x_get_window_property): Don't truncate byte count to an 'int'
10122 when tracing.
0b432f21 10123
5e073ec7
PE
10124 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
10125 here, since it parses constructs like leading '-' and spaces,
10126 which are not wanted; and it overflows with large numbers.
10127 Instead, simply match F[0-9]+, which is what is wanted anyway.
10128
36372bf9
PE
10129 * alloc.c: Remove unportable assumptions about struct layout.
10130 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
10131 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
10132 (allocate_vectorlike, make_pure_vector): Use the new macros,
10133 plus offsetof, to remove unportable assumptions about struct layout.
10134 These assumptions hold on all porting targets that I know of, but
10135 they are not guaranteed, they're easy to remove, and removing them
10136 makes further changes easier.
10137
0b432f21
PE
10138 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
10139 This doesn't fix a bug but makes the code clearer.
bfd1c781
PE
10140 (string_overrun_cookie): Now const. Use initializers that
10141 don't formally overflow signed char, to avoid warnings.
000098c1
PE
10142 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
10143 can cause Emacs to crash when string overrun checking is enabled.
c7bda33c
PE
10144 (allocate_buffer): Don't assume sizeof (struct buffer) is a
10145 multiple of sizeof (EMACS_INT); it need not be, if
10146 alignof(EMACS_INT) < sizeof (EMACS_INT).
d0f4e1f5 10147 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
0b432f21 10148
895009e1
JB
101492011-04-26 Juanma Barranquero <lekktu@gmail.com>
10150
10151 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
10152
6a7a1b0b
TZ
101532011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
10154
10155 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
b5f869a7 10156 supposed to be handshaking. (Bug#8556)
6a7a1b0b
TZ
10157 Reported by Paul Eggert <eggert@cs.ucla.edu>.
10158
841a1577 101592011-04-26 Daniel Colascione <dan.colascione@gmail.com>
0438ce91
DC
10160
10161 * lisp.h (Qdebug): List symbol.
895009e1 10162 * eval.c (Qdebug): Restore global linkage.
0438ce91
DC
10163 * keyboard.c (debug-on-event): New variable.
10164 (handle_user_signal): Break into debugger when debug-on-event
10165 matches the current signal symbol.
10166
f2d3ba6f
DN
101672011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
10168
10169 * alloc.c (check_sblock, check_string_bytes)
10170 (check_string_free_list): Convert to standard C.
10171
42ce4c63
TZ
101722011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
10173
10174 * w32.c (emacs_gnutls_push): Fix typo.
10175
825cd63c
EZ
101762011-04-25 Eli Zaretskii <eliz@gnu.org>
10177
fb11d64d
EZ
10178 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
10179 "cast to pointer from integer of different size".
10180
825cd63c
EZ
10181 Improve doprnt and its use in verror. (Bug#8545)
10182 * doprnt.c (doprnt): Document the set of format control sequences
10183 supported by the function. Use SAFE_ALLOCA instead of always
10184 using `alloca'.
10185
10186 * eval.c (verror): Don't limit the buffer size at size_max-1, that
10187 is one byte too soon. Don't use xrealloc; instead xfree and
10188 xmalloc anew.
10189
e061a11b
TZ
101902011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
10191
10192 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
10193 callbacks stage.
10194
10195 * gnutls.c: Renamed global_initialized to
10196 gnutls_global_initialized. Added internals for the
10197 :verify-hostname-error, :verify-error, and :verify-flags
10198 parameters of `gnutls-boot' and documented those parameters in the
10199 docstring. Start callback support.
9173deec
JB
10200 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
10201 unless a fatal error occurred. Call gnutls_alert_send_appropriate
10202 on error. Return error code.
e061a11b
TZ
10203 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
10204 (emacs_gnutls_read): Likewise.
10205 (Fgnutls_boot): Return handshake error code.
10206 (emacs_gnutls_handle_error): New function.
10207 (wsaerror_to_errno): Likewise.
10208
10209 * w32.h (emacs_gnutls_pull): Add prototype.
10210 (emacs_gnutls_push): Likewise.
10211
10212 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
10213 (emacs_gnutls_push): Likewise.
10214
102152011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
10216
10217 * process.c (wait_reading_process_output): Check if GnuTLS
10218 buffered some data internally if no FDs are set for TLS
10219 connections.
10220
10221 * makefile.w32-in (OBJ2): Add gnutls.$(O).
10222 (LIBS): Link to USER_LIBS.
10223 ($(BLD)/gnutls.$(0)): New target.
10224
fa6996bc
EZ
102252011-04-24 Eli Zaretskii <eliz@gnu.org>
10226
eb35682e
EZ
10227 * xdisp.c (handle_single_display_spec): Rename the
10228 display_replaced_before_p argument into display_replaced_p, to
10229 make it consistent with the commentary. Fix typos in the
10230 commentary.
10231
e2ad650c
EZ
10232 * textprop.c (syms_of_textprop): Remove dead code.
10233 (copy_text_properties): Delete obsolete commentary about an
10234 interface that was deleted long ago. Fix typos in the description
10235 of arguments.
10236
1b2de274
EZ
10237 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
10238 to changes in oldXMenu/XMenu.h from 2011-04-16.
10239 <menu_help_message, prev_menu_help_message>: Constify.
10240 (IT_menu_make_room): menu->help_text is now `const char **';
10241 adjust.
10242
10243 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
10244 to changes in oldXMenu/XMenu.h from 2011-04-16.
10245 (struct XMenu): Declare `help_text' `const char **'.
10246
10247 * xfaces.c <Qunspecified>: Make extern again.
10248
10249 * syntax.c: Include sys/types.h before including regex.h, as
75f1671a 10250 required by POSIX.
1b2de274 10251
762b15be
EZ
10252 * doc.c (get_doc_string): Improve the format passed to `error'.
10253
10254 * doprnt.c (doprnt): Improve commentary.
10255
10256 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
10257
10258 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
10259 them with etags.
10260
f1052e5d
EZ
10261 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
10262 changes in globals.h immediately force recompilation.
762b15be
EZ
10263 (TAGS): Depend on $(CURDIR)/m/intel386.h and
10264 $(CURDIR)/s/ms-w32.h.
10265 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
f1052e5d 10266
fa6996bc
EZ
10267 * character.c (Fchar_direction): Function deleted.
10268 (syms_of_character): Don't defsubr it.
10269 <char-direction-table>: Deleted.
10270
e6c3da20
EZ
102712011-04-23 Eli Zaretskii <eliz@gnu.org>
10272
10273 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
10274 * doprnt.c: Include limits.h.
10275 (SIZE_MAX): New macro.
04f2d78b
CB
10276 (doprnt): Return a size_t value. 2nd arg is now size_t.
10277 Many local variables are now size_t instead of int or unsigned.
e6c3da20
EZ
10278 Improve overflow protection. Support `l' modifier for integer
10279 conversions. Support %l conversion. Don't assume an EMACS_INT
10280 argument for integer conversions and for %c.
10281
10282 * lisp.h (doprnt): Restore prototype.
10283
10284 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
10285 $(SRC)/character.h.
10286
10287 * Makefile.in (base_obj): Add back doprnt.o.
10288
10289 * deps.mk (doprnt.o): Add back prerequisites.
10290 (callint.o): Depend on character.h.
10291
10292 * eval.c (internal_lisp_condition_case): Include the handler
10293 representation in the error message.
10294 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
10295 when breaking from the loop.
10296
10297 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
10298
10299 * callint.c (Fcall_interactively): When displaying error message
10300 about invalid control letter, pass the character's codepoint, not
10301 a pointer to its multibyte form. Improve display of the character
10302 in octal and display also its hex code.
10303
10304 * character.c (char_string): Use %x to display the (unsigned)
10305 codepoint of an invalid character, to avoid displaying a bogus
10306 negative value.
10307
10308 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
10309 `error', not SYMBOL_NAME itself.
10310
10311 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
10312 character arguments to `error'.
10313
10314 * charset.c (check_iso_charset_parameter): Fix incorrect argument
10315 to `error' in error message about FINAL_CHAR argument. Make sure
10316 FINAL_CHAR is a character, and use %c when it is passed as
10317 argument to `error'.
10318
4ffd0d6b 103192011-04-23 Eli Zaretskii <eliz@gnu.org>
97a93095
EZ
10320
10321 * s/ms-w32.h (localtime): Redirect to sys_localtime.
10322
10323 * w32.c: Include <time.h>.
10324 (sys_localtime): New function.
10325
4ffd0d6b 103262011-04-23 Chong Yidong <cyd@stupidchicken.com>
c17819f4
CY
10327
10328 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
10329
4ffd0d6b 10330 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
aac0c6e3 10331
4ffd0d6b 103322011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
aac0c6e3 10333
4ffd0d6b
GM
10334 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
10335 zombies (Bug#8467).
aac0c6e3 10336
04c56954
EZ
103372011-04-19 Eli Zaretskii <eliz@gnu.org>
10338
10339 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
10340 gl_state.e_property when gl_state.object is Qt.
10341
10342 * insdel.c (make_gap_larger): Remove limitation of buffer size
10343 to <= INT_MAX.
10344
16a43933
CY
103452011-04-18 Chong Yidong <cyd@stupidchicken.com>
10346
10347 * xdisp.c (lookup_glyphless_char_display)
10348 (produce_glyphless_glyph): Handle cons cell entry in
10349 glyphless-char-display.
10350 (Vglyphless_char_display): Document it.
10351
10352 * term.c (produce_glyphless_glyph): Handle cons cell entry in
10353 glyphless-char-display.
10354
4581706e
CY
103552011-04-17 Chong Yidong <cyd@stupidchicken.com>
10356
10357 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
10358
10359 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
10360
10361 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
10362 definition for no-X builds.
10363
4887c6e2 103642011-04-16 Paul Eggert <eggert@cs.ucla.edu>
764430a3 10365
fd35b6f9
PE
10366 Static checks with GCC 4.6.0 and non-default toolkits.
10367
5c1ccb01
PE
10368 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
10369
006c5daa
PE
10370 * process.c (keyboard_bit_set): Define only if SIGIO.
10371 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
10372 (send_process): Repair possible setjmp clobbering.
10373
efc736d3
PE
10374 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
10375
4e2fe2e6
PE
10376 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
10377
f97334a2
PE
10378 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
10379
4e75f29d
PE
10380 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
10381 Define only if needed.
10382
90efadd1
PE
10383 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
10384 by pacifying GCC about it. Maybe it's time to retire it?
875975e9 10385 * xfaces.c (USG, __TIMEVAL__): Likewise.
90efadd1 10386
3c647824
PE
10387 * dispextern.h (struct redisplay_interface): Rename param
10388 to avoid shadowing.
e264f262 10389 * termhooks.h (struct terminal): Likewise.
761383f4 10390 * xterm.c (xembed_send_message): Likewise.
3c647824 10391
b58c5c4a
PE
10392 * insdel.c (make_gap_smaller): Define only if
10393 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
10394
cad59032
PE
10395 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
10396 it.
10397
c339dc2e
PE
10398 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
10399 so that we aren't warned about unused symbols.
10400
91a3e27b
PE
10401 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
10402
399c71d3 10403 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
7a3fb125 10404
8ffc96f5
PE
10405 * xfns.c (x_real_positions): Mark locals as initialized.
10406
eef9bc79
PE
10407 * xmenu.c (xmenu_show): Don't use uninitialized vars.
10408
098db9dd
PE
10409 * xterm.c: Fix problems found by static analysis with other toolkits.
10410 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
dda3aedd
PE
10411 (x_dispatch_event): Declare static if USE_GTK, and
10412 define if USE_GTK || USE_X_TOOLKIT.
098db9dd 10413 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
dda3aedd 10414 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
841a1577
JB
10415 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
10416 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
098db9dd 10417
eb18f6cc
PE
10418 * xmenu.c (menu_help_callback): Pointer type fixes.
10419 Use const pointers when pointing at readonly data. Avoid pointer
10420 signedness clashes.
10421 (FALSE): Remove unused macro.
10422 (update_frame_menubar): Remove unused decl.
10423
1fe72bf8
PE
10424 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
10425
60d9e1db
PE
10426 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
10427 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
10428 (single_menu_item): Rename local to avoid shadowing.
10429
39261c26
PE
10430 * keyboard.c (make_lispy_event): Remove unused local var.
10431
018c5e19
PE
10432 * frame.c, frame.h (x_get_resource_string): Bring this back, but
10433 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
10434
63d2b86e
PE
10435 * bitmaps: Change bitmaps from unsigned char back to the X11
10436 compatible char. Avoid the old compiler warnings about
10437 out-of-range initializers by using, for example, '\xab' rather
10438 than 0xab.
10439
aefd87e1
PE
10440 * xgselect.c (xgselect_initialize): Check vs interface
10441 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
10442
bf501fb9
PE
10443 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
10444
e9829fdf
PE
10445 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
10446 to read-only memory.
10447
1086c095
PE
10448 * fns.c (vector): Remove; this old hack is no longer needed.
10449
2baccd04 10450 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
401f10cb 10451 Remove unused var.
dde42981 10452 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
2baccd04 10453
72391843 10454 * xrdb.c (x_load_resources): Omit unused local.
3565b346 10455
436c16df 10456 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
8a94ea33 10457 (x_window): Rename locals to avoid shadowing.
dc5ddd85 10458 (USG): Use the kludged USG macro, to pacify gcc.
436c16df 10459
92bb796d 10460 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
bbbef9e1 10461 (x_term_init): Remove local to avoid shadowing.
92bb796d 10462
764430a3 10463 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
4887c6e2
PE
10464
10465 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
10466 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
10467
d1dfb56c
EZ
104682011-04-16 Eli Zaretskii <eliz@gnu.org>
10469
c4354cb4
EZ
10470 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
10471
d1dfb56c
EZ
10472 Fix regex.c, syntax.c and friends for buffers > 2GB.
10473 * syntax.h (struct gl_state_s): Declare character position members
10474 EMACS_INT.
10475
10476 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
10477
04f2d78b
CB
10478 * textprop.c (verify_interval_modification, interval_of):
10479 Declare arguments EMACS_INT.
d1dfb56c
EZ
10480
10481 * intervals.c (adjust_intervals_for_insertion): Declare arguments
10482 EMACS_INT.
10483
10484 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
10485
10486 * indent.c (Fvertical_motion): Local variable it_start is now
10487 EMACS_INT.
10488
10489 * regex.c (re_match, re_match_2, re_match_2_internal)
10490 (bcmp_translate, regcomp, regexec, print_double_string)
10491 (group_in_compile_stack, re_search, re_search_2, regex_compile)
10492 (re_compile_pattern, re_exec): Declare arguments and local
10493 variables `size_t' and `ssize_t' and return values `regoff_t', as
10494 appropriate.
10495 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
10496 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
10497 <compile_stack_type>: `size' and `avail' are now `size_t'.
10498
10499 * regex.h <regoff_t>: Use ssize_t, not int.
10500 (re_search, re_search_2, re_match, re_match_2): Arguments that
10501 specify buffer/string position and length are now ssize_t and
10502 size_t. Return type is regoff_t.
10503
613052cd
BK
105042011-04-16 Ben Key <bkey76@gmail.com>
10505
10506 * nsfont.m: Fixed bugs in ns_get_family and
10507 ns_descriptor_to_entity that were caused by using free to
10508 deallocate memory blocks that were allocated by xmalloc (via
10509 xstrdup). This caused Emacs to crash when compiled with
10510 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
10511 --enable-checking=xmallocoverrun). xfree is now used to
10512 deallocate these memory blocks.
10513
4170f62f 105142011-04-15 Paul Eggert <eggert@cs.ucla.edu>
3e047f51 10515
71b41406
PE
10516 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
10517
9587a89d
PE
10518 emacs_write: Accept and return EMACS_INT for sizes.
10519 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
10520 et seq.
10521 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
10522 Accept and return EMACS_INT.
10523 (emacs_gnutls_write): Return the number of bytes written on
10524 partial writes.
10525 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
273a5f82
PE
10526 (emacs_read, emacs_write): Remove check for negative size, as the
10527 Emacs source code has been audited now.
9587a89d
PE
10528 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
10529 (emacs_read, emacs_write): Use it.
273a5f82
PE
10530 * process.c (send_process): Adjust to the new signatures of
10531 emacs_write and emacs_gnutls_write. Do not attempt to store
10532 a byte offset into an 'int'; it might overflow.
9587a89d 10533 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
273a5f82 10534
3e047f51
PE
10535 * sound.c: Don't assume sizes fit in 'int'.
10536 (struct sound_device.period_size, alsa_period_size):
9c3c56a7 10537 Return EMACS_INT, not int.
3e047f51 10538 (struct sound_device.write, vox_write, alsa_write):
9c3c56a7
PE
10539 Accept EMACS_INT, not int.
10540 (wav_play, au_play): Use EMACS_INT to store sizes and to
3e047f51
PE
10541 record read return values.
10542
cc39a9db
BK
105432011-04-15 Ben Key <bkey76@gmail.com>
10544
c9d0ec6d
JB
10545 * keyboard.c (Qundefined): Don't declare static since it is used
10546 in nsfns.m.
10547 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
10548 static since they are used in nsfont.m.
cc39a9db 10549
6c60eb9f
SM
105502011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
10551
10552 * process.c (Qprocessp): Don't declare static.
10553 * lisp.h (Qprocessp): Declare again.
10554
7990b61a
JB
105552011-04-15 Juanma Barranquero <lekktu@gmail.com>
10556
10557 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
10558
5d4cb038
PE
105592011-04-14 Paul Eggert <eggert@cs.ucla.edu>
10560
8bd7b830 10561 Improve C-level modularity by making more things 'static'.
cd64ea1d 10562
e3b27b31
PE
10563 Don't publish debugger-only interfaces to other modules.
10564 * lisp.h (safe_debug_print, debug_output_compilation_hack):
10565 (verify_bytepos, count_markers): Move decls to the only modules
10566 that need them.
10567 * region-cache.h (pp_cache): Likewise.
10568 * window.h (check_all_windows): Likewise.
10569 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
10570
5d4cb038
PE
10571 * sysdep.c (croak): Now static, if
10572 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
10573 * syssignal.h (croak): Declare only if not static.
69003fd8
PE
10574
10575 * alloc.c (refill_memory_reserve): Now static if
10576 !defined REL_ALLOC || defined SYSTEM_MALLOC.
10577 * lisp.h (refill_memory_reserve): Declare only if not static.
93ea6e8f 10578
e87b6180
PE
10579 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
10580 Define only if USE_LUCID.
10581
ac64929e
PE
10582 * xrdb.c (x_customization_string, x_rm_string): Now static.
10583
6f37259d
PE
10584 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
10585 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
10586
1683e3ab
PE
10587 * xdisp.c (draw_row_with_mouse_face): Now static.
10588 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
10589
de9c2632
PE
10590 * window.h (check_all_windows): Mark externally visible.
10591
2b96acb7
PE
10592 * window.c (window_deletion_count): Now static.
10593
10594 * undo.c: Make symbols static if they're not exported.
10595 (last_undo_buffer, last_boundary_position, pending_boundary):
10596 Now static.
10597
50436f33
PE
10598 * textprop.c (interval_insert_behind_hooks): Now static.
10599 (interval_insert_in_front_hooks): Likewise.
10600
64520e5c
PE
10601 * term.c: Make symbols static if they're not exported.
10602 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
10603 (max_frame_lines, tty_set_terminal_modes):
10604 (tty_reset_terminal_modes, tty_turn_off_highlight):
10605 (get_tty_terminal): Now static.
10606 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
10607 * termhooks.h (term_mouse_moveto): Do not declare if
8bd7b830 10608 HAVE_WINDOW_SYSTEM.
64520e5c
PE
10609 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
10610 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
10611
1fa53021
PE
10612 * sysdep.c: Make symbols static if they're not exported.
10613 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
10614 Now static.
10615 (sigprocmask_set, full_mask): Remove; unused.
10616 (wait_debugging): Mark as visible.
10617 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
10618 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
10619
d4b43b22
PE
10620 * syntax.c (syntax_temp): Define only if !__GNUC__.
10621
b7c513d0
PE
10622 * sound.c (current_sound_device, current_sound): Now static.
10623
989b29ad
PE
10624 * search.c (searchbufs, searchbuf_head): Now static.
10625
13a55a78
PE
10626 * scroll.c (scroll_cost): Remove; unused.
10627 * dispextern.h (scroll_cost): Remove decl.
10628
de68a1fc
PE
10629 * region-cache.h (pp_cache): Mark as externally visible.
10630
40ccffa6
PE
10631 * process.c: Make symbols static if they're not exported.
10632 (process_tick, update_tick, create_process, chan_process):
10633 (Vprocess_alist, proc_buffered_char, datagram_access):
10634 (fd_callback_data, send_process_frame, process_sent_to): Now static.
10635 (deactivate_process): Mark defn as static, as well as decl.
10636 * lisp.h (create_process): Remove decl.
10637 * process.h (chan_process, Vprocess_alist): Remove decls.
10638
ad64fc97
PE
10639 * print.c: Make symbols static if they're not exported.
10640 (print_depth, new_backquote_output, being_printed, print_buffer):
10641 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
10642 (print_interval, print_number_index, initial_stderr_stream):
10643 Now static.
10644 * lisp.h (Fprinc): Remove decl.
10645 (debug_output_compilation_hack): Mark as externally visible.
10646
adddb265
PE
10647 * sysdep.c (croak): Move decl from here to syssignal.h.
10648 * syssignal.h (croak): Put it here, so the API can be checked when
10649 'croak' is called from dissociate_if_controlling_tty.
10650
1717ede2
PE
10651 * minibuf.c: Make symbols static if they're not exported.
10652 (minibuf_save_list, choose_minibuf_frame): Now static.
10653 * lisp.h (choose_minibuf_frame): Remove decl.
10654
fa5fb2bc
PE
10655 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
10656
1e3890d1
PE
10657 * lread.c: Make symbols static if they're not exported.
10658 (read_objects, initial_obarray, oblookup_last_bucket_number):
10659 Now static.
10660 (make_symbol): Remove; unused.
10661 * lisp.h (initial_obarray, make_symbol): Remove decls.
10662
8a1414fa
PE
10663 * keyboard.c: Make symbols static if they're not exported.
10664 (single_kboard, recent_keys_index, total_keys, recent_keys):
10665 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
10666 (this_single_command_key_start, echoing, last_auto_save):
10667 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
10668 (command_loop, echo_now, keyboard_init_hook, help_char_p):
10669 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
10670 (Vlispy_mouse_stem, double_click_count):
10671 Now static.
10672 (force_auto_save_soon): Define only if SIGDANGER.
10673 (ignore_mouse_drag_p): Now static if
10674 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
10675 (print_help): Remove; unused.
10676 (stop_character, last_timer_event): Mark as externally visible.
10677 * keyboard.h (ignore_mouse_drag_p): Declare only if
10678 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
10679 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
10680 * lisp.h (echoing): Remove decl.
10681 (force_auto_save_soon): Declare only if SIGDANGER.
10682 * xdisp.c (redisplay_window): Simplify code, to make it more
10683 obvious that ignore_mouse_drag_p is not accessed if !defined
10684 USE_GTK && !defined HAVE_NS.
10685
93ea6e8f
PE
10686 * intervals.c: Make symbols static if they're not exported.
10687 (merge_properties_sticky, merge_interval_right, delete_interval):
10688 Now static.
10689 * intervals.h (merge_interval_right, delete_interval): Remove decls.
10690
77382fcc
PE
10691 * insdel.c: Make symbols static if they're not exported.
10692 However, leave prepare_to_modify_buffer alone. It's never
10693 called from outside this function, but that appears to be a bug.
10694 (combine_after_change_list, combine_after_change_buffer):
4889fc82 10695 (adjust_after_replace, signal_before_change): Now static.
77382fcc
PE
10696 (adjust_after_replace_noundo): Remove; unused.
10697 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
4889fc82 10698 (signal_before_change): Remove decls.
77382fcc 10699
9306c32e
PE
10700 * indent.c (val_compute_motion, val_vmotion): Now static.
10701
cd44d2eb
PE
10702 * image.c: Make symbols static if they're not exported.
10703 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
10704 if USE_GTK.
10705 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
10706 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
10707
ad9a7a06
PE
10708 * fringe.c (standard_bitmaps): Now static.
10709 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
10710
81626931
PE
10711 * frame.c: Make symbols static if they're not exported.
10712 (x_report_frame_params, make_terminal_frame): Now static.
10713 (get_frame_param): Now static, unless HAVE_NS.
10714 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
10715 (x_get_resource_string): Remove; not used.
10716 * frame.h (make_terminal_frame, x_report_frame_params):
10717 (x_get_resource_string); Remove decls.
10718 (x_fullscreen_adjust): Declare only if WINDOWSNT.
10719 * lisp.h (get_frame_param): Declare only if HAVE_NS.
10720
239f9db9
PE
10721 * font.c, fontset.c: Make symbols static if they're not exported.
10722 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
10723 (FACE_SUITABLE_FOR_CHAR_P): Use it.
10724 * font.c (font_close_object): Now static.
10725 * font.h (font_close_object): Remove.
10726 * fontset.c (FONTSET_OBJLIST): Remove.
10727 (free_realized_fontset) #if-0 the body, which does nothing.
10728 (face_suitable_for_char_p): #if-0, as it's never called.
10729 * fontset.h (face_suitable_for_char_p): Remove decl.
04f2d78b
CB
10730 * xfaces.c (face_at_string_position):
10731 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
239f9db9
PE
10732 since 0 is always ASCII.
10733
dfcf3579
PE
10734 * fns.c (weak_hash_tables): Now static.
10735
5045092b
PE
10736 * fileio.c: Make symbols static if they're not exported.
10737 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
10738 (Vwrite_region_annotation_buffers): Now static.
10739
57a96f5c
PE
10740 * eval.c: Make symbols static if they're not exported.
10741 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
10742 * lisp.h (backtrace_list): Remove decl.
10743
35f08c38
PE
10744 * emacs.c: Make symbols static if they're not exported.
10745 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
10746 (fatal_error_code, fatal_error_signal_hook, standard_args):
10747 Now static.
10748 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
10749 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
10750 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
10751 * lisp.h (fatal_error_signal_hook): Remove decl.
10752 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
10753
f44bd759
PE
10754 * editfns.c: Move a (normally-unused) function to its only use.
10755 * editfns.c, lisp.h (get_operating_system_release): Remove.
10756 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
10757 worth the hassle of breaking this out.
10758
b532497d
PE
10759 * xterm.c: Make symbols static if they're not exported.
10760 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
10761 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
10762 (x_destroy_window, x_delete_display):
10763 Now static.
10764 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
10765 (x_mouse_leave): Remove; unused.
10766 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
10767 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
10768 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
10769 Remove decls.
10770 (x_mouse_leave): Declare only if WINDOWSNT.
10771 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
10772 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
10773 USE_X_TOOLKIT.
10774
1675728f
PE
10775 * ftxfont.c: Make symbols static if they're not exported.
10776 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
10777 HAVE_FREETYPE.
10778 * font.h (ftxfont_driver): Likewise.
10779
e4cebfca
PE
10780 * xfns.c: Make symbols static if they're not exported.
10781 (x_last_font_name, x_display_info_for_name):
10782 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
10783 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
10784 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
10785 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
10786 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
10787 (last_show_tip_args): Now static.
10788 (xic_defaut_fontset, xic_create_fontsetname): Define only if
10789 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
10790 (x_screen_planes): Remove; unused.
10791 * dispextern.h (x_screen_planes): Remove decl.
10792
5bf46f05
PE
10793 * dispnew.c: Make symbols static if they're not exported.
10794 * dispextern.h (redraw_garbaged_frames, scrolling):
10795 (increment_row_positions): Remove.
10796 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
10797 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
10798 Now static.
10799 (redraw_garbaged_frames): Remove; unused.
10800
435f4c28
PE
10801 * xfaces.c: Make symbols static if they're not exported.
10802 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
10803 Remove decls.
10804 * xterm.h (defined_color): Remove decls.
10805 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
10806 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
10807 (menu_face_changed_default, defined_color, free_realized_face):
10808 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
10809 (ascii_face_of_lisp_face): Remove; unused.
10810
8524aef3
PE
10811 * xdisp.c: Make symbols static if they're not exported.
10812 * dispextern.h (scratch_glyph_row, window_box_edges):
10813 (glyph_to_pixel_coords, set_cursor_from_row):
10814 (get_next_display_element, set_iterator_to_next):
10815 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
10816 (show_mouse_face): Remove decls
10817 * frame.h (message_buf_print): Likewise.
10818 * lisp.h (pop_message, set_message, check_point_in_composition):
10819 Likewise.
10820 * xterm.h (set_vertical_scroll_bar): Likewise.
10821 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
10822 (message_buf_print, scratch_glyph_row, displayed_buffer):
10823 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
10824 (get_next_display_element, show_mouse_face, window_box_edges):
10825 (frame_to_window_pixel_xy, check_point_in_composition):
10826 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
10827 (glyph_to_pixel_coords): Remove; unused.
10828
16390cd2
PE
10829 * dired.c (file_name_completion): Now static.
10830
10831 * dbusbind.c (xd_in_read_queued_messages): Now static.
10832
a25f4dfa
PE
10833 * lisp.h (circular_list_error, FOREACH): Remove; unused.
10834 * data.c (circular_list_error): Remove.
10835
14a9c8df
PE
10836 * commands.h (last_point_position, last_point_position_buffer):
10837 (last_point_position_window): Remove decls.
10838 * keyboard.c: Make these variables static.
10839
04f2d78b
CB
10840 * coding.h (coding, code_convert_region, encode_coding_gap):
10841 Remove decls.
74ab6df5
PE
10842 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
10843 (iso_code_class, detect_coding, code_convert_region): Now static.
10844 (encode_coding_gap): Remove; unused.
10845
38dfbee1
PE
10846 * chartab.c (chartab_chars, chartab_bits): Now static.
10847
a2cb4e63
PE
10848 * charset.h (charset_iso_8859_1): Remove decl.
10849 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
10850 Now static.
10851
127198fd
PE
10852 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
10853 * ccl.c (Vccl_program_table): Now static.
10854 (check_ccl_update): Remove; unused.
10855
d85b608f
PE
10856 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
10857 * category.h: ... from here.
10858 * category.c (check_category_table, set_category_set): Now static.
10859
31cd66f3
PE
10860 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
10861 * lisp.h: Remove these decls.
10862
c358e587
PE
10863 * buffer.c (buffer_count): Remove unused var.
10864
e78aecca
PE
10865 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
10866 so that it's not optimized away.
10867 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
10868 * dispextern.h (bidi_dump_cached_states): Remove, since it's
10869 exported only to the debugger.
10870
e192d7d3 10871 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
04f2d78b 10872 * atimer.h (run_all_atimers): Remove; not exported.
e192d7d3 10873
92470028
PE
10874 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
10875 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
10876 was inaccessible from Lisp.
10877 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
10878 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
10879
244ed907
PE
10880 alloc.c: Import and export fewer symbols, and remove unused items.
10881 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
10882 is defined.
10883 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
10884 it's not optimized away by whole-program optimization.
10885 (message_enable_multibyte, free_misc): Remove.
10886 (catchlist, handlerlist, mark_backtrace):
10887 Declare only if BYTE_MARK_STACK.
10888 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
10889 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
10890 (message_enable_multibyte): Remove decl.
10891 (free_misc, interval_free_list, float_block, float_block_index):
10892 (n_float_blocks, float_free_list, cons_block, cons_block_index):
10893 (cons_free_list, last_marked_index):
10894 Now static.
10895 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
10896 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
10897 (mark_backtrace): Define only if BYTE_MARK_STACK.
10898 * xdisp.c (message_enable_multibyte): Now static.
10899
61c2b50e 10900 Declare Lisp_Object Q* variables to be 'static' if not exported.
955cbe7b
PE
10901 This makes it easier for human readers (and static analyzers)
10902 to see whether these variables are used from other modules.
10903 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
10904 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
10905 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
10906 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
10907 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
10908 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
10909 * xmenu.c, xselect.c:
10910 Declare Q* vars static if they are not used in other modules.
10911 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
10912 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
10913 Remove decls of unexported vars.
10914 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
10915
95c82688
PE
10916 * lisp.h (DEFINE_FUNC): Make sname 'static'.
10917
16a97296
PE
10918 Make Emacs functions such as Fatom 'static' by default.
10919 This makes it easier for human readers (and static analyzers)
10920 to see whether these functions can be called from other modules.
10921 DEFUN now defines a static function. To make the function external
10922 so that it can be used in other C modules, use the new macro DEFUE.
8bd7b830
PE
10923 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
10924 (Finit_image_library):
16a97296
PE
10925 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
10926 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
10927 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
10928 Remove decls, since these functions are now static.
10929 (Funintern, Fget_internal_run_time): New decls, since these functions
10930 were already external.
95c82688 10931
16a97296
PE
10932 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
10933 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
10934 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
10935 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
10936 * keyboard.c, keymap.c, lread.c:
10937 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
10938 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
10939 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
10940 Mark functions with DEFUE instead of DEFUN,
10941 if they are used in other modules.
10942 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
10943 decls for now-static functions.
10944 * buffer.h (Fdelete_overlay): Remove decl.
10945 * callproc.c (Fgetenv_internal): Mark as internal.
10946 * composite.c (Fremove_list_of_text_properties): Remove decl.
10947 (Fcomposition_get_gstring): New forward static decl.
10948 * composite.h (Fcomposite_get_gstring): Remove decl.
10949 * dired.c (Ffile_attributes): New forward static decl.
10950 * doc.c (Fdocumntation_property): New forward static decl.
10951 * eval.c (Ffetch_bytecode): New forward static decl.
10952 (Funintern): Remove extern decl; now in .h file where it belongs.
10953 * fileio.c (Fmake_symbolic_link): New forward static decl.
10954 * image.c (Finit_image_library): New forward static decl.
10955 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
10956 * intervals.h (Fprevious_property_change):
10957 (Fremove_list_of_text_properties): Remove decls.
10958 * keyboard.c (Fthis_command_keys): Remove decl.
10959 (Fcommand_execute): New forward static decl.
10960 * keymap.c (Flookup_key): New forward static decl.
10961 (Fcopy_keymap): Now static.
10962 * keymap.h (Flookup_key): Remove decl.
10963 * process.c (Fget_process): New forward static decl.
10964 (Fprocess_datagram_address): Mark as internal.
10965 * syntax.c (Fsyntax_table_p): New forward static decl.
10966 (skip_chars): Remove duplicate decl.
10967 * textprop.c (Fprevious_property_change): New forward static decl.
10968 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
10969 Now internal.
10970 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
10971 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
10972
785bbd42
PE
10973 * editfns.c (Fformat): Remove unreachable code.
10974
8b913b57
AS
109752011-04-14 Andreas Schwab <schwab@linux-m68k.org>
10976
10977 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
10978 change. (Bug#8496)
10979
a6744a35
EZ
109802011-04-13 Eli Zaretskii <eliz@gnu.org>
10981
10982 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
10983 when at ZV. (Bug#8487)
10984
e7974947
AS
109852011-04-12 Andreas Schwab <schwab@linux-m68k.org>
10986
baad03f0
AS
10987 * charset.c (Fclear_charset_maps): Use xfree instead of free.
10988 (Bug#8437)
10989 * keyboard.c (parse_tool_bar_item): Likewise.
10990 * sound.c (sound_cleanup, alsa_close): Likewise.
10991 * termcap.c (tgetent): Likewise.
10992 * xfns.c (x_default_font_parameter): Likewise.
10993 * xsettings.c (read_and_apply_settings): Likewise.
10994
e7974947
AS
10995 * alloc.c (overrun_check_malloc, overrun_check_realloc)
10996 (overrun_check_free): Protoize.
10997
28272684
PE
109982011-04-12 Paul Eggert <eggert@cs.ucla.edu>
10999
11000 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
11001 since callers should never pass a negative size.
11002 Change the signature to match that of plain 'read' and 'write'; see
11003 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
11004 * lisp.h: Update prototypes of emacs_write and emacs_read.
11005
11997c76
EZ
110062011-04-11 Eli Zaretskii <eliz@gnu.org>
11007
11008 * xdisp.c (redisplay_window): Don't try to determine the character
11009 position of the scroll margin if the window start point w->startp
e896f03c 11010 is outside the buffer's accessible region. (Bug#8468)
11997c76 11011
8a2cbd72
EZ
110122011-04-10 Eli Zaretskii <eliz@gnu.org>
11013
11014 Fix write-region and its subroutines for buffers > 2GB.
11015 * fileio.c (a_write, e_write): Modify declaration of arguments and
11016 local variables to support buffers larger than 2GB.
11017 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
11018
11019 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
11020 argument, local variables, and return value.
11021
11022 * lisp.h: Update prototypes of emacs_write and emacs_read.
11023
11024 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
11025
4073e537 110262011-04-10 Paul Eggert <eggert@cs.ucla.edu>
eb3f1cc8 11027
1ebfdcb6
PE
11028 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
11029
b2ded58d
PE
11030 Fix more problems found by GCC 4.6.0's static checks.
11031
7d66342c
PE
11032 * xdisp.c (vmessage): Use a better test for character truncation.
11033
bbf47d44
PE
11034 * charset.c (load_charset_map): <, not <=, for optimization,
11035 and to avoid potential problems with integer overflow.
9248994d 11036 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
f9a68bc5 11037 * casetab.c (set_identity, shuffle): Likewise.
3ab1c7ce 11038 * editfns.c (Fformat): Likewise.
1e69125e 11039 * syntax.c (skip_chars): Likewise.
3befa583 11040
e3019616
PE
11041 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
11042 This also lets GCC 4.6.0 generate slightly better loop code.
11043
becfa255
PE
11044 * callint.c (Fcall_interactively): <, not <=, for optimization.
11045 (Fcall_interactively): Count the number of arguments produced,
11046 not the number of arguments given. This is simpler and lets GCC
11047 4.6.0 generate slightly better code.
11048
dae0cd48
PE
11049 * ftfont.c: Distingish more carefully between FcChar8 and char.
11050 The previous code passed unsigned char * to a functions like
11051 strlen and xstrcasecmp that expect char *, which does not
11052 conform to the C standard.
11053 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
11054 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
11055 char * when the C standard requires it.
11056
76032d70
PE
11057 * keyboard.c (read_char): Remove unused var.
11058
eb3f1cc8
PE
11059 * eval.c: Port to Windows vsnprintf (Bug#8435).
11060 Include <limits.h>.
11061 (SIZE_MAX): Define if the headers do not.
11062 (verror): Do not give up if vsnprintf returns a negative count.
11063 Instead, grow the buffer. This ports to Windows vsnprintf, which
11064 does not conform to C99. Problem reported by Eli Zaretskii.
11065 Also, simplify the allocation scheme, by avoiding the need for
11066 calling realloc, and removing the ALLOCATED variable.
11067
70476b54
PE
11068 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
11069
12020a9e
PE
11070 Remove invocations of doprnt, as Emacs now uses vsnprintf.
11071 But keep the doprint source code for now, as we might revamp it
11072 and use it again (Bug#8435).
ea6c7ae6
PE
11073 * lisp.h (doprnt): Remove.
11074 * Makefile.in (base_obj): Remove doprnt.o.
11075 * deps.mk (doprnt.o): Remove.
11076
5fdb398c
PE
11077 error: Print 32- and 64-bit integers portably (Bug#8435).
11078 Without this change, on typical 64-bit hosts error ("...%d...", N)
11079 was used to print both 32- and 64-bit integers N, which relied on
11080 undefined behavior.
61bdb816 11081 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
5fdb398c
PE
11082 * lisp.h (error, verror): Mark as printf-like functions.
11083 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
11084 Report overflow in size calculations when allocating printf buffer.
11085 Do not truncate output string at its first null byte.
11086 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
11087 Truncate the output at a character boundary, since vsnprintf does not
11088 do that.
11089 * charset.c (check_iso_charset_parameter): Convert internal
11090 character to string before calling 'error', since %c now has the
11091 printf meaning.
11092 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
11093 overflow when computing char to be passed to 'error'. Do not
11094 pass Lisp_Object to 'error'; pass the integer instead.
11095 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
11096 formatted with plain %d.
11097
b189fa66
PE
11098 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
11099
bff87ef0
PE
11100 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
11101
7e2cac20
PE
11102 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
11103
ce4d90b5
PE
11104 * xterm.c (x_catch_errors): Remove duplicate declaration.
11105
266c9547
PE
11106 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
11107
79c49ad2
PE
11108 * xdisp.c, lisp.h (message_nolog): Remove; unused.
11109
368f4090
JM
111102011-04-10 Jim Meyering <meyering@redhat.com>
11111
11112 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
11113 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
11114 return ssize_t not "int", and use size_t as the buffer length.
11115 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
11116 * gnutls.h: Update declarations.
11117 * process.c (read_process_output): Use ssize_t, to match.
11118 (send_process): Likewise.
11119
a32d4040
CY
111202011-04-09 Chong Yidong <cyd@stupidchicken.com>
11121
11122 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
11123
8546720e 111242011-04-09 Chong Yidong <cyd@stupidchicken.com>
aac0c6e3 11125
04f2d78b
CB
11126 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
11127 Use unsigned char, to match FcChar8 type definition.
aac0c6e3 11128
8546720e
GM
11129 * xterm.c (handle_one_xevent):
11130 * xmenu.c (create_and_show_popup_menu):
11131 * xselect.c (x_decline_selection_request)
11132 (x_reply_selection_request): Avoid type-punned deref of X events.
aac0c6e3 11133
0a2f5c1a 111342011-04-09 Eli Zaretskii <eliz@gnu.org>
a53e2e89
EZ
11135
11136 Fix some uses of `int' instead of EMACS_INT.
11137 * search.c (string_match_1, fast_string_match)
11138 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
11139 (scan_buffer, find_next_newline_no_quit)
11140 (find_before_next_newline, search_command, Freplace_match)
11141 (Fmatch_data): Make some `int' variables be EMACS_INT.
11142
11143 * xdisp.c (display_count_lines): 3rd argument and return value now
11144 EMACS_INT. All callers changed.
11145 (pint2hrstr): Last argument is now EMACS_INT.
11146
11147 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
11148 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
11149 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
11150 (decode_coding_utf_16, decode_coding_emacs_mule)
11151 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
11152 (decode_coding_ccl, decode_coding_charset)
11153 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
11154 (decode_coding_iso_2022, decode_coding_emacs_mule)
11155 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
11156 <char_offset, last_offset>: Declare EMACS_INT.
11157 (encode_coding_utf_8, encode_coding_utf_16)
11158 (encode_coding_emacs_mule, encode_invocation_designation)
11159 (encode_designation_at_bol, encode_coding_iso_2022)
11160 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
11161 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
11162 Declare EMACS_INT.
11163 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
11164 (encode_invocation_designation): Last argument P_NCHARS is now
11165 EMACS_INT.
11166 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
11167 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
11168
11169 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
11170 All users changed.
11171
11172 * ccl.c (Fccl_execute_on_string): Declare some variables
11173 EMACS_INT.
11174
8546720e 111752011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
0080dc6b
SS
11176
11177 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
11178
4e19a977
CS
111792011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
11180
11181 * process.c (Fformat_network_address): Doc fix.
11182
87302331
R
111832011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
11184
ee7683eb 11185 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
87302331 11186
cbb59342
CY
111872011-04-08 Chong Yidong <cyd@stupidchicken.com>
11188
11189 * keyboard.c (read_char): Call Lisp function help-form-show,
11190 instead of using internal_with_output_to_temp_buffer.
11191 (Qhelp_form_show): New var.
e0d38eeb 11192 (syms_of_keyboard): Use DEFSYM macro.
cbb59342
CY
11193
11194 * print.c (internal_with_output_to_temp_buffer): Function deleted.
11195
11196 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
11197
e67a13ab
CY
111982011-04-06 Chong Yidong <cyd@stupidchicken.com>
11199
04f2d78b
CB
11200 * process.c (Flist_processes): Remove to Lisp.
11201 (list_processes_1): Delete.
e67a13ab 11202
973f782d
EZ
112032011-04-06 Eli Zaretskii <eliz@gnu.org>
11204
7c106b1e
EZ
11205 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
11206
973f782d
EZ
11207 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
11208
41cf7d1a 112092011-04-06 Paul Eggert <eggert@cs.ucla.edu>
27ccc379 11210
ca23cc88
PE
11211 Fix more problems found by GCC 4.6.0's static checks.
11212
f390e2d5
PE
11213 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
11214
42eea0d0
PE
11215 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
11216
b69769da 11217 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
1e973bc7 11218
f9541e84
PE
11219 * xdisp.c (vmessage): Mark as a printf-like function.
11220
13841b55
PE
11221 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
11222
c136c10f
PE
11223 * sound.c (sound_warning): Don't crash if arg contains a printf format.
11224
5e2d4a30
PE
11225 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
11226 printf-like functions.
11227 (tiff_load): Add casts to remove these marks before passing them
11228 to system-supplied API.
11229
583f48b9
PE
11230 * eval.c (Fsignal): Remove excess argument to 'fatal'.
11231
b25d760e
PE
11232 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
11233 This avoids several warnings with gcc -Wstrict-overflow.
d5efd1d1
PE
11234 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
11235 directly, rather than having caller test rule sign. This avoids
11236 some unnecessary tests.
11237 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
11238 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
11239 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
b25d760e 11240
bc7b6697 11241 * xfont.c (xfont_text_extents): Remove var that was set but not used.
625a3eb1 11242 (xfont_open): Avoid unnecessary tests.
bc7b6697 11243
27ccc379
PE
11244 * composite.c (composition_gstring_put_cache): Use unsigned integer.
11245
dcd5c89a
PE
11246 * composite.h, composite.c (composition_gstring_put_cache):
11247 Use EMACS_INT, not int, for length.
11248
b13a45c6
PE
11249 * composite.h (COMPOSITION_DECODE_REFS): New macro,
11250 breaking out part of COMPOSITION_DECODE_RULE.
11251 (COMPOSITION_DECODE_RULE): Use it.
11252 * composite.c (get_composition_id): Remove unused local vars,
11253 by using the new macro.
11254
1e792e4d
PE
11255 * textprop.c (set_text_properties_1): Change while to do-while,
11256 since the condition is always true at first.
11257
dc6c6455 11258 * intervals.c (graft_intervals_into_buffer): Mark var as used.
aa86731f
PE
11259 (interval_deletion_adjustment): Return unsigned value.
11260 All uses changed.
dc6c6455 11261
aba7731a
PE
11262 * process.c (list_processes_1, create_pty, read_process_output):
11263 (exec_sentinel): Remove vars that were set but not used.
afd4052b 11264 (create_pty): Remove unnecessary "volatile"s.
bc57d757 11265 (Fnetwork_interface_info): Avoid possibility of int overflow.
82eaa333 11266 (read_process_output): Do adaptive read buffering even if carryover.
fe07cdfa 11267 (read_process_output): Simplify nbytes computation if buffered.
aba7731a 11268
fdfc4bf3
PE
11269 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
11270
fca8fe46 11271 * syntax.c (scan_words): Remove var that was set but not used.
12cbf13f 11272 (update_syntax_table): Use unsigned instead of int.
fca8fe46 11273
06a0259a 11274 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
3c346cc3 11275 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
e6eb4e9e 11276 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
06a0259a 11277
e7b9e80f
PE
11278 * print.c (print_error_message): Avoid int overflow.
11279
56201685
PE
11280 * font.c (font_list_entities): Redo for clarity,
11281 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
11282
78834453 11283 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
790771b1 11284 (font_score): Avoid potential overflow in diff calculation.
78834453 11285
0bc0b309 11286 * fns.c (substring_both): Remove var that is set but not used.
8cd55cb4 11287 (sxhash): Redo loop for clarity and to avoid wraparound warning.
0bc0b309 11288
e610eaca
PE
11289 * eval.c (funcall_lambda): Rename local to avoid shadowing.
11290
b895abce
PE
11291 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
11292 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
11293 can always succeed if overflow has undefined behavior.
11294
1f1d9321 11295 * search.c (boyer_moore, wordify): Remove vars set but not used.
6f076cc7 11296 (wordify): Omit three unnecessary tests.
1f1d9321 11297
c59478bc
PE
11298 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
11299 All callers changed. This avoids the need for an unused var.
11300
79b73827
PE
11301 * casefiddle.c (casify_region): Remove var that is set but not used.
11302
a4db5dfe
PE
11303 * dired.c (file_name_completion): Remove var that is set but not used.
11304
43aae36e
PE
11305 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
11306
2a47c44d 11307 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
163c5f32 11308 (Finsert_file_contents): Remove unnecessary code checking fd.
2a47c44d 11309
a37c69bf
PE
11310 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
11311 Check for integer overflow on size calculations.
11312
328ab8e7
PE
11313 * buffer.c (Fprevious_overlay_change): Remove var that is set
11314 but not used.
11315
e5a2a5cb
PE
11316 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
11317 Remove vars that are set but not used.
8d84a6eb 11318 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
6b043475 11319 (timer_check_2): Mark vars as initialized.
e5a2a5cb 11320
a60e5f68
PE
11321 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
11322
f661cb61 11323 * image.c (lookup_image): Remove var that is set but not used.
35fa624f 11324 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
f661cb61 11325
f0397f5a
PE
11326 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
11327 that are set but not used.
11328
8664db06 11329 * xfns.c (make_invisible_cursor): Don't return garbage
03733ee7 11330 if XCreateBitmapFromData fails (Bug#8410).
8664db06 11331
6abdaa4a
PE
11332 * xselect.c (x_get_local_selection, x_handle_property_notify):
11333 Remove vars that are set but not used.
11334
0ce7538d 11335 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
6abdaa4a 11336 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
0ce7538d 11337
9ae848fc
PE
11338 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
11339 Remove var that is set but not used.
0b918413
PE
11340 (scroll_bar_windows_size): Now size_t, not int.
11341 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
11342 Check for overflow.
9ae848fc 11343
a5a62657
PE
11344 * xfaces.c (realize_named_face): Remove vars that are set but not used.
11345 (map_tty_color) [!defined MSDOS]: Likewise.
11346
5c5cdd39
PE
11347 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
11348
66ebf983
PE
11349 * coding.c: Remove vars that are set but not used.
11350 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
11351 All callers changed.
11352 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
11353 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
11354 (decode_coding_charset): Remove vars that are set but not used.
11355
1be4d761
PE
11356 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
11357 that is set but not used.
11358
47553fa8
PE
11359 * print.c (print_object): Remove var that is set but not used.
11360
1f7196bf 11361 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
d1fdcab7
PE
11362 The gnulib version avoids calling malloc in the usual case,
11363 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
11364 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
11365 * filelock.c (current_lock_owner): Likewise.
11366 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
11367 * sysdep.c: Include allocator.h, careadlinkat.h.
11368 (emacs_no_realloc_allocator): New static constant.
11369 (emacs_readlink): New function.
fdb61804
PE
11370 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
11371 ../lib/careadlinkat.h.
d1fdcab7 11372
f84c17c7
SM
113732011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
11374
11375 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
11376 first non-nil return value).
11377
ef3862ad
JD
113782011-04-03 Jan Djärv <jan.h.d@swipnet.se>
11379
11380 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
11381 if not defined (Bug#8403).
11382
376a7006
JB
113832011-04-02 Juanma Barranquero <lekktu@gmail.com>
11384
11385 * xdisp.c (display_count_lines): Remove parameter `start',
11386 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
11387 (get_char_face_and_encoding): Remove parameter `multibyte_p',
11388 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
11389 (fill_stretch_glyph_string): Remove parameters `row' and `area',
11390 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
11391 and thereabouts. All callers changed.
11392 (get_per_char_metric): Remove parameter `f', unused since
11393 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
11394
6ca3801d
JM
113952011-04-02 Jim Meyering <meyering@redhat.com>
11396
11397 do not dereference NULL upon failed strdup
11398 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
11399 (ns_get_family): Likewise.
11400
d8e2b5ba
JB
114012011-04-02 Juanma Barranquero <lekktu@gmail.com>
11402
11403 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
11404
8c74fcbd
JD
114052011-04-02 Jan Djärv <jan.h.d@swipnet.se>
11406
11407 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
11408 later (Bug#8403).
11409
7200d79c
SM
114102011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
11411
03408648 11412 Add lexical binding.
7200d79c 11413
03408648
SM
11414 * window.c (Ftemp_output_buffer_show): New fun.
11415 (Fsave_window_excursion):
11416 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
11417
11418 * lread.c (lisp_file_lexically_bound_p): New function.
11419 (Fload): Bind Qlexical_binding.
11420 (readevalloop): Remove `evalfun' arg.
11421 Bind Qinternal_interpreter_environment.
11422 (Feval_buffer): Bind Qlexical_binding.
11423 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
11424 Mark as dynamic.
11425 (syms_of_lread): Declare `lexical-binding'.
11426
11427 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
11428
11429 * keyboard.c (eval_dyn): New fun.
11430 (menu_item_eval_property): Use it.
ca105506
SM
11431
11432 * image.c (parse_image_spec): Use Ffunctionp.
ca105506 11433
03408648
SM
11434 * fns.c (concat, mapcar1): Accept byte-code-functions.
11435
11436 * eval.c (Fsetq): Handle lexical vars.
11437 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
11438 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
11439 (FletX, Flet): Obey lexical binding.
11440 (Fcommandp): Handle closures.
11441 (Feval): New `lexical' arg.
11442 (eval_sub): New function extracted from Feval. Use it almost
11443 everywhere where Feval was used. Look up vars in lexical env.
11444 Handle closures.
11445 (Ffunctionp): Move from subr.el.
11446 (Ffuncall): Handle closures.
11447 (apply_lambda): Remove `eval_flags'.
11448 (funcall_lambda): Handle closures and new byte-code-functions.
11449 (Fspecial_variable_p): New function.
11450 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
11451 but without exporting it to Lisp.
23aba0ea 11452
23aba0ea 11453 * doc.c (Fdocumentation, store_function_docstring):
03408648 11454 * data.c (Finteractive_form): Handle closures.
23aba0ea 11455
03408648
SM
11456 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
11457 interactive spec.
ba83908c 11458
04f2d78b
CB
11459 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
11460 New byte-codes.
03408648
SM
11461 (exec_byte_code): New function extracted from Fbyte_code to handle new
11462 calling convention for byte-code-functions. Add new byte-codes.
ba83908c 11463
03408648 11464 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
e2abe5a1 11465
03408648 11466 * alloc.c (Fmake_symbol): Init new `declared_special' field.
e2abe5a1 11467
e2abce01
JB
114682011-03-31 Juanma Barranquero <lekktu@gmail.com>
11469
11470 * xdisp.c (redisplay_internal): Fix prototype.
11471
63696a73 114722011-03-31 Eli Zaretskii <eliz@gnu.org>
09725d26 11473
63696a73 11474 * xdisp.c (SCROLL_LIMIT): New macro.
04f2d78b
CB
11475 (try_scrolling): Use it when setting scroll_limit.
11476 Limit scrolling to 100 screen lines.
63696a73
EZ
11477 (redisplay_window): Even when falling back on "recentering",
11478 position point in the window according to scroll-conservatively,
11479 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
11480
11481 (try_scrolling): When point is above the window, allow searching
11482 as far as scroll_max, or one screenful, to compute vertical
11483 distance from PT to the scroll margin position. This prevents
11484 try_scrolling from unnecessarily failing when
11485 scroll-conservatively is set to a value slightly larger than the
11486 window height. Clean up the case of PT below the margin at bottom
11487 of window: scroll_max can no longer be INT_MAX. When aggressive
11488 scrolling is in use, don't let point enter the opposite scroll
11489 margin as result of the scroll.
11490 (syms_of_xdisp) <scroll-conservatively>: Document the
09725d26
EZ
11491 threshold of 100 lines for never-recentering scrolling.
11492
e4cc2dfc
JB
114932011-03-31 Juanma Barranquero <lekktu@gmail.com>
11494
11495 * dispextern.h (move_it_by_lines):
11496 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
11497 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
11498 (message_log_check_duplicate): Remove parameters `prev_bol' and
11499 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
11500 (redisplay_internal): Remove parameter `preserve_echo_area',
11501 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
11502
11503 * indent.c (Fvertical_motion):
11504 * window.c (window_scroll_pixel_based, Frecenter):
11505 Don't pass `need_y_p' to `move_it_by_lines'.
11506
1c470562
SM
115072011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
11508
44f230aa
SM
11509 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
11510 steal a few bits to be more compact.
11511 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
11512 Remove unneeded casts.
11513
1c470562
SM
11514 * bytecode.c (Fbyte_code): CAR and CDR can GC.
11515
888adce9
ZK
115162011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
11517
11518 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
11519 binding" message (bug#7967).
11520
f838ed7b
PE
115212011-03-30 Paul Eggert <eggert@cs.ucla.edu>
11522
77861b95
PE
11523 Fix more problems found by GCC 4.6.0's static checks.
11524
de6dbc14
PE
11525 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
11526 Remove unused local var.
11527
f838ed7b
PE
11528 * editfns.c (Fmessage_box): Remove unused local var.
11529
792c7b2b
PE
11530 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
11531 (note_mode_line_or_margin_highlight, note_mouse_highlight):
11532 Omit unused local vars.
c499e557 11533 * window.c (shrink_windows): Omit unused local var.
b01a1c29 11534 * menu.c (digest_single_submenu): Omit unused local var.
0bc32927
PE
11535 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
11536 Omit unused local var.
11537
ba0165e1
PE
11538 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
11539 Don't assume string length fits in int.
32ad8845 11540 (keyremap_step, read_key_sequence): Use size_t for sizes.
48011560 11541 (read_key_sequence): Don't check last_real_key_start redundantly.
ba0165e1 11542
3c59b4c9
PE
11543 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
11544 instead of alloca (Bug#8344).
11545
a3eed478 11546 * eval.c (Fbacktrace): Don't assume nargs fits in int.
5d5d959d 11547 (Fbacktrace_frame): Don't assume nframes fits in int.
a3eed478 11548
eb4d412d
PE
11549 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
11550
1658b401
PE
11551 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
11552 concerns.
11553
11554 * term.c (produce_glyphless_glyph): Remove unnecessary test.
11555
11556 * cm.c (calccost): Turn while-do into do-while, for clarity.
44f730c8 11557
9a2c6e05
PE
11558 * keyboard.c (syms_of_keyboard): Use the same style as later
11559 in this function when indexing through an array. This also
11560 works around GCC bug 48267.
11561
03d0a109
PE
11562 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
11563
44f730c8
PE
11564 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
11565
fe75f926
PE
11566 * chartab.c (sub_char_table_ref_and_range): Redo for slight
11567 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
11568
ffa8c828
PE
11569 * keyboard.c, keyboard.h (num_input_events): Now size_t.
11570 This avoids undefined behavior on integer overflow, and is a bit
11571 more convenient anyway since it is compared to a size_t variable.
11572
c5101a77
PE
11573 Variadic C functions now count arguments with size_t, not int.
11574 This avoids an unnecessary limitation on 64-bit machines, which
11575 caused (substring ...) to crash on large vectors (Bug#8344).
11576 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
11577 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
77861b95 11578 All variadic functions and their callers changed accordingly.
c5101a77
PE
11579 (struct gcpro.nvars): Now size_t, not int. All uses changed.
11580 * data.c (arith_driver, float_arith_driver): Likewise.
11581 * editfns.c (general_insert_function): Likewise.
11582 * eval.c (struct backtrace.nargs, interactive_p)
11583 (internal_condition_case_n, run_hook_with_args, apply_lambda)
11584 (funcall_lambda, mark_backtrace): Likewise.
11585 * fns.c (concat): Likewise.
11586 * frame.c (x_set_frame_parameters): Likewise.
11587 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
11588 0 if not found, not -1. All callers changed.
11589
dd3f25f7
PE
11590 * alloc.c (garbage_collect): Don't assume stack size fits in int.
11591 (stack_copy_size): Now size_t, not int.
11592 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
11593
461c2ab9
JB
115942011-03-28 Juanma Barranquero <lekktu@gmail.com>
11595
11596 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
11597 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
11598 All callers changed.
11599
11600 * lisp.h (multibyte_char_to_unibyte):
11601 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
11602 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
11603 * character.h (CHAR_TO_BYTE8):
11604 * cmds.c (internal_self_insert):
11605 * editfns.c (general_insert_function):
11606 * keymap.c (push_key_description):
11607 * search.c (Freplace_match):
11608 * xdisp.c (message_dolog, set_message_1): All callers changed.
11609
f6d62986
SM
116102011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
11611
11612 * keyboard.c (safe_run_hook_funcall): New function.
11613 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
11614 don't set the hook to nil, but remove the offending function instead.
11615 (Qcommand_hook_internal): Remove, unused.
11616 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
11617 Vcommand_hook_internal.
11618
11619 * eval.c (enum run_hooks_condition): Remove.
11620 (funcall_nil, funcall_not): New functions.
11621 (run_hook_with_args): Call each function through a `funcall' argument.
11622 Remove `cond' argument, now redundant.
11623 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
11624 (Frun_hook_with_args_until_failure): Adjust accordingly.
11625 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
11626
1db5b1ad
JB
116272011-03-28 Juanma Barranquero <lekktu@gmail.com>
11628
11629 * dispextern.h (string_buffer_position): Remove declaration.
11630
11631 * print.c (strout): Remove parameter `multibyte', unused since
11632 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
11633
11634 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
11635 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
11636 All callers changed.
11637
11638 * w32.c (_wsa_errlist): Use braces for struct initializers.
11639
11640 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
11641 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
11642 All callers changed.
11643 (string_buffer_position): Likewise. Also, make static (it's never
11644 used outside xdisp.c).
11645 (cursor_row_p): Remove parameter `w', unused since
11646 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
11647 (decode_mode_spec): Remove parameter `precision', introduced during
11648 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
11649 All callers changed.
11650
5ffb62aa
JD
116512011-03-27 Jan Djärv <jan.h.d@swipnet.se>
11652
11653 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
11654
461c2ab9 116552011-03-27 Anders Lindgren <andlind@gmail.com>
f0a1382a
JD
11656
11657 * nsterm.m (ns_menu_bar_is_hidden): New variable.
11658 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
11659 (ns_update_auto_hide_menu_bar): New functions.
11660 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
11661 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
11662 ns_constrain_all_frames.
11663 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
11664 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
11665
5c380ffb
JD
116662011-03-27 Jan Djärv <jan.h.d@swipnet.se>
11667
11668 * nsmenu.m (runDialogAt): Remove argument to timer_check.
11669
9af30bdf
GM
116702011-03-27 Glenn Morris <rgm@gnu.org>
11671
11672 * syssignal.h: Replace RETSIGTYPE with void.
11673 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
11674 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
11675 Replace SIGTYPE with void everywhere.
11676 * s/usg5-4-common.h (SIGTYPE): Remove definition.
11677 * s/template.h (SIGTYPE): Remove commented out definition.
11678
e2abce01
JB
116792011-03-26 Eli Zaretskii <eliz@gnu.org>
11680
11681 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
11682 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
11683
f868cd8a
JB
116842011-03-26 Juanma Barranquero <lekktu@gmail.com>
11685
59eb0929
JB
11686 * w32.c (read_unc_volume): Use parameter `henum', instead of
11687 global variable `wget_enum_handle'.
11688
11689 * keymap.c (describe_vector): Remove parameters `indices' and
11690 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
11691 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
11692
f868cd8a
JB
11693 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
11694
11695 * keyboard.c (timer_check): Remove parameter `do_it_now',
11696 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
11697 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
11698 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
11699
11700 * keyboard.c (read_char):
11701 * w32menu.c (w32_menu_display_help):
11702 * xmenu.c (show_help_event, menu_help_callback):
11703 Adjust calls to `show_help_echo'.
11704
11705 * gtkutil.c (xg_maybe_add_timer):
11706 * keyboard.c (readable_events):
11707 * process.c (wait_reading_process_output):
11708 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
11709
11710 * insdel.c (adjust_markers_gap_motion):
11711 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
11712 (gap_left, gap_right): Don't call it.
11713
2ecf6fdb
CY
117142011-03-25 Chong Yidong <cyd@stupidchicken.com>
11715
11716 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
11717 incurred during fontification.
11718
6b1f9ba4
JB
117192011-03-25 Juanma Barranquero <lekktu@gmail.com>
11720
11721 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
11722 (DEFVAR_PER_BUFFER): Don't pass it.
11723
11724 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
11725 (scrolling_window): Don't pass it.
11726
0f4a96b5
JB
117272011-03-25 Juanma Barranquero <lekktu@gmail.com>
11728
11729 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
11730
11731 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
11732 and `suffix'.
11733 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
11734 of variables specific to SELinux and computation of `encoded_absname'.
11735
11736 * image.c (XPutPixel): Remove unused variable `height'.
11737
11738 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
11739
11740 * unexw32.c (get_section_info): Remove unused variable `section'.
11741
11742 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
11743 (system_process_attributes): Remove unused variable `sess'.
11744 (sys_read): Remove unused variable `err'.
11745
11746 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
11747 (w32_wnd_proc): Remove unused variable `isdead'.
11748 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
11749 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
11750 (x_create_tip_frame): Remove unused variable `tem'.
11751
11752 * w32inevt.c (w32_console_read_socket):
11753 Remove unused variable `no_events'.
11754
11755 * w32term.c (x_draw_composite_glyph_string_foreground):
11756 Remove unused variable `width'.
11757
1149507c
JB
117582011-03-24 Juanma Barranquero <lekktu@gmail.com>
11759
11760 * w32term.c (x_set_glyph_string_clipping):
11761 Don't pass uninitialized region to CombineRgn.
11762
9c88f339
JB
117632011-03-23 Juanma Barranquero <lekktu@gmail.com>
11764
11765 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
11766 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
11767 (Fx_close_connection): Remove unused variable `i'.
11768
11769 * w32font.c (w32font_draw): Return number of glyphs.
11770 (w32font_open_internal): Remove unused variable `i'.
11771 (w32font_driver): Add missing initializer.
11772
11773 * w32menu.c (utf8to16): Remove unused variable `utf16'.
11774 (fill_in_menu): Remove unused variable `items_added'.
11775
11776 * w32term.c (last_mouse_press_frame): Remove static global variable.
11777 (w32_clip_to_row): Remove unused variable `f'.
11778 (x_delete_terminal): Remove unused variable `i'.
11779
11780 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
11781 (NOTHING): Remove unused static global variable.
11782 (uniscribe_check_otf): Remove unused variable `table'.
11783 (uniscribe_font_driver): Add missing initializers.
11784
dee091a3
JD
117852011-03-23 Julien Danjou <julien@danjou.info>
11786
11787 * term.c (Fsuspend_tty, Fresume_tty):
11788 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
11789 * window.c (temp_output_buffer_show):
11790 * insdel.c (signal_before_change):
11791 * frame.c (Fhandle_switch_frame):
11792 * fileio.c (Fdo_auto_save):
11793 * emacs.c (Fkill_emacs):
11794 * editfns.c (save_excursion_restore):
11795 * cmds.c (internal_self_insert):
11796 * callint.c (Fcall_interactively):
11797 * buffer.c (Fkill_all_local_variables):
11798 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
11799 Use Frun_hooks.
0f4a96b5 11800 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
e9fce1ac 11801 unconditionally since it does the check itself.
dee091a3 11802
2c520ab5 118032011-03-23 Paul Eggert <eggert@cs.ucla.edu>
f0641eff 11804
c9c49752
PE
11805 Fix more problems found by GCC 4.5.2's static checks.
11806
8abc3f12
PE
11807 * coding.c (encode_coding_raw_text): Avoid unnecessary test
11808 the first time through the loop, since we know p0 < p1 then.
11809 This also avoids a gcc -Wstrict-overflow warning.
11810
a2d26660
PE
11811 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
11812 leading to a memory leak, possible in functions like
11813 load_charset_map_from_file that can allocate an unbounded number
b12ef411 11814 of objects (Bug#8318).
a2d26660 11815
916c72e9
PE
11816 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
11817 that could (at least in theory) be that large.
11818
19ab8a18
PE
11819 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
11820 This is less likely to overflow, and avoids undefined behavior if
11821 overflow does occur. All callers changed. Use strtoul to scan
11822 for the unsigned long integer.
b7cbbd6f
PE
11823 (pint2hrstr): Simplify and tune code slightly.
11824 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
19ab8a18 11825
f0641eff
PE
11826 * scroll.c (do_scrolling): Work around GCC bug 48228.
11827 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
11828
7f650bb9
PE
11829 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
11830 This also avoids a warning with gcc -Wstrict-overflow.
39f5e519
PE
11831 (validate_x_resource_name): Simplify count usage.
11832 This also avoids a warning with gcc -Wstrict-overflow.
7f650bb9 11833
37dd57d1
PE
11834 * fileio.c (Fcopy_file): Report error if fchown or fchmod
11835 fail (Bug#8306).
81e56e61 11836
699979fc 11837 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
dc1ca6a8 11838
401bf9b4
PE
11839 * process.c (Fmake_network_process): Use socklen_t, not int,
11840 where POSIX says socklen_t is required in portable programs.
11841 This fixes a porting bug on hosts like 64-bit HP-UX, where
591b2973 11842 socklen_t is wider than int (Bug#8277).
401bf9b4
PE
11843 (Fmake_network_process, server_accept_connection):
11844 (wait_reading_process_output, read_process_output):
11845 Likewise.
11846
b93aacde
PE
11847 * process.c: Rename or move locals to avoid shadowing.
11848 (list_processes_1, Fmake_network_process):
11849 (read_process_output_error_handler, exec_sentinel_error_handler):
11850 Rename or move locals.
4dc343ee 11851 (Fmake_network_process): Define label "retry_connect" only if needed.
0da49335 11852 (Fnetwork_interface_info): Fix pointer signedness.
f990b4e5 11853 (process_send_signal): Add cast to avoid pointer signedness problem.
7b808126 11854 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
c939f91b 11855 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
b93aacde 11856
af8a867c 11857 Make tparam.h and terminfo.c consistent.
44f230aa
SM
11858 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
11859 Include tparam.h instead, since it declares them.
af8a867c
PE
11860 * cm.h (PC): Remove extern decl; tparam.h now does this.
11861 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
11862 * terminfo.c: Include tparam.h, to check interfaces.
11863 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
11864 (tparam): Adjust signature to match interface in tparam.h;
11865 this removes some undefined behavior. Check that outstring and len
11866 are zero, which they always are with Emacs.
11867 * tparam.h (PC, BC, UP): New extern decls.
11868
0248044d 11869 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
001a7ab4 11870 (xftfont_open): Rename locals to avoid shadowing.
0248044d 11871
8ff096c1 11872 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
a00924bb
PE
11873 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
11874 (OTF_TAG_SYM): Omit macro if not needed.
e932860f 11875 (ftfont_list): Remove unused local.
49eaafba
PE
11876 (get_adstyle_property, ftfont_pattern_entity):
11877 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
11878 Rename locals to avoid shadowing.
8ff096c1 11879
e2be39f6
PE
11880 * xfont.c (xfont_list_family): Mark var as initialized.
11881
c9735e30
PE
11882 * xml.c (make_dom): Now static.
11883
8f5201ae
PE
11884 * composite.c (composition_compute_stop_pos): Rename local to
11885 avoid shadowing.
b246f932
PE
11886 (composition_reseat_it): Remove unused locals.
11887 (find_automatic_composition, composition_adjust_point): Likewise.
80e079b2 11888 (composition_update_it): Mark var as initialized.
11b61122
PE
11889 (find_automatic_composition): Mark vars as initialized,
11890 with a FIXME (Bug#8290).
8f5201ae 11891
760fbc2c
PE
11892 character.h: Rename locals to avoid shadowing.
11893 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
11894 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
11895 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
11896 (BUF_DEC_POS): Be more systematic about renaming local temporaries
11897 to avoid shadowing.
11898
ff08eb85
PE
11899 * textprop.c (property_change_between_p): Remove; unused.
11900
fc7bf025
PE
11901 * intervals.c (interval_start_pos): Now static.
11902
235d7abc
PE
11903 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
11904
44f230aa
SM
11905 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
11906 Rename locals to avoid shadowing.
3e7d6594 11907
50060332
PE
11908 * sound.c (wav_play, au_play, Fplay_sound_internal):
11909 Fix pointer signedness.
d01f234b 11910 (alsa_choose_format): Remove unused local var.
c83b8872
PE
11911 (wav_play): Initialize a variable to 0, to prevent undefined
11912 behavior (Bug#8278).
50060332 11913
c4fc4e30
PE
11914 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
11915
918436ed
PE
11916 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
11917
c939f91b
PE
11918 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
11919 clobbering (Bug#8298).
b9c7f648
PE
11920 * sysdep.c (sys_subshell): Likewise.
11921 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
7e9123a2 11922
6bd8c144
PE
11923 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
11924 This should get cleaned up, so that child_setup has the
11925 same signature on all platforms.
11926
7710357c 11927 * callproc.c (call_process_cleanup): Now static.
cb1d0ef7 11928 (relocate_fd): Rename locals to avoid shadowing.
7710357c 11929
c59da222
CY
119302011-03-22 Chong Yidong <cyd@stupidchicken.com>
11931
11932 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
11933 not to be necessary, and produces flickering.
11934
66b87493
GM
119352011-03-20 Glenn Morris <rgm@gnu.org>
11936
11937 * config.in: Remove file.
11938
45b6f6d5
JB
119392011-03-20 Juanma Barranquero <lekktu@gmail.com>
11940
11941 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
11942 are now in src/globals.h.
11943 (syms_of_minibuf): Remove spurious & from previous change.
11944
cd394be1 119452011-03-20 Leo Liu <sdl.web@gmail.com>
3ec03f7e
LL
11946
11947 * minibuf.c (completing-read-function): New variable.
11948 (completing-read-default): Rename from completing-read.
11949 (completing-read): Call completing-read-function.
11950
b14e3e21
CY
119512011-03-19 Juanma Barranquero <lekktu@gmail.com>
11952
11953 * xfaces.c (Fx_load_color_file):
11954 Read color file from absolute filename (bug#8250).
11955
f2b726e6
JB
119562011-03-19 Juanma Barranquero <lekktu@gmail.com>
11957
11958 * makefile.w32-in: Update dependencies.
11959
09f6ff02
EZ
119602011-03-17 Eli Zaretskii <eliz@gnu.org>
11961
11962 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
11963
29a6015a
PE
119642011-03-17 Paul Eggert <eggert@cs.ucla.edu>
11965
a3a6c54e
PE
11966 Fix more problems found by GCC 4.5.2's static checks.
11967
b766f867
PE
11968 * process.c (make_serial_process_unwind, send_process_trap):
11969 (sigchld_handler): Now static.
11970
be02381c
PE
11971 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
11972 That way, the code declares only the vars that it needs.
11973 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
11974 * s/cygwin.h (PTY_ITERATION): Likewise.
11975 * s/darwin.h (PTY_ITERATION): Likewise.
11976 * s/gnu-linux.h (PTY_ITERATION): Likewise.
11977
57048744
PE
11978 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
11979 * process.c (allocate_pty): Don't declare stb unless it's needed.
11980
7914961c 11981 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
615f2d59
PE
11982 (CONSTANTLIM): Remove; unused.
11983 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
11984 Define only if needed.
7914961c 11985
b3967b18
PE
11986 * unexelf.c (unexec): Name an expression,
11987 to avoid gcc -Wbad-function-cast warning.
9ae71512
PE
11988 Use a different way to cause a compilation error if anyone uses
11989 n rather than nn, a way that does not involve shadowing.
73366a00 11990 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
b3967b18 11991
29a6015a
PE
11992 * deps.mk (unexalpha.o): Remove; unused.
11993
43cfc33e 11994 New file unexec.h, the (simple) interface for unexec (Bug#8267).
7feda0d2 11995 * unexec.h: New file.
ce701a33
PE
11996 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
11997 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
11998 Depend on unexec.h.
11999 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
12000 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
12001 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
381259ef 12002 Change as necessary to match prototype in unexec.h.
ce701a33 12003
01f44d5a
PE
12004 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
12005 shadowing.
4f63c6bb 12006 (back_comment, skip_chars): Mark vars as initialized.
01f44d5a 12007
a6670b0b
PE
12008 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
12009 Rename locals to avoid shadowing.
12010
cef2010d 12011 * lread.c (read1): Rewrite so as not to use empty "else".
0902fe45 12012 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
cef2010d 12013
d4d7173a
PE
12014 * print.c (Fredirect_debugging_output): Fix pointer signedess.
12015
f08b802a
PE
12016 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
12017 warning when compiling print.c.
12018
3ddb0639
PE
12019 * font.c (font_unparse_fcname): Abort in an "impossible" situation
12020 instead of using an uninitialized var.
5ad03b97 12021 (font_sort_entities): Mark var as initialized.
3ddb0639 12022
170a2692
PE
12023 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
12024
e663c700
PE
12025 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
12026 pointers to constants.
89bc529a 12027 (font_parse_fcname): Remove unused vars.
7b81e2d0 12028 (font_delete_unmatched): Now static.
ea838e10 12029 (font_get_spec): Remove; unused.
13a547c6
PE
12030 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
12031 (font_update_drivers, Ffont_get_glyphs, font_add_log):
12032 Rename or move locals to avoid shadowing.
e663c700 12033
2a80c887 12034 * fns.c (require_nesting_list, require_unwind): Now static.
612f56df 12035 (Ffillarray): Rename locals to avoid shadowing.
2a80c887 12036
1384fa33 12037 * floatfns.c (domain_error2): Define only if needed.
a885e2ed 12038 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1384fa33 12039
8b2c52e9
PE
12040 * alloc.c (mark_backtrace): Move decl from here ...
12041 * lisp.h: ... to here, so that it can be checked.
12042
475545b5 12043 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
d28a2170 12044 (Fdefvar): Rewrite so as not to use empty "else".
cfcbfb1a
PE
12045 (lisp_indirect_variable): Name an expression,
12046 to avoid gcc -Wbad-function-cast warning.
1faed8ae 12047 (Fdefvar): Rename locals to avoid shadowing.
475545b5 12048
b1349114 12049 * callint.c (quotify_arg, quotify_args): Now static.
a3e8cbda 12050 (Fcall_interactively): Rename locals to avoid shadowing.
b0e80955 12051 Use const pointer when appropriate.
b1349114 12052
a2928364
PE
12053 * lisp.h (get_system_name, get_operating_system_release):
12054 Move decls here, to check interfaces.
12055 * process.c (get_operating_system_release): Move decl to lisp.h.
12056 * xrdb.c (get_system_name): Likewise.
63c5d10b
PE
12057 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
12058 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
12059 some of which prompt warnings from gcc -Wbad-function-cast.
545b49b4
PE
12060 (Fformat_time_string, Fencode_time, Finsert_char):
12061 (Ftranslate_region_internal, Fformat):
12062 Rename or remove local vars to avoid shadowing.
9710023e 12063 (Ftranslate_region_internal): Mark var as initialized.
63c5d10b 12064
a415e694
PE
12065 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
12066 avoid shadowing.
12067
8ef4622d
PE
12068 * lisp.h (eassert): Check that the argument compiles, even if
12069 ENABLE_CHECKING is not defined.
12070
946f9a5b
PE
12071 * data.c (Findirect_variable): Name an expression, to avoid
12072 gcc -Wbad-function-cast warning.
112396d6 12073 (default_value, arithcompare, arith_driver, arith_error): Now static.
b9b84fa9 12074 (store_symval_forwarding): Rename local to avoid shadowing.
44f230aa
SM
12075 (Fmake_variable_buffer_local, Fmake_local_variable):
12076 Mark variables as initialized.
52746918 12077 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
946f9a5b 12078
e5aab7e7 12079 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
ae35e756
PE
12080 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
12081 Rename locals to avoid shadowing.
dff45157
PE
12082 (mark_stack): Move local variables into the #ifdef region where
12083 they're used.
7bc26fdb
PE
12084 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
12085 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
12086 needed otherwise.
12087 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
12088 (GC_STRING_CHARS): Remove; not used.
d40d4be1 12089 (Fmemory_limit): Cast sbrk's returned value to char *.
ae35e756 12090
e5aab7e7
PE
12091 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
12092 avoids undefined behavior in theory.
12093
4da60324
PE
12094 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
12095
88043301
PE
12096 Use functions, not macros, for up- and down-casing (Bug#8254).
12097 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
12098 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
12099 to use the following functions instead of these macros.
12100 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
12101 EMACS_INT, since callers assume the returned value fits in int.
12102 (upcase1): Likewise, for UPCASE_TABLE.
12103 (uppercasep, lowercasep, upcase): New static inline functions.
0da09c43 12104 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
db69b0cd 12105 the race-condition problem in the old DOWNCASE.
88043301 12106
19ed5445
PE
12107 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
12108 Rename locals to avoid shadowing.
12109 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
abbd1bcf
PE
12110 (regex_compile, re_search_2, re_match_2_internal):
12111 Remove unused local vars.
952db0d7
PE
12112 (FREE_VAR): Rewrite so as not to use empty "else",
12113 which gcc can warn about.
da053e48 12114 (regex_compile, re_match_2_internal): Mark locals as initialized.
b313f9d8
PE
12115 (RETALLOC_IF): Define only if needed.
12116 (WORDCHAR_P): Likewise. This one is never needed, but is used
12117 only in a comment talking about a compiler bug, so put inside
12118 the #if 0 of that comment.
12119 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
12120 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
12121 Remove; unused.
19ed5445 12122
1f3561e4 12123 * search.c (boyer_moore): Rename locals to avoid shadowing.
76ef09b7
PE
12124 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
12125 (PREV_CHAR_BOUNDARY): Likewise.
1f3561e4 12126
ded6f8f7
PE
12127 * search.c (simple_search): Remove unused var.
12128
dbd37a95
PE
12129 * dired.c (compile_pattern): Move decl from here ...
12130 * lisp.h: ... to here, so that it can be checked.
12131 (struct re_registers): New forward decl.
12132
7e47afad
PE
12133 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
12134
85f24f61
PE
12135 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
12136 All uses changed.
12137 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
12138 Rename locals to avoid shadowing.
5671df8f 12139 (Fvertical_motion): Mark locals as initialized.
85f24f61 12140
181aa2be 12141 * casefiddle.c (casify_object, casify_region): Now static.
e45a141a 12142 (casify_region): Mark local as initialized.
181aa2be 12143
930d429c
PE
12144 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
12145
7082eac6
PE
12146 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
12147 New macros, so that the caller can use some names other than
12148 gcpro1, gcpro2, etc.
12149 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
12150 of the new macros.
12151 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
12152 argument, for consistency with GCPRO2_VAR, etc: it is now the
12153 prefix of the variable, not the variable itself. All uses
12154 changed.
38b2c076
PE
12155 * dired.c (directory_files_internal, file_name_completion):
12156 Rename locals to avoid shadowing.
12157
15206ed9
PE
12158 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
12159 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
12160 dired.c's scmp function, had undefined behavior.
12161 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
12162 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
12163 * buffer.h: ... to here, because these macros use current_buffer,
12164 and the new implementation with inline functions needs to have
12165 current_buffer in scope now, rather than later when the macros
12166 are used.
12167 (downcase, upcase1): New static inline functions.
12168 (DOWNCASE, UPCASE1): Reimplement using these functions.
12169 This avoids undefined behavior in expressions like
12170 DOWNCASE (x) == DOWNCASE (y), which previously suffered
12171 from race conditions in accessing the global variables
12172 case_temp1 and case_temp2.
12173 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
12174 * lisp.h (case_temp1, case_temp2): Remove their decls.
12175 * character.h (ASCII_CHAR_P): Move from here ...
12176 * lisp.h: ... to here, so that the inline functions mentioned
12177 above can use them.
12178
4a6bea26
PE
12179 * dired.c (directory_files_internal_unwind): Now static.
12180
f14b7e14
PE
12181 * fileio.c (file_name_as_directory, directory_file_name):
12182 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
12183 Now static.
2893f146
PE
12184 (file_name_as_directory): Use const pointers when appropriate.
12185 (Fexpand_file_name): Likewise. In particular, newdir might
12186 point at constant storage, so make it a const pointer.
fd4ead52 12187 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
b14aac08
PE
12188 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
12189 signedness issues.
f839df0c
PE
12190 (Fset_file_times, Finsert_file_contents, auto_save_error):
12191 Rename locals to avoid shadowing.
f14b7e14 12192
5716756e 12193 * minibuf.c (choose_minibuf_frame_1): Now static.
62137a95
PE
12194 (Ftry_completion, Fall_completions): Rename or remove locals
12195 to avoid shadowing.
5716756e 12196
b4c3046a
PE
12197 * marker.c (bytepos_to_charpos): Remove; unused.
12198
b45db522
PE
12199 * lisp.h (verify_bytepos, count_markers): New decls,
12200 so that gcc does not warn that these functions aren't declared.
12201
85876d07
PE
12202 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
12203 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
f0cb4a60 12204 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
40ef059e 12205 (copy_text): Remove unused local var.
85876d07 12206
03d78a21 12207 * filelock.c (within_one_second): Now static.
b3dd38ab 12208 (lock_file_1): Rename local to avoid shadowing.
03d78a21 12209
5df8f01b
PE
12210 * buffer.c (fix_overlays_before): Mark locals as initialized.
12211 (fix_start_end_in_overlays): Likewise. This function should be
12212 simplified by using pointers-to-pointers, but that's a different
12213 matter.
b1d876f1 12214 (switch_to_buffer_1): Now static.
8f54f30a
PE
12215 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
12216 (report_overlay_modification): Rename locals to avoid shadowing.
c3bd59b5 12217
a70072c9 12218 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
fbd02d7b 12219 Fix pointer signedness issue.
edced198
PE
12220 (sys_subshell): Mark local as volatile if checking for lint,
12221 to suppress a gcc -Wclobbered warning that does not seem to be right.
15dfd3d9 12222 (MAXPATHLEN): Define only if needed.
a70072c9 12223
a0977c44
PE
12224 * process.c (serial_open, serial_configure): Move decls from here ...
12225 * systty.h: ... to here, so that they can be checked.
12226
a884fdcc
PE
12227 * fns.c (get_random, seed_random): Move extern decls from here ...
12228 * lisp.h: ... to here, so that they can be checked.
12229
604efe86 12230 * sysdep.c (reset_io): Now static.
b8950c94 12231 (wait_for_termination_signal): Remove; unused.
604efe86 12232
38fc62d9
PE
12233 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
12234 (copy_keymap_item, append_key, push_text_char_description):
12235 Now static.
1004a21a 12236 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
dbbb8427 12237 (DENSE_TABLE_SIZE): Remove; unused.
c1141155
PE
12238 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
12239 (describe_map_tree):
12240 Rename locals to avoid shadowing.
38fc62d9 12241
2f2650da
PE
12242 * keyboard.c: Declare functions static if they are not used elsewhere.
12243 (echo_char, echo_dash, cmd_error, top_level_2):
12244 (poll_for_input, handle_async_input): Now static.
69a058fa
PE
12245 (read_char, kbd_buffer_get_event, make_lispy_position):
12246 (make_lispy_event, make_lispy_movement, apply_modifiers):
12247 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
12248 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
12249 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
c8a06054 12250 (read_key_sequence, read_char): Mark locals as initialized.
3ac94672 12251 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
2f2650da 12252
a053e86c 12253 * keyboard.h (make_ctrl_char): New decl.
da2f2dd9
PE
12254 (mark_kboards): Move decl here ...
12255 * alloc.c (mark_kboards): ... from here.
a053e86c 12256
4752793e
PE
12257 * lisp.h (force_auto_save_soon): New decl.
12258
74f10ca7 12259 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
244fc23d
PE
12260 (DEFINE_DUMMY_FUNCTION): New macro.
12261 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
12262 Use it.
c03cd23f
PE
12263 (main): Add casts to avoid warnings
12264 if GCC considers string literals to be constants.
74f10ca7 12265
022e70d4
PE
12266 * lisp.h (fatal_error_signal): Add decl, since it's exported.
12267
59d6fe83
PE
12268 * dbusbind.c: Pointer signedness fixes.
12269 (xd_signature, xd_append_arg, xd_initialize):
12270 (Fdbus_call_method, Fdbus_call_method_asynchronously):
12271 (Fdbus_method_return_internal, Fdbus_method_error_internal):
12272 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
12273 (Fdbus_register_signal): Use SSDATA when the context wants char *.
12274
78320123
PE
12275 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
12276 if GCC considers string literals to be constants.
49cebcca 12277 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
78320123 12278
35ac2a97
SM
122792011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
12280
fb103ca9
SM
12281 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
12282 (print_preprocess, print_object): New macro to fix last change.
12283
35ac2a97
SM
12284 * print.c (print_preprocess): Don't forget font objects.
12285
62973b41
JB
122862011-03-16 Juanma Barranquero <lekktu@gmail.com>
12287
12288 * emacs.c (USAGE3): Doc fixes.
12289
0e48bb22
AS
122902011-03-15 Andreas Schwab <schwab@linux-m68k.org>
12291
12292 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
12293 structure.
12294
7684e57b
JB
122952011-03-14 Juanma Barranquero <lekktu@gmail.com>
12296
12297 * lisp.h (VWindow_system, Qfile_name_history):
12298 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
12299 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
12300 (w32_system_caret_x, w32_system_caret_y): Declare extern.
12301
12302 * w32select.c: Don't #include "keyboard.h".
c96bbc66 12303 (run_protected): Add extern declaration for waiting_for_input.
7684e57b
JB
12304
12305 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
12306 * w32console.c (detect_input_pending, read_input_pending)
12307 (encode_terminal_code):
12308 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
12309 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
12310 (w32_system_caret_y, Qfile_name_history):
12311 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
12312 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
12313 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
12314 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
12315 * w32proc.c (Qlocal, report_file_error):
12316 * w32term.c (Vwindow_system, updating_frame):
12317 * w32uniscribe.c (initialized, uniscribe_font_driver):
12318 Remove unneeded extern declarations.
12319
2aa46d6c
CY
123202011-03-14 Chong Yidong <cyd@stupidchicken.com>
12321
c96bbc66 12322 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
2aa46d6c 12323
cffc6f3b
CY
123242011-03-13 Chong Yidong <cyd@stupidchicken.com>
12325
12326 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
12327 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
12328 These macros can no longer be used for assignment.
12329
44f230aa
SM
12330 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
12331 Assign struct members directly, instead of using BUF_BEGV etc.
cffc6f3b
CY
12332 (record_buffer_markers, fetch_buffer_markers): New functions for
12333 recording and fetching special buffer markers.
12334 (set_buffer_internal_1, set_buffer_temp): Use them.
12335
12336 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
12337
12338 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
12339
12340 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
12341 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
12342
12343 * xdisp.c (hscroll_window_tree):
12344 (reconsider_clip_changes): Use PT instead of BUF_PT.
12345
d251f04b
EZ
123462011-03-13 Eli Zaretskii <eliz@gnu.org>
12347
12348 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
12349 $(EMACS_ROOT)/lib/intprops.h.
12350
f0c77cd1
PE
123512011-03-13 Paul Eggert <eggert@cs.ucla.edu>
12352
3eca4629
PE
12353 Fix more problems found by GCC 4.5.2's static checks.
12354
7c86ee98
PE
12355 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
12356 to unsigned char * to avoid compiler diagnostic.
b0afc268
PE
12357 (xg_free_frame_widgets): Make it clear that a local variable is
12358 needed only if USE_GTK_TOOLTIP.
01e0b5ad
PE
12359 (gdk_window_get_screen): Make it clear that this macro is needed
12360 only if USE_GTK_TOOLTIP.
1e5524e7
PE
12361 (int_gtk_range_get_value): New function, which avoids a diagnostic
12362 from gcc -Wbad-function-cast.
12363 (xg_set_toolkit_scroll_bar_thumb): Use it.
12364 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
12365 diagnostic from gcc -Wbad-function-cast.
65dc836c
PE
12366 (get_utf8_string, xg_get_file_with_chooser):
12367 Rename locals to avoid shadowing.
12368 (create_dialog): Move locals to avoid shadowing.
7c86ee98 12369
41729b81
PE
12370 * xgselect.c (xg_select): Remove unused var.
12371
f0c77cd1
PE
12372 * image.c (four_corners_best): Mark locals as initialized.
12373 (gif_load): Initialize transparent_p to zero (Bug#8238).
12374 Mark another local as initialized.
ec6cf4c6 12375 (my_png_error, my_error_exit): Mark with NO_RETURN.
f0c77cd1 12376
ce0ad53d 12377 * image.c (clear_image_cache): Now static.
d5d5a617 12378 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
e22cffbc 12379 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
77a765fd
PE
12380 (x_edge_detection): Remove unnecessary cast that
12381 gcc -Wbad-function-cast diagnoses.
2037898d 12382 (gif_load): Fix pointer signedness.
6ae141d6
PE
12383 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
12384 (jpeg_load, gif_load): Rename locals to avoid shadowing.
ce0ad53d 12385
33383987 123862011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3eca4629 12387
d32df629
PE
12388 Improve quality of tests for time stamp overflow.
12389 For example, without this patch (encode-time 0 0 0 1 1
12390 1152921504606846976) returns the obviously-bogus value (-948597
12391 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
12392 reports time overflow. See
12393 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
b8d9bd41
PE
12394 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
12395 * editfns.c: Include limits.h and intprops.h.
12396 (TIME_T_MIN, TIME_T_MAX): New macros.
12397 (time_overflow): Move earlier, to before first use.
12398 (hi_time, lo_time): New functions, for an accurate test for
12399 out-of-range times.
12400 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
12401 (Fget_internal_run_time): Don't assume time_t fits in int.
12402 (make_time): Use list2 instead of Fcons twice.
12403 (Fdecode_time): More accurate test for out-of-range times.
12404 (check_tm_member): New function.
12405 (Fencode_time): Use it, to test for out-of-range times.
d32df629
PE
12406 (lisp_time_argument): Don't rely on undefined left-shift and
12407 right-shift behavior when checking for time stamp overflow.
8be6f318 12408
fe31d94c
PE
12409 * editfns.c (time_overflow): New function, refactoring common code.
12410 (Fformat_time_string, Fdecode_time, Fencode_time):
12411 (Fcurrent_time_string): Use it.
12412
8be6f318
PE
12413 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
12414 * dired.c (make_time): Move to ...
12415 * editfns.c (make_time): ... here.
12416 * systime.h: Note the move.
12417
09d9db2c 124182011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
c47cbdfd 12419
126bc0dc
YM
12420 * fringe.c (update_window_fringes): Remove unused variables.
12421
c47cbdfd
YM
12422 * unexmacosx.c (copy_data_segment): Also copy __got section.
12423 (Bug#8223)
12424
7ac80be9
EZ
124252011-03-12 Eli Zaretskii <eliz@gnu.org>
12426
c96bbc66 12427 * termcap.c [MSDOS]: Include "msdos.h".
058e5dad
EZ
12428 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
12429 Constify `char *' arguments and their references according to
12430 prototypes in tparam.h.
12431
ecb0f94d 12432 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
058e5dad 12433
7ac80be9
EZ
12434 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
12435 Adapt all references accordingly.
12436
12437 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
12438
ef1fd07e
TT
124392011-03-11 Tom Tromey <tromey@redhat.com>
12440
12441 * buffer.c (syms_of_buffer): Remove obsolete comment.
12442
7ef4b50c
EZ
124432011-03-11 Eli Zaretskii <eliz@gnu.org>
12444
12445 * termhooks.h (encode_terminal_code): Declare prototype.
12446
12447 * msdos.c (encode_terminal_code): Don't declare prototype.
12448
12449 * term.c (encode_terminal_code): Now external again, used by
12450 w32console.c and msdos.c.
12451
44f230aa
SM
12452 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
12453 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
7ef4b50c 12454
4b1ec863 124552011-03-11 Paul Eggert <eggert@cs.ucla.edu>
f78faa98 12456
1714f52b 12457 Fix some minor problems found by GCC 4.5.2's static checks.
83316bf4 12458
4b1ec863
PE
12459 * fringe.c (update_window_fringes): Mark locals as initialized
12460 (Bug#8227).
12461 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
bf60f616 12462
524c7aa6
PE
12463 * alloc.c (mark_fringe_data): Move decl from here ...
12464 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
12465 to check its interface.
12466 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
12467
a5c0af81 12468 * fontset.c (free_realized_fontset): Now static.
7519b8cd 12469 (Fset_fontset_font): Rename local to avoid shadowing.
cc6e5db1 12470 (fontset_font): Mark local as initialized.
a9a06e0b 12471 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
a5c0af81 12472
b4716021
PE
12473 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
12474
811e9bac 12475 * xselect.c (x_disown_buffer_selections): Remove; not used.
7b83e2f1 12476 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
aa0daa9f
PE
12477 (x_own_selection, Fx_disown_selection_internal): Rename locals
12478 to avoid shadowing.
12479 (x_handle_dnd_message): Remove local to avoid shadowing.
811e9bac 12480
7e3ab302
PE
12481 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
12482 so that the caller can use some name other than gcpro1.
12483 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
58d2d479
PE
12484 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
12485 (Fx_backspace_delete_keys_p):
12486 Use them to avoid shadowing, and rename vars to avoid shadowing.
12487 (x_decode_color, x_set_name, x_window): Now static.
6b437900 12488 (Fx_create_frame): Add braces to silence GCC warning.
c0951e53 12489 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
06b0c8a0
PE
12490 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
12491 Remove unused locals.
7e3ab302
PE
12492 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
12493 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
12494 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
12495 macros.
f78faa98 12496
e2b13473
PE
12497 * xterm.h (x_mouse_leave): New decl.
12498
77f23912
PE
12499 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
12500 Remove unused functions.
cdf4ba58
PE
12501 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
12502 (x_calc_absolute_position): Now static.
7411c686 12503 (XTread_socket): Don't define label "out" unless it's used.
2b07bcff 12504 Don't declare local "event" unless it's used.
ed7bf3a5
PE
12505 (x_iconify_frame, x_free_frame_resources): Don't declare locals
12506 unless they are used.
38d0b34a
PE
12507 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
12508 (x_fatal_error_signal): Remove; not used.
a6067996
PE
12509 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
12510 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
12511 (x_error_catcher, x_connection_closed, x_error_handler):
12512 (x_error_quitter, xembed_send_message, x_iconify_frame):
12513 (my_log_handler): Rename locals to avoid shadowing.
28f1c698 12514 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2a8fade0 12515 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
77f23912 12516
44f230aa
SM
12517 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
12518 Rename or move locals to avoid shadowing.
6b463e58 12519 (tty_defined_color, merge_face_heights): Now static.
5967d051 12520 (free_realized_faces_for_fontset): Remove; not used.
1e9966ea
PE
12521 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
12522 does not deduce is never used uninitialized.
73719eba
PE
12523 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
12524 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
071048a3 12525
426994c3 12526 * terminal.c (store_terminal_param): Now static.
5489860b 12527
032f1620 12528 * xmenu.c (menu_highlight_callback): Now static.
9d66f88e 12529 (set_frame_menubar): Remove unused local.
d4323972 12530 (xmenu_show): Rename parameter to avoid shadowing.
6d1f7fee
PE
12531 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
12532 since they might point to immutable storage.
281585b0
PE
12533 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
12534 since it's unused otherwise.
032f1620 12535
367c19e5 12536 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
53df7c11 12537 Add a FIXME, since the code still doesn't look right. (Bug#8215)
9f36b9fd
PE
12538 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
12539 avoids a gcc -Wuninitialized diagnostic.
0e086e8f 12540 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
44a3a108
PE
12541 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
12542 does not deduce are never used uninitialized.
70739cbe 12543
07b48fa9
PE
12544 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
12545
8868a238 12546 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
4554d213
PE
12547 * window.c (window_loop, size_window):
12548 (run_window_configuration_change_hook, enlarge_window): Likewise.
8868a238 12549
7e5cf297 12550 * window.c (display_buffer): Now static.
d6550a9f
PE
12551 (size_window): Mark variables that gcc -Wuninitialized
12552 does not deduce are never used uninitialized.
a586633d
PE
12553 * window.h (check_all_windows): New decl, to forestall
12554 gcc -Wmissing-prototypes diagnostic.
5b555da1 12555 * dispextern.h (bidi_dump_cached_states): Likewise.
7e5cf297 12556
f6095868
PE
12557 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
12558 shadowing.
12559 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
726929c4
PE
12560 Include <limits.h>.
12561 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
12562 and to avoid gcc -Wuninitialized warning.
89ef49df
PE
12563 (load_charset_map): Mark variables that gcc -Wuninitialized
12564 does not deduce are never used uninitialized.
53df7c11 12565 (load_charset): Abort instead of using uninitialized var (Bug#8229).
f6095868 12566
f38b440c
PE
12567 * coding.c (coding_set_source, coding_set_destination):
12568 Use "else { /* comment */ }" rather than "else /* comment */;"
12569 for clarity, and to avoid gcc -Wempty-body warning.
2735d060
PE
12570 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
12571 a block, when the outer 'i' will do.
12572 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
12573 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
12574 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
12575 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
12576 (Fdecode_sjis_char, Fdefine_coding_system_internal):
12577 Rename locals to avoid shadowing.
12578 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
e2f1bab9
PE
12579 * coding.c (emacs_mule_char, encode_invocation_designation):
12580 Now static, since they're not used elsewhere.
413bb2db 12581 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
c4a63b12 12582 (decode_coding_object, encode_coding_object, detect_coding_system):
ee05f961
PE
12583 (decode_coding_emacs_mule): Mark variables that gcc
12584 -Wuninitialized does not deduce are never used uninitialized.
160b01f6
PE
12585 (detect_coding_iso_2022): Initialize a local variable that might
12586 be used uninitialized. Leave a FIXME because it's not clear that
53df7c11 12587 this initialization is needed. (Bug#8211)
5f58e762
PE
12588 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
12589 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
12590 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
12591 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
12592 Remove unused macros.
f38b440c 12593
232b38b9 12594 * category.c (hash_get_category_set): Remove unused local var.
9f3b5e69 12595 (copy_category_table): Now static, since it's not used elsewhere.
d0891610 12596 * character.c (string_count_byte8): Likewise.
232b38b9 12597
fb90da1b
PE
12598 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
12599 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
12600
fb93dbc2
PE
12601 * chartab.c (copy_sub_char_table): Now static, since it's not used
12602 elsewhere.
5c156ace
PE
12603 (sub_char_table_ref_and_range, char_table_ref_and_range):
12604 Rename locals to avoid shadowing.
bbcd0949 12605 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
fb93dbc2 12606
7d3b3862 12607 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
630d6892 12608 (BIDI_BOB): Remove unused macro.
7d3b3862 12609
6be7d3da
PE
12610 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
12611 deduce are never used uninitialized.
c2ed9c8b 12612 * term.c (encode_terminal_code): Likewise.
6be7d3da 12613
75f8807f 12614 * term.c (encode_terminal_code): Now static. Remove unused local.
72abad34 12615
50938595
PE
12616 * tparam.h: New file.
12617 * term.c, tparam.h: Include it.
12618 * deps.mk (term.o, tparam.o): Depend on tparam.h.
12619 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
12620 Move these decls to tparam.h, and make them agree with what
12621 is actually in tparam.c. The previous trick of using incompatible
12622 decls in different modules does not conform to the C standard.
12623 All callers of tparam changed to use tparam's actual API.
12624 * tparam.c (tparam1, tparam, tgoto):
12625 Use const pointers where appropriate.
12626
fbceeba2
PE
12627 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
12628 * cm.h (struct cm): Likewise.
12629 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
12630 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
12631 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
12632 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
12633 (turn_on_face, init_tty): Likewise.
12634 * termchar.h (struct tty_display_info): Likewise.
fbceeba2 12635
7f3f1250
PE
12636 * term.c (term_mouse_position): Rename local to avoid shadowing.
12637
e6ca6543
PE
12638 * alloc.c (mark_ttys): Move decl from here ...
12639 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
12640
c40f8d15
AS
126412011-03-11 Andreas Schwab <schwab@linux-m68k.org>
12642
12643 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
12644
cfe0661d
JB
126452011-03-09 Juanma Barranquero <lekktu@gmail.com>
12646
12647 * search.c (compile_pattern_1): Remove argument regp, unused since
12648 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
12649 (compile_pattern): Don't pass it.
12650
0afb4571
J
126512011-03-08 Jan Djärv <jan.h.d@swipnet.se>
12652
12653 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
12654 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
12655 for ! HAVE_GTK3.
12656 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
12657
12658 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
12659
12660 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
12661 gdk_window_get_screen, gdk_window_get_geometry,
12662 gdk_x11_window_lookup_for_display and GDK_KEY_g.
12663 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
12664 (xg_get_pixbuf_from_pixmap): New function.
12665 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
12666 to Pixmap, take frame as parameter, remove GdkColormap parameter.
12667 Call xg_get_pixbuf_from_pixmap instead of
12668 gdk_pixbuf_get_from_drawable.
12669 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
12670 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
12671 (xg_check_special_colors): Use GtkStyleContext and its functions
12672 for HAVE_GTK3.
12673 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
12674 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
12675 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
44f230aa
SM
12676 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
12677 Call gtk_widget_get_preferred_size.
0afb4571
J
12678 (xg_frame_resized): gdk_window_get_geometry only takes 5
12679 parameters.
44f230aa
SM
12680 (xg_win_to_widget, xg_event_is_for_menubar):
12681 Call gdk_x11_window_lookup_for_display.
0afb4571
J
12682 (xg_set_widget_bg): New function.
12683 (delete_cb): New function.
895009e1 12684 (xg_create_frame_widgets): Connect delete-event to delete_cb.
5c32d3f2 12685 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
0afb4571
J
12686 (xg_set_background_color): Call xg_set_widget_bg.
12687 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
12688 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
12689 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
12690 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
12691 if ! HAVE_GTK3.
12692 (update_frame_tool_bar): Call gtk_widget_hide.
12693 (xg_initialize): Use GDK_KEY_g.
12694
12695 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
12696 if ! HAVE_GTK3
12697 (x_session_initialize): Call gdk_x11_set_sm_client_id.
12698
12699 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
12700 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
12701 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
12702
1c2cc4ef
JB
127032011-03-08 Juanma Barranquero <lekktu@gmail.com>
12704
12705 * w32xfns.c (select_palette): Check success of RealizePalette against
12706 GDI_ERROR, not zero.
12707
33383987 12708See ChangeLog.11 for earlier changes.
aac0c6e3
MR
12709
12710;; Local Variables:
12711;; coding: utf-8
aac0c6e3
MR
12712;; End:
12713
2f097256 12714 Copyright (C) 2011-2012 Free Software Foundation, Inc.
aac0c6e3
MR
12715
12716 This file is part of GNU Emacs.
12717
12718 GNU Emacs is free software: you can redistribute it and/or modify
12719 it under the terms of the GNU General Public License as published by
12720 the Free Software Foundation, either version 3 of the License, or
12721 (at your option) any later version.
12722
12723 GNU Emacs is distributed in the hope that it will be useful,
12724 but WITHOUT ANY WARRANTY; without even the implied warranty of
12725 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12726 GNU General Public License for more details.
12727
12728 You should have received a copy of the GNU General Public License
12729 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.