* window.h (struct window): Change type of 'hscroll',
[bpt/emacs.git] / src / ChangeLog
CommitLineData
80b00b08
DA
12012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
2
3 * window.h (struct window): Change type of 'hscroll',
4 'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
5 'last_modified' and 'last_overlay_modified' to EMACS_INT.
6 Adjust users accordingly.
7 * xdisp.c (try_cursor_movement): Replace type check with eassert.
8 * window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
9 from EMACS_INT to ptrdiff_t.
10 (make_window): Omit redundant initialization.
11
62b2bcf6
JB
122012-06-28 Juanma Barranquero <lekktu@gmail.com>
13
14 * makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
15
45942c7d
DA
162012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
17
18 * window.h (struct window): Change type of 'use_time' and
19 'sequence_number' from Lisp_Object to int.
20 * frame.c (make_frame): Adjust users accordingly.
21 * print.c (print_object): Likewise.
22 * window.c (select_window, Fwindow_use_time, make_parent_window)
23 (make_window): Likewise.
24
e509cfa6
DA
252012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
26
27 * dispextern.h (GLYPH_DEBUG): Now defined in config.h if
28 enabled with --enable-checking=[all,glyphs] configure option.
29 Fix GLYPH_DEBUG usage assuming that it may be undefined,
30 adjust comments accordingly.
31 * dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
32 undefined, adjust comments accordingly.
33 * image.c: Likewise.
34 * scroll.c: Likewise.
35 * w32fns.c: Likewise.
36 * w32term.c: Likewise.
37 * xdisp.c: Likewise.
38 * xfaces.c: Likewise.
39 * xfns.c: Likewise.
40 * xterm.c: Likewise.
41
a54e2c05
DA
422012-06-28 Dmitry Antipov <dmantipov@yandex.ru>
43
44 Generalize run-time debugging checks.
45 * dispextern.h (XASSERTS): Remove.
46 * fontset.c (xassert): Remove.
47 Convert from xassert to eassert.
48 * alloc.c: Convert from xassert to eassert.
49 * bidi.c: Likewise.
50 * dispnew.c: Likewise.
51 * fns.c: Likewise.
52 * fringe.c: Likewise.
53 * ftfont.c: Likewise.
54 * gtkutil.c: Likewise.
55 * image.c: Likewise.
56 * keyboard.c: Likewise.
57 * menu.c: Likewise.
58 * process.c: Likewise.
59 * scroll.c: Likewise.
60 * sound.c: Likewise.
61 * term.c: Likewise.
62 * w32console.c: Likewise.
63 * w32fns.c: Likewise.
64 * w32term.c: Likewise.
65 * window.c: Likewise.
66 * xdisp.c: Likewise.
67 * xfaces.c: Likewise.
68 * xfns.c: Likewise.
69 * xselect.c: Likewise.
70 * xterm.c: Likewise.
71
1ec4b7b2
SM
722012-06-27 Stefan Monnier <monnier@iro.umontreal.ca>
73
74 * fns.c (maybe_resize_hash_table): Output message when growing the
75 purify-hashtable.
76
2014308a
DA
772012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
78
79 * alloc.c (allocate_string_data): Remove dead code.
80 * xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
81 avoid GCC warning about unused macro.
82
246155eb
DA
832012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
84
85 * alloc.c (allocate_string): Omit intervals initialization.
86 * alloc.c (make_uninit_multibyte_string): Initialize intervals
87 as in make_pure_string and make_pure_c_string.
88
43184b7b
DA
892012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
90
91 * alloc.c (allocate_string): Fix last change.
92
3fe6dd74
DA
932012-06-27 Dmitry Antipov <dmantipov@yandex.ru>
94
95 * alloc.c (allocate_string): Remove two redundant calls
96 to memset, add explicit initialization where appropriate.
97
1ba6038a
GM
982012-06-27 Glenn Morris <rgm@gnu.org>
99
100 * lisp.mk (lisp): Remove paths.elc.
101
c89926a5
CY
1022012-06-27 Chong Yidong <cyd@gnu.org>
103
104 * doc.c (Fsubstitute_command_keys): Fix punctuation.
105
ed6b3510
JW
1062012-06-26 John Wiegley <johnw@newartisans.com>
107
1ec4b7b2 108 * unexmacosx.c (copy_data_segment): Add two section names used
157e99e4
JW
109 on Mac OS X Lion: __mod_init_func and __mod_term_func.
110
ed6b3510
JW
111 * alloc.c (mark_memory): Do not check with -faddress-sanitizer
112 when building with Clang.
113
8edd4a2b
SM
1142012-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
115
116 * eval.c (Fapply): Allow calling it with a single argument.
117
f6f62d1b
EZ
1182012-06-26 Eli Zaretskii <eliz@gnu.org>
119
120 * s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
121 _stricmp and _strnicmp.
122 (HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
123
62efea5e
DA
1242012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
125
126 * alloc.c (allocate_window): Zero out non-Lisp part of newly
127 allocated window.
128 (allocate_process): Likewise for new process.
8edd4a2b 129 (allocate_terminal): Change to use offsetof.
62efea5e
DA
130 (allocate_frame): Likewise.
131 * frame.c (make_frame): Omit redundant initialization.
132 * window.c (make_parent_window): Use memset.
133 (make_window): Omit redundant initialization.
134 * process.c (make_process): Omit redundant initialization.
135 * terminal.c (create_terminal): Likewise.
136
42997f4d
DA
1372012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
138
139 * term.c (delete_tty): Remove redundant call to memset.
140
1130ecfc
DA
1412012-06-26 Dmitry Antipov <dmantipov@yandex.ru>
142
143 * alloc.c: Remove build_string.
144 * lisp.h: Define build_string as static inline. This provides
145 a better opportunity to optimize away calls to strlen when the
146 function is called with compile-time constant argument.
147 * image.c (imagemagick_error): Convert to build_string.
148 * w32proc.c (sys_spawnve): Likewise.
149 * xterm.c (x_term_init): Likewise.
150
cf38a720
PE
1512012-06-26 Paul Eggert <eggert@cs.ucla.edu>
152
99027bdd
PE
153 Use sprintf return value instead of invoking strlen on result.
154 In the old days this wasn't portable, since some sprintf
155 implementations returned char *. But they died out years ago and
156 Emacs already assumes sprintf returns int.
157 Similarly for float_to_string.
158 This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
159 * ccl.c (ccl_driver):
160 * character.c (string_escape_byte8):
161 * data.c (Fnumber_to_string):
162 * doprnt.c (doprnt):
163 * print.c (print_object):
164 * xdisp.c (message_dolog):
165 * xfns.c (syms_of_xfns):
166 Use sprintf or float_to_string result to avoid need to call strlen.
167 * data.c (Fnumber_to_string):
168 Use make_unibyte_string, since the string must be ASCII.
169 * lisp.h, print.c (float_to_string): Now returns int length.
170 * term.c (produce_glyphless_glyph):
171 Use sprintf result rather than recomputing it.
172
cf38a720
PE
173 Clean out last vestiges of the old HAVE_CONFIG_H stuff.
174 * Makefile.in (ALL_CFLAGS):
175 * makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
176 * gmalloc.c, regex.c: Include <config.h> unconditionally.
177
3511c784
DA
1782012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
179
0a08eb21 180 * dispextern.h (xstrcasecmp): Define to library function
3511c784
DA
181 strcasecmp if available.
182 * xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
183
fb7da12e
AS
1842012-06-25 Andreas Schwab <schwab@linux-m68k.org>
185
186 * keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
187 Avoid comma operator.
188 * menu.c (push_submenu_start, push_submenu_end)
189 (push_left_right_boundary, push_menu_pane): Likewise.
190 * msdos.c (dos_rawgetc): Likewise.
191
afa2ffd8
DA
1922012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
193
194 * xfns.c (xic_create_fontsetname): Remove redundant calls
195 to memset.
196
b3b4476b
PE
1972012-06-25 Paul Eggert <eggert@cs.ucla.edu>
198
4495ff38
PE
199 * gtkutil.c (get_utf8_string): Remove redundant assignment.
200 sprintf already null-terminates its output.
201
b3b4476b
PE
202 * xfns.c (x_window): Remove redundant cast.
203
b00876c9
DA
2042012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
205
206 * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
207 `const char *' to `char *' to avoid compiler warning.
208
d188e26b
PE
2092012-06-24 Paul Eggert <eggert@cs.ucla.edu>
210
885d1d74
PE
211 * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
212 instead of truncating it to 63 (admittedly a generous limit).
213
d188e26b
PE
214 * process.c: Fix spelling and caps in comments.
215
e2f560b1
DN
2162012-06-24 Dan Nicolaescu <dann@ics.uci.edu>
217
e86db54b 218 * emacs.c (setpgrp): Remove definition, unused.
e2f560b1
DN
219 * sysdep.c (setpgrp): Remove definition, not used in this file.
220
7583a3a1
JB
2212012-06-24 Juanma Barranquero <lekktu@gmail.com>
222
223 * makefile.w32-in: Update dependencies.
224
696056c2
EZ
2252012-06-24 Eli Zaretskii <eliz@gnu.org>
226
227 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
228 (SYSTIME_H): Add nt/inc/sys/time.h.
229
230 * systime.h [WINDOWSNT]: Include sys/time.h.
231
232 * s/ms-w32.h (struct timespec): Definition moved from
233 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
234
845ca893
PE
2352012-06-24 Paul Eggert <eggert@cs.ucla.edu>
236
237 Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
238 * buffer.h (buffer_slot_type_mismatch):
239 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
240 * eval.c (unwind_to_catch):
241 * image.c (my_png_error, my_error_exit):
242 * keyboard.c (quit_throw_to_read_char, user_error)
243 (Fexit_recursive_edit, Fabort_recursive_edit):
244 * lisp.h (die, args_out_of_range, args_out_of_range_3)
245 (wrong_type_argument, buffer_overflow, __executable_start)
246 (memory_full, buffer_memory_full, string_overflow, Fthrow)
247 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
248 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
249 (fatal):
250 (child_setup) [!DOS_NT]:
251 * lread.c (end_of_file_error, invalid_syntax):
252 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
253 * puresize.h (pure_write_error):
254 * search.c (matcher_overflow):
255 * sound.c (sound_perror, alsa_sound_perror):
256 * sysdep.c, syssignal.h (croak):
257 * term.c (maybe_fatal, vfatal):
258 * textprop.c (text_read_only):
259 * undo.c (user_error):
260 * unexmacosx.c (unexec_error):
261 * xterm.c (x_ins_del_lines, x_delete_glyphs):
262 Use _Noreturn rather than NO_RETURN.
263 No need for separate decl merely because of _Noreturn.
264 * sound.c (sound_warning, parse_sound):
265 Remove unnecessary forward decls.
266
f1dd8073
PE
2672012-06-24 Paul Eggert <eggert@cs.ucla.edu>
268
269 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
270 * lisp.h (WAIT_READING_MAX): New macro.
271 * dispnew.c (Fsleep_for, sit_for):
272 * keyboard.c (kbd_buffer_get_event):
273 * process.c (Faccept_process_output):
274 Use it to avoid bogus compiler warnings with obsolescent GCC versions.
275 This improves on the previous patch, which introduced a bug
276 when time_t is unsigned and as wide as intmax_t.
277 See <http://bugs.gnu.org/9000#51>.
278
b82c1755
EZ
2792012-06-23 Eli Zaretskii <eliz@gnu.org>
280
281 * dispnew.c (sit_for, Fsleep_for):
282 * keyboard.c (kbd_buffer_get_event):
283 * process.c (Faccept_process_output): Avoid compiler warnings when
284 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
285
ca300656
JB
2862012-06-23 Juanma Barranquero <lekktu@gmail.com>
287
049ec95b
JB
288 * makefile.w32-in: Update dependencies.
289
ca300656
JB
290 * w32.c (ltime): Add return type and declare static.
291 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
292
db7b8d06
PE
2932012-06-23 Paul Eggert <eggert@cs.ucla.edu>
294
295 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
296 Privately reported by Herbert J. Skuhra.
297 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
298 All uses changed.
299 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
300 not make_lisp_timeval, when the argument is of type EMACS_TIME.
301
0bd8297f
EZ
3022012-06-23 Eli Zaretskii <eliz@gnu.org>
303
96512555
EZ
304 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
305 last argument of make_unibyte_string.
306
0bd8297f
EZ
307 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
308 language ID in the event parameters.
309
310 * w32term.c (w32_read_socket): Put the new keyboard codepage into
311 event.code, not the obscure "character set ID".
312
63def6b6
CY
3132012-06-23 Chong Yidong <cyd@gnu.org>
314
315 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
316
e8a02204
EZ
3172012-06-23 Eli Zaretskii <eliz@gnu.org>
318
388cdec0
EZ
319 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
320 * w32.c (fdutimens): New function.
321
322 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
323
324 * s/ms-w32.h (pselect): Redirect to sys_select.
325
326 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
327
e8a02204
EZ
328 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
329 in the logic of incrementing and decrementing the value of
330 use_relocatable_buffers.
331
d054f3fb
PE
3322012-06-23 Paul Eggert <eggert@cs.ucla.edu>
333
334 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
335 Privately reported by Herbert J. Skuhra.
336 [__FreeBSD__]: Remove "*/" typo after "#include".
337 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
338 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
339 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
340 Don't assume EMACS_TIME and struct timeval are the same type.
341
d35af63c
PE
3422012-06-22 Paul Eggert <eggert@cs.ucla.edu>
343
344 Support higher-resolution time stamps (Bug#9000).
345 The time stamps are only nanosecond-resolution at the C level,
346 since that's the best that any real-world system supports now.
347 But they are picosecond-resolution at the Lisp level, as that's
348 easy, and leaves room for future OS improvements.
349
350 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
351 (LIBES): Use it.
352
353 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
354 Don't get current time unless it's needed.
355
356 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
357 now provides it if it's absent.
358 (start_atimer): Port to higher-res time stamps.
359 Check for time stamp overflow. Don't get current time more
360 often than is needed.
361
362 * buffer.h (struct buffer): Buffer modtime now has high resolution.
363 Include systime.h, not time.h.
364 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
365
366 * dired.c: Include stat-time.h.
367 (Ffile-attributes): File times now have higher resolution.
368
369 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
370 (struct image): Timestamp now has higher resolution.
371
372 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
373 has at least microseconds now. All uses removed.
374 (update_frame, update_single_window, update_window, update_frame_1)
375 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
376
377 * editfns.c (time_overflow): Now extern.
378 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
379 (float-time, Fformat_time_string, Fcurrent_time_string)
380 (Fcurrent_time_zone): Accept and generate higher-resolution
381 time stamps.
382 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
383 (decode_time_components, lisp_seconds_argument): New functions.
384 (make_time): Now static.
385 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
386 Report an error if the time is invalid, rather than having the caller
387 do that.
388
389 * fileio.c: Include <stat-time.h>
390 (Fcopy_file): Copy higher-resolution time stamps.
391 Prefer to set the time stamp via a file descriptor if that works.
392 (Fset_file_times, Finsert_file_contents, Fwrite_region)
393 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
394 (Fvisited_file_modtime, Fset_visited_file_modtime):
395 Support higher-resolution time stamps.
396
397 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
398
399 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
400
401 * image.c (prepare_image_for_display, clear_image_cache)
402 (lookup_image): Port to higer-resolution time stamps.
403
404 * keyboard.c (start_polling, bind_polling_period):
405 Check for time stamp overflow.
406 (read_char, kbd_buffer_get_event, timer_start_idle)
407 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
408 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
409 Port to higher-resolution time stamps. Do not assume time_t is signed.
410 (decode_timer): New function. Timers are now vectors of length 9,
411 not 8, to accommodate the picosecond component.
412 (timer_check_2): Use it.
413
414 * nsterm.m (select_timeout, timeval_subtract): Remove.
415 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
416 as they're a bit more accurate and handle overflow better.
417 (ns_select): Change prototype to be compatible with pselect.
418 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
419 * nsterm.h (ns_select): Adjust prototype.
420
421 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
422 us-resolution time stamps.
423 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
424
425 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
426
427 * lisp.h (time_overflow): New decl.
428 (wait_reading_process_output): First arg is now intmax_t, not int,
429 to accommodate larger waits.
430
431 * process.h (struct Lisp_Process.read_output_delay):
432 Now counts nanoseconds, not microseconds.
433 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
434 EMACS_HAS_USECS.
435 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
436 (wait_reading_process_output):
437 Port to ns-resolution time stamps.
438 (Faccept_process_output, wait_reading_process_output):
439 Check for time stamp overflow. Do not assume time_t is signed.
440 (select_wrapper): Remove; we now use pselect.
441 (Fprocess_attributes): Now generates ns-resolution time stamps.
442
443 * sysdep.c: Include utimens.h. Don't include utime.h
444 or worry about struct utimbuf; gnulib does that for us now.
445 (gettimeofday): Remove; gnulib provides a substitute.
446 (make_timeval): New function.
447 (set_file_times): Now sets ns-resolution time stamps.
448 New arg FD; all uses changed.
449 (time_from_jiffies, ltime_from_jiffies, get_up_time)
450 (system_process_attributes):
451 Now returns ns-resolution time stamp. All uses changed.
452 Check for time stamp overflow.
453
454 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
455 provides a substitute now.
456
457 * systime.h: Include timespec.h rather than sys/time.h and time.h,
458 since it guarantees struct timespec.
459 (EMACS_TIME): Now struct timespec, so that we can support
460 ns-resolution time stamps.
461 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
462 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
463 (EMACS_USECS): Remove.
464 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
465 so multiply the arg by 1000 before storing it.
466 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
467 New macros.
468 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
469 Port to ns-resolution time stamps.
470 (EMACS_TIME_NEG_P): Remove; replaced by....
471 (EMACS_TIME_SIGN): New macro.
472 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
473 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
474 (set_file_times, make_time, lisp_time_argument): Adjust signature.
475 (make_timeval, make_lisp_time, decode_time_components): New decls.
476 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
477 that it mishandled time_t overflow. You can't compare by subtracting!
478 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
479 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
480
481 * term.c: Include <sys/time.h>.
482 (timeval_to_Time): New function, for proper overflow wraparound.
483 (term_mouse_position, term_mouse_click): Use it.
484
485 * undo.c (record_first_change): Support higher-resolution time stamps
486 in the undo buffer.
487 (Fprimitive_undo): Use them when restoring time stamps.
488
489 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
490 (w32_get_internal_run_time):
491 Port to higher-resolution Emacs time stamps.
492 (ltime): Now accepts single 64-bit integer, as that's more convenient
493 for callers.
494
495 * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
496
497 * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
498 for compatibility with pselect. Support ns-resolution time stamps.
499
500 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
501
502 * xselect.c (wait_for_property_change, x_get_foreign_selection):
503 Check for time stamp overflow, and support ns-resolution time stamps.
504
505 * xterm.c: Don't include sys/time.h; gnulib does that for us now.
506 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
507 (timeval_subtract): Remove; no longer needed.
508 (XTflash, XTring_bell, x_wait_for_event):
509 Port to ns-resolution time stamps. Don't assume time_t is signed.
510
b6a92dfe
CY
5112012-06-22 Chong Yidong <cyd@gnu.org>
512
513 * xdisp.c (x_consider_frame_title): Revert last change.
514
d251c37c
EZ
5152012-06-22 Eli Zaretskii <eliz@gnu.org>
516
517 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
518 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
519 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
520 staticidx goes up to 1597 out of 1600 = 0x640.)
521
f10deafb
PE
5222012-06-20 Paul Eggert <eggert@cs.ucla.edu>
523
524 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
525 Otherwise, the umask might be mistakenly 0 while handling input signals.
526
ec6de1e2
SM
5272012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
528
529 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
530
28be1ada
DA
5312012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
532
533 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
534 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
535 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
536 access to `contents' member of Lisp_Vector objects with AREF and ASET
537 where appropriate.
538
c6bf3022
CY
5392012-06-19 Chong Yidong <cyd@gnu.org>
540
541 * frame.c (delete_frame): When selecting a frame on a different
542 text terminal, do not alter the terminal's top-frame.
543
544 * xdisp.c (format_mode_line_unwind_data): Record the target
545 frame's selected window and its terminal's top-frame.
546 (unwind_format_mode_line): Restore them.
547 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
548 Callers changed.
549 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
550 since tty frames can be explicitly named.
551 (prepare_menu_bars): Likewise.
552
553 * term.c (Ftty_top_frame): New function.
554
defd4196
PE
5552012-06-18 Paul Eggert <eggert@cs.ucla.edu>
556
557 Port byte-code-meter to modern targets.
558 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
559 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
8b5257e1 560 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
defd4196
PE
561 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
562 (METER_1, METER_2): Simplify.
563
1053a871
SM
5642012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
565
566 * data.c (Fdefalias): Return `symbol' (bug#11686).
567
b7e8d081
MR
5682012-06-18 Martin Rudalics <rudalics@gmx.at>
569
570 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
1053a871
SM
571 gets killed during executing of this function (Bug#11665).
572 Try to always return Qt when the buffer has been actually killed.
b7e8d081
MR
573 (Vkill_buffer_query_functions): In doc-string say that functions
574 run by this hook should not change the current buffer.
575
7ea2b339
PE
5762012-06-18 Paul Eggert <eggert@cs.ucla.edu>
577
578 Fix recently-introduced process.c problems found by static checking.
579 * process.c (write_queue_push, write_queue_pop, send_process):
580 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
581 (write_queue_pop): Fix pointer signedness problem.
582 (send_process): Remove unused local.
583
96a313a1
CY
5842012-06-17 Chong Yidong <cyd@gnu.org>
585
586 * xdisp.c (redisplay_internal): No need to redisplay terminal
587 frames that are not on top.
588
20ca2e94
TN
5892012-06-17 Troels Nielsen <bn.troels@gmail.com>
590
591 * process.c (make_process): Initialize write_queue.
592 (write_queue_push, write_queue_pop): New functions.
593 (send_process): Use them to maintain correct ordering of process
594 writes (Bug#10815).
595
9a900ca9
PE
5962012-06-17 Paul Eggert <eggert@cs.ucla.edu>
597
310fbfa8
PE
598 * lisp.h (eassert): Assume C89 or later.
599 This removes the need for CHECK.
600 (CHECK): Remove. Its comments about always evaluating its
601 argument were confusing, as 'eassert' typically does not evaluate
602 its argument.
603
27bb1ca4
PE
604 * coding.c (produce_chars): Use ptrdiff_t, not int.
605
9a900ca9
PE
606 * xterm.c (x_draw_underwave): Check for integer overflow.
607 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
608
41b7f8bc 6092012-06-17 Jan Djärv <jan.h.d@swipnet.se>
50a93863
JD
610
611 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
612 referenced (Bug#11583).
613
9b0e3eba
AA
6142012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
615
616 Implement wave-style variant of underlining.
617 * dispextern.h (face_underline_type): New enum.
618 (face): Add field for underline type.
619 * nsterm.m (ns_draw_underwave): New function.
620 (ns_draw_text_decoration): Use it.
621 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
622 New functions.
623 (x_draw_glyph_string): Use them.
624 * xfaces.c (Qline, Qwave): New Lisp objects.
625 (check_lface_attrs, merge_face_ref)
1053a871
SM
626 (Finternal_set_lisp_face_attribute, realize_x_face):
627 Handle wave-style underline face attributes.
9b0e3eba
AA
628 * xterm.c (x_draw_underwave): New function.
629 (x_draw_glyph_string): Use it.
630
0fb52f11
JB
6312012-06-16 Juanma Barranquero <lekktu@gmail.com>
632
633 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
634 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
635 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
636 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
637 ($(BLD)/w32select.$(O)): Update dependencies.
638
e5560ff7
AS
6392012-06-16 Andreas Schwab <schwab@linux-m68k.org>
640
641 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
642 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
643 * character.c (_fetch_multibyte_char_p): Remove.
644 * alloc.c: Include "character.h" before "buffer.h".
645 * bidi.c: Likewise.
646 * buffer.c: Likewise.
647 * bytecode.c: Likewise.
648 * callint.c: Likewise.
649 * callproc.c: Likewise.
650 * casefiddle.c: Likewise.
651 * casetab.c: Likewise.
652 * category.c: Likewise.
653 * cmds.c: Likewise.
654 * coding.c: Likewise.
655 * composite.c: Likewise.
656 * dired.c: Likewise.
657 * dispnew.c: Likewise.
658 * doc.c: Likewise.
659 * dosfns.c: Likewise.
660 * editfns.c: Likewise.
661 * emacs.c: Likewise.
662 * fileio.c: Likewise.
663 * filelock.c: Likewise.
664 * font.c: Likewise.
665 * fontset.c: Likewise.
666 * fringe.c: Likewise.
667 * indent.c: Likewise.
668 * insdel.c: Likewise.
669 * intervals.c: Likewise.
670 * keyboard.c: Likewise.
671 * keymap.c: Likewise.
672 * lread.c: Likewise.
673 * macros.c: Likewise.
674 * marker.c: Likewise.
675 * minibuf.c: Likewise.
676 * nsfns.m: Likewise.
677 * nsmenu.m: Likewise.
678 * print.c: Likewise.
679 * process.c: Likewise.
680 * regex.c: Likewise.
681 * region-cache.c: Likewise.
682 * search.c: Likewise.
683 * syntax.c: Likewise.
684 * term.c: Likewise.
685 * textprop.c: Likewise.
686 * undo.c: Likewise.
687 * unexsol.c: Likewise.
688 * w16select.c: Likewise.
689 * w32fns.c: Likewise.
690 * w32menu.c: Likewise.
691 * window.c: Likewise.
692 * xdisp.c: Likewise.
693 * xfns.c: Likewise.
694 * xmenu.c: Likewise.
695 * xml.c: Likewise.
696 * xselect.c: Likewise.
697
2f07e6af
EZ
6982012-06-16 Eli Zaretskii <eliz@gnu.org>
699
1053a871
SM
700 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
701 If all the glyphs of the glyph row came from strings, and we have no
2f07e6af 702 cursor positioning clues, put the cursor on the first glyph of the
1097afe4
EZ
703 row.
704 (handle_face_prop): Use chunk-relative overlay string index when
705 indexing into it->string_overlays array. (Bug#11653)
946fdb73
EZ
706 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
707 the rightmost. (Bug#11720)
2f07e6af 708
29b83cec
AS
7092012-06-16 Andreas Schwab <schwab@linux-m68k.org>
710
711 * category.h (CHAR_HAS_CATEGORY): Define as inline.
712 (CATEGORY_MEMBER): Enforce 1/0 value.
713 * category.c (_temp_category_set): Remove.
714
4c5501e9
EZ
7152012-06-16 Eli Zaretskii <eliz@gnu.org>
716
717 * window.c (Fdelete_other_windows_internal)
718 (Fdelete_window_internal): Don't access frame's mouse highlight
719 info of the initial frame. (Bug#11677)
720
2b570124
PE
7212012-06-14 Paul Eggert <eggert@cs.ucla.edu>
722
e93864f9
PE
723 * .gdbinit (xgetint): Fix recently-introduced paren typo.
724 Assume USE_2_TAGS_FOR_INTS.
725 (xreload): Adjust $tagmask width to match recent lisp.h change.
726
2b570124
PE
727 Simplify lisp.h in minor ways that should not affect code.
728 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
729 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
730 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
731 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
732 (INTTYPEBITS): New macro, for clarity.
733 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
1053a871
SM
734 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
735 Simplify now that USE_LSB_TAG is always defined.
2b570124
PE
736 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
737 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
738
81755f69
JB
7392012-06-13 Juanma Barranquero <lekktu@gmail.com>
740
741 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
742
16192a57
GM
7432012-06-13 Glenn Morris <rgm@gnu.org>
744
745 * s/bsd-common.h (BSD4_3):
746 * s/usg5-4-common.h (USG5_4): No longer define; unused.
747
646b5f55
AS
7482012-06-13 Andreas Schwab <schwab@linux-m68k.org>
749
750 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
751 instead of union.
752 (XLI, XIL): Define.
1053a871
SM
753 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
754 Use them.
755 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
646b5f55 756 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
1053a871 757 * alloc.c (widen_to_Lisp_Object): Remove.
646b5f55
AS
758 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
759 * frame.c (delete_frame): Remove outdated comment.
760 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
761 USE_LISP_UNION_TYPE.
762 (Fw32_unregister_hot_key): Likewise.
763 (Fw32_toggle_lock_key): Likewise.
764 * w32menu.c (add_menu_item): Likewise.
765 (w32_menu_display_help): Use XIL instead of checking
766 USE_LISP_UNION_TYPE.
767 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
768 (init_heap): Likewise.
769 * w32term.c (w32_read_socket): Update comment.
770
1d3823c9
GM
7712012-06-13 Glenn Morris <rgm@gnu.org>
772
c62ff706
GM
773 * s/usg5-4-common.h, src/s/unixware.h:
774 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
775
1d3823c9
GM
776 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
777
bfe3e0a2
PE
7782012-06-13 Paul Eggert <eggert@cs.ucla.edu>
779
780 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
781 * alloc.c (make_number) [!defined make_number]:
782 Remove, as lisp.h always defines this now.
783 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
784 (roundup_size): Verify that it is a power of 2.
785 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
786 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
787 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
788 -DUSE_LSB_TAG=0, to override the automatically-selected default.
789 USE_LSB_TAG now is always defined to be either 0 or 1.
790 All uses changed.
791 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
792 code works fine either way, and efficiency is not a concern here,
793 as the union type is for debugging, not for production.
794 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
795 Use an inline function on all platforms when using the union type,
796 since this is simpler and 'static inline' can be used portably
797 within Emacs now.
798 (LISP_INITIALLY_ZERO): New macro.
799 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
800 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
801
45fa9c0f
GM
8022012-06-12 Glenn Morris <rgm@gnu.org>
803
b4492cba
GM
804 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
805
806 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
0d369729 807
45fa9c0f
GM
808 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
809 Move BROKEN_SIGIO to configure.
810
811 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
812 Move NO_TERMIO to configure.
813
0e25d334
CY
8142012-06-12 Chong Yidong <cyd@gnu.org>
815
816 * image.c (imagemagick_load_image): Use MagickFlattenImage if
817 MagickMergeImageLayers is undefined. Use pixel pusher loop if
818 MagickExportImagePixels is undefined.
819
43682bb6
PE
8202012-06-12 Paul Eggert <eggert@cs.ucla.edu>
821
822 * image.c (imagemagick_load_image): Remove unused label.
823
a9be7d2b
GM
8242012-06-11 Glenn Morris <rgm@gnu.org>
825
826 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
827 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
828 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
829 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
830
3017f87f
SM
8312012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
832
833 * alloc.c (make_byte_code): New function.
834 (Fmake_byte_code): Use it. Don't purify here.
835 * lread.c (read1): Use it as well to avoid extra allocation.
836
1b9b4cf4
CY
8372012-06-11 Chong Yidong <cyd@gnu.org>
838
839 * image.c (imagemagick_load_image): Implement transparency.
840
95988fcf
AS
8412012-06-10 Andreas Schwab <schwab@linux-m68k.org>
842
843 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
844 account for preceding backslashes. (Bug#11663)
845
cd4eb164
CY
8462012-06-09 Chong Yidong <cyd@gnu.org>
847
848 * term.c: Support italics in capable terminals (Bug#9652).
849 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
850 (turn_on_face): Output using TS_enter_italic_mode if available.
851 Don't handle unused blinking and alt-charset cases.
852 (turn_off_face): Handle italic case; discard unused tty_blinking_p
853 and tty_alt_charset_p cases.
854 (tty_capable_p, init_tty): Support italics.
855
856 * termchar.h (struct tty_display_info): Add field for italics.
857 Remove unused blink field.
858
859 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
860 Handle slant.
861
862 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
863 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
864 tty_alt_charset_p. Add tty_italic_p.
865
ff88beb8
MA
8662012-06-09 Michael Albinus <michael.albinus@gmx.de>
867
868 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
869 dbus_type_is_basic if available.
870 (xd_extract_signed, xd_extract_unsigned): Rename from
871 extract_signed and extract_unsigned, respectively. Adapt callers.
872
44286096
CY
8732012-06-09 Chong Yidong <cyd@gnu.org>
874
1682701f
CY
875 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
876
44286096
CY
877 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
878 case (Bug#9752).
879
d86feb17
PE
8802012-06-08 Paul Eggert <eggert@cs.ucla.edu>
881
882 * xdisp.c (vmessage): Treat frame message as multibyte.
883 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
884 would generate the diagnostic "Making \302\247 buffer-local while
885 let-bound!".
886
d5c20fe8
EZ
8872012-06-08 Eli Zaretskii <eliz@gnu.org>
888
889 * dispnew.c (showing_window_margins_p): Undo last change, which
890 was done due to an inadvertent commit.
891 (adjust_frame_glyphs_for_frame_redisplay): Do call
892 showing_window_margins_p.
893
513749ee
SM
8942012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
895
896 * eval.c (Fmake_var_non_special): New primitive.
897 (syms_of_eval): Defsubr it.
898 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
899
d4a8f5c1
JB
9002012-06-08 Juanma Barranquero <lekktu@gmail.com>
901
902 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
903 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
904
8bbbc977
EZ
9052012-06-08 Eli Zaretskii <eliz@gnu.org>
906
907 * alloc.c (allocate_vectorlike): Fix last change.
908
f3372c87
DA
9092012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
910
911 Block-based vector allocation of small vectors.
912 * lisp.h (struct vectorlike_header): New field `nbytes',
913 adjust comment accordingly.
914 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
915 to denote vector blocks. Adjust users (live_vector_p,
916 mark_maybe_pointer, valid_lisp_object_p) accordingly.
917 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
918 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES),
919 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX),
920 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST),
921 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
922 (roundup_size): New constant.
923 (struct vector_block): New data type.
924 (vector_blocks, vector_free_lists, zero_vector): New variables.
513749ee 925 (all_vectors): Rename to `large_vectors'.
f3372c87
DA
926 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
927 (sweep_vectors): New functions.
928 (allocate_vectorlike): Return `zero_vector' as the only vector of
929 0 items. Allocate new vector from block if vector size is less than
930 or equal to VBLOCK_BYTES_MAX.
931 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
932 (init_alloc_once): Add call to init_vectors.
933
4f18a4ed
SM
9342012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
935
936 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
937
86f158bc
PE
9382012-06-07 Paul Eggert <eggert@cs.ucla.edu>
939
940 * doprnt.c (doprnt): Truncate multibyte char correctly.
941 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
942 would mishandle a string argument "Xc" if X was a multibyte
943 character of length 2: it would truncate after X's first byte
944 rather than including all of X.
945
c5cfcbe0
CY
9462012-06-06 Chong Yidong <cyd@gnu.org>
947
948 * buffer.c (word_wrap): Doc fix.
949
c05cf390
PE
9502012-06-04 Paul Eggert <eggert@cs.ucla.edu>
951
952 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
953
0c3461de
GM
9542012-06-03 Glenn Morris <rgm@gnu.org>
955
956 * xdisp.c (tool-bar-style): Doc fix.
957
c71232db
UM
9582012-06-03 Ulrich Müller <ulm@gentoo.org>
959
960 * Makefile.in (PAXCTL): Define.
961 (temacs$(EXEEXT)): Disable memory randomization for the temacs
962 binary via PaX flags if the paxctl utility is available.
963 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
964 Restore PaX flags to their default. (Bug#11398)
965
383f7350
CY
9662012-06-03 Chong Yidong <cyd@gnu.org>
967
968 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
969 buffer (Bug#11226).
970
5f2c76c6
CY
9712012-06-03 Chong Yidong <cyd@gnu.org>
972
973 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
974 (note_mode_line_or_margin_highlight): If there is no help echo,
975 use mode-line-default-help-echo. Handle the case where the mouse
976 position is past the end of the mode line string.
977
978 * buffer.c (buffer_local_value_1): New function, split from
979 Fbuffer_local_value; can return Qunbound.
980 (Fbuffer_local_value): Use it.
981 (Vmode_line_format): Docstring tweaks.
982
773d47f6
PE
9832012-06-02 Paul Eggert <eggert@cs.ucla.edu>
984
985 * sysdep.c (system_process_attributes): Improve comment.
986
f2d6a3df
SM
9872012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
988
989 * keyboard.c: Export real-this-command to Elisp.
990 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
991 and DEFVAR it. Update all users.
992
63810350
PE
9932012-06-02 Paul Eggert <eggert@cs.ucla.edu>
994
7bd5c1f4
PE
995 * minibuf.c (Fassoc_string): Remove duplicate declaration.
996
63810350
PE
997 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
998 Convert pctcpu and pctmem to Lisp float properly.
999 Let the compiler fold better, as 100.0/0x8000 is exact.
1000
a2821611
AS
10012012-06-02 Andreas Schwab <schwab@linux-m68k.org>
1002
1003 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
1004 cons_block.
1005
5fceba1d
PE
10062012-06-01 Paul Eggert <eggert@cs.ucla.edu>
1007
1008 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
1009
c98ff5dd
DA
10102012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
1011
1012 For a 'struct window', replace some Lisp_Object fields to
1013 bitfields where appropriate, remove unused fields.
1014 * window.h (struct window): Remove unused 'last_mark_x' and
1015 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
1016 change it's type from Lisp_Object to bitfield.
1017 Change type of 'force_start', 'optional_new_start',
1018 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
1019 fields from Lisp_Object to bitfield. Adjust users accordingly.
1020
ca34e0be
PE
10212012-05-31 Paul Eggert <eggert@cs.ucla.edu>
1022
1023 Pacify gcc -Wdouble-precision when using Xaw.
1024 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
1025 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
1026 Use 'float' consistently, rather than 'float' in most places
1027 and 'double' in a couple of places.
1028
efc00ab1 10292012-05-31 Eli Zaretskii <eliz@gnu.org>
d5fd2c54
EZ
1030
1031 * xdisp.c (handle_stop): Detect whether we have overlay strings
1032 loaded by testing it->current.overlay_string_index to be
1033 non-negative, instead of checking whether n_overlay_strings is
1034 positive. (Bug#11587)
1035
efc00ab1 10362012-05-31 Chong Yidong <cyd@gnu.org>
353c87f6
CY
1037
1038 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
1039
1040 * doc.c (Fsubstitute_command_keys): Doc fix.
1041
efc00ab1 10422012-05-31 Eli Zaretskii <eliz@gnu.org>
a02ae4e5
EZ
1043
1044 * search.c (search_buffer): Remove calls to
1045 r_alloc_inhibit_buffer_relocation, as it is now called by
1046 maybe_unify_char, which was the cause of relocation of buffer text
1047 in bug#11519.
1048
efc00ab1 10492012-05-31 Eli Zaretskii <eliz@gnu.org>
291d430f
EZ
1050
1051 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
1052 for the duration of call to load_charset, to avoid problems with
1053 callers of maybe_unify_char that access buffer text through C
1054 pointers.
1055
1056 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
1057 decrement the inhibition flag, instead of just setting or
1058 resetting it.
1059
ba93a187
PE
10602012-05-31 Paul Eggert <eggert@cs.ucla.edu>
1061
1062 Remove obsolete '#define static' cruft.
1063 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
1064 This #undef was "temporary" in 2000; it is no longer needed
1065 now that '#define static' has gone away.
1066 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
1067 (gray_bitmap_bits): Remove; no longer needed.
1068 All uses replaced with definiens.
1069 * xterm.c: Include "bitmaps/gray.xbm".
1070
9e4bf381
PE
10712012-05-30 Paul Eggert <eggert@cs.ucla.edu>
1072
1073 Clean up __executable_start, monstartup when --enable-profiling.
1074 The following changes affect the code only when profiling.
1075 * dispnew.c (__executable_start): Rename from safe_bcopy.
1076 Define only on platforms that need it.
1077 * emacs.c: Include <sys/gmon.h> when profiling.
1078 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
1079 (__executable_start): Remove decl, since lisp.h does it now.
1080 (safe_bcopy): Remove decl; no longer has that name.
1081 (main): Coalesce #if into single bit of code, for simplicity.
1082 Cast pointers to uintptr_t, since standard libraries want integers
1083 and not pointers.
1084 * lisp.h (__executable_start): New decl.
1085
32d72c2f
GM
10862012-05-31 Glenn Morris <rgm@gnu.org>
1087
1088 * image.c (Fimagemagick_types): Doc fix.
1089
baac5bc7
JM
10902012-05-30 Jim Meyering <meyering@redhat.com>
1091
1092 * callproc.c (Fcall_process_region): Include directory component
1093 in mkstemp error message (Bug#11586).
1094
72cb32cf
PE
10952012-05-30 Paul Eggert <eggert@cs.ucla.edu>
1096
1097 * alloc.c, lisp.h (make_pure_vector): Now static.
1098
61b108cc
SM
10992012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
1100
1101 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
1102 Move to byte-run.el.
1103 (Fautoload): Do the hash-doc more carefully.
1104 * data.c (Fdefalias): Purify definition, except for keymaps.
1105 (Qdefun): Move from eval.c.
1106 * lisp.h (Qdefun): Remove.
1107 * lread.c (read1): Tiny simplification.
1108
471fe23d
TN
11092012-05-29 Troels Nielsen <bn.troels@gmail.com>
1110
934f3f58 1111 Do not create empty overlays with the evaporate property (Bug#9642).
471fe23d
TN
1112 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
1113 Bug#9642, but explicitly check that the buffer the overlay would
1114 be moved to is live and rearrange lines to make sure that errors
1115 will not put the overlay in an inconsistent state.
1116 (Fdelete_overlay): Cosmetics.
1117
85d0efd1
EZ
11182012-05-28 Eli Zaretskii <eliz@gnu.org>
1119
1120 * w32term.c (my_bring_window_to_top): New function.
1121 (x_raise_frame): Use handle returned by DeferWindowPos, which
61b108cc
SM
1122 could be different from the original one.
1123 Call my_bring_window_to_top instead of my_set_foreground_window.
85d0efd1
EZ
1124 (Bug#11513)
1125
1126 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
1127 by calling BringWindowToTop.
1128
1129 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
1130 (WM_EMACS_END): Increase by one.
1131
da92a98c
PE
11322012-05-28 Paul Eggert <eggert@cs.ucla.edu>
1133
1134 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
1135 This avoids undefined behavior that might cause the eassert
1136 to not catch an out-of-range value.
1137
74d1f848
JB
11382012-05-28 Juanma Barranquero <lekktu@gmail.com>
1139
1140 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
1141 Update dependencies.
1142
9e1a06fc
EZ
11432012-05-27 Eli Zaretskii <eliz@gnu.org>
1144
1145 * bidi.c (bidi_mirror_char): Fix last change.
1146
f3dd7312
AS
11472012-05-27 Andreas Schwab <schwab@linux-m68k.org>
1148
1149 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
1150 when referring to sectname field in printf format.
1151
81899c91
PE
11522012-05-27 Paul Eggert <eggert@cs.ucla.edu>
1153
57b81a9f
PE
1154 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
1155 Only r_alloc_inhibit_buffer_relocation needed to be added;
1156 the others were already declared.
1157
81899c91
PE
1158 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
1159 before checking whether it's out of range. Put the check inside
1160 eassert. See
1161 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
1162
33017faf 11632012-05-27 Ken Brown <kbrown@cornell.edu>
2f9b9adb
KB
1164
1165 * callproc.c (Fcall_process): Restore a line that was accidentally
1166 commented out in the 2011-02-13 change (bug#11547).
1167
33017faf 11682012-05-27 Eli Zaretskii <eliz@gnu.org>
52c55cc7
EZ
1169
1170 * lisp.h [REL_ALLOC]: Add prototypes for external functions
1171 defined on ralloc.c.
1172
1173 * buffer.c [REL_ALLOC]: Remove prototypes of
1174 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
1175 they are now on lisp.h.
1176
1177 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
1178
1179 * search.c (search_buffer): Use it to inhibit relocation of buffer
1180 text while re_search_2 is doing its job, because re_search_2 is
1181 passed C pointers to buffer text. (Bug#11519)
1182
23415acf
EZ
1183 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
1184 Update value to 24.
1185
44e27368
EZ
1186 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
1187 state after an additional call to move_it_in_display_line_to, keep
1188 the values of it->max_ascent and it->max_descent found for the
1189 entire line.
1190 (pos_visible_p): Revert the comparison against bottom_y to what it
1191 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
1192 (Bug#11464)
1193
c1892f11
PE
11942012-05-26 Paul Eggert <eggert@cs.ucla.edu>
1195
1196 Fix coding-related core dumps with gcc -ftrapv.
1197 The code was computing A - B, where A and B are pointers, and B is
1198 random garbage. This can lead to core dumps on platforms that
1199 have special pointer registers, and it also leads to core dumps on
1200 x86-64 when compiled with gcc -ftrapv. The fix is to compute
1201 A - B only when B is initialized properly.
1202 * coding.c (coding_set_source, coding_set_destination): Return void.
1203 (coding_change_source, coding_change_destinations): New functions,
1204 with the old behaviors of coding_set_source and coding_set_destination.
1205 All callers that need an offset changed to use these new functions.
1206
eb7afdad
GM
12072012-05-26 Glenn Morris <rgm@gnu.org>
1208
1209 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
1210
f12fdf02
EZ
12112012-05-26 Eli Zaretskii <eliz@gnu.org>
1212
53a63be6 1213 Extend mouse support on W32 text-mode console.
61b108cc
SM
1214 * xdisp.c (draw_row_with_mouse_face):
1215 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
eb3f6f01 1216
eb3f6f01 1217 * w32console.c: Include window.h.
61b108cc
SM
1218 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
1219 New functions.
eb3f6f01
EZ
1220 (initialize_w32_display): Initialize mouse-highlight data.
1221
53a63be6
EZ
1222 * w32inevt.c: Include termchar.h and window.h.
1223 (do_mouse_event): Support mouse-autoselect-window. When the mouse
1224 moves, call note_mouse_highlight. If help_echo changed, call
1225 gen_help_event to produce help-echo message in the echo area.
1226 Call clear_mouse_face if mouse_face_hidden is set in the mouse
1227 highlight info.
1228
4cfd81f6
PE
12292012-05-26 Paul Eggert <eggert@cs.ucla.edu>
1230
1231 * lread.c (read1): Simplify slightly to avoid an overflow warning
1232 with GCC 4.7.0 on x86-64.
1233
4446092a
EZ
12342012-05-26 Eli Zaretskii <eliz@gnu.org>
1235
1236 * bidi.c (bidi_mirror_char): Revert last change: an int is
1237 definitely wide enough here.
1238
42b2a986 12392012-05-25 Paul Eggert <eggert@cs.ucla.edu>
3164aeac 1240
42b2a986 1241 Fix integer width and related bugs (Bug#9874).
eb106a49 1242 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
d311d28c
PE
1243 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
1244 (string_bytes, check_sblock, allocate_string_data):
1245 (compact_small_strings, Fmake_bool_vector, make_string)
1246 (make_unibyte_string, make_multibyte_string)
1247 (make_string_from_bytes, make_specified_string)
1248 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
1249 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
1250 (mark_vectorlike):
1251 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1252 (allocate_pseudovector):
1253 Use int, not EMACS_INT, where int is wide enough.
1254 (inhibit_garbage_collection, Fgarbage_collect):
1255 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1256 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
1257 int might not be wide enough.
1258 (bidi_cache_search, bidi_cache_find, bidi_init_it)
1259 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
1260 (bidi_at_paragraph_end, bidi_find_paragraph_start)
1261 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
1262 (bidi_level_of_next_char, bidi_move_to_visually_next):
1263 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1264 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
1265 (Fkill_buffer, Fset_buffer_major_mode)
1266 (advance_to_char_boundary, Fbuffer_swap_text)
1267 (Fset_buffer_multibyte, overlays_at, overlays_in)
1268 (overlay_touches_p, struct sortvec, record_overlay_string)
1269 (overlay_strings, recenter_overlay_lists)
1270 (adjust_overlays_for_insert, adjust_overlays_for_delete)
1271 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
1272 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
1273 (Foverlay_recenter, last_overlay_modification_hooks_used)
1274 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
1275 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
977b0e45
PE
1276 (validate_region): Omit unnecessary test for b <= e,
1277 since that's guaranteed by the previous test.
d311d28c
PE
1278 (adjust_overlays_for_delete): Avoid pos + length overflow.
1279 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
1280 (report_overlay_modification):
1281 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1282 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
1283 Omit pointer cast, which isn't needed anyway, and doesn't work
1284 after the EMACS_INT -> ptrdiff_t change.
02481186 1285 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
d311d28c
PE
1286 * buffer.h: Adjust decls to match defn changes elsewhere.
1287 (struct buffer_text, struct buffer):
1288 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1289 Use EMACS_INT, not int, where int might not be wide enough.
39b5db3b
PE
1290 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
1291 not int, to avoid needless 32-bit limit on 64-bit hosts.
1292 (exec_byte_code): Use tighter memory-full test, one that checks
1293 for alloca overflow. Don't compute the address of the object just
1294 before an array, as that's not portable. Use EMACS_INT, not
1295 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
d311d28c
PE
1296 * callint.c (Fcall_interactively):
1297 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1298 * callproc.c (call_process_kill, Fcall_process):
1299 Don't assume pid_t fits into an Emacs fixnum.
1300 (call_process_cleanup, Fcall_process, child_setup):
1301 Don't assume pid_t fits into int.
1302 (call_process_cleanup, Fcall_process, delete_temp_file)
1303 (Fcall_process_region):
1304 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1305 (Fcall_process): Simplify handling of volatile integers.
1306 Use int, not EMACS_INT, where int will do.
1307 * casefiddle.c (casify_object, casify_region, operate_on_word)
1308 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
1309 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1310 (casify_object): Avoid integer overflow when overallocating buffer.
1311 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
45c2afd6 1312 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
d311d28c
PE
1313 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
1314 * category.h (CATEGORYP): Don't assume arg is nonnegative.
1315 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
1316 integers are now checked earlier. All uses replaced with XINT.
1317 (ccl_driver):
1318 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1319 For CCL_MapSingle, check that content and value are in int range.
c801946a
PE
1320 (ccl_driver, Fregister_code_conversion_map):
1321 Check that Vcode_version_map_vector is a vector.
d311d28c
PE
1322 (resolve_symbol_ccl_program): Check that vector header is in range.
1323 Always copy the vector, so that we can check its contents reliably
1324 now rather than having to recheck each instruction as it's being
1325 executed. Check that vector words fit in 'int'.
1326 (ccl_get_compiled_code, Fregister_ccl_program)
1327 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
1328 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
1329 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
1330 contents are in range.
1331 (Fccl_execute_on_string): Check that status is in range.
1332 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
1333 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
1334 Accept and return EMACS_INT, not int, because callers can pass values
1335 out of 'int' range.
1336 (c_string_width, strwidth, lisp_string_width, chars_in_text)
1337 (multibyte_chars_in_text, parse_str_as_multibyte)
1338 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
1339 (str_as_unibyte, str_to_unibyte, string_count_byte8)
1340 (string_escape_byte8, Fget_byte):
1341 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
a14e1568 1342 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
d311d28c
PE
1343 avoid mishandling large integers.
1344 * character.h: Adjust decls to match defn changes elsewhere.
1345 * charset.c (load_charset_map_from_file, find_charsets_in_text)
1346 (Ffind_charset_region):
1347 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1348 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
1349 (load_charset_map_from_vector, Fdefine_charset_internal):
3c7649c1 1350 Don't assume fixnum fits in int.
d311d28c
PE
1351 (load_charset_map_from_vector, Fmap_charset_chars):
1352 Remove now-unnecessary CHECK_NATNUMs.
1353 (Fdefine_charset_internal): Check ranges here, more carefully.
3c7649c1
PE
1354 Don't rely on undefined behavior with signed left shift overflow.
1355 Don't assume unsigned int fits into fixnum, or that fixnum fits
1356 into unsigned int. Don't require max_code to be a valid fixnum;
1357 that's not true for gb10830 4-byte on a 32-bit host. Allow
1358 invalid_code to be a cons, for the same reason. Require code_offset
1359 to be a character. Avoid int overflow if max_char is close
1360 to INT_MAX.
1361 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
1362 this is intended anyway and avoids some undefined behavior.
1363 (load_charset_map): Pass unsigned, not int, as 2nd arg of
1364 INDEX_TO_CODE_POINT, as that's what it expects.
1365 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
60ad3eab
PE
1366 * charset.h (DECODE_CHAR): Return int, not unsigned;
1367 this is what was intended anyway, and it avoids undefined behavior.
1368 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
1369 integer-overflow issues.
1370 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
1371 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
1372 where the argument is EMACS_INT, and this behavior is not intended.
d311d28c
PE
1373 * chartab.c (Fmake_char_table, Fset_char_table_range)
1374 (uniprop_get_decoder, uniprop_get_encoder):
1375 Don't assume fixnum fits in int.
1376 * cmds.c (move_point): New function, that does the gist of
1377 Fforward_char and Fbackward_char, but does so while checking
1378 for integer overflow more accurately.
c96e5d6a 1379 (Fforward_char, Fbackward_char): Use it.
d311d28c
PE
1380 (Fforward_line, Fend_of_line, internal_self_insert)
1381 (internal_self_insert):
1382 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1383 Fix a FIXME, by checking for integer overflow when calculating
1384 target_clm and actual_clm.
1385 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
8f50130c 1386 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
d311d28c
PE
1387 (ASSURE_DESTINATION, coding_alloc_by_realloc)
1388 (coding_alloc_by_making_gap, alloc_destination)
1389 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
1390 (encode_coding_utf_16, detect_coding_emacs_mule)
1391 (decode_coding_emacs_mule, encode_coding_emacs_mule)
1392 (detect_coding_iso_2022, decode_coding_iso_2022)
1393 (encode_invocation_designation, encode_designation_at_bol)
1394 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
1395 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
1396 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
1397 (encode_coding_ccl, encode_coding_raw_text)
1398 (detect_coding_charset, decode_coding_charset)
1399 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
1400 (produce_composition, produce_charset, produce_annotation)
1401 (decode_coding, handle_composition_annotation)
1402 (handle_charset_annotation, consume_chars, decode_coding_gap)
1403 (decode_coding_object, encode_coding_object, detect_coding_system)
1404 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
1405 (code_convert_region, code_convert_string)
8f50130c
PE
1406 (Fdefine_coding_system_internal)
1407 (coding_set_source, coding_set_destination):
d311d28c
PE
1408 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1409 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
1410 (Fdefine_coding_system_internal):
1411 Don't assume fixnums fit in int.
1412 (decode_coding_gap, decode_coding_object, encode_coding_object)
5895d7b9 1413 (Fread_coding_system, Fdetect_coding_region)
2c6a9faa
PE
1414 (Funencodable_char_position, Fcheck_coding_systems_region)
1415 (get_translation, handle_composition_annotation, consume_chars):
d311d28c 1416 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
977b0e45 1417 (consume_chars): Rewrite to not calculate an address outside buffer.
d311d28c 1418 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
7b09a37a 1419 Don't access memory outside of the args array.
d311d28c 1420 (Fdefine_coding_system_internal): Check for charset-id overflow.
47664caa
PE
1421 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
1422 result of ENCODE_CHAR.
d311d28c
PE
1423 * coding.h: Adjust decls to match defn changes elsewhere.
1424 (struct coding_system):
1425 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1426 * composite.c (get_composition_id, find_composition)
1427 (run_composition_function, update_compositions)
1428 (compose_text, composition_gstring_put_cache)
1429 (composition_gstring_p, composition_gstring_width)
1430 (fill_gstring_header, fill_gstring_body, autocmp_chars)
1431 (composition_compute_stop_pos, composition_reseat_it)
1432 (composition_update_it, struct position_record)
1433 (find_automatic_composition, composition_adjust_point)
1434 (Fcomposition_get_gstring, Ffind_composition_internal):
1435 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1436 (update_compositions):
1437 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1438 * composite.h: Adjust decls to match defn changes elsewhere.
1439 (struct composition):
1440 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1441 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
1442 Do not attempt to compute the address of the object just before a
1443 buffer; this is not portable.
1444 (Faref, Faset):
1445 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1446 (Faset): Use int, not EMACS_INT, where int is wide enough.
1447 (Fstring_to_number): Don't assume fixnums fit in int.
1448 (Frem): Don't assume arg is nonnegative.
1449 * dbusbind.c (xd_append_arg): Check for integers out of range.
1450 (Fdbus_call_method): Don't overflow the timeout int.
42b2a986 1451 (extract_signed, extract_unsigned): New functions.
243e0530
PE
1452 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
1453 (xd_get_connection_references): Return ptrdiff_t, not int.
1454 All uses changed.
1455 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
1456 (xd_read_message_1):
1457 Use int, not unsigned, where the dbus API uses int.
1458 (Fdbus_message_internal): Don't overflow mtype.
1459 (syms_of_dbusbind): Allocate right-sized buffer for integers.
d311d28c
PE
1460 * dired.c (directory_files_internal, file_name_completion, scmp)
1461 (file_name_completion_stat):
1462 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1463 (file_name_completion): Don't overflow matchcount.
1464 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
1465 * dispextern.h: Adjust decls to match defn changes elsewhere.
1466 (struct text_pos, struct glyph, struct bidi_saved_info)
1467 (struct bidi_string_data, struct bidi_it, struct composition_it)
1468 (struct it):
1469 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1470 (struct display_pos, struct composition_it, struct it):
1471 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1472 * dispnew.c (increment_matrix_positions)
1473 (increment_row_positions, mode_line_string)
1474 (marginal_area_string):
1475 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
54e1617f 1476 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
d311d28c
PE
1477 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1478 (duration_to_sec_usec): New function, to check for overflow better.
1479 (Fsleep_for, sit_for): Use it.
1480 * doc.c (get_doc_string, store_function_docstring):
1481 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1482 (get_doc_string, Fsnarf_documentation):
1483 Use int, not EMACS_INT, where int is wide enough.
1484 (get_doc_string):
1485 Use SAFE_ALLOCA, not alloca.
1486 Check for overflow when converting EMACS_INT to off_t.
1487 * doprnt.c (doprnt):
1488 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1489 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
1490 Don't assume uid_t fits into fixnum.
1491 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
1492 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
1493 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
1494 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
1495 (general_insert_function)
1496 (Finsert_char, make_buffer_string, make_buffer_string_both)
1497 (update_buffer_properties, Fbuffer_substring)
1498 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
1499 (Fsubst_char_in_region, check_translation)
1500 (Ftranslate_region_internal, save_restriction_restore, Fformat)
1501 (transpose_markers, Ftranspose_regions):
1502 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1503 (clip_to_bounds): Move to lisp.h as an inline function).
1504 (Fconstrain_to_field): Don't assume integers are nonnegative.
1505 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
1506 (Fsubst_char_in_region, Fsave_restriction):
1507 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1508 (Femacs_pid): Don't assume pid_t fits into fixnum.
1509 (lo_time): Use int, not EMACS_INT, when int suffices.
1510 (lisp_time_argument): Check for usec out of range.
1511 (Fencode_time): Don't assume fixnum fits in int.
3f4eabd1
PE
1512 (Fuser_login_name, Fuser_full_name): Signal an error
1513 if a uid argument is out of range, rather than relying on
1514 undefined behavior.
c8d5c857
PE
1515 (Fformat_time_string): Remove now-unnecessary check.
1516 lisp_time_argument checks for out-of-range usec now.
243e0530 1517 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
d311d28c
PE
1518 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
1519 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
1520 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
1521 (init_cmdargs, Fdump_emacs):
1522 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1523 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
1524 the bottom (typically) 32 bits of the fixnum.
1525 * eval.c (specpdl_size, call_debugger):
1526 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1527 (when_entered_debugger, Fbacktrace_debug):
1528 Don't assume fixnum can fit in int.
1529 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
1530 the object just before a buffer; this is not portable.
1531 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
1532 (grow_specpdl, unbind_to):
1533 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1534 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
1535 (grow_specpdl): Simplify allocation by using xpalloc.
856bbc81 1536 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
d311d28c
PE
1537 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
1538 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
1539 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1540 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
1541 (a_write, e_write):
1542 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1543 (Fcopy_file, non_regular_nbytes, read_non_regular)
1544 (Finsert_file_contents):
1545 Use int, not EMACS_INT, where int is wide enough.
1546 (READ_BUF_SIZE): Verify that it fits in int.
1547 (Finsert_file_contents): Check that counts are in proper range,
1548 rather than assuming fixnums fit into ptrdiff_t etc.
1549 Don't assume fixnums fit into int.
125b3835 1550 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
5895d7b9
PE
1551 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
1552 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
d311d28c
PE
1553 (string_char_to_byte, string_byte_to_char)
1554 (string_make_multibyte, string_to_multibyte)
1555 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
1556 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
1557 (substring_both, Fdelete, internal_equal, Ffillarray)
1558 (Fclear_string, mapcar1)
1559 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
1560 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
1561 (larger_vector, make_hash_table, maybe_resize_hash_table)
1562 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
1563 (Fmaphash, secure_hash):
1564 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1565 (concat): Check for string index and length overflow.
1566 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
1567 (Frequire):
1568 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1569 (larger_vector): New API (vec, incr_min, size_max) replaces old
1570 one (vec, new_size, init). This catches size overflow.
1571 INIT was removed because it was always Qnil.
1572 All callers changed.
1573 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
1574 the upper bound on a hash table index size.
1575 (make_hash_table, maybe_resize_hash_table): Use it.
1576 (secure_hash): Computer start_byte and end_byte only after
1577 they're known to be in ptrdiff_t range.
1578 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
1579 (Ffont_get_glyphs, Ffont_at):
1580 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1581 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
1582 (Flist_fonts, Fopen_font):
1583 Don't assume fixnum can fit in int.
1584 (check_gstring): Don't assume index can fit in int.
1585 (font_match_p): Check that fixnum is a character, not a nonnegative
1586 fixnum, since the later code needs to stuff it into an int.
1587 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
1588 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
1589 conversion overflow issues.
1590 (Fopen_font): Check for integer out of range.
1591 (Ffont_get_glyphs): Don't assume index can fit in int.
1592 * font.h: Adjust decls to match defn changes elsewhere.
1593 * fontset.c (reorder_font_vector): Redo score calculation to avoid
1594 integer overflow.
1595 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
1596 printmax_t, where ptrdiff_t is wide enough.
1597 (Finternal_char_font):
1598 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1599 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
1600 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
1601 (Fset_frame_position, x_set_frame_parameters)
1602 (x_set_line_spacing, x_set_border_width)
1603 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
1604 Check that fixnums are in proper range for system types.
1605 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
1606 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1607 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
1608 Use SAFE_ALLOCA_LISP, not alloca.
1609 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
1610 intptr_t is wide enough.
1611 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
1612 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
1613 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
1614 Check for fixnum out of range.
1615 * ftfont.c (ftfont_list): Don't assume index fits in int.
1616 Check that fixnums are in proper range for system types.
1617 (ftfont_shape_by_flt):
1618 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
d311d28c
PE
1619 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
1620 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1621 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
1622 Check that fixnums are in proper range for system types.
1623 * gnutls.h: Adjust decls to match defn changes elsewhere.
1624 * gtkutil.c (xg_dialog_run):
1625 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1626 (update_frame_tool_bar):
1627 Check that fixnums are in proper range for system types.
1628 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
5895d7b9 1629 (lookup_image): Check that fixnums are in range for system types.
d311d28c
PE
1630 * indent.c (last_known_column, last_known_column_point):
1631 (current_column_bol_cache):
1632 (skip_invisible, current_column, check_display_width):
1633 (check_display_width, scan_for_column, current_column_1)
1634 (Findent_to, Fcurrent_indentation, position_indentation)
1635 (indented_beyond_p, Fmove_to_column, compute_motion):
1636 (Fcompute_motion, Fvertical_motion):
1637 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1638 (last_known_column_modified): Use EMACS_INT, not int.
1639 (check_display_width):
1640 (Fcompute_motion):
1641 Check that fixnums and floats are in proper range for system types.
1642 (compute_motion): Don't assume index or fixnum fits in int.
1643 (compute_motion, Fcompute_motion):
1644 Use int, not EMACS_INT, when it is wide enough.
1645 (vmotion): Omit local var start_hpos that is always 0; that way
1646 we don't need to worry about overflow in expressions involving it.
1647 * indent.h: Adjust decls to match defn changes elsewhere.
1648 (struct position):
1649 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1650 Use int, not EMACS_INT, where int is wide enough.
1651 Remove unused members ovstring_chars_done and tab_offset;
1652 all uses removed.
1653 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
1654 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
1655 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
1656 (make_gap, copy_text, insert, insert_and_inherit)
1657 (insert_before_markers, insert_before_markers_and_inherit)
1658 (insert_1, count_combining_before, count_combining_after)
1659 (insert_1_both, insert_from_string)
1660 (insert_from_string_before_markers, insert_from_string_1)
1661 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
1662 (adjust_after_replace, adjust_after_insert, replace_range)
1663 (replace_range_2, del_range, del_range_1, del_range_byte)
1664 (del_range_both, del_range_2, modify_region)
1665 (prepare_to_modify_buffer, signal_before_change)
1666 (signal_after_change, Fcombine_after_change_execute):
1667 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1668 * intervals.c (traverse_intervals, rotate_right, rotate_left)
1669 (balance_an_interval, split_interval_right, split_interval_left)
1670 (find_interval, next_interval, update_interval)
1671 (adjust_intervals_for_insertion, delete_node, delete_interval)
1672 (interval_deletion_adjustment, adjust_intervals_for_deletion)
1673 (static_offset_intervals, offset_intervals)
1674 (merge_interval_right, merge_interval_left, make_new_interval)
1675 (graft_intervals_into_buffer, temp_set_point_both)
1676 (temp_set_point, set_point, adjust_for_invis_intang)
1677 (set_point_both, move_if_not_intangible, get_property_and_range)
1678 (get_local_map, copy_intervals, copy_intervals_to_string)
1679 (compare_string_intervals, set_intervals_multibyte_1):
1680 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1681 * intervals.h: Adjust decls to match defn changes elsewhere.
1682 (struct interval):
1683 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1684 * keyboard.c (this_command_key_count, this_single_command_key_start)
1685 (before_command_key_count, before_command_echo_length, echo_now)
1686 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
1687 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
1688 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
1689 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
1690 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1691 (last_non_minibuf_size, last_point_position, echo_truncate)
1692 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
1693 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
1694 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
1695 (stuff_buffered_input):
1696 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1697 (last_auto_save, command_loop_1, read_char):
1698 Use EMACS_INT, not int, to avoid integer overflow.
1699 (record_char): Avoid overflow in total_keys computation.
1700 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
1701 * keyboard.h: Adjust decls to match defn changes elsewhere.
1702 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
1703 (Fkey_description, Fdescribe_vector, Flookup_key):
1704 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1705 (click_position): New function, to check that positions are in range.
1706 (Fcurrent_active_maps):
1707 (describe_command):
1708 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1709 (Faccessible_keymaps, Fkey_description):
1710 (preferred_sequence_p):
1711 Don't assume fixnum can fit into int.
1712 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
1713 Check for integer overflow in size calculations.
1714 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
1715 avoid mishandling large integers.
1716 * lisp.h: Adjust decls to match defn changes elsewhere.
1717 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
1718 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
1719 (struct Lisp_Marker):
1720 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1721 (clip_to_bounds): Now an inline function, moved here from editfns.c.
d311d28c
PE
1722 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
1723 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
1724 All callers changed.
1725 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
1726 Assume the arg has valid form, since it always does.
1727 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
1728 unsigned integer system type.
1729 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
1730 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
1731 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1732 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
1733 (duration_to_sec_usec): New decl.
1734 * lread.c (read_from_string_index, read_from_string_index_byte)
1735 (read_from_string_limit, readchar, unreadchar, openp)
1736 (read_internal_start, read1, oblookup):
1737 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1738 (Fload, readevalloop, Feval_buffer, Feval_region):
1739 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1740 (openp): Check for out-of-range argument to 'access'.
1741 (read1): Use int, not EMACS_INT, where int is wide enough.
1742 Don't assume fixnum fits into int.
6efdadfd 1743 Fix off-by-one error that can read outside a buffer.
1ab7b8ac
PE
1744 (read_filtered_event): Use duration_to_sec_usec
1745 to do proper overflow checking on durations.
d311d28c
PE
1746 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
1747 in size calculation.
1748 (Fexecute_kbd_macro):
1749 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1750 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
1751 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
1752 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
1753 (set_marker_both, set_marker_restricted_both, marker_position)
1754 (marker_byte_position, Fbuffer_has_markers_at):
1755 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1756 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
61b108cc 1757 * menu.c (ensure_menu_items): Rename from grow_menu_items.
d311d28c
PE
1758 It now merely ensures that the menu is large enough, without
1759 necessarily growing it, as this avoids some integer overflow issues.
1760 All callers changed.
1761 (keymap_panes, parse_single_submenu, Fx_popup_menu):
1762 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1763 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
1764 Use SAFE_ALLOCA_LISP, not alloca.
1765 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
1766 to EMACS_INT. Check that fixnums are in proper range for system types.
1767 * minibuf.c (minibuf_prompt_width, string_to_object)
1768 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
1769 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
1770 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1771 (get_minibuffer, read_minibuf_unwind):
1772 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1773 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
1774 this simplifies overflow checking. All callers changed.
1775 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
1776 (Ftest_completion):
1777 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1778 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
1779 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
1780 Check that fixnums are in proper range for system types.
1781 (Fx_create_frame, Fx_show_tip):
1782 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1783 * nsfont.m (ns_findfonts, nsfont_list_family):
1784 Don't assume fixnum fits in long.
1785 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
1786 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1787 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
1788 wide enough.
17fdb222 1789 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
d311d28c
PE
1790 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1791 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
1792 (PRINTDECLARE, PRINTPREPARE):
1793 (strout, print_string):
1794 (print, print_preprocess, print_check_string_charset_prop)
1795 (print_object):
1796 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1797 (PRINTDECLARE):
1798 (temp_output_buffer_setup, Fprin1_to_string, print_object):
1799 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1800 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
d311d28c 1801 (printchar, strout): Use xpalloc to catch size calculation overflow.
0fd11aa5 1802 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
d311d28c
PE
1803 (print_error_message): Use SAFE_ALLOCA, not alloca.
1804 (print_object): Use int, not EMACS_INT, where int is wide enough.
a8b7caa3
PE
1805 (print_depth, new_backquote_output, print_number_index):
1806 Use ptrdiff_t, not int, where int might not be wide enough.
d311d28c
PE
1807 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
1808 (Fset_process_window_size, Fformat_network_address)
1809 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
d44287d4 1810 (sigchld_handler):
d311d28c 1811 Check that fixnums are in proper range for system types.
d44287d4 1812 (Fsignal_process): Simplify by avoiding a goto.
d83cf4cc
PE
1813 Check for process-ids out of pid_t range rather than relying on
1814 undefined behavior.
e4d81efc 1815 (process_tick, update_tick): Use EMACS_INT, not int.
d311d28c
PE
1816 (Fformat_network_address, read_process_output, send_process)
1817 (Fprocess_send_region, status_notify):
1818 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1819 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
1820 (wait_reading_process_output, read_process_output, exec_sentinel):
1821 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1822 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
1823 (Faccept_process_output): Use duration_to_sec_usec to do proper
1824 overflow checking on durations.
dde14581
PE
1825 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
1826 Don't assume pid_t fits in int.
02481186
PE
1827 * process.h (struct Lisp_Process): Members tick and update_tick
1828 are now of type EMACS_INT, not int.
b62b53e8
PE
1829 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
1830 configured --with-wide-int.
d311d28c
PE
1831 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
1832 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
1833 * search.c (looking_at_1, string_match_1):
1834 (fast_string_match, fast_c_string_match_ignore_case)
1835 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
1836 (scan_newline, find_before_next_newline, search_command)
1837 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
1838 (set_search_regs, wordify):
1839 (Freplace_match):
1840 (Fmatch_data):
1841 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1842 (string_match_1, search_buffer, set_search_regs):
1843 (Fmatch_data):
1844 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1845 (wordify): Check for overflow in size calculation.
1846 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
1847 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
1848 Check that fixnums are in proper range for system types.
1849 * sound.c (struct sound_device)
1850 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
1851 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1852 (Fplay_sound_internal):
1853 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
eacd378d 1854 * syntax.c (struct lisp_parse_state, find_start_modiff)
d311d28c
PE
1855 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
1856 (Fparse_partial_sexp):
1857 Don't assume fixnums can fit in int.
1858 (struct lisp_parse_state, find_start_pos, find_start_value)
1859 (find_start_value_byte, find_start_begv)
1860 (update_syntax_table, char_quoted, dec_bytepos)
1861 (find_defun_start, prev_char_comend_first, back_comment):
1862 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
1863 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
1864 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1865 (Finternal_describe_syntax_value): Check that match_lisp is a
1866 character, not an integer, since the code stuffs it into int.
1867 (scan_words, scan_sexps_forward):
1868 Check that fixnums are in proper range for system types.
1869 (Fforward_word):
1870 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1871 (scan_sexps_forward):
1872 Use CHARACTERP, not INTEGERP, since the value must fit into int.
1873 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
1874 * syntax.h: Adjust decls to match defn changes elsewhere.
1875 (struct gl_state_s):
1876 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
e4ecdc9c
PE
1877 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
1878 MOST_POSITIVE_FIXNUM.
d311d28c
PE
1879 * sysdep.c (wait_for_termination_1, wait_for_termination)
1880 (interruptible_wait_for_termination, mkdir):
1881 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
1882 (emacs_read, emacs_write):
1883 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
225a2cff
PE
1884 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
1885 and double all fit in int.
d311d28c
PE
1886 * term.c (set_tty_color_mode):
1887 Check that fixnums are in proper range for system types.
1888 * termhooks.h (struct input_event):
1889 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1890 * textprop.c (validate_interval_range, interval_of)
1891 (Fadd_text_properties, set_text_properties_1)
1892 (Fremove_text_properties, Fremove_list_of_text_properties)
1893 (Ftext_property_any, Ftext_property_not_all)
1894 (copy_text_properties, text_property_list, extend_property_ranges)
1895 (verify_interval_modification):
1896 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1897 (Fnext_single_char_property_change)
1898 (Fprevious_single_char_property_change):
1899 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5895d7b9
PE
1900 (copy_text_properties):
1901 Check for integer overflow in index calculation.
d311d28c
PE
1902 * undo.c (last_boundary_position, record_point, record_insert)
1903 (record_delete, record_marker_adjustment, record_change)
1904 (record_property_change):
1905 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1906 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
1907 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1908 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
1909 (Fx_hide_tip, Fx_file_dialog):
1910 * w32menu.c (set_frame_menubar):
1911 Use ptrdiff_t, not int, for consistency with rest of code.
1912 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
1913 (select_window, Fdelete_other_windows_internal)
1914 (window_scroll_pixel_based, window_scroll_line_based)
1915 (Frecenter, Fset_window_configuration):
1916 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1917 (Fset_window_hscroll, run_window_configuration_change_hook)
1918 (set_window_buffer, temp_output_buffer_show, scroll_command)
5895d7b9 1919 (Fscroll_other_window, Frecenter):
d311d28c
PE
1920 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1921 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
1922 Don't assume fixnum fits in int.
1923 (Fset_window_scroll_bars):
1924 Check that fixnums are in proper range for system types.
1925 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
1926 (string_pos, c_string_pos, number_of_chars, init_iterator)
1927 (in_ellipses_for_invisible_text_p, init_from_display_pos)
1928 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
1929 (compute_display_string_end, handle_face_prop)
5895d7b9
PE
1930 (face_before_or_after_it_pos, handle_invisible_prop)
1931 (handle_display_prop, handle_display_spec, handle_single_display_spec)
d311d28c
PE
1932 (display_prop_intangible_p, string_buffer_position_lim)
1933 (string_buffer_position, handle_composition_prop, load_overlay_strings)
1934 (get_overlay_strings_1, get_overlay_strings)
1935 (iterate_out_of_display_property, forward_to_next_line_start)
1936 (back_to_previous_visible_line_start, reseat, reseat_to_string)
1937 (get_next_display_element, set_iterator_to_next)
1938 (get_visually_first_element, compute_stop_pos_backwards)
1939 (handle_stop_backwards, next_element_from_buffer)
1940 (move_it_in_display_line_to, move_it_in_display_line)
1941 (move_it_to, move_it_vertically_backward, move_it_by_lines)
1942 (add_to_log, message_dolog, message_log_check_duplicate)
1943 (message2, message2_nolog, message3, message3_nolog
1944 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
1945 (current_message_1, truncate_echo_area, truncate_message_1)
1946 (set_message, set_message_1, store_mode_line_noprop)
1947 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
1948 (text_outside_line_unchanged_p, check_point_in_composition)
1949 (reconsider_clip_changes)
1950 (redisplay_internal, set_cursor_from_row, try_scrolling)
1951 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
1952 (redisplay_window, find_last_unchanged_at_beg_row)
1953 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
1954 (trailing_whitespace_p, find_row_edges, display_line)
1955 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
1956 (display_mode_element, store_mode_line_string)
1957 (pint2str, pint2hrstr, decode_mode_spec)
1958 (display_count_lines, display_string, draw_glyphs)
1959 (x_produce_glyphs, x_insert_glyphs)
1960 (rows_from_pos_range, mouse_face_from_buffer_pos)
1961 (fast_find_string_pos, mouse_face_from_string_pos)
1962 (note_mode_line_or_margin_highlight, note_mouse_highlight):
1963 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1964 (safe_call, init_from_display_pos, handle_fontified_prop)
1965 (handle_single_display_spec, load_overlay_strings)
1966 (with_echo_area_buffer, setup_echo_area_for_printing)
1967 (display_echo_area, echo_area_display)
1968 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
1969 (update_tool_bar, hscroll_window_tree, redisplay_internal)
5895d7b9
PE
1970 (redisplay_window, dump_glyph_row, display_mode_line)
1971 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
43ad2e9a 1972 (handle_display_spec, display_prop_string_p):
d311d28c
PE
1973 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1974 (handle_single_display_spec, build_desired_tool_bar_string)
1975 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
1976 (get_specified_cursor_type):
1977 Check that fixnums are in proper range for system types.
1978 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
1979 (Flookup_image_map):
1980 Don't assume fixnums fit in int.
1981 (compare_overlay_entries):
1982 Avoid mishandling comparisons due to subtraction overflow.
1983 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
1984 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
1985 (handle_tool_bar_click):
1986 Use int, not unsigned, since we prefer signed and the signedness
1987 doesn't matter here.
1988 (get_next_display_element, next_element_from_display_vector):
1989 Use int, not EMACS_INT, when int is wide enough.
1990 (start_hourglass): Use duration_to_sec_usec to do proper
1991 overflow checking on durations.
1992 * xfaces.c (Fbitmap_spec_p):
1993 Check that fixnums are in proper range for system types.
1994 (compare_fonts_by_sort_order):
1995 Avoid mishandling comparisons due to subtraction overflow.
1996 (Fx_family_fonts, realize_basic_faces):
1997 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1998 (Fx_family_fonts):
1999 Don't assume fixnum fits in int.
2000 Use SAFE_ALLOCA_LISP, not alloca.
2001 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
2002 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
2003 (face_at_buffer_position, face_for_overlay_string)
2004 (face_at_string_position):
2005 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2006 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
2007 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
2008 (Fx_show_tip):
2009 Check that fixnums are in proper range for system types.
2010 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
2011 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
2012 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2013 (Fx_change_window_property): Don't assume fixnums fit in int.
2014 * xfont.c (xfont_chars_supported):
2015 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2016 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
2017 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
2018 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2019 * xml.c (parse_region):
2020 * xrdb.c (magic_file_p):
2021 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
2022 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
2023 (x_get_local_selection, x_reply_selection_request)
2024 (x_handle_selection_request, wait_for_property_change):
2025 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2026 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
2027 short is wide enough.
2028 (x_send_client_event): Don't assume fixnum fits in int.
2029 * xterm.c (x_x_to_emacs_modifiers):
2030 Don't assume EMACS_INT overflows nicely into int.
2031 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
2032 may come from Lisp.
2033 (handle_one_xevent): NATNUMP can eval its arg twice.
2034 (x_connection_closed):
2035 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
2036 * xterm.h: Adjust decls to match defn changes elsewhere.
2037 (struct scroll_bar): Use struct vectorlike_header
2038 rather than rolling our own approximation.
2039 (SCROLL_BAR_VEC_SIZE): Remove; not used.
2040
c6574eb5
GM
20412012-05-25 Glenn Morris <rgm@gnu.org>
2042
2043 * lisp.mk (lisp): Update for more files being compiled now.
2044
e8d32c7e
SM
20452012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
2046
48def666
SM
2047 * lread.c: Remove `read_pure' which makes no difference.
2048 (read_pure): Remove var.
2049 (unreadpure): Remove function.
2050 (readevalloop): Don't call read_list with -1 flag.
2051 (read1, read_vector): Don't test read_pure any more.
2052 (read_list): Simplify.
2053
e8d32c7e
SM
2054 * fileio.c, character.h: Minor style tweaks.
2055
4b2addb7
DA
20562012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
2057
2058 * window.h (clip_changed): Remove useless declaration.
2059
584461b2
JB
20602012-05-22 Juanma Barranquero <lekktu@gmail.com>
2061
2062 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
2063 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
2064
34374650
PE
20652012-05-22 Paul Eggert <eggert@cs.ucla.edu>
2066
2067 Remove src/m/*.
2068 This directory predates autoconf and is no longer needed nowadays.
2069 Move its few remaining bits of functionality to where they're needed.
2070 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
2071 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
2072 * m/template.h: Remove.
2073 * Makefile.in (M_FILE): Remove. All uses removed.
2074 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
2075 * lisp.h (USE_LSB_TAG):
2076 * mem-limits.h (EXCEEDS_LISP_PTR):
2077 Use VAL_MAX, not VALBITS, in #if.
2078 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
2079 (EMACS_UINT): Define unconditionally now.
2080 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
2081 (BITS_PER_EMACS_INT): New constants, replacing
2082 what used to be in config.h, but not useful in #if.
2083 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
2084 define them any more.
2085 (VAL_MAX): New macro.
2086 (VALMASK): Use it.
2087 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
2088 BITS_PER_EMACS_INT, in #if.
2089 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
2090 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
2091 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
2092 * s/ms-w32.h (DATA_START):
2093 Move here from removed file m/intel386.h.
2094 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
2095 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
2096
261cb4bb
PE
20972012-05-21 Paul Eggert <eggert@cs.ucla.edu>
2098
2099 Assume C89 or later.
2100 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
2101 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
2102 (xrealloc):
2103 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
2104 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
2105 * textprop.c, tparam.c (NULL): Remove.
2106 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
2107 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
2108 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
2109 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
2110 * xterm.c (input_signal_count): Assume volatile works.
2111
ff23cd9f
KB
21122012-05-21 Ken Brown <kbrown@cornell.edu>
2113
2114 * xgselect.c (xg_select): Fix first argument in call to 'select'
2115 (bug#11508).
2116
1b170bc6
KB
21172012-05-20 Ken Brown <kbrown@cornell.edu>
2118
2119 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
bd7239f5 2120 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
1b170bc6 2121
b2f4d39f
KB
21222012-05-19 Ken Brown <kbrown@cornell.edu>
2123
2124 * xfns.c (x_in_use): Remove `static' qualifier.
2125 * xterm.h (x_in_use): Declare.
2126 * xgselect.c: Include xterm.h.
2127 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
2128 and `display_arg' (bug#9754).
2129
003fdae2
PE
21302012-05-19 Paul Eggert <eggert@cs.ucla.edu>
2131
9232a6d9
PE
2132 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
2133
003fdae2
PE
2134 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
2135 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
2136
784b56e2
EZ
21372012-05-18 Eli Zaretskii <eliz@gnu.org>
2138
2139 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
2140
2141 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
2142 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c
2143
2144 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
2145 reference to image_cache->refcount.
2146 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
2147
a0a79cde
JL
21482012-05-17 Juri Linkov <juri@jurta.org>
2149
2150 * search.c (Fword_search_regexp, Fword_search_backward)
2151 (Fword_search_forward, Fword_search_backward_lax)
2152 (Fword_search_forward_lax): Move functions to isearch.el
2153 (bug#10145, bug#11381).
2154
b0572523
PE
21552012-05-16 Paul Eggert <eggert@cs.ucla.edu>
2156
2157 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
2158
9660f5fc
SM
21592012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
2160
2161 * lread.c (init_obarray): Declare Qt and Qnil as special.
2162
4374de83
GM
21632012-05-14 Glenn Morris <rgm@gnu.org>
2164
2165 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
985584ae 2166 Put "libexec" before "bin", for the sake of init_callproc_1.
4374de83 2167
dc44c39a
PE
21682012-05-14 Paul Eggert <eggert@cs.ucla.edu>
2169
078c97cb
PE
2170 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
2171
dc44c39a
PE
2172 * unexaix.c: Port to more-recent AIX compilers.
2173 (report_error, report_error_1, make_hdr, copy_sym)
2174 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
2175 Make arguments const char *, not char *, to avoid violations of C
2176 standard and to fix some AIX warnings reported by Gilles Pion.
2177
e18afed7 21782012-05-14 Eli Zaretskii <eliz@gnu.org>
ac268e67
EZ
2179
2180 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
2181 already have overlays loaded.
2182 (handle_single_display_spec): Before returning without displaying
2183 fringe bitmap, synchronize the bidi iterator with the main display
2184 iterator, by calling iterate_out_of_display_property.
2185 (iterate_out_of_display_property): Detect buffer iteration by
2186 testing that it->string is a Lisp string.
2187 (get_next_display_element): When the current object is exhausted,
2188 and there's something on it->stack, call set_iterator_to_next to
2189 proceed with what's on the stack, instead of returning zero.
2190 (set_iterator_to_next): If called at the end of a Lisp string,
2191 proceed to consider_string_end without incrementing string
2192 position. Don't increment display vector index past the end of
2193 the display vector. (Bug#11417)
c8fb9dc6
EZ
2194 (pos_visible_p): Don't report a position visible when move_it_to
2195 stopped at the last line of window, which happens to be scanned
2196 backwards by the bidi iteration. (Bug#11464)
ac268e67 2197
e18afed7 21982012-05-14 Eli Zaretskii <eliz@gnu.org>
82f9b393
EZ
2199
2200 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
2201 and right-margin display specs even if the spec is invalid or we
61b108cc
SM
2202 are on a TTY, and thus unable to display on the fringes.
2203 That's because the text with the property will not be displayed anyway,
82f9b393
EZ
2204 so we need to signal to the caller that this is a "replacing"
2205 display spec. This fixes display when the spec is invalid or we
2206 are on a TTY.
2207
e18afed7 22082012-05-14 Paul Eggert <eggert@cs.ucla.edu>
297834cd
PE
2209
2210 * unexaix.c (make_hdr): Fix typo in prototype.
2211 This bug broke the build on AIX. Problem reported by Gilles Pion.
2212
9d0a235a
MA
22132012-05-14 Michael Albinus <michael.albinus@gmx.de>
2214
2215 * keyboard.c (kbd_buffer_get_event): Read special events also in
2216 batch mode. (Bug#11415)
2217
9e6b06ed
GM
22182012-05-12 Glenn Morris <rgm@gnu.org>
2219
2220 * ns.mk: Update for ns_appbindir no longer having trailing "/".
2221
c1a1d7a3
EZ
22222012-05-12 Eli Zaretskii <eliz@gnu.org>
2223
2224 * lisp.mk (lisp): Add newcomment.elc.
2225
3fe7cdc8
GM
22262012-05-12 Glenn Morris <rgm@gnu.org>
2227
2228 * Makefile.in (MKDIR_P): New, set by configure.
2229 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
2230
53f7d2c0
PE
22312012-05-11 Paul Eggert <eggert@cs.ucla.edu>
2232
2233 Remove unused function hourglass_started.
2234 * dispextern.h (hourglass_started):
2235 * w32fns.c (hourglass_started):
2236 * xdisp.c (hourglass_started): Remove.
2237
75aafb17
JB
22382012-05-10 Juanma Barranquero <lekktu@gmail.com>
2239
2240 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
2241 Update dependencies.
2242
12959e8e
PE
22432012-05-10 Paul Eggert <eggert@cs.ucla.edu>
2244
97107e2e
PE
2245 * xgselect.c (xg_select): Put maxfds+1 into a var.
2246 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
2247
12959e8e
PE
2248 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
2249
836d29b3
DA
22502012-05-10 Dave Abrahams <dave@boostpro.com>
2251
2252 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
2253 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
2254
5cb67954
MA
22552012-05-09 Michael Albinus <michael.albinus@gmx.de>
2256
2257 * dbusbind.c (xd_registered_buses): New internal Lisp object.
2258 Rename all occurences of Vdbus_registered_buses to xd_registered_buses.
2259 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
2260 Initialize xd_registered_buses.
2261
3478ec45
PE
22622012-05-09 Paul Eggert <eggert@cs.ucla.edu>
2263
b263a6b0
PE
2264 Untag more efficiently if USE_LSB_TAG.
2265 This is based on a proposal by YAMAMOTO Mitsuharu in
2266 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
2267 For an admittedly artificial (nth 8000 longlist) benchmark on
2268 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
2269 Emacs's overall text size by 1%.
2270 * lisp.h (XUNTAG): New macro.
2271 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
2272 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
2273 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
2274 * eval.c (Fautoload):
2275 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
2276 * frame.h (XFRAME): Use XUNTAG.
2277
3478ec45
PE
2278 Port recent dbusbind.c changes to 32-bit --with-wide-int.
2279 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
2280 Remove unportable assumptions about print widths of types like
2281 dbus_uint32_t.
2282 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
2283 intptr_t when converting between pointer and integer, to avoid GCC
2284 warnings about wrong width.
2285
666b903b 22862012-05-09 Eli Zaretskii <eliz@gnu.org>
0d887c7d
EZ
2287
2288 * w32proc.c (new_child): Force Windows to reserve only 64KB of
2289 stack for each reader_thread, instead of defaulting to 8MB
2290 determined by the linker. This avoids failures in creating
2291 subprocesses on Windows 7, see the discussion in this thread:
2292 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
2293
b120cc17
JC
22942012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
2295
2296 Fix up display of the *Minibuf-0* buffer in the mini window.
2297 * keyboard.c (read_char): Don't clear the echo area if there's no
2298 message to clear.
2299 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
2fed2689 2300 contents of *Minibuf-0*) if there's no message displayed in its stead.
b120cc17 2301
9a4b36f8
MA
23022012-05-07 Michael Albinus <michael.albinus@gmx.de>
2303
2304 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
2305 batch mode.
2306
e5f9458f
CY
23072012-05-06 Chong Yidong <cyd@gnu.org>
2308
2309 * lisp.mk (lisp): Update.
2310
eceeb5fc 23112012-05-05 Jim Meyering <meyering@redhat.com>
bf98199c
JM
2312
2313 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
2314
71873e2b
SM
23152012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
2316
2317 * data.c (PUT_ERROR): New macro.
2318 (syms_of_data): Use it. Add new error type `user-error'.
2319 * undo.c (user_error): New function.
2320 (Fprimitive_undo): Use it.
2321 * print.c (print_error_message): Adjust print style for `user-error'.
2322 * keyboard.c (user_error): New function.
2323 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
2324
ab0fa4e4
PE
23252012-05-03 Paul Eggert <eggert@cs.ucla.edu>
2326
2327 Do not limit current-time-string to years 1000..9999.
2328 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
2329 (Fcurrent_time_string): Support any year that is supported by the
2330 underlying localtime representation. Don't use asctime, as it
2331 has undefined behavior for years outside the range -999..9999.
2332
7ed806a7
PE
23332012-05-02 Paul Eggert <eggert@cs.ucla.edu>
2334
2335 Fix race conditions involving setenv, gmtime, localtime, asctime.
2336 Without this fix, interrupts could mess up code that uses these
2337 nonreentrant functions, since setting TZ invalidates existing
2338 tm_zone or tzname values, and since most of these functions return
2339 pointers to static storage.
2340 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
2341 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
2342 Grow the critical sections to include not just invoking
2343 localtime/gmtime, but also accessing these functions' results
2344 including their tm_zone values if any, and any related TZ setting.
2345 (format_time_string): Last arg is now struct tm *, not struct tm **,
71873e2b
SM
2346 so that the struct tm is saved in the critical section.
2347 All callers changed. Simplify allocation of initial buffer, partly
7ed806a7
PE
2348 motivated by the fact that memory allocation needs to be outside
2349 the critical section.
2350
0c16dfed
DA
23512012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
2352
2353 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
2354 with RESET_INTERVAL.
2355
2356 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
2357 Remove duplicated buffer name initialization.
2358
3f83ace8
JM
23592012-05-02 Jim Meyering <jim@meyering.net>
2360
2361 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
2362
c7b8541e
JM
2363 * xfns.c (x_window): Use xstrdup (Bug#11375).
2364
90207a15 23652012-05-02 Eli Zaretskii <eliz@gnu.org>
2fa85638
EZ
2366
2367 * xdisp.c (pos_visible_p): If already at a newline from the
2368 display string before the 'while' loop, don't walk back the glyphs
2369 from it3.glyph_row. Solves assertion violation when the display
2370 string begins with a newline (egg.el). (Bug#11367)
2371
b593d6a9
AH
23722012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
2373
2374 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
2375 Move to simple.el.
2376
4737362e
GM
23772012-05-01 Glenn Morris <rgm@gnu.org>
2378
99cf43f9
GM
2379 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
2380 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
2381 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
2382 All were removed before 23.1.
2383
9311dcff
GM
2384 * dispnew.c: Remove HAVE_LIBNCURSES test;
2385 it is always true on relevant platforms.
2386
4d5c6349
GM
2387 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
2388 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
2389
4737362e
GM
2390 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
2391
74dd3a6b
AS
23922012-04-30 Andreas Schwab <schwab@linux-m68k.org>
2393
2394 * .gdbinit (xpr): Remove checks for no longer existing misc types.
2395 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
2396 Remove.
2397
13c379ee
PE
23982012-04-28 Paul Eggert <eggert@cs.ucla.edu>
2399
2400 Do not avoid creating empty evaporating overlays (Bug#9642).
2401 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
2402 That is, do not delete an evaporating overlay if it becomes
2403 empty after its bounds are adjusted to fit within its buffer.
2404 This fix caused other problems, and I'm reverting it until we get
2405 to the bottom of them.
2406
a8e7d6d7 24072012-04-27 Chong Yidong <cyd@gnu.org>
9be2fd9b
CY
2408
2409 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
2410
a8e7d6d7 24112012-04-27 Eli Zaretskii <eliz@gnu.org>
f0ee99a0
EZ
2412
2413 * xdisp.c (pos_visible_p): If the window start position is beyond
2414 ZV, start the display from buffer beginning. Prevents assertion
2415 violation in init_iterator when the minibuffer window is scrolled
2416 via the scroll bar.
2417
2418 * window.c (window_scroll_pixel_based): Likewise.
2419
a8e7d6d7 24202012-04-27 Chong Yidong <cyd@gnu.org>
9ec7751f
CY
2421
2422 * keymap.c (where_is_internal): Doc fix (Bug#10872).
2423
a8e7d6d7 24242012-04-27 Glenn Morris <rgm@gnu.org>
24c51a09
GM
2425
2426 * fileio.c (Fcopy_file, Fset_file_selinux_context):
2427 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
2428
a8e7d6d7 24292012-04-27 Eli Zaretskii <eliz@gnu.org>
73055685 2430
b593d6a9
AH
2431 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
2432 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
73055685 2433
1c6900d9
EZ
24342012-04-26 Eli Zaretskii <eliz@gnu.org>
2435
4c3fa1d9
EZ
2436 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
2437 display element, check also the underlying string or buffer
2438 character. (Bug#11341)
2439
1c6900d9
EZ
2440 * w32menu.c: Include w32heap.h.
2441 (add_menu_item): If the call to AppendMenuW (via
2442 unicode_append_menu) fails, disable Unicode menus only if we are
2443 running on Windows 9X/Me.
2444
42bf8205
AS
24452012-04-24 Andreas Schwab <schwab@linux-m68k.org>
2446
2447 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
2448 (xgetint): Add missing shift for LSB tags.
2449
b1bac16e
MR
24502012-04-24 Martin Rudalics <rudalics@gmx.at>
2451
2452 * keyboard.c (read_char): Don't wipe echo area for select window
2453 events: These might get delayed via `mouse-autoselect-window'
2454 (Bug#11304).
2455
d69621cc
JB
24562012-04-24 Juanma Barranquero <lekktu@gmail.com>
2457
2458 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
2459 manipulation of :loaded-from data.
2460
02fd101b
JB
24612012-04-23 Juanma Barranquero <lekktu@gmail.com>
2462
2463 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
2464 now a cons (bug#11311).
2465
888bec30
PE
24662012-04-23 Paul Eggert <eggert@cs.ucla.edu>
2467
89a438bd
PE
2468 Do not create empty overlays with the evaporate property (Bug#9642).
2469 * buffer.c (Fmove_overlay): Delete an evaporating overlay
2470 if it becomes empty after its bounds are adjusted to fit within
2471 its buffer. Without this fix, in a nonempty buffer (let ((o
2472 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
2473 yields an empty overlay that has the evaporate property, which is
2474 not supposed to happen.
2475
1068fe4d
PE
2476 Fix minor GTK3 problems found by static checking.
2477 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
2478 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
2479 (struct _EmacsFixedClass, emacs_fixed_get_type):
2480 Move decls here from emacsgtkfixed.h, since they needn't be public.
2481 (emacs_fixed_get_type): Now static.
2482 (emacs_fixed_class_init): Omit unused local.
2483 (emacs_fixed_child_type): Remove; unused.
2484 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
2485 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
2486 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
2487 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
2488 (EMACS_FIXED_GET_CLASS): Remove; unused.
2489 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
2490
888bec30
PE
2491 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
2492 Problem reported by Juanma Barranquero for Windows -Wunused-function.
2493
de85e130
PE
24942012-04-22 Paul Eggert <eggert@cs.ucla.edu>
2495
d0baac98 2496 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
bd7239f5 2497 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
d0baac98
PE
2498 (__malloc_size_t, __malloc_ptrdiff_t):
2499 Remove. All uses removed, replaced by the definiens if needed,
2500 since we can assume C89 or better now.
2501 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
2502 (protect_malloc_state, align, get_contiguous_space)
2503 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
2504 (malloc_atfork_handler_child, malloc_enable_thread)
2505 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
2506 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
2507 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
2508 (special_realloc, _realloc_internal_nolock, _realloc_internal)
2509 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
2510 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
2511 Define using prototypes, not old style.
2512 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
2513 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
2514 (align): Don't assume that signed integer overflow wraps around.
2515 Omit unused local var.
2516 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
2517 (_free_internal_nolock, memalign, mallochook, reallochook):
2518 Omit no-longer-needed casts.
2519 (valloc): Use getpagesize, not __getpagesize.
2520 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
2521 (struct hdr): The 'magic' member is now size_t, not unsigned long.
2522
de85e130
PE
2523 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
2524
dcbf5805
MA
25252012-04-22 Michael Albinus <michael.albinus@gmx.de>
2526
2527 Move functions from C to Lisp. Make non-blocking method calls
2528 the default. Implement further D-Bus standard interfaces.
2529
2530 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
2531 (QCdbus_request_name_allow_replacement)
2532 (QCdbus_request_name_replace_existing)
2533 (QCdbus_request_name_do_not_queue)
2534 (QCdbus_request_name_reply_primary_owner)
2535 (QCdbus_request_name_reply_in_queue)
2536 (QCdbus_request_name_reply_exists)
2537 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
2538 (QCdbus_registered_serial, QCdbus_registered_method)
2539 (QCdbus_registered_signal): New Lisp objects.
2540 (XD_DEBUG_MESSAGE): Use sizeof.
2541 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
2542 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
2543 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
2544 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
2545 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
2546 (xd_signature, xd_append_arg): Allow float for integer types.
2547 (xd_get_connection_references): New function.
b593d6a9
AH
2548 (xd_get_connection_address): Rename from xd_initialize.
2549 Return cached address.
dcbf5805
MA
2550 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
2551 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
2552 level.
2553 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
9a4b36f8 2554 Return number of refcounts.
dcbf5805
MA
2555 (Fdbus_get_unique_name): Make stronger parameter check.
2556 (Fdbus_message_internal): New defun.
2557 (Fdbus_call_method, Fdbus_call_method_asynchronously)
2558 (Fdbus_method_return_internal, Fdbus_method_error_internal)
2559 (Fdbus_send_signal, Fdbus_register_service)
2560 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
2561 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
2562 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
2563 (Vdbus_compiled_version, Vdbus_runtime_version)
2564 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
2565 (Vdbus_message_type_method_return, Vdbus_message_type_error)
2566 (Vdbus_message_type_signal): New defvars.
b593d6a9
AH
2567 (Vdbus_registered_buses, Vdbus_registered_objects_table):
2568 Adapt docstring.
dcbf5805 2569
52828e02
PE
25702012-04-22 Paul Eggert <eggert@cs.ucla.edu>
2571
da05bc4c
PE
2572 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
2573 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
2574 Do not assume ptrdiff_t is the same width as 'int'.
2575
52828e02
PE
2576 * alloc.c: Handle unusual debugging option combinations.
2577 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
2578 since the two debugging options are incompatible.
2579 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
2580 is defined.
2581 (mem_init, mem_insert, mem_insert_fixup):
2582 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
2583 (NEED_MEM_INSERT): Remove; no longer needed.
2584
f01769f9
LL
25852012-04-22 Leo Liu <sdl.web@gmail.com>
2586
2587 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
2588
5790543d
PE
25892012-04-22 Paul Eggert <eggert@cs.ucla.edu>
2590
2591 * sysdep.c [__FreeBSD__]: Minor cleanups.
2592 (list_system_processes, system_process_attributes) [__FreeBSD__]:
2593 Use Emacs indenting style more consistently. Avoid some casts.
2594 Use 'double' consistently rather than mixing 'float' and 'double'.
2595
b91b7e4d
EW
25962012-04-21 Eduard Wiebe <usenet@pusto.de>
2597
b593d6a9
AH
2598 * sysdep.c (list_system_processes, system_process_attributes):
2599 Add implementation for FreeBSD (Bug#5243).
b91b7e4d 2600
6114eb15
AS
26012012-04-21 Andreas Schwab <schwab@linux-m68k.org>
2602
2603 * lisp.mk (lisp): Update.
2604
2f38dff7
PE
26052012-04-20 Paul Eggert <eggert@cs.ucla.edu>
2606
2607 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
2608 It is never used otherwise.
2609
4ae29f89
SM
26102012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
2611
2612 * print.c (print_preprocess): Only check print_depth if print-circle
2613 is nil.
2614 (print_object): Check for cycles even when print-circle is nil and
2615 print-gensym is t, but only check print_depth if print-circle is nil.
2616
f30d612a
CY
26172012-04-20 Chong Yidong <cyd@gnu.org>
2618
2619 * process.c (wait_reading_process_output): If EIO occurs on a pty,
2620 set the status to "failed" and ensure that sentinel is run.
2621
c07a4c0b 26222012-04-20 Glenn Morris <rgm@gnu.org>
016a35df
GM
2623
2624 * process.c (Fset_process_inherit_coding_system_flag)
2625 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
4373fd43 2626 (Fmake_network_process, Fmake_serial_process): Doc fix.
016a35df 2627
c07a4c0b 26282012-04-20 Eli Zaretskii <eliz@gnu.org>
20a68157
EZ
2629
2630 * xdisp.c (string_buffer_position_lim): Limit starting position to
2631 BEGV.
2632 (set_cursor_from_row): If called for a mode-line or header-line
2633 row, return zero immediately.
2634 (try_cursor_movement): If inside continuation line, don't back up
4ae29f89
SM
2635 farther than the first row after the header line, if any.
2636 Don't consider the header-line row as "partially visible", even if
20a68157
EZ
2637 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
2638
c07a4c0b 26392012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 2640
4ae29f89
SM
2641 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
2642 (bug#11238).
ad3a2b41 2643
c07a4c0b 26442012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
6c94c34f 26452012-04-18 Paul Eggert <eggert@cs.ucla.edu>
ae6e112d
PE
2646
2647 configure: new option --enable-gcc-warnings (Bug#11207)
2648 * Makefile.in (C_WARNINGS_SWITCH): Remove.
2649 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
2650 (ALL_CFLAGS): Use new macros rather than old.
2651 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
2652 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
2653 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
2654 -Wunused-result, -Wunused-variable. This should go away once
2655 the Emacs and Gnulib regex code is merged.
2656 (xmalloc, xrealloc): Now static.
2657
aba027e8
PE
26582012-04-17 Paul Eggert <eggert@cs.ucla.edu>
2659
2660 * dired.c (Fsystem_groups): Remove unused local.
2661
e5a36063
GM
26622012-04-17 Glenn Morris <rgm@gnu.org>
2663
2664 * dired.c (Fsystem_users): Doc fix.
2665
316411f0
DA
26662012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
2667
2668 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
2669 (syms_of_dired): Add them.
2670
9426aba4
PE
26712012-04-16 Paul Eggert <eggert@cs.ucla.edu>
2672
b62a57be
PE
2673 Fix minor alloc.c problems found by static checking.
2674 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
2675 New extern decls, to avoid calling undeclared functions.
2676 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
2677 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
2678 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
2679 (NEED_MEM_INSERT): New macro.
2680 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
4b5afbb0 2681 Remove one incorrect comment and fix another.
b62a57be 2682
3539f31f
PE
2683 Fix minor ralloc.c problems found by static checking.
2684 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
2685 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
2686 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
2687 (r_alloc_sbrk): Now static.
2688
a041960a
PE
2689 Improve ralloc.c interface checking.
2690 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
2691 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
2692 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
2693 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
2694 [REL_ALLOC]: ... to here, to check interface.
2695 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
2696 Remove decls. This fixes an "It stinks!".
2697
9426aba4
PE
2698 * alloc.c (which_symbols): Fix alignment issue / type clash.
2699
d55c12ed
AS
27002012-04-15 Andreas Schwab <schwab@linux-m68k.org>
2701
2702 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
2703 (struct Lisp_Misc_Any): Likewise.
2704 (struct Lisp_Free): Likewise.
2705 * alloc.c (union aligned_Lisp_Symbol): Define.
2706 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
2707 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
2708 (union aligned_Lisp_Misc): Define.
2709 (MARKER_BLOCK_SIZE, struct marker_block): Use union
2710 aligned_Lisp_Misc instead of union Lisp_Misc.
4ae29f89 2711 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
d55c12ed 2712
b948ce8b
PE
27132012-04-14 Paul Eggert <eggert@cs.ucla.edu>
2714
2715 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
2716 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
2717 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
2718 * s/netbsd.h, s/sol2-6.h:
2719 Remove definition of GC_MARK_STACK, since the default now works.
2720 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
2721 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
2722 no longer the default.
2723 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
2724
35dc09a1 27252012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 2726
35dc09a1
GM
2727 * lread.c (lisp_file_lexically_bound_p):
2728 Fix hang at ";-*-\n" (bug#11238).
ad3a2b41 2729
35dc09a1
GM
27302012-04-14 Eli Zaretskii <eliz@gnu.org>
2731
2732 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
2733 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
2734
27352012-04-14 Jan Djärv <jan.h.d@swipnet.se>
2736
2737 * nsterm.m (constrainFrameRect): Always constrain when there is only
2738 one screen (Bug#10962).
2739
bcd86815
KB
27402012-04-13 Ken Brown <kbrown@cornell.edu>
2741
2742 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
2743
c25df26e
RT
27442012-04-13 Reuben Thomas <rrt@sc3d.org>
2745
2746 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
2747
0fc59f1e
DC
27482012-04-11 Daniel Colascione <dancol@dancol.org>
2749
2750 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
2751 against is gone. It's better to use vfork now so that when Cygwin
2752 gains a new, working vfork, we use it automatically (bug#10398).
2753
de8c03dc
SM
27542012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
2755
2756 * window.c (save_window_save): Obey window-point-insertion-type.
2757
2f097256
GM
27582012-04-11 Glenn Morris <rgm@gnu.org>
2759
2760 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
2761
453b951e
SM
27622012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
2763
2764 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
2765
75f1671a 27662012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
6bbef4e5
JC
2767
2768 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
2769 (force_quit_count): New var.
2770 (handle_interrupt): Use it.
2771
2a8ce227
JB
27722012-04-10 Juanma Barranquero <lekktu@gmail.com>
2773
2774 * w32.c (w32_delayed_load): Record the full path of the library
2775 being loaded (bug#10424).
2776
935396c0
GM
27772012-04-09 Glenn Morris <rgm@gnu.org>
2778
05920a43
GM
2779 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
2780 not just in the obarray, before snarfing them. (Bug#11036)
2781
935396c0
GM
2782 * Makefile.in ($(leimdir)/leim-list.el):
2783 Pass EMACS rather than BUILT_EMACS.
2784
a18ecafa
TZ
27852012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
2786
2787 * process.c (make_process):
2788 * process.h: Add integer `gnutls_handshakes_tried' member to
2789 process struct.
2790
6bbef4e5
JC
2791 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
2792 Add convenience `GNUTLS_LOG2i' macro.
a18ecafa
TZ
2793
2794 * gnutls.c (gnutls_log_function2i): Convenience log function.
2795 (emacs_gnutls_read): Use new log functions,
2796 `gnutls_handshakes_tried' process member, and
2797 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
2798 attempts per process (connection).
2799
b4d3bc10
CY
28002012-04-09 Chong Yidong <cyd@gnu.org>
2801
2802 * eval.c (Fuser_variable_p, user_variable_p_eh)
2803 (lisp_indirect_variable): Functions deleted.
2804 (Fdefvar): Caller changed.
2805
2806 * callint.c (Finteractive, Fcall_interactively):
2807 * minibuf.c (Fread_variable): Callers changed.
2808
70f4d973
EZ
28092012-04-09 Eli Zaretskii <eliz@gnu.org>
2810
2811 * xdisp.c (set_cursor_from_row): If the display string appears in
2812 the buffer at position that is closer to point than the position
2813 after the display string, display the cursor on the first glyph of
2814 the display string. Fixes cursor display when a 'display' text
2815 property immediately follows invisible text. (Bug#11094)
2816
cb3c2e3e
PE
28172012-04-09 Paul Eggert <eggert@cs.ucla.edu>
2818
2819 composite.c: use 'double' consistently
2820 * composite.c (get_composition_id): Use 'double' consistently
2821 instead of converting 'float' to 'double' and vice versa; this is
2822 easier to understand and avoids a GCC warning.
2823
fd06db5d
GM
28242012-04-09 Glenn Morris <rgm@gnu.org>
2825
50fe702a
GM
2826 * Makefile.in: Generate leim-list with bootstrap-emacs, in
2827 preparation for dumping it with emacs. (Bug#4789)
2828 (leimdir): New variable.
2829 ($(leimdir)/leim-list.el): New rule.
2830 (emacs$(EXEEXT)): Depend on leim-list.el.
2831
fd06db5d
GM
2832 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
2833 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
2834 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
2835
55c131ee
AS
28362012-04-08 Andreas Schwab <schwab@linux-m68k.org>
2837
2838 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
2839 proper alignment.
2840
9209588f
JB
28412012-04-07 Juanma Barranquero <lekktu@gmail.com>
2842
2843 * xml.c (init_libxml2_functions) [WINDOWSNT]:
2844 Remove unused local variable.
2845
e3fb2efb
PE
28462012-04-07 Paul Eggert <eggert@cs.ucla.edu>
2847
2848 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
2849 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
2850 (mark_memory): Mark Lisp_Objects only if pointers might hide in
2851 objects, as mark_maybe_pointer will catch them otherwise.
2852 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
2853 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
2854
b5385551
PE
28552012-04-07 Paul Eggert <eggert@cs.ucla.edu>
2856
2857 Fix typo that broke non-Windows builds.
2858 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
2859
9078ead6
EZ
28602012-04-07 Eli Zaretskii <eliz@gnu.org>
2861
2862 Support building on MS-Windows with libxml2.
2863
2864 * makefile.w32-in (OBJ2): Add xml.$(O).
2865 (GLOBAL_SOURCES): Add xml.c.
2866 ($(BLD)/xml.$(O)): New dependency list.
2867
2868 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
2869 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
2870 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
2871 [!WINDOWSNT]: New macros.
2872 (init_libxml2_functions, libxml2_loaded_p): New functions.
2873 (parse_region): Call fn_xmlCheckVersion instead of using the macro
2874 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
2875 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
2876 Calls xmlCleanupParser only if libxml2 was loaded (or statically
2877 linked in).
6bbef4e5
JC
2878 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
2879 Call init_libxml2_functions before calling libxml2 functions.
9078ead6
EZ
2880 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
2881
2882 * emacs.c: Don't include libxml/parser.h.
2883 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
2884 xmlCleanupParser directly.
2885
2886 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
2887
3811fdf3
EZ
28882012-04-07 Eli Zaretskii <eliz@gnu.org>
2889
2890 * indent.c (Fvertical_motion): If there is a display string at
2891 point, use it.vpos to compute how many lines to backtrack after
2892 move_it_to point. (Bug#11133)
2893
2f8e16b2
EZ
28942012-04-06 Eli Zaretskii <eliz@gnu.org>
2895
2896 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
2897 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
2898 about subtle differences between FETCH_CHAR* and STRING_CHAR*
2899 macros related to unification of CJK characters. For the details,
2900 see the discussion following the message here:
2901 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
2902
3d439cd1
CY
29032012-04-04 Chong Yidong <cyd@gnu.org>
2904
2905 * keyboard.c (Vdelayed_warnings_list): Doc fix.
2906
8bc53d00
EZ
29072012-04-01 Eli Zaretskii <eliz@gnu.org>
2908
2909 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
2910 instead of alloca. (Bug#11138)
2911
3b0512a3
AS
29122012-04-01 Andreas Schwab <schwab@linux-m68k.org>
2913
2914 * w32menu.c (is_simple_dialog): Properly check lisp types.
2915 (Bug#11141)
2916
8427ddd2
EZ
29172012-03-31 Eli Zaretskii <eliz@gnu.org>
2918
979022ef
EZ
2919 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
2920 position we get to after a call to move_it_to fails the
2921 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
2922 only if we wind up in a string from display property. (Bug#11063)
2923
a6b1c7cc
EZ
2924 * window.c (Fdelete_other_windows_internal): Invalidate the row
2925 and column information about mouse highlight, so that redisplay
2926 restores it after reallocating the glyph matrices. (Bug#7464)
2927
8427ddd2
EZ
2928 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
2929 string comes from a `display' text property, use the buffer
2930 position of that property as if we actually saw that position in
2931 the row's glyphs.
697ba24b
EZ
2932 (move_it_by_lines): Remove the assertion that
2933 "it->current_x == 0 && it->hpos == 0" which can be legitimately
2934 violated when there's a before-string at the beginning of a line.
2935 (Bug#11063)
8427ddd2 2936
65a0a738
EZ
29372012-03-30 Eli Zaretskii <eliz@gnu.org>
2938
2939 * xdisp.c (append_space_for_newline): If the default face was
2940 remapped, use the remapped face for the appended newline.
2941 (extend_face_to_end_of_line): Use the remapped default face for
2942 extending the face to the end of the line.
2943 (display_line): Call extend_face_to_end_of_line when the default
2944 face was remapped. (Bug#11068)
2945
581355cc
EZ
29462012-03-29 Eli Zaretskii <eliz@gnu.org>
2947
2948 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
2949
e8fc049f
SM
29502012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
2951
2952 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
2953
4fb9a543
GM
29542012-03-27 Glenn Morris <rgm@gnu.org>
2955
2956 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
2957 Doc fixes.
2958
679910f1
KH
29592012-03-26 Kenichi Handa <handa@m17n.org>
2960
2961 * dispextern.h (struct glyph): Fix previous change. Change the
2962 bit length of glyphless.ch to 25 (Bug#11082).
2963
90d49b7f
CY
29642012-03-26 Chong Yidong <cyd@gnu.org>
2965
2966 * keyboard.c (Vselection_inhibit_update_commands): New variable.
2967 (command_loop_1): Use it; inhibit selection update for
2968 handle-select-window too (Bug#8996).
2969
f514f6f0
FP
29702012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
2971
e8fc049f 2972 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
f514f6f0 2973
bf43fa51
KH
29742012-03-25 Kenichi Handa <handa@m17n.org>
2975
2976 * dispextern.h (struct glyph): Change the bit length of
2977 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
2978
8a0c01dd
EZ
29792012-03-24 Eli Zaretskii <eliz@gnu.org>
2980
2981 * s/ms-w32.h (tzname): Include time.h before redirecting to
2982 _tzname. Fixes the MSVC build. (Bug#9960)
2983
7d1c3a76
AS
29842012-03-24 Andreas Schwab <schwab@linux-m68k.org>
2985
8ed79523
AS
2986 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
2987 characters.
2988
7d1c3a76
AS
2989 * xterm.c (XTread_socket): Only modify handling_signal if
2990 !SYNC_INPUT. (Bug#11080)
2991
e99a9b8b
EZ
29922012-03-23 Eli Zaretskii <eliz@gnu.org>
2993
2994 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
2995 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
2996 when fetching a multibyte character consumes more bytes than
2997 CHAR_BYTES returns, due to unification of CJK characters in
2998 string_char. (Bug#11073)
2999
5063c0e1
TN
30002012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
3001
3002 * process.c (wait_reading_process_output): Handle pty disconnect
3003 by refraining from sending oneself a SIGCHLD (bug#10933).
3004
9f851fbd
CY
30052012-03-22 Chong Yidong <cyd@gnu.org>
3006
3007 * dispextern.h (struct it): New member string_from_prefix_prop_p.
3008
5063c0e1 3009 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
9f851fbd
CY
3010 Mark string as coming from a prefix property.
3011 (handle_face_prop): Use default face for prefix strings (Bug#4281).
3012 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
3013
fb5b8aca
CY
30142012-03-21 Chong Yidong <cyd@gnu.org>
3015
3016 * xfaces.c (Vface_remapping_alist): Doc fix.
3017
62356a1b
EZ
30182012-03-20 Eli Zaretskii <eliz@gnu.org>
3019
3020 * w32proc.c (Fw32_set_console_codepage)
5063c0e1
TN
3021 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
3022 Doc fixes.
62356a1b 3023
025de85b
CY
30242012-03-20 Chong Yidong <cyd@gnu.org>
3025
3026 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
3027 to reflect default non-nil value of redisplay-dont-pause.
3028
4827f94e
KH
30292012-03-19 Kenichi Handa <handa@m17n.org>
3030
3031 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
3032 it fit in a valid range (Bug#11003).
3033
e50a24a2
EZ
30342012-03-18 Eli Zaretskii <eliz@gnu.org>
3035
3036 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
3037 that is not from display property, accept the row as a "cursor
3038 row" if one of the string's character has a non-nil `cursor'
3039 property. Fixes cursor positioning when there are newlines in
3040 overlay strings, e.g. in icomplete.el. (Bug#11035)
3041
9af5ed87
PE
30422012-03-12 Paul Eggert <eggert@cs.ucla.edu>
3043
3044 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
3045
d1f55f16
CY
30462012-03-12 Chong Yidong <cyd@gnu.org>
3047
3048 * eval.c (inhibit_lisp_code): Rename from
3049 inhibit_window_configuration_change_hook; move from window.c.
3050
3051 * xfns.c (unwind_create_frame_1, Fx_create_frame):
3052 * window.c (run_window_configuration_change_hook)
3053 (syms_of_window): Callers changed.
3054
66c5eebd
CY
30552012-03-11 Chong Yidong <cyd@gnu.org>
3056
413df973
CY
3057 * keymap.c (Fkey_description): Doc fix (Bug#9700).
3058
66c5eebd
CY
3059 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
3060
1de11f56
CY
30612012-03-10 Chong Yidong <cyd@gnu.org>
3062
3063 * frame.c (other_visible_frames): Don't assume the selected frame
3064 is visible (Bug#10955).
3065
cae07000
SM
30662012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
3067
3068 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
3069
89c94350
JD
30702012-03-08 Jan Djärv <jan.h.d@swipnet.se>
3071
3072 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
3073 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
3074 zero (Bug#10954).
3075
999dd333
GM
30762012-03-03 Glenn Morris <rgm@gnu.org>
3077
01a6dcc8 3078 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
999dd333 3079
de0100f2
EZ
30802012-03-02 Eli Zaretskii <eliz@gnu.org>
3081
3082 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
3083 position past the first glyph_row that ends at ZV. (Bug#10902)
b8456c5c
EZ
3084 (redisplay_window, next_element_from_string): Fix typos in
3085 comments.
3e441275
EZ
3086 (redisplay_window): Pass to move_it_vertically the margin in
3087 pixels, not in screen lines.
de0100f2 3088
96a72ee9
GM
30892012-03-02 Glenn Morris <rgm@gnu.org>
3090
3091 * buffer.c (buffer-list-update-hook): Doc fix.
3092
312508d7
EZ
30932012-02-29 Eli Zaretskii <eliz@gnu.org>
3094
3095 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
3096 push_it before setting up the iterator for the first overlay
3097 string, even if we have an empty string loaded.
3098 (next_overlay_string): If there's an empty string on the iterator
3099 stack, pop the stack. (Bug#10903)
3100
27f3c637
PE
31012012-02-25 Paul Eggert <eggert@cs.ucla.edu>
3102
3103 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
3104 Suggested by Stefan Monnier in
3105 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
3106 * alloc.c (widen_to_Lisp_Object): New static function.
3107 (mark_memory): Also mark Lisp_Objects by fetching pointer words
3108 and widening them to Lisp_Objects. This would work even if
3109 USE_LSB_TAG is defined and wide integers are used, which might
3110 happen in a future version of Emacs.
3111
3c9dfce6
CY
31122012-02-25 Chong Yidong <cyd@gnu.org>
3113
fa74b241
CY
3114 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
3115 Doc fix.
3116
3c9dfce6
CY
3117 * xselect.c (Fx_selection_exists_p): Doc fix.
3118 (x_clipboard_manager_save_all): Print an informative message
3119 before saving to clipboard manager.
3120
9486df08
CY
31212012-02-24 Chong Yidong <cyd@gnu.org>
3122
3123 * keyboard.c (process_special_events): Handle all X selection
3124 requests in kbd_buffer, not just the next one (Bug#8869).
3125
f01d3321
CY
31262012-02-23 Chong Yidong <cyd@gnu.org>
3127
3128 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
3129 call when setting menu-bar-lines and tool-bar-lines parameters.
3130 (unwind_create_frame_1): New helper function.
3131
3132 * window.c (inhibit_window_configuration_change_hook): New var.
3133 (run_window_configuration_change_hook): Obey it.
b2e4ca7d 3134 (syms_of_window): Initialize it.
f01d3321 3135
86b847b6
CY
31362012-02-22 Chong Yidong <cyd@gnu.org>
3137
3138 * xterm.c (x_draw_image_relief): Add missing type check for
3139 Vtool_bar_button_margin (Bug#10743).
3140
a59225b1
CY
31412012-02-21 Chong Yidong <cyd@gnu.org>
3142
3143 * fileio.c (Vfile_name_handler_alist): Doc fix.
3144
3145 * buffer.c (Fget_file_buffer): Protect against invalid file
3146 handler return value.
3147
310f5bd4
PE
31482012-02-20 Paul Eggert <eggert@cs.ucla.edu>
3149
cb3a28cc
PE
3150 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
3151 when computing $valmask.
3152
310f5bd4
PE
3153 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
3154 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
3155 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
3156 It's useless in that case, and it can cause problems on hosts
3157 that allocate halves of EMACS_INT values separately.
3158 Reported by Dan Horák. Diagnosed by Andreas Schwab in
3159 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
3160 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
3161 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
3162 it avoids undefined behavior on hosts where shifting right by more
3163 than the word width has undefined behavior.
3164
2375c96a
CY
31652012-02-19 Chong Yidong <cyd@gnu.org>
3166
3167 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
3168 (Funhandled_file_name_directory, Ffile_name_as_directory)
3169 (Fdirectory_file_name, Fexpand_file_name)
3170 (Fsubstitute_in_file_name): Protect against invalid file handler
3171 return values (Bug#10845).
3172
3eb49e71
EZ
31732012-02-18 Eli Zaretskii <eliz@gnu.org>
3174
3175 * .gdbinit (pitx): Fix incorrect references to fields of the
3176 iterator stack.
3177
7b926f3f
CY
31782012-02-17 Chong Yidong <cyd@gnu.org>
3179
3180 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
3181
11273115
PE
31822012-02-15 Paul Eggert <eggert@cs.ucla.edu>
3183
3184 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
3185 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
3186
c3a70e2b
CY
31872012-02-15 Chong Yidong <cyd@gnu.org>
3188
3189 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
3190 marked as special. Also, starting docstrings with * is obsolete.
3191
0ca43699
AS
31922012-02-13 Andreas Schwab <schwab@linux-m68k.org>
3193
3194 * gnutls.c (emacs_gnutls_write): Fix last change.
3195
2e8f3c56
LI
31962012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
3197
3198 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
3199 send_process.
3200
af70074f
SM
32012012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
3202
3203 * keymap.c (Fsingle_key_description): Handle char ranges.
3204
95986d52
CY
32052012-02-12 Chong Yidong <cyd@gnu.org>
3206
afd83bd1
CY
3207 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
3208 as that creates a dangerous corner case.
3209
95986d52
CY
3210 * window.c (Fdelete_window_internal): Invalidate the mouse
3211 highlight (Bug#9904).
3212
bd7da63e
GM
32132012-02-12 Glenn Morris <rgm@gnu.org>
3214
3215 * xselect.c (Fx_own_selection_internal)
3216 (Fx_get_selection_internal, Fx_disown_selection_internal)
3217 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
3218 * nsselect.m (Fx_own_selection_internal)
3219 (Fx_disown_selection_internal, Fx_selection_exists_p)
3220 (Fx_selection_owner_p, Fx_get_selection_internal):
3221 Sync docs and argument specs with the xselect.c versions.
3222
77abcbc2
LI
32232012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
3224
3225 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
3226
90b671e2
EZ
32272012-02-11 Eli Zaretskii <eliz@gnu.org>
3228
1c0ca0b7
EZ
3229 * w32select.c (Fx_selection_exists_p): Sync doc string and
3230 argument list with xselect.c. (Bug#10783)
3231
3232 * w16select.c (Fx_selection_exists_p): Sync doc string and
3233 argument list with xselect.c. (Bug#10783)
90b671e2 3234
49241268
GM
32352012-02-10 Glenn Morris <rgm@gnu.org>
3236
3237 * fns.c (Fsecure_hash): Doc fix.
3238
f998bbe7 32392012-02-09 Kenichi Handa <handa@m17n.org>
5c1ca13d
KH
3240
3241 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
3242
0992bd9c
CY
32432012-02-07 Chong Yidong <cyd@gnu.org>
3244
3245 * buffer.c (Fbuffer_local_variables)
3246 (buffer_lisp_local_variables): Handle unbound vars correctly;
3247 don't let Qunbound leak into Lisp.
3248
af008560
GM
32492012-02-07 Glenn Morris <rgm@gnu.org>
3250
dd605cc4
GM
3251 * image.c (Fimagemagick_types): Doc fix.
3252
af008560
GM
3253 * image.c (imagemagick-render-type): Change it from a lisp object
3254 to an integer. Move the doc here from the lisp manual.
3255 Treat all values not equal to 0 the same.
3256
1449fa1d
CY
32572012-02-06 Chong Yidong <cyd@gnu.org>
3258
3259 * doc.c (store_function_docstring): Avoid applying docstring of
3260 alias to base function (Bug#2603).
3261
3723ec07
AS
32622012-02-04 Andreas Schwab <schwab@linux-m68k.org>
3263
3264 * .gdbinit (pp1, pv1): Remove redundant defines.
3265 (pr): Use pp.
3266
79c1cc1e
CY
32672012-02-04 Chong Yidong <cyd@gnu.org>
3268
3269 * nsterm.m: Declare a global (Bug#10694).
3270
d7f29f8e
EZ
32712012-02-04 Eli Zaretskii <eliz@gnu.org>
3272
cae07000
SM
3273 * w32.c (get_emacs_configuration_options):
3274 Include --enable-checking, if specified, in the return value.
d7f29f8e 3275
3b95a6f9
MR
32762012-02-04 Martin Rudalics <rudalics@gmx.at>
3277
3278 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
3279 after rounding frame sizes. (Bug#9723)
3280
d6fa96a6
EZ
32812012-02-04 Eli Zaretskii <eliz@gnu.org>
3282
3283 * keyboard.c (adjust_point_for_property): Don't position point
3284 before BEGV. (Bug#10696)
3285
df0b2940
PE
32862012-02-03 Paul Eggert <eggert@cs.ucla.edu>
3287
3288 Handle overflow when computing char display width (Bug#9496).
3289 * character.c (char_width): Return EMACS_INT, not int.
3290 (char_width, c_string_width): Check for overflow when
3291 computing the width; this is possible now that individual
3292 characters can have unbounded width. Problem introduced
3293 by merge from Emacs 23 on 2012-01-19.
3294
6bee44d6
MA
32952012-02-02 Michael Albinus <michael.albinus@gmx.de>
3296
3297 * dbusbind.c (Fdbus_register_method): Mention the return value
3298 :ignore in the docstring.
3299
44f92739
GM
33002012-02-02 Glenn Morris <rgm@gnu.org>
3301
1b9f60cc
GM
3302 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
3303
44f92739
GM
3304 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
3305 Unconditionally set to t. (Bug#10673)
3306 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
3307 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
3308 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
3309
c5d3843c
KH
33102012-02-02 Kenichi Handa <handa@m17n.org>
3311
3312 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
3313 0, do not call append_composite_glyph.
3314
159462d4 33152012-02-02 Kenichi Handa <handa@m17n.org>
d2a51fd7
KH
3316
3317 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
3318 NULL (Bug#6988).
3319 (x_produce_glyphs): If the component of a composition is a null
3320 string, set it->pixel_width to 1 to avoid zero-width glyph.
3321
78cef877
EZ
33222012-02-01 Eli Zaretskii <eliz@gnu.org>
3323
3324 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
3325 first 2 arguments are identical. This makes inserting large
3326 output from a subprocess an order of magnitude faster on
3327 MS-Windows, where all sbrk'ed memory is always contiguous.
3328
97897668
GM
33292012-01-31 Glenn Morris <rgm@gnu.org>
3330
3331 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
c78c6e0b 3332 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
97897668
GM
3333 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
3334
31fd3586
GM
33352012-01-29 Glenn Morris <rgm@gnu.org>
3336
3337 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
3338
0e24a8b2
CY
33392012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
3340
3341 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
3342
cc0adcb0
CY
33432012-01-28 Chong Yidong <cyd@gnu.org>
3344
3345 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
3346
acc28cb9
CY
33472012-01-26 Chong Yidong <cyd@gnu.org>
3348
9c69cfb7
CY
3349 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
3350
acc28cb9
CY
3351 * search.c (Fsearch_forward, Fsearch_backward): Document negative
3352 repeat counts (Bug#10507).
3353
48da7392
GM
33542012-01-26 Glenn Morris <rgm@gnu.org>
3355
3356 * lread.c (syms_of_lread): Doc fix.
3357
14af5f7f
CY
33582012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
3359
3360 * coding.c (encode_designation_at_bol): Change return value to
3361 EMACS_INT.
3362
0b21c100
CY
33632012-01-25 Chong Yidong <cyd@gnu.org>
3364
3365 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
3366
3c2907f7
CY
33672012-01-21 Chong Yidong <cyd@gnu.org>
3368
3369 * floatfns.c (Fcopysign): Make the second argument non-optional,
3370 since nil is not allowed anyway.
3371
959ad23f
AS
33722012-01-21 Andreas Schwab <schwab@linux-m68k.org>
3373
3374 * process.c (read_process_output): Use p instead of XPROCESS (proc).
3375 (send_process): Likewise.
3376
34a02f46
MR
33772012-01-19 Martin Rudalics <rudalics@gmx.at>
3378
3379 * window.c (save_window_save, Fcurrent_window_configuration)
cae07000
SM
3380 (Vwindow_persistent_parameters): Do not use Qstate.
3381 Rewrite doc-strings.
34a02f46 3382
1259009a 33832012-01-19 Kenichi Handa <handa@m17n.org>
25ed9e61
KH
3384
3385 * character.c (char_width): New function.
70d4fdf6
GM
3386 (Fchar_width, c_string_width, lisp_string_width):
3387 Use char_width (Bug#9496).
25ed9e61 3388
6a6ee00d
MR
33892012-01-16 Martin Rudalics <rudalics@gmx.at>
3390
3391 * window.c (Vwindow_persistent_parameters): New variable.
3392 (Fset_window_configuration, save_window_save): Handle persistent
3393 window parameters.
3394
c85efaf7
EZ
33952012-01-14 Eli Zaretskii <eliz@gnu.org>
3396
3397 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
3398 thrashing the stack of the thread. (Bug#9087)
3399
5944709e
PE
34002012-01-12 Paul Eggert <eggert@cs.ucla.edu>
3401
3402 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
3403
e71f5d99
EZ
34042012-01-11 Eli Zaretskii <eliz@gnu.org>
3405
3406 * xdisp.c (rows_from_pos_range): Handle the case where the
3407 highlight ends on a newline. (Bug#10464)
3408 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
3409 he end column for display of highlight that ends on a newline
3410 before a R2L line.
3411
ce316182
GM
34122012-01-11 Glenn Morris <rgm@gnu.org>
3413
3414 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
3415 from load-path also when installation-directory is nil. (Bug#10208)
3416
5b43da69
GM
34172012-01-10 Glenn Morris <rgm@gnu.org>
3418
74cc8ff9
GM
3419 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
3420
7d8d6e4e
GM
3421 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
3422 Update template values to be closer to their typical values these days.
5b43da69 3423
a0db8d43
EZ
34242012-01-09 Eli Zaretskii <eliz@gnu.org>
3425
3426 * xdisp.c (rows_from_pos_range): Accept additional argument
3427 DISP_STRING, and accept any glyph in a row whose object is that
3428 string as eligible for mouse highlight. Fixes mouse highlight of
3429 display strings from overlays. (Bug#10464)
3430
9a0115ab 34312012-01-07 Paul Eggert <eggert@cs.ucla.edu>
09450bae 3432
b9110d6a 3433 emacs: fix an auto-save permissions race condition (Bug#10400)
09450bae
PE
3434 * fileio.c (auto_saving_dir_umask): New static var.
3435 (Fmake_directory_internal): Use it.
3436 (do_auto_save_make_dir): Set it, instead of invoking chmod after
3437 creating the directory. The old code temporarily assigns
3438 too-generous permissions to the directory.
3439 (do_auto_save_eh): Clear it.
b9110d6a 3440 (Fdo_auto_save): Catch all errors, not just file errors, so
09450bae
PE
3441 that the var is always cleared.
3442
6c1bd3f3
EZ
34432012-01-07 Eli Zaretskii <eliz@gnu.org>
3444
3445 * search.c (scan_buffer): Pass character positions to
3446 know_region_cache, not byte positions. (Bug#6540)
3447
069d2b50
L
34482012-01-07 LynX <_LynX@bk.ru> (tiny change)
3449
3450 * w32.c (sys_rename): Report EXDEV when rename of a directory
3451 fails because the target is on another logical disk. (Bug#10284)
3452
75bf0d33
DB
34532012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
3454
3455 * xterm.c (x_embed_request_focus): New function.
3456
3457 * xterm.h: Add prototype.
3458
3459 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
3460
1c6e5a32
GM
34612012-01-05 Glenn Morris <rgm@gnu.org>
3462
3463 * emacs.c (emacs_copyright): Update short copyright year to 2012.
3464
651e947e
EZ
34652012-01-01 Eli Zaretskii <eliz@gnu.org>
3466
3467 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
3468 Load gnutls_transport_set_lowat only if GnuTLS version is below
3469 2.11.1.
3470 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
3471 GnuTLS versions below 2.11.1.
3472
3778cdd8
AL
34732011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
3474
3475 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
3476 to the doc string advising against its use for altering the way
3477 windows are scrolled.
3478
0e5317f7
KH
34792011-12-28 Kenichi Handa <handa@m17n.org>
3480
3481 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
3482 coding-system ASCII compatible only when it does not produce BOM
3483 on encoding (Bug#10383).
3484
93d5ca1f
JD
34852011-12-26 Jan Djärv <jan.h.d@swipnet.se>
3486
3487 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
3488 can scroll.
3489 (create_and_show_popup_menu): Always use menu_position_func for
3490 Gtk3 (Bug#10361).
3491
ca22b785
AS
34922011-12-24 Andreas Schwab <schwab@linux-m68k.org>
3493
3494 * callint.c (Fcall_interactively): Don't truncate prompt string.
3495
d048e1e6
EZ
34962011-12-23 Eli Zaretskii <eliz@gnu.org>
3497
3498 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
3499 property that ends at ZV, so that the bidi iteration could be
3ba1a2ad 3500 resumed from there (after widening). (Bug#10360)
d048e1e6 3501
5ccaba1f
JD
35022011-12-22 Jan Djärv <jan.h.d@swipnet.se>
3503
3504 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
3505
204ee57f
JD
35062011-12-21 Jan Djärv <jan.h.d@swipnet.se>
3507
b81d40f0
JB
3508 * nsterm.m (x_free_frame_resources):
3509 Release f->output_data.ns->miniimage.
204ee57f
JD
3510 (ns_index_color): Fix indentation. Do not retain
3511 color_table->colors[i].
3512
3513 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
3514 before returning.
3515
3516 * nsfns.m (x_set_background_color): Assign return value from
3517 ns_index_color to face-background instead of NSColor*.
3518 (ns_implicitly_set_icon_type): Fix indentation.
3519 Change assignment in for loop to comparison.
3520
3521 * emacs.c (ns_pool): New variable.
3522 (main): Assign ns_pool.
3523 (Fkill_emacs): Call ns_release_autorelease_pool.
3524
3525 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
3526 autorelease fdesc, release fdAttrs and tdict.
3527 (ns_get_covering_families): Release charset.
3528 (ns_findfonts): Release NSFontDescriptor created with new.
3529 (ns_uni_to_glyphs): Fix indentation.
3530 (setString): Release attrStr before assigning new value.
3531
c803b2b7
JD
35322011-12-18 Jan Djärv <jan.h.d@swipnet.se>
3533
678f4426
JD
3534 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
3535 and NS_IMPL_COCOA.
3536 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
3537 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
3538
cd394be1 35392011-12-18 David Reitter <reitter@cmu.edu>
678f4426 3540
5fecd5fc
JD
3541 * nsterm.m (ns_term_init): Subscribe for notifications
3542 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
3543 to method trackingNotification in EmacsMenu.
3544
3545 * nsmenu.m (trackingMenu): New variable.
3771cb17 3546 (trackingNotification): New method (from Aquamacs).
5fecd5fc 3547 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
3771cb17 3548 from Aquamacs (Bug#7030).
678f4426
JD
3549
35502011-12-18 Jan Djärv <jan.h.d@swipnet.se>
5fecd5fc 3551
c803b2b7
JD
3552 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
3553 (symbol_to_nsstring): Fix indentation.
3554 (ns_symbol_to_pb): New function.
cae07000
SM
3555 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
3556 (Fns_rotate_cut_buffers_internal): Remove.
3557 (Fns_store_selection_internal): Rename from
c803b2b7
JD
3558 Fns_store_cut_buffer_internal.
3559 (ns_get_foreign_selection, Fx_own_selection_internal)
3560 (Fx_disown_selection_internal, Fx_selection_exists_p)
b81d40f0
JB
3561 (Fns_get_selection_internal, Fns_store_selection_internal):
3562 Use ns_symbol_to_pb and check if return value is nil.
3563 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
3564 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
c803b2b7
JD
3565 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
3566 renamed to Sns_store_selection_internal.
3567 (ns_handle_selection_request): Move code to Fx_own_selection_internal
3568 and remove this function.
3569 (ns_handle_selection_clear): Remove, never used.
3570 (Fx_own_selection_internal): Move code from ns_handle_selection_request
3571 here.
3572
e1b01a3a
KB
35732011-12-17 Ken Brown <kbrown@cornell.edu>
3574
3575 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
3576 GID is unknown (Bug#10257).
3577
2adb6e85
PE
35782011-12-17 Paul Eggert <eggert@cs.ucla.edu>
3579
3580 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
3581 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
3582 which caused a build failure on GNU/Linux IA-64. This problem was
3583 introduced by my 2011-10-07 patch.
3584
d1d7b339
JL
35852011-12-15 Juri Linkov <juri@jurta.org>
3586
3587 * image.c (imagemagick_error): New function. (Bug#10112)
3588 (imagemagick_load_image): Comment out `MagickSetResolution' call.
3589 Use `imagemagick_error' where ImageMagick functions return
3590 `MagickFalse'.
3591 (Fimagemagick_types): Add `Fnreverse' to return the list in the
3592 proper order.
3593
100d5755
KH
35942011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3595
3596 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
3597 fill background (Bug#8992).
3598
454592a6
MR
35992011-12-13 Martin Rudalics <rudalics@gmx.at>
3600
3601 * window.c (Vwindow_combination_resize)
3602 (Vwindow_combination_limit): Use t instead of non-nil in
3603 doc-strings.
61d4b438
MR
3604 (Vrecenter_redisplay): Add first sentence of doc-string on
3605 separate line.
53524d93 3606 (Frecenter): Fix doc-string typo.
454592a6 3607
3633e3aa
KH
36082011-12-11 Kenichi Handa <handa@m17n.org>
3609
3610 * coding.c (Funencodable_char_position): Pay attention to the
3611 buffer text relocation (Bug#9389).
3612
7b9d523a 36132011-12-10 Jan Djärv <jan.h.d@swipnet.se>
61ccba97 3614
7b9d523a
JD
3615 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
3616 gtk_init (Bug#10100).
3617
b73189c6
EZ
36182011-12-10 Eli Zaretskii <eliz@gnu.org>
3619
3620 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
3621 IT->string is nil. (Bug#10263)
3622
f7dfe5d6
JD
36232011-12-10 Jan Djärv <jan.h.d@swipnet.se>
3624
83faebb4
JD
3625 * nsterm.h (x_free_frame_resources): Declare.
3626
f7dfe5d6
JD
3627 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
3628 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
3629
3630 * nsterm.h (ns_get_defaults_value): Declare.
3631
3632 * nsterm.m (ns_default): Call ns_get_defaults_value.
3633
7cd4e72c
EZ
36342011-12-09 Eli Zaretskii <eliz@gnu.org>
3635
3636 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
3637 (Bug#10170)
3638
b34d7317
YM
36392011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3640
3641 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
3642 that where the value of an _OBJC_* symbol points to is in the .bss
3643 section (Bug#10240).
3644
76470ad1
KH
36452011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
3646
3647 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
2fac8180 3648 after the loop to call ccl_driver at least once (Bug#8619).
76470ad1 3649
745fff94
KH
36502011-12-08 Kenichi Handa <handa@m17n.org>
3651
3652 * ftfont.c (get_adstyle_property): Fix previous change
3653 (Bug#10233).
3654
6e44397c
JB
36552011-12-07 Juanma Barranquero <lekktu@gmail.com>
3656
3657 * w32.c (init_environment): If no_site_lisp, remove site-lisp
3658 dirs from the default value of EMACSLOADPATH (bug#10208).
3659
7efa6272
GM
36602011-12-07 Glenn Morris <rgm@gnu.org>
3661
3662 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
3663 installation and source directories as well. (Bug#10208)
3664
f6fc4d87
CY
36652011-12-06 Chong Yidong <cyd@gnu.org>
3666
3667 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
3668
2bf26180
GM
36692011-12-06 Glenn Morris <rgm@gnu.org>
3670
3671 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
3672 as an error, not just -1. (Bug#10217)
3673
3a6ad4f0
CY
36742011-12-05 Chong Yidong <cyd@gnu.org>
3675
3676 * keyboard.c (process_special_events): New function.
3677 (swallow_events, Finput_pending_p): Use it (Bug#10195).
3678
75a3b399
PE
36792011-12-05 Paul Eggert <eggert@cs.ucla.edu>
3680
3681 * coding.c (encode_designation_at_bol): Don't use uninitialized
3682 local variable (Bug#9318).
3683
c3c9e25e
KH
36842011-12-05 Kenichi Handa <handa@m17n.org>
3685
3686 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
3687 return Qnil (Bug#8046, Bug#10193).
3688
5eb05ea3
KH
36892011-12-05 Kenichi Handa <handa@m17n.org>
3690
3691 * coding.c (encode_designation_at_bol): New args charbuf_end and
3692 dst. Return the number of produced bytes. Callers changed.
a79703f5
KH
3693 (coding_set_source): Return how many bytes coding->source was
3694 relocated.
3695 (coding_set_destination): Return how many bytes
3696 coding->destination was relocated.
3697 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
cae07000 3698 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
5eb05ea3
KH
3699
37002011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
3701
3702 * coding.c (CODING_CHAR_CHARSET_P): New macro.
3703 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
3704 macro (Bug#9318).
3705
37062011-12-05 Andreas Schwab <schwab@linux-m68k.org>
3707
3708 The following changes are to fix Bug#9318.
3709
a79703f5 3710 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
5eb05ea3
KH
3711 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
3712 (encode_coding_iso_2022, encode_coding_sjis)
a79703f5 3713 (encode_coding_big5, encode_coding_charset): Use the above macros.
5eb05ea3 3714
7dbda6df
JB
37152011-12-05 Juanma Barranquero <lekktu@gmail.com>
3716
3717 * lisp.h (process_quit_flag): Fix external declaration.
3718
6d5eb5b0
SM
37192011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
3720
3721 Don't macro-inline non-performance-critical code.
3722 * eval.c (process_quit_flag): New function.
3723 * lisp.h (QUIT): Use it.
3724
a0c3fad0
JD
37252011-12-04 Jan Djärv <jan.h.d@swipnet.se>
3726
3727 * nsfns.m (get_geometry_from_preferences): New function.
3728 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
3729
6c07aac2
AS
37302011-12-04 Andreas Schwab <schwab@linux-m68k.org>
3731
3732 * emacs.c (Qkill_emacs): Define.
3733 (syms_of_emacs): Initialize it.
3734 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
3735 Qquit_flag to `kill-emacs' instead.
6d5eb5b0
SM
3736 (quit_throw_to_read_char): Add parameter `from_signal'.
3737 All callers changed. Call Fkill_emacs if requested and safe.
6c07aac2
AS
3738 * lisp.h (QUIT): Call Fkill_emacs if requested.
3739
c052ead4
JD
37402011-12-03 Jan Djärv <jan.h.d@swipnet.se>
3741
3742 * widget.c (update_wm_hints): Return if wmshell is null.
3743 (widget_update_wm_size_hints): New function.
3744
3745 * widget.h (widget_update_wm_size_hints): Declare.
3746
3747 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
3748 widget_update_wm_size_hints (Bug#10104).
3749
9e49252b
EZ
37502011-12-03 Eli Zaretskii <eliz@gnu.org>
3751
3752 * xdisp.c (handle_invisible_prop): If the invisible text ends just
3753 before a newline, prepare the bidi iterator for consuming the
3754 newline, and keep the current paragraph direction. (Bug#10183)
e9a49426 3755 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
9e49252b 3756
02b16839
JL
37572011-12-02 Juri Linkov <juri@jurta.org>
3758
3759 * search.c (Fword_search_regexp): New Lisp function created from
3760 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
3761 (Fword_search_backward, Fword_search_forward)
3762 (Fword_search_backward_lax, Fword_search_forward_lax):
3763 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
3764 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
3765
0068070e
SM
37662011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
3767
3768 * fileio.c (Finsert_file_contents): Move after-change-function call
3769 to before the "handled:" label, since all "goto handled" appear in
3770 cases where the *-change-functions have already been properly called
3771 (bug#10117).
3772
3360a3fc
AS
37732011-12-01 Andreas Schwab <schwab@linux-m68k.org>
3774
3775 * keyboard.c (interrupt_signal): Don't call kill-emacs when
3776 waiting for input. (Bug#10169)
3777
73d6c093
EZ
37782011-11-30 Eli Zaretskii <eliz@gnu.org>
3779
3780 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
3781 verifies glyph row's hash code--we have just reallocated the
3782 glyphs, so their contents can be complete garbage. (Bug#10164)
3783
febe6bea
JB
37842011-11-30 Juanma Barranquero <lekktu@gmail.com>
3785
3786 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
3787
801a4313
EZ
37882011-11-30 Eli Zaretskii <eliz@gnu.org>
3789
3790 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
3791 attributes are tested _before_ calling verify_row_hash, to protect
3792 against GCC re-ordering of the tests. (Bug#10164)
3793
2b56b87e
JD
37942011-11-29 Jan Djärv <jan.h.d@swipnet.se>
3795
3796 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
3797
3798 * xterm.c (handle_one_xevent): Only set async_visible and friends
3799 if net_wm_state_hidden_seen is non-zero (Bug#10002)
7dbda6df 3800 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
2b56b87e
JD
3801 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
3802
dbf31225
PE
38032011-11-28 Paul Eggert <eggert@cs.ucla.edu>
3804
3805 Remove GCPRO-related macros that exist only to avoid shadowing locals.
3806 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
3807 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
3808 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
3809 All uses changed to use GCPRO1 etc.
3810 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
3811 Revert to old implementation (i.e., before 2011-03-11).
3812
1305621b
YM
38132011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3814
3815 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
3816 of scroll runs so as to avoid assigning disabled bogus rows and
3817 unnecessary graphics copy operations.
3818
8c9afb46
EZ
38192011-11-27 Eli Zaretskii <eliz@gnu.org>
3820
3821 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
3822 (snprintf) [_MSC_VER]: Redirect to _snprintf.
3823 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
3824 (malloc, free, realloc, calloc): Redirect to e_* only when
3825 compiling Emacs.
3826
3827 * lisp.h (GCTYPEBITS): Move before first use.
3828 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
3829 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
3830 this macro definition.
3831
3832 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
3833 _MSC_VER.
3834
54e9e3bf
JD
38352011-11-27 Jan Djärv <jan.h.d@swipnet.se>
3836
6d5eb5b0
SM
3837 * gtkutil.c (xg_create_frame_widgets):
3838 Call gtk_window_set_has_resize_grip (FALSE) if that function is
54e9e3bf
JD
3839 present with Gtk+ 2.0.
3840
83aca1cb
PE
38412011-11-26 Paul Eggert <eggert@cs.ucla.edu>
3842
3843 * fileio.c (Finsert_file_contents): Undo previous change; see
3844 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
3845
5b76caa4
PE
38462011-11-26 Paul Eggert <eggert@cs.ucla.edu>
3847
3848 Rename locals to avoid shadowing.
3849 * fileio.c (Finsert_file_contents):
3850 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
3851 * process.c (wait_reading_process_output):
3852 Rename inner 'proc' to 'p' to avoid shadowing.
3853 Indent for consistency with usual Emacs style.
3854
8c535114
EZ
38552011-11-25 Eli Zaretskii <eliz@gnu.org>
3856
3857 * xdisp.c (redisplay_window): If cursor row is not fully visible
3858 after recentering, and scroll-conservatively is set to a large
3859 number, scroll window by a few more lines to make the cursor fully
3860 visible and out of scroll-margin. (Bug#10105)
91b4a718
EZ
3861 (start_display): Don't move to the next line if the display should
3862 start at a newline that is part of a display vector or an overlay
3863 string. (Bug#10119)
8c535114 3864
fa4fdb5c
JL
38652011-11-24 Juri Linkov <juri@jurta.org>
3866
3867 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
3868 after the `MagickPingImage' call. (Bug#10112)
3869
90ec88df
CY
38702011-11-23 Chong Yidong <cyd@gnu.org>
3871
3872 * window.c (Fcoordinates_in_window_p): Accept only live windows.
3873
56e2e794
MR
38742011-11-23 Martin Rudalics <rudalics@gmx.at>
3875
3876 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
3877 making another buffer current. (Bug#10114)
3878
b6e64c41
GM
38792011-11-23 Glenn Morris <rgm@gnu.org>
3880
3881 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
3882
6b21de18
CY
38832011-11-23 Chong Yidong <cyd@gnu.org>
3884
3885 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
3886 using it (Bug#5984).
3887
b12cd789
EZ
38882011-11-22 Eli Zaretskii <eliz@gnu.org>
3889
3890 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
3891 and header-lines, as they don't have one computed for them.
3892 (Bug#10098)
3893
3894 * .gdbinit (prow): Make displayed values more self-explaining.
3895 Add row's hash code.
3896
261b6fd4
LMI
38972011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
3898
3899 * process.c (wait_reading_process_output): Fix asynchrounous
3900 GnuTLS socket handling on some versions of the GnuTLS library.
16c1ad08 3901 (wait_reading_process_output): Add comment and URL.
261b6fd4 3902
e7cfd277
JD
39032011-11-21 Jan Djärv <jan.h.d@swipnet.se>
3904
3905 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
3906
a9b9b7f5
CY
39072011-11-21 Chong Yidong <cyd@gnu.org>
3908
3909 * window.c (Fnext_window, Fprevious_window): Doc fix.
3910
b0d15b4f
SM
39112011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
3912
3913 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
3914
fe7a3057
JB
39152011-11-20 Juanma Barranquero <lekktu@gmail.com>
3916
3917 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
3918
d2999b1a
MR
39192011-11-20 Martin Rudalics <rudalics@gmx.at>
3920
3921 * window.c (Fset_window_combination_limit): Rename argument
3922 STATUS to LIMIT.
3923 (Vwindow_combination_limit): Remove "status" from doc-string.
3924
d5ff9cd0
AS
39252011-11-20 Andreas Schwab <schwab@linux-m68k.org>
3926
3927 * m/ibms390.h: Remove.
3928 * m/ibms390x.h: Don't include "ibms390.h".
3929
a5bb9bd3
SM
39302011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
3931
3932 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
3933 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
3934
cd1181db
JB
39352011-11-20 Juanma Barranquero <lekktu@gmail.com>
3936
3937 * casetab.c (Fset_case_table):
3938 * charset.c (Fcharset_after): Fix typos.
3939
615a3b8d 39402011-11-20 Paul Eggert <eggert@cs.ucla.edu>
6a0bf43d 3941
17e845af
PE
3942 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
3943 Otherwise, valgrind does not work on some platforms.
3944 Problem reported by Andreas Schwab in
6a0bf43d
PE
3945 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
3946 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
3947 is set, removing the need for VIRT_ADDRESS_VARIES.
3948 (PURE_P): Use a more-efficient implementation that needs just one
3949 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
3950 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
3951 to 4 (xorl, subq, cmpq, setbe).
3952 * alloc.c (pure): Always extern now, since that's the
3953 VIRT_ADDR_VARIES behavior.
3954 (PURE_POINTER_P): Use a single comparison, not two, for
3955 consistency with the new puresize.h.
3956 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
3957 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
3958 Remove VIRT_ADDR_VARIES no longer needed.
3959
f8fe6f96
EZ
39602011-11-19 Eli Zaretskii <eliz@gnu.org>
3961
3962 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
3963 (erase_phys_cursor, update_window_cursor, show_mouse_face)
3964 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
3965 behave as if the cursor position were at the window margin.
3966
3967 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
3968 and the cursor position is out of bounds, behave as if the cursor
3969 position were at the window margin. (Bug#10075)
3970
df05a53c
CY
39712011-11-18 Chong Yidong <cyd@gnu.org>
3972
3973 * window.c (Fwindow_combination_limit): Make first argument
3974 non-optional, since it is meaningless for live windows like the
3975 selected window.
61ccba97 3976
2071918e
DA
39772011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
3978
3979 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
3980
b50a28de
SM
39812011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
3982
3983 * intervals.c: Fix grafting over the whole buffer (bug#10071).
3984 (graft_intervals_into_buffer): Simplify.
3985
015137db
EZ
39862011-11-18 Eli Zaretskii <eliz@gnu.org>
3987
3988 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
3989 hash values of the two rows.
3990 (copy_row_except_pointers): Preserve the used[] arrays and the
3991 hash values of the two rows. (Bug#10035)
68c95424 3992 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
015137db
EZ
3993
3994 * xdisp.c (row_hash): New function, body extracted from
3995 compute_line_metrics.
3996 (compute_line_metrics): Call row_hash, instead of computing the
3997 hash code inline.
3998
3999 * dispnew.c (verify_row_hash): Call row_hash for computing the
4000 hash code of a row, instead of duplicating code from xdisp.c.
4001
4002 * dispextern.h (row_hash): Add prototype.
4003
a2addb04
TH
40042011-11-18 Tassilo Horn <tassilo@member.fsf.org>
4005
4006 * frame.c (delete_frame): Don't delete the terminal when the last
4007 X frame is closed if emacs is built with GTK toolkit.
4008
df85d315
JB
40092011-11-17 Juanma Barranquero <lekktu@gmail.com>
4010
4011 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
4012
a0c2d0ae
MR
40132011-11-17 Martin Rudalics <rudalics@gmx.at>
4014
4015 * window.c (Vwindow_splits): Rename to
4016 Vwindow_combination_resize. Suggested by Juri Linkov.
4017 (Fsplit_window_internal): Use Vwindow_combination_resize instead
4018 of Vwindow_splits.
4019
58179cce
JB
40202011-11-16 Juanma Barranquero <lekktu@gmail.com>
4021
7877f373
JB
4022 * nsfns.m (Fns_font_name):
4023 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
58179cce 4024
b6f67890
MR
40252011-11-16 Martin Rudalics <rudalics@gmx.at>
4026
4027 * window.h (window): Rename slot "nest" to "combination_limit".
4028 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
4029 (Fset_window_nest): Rename to Fset_window_combination_limit.
4030 (Vwindow_nest): Rename to Vwindow_combination_limit.
4031 (recombine_windows, make_parent_window, make_window)
4032 (Fsplit_window_internal, saved_window)
4033 (Fset_window_configuration, save_window_save): Rename all
4034 occurrences of window_nest to window_combination_limit.
4035
c7015153
JB
40362011-11-15 Juanma Barranquero <lekktu@gmail.com>
4037
4038 * image.c (imagemagick_load_image): Fix typo.
4039
322ad6ec
EZ
40402011-11-14 Eli Zaretskii <eliz@gnu.org>
4041
4042 * xdisp.c (display_line): Move the call to
4043 highlight_trailing_whitespace before the call to
4044 compute_line_metrics, since the latter needs to see the final
6d5eb5b0
SM
4045 faces of all the glyphs to compute ROW's hash value.
4046 Fixes assertion violations in row_equal_p. (Bug#10035)
322ad6ec 4047
f067b8ec
JB
40482011-11-14 Juanma Barranquero <lekktu@gmail.com>
4049
4050 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
4051 just return (bug#10044).
4052
1e5b2111
EZ
40532011-11-12 Eli Zaretskii <eliz@gnu.org>
4054
7ef3cbd5
EZ
4055 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
4056 with user-defined heap size. Bump the default size of the temacs
4057 heap to 27MB, to avoid memory warning when running temacs.
4058 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
4059
1e5b2111
EZ
4060 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
4061 current_matrix and desired_matrix. (Bug#9990)
7a7270dd
EZ
4062 (verify_row_hash) [XASSERTS]: New function.
4063 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
4064 that the hash value of glyph rows is correct.
1e5b2111 4065
89d61221
MR
40662011-11-12 Martin Rudalics <rudalics@gmx.at>
4067
4068 * window.h (window): Remove splits slot.
4069 * window.c (Fwindow_splits, Fset_window_splits): Remove.
4070 (Fdelete_other_windows_internal, make_parent_window)
4071 (make_window, Fsplit_window_internal, Fdelete_window_internal)
4072 (Fset_window_configuration, save_window_save): Don't deal with
4073 split status of windows.
4074 (saved_window): Remove splits slot.
4075 (Vwindow_splits): Rewrite doc-string.
4076
97f18cc8
JD
40772011-11-11 Jan Djärv <jan.h.d@swipnet.se>
4078
4079 * xfns.c (unwind_create_frame):
4080 * nsfns.m (unwind_create_frame):
4081 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
4082 Vframe_list (Bug#9999).
4083
22a648b4
DA
40842011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
4085
0b381c7e 4086 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
22a648b4 4087
659afede
KH
40882011-11-11 Kenichi Handa <handa@m17n.org>
4089
4090 * callproc.c (Fcall_process): Set the member dst_multibyte of
4091 process_coding.
4092
9ac0394b
KH
40932011-11-11 Johan Bockgård <bojohan@gnu.org>
4094
4095 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
4096 avoid a crash (bug#9496).
4097
2fbdc249
CY
40982011-11-09 Chong Yidong <cyd@gnu.org>
4099
4100 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
4101 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
4102
ac6b1f81
PE
41032011-11-08 Paul Eggert <eggert@cs.ucla.edu>
4104
4105 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
4106
09db192c
PE
41072011-11-08 Paul Eggert <eggert@cs.ucla.edu>
4108
4109 Avoid some portability problems by eschewing 'extern inline' functions.
4110 The trivial performance wins aren't worth the portability hassles; see
4111 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
4112 et seq.
4113 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
4114 (window_box_width, window_box_left, window_box_left_offset)
4115 (window_box_right, window_box_right_offset): Undo previous change,
4116 by removing the "extern"s.
4117 * intervals.c (adjust_intervals_for_insertion)
4118 (adjust_intervals_for_deletion): Undo previous change,
4119 making these static again.
4120 (offset_intervals, temp_set_point_both, temp_set_point)
4121 (copy_intervals_to_string): No longer inline.
4122 * xdisp.c (window_text_bottom_y, window_box_width)
4123 (window_box_height, window_box_left_offset)
4124 (window_box_right_offset, window_box_left, window_box_right)
4125 (window_box): No longer inline.
4126
105216ed
CY
41272011-11-08 Chong Yidong <cyd@gnu.org>
4128
4129 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
6d5eb5b0
SM
4130 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
4131 Signal an error if not a live window.
105216ed
CY
4132 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
4133 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
4134
ae9e237f
JB
41352011-11-07 Juanma Barranquero <lekktu@gmail.com>
4136
4137 * lisp.h (syms_of_abbrev): Remove declaration.
4138 Reported by CHENG Gao <chenggao@royau.me>.
4139
c7aa8333
EZ
41402011-11-07 Eli Zaretskii <eliz@gnu.org>
4141
4142 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
4143 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
4144 of temacs in GUI mode.
4145
be7f5545
MR
41462011-11-07 Martin Rudalics <rudalics@gmx.at>
4147
4148 * window.h: Declare delete_all_child_windows instead of
4149 delete_all_subwindows.
4150 * window.c (Fwindow_nest, Fset_window_nest)
4151 (Fset_window_new_total, Fset_window_new_normal)
4152 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
4153 (delete_all_subwindows): Rename to delete_all_child_windows.
4154 (Fdelete_other_windows_internal, Fset_window_configuration):
4155 Call delete_all_child_windows instead of delete_all_subwindows.
4156 * frame.c (delete_frame): Call delete_all_child_windows instead
4157 of delete_all_subwindows.
4158
ca78dc43
PE
41592011-11-07 Paul Eggert <eggert@cs.ucla.edu>
4160
4161 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
4162 This is also needed for porting to any host where GC_MARK_STACK is
4163 not GC_MAKE_GCPROS_NOOPS.
4164 (which_symbols): Use it.
4165
a0241d01
KH
41662011-11-07 Kenichi Handa <handa@m17n.org>
4167
4168 * coding.c (coding_set_destination): Check coding->src_pos only
4169 when coding->src_object is a buffer (bug#9910).
4170
4171 * process.c (send_process): Set the member src_multibyte of coding
4172 to 0 (bug#9911) when sending a unibyte text.
4173
4174 * callproc.c (Fcall_process): Set the member src_multibyte of
4175 process_coding to 0 (bug#9912).
4176
a64bfdfa 41772011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
ba24cea2
YM
4178
4179 * xmenu.c (cleanup_widget_value_tree): New function.
4180 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
4181 calling free_menubar_widget_value_tree directly (Bug#9830).
4182
cb41b32a
PE
41832011-11-06 Paul Eggert <eggert@cs.ucla.edu>
4184
4185 Fix some portability problems with 'inline'.
4186 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
4187 (window_box_width, window_box_left, window_box_left_offset)
4188 (window_box_right, window_box_right_offset): Declare extern.
4189 Otherwise, these inline functions do not conform to C99 and
4190 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
4191 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
4192 * intervals.c (adjust_intervals_for_insertion)
4193 (adjust_intervals_for_deletion): Now extern, because otherwise the
4194 extern inline functions 'offset_intervals' couldn't refer to it.
4195 (static_offset_intervals): Remove.
4196 (offset_intervals): Rewrite using the old contents of
4197 static_offset_intervals. The old version didn't conform to C99
4198 because an extern inline function contained a reference to an
4199 identifier with static linkage.
4200
b7041366
AS
42012011-11-06 Andreas Schwab <schwab@linux-m68k.org>
4202
4203 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
4204 GC.
4205
88a37c4d
EZ
42062011-11-06 Eli Zaretskii <eliz@gnu.org>
4207
4208 * xdisp.c (init_iterator, reseat_to_string): Don't set the
4209 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
4210 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
4211 return Qleft_to_right.
4212
49745b39
CY
42132011-11-06 Chong Yidong <cyd@gnu.org>
4214
4215 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
4216 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
4217 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
4218 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
4219 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
4220 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
4221 (Fwindow_vscroll): Doc fix.
4222 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
4223 argument, since it makes no sense to pass a live window and for
4224 consistency with window-child.
4225
1f05cd82
CS
42262011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
4227
4228 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
4229 support MSVC.
4230
22610910
JR
42312011-11-05 Jason Rumney <jasonr@gnu.org>
4232
4233 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
4234 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
4235 fonts (Bug#6029).
4236 (add_font_entity_to_list): Fix logic errors in mixed boolean and
4237 bitwise arithmetic preventing use of unicode-sip and non-truetype
4238 opentype fonts.
4239
a06776b2
EZ
42402011-11-05 Eli Zaretskii <eliz@gnu.org>
4241
3ad924ba
EZ
4242 * s/ms-w32.h (fstat, stat, utime): Move redirections to
4243 "emacs"-only part.
4244
a06776b2
EZ
4245 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
4246 initialization code to keep similarity to xfns.c after changes
4247 from 2011-11-05.
4248
c9e7db78
JD
42492011-11-05 Jan Djärv <jan.h.d@swipnet.se>
4250
a97f8f3f
JD
4251 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
4252 (unwind_create_frame): New function (Bug#9943).
4253 (Fx_create_frame): Restructure code to be more similar to the one in
4254 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
4255 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
4256 Move terminal->reference_count++ just before making the frame official
4257 (Bug#9943).
4258
4259 * nsterm.m (x_free_frame_resources): New function.
4260 (x_destroy_window): Move code to x_free_frame_resources.
4261
c9e7db78 4262 * xfns.c (unwind_create_frame): Fix comment.
6d5eb5b0
SM
4263 (Fx_create_frame, x_create_tip_frame):
4264 Move terminal->reference_count++ just before making the frame
75f1671a 4265 official. Move initialization of image_cache_refcount and
c9e7db78
JD
4266 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
4267
a6fc3b5c
EZ
42682011-11-05 Eli Zaretskii <eliz@gnu.org>
4269
4270 Support MSVC build with newer versions of Visual Studio.
4271 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
4272 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
4273 nt/gmake.defs.
4274
4275 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
4276 which are not supported by MSVC.
4277 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
4278 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
4279 bitfields.
4280 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
4281 types in bitfields.
4282 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
4283
4284 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
4285
58179cce 42862011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
a6fc3b5c
EZ
4287
4288 Support MSVC build with newer versions of Visual Studio.
4289 * w32.c: Don't include w32api.h for MSVC.
4290 (init_environment) [_MSC_VER]: Call sys_access, not _access.
4291
4292 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
4293 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
4294 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
4295 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
4296 e_* cousins.
4297 (alloca) [_MSC_VER]: Define to _alloca.
4298
4299 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
4300
4301 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
4302
a58c13ed
EZ
43032011-11-04 Eli Zaretskii <eliz@gnu.org>
4304
4305 * xdisp.c (note_mouse_highlight): If either of
4306 previous/next-single-property-change returns nil, treat that as
4307 the beginning or the end of the buffer. (Bug#9955)
4308
fe0b6370
JD
43092011-11-04 Jan Djärv <jan.h.d@swipnet.se>
4310
a58c13ed 4311 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
fe0b6370
JD
4312 label is not null (Bug#9951).
4313 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
4314 may be NULL.
4315
89bd5ee1
EZ
43162011-11-04 Eli Zaretskii <eliz@gnu.org>
4317
4318 * window.c (Fwindow_body_size): Mention in the doc string that the
4319 return value is in frame's canonical units. (Bug#9949)
4320
84c3edb9
EZ
43212011-11-03 Eli Zaretskii <eliz@gnu.org>
4322
4e2fb5c7
EZ
4323 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
4324
84c3edb9 4325 * w32fns.c (unwind_create_frame): If needed, free the glyph
3ab15fd6 4326 matrices of the partially constructed frame. (Bug#9943)
2a58bbc1 4327 * xfns.c (unwind_create_frame): Likewise.
84c3edb9 4328
bc17a887
EZ
43292011-11-01 Eli Zaretskii <eliz@gnu.org>
4330
4331 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
4332 Don't stop backward scan on the continuation glyph, even though
4333 its CHARPOS is positive.
6d5eb5b0
SM
4334 (mouse_face_from_buffer_pos, note_mouse_highlight):
4335 Rename cover_string to disp_string.
bc17a887 4336
4ee88440
MR
43372011-11-01 Martin Rudalics <rudalics@gmx.at>
4338
4339 * window.c (temp_output_buffer_show): Don't use
4340 Vtemp_buffer_show_specifiers.
4341 (Vtemp_buffer_show_specifiers): Remove unused variable.
4342
c2ff3c02
EZ
43432011-10-30 Eli Zaretskii <eliz@gnu.org>
4344
4345 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
4346 past the beginning of the current glyph matrix.
4347
58179cce 43482011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
6e56383b
JD
4349
4350 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
4351 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
4352 HAVE_GTK3 (Bug#9869).
b77a6a7f 4353
3b574623
JD
4354 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
4355 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
4356
b77a6a7f
JD
4357 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
4358
4359 * xterm.c: Declare x_handle_net_wm_state to return int.
4360 (handle_one_xevent): Check if we are iconified but don't have
4361 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
4362 (get_current_wm_state): Return non-zero if not hidden,
4363 check for _NET_WM_STATE_HIDDEN (Bug#9893).
4364 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
4365 (x_handle_net_wm_state): Return what get_current_wm_state returns.
4366 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
4367
196e41e4
PE
43682011-10-29 Paul Eggert <eggert@cs.ucla.edu>
4369
4370 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
4371 so that this new function doesn't get optimized away by a
4372 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
4373
021f2e1a
AS
43742011-10-29 Andreas Schwab <schwab@linux-m68k.org>
4375
4376 * frame.h (MOUSE_HL_INFO): Remove excess parens.
4377
8b058d44
EZ
43782011-10-29 Eli Zaretskii <eliz@gnu.org>
4379
4380 Fix the `xbytecode' command.
4381 * .gdbinit (xprintbytestr): New command.
b50a28de 4382 (xwhichsymbols): Rename from `which'; all callers changed.
8b058d44
EZ
4383 (xbytecode): Print the byte-code string as well.
4384
4452fb80
EZ
43852011-10-29 Kim Storm <storm@cua.dk>
4386
8b058d44
EZ
4387 * alloc.c (which_symbols): New function.
4388
21b72067
AS
43892011-10-29 Andreas Schwab <schwab@linux-m68k.org>
4390
4391 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
4392 line. (Bug#9903)
4393
83ed7b5c
GM
43942011-10-29 Glenn Morris <rgm@gnu.org>
4395
4396 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
4397 Not clear what it was for, and it causes various bugs. (Bug#9839)
4398
5a7a728b
EZ
43992011-10-28 Eli Zaretskii <eliz@gnu.org>
4400
4401 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
4402 possible random value that matches one of those tested as
4403 condition to clear the mouse face.
4404
d3d0842f
CY
44052011-10-28 Chong Yidong <cyd@gnu.org>
4406
4407 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
4408
31b39d13
DN
44092011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
4410
4411 * window.c (make_window): Initialize phys_cursor_on_p.
4412
9aba6043
SM
44132011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
4414
4415 * lisp.h (struct Lisp_Symbol): Update comments.
4416
c20992f4
JB
44172011-10-28 Juanma Barranquero <lekktu@gmail.com>
4418
4419 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
4420
db4f02f2
EZ
44212011-10-28 Eli Zaretskii <eliz@gnu.org>
4422
4423 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
4424 <oslsachem@gmail.com> for helping to debug this.
4425
4426 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
4427 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
4428 (g_b_init_get_glyph_outline_w): New static variables.
4429 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
4430 (GetGlyphOutlineW_Proc): New typedefs.
4431 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
9aba6043
SM
4432 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
4433 New functions.
4434 (w32font_open_internal, compute_metrics):
4435 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
db4f02f2
EZ
4436 instead of calling the "wide" APIs directly.
4437
4438 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
4439
4440 * w32.h (syms_of_w32font): Add prototype.
4441
87e68db4
JB
44422011-10-27 Juanma Barranquero <lekktu@gmail.com>
4443
4444 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
4445 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
4446 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
4447 (Fmove_to_window_line): Doc fix.
4448
435c1d67
CY
44492011-10-27 Chong Yidong <cyd@gnu.org>
4450
4451 * process.c (make_process): Set gnutls_state to NULL.
4452
4453 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
4454 non-NULL, regardless of GNUTLS_INITSTAGE.
4455 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
4456 an error. Set process slots as soon as we allocate them.
4457
4458 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
4459
9c6c6f49
CY
44602011-10-27 Chong Yidong <cyd@gnu.org>
4461
9aba6043
SM
4462 * gnutls.c (emacs_gnutls_deinit): New function.
4463 Deallocate credentials structures as well as calling gnutls_deinit.
9c6c6f49
CY
4464 (Fgnutls_deinit, Fgnutls_boot): Use it.
4465
4466 * process.c (make_process): Initialize GnuTLS credentials to NULL.
4467 (deactivate_process): Call emacs_gnutls_deinit.
4468
657d08d3
JB
44692011-10-27 Juanma Barranquero <lekktu@gmail.com>
4470
4471 * image.c (x_create_x_image_and_pixmap):
4472 * w32.c (sys_rename, w32_delayed_load):
4473 * w32font.c (fill_in_logfont):
4474 * w32reg.c (x_get_string_resource): Silence compiler warnings.
4475
5430d399
JB
44762011-10-26 Juanma Barranquero <lekktu@gmail.com>
4477
4478 * w32fns.c (w32_default_color_map): New function,
4479 extracted from Fw32_default_color_map.
a7ef684b 4480 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
5430d399 4481
fe0055fa
PE
44822011-10-25 Paul Eggert <eggert@cs.ucla.edu>
4483
4484 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
4485
e6346438
SM
44862011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
4487
4488 * keyboard.c (test_undefined): New function (bug#9751).
4489 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
4490
e112cc37
ET
44912011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
4492
4493 * sysdep.c (init_sys_modes): Fix the check for the controlling
4494 terminal (Bug#6649).
4495
7b5d6677
EZ
44962011-10-20 Eli Zaretskii <eliz@gnu.org>
4497
4498 * dispextern.h (struct bidi_it): New member next_en_type.
4499
4500 * bidi.c (bidi_line_init): Initialize the next_en_type member.
4501 (bidi_resolve_explicit_1): When next_en_pos is valid for the
4502 current character, check also for next_en_type being WEAK_EN.
4503 (bidi_resolve_weak): Don't enter the expensive loop if the current
4504 position is before next_en_pos. Record the bidi type of the first
4505 non-ET, non-BN character we find, in addition to its position.
4506 (bidi_level_of_next_char): Invalidate next_en_type when
4507 next_en_pos is over-stepped.
4508
7da0b018
PE
45092011-10-20 Paul Eggert <eggert@cs.ucla.edu>
4510
4511 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
4512 * editfns.c: Rewrite current-time-zone so that it invokes
4513 the equivalent of (format-time-string "%Z") to get the time zone name.
4514 This fixes a bug when the time zone name contains characters that
4515 need converting from the system time locale to Emacs internal format.
4516 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
4517 that patch fixed format-time-string to do the conversion, but
4518 I forgot to fix current-time-zone.
4519 (format_time_string): New function, containing most of
4520 what Fformat_time_string used to contain.
4521 (Fformat_time_string): Rewrite in terms of format_time_string.
4522 This doesn't change this function's behavior.
4523 (current-time-zone): Rewrite to use format_time_string.
4524 This fixes the bug reported by Michael Schierl in
4525 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
4526 Jason Rumney's 2007-06-07 change worked around this bug, but
4527 didn't fix it.
4528 * systime.h (tzname, timezone): Remove no-longer-used declarations.
4529
8547b010
EZ
45302011-10-19 Eli Zaretskii <eliz@gnu.org>
4531
4532 * xdisp.c (start_display): If the character at POS is displayed
4533 via a display vector, reset IT->current.dpvec_index to zero.
12b32963
EZ
4534 (try_window_reusing_current_matrix): If a line ends in a display
4535 vector or the next line starts in a display vector, continue
4536 redrawing the window even though the character position of
4537 start_row was reached.
8547b010
EZ
4538 (Bug#9771, part 2)
4539
4e948d15
CY
45402011-10-18 Chong Yidong <cyd@gnu.org>
4541
4542 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
4543 with nobreak-char-display too.
4544
4787455f
EZ
45452011-10-18 Eli Zaretskii <eliz@gnu.org>
4546
4547 Fix part 3 of bug#9771.
4548 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
4549 (bidi_resolve_neutral): Don't enter the expensive loop looking for
4550 non-neutral characters if the current character is a paragraph
4551 separator (a.k.a. Newline). This avoids running the same
4552 expensive loop twice, once when we consume the preceding newline
4553 and the other time when the line actually needs to be displayed.
4554 Avoid the loop when we see neutrals on the base embedding level
4555 following a character whose directionality is the same as the
4556 paragraph's. This avoids running the expensive loop when a line
4557 ends in a long sequence of neutrals, like control characters.
4558 Add assertion against STRONG_AL type. Slightly rearrange code
4559 that determines the type of a neutral given the first non-neutral
4560 that follows it.
4561 (bidi_level_of_next_char): Set next_en_pos to zero when
4562 invalidating its info.
4563
2c91f553
EZ
45642011-10-17 Eli Zaretskii <eliz@gnu.org>
4565
4566 * xdisp.c (push_display_prop): Determine whether to record string
4567 or buffer position by IT->string, not by IT->method. Allow
4568 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
f2ff9e88
EZ
4569 (move_it_vertically_backward): Don't look for character position
4570 immediately after the newline when in a continuation line.
4571 (Bug#9771, part 1)
2c91f553 4572
c7b08b0d
MR
45732011-10-15 Martin Rudalics <rudalics@gmx.at>
4574
4575 * window.c (coordinates_in_window): Rewrite and delabelize
4576 vertical border check. (Bug#5357) (Bug#9618)
4577
6b02f655
SM
45782011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
4579
4580 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
4581 errors in XSetWindowBorder (bug#9310).
4582
81d40c92
DA
45832011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
4584
4585 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
4586 avoid crash when xmalloc overrun checking is enabled.
4587
d4172c3b
EZ
45882011-10-13 Eli Zaretskii <eliz@gnu.org>
4589
4590 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
4591 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
4592 cursor motion with <left> and <right> arrow keys.
4593
4594 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
4595 some callers set that themselves.
4596
b00eea75
EZ
45972011-10-12 Eli Zaretskii <eliz@gnu.org>
4598
4599 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
4600 display string and the previous row comes from the same string and
4601 is empty. (Bug#9739) (Bug#9738)
4602
8fe012c4
SM
46032011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
4604
4605 * doc.c (get_doc_string): Encode file name (bug#9735).
4606
0074aef2
EZ
46072011-10-12 Eli Zaretskii <eliz@gnu.org>
4608
79beb178
EZ
4609 * bidi.c (bidi_level_of_next_char):
4610 * xdisp.c (get_visually_first_element): Remove old incorrect
4611 comments regarding the Unicode Line Separator character.
4612
0074aef2
EZ
4613 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
4614
6e4b3fbe
DA
46152011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
4616
4617 * alloc.c (Fgc_status): Do not access beyond zombies array
4618 boundary if nzombies > MAX_ZOMBIES.
4619 * alloc.c (dump_zombies): Add missing format specifier.
4620
0324f3af
PE
46212011-10-12 Paul Eggert <eggert@cs.ucla.edu>
4622
b5525cac
PE
4623 * xdisp.c (set_cursor_from_row): Simplify conditionals,
4624 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
4625
0324f3af
PE
4626 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
4627 Some packages use them to denote characters with modifiers.
4628
e9b5f888
AS
46292011-10-11 Andreas Schwab <schwab@linux-m68k.org>
4630
4631 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
4632 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
4633 matching a pp-number. Rename parameter var to var1.
4634
127827c0
SM
46352011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
4636
4637 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
4638
c8fd3bd0
GM
46392011-10-08 Glenn Morris <rgm@gnu.org>
4640
4641 * callint.c (Fcall_interactively): Give a more explicit error for the
4642 'c' case with a non-character input. (Bug#8479)
4643
352ec8ff
EZ
46442011-10-08 Eli Zaretskii <eliz@gnu.org>
4645
03669ccb
EZ
4646 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
4647 lines.
7061c986
EZ
4648 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
4649 lines that are hscrolled on the left.
03669ccb 4650
352ec8ff
EZ
4651 * dispnew.c (buffer_posn_from_coords): Account for a possible
4652 presence of header-line. (Bug#4426)
4653
a66cfb1c
SM
46542011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
4655
6b02f655
SM
4656 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
4657 Don't advertise functionality which we discourage or doesn't work.
a66cfb1c 4658
7c5ee88e
PE
46592011-10-07 Paul Eggert <eggert@cs.ucla.edu>
4660
4661 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
4662 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
4663 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
4664 this makes Emacs dump core during garbage collection on rare
4665 occasions. sizeof is obviously inferior to offsetof here, so
4666 stick with offsetof.
4667 (GC_POINTER_ALIGNMENT): New macro.
4668 (mark_memory): Omit 3rd (offset) arg; caller changed.
4669 Don't assume EMACS_INT alignment is the same as pointer alignment.
4670
df1bbe5b
SM
46712011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
4672
4673 * keyboard.c (read_key_sequence_remapped): New var.
4674 (read_key_sequence): Compute remapping in the right buffer.
4675 (command_loop_1): Use read_key_sequence's remapping directly.
4676
51553db6
SM
46772011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
4678
32c1fffd
SM
4679 * dired.c (file_name_completion): Don't expand file name.
4680 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
4681 before checking file name handler.
4682
51553db6
SM
4683 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
4684 they've been requested explicitly (bug#9591).
4685
b6bd1599 46862011-10-01 Andreas Schwab <schwab@linux-m68k.org>
fa2ec41f
AS
4687
4688 * keymap.c (Fsingle_key_description): Use make_specified_string
4689 instead of build_string to build string from push_key_description.
4690 (Bug#5193)
4691
f701dc2a
PE
46922011-09-30 Paul Eggert <eggert@cs.ucla.edu>
4693
4222c55d
PE
4694 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
4695 This fixes a Y2038 bug on 64-bit hosts.
4696 * buffer.c (reset_buffer):
4697 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
4698 (Fclear_buffer_auto_save_failure):
4699 Use 0, not -1, to represent an unset failure time, since time_t
4700 might not be signed.
4701
f701dc2a
PE
4702 Remove dependency on glibc malloc internals.
4703 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
4704 Move back here from lisp.h, but with their new implementations.
4705 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
4706 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
4707 * charset.c (charset_table_init): New static var.
4708 (syms_of_charset): Use it instead of xmalloc. This removes a
4709 dependency on glibc malloc internals. See Eli Zaretskii's comment in
4710 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
4711 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
4712 Move back to alloc.c.
4713 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
4714 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
4715
9ceebf39
JD
47162011-09-30 Jan Djärv <jan.h.d@swipnet.se>
4717
4718 * nsterm.m (windowDidResize): Call x_set_window_size only when
4719 ns_in_resize is true. Otherwise set pixelwidth/height and
4720 call change_frame_size (Bug#9628).
4721
cb993c58
PE
47222011-09-30 Paul Eggert <eggert@cs.ucla.edu>
4723
3930c88b
PE
4724 Port --enable-checking=all to Fedora 14 x86-64.
4725 * charset.c (syms_of_charset): Also account for glibc malloc's
4726 internal overhead when calculating the initial malloc maximum.
4727
cb993c58
PE
4728 Port --enable-checking=all to Fedora 14 x86.
4729 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
4730 Move to lisp.h.
4731 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
4732 (overrun_check_realloc, overrun_check_free):
4733 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
4734 That way, xmalloc returns a properly-aligned pointer even if
4735 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
4736 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
4737 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
4738 into account when calculating the initial malloc maximum.
4739 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
4740 Move here from alloc.c, so that charset.c can use it too.
4741 Properly align; the old code wasn't right for common 32-bit hosts
4742 when configured with --enable-checking=all.
4743 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
4744 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
4745
31bed486
EZ
47462011-09-29 Eli Zaretskii <eliz@gnu.org>
4747
04c70788 4748 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
31bed486
EZ
4749 use EDOM.
4750
fbcaa2f3
EZ
47512011-09-28 Eli Zaretskii <eliz@gnu.org>
4752
4753 * xdisp.c (compute_display_string_end): If there's no display
4754 string at CHARPOS, return -1.
4755
4756 * bidi.c (bidi_fetch_char): When compute_display_string_end
4757 returns a negative value, treat the character as a normal
4758 character not covered by a display string. (Bug#9624)
4759
a239d4e9
JB
47602011-09-28 Juanma Barranquero <lekktu@gmail.com>
4761
4762 * lread.c (Fread_from_string): Fix typo in docstring.
4763
88652fd5
EZ
47642011-09-27 Eli Zaretskii <eliz@gnu.org>
4765
4766 * xdisp.c (handle_invisible_prop): If invisible text ends on a
4767 newline, reseat the iterator instead of bidi-iterating there one
4768 character at a time. (Bug#9610)
32c1fffd
SM
4769 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
4770 TO_CHARPOS if the bidi iterator is at base embedding level.
88652fd5 4771
ed497dd4
AS
47722011-09-27 Andreas Schwab <schwab@linux-m68k.org>
4773
4774 * lread.c (readevalloop): Use correct code for NBSP.
4775 (read1): Likewise. (Bug#9608)
4776
b2bf61aa
MA
47772011-09-25 Michael Albinus <michael.albinus@gmx.de>
4778
4779 * dbusbind.c (Fdbus_register_signal): When service is not
4780 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
4781
32bbb17c
GM
47822011-09-25 Glenn Morris <rgm@gnu.org>
4783
4784 * buffer.c (truncate-lines): Doc fix.
4785
94e0933e
CY
47862011-09-24 Chong Yidong <cyd@stupidchicken.com>
4787
4788 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
4789 (Fset_window_next_buffers): Doc fix.
4790
cddde921
GM
47912011-09-24 Glenn Morris <rgm@gnu.org>
4792
4793 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
4794
1260aef1
PE
47952011-09-24 Paul Eggert <eggert@cs.ucla.edu>
4796
25b4bfa0
PE
4797 Fix minor problems found by static checking.
4798 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
1260aef1
PE
4799 * indent.c (Fvertical_motion): Fix == vs = typo.
4800
e3cbd34b
EZ
48012011-09-24 Eli Zaretskii <eliz@gnu.org>
4802
a66cfb1c
SM
4803 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
4804 Default value is now t. Doc fix.
6bf7006f 4805
e3cbd34b 4806 * indent.c (Fvertical_motion): Compute and apply the overshoot
32c1fffd 4807 logic when moving up, not only when moving down. Fix the
e3cbd34b 4808 confusing name and values of the it_overshoot_expected variable;
32c1fffd 4809 logic changes accordingly. (Bug#9254) (Bug#9549)
e3cbd34b
EZ
4810
4811 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
4812 CHARPOS is covered by a display string which includes newlines.
4813 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
4814 is covered by a display string with embedded newlines.
4815
a3de0cbd
MA
48162011-09-24 Michael Albinus <michael.albinus@gmx.de>
4817
4818 * dbusbind.c (Fdbus_register_signal): Add match rule to
4819 Vdbus_registered_objects_table. (Bug#9581)
a66cfb1c
SM
4820 (Fdbus_register_method, Vdbus_registered_objects_table):
4821 Fix docstring.
a3de0cbd 4822
b260039d
JM
48232011-09-24 Jim Meyering <meyering@redhat.com>
4824
32c1fffd 4825 do not ignore write error for any output size
b260039d
JM
4826 The previous change was incomplete.
4827 While it makes emacs --batch detect the vast majority of stdout
4828 write failures, errors were still ignored whenever the output size is
4829 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
4830 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
4831 && echo FAIL: ignored write error
4832 FAIL: ignored write error
4833 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
4834 && echo FAIL: ignored write error
4835 FAIL: ignored write error
4836 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
4837
8eca8a7c
AS
48382011-09-23 Andreas Schwab <schwab@linux-m68k.org>
4839
4840 * emacs.c (Fkill_emacs): In noninteractive mode exit
4841 non-successfully if a write error occurred on stdout. (Bug#9574)
4842
3341db62
EZ
48432011-09-21 Eli Zaretskii <eliz@gnu.org>
4844
4845 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
4846 the xassert test.
4847
4848 * dispextern.h (struct it): Update the comment documenting what
4849 can it->OBJECT be.
4850
8c203dbf
EZ
48512011-09-20 Eli Zaretskii <eliz@gnu.org>
4852
4853 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
4854 a display string, extend search for cursor position to end of row.
4855 (find_row_edges): If the row ends in a newline from a display
4856 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
4857 Handle the case of a display string with multiple newlines.
fd317ddf
EZ
4858 (Fcurrent_bidi_paragraph_direction): Fix search for previous
4859 non-empty line. Fixes confusing cursor motion with arrow keys at
4860 the beginning of a line that starts with whitespace.
8c203dbf 4861
a4824228
LMI
48622011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
4863
4864 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
4865 (bug#9493).
4866
33ed493b
CY
48672011-09-18 Chong Yidong <cyd@stupidchicken.com>
4868
4869 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
4870 boolean (Bug#9154).
4871
56cd55c8
EZ
48722011-09-18 Eli Zaretskii <eliz@gnu.org>
4873
4874 * xdisp.c (display_line): Record maximum and minimum buffer
4875 positions even if no glyphs were produced (e.g., by a zero-width
4876 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
4877 buffer positions that will be removed from the glyph row because
4878 they don't fit.
c02dcedf
EZ
4879 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
4880 column is beyond frame width: don't subtract 1 "pixel" when
4881 computing width of the stretch.
3e62b7e0
EZ
4882 (reseat_at_next_visible_line_start): Undo the change made on
4883 2011-09-17 that saved paragraph information and restored it after
4884 the call to `reseat'. (Bug#9545)
56cd55c8 4885
5ed99d36 48862011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3390454c
YM
4887
4888 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
4889 and turn window cursor on if cleared (Bug#9415).
4890
5ed99d36 48912011-09-18 Andreas Schwab <schwab@linux-m68k.org>
edb7b4dc
AS
4892
4893 * search.c (boyer_moore): Take unibyte characters from pattern
4894 literally. (Bug#9458)
4895
9bade7b2
EZ
48962011-09-18 Eli Zaretskii <eliz@gnu.org>
4897
4898 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
4899
e5e9d610
PE
49002011-09-18 Paul Eggert <eggert@cs.ucla.edu>
4901
87e4427a
PE
4902 Fix minor problem found by static checking.
4903 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
4904 initialized, to pacify gcc -Wuninitialized.
4905
e5e9d610
PE
4906 * fileio.c: Report proper errno when syscall falls.
4907 (Finsert_file_contents): Save and restore errno,
4908 so that report_file_error outputs the correct diagnostic.
4909 (Fwrite_region) [CLASH_DETECTION]: Likewise.
4910
a1674f0b
EZ
49112011-09-18 Eli Zaretskii <eliz@gnu.org>
4912
4913 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
4914
fbfb6dd4
EZ
49152011-09-17 Eli Zaretskii <eliz@gnu.org>
4916
4917 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
4918 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
4919
bb187662
EZ
49202011-09-17 Eli Zaretskii <eliz@gnu.org>
4921
1137e8b8 4922 * xdisp.c (reseat_at_next_visible_line_start): Keep information
6b02f655 4923 about the current paragraph and restore it after the call to reseat.
1137e8b8
EZ
4924
4925 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
4926 (bidi_find_paragraph_start): Search back for paragraph beginning
4927 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
4928 (bidi_move_to_visually_next): Only trigger paragraph-related
4929 computations when the last character is a newline or at EOB, not
4930 just any NEUTRAL_B. (Bug#9470)
4931
bb187662
EZ
4932 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
4933 truncated lines if point is covered by a display string. (Bug#9524)
4934
2e621251
PE
49352011-09-16 Paul Eggert <eggert@cs.ucla.edu>
4936
4937 * xselect.c: Relax test for outgoing X longs (Bug#9498).
4938 (cons_to_x_long): New function.
4939 (lisp_data_to_selection_data): Use it. Correct the test for
4940 short-versus-long data; it was negated. Break out of vector
4941 loop, for efficiency, when a long datum is discovered.
4942
91a15bc6
SM
49432011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
4944
4945 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
4946
b41c3a35
EZ
49472011-09-16 Eli Zaretskii <eliz@gnu.org>
4948
4949 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
4950 GCC PR/17406) by declaring this function with external scope.
4951
7812ba2d
PE
49522011-09-15 Paul Eggert <eggert@cs.ucla.edu>
4953
4954 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
4955 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
4956
cf7edc2a
AS
49572011-09-15 Andreas Schwab <schwab@linux-m68k.org>
4958
4959 * editfns.c (Fformat): Correctly handle text properties on "%%".
4960
bd01620e
EZ
49612011-09-15 Eli Zaretskii <eliz@gnu.org>
4962
4963 * xterm.c (x_draw_composite_glyph_string_foreground):
4964 * w32term.c (x_draw_composite_glyph_string_foreground):
4965 * term.c (encode_terminal_code):
4966 * composite.c (composition_update_it, get_composition_id):
4967 * xdisp.c (get_next_display_element)
4968 (fill_composite_glyph_string): Add comments about special meaning
4969 of TAB characters in a composition.
4970
a02719a3
PE
49712011-09-15 Paul Eggert <eggert@cs.ucla.edu>
4972
4973 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
4c122725
PE
4974 This occurs when processing a multibyte format.
4975 Problem reported by Wolfgang Jenker.
a02719a3 4976
72589a3c
JB
49772011-09-15 Johan Bockgård <bojohan@gnu.org>
4978
4979 * xdisp.c (try_cursor_movement): Only check for exact match if
4980 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
4981
1c14176c
PE
49822011-09-14 Paul Eggert <eggert@cs.ucla.edu>
4983
4984 Remove unused external symbols.
4985 * dispextern.h (calc_pixel_width_or_height): Remove decl.
4986 * xdisp.c (calc_pixel_width_or_height): Now static.
4987 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
4988 * indent.c (check_display_width):
4989 * w32term.c: Fix comment to match code.
4990 * xterm.c, xterm.h (x_catching_errors): Remove.
4991
d2eea5b5
PE
49922011-09-14 Paul Eggert <eggert@cs.ucla.edu>
4993
4994 * xselect.c: Use signed conversions more consistently (Bug#9498).
4995 (selection_data_to_lisp_data): Assume incoming selection data are
4996 signed integers, not unsigned. This is to be consistent with
4997 outgoing selection data, which was modified to use signed integers
4998 in as part of the fix to Bug#9196 in response to Jan D.'s comment
4999 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
5000 expects long, not unsigned long.
5001
46888499
EZ
50022011-09-14 Eli Zaretskii <eliz@gnu.org>
5003
5004 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
5005 computation of loop end. Reported by Johan Bockgård
5006 <bojohan@gnu.org>.
5007
ef8ef9fb
CY
50082011-09-13 Chong Yidong <cyd@stupidchicken.com>
5009
5010 * frame.c (Fother_visible_frames_p): Function deleted.
5011
fa819fed
EZ
50122011-09-12 Eli Zaretskii <eliz@gnu.org>
5013
5014 * indent.c (compute_motion): Process display vector front to back
5015 rather than the other way around. (Bug#2496)
5016
2ba8e008
SM
50172011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
5018
5019 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
5020
20f53c69
CY
50212011-09-11 Chong Yidong <cyd@stupidchicken.com>
5022
5023 * minibuf.c (Fread_from_minibuffer): Doc fix.
5024
d562d7a4
EZ
50252011-09-11 Eli Zaretskii <eliz@gnu.org>
5026
5027 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
5028 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
5029
1c4d7f3d
LMI
50302011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
5031
5032 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
5033 value for non-existent files.
5034
b885bf36
EZ
50352011-09-11 Eli Zaretskii <eliz@gnu.org>
5036
5037 * fileio.c (Finsert_file_contents): If the file cannot be opened,
5038 set its "size" to -1. This will set the modtime_size field of
5039 the corresponding buffer to -1, which is what
5040 verify-visited-file-modtime expects for files that do not exist.
5041 (Bug#9139)
5042
6612f0bf
PE
50432011-09-11 Paul Eggert <eggert@cs.ucla.edu>
5044
5045 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
5046 here ...
5047 * lisp.h: ... from here. push_key_description is no longer
5048 defined in keyboard.c, so its declaration should not be in
5049 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
5050 logically belongs with push_key_description.
5051
dfb3f755
PE
50522011-09-10 Paul Eggert <eggert@cs.ucla.edu>
5053
5054 * buffer.h: Include <sys/types.h> instead of <time.h>.
5055 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
5056 Problem reported by Herbert J. Skuhra.
5057
3134906c
LMI
50582011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
5059
5060 * xml.c (parse_region): Make the parsing work for
5061 non-comment-starting XML files again (bug#9144).
5062
8d903f4e
AS
50632011-09-10 Andreas Schwab <schwab@linux-m68k.org>
5064
5065 * image.c (gif_load): Fix calculation of bottom and right corner.
5066 (Bug#9468)
5067
80ad64f4
EZ
50682011-09-10 Eli Zaretskii <eliz@gnu.org>
5069
5070 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
5071 redisplay in small windows.
5072
208a048d
EZ
50732011-09-09 Eli Zaretskii <eliz@gnu.org>
5074
5075 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
5076
9b1c252e
MR
50772011-09-08 Martin Rudalics <rudalics@gmx.at>
5078
5079 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
5080 Operate on live windows only.
5081
2949f33b
JB
50822011-09-08 Juanma Barranquero <lekktu@gmail.com>
5083
5084 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
5085
e08dcafd
EZ
50862011-09-07 Eli Zaretskii <eliz@gnu.org>
5087
5088 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
5089 only under bidi iteration.
5090
115b96bd
JD
50912011-09-07 Jan Djärv <jan.h.d@swipnet.se>
5092
5093 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
5094
c8199d0f
PE
50952011-09-06 Paul Eggert <eggert@cs.ucla.edu>
5096
5097 isnan: Fix porting problem to Solaris 10 with bundled gcc.
5098 Without this fix, the command to link temacs failed due to an
5099 undefined symbol __builtin_isnan. This is because
5100 /usr/include/iso/math_c99.h #defines isnan(x) to
5101 __builtin_isnan(x), but the bundled gcc, which identifies itself
5102 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
5103 a __builtin_isnan.
5104 * floatfns.c (isnan): #undef, and then #define to a clone of
5105 what's in data.c.
5106 (Fisnan): Always define, since it's always available now.
5107 (syms_of_floatfns): Always define isnan at the Lisp level.
5108
e39b275c 51092011-09-06 Paul Eggert <eggert@cs.ucla.edu>
1c262cae
PE
5110
5111 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
5112
b2db44d9 51132011-09-06 Paul Eggert <eggert@cs.ucla.edu>
728f8f0a 5114
f4af5137 5115 * fileio.c: Fix bugs with large file offsets (Bug#9428).
728f8f0a
PE
5116 The previous code assumed that file offsets (off_t values) fit in
5117 EMACS_INT variables, which is not true on typical 32-bit hosts.
5118 The code messed up by falsely reporting buffer overflow in cases
5119 such as (insert-file-contents "big" nil 1 2) into an empty buffer
5120 when "big" contains more than 2**29 bytes, even though this
5121 inserts just one byte and does not overflow the buffer.
5122 (Finsert_file_contents): Store file offsets as off_t
5123 values, not as EMACS_INT values. Check for overflow when
5124 converting between EMACS_INT and off_t. When checking for
5125 buffer overflow or for overlap, take the offsets into account.
5126 Don't use EMACS_INT for small values where int suffices.
5127 When checking for overlap, fix a typo: ZV was used where
5128 ZV_BYTE was intended.
5129 (Fwrite_region): Don't assume off_t fits into 'long'.
5130 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
5131
ecfc0a49
MA
51322011-09-05 Michael Albinus <michael.albinus@gmx.de>
5133
5134 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
5135
6511acf2 51362011-09-04 Paul Eggert <eggert@cs.ucla.edu>
61bfeeb7 5137
0999621a 5138 sprintf-related integer and memory overflow issues (Bug#9412).
62f19c19
PE
5139
5140 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
8666506e 5141 (esprintf, exprintf, evxprintf): New functions.
62f19c19 5142 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
6b02f655 5143 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
62f19c19
PE
5144 (modify_event_symbol): Do not assume that the length of
5145 name_alist_or_stem is safe to alloca and fits in int.
5146 (Fexecute_extended_command): Likewise for function name and binding.
5147 (Frecursion_depth): Wrap around reliably on integer overflow.
5148 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
5149 since some callers pass EMACS_INT values.
5150 (Fsingle_key_description): Don't crash if symbol name contains more
5151 than MAX_ALLOCA bytes.
5152 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
5153 (get_minibuffer): Arg is now EMACS_INT, not int.
5154 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
8666506e 5155 (esprintf, exprintf, evxprintf): New decls.
62f19c19
PE
5156 * window.h (command_loop_level, minibuf_level): Reflect API changes.
5157
2be7d702
PE
5158 * dbusbind.c (signature_cat): New function.
5159 (xd_signature, Fdbus_register_signal):
2ea16b89
PE
5160 Do not overrun buffer; instead, report string overflow.
5161
9d1df220
PE
5162 * dispnew.c (add_window_display_history): Don't overrun buffer.
5163 Truncate instead; this is OK since it's just a log.
5164
33ef5c64
PE
5165 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
5166 even if the time zone offset is outlandishly large.
5167 Don't mishandle offset == INT_MIN.
5168
66c6fdd5
PE
5169 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
5170 when creating daemon; the previous buffer-overflow check was incorrect.
5171
d749b01b
PE
5172 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
5173 which has the guts of the old verror function.
5174
b5cd1905
PE
5175 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
5176 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
5177
6e1a67fb
PE
5178 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
5179 (font_unparse_xlfd): Don't blindly alloca long strings.
c21721cc 5180 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
8666506e 5181 fits in int, when using sprintf. Use single snprintf to count
c21721cc
PE
5182 length of string rather than counting it via multiple sprintfs;
5183 that's simpler and more reliable.
c21721cc
PE
5184 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
5185 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
5186 sprintf, in case result does not fit in int.
5187
c57b67fc
PE
5188 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
5189 (fontset_from_font): Print it.
5190
8a401434
PE
5191 * frame.c (tty_frame_count): Now printmax_t, not int.
5192 (make_terminal_frame, set_term_frame_name): Print it.
5193 (x_report_frame_params): In X, window IDs are unsigned long,
5194 not signed long, so print them as unsigned.
5195 (validate_x_resource_name): Check for implausibly long names,
5196 and don't assume name length fits in 'int'.
5197 (x_get_resource_string): Don't blindly alloca invocation name;
5198 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
5199 not fit in int.
5200
6e1a67fb
PE
5201 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
5202 (xg_check_special_colors, xg_set_geometry):
84722b3d
PE
5203 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
5204
0df02bf3
PE
5205 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
5206 Use esprintf, not sprintf, in case result does not fit in int.
5207
48e30793
PE
5208 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
5209 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
5210 it as a large positive number.
5211 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
5212 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
5213
a66ff6d8
PE
5214 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
5215 in case result does not fit in int.
5216
aca216ff
PE
5217 * print.c (float_to_string): Detect width overflow more reliably.
5218 (print_object): Make sprintf buffer a bit bigger, to avoid potential
5219 buffer overrun. Don't assume list length fits in 'int'. Treat
5220 print length of 0 as 0, not as infinity; to be consistent with other
5221 uses of print length in this function. Don't overflow print length
5222 index. Don't assume hash table size fits in 'long', or that
5223 vectorlike size fits in 'unsigned long'.
5224
31c286f7
PE
5225 * process.c (make_process): Use printmax_t, not int, to format
5226 process-name gensyms.
5227
55e5faa1
PE
5228 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
5229
80f2e268
PE
5230 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
5231 to avoid potential buffer overrun.
5232
670741ab
PE
5233 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
5234 if X resource line is longer than 512 bytes.
5235
b7163a50
PE
5236 * xfns.c (x_window): Make sprintf buffer a bit bigger
5237 to avoid potential buffer overrun.
5238
ae58ff1f
PE
5239 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
5240
c43c8a6a
PE
5241 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
5242
3f8236f4
PE
52432011-09-04 Paul Eggert <eggert@cs.ucla.edu>
5244
53e9fe90 5245 Integer overflow fixes for scrolling, etc.
6511acf2
PE
5246 Without these, Emacs silently mishandles large integers sometimes.
5247 For example, "C-u 4294967297 M-x recenter" was treated as if
53e9fe90
PE
5248 it were "C-u 1 M-x recenter" on a typical 64-bit host.
5249
6511acf2
PE
5250 * xdisp.c (try_window_id): Check Emacs fixnum range before
5251 converting to 'int'.
806add1d 5252
6511acf2 5253 * window.c (window_scroll_line_based, Frecenter):
71f02bc5
PE
5254 Check that an Emacs fixnum is in range before assigning it to 'int'.
5255 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
5256 values converted from Emacs fixnums.
5257 (Frecenter): Don't wrap around a line count if it is out of 'int'
5258 range; instead, treat it as an extreme value.
5259 (Fset_window_configuration, compare_window_configurations):
5260 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
5261
6511acf2
PE
5262 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
5263 that can exceed INT_MAX. Check that EMACS_INT value is in range
5264 before assigning it to the (possibly-narrower) index.
a0efffc8
PE
5265 (match_limit): Don't assume that a fixnum can fit in 'int'.
5266
6511acf2 5267 * print.c (print_object): Use ptrdiff_t, not int, for index that can
29ebea3b
PE
5268 exceed INT_MAX.
5269
6511acf2 5270 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
3f8236f4
PE
5271 (Fvertical_motion): Don't wrap around LINES values that don't fit
5272 in 'int'. Instead, treat them as extreme values. This is good
5273 enough for windows, which can't have more than INT_MAX lines anyway.
5274
fcb901a7
LMI
52752011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
5276
0f2f6b6d
LMI
5277 * Require libxml/parser.h to avoid compilation warning.
5278
fcb901a7
LMI
5279 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
5280
5281 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
5282 since this reportedly can destroy thread storage.
5283
6e20a0d4
CY
52842011-08-30 Chong Yidong <cyd@stupidchicken.com>
5285
5286 * syntax.c (find_defun_start): Update all cache variables if
5287 exiting early (Bug#9401).
5288
148ae00e
EZ
52892011-08-30 Eli Zaretskii <eliz@gnu.org>
5290
f6cfbd8f
EZ
5291 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
5292
148ae00e
EZ
5293 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
5294 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
5295 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
5296
5297 * term.c (tty_append_glyph): New function.
5298 (produce_stretch_glyph): Static function and its prototype deleted.
5299
a66cfb1c
SM
5300 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
5301 Add prototypes.
148ae00e 5302
c4a07a4c
PE
53032011-08-29 Paul Eggert <eggert@cs.ucla.edu>
5304
5305 * image.c (parse_image_spec): Check for nonnegative, not for positive,
5306 when checking :margin (Bug#9390).
5307 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
a66cfb1c 5308 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
c4a07a4c
PE
5309 so that the name doesn't mislead. All uses changed.
5310
6bc8cd65
JB
53112011-08-28 Johan Bockgård <bojohan@gnu.org>
5312
5313 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
5314 set_tty_hooks.
5315
dca4927e
EZ
53162011-08-27 Eli Zaretskii <eliz@gnu.org>
5317
5318 * xdisp.c (move_it_to): Don't bail out early when reaching
5319 position beyond to_charpos, if we are scanning backwards.
5320 (move_it_vertically_backward): When DY == 0, make sure we get to
5321 the first character in the line after the newline.
5322
f2cad773
PE
53232011-08-27 Paul Eggert <eggert@cs.ucla.edu>
5324
5325 * ccl.c: Improve and simplify overflow checking (Bug#9196).
5326 (ccl_driver): Do not generate an out-of-range pointer.
5327 (Fccl_execute_on_string): Remove unnecessary check for
5328 integer overflow, noted by Stefan Monnier in
5329 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
5330 Remove a FIXME that didn't need fixing.
5331 Simplify the newly-introduced buffer reallocation code.
5332
0cae2cdb
JB
53332011-08-27 Juanma Barranquero <lekktu@gmail.com>
5334
5335 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
5336
5fc295a4 53372011-08-26 Paul Eggert <eggert@cs.ucla.edu>
ddff3151 5338
70c60eb2 5339 Integer and memory overflow issues (Bug#9196).
726e0ab1 5340
d31850da
PE
5341 * doc.c (get_doc_string): Rework so that
5342 get_doc_string_buffer_size is the actual buffer size, rather than
5343 being 1 less than the actual buffer size; this makes xpalloc more
5344 convenient.
5345
a69fbedb
PE
5346 * image.c (x_allocate_bitmap_record, cache_image):
5347 * xselect.c (Fx_register_dnd_atom):
5348 Simplify previous changes by using xpalloc.
5349
fe5c5d37
PE
5350 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
5351 since either will do and ptrdiff_t is convenient with xpalloc.
5352
0065d054
PE
5353 * charset.c (charset_table_size)
5354 (struct charset_sort_data.priority): Now ptrdiff_t.
5355 (charset_compare): Don't overflow if priorities differ greatly.
5356 (Fsort_charsets): Don't assume list length fits in int.
5357 Check for size-calculation overflow when allocating sort data.
5358 (syms_of_charset): Allocate an initial charset table that is
5359 just under 64 KiB, to avoid problems with glibc malloc and mmap.
5360
5361 * cmds.c (internal_self_insert): Check for size-calculation overflow.
5362
5363 * composite.h (struct composition.glyph_len): Now int, not unsigned.
5364 The actual value is always <= INT_MAX, and leaving it unsigned made
5365 overflow checking harder.
5366
5367 * dispextern.h (struct glyph_matrix.rows_allocated)
5368 (struct face_cache.size): Now ptrdiff_t, for convenience in use
5369 with xpalloc. The values are still always <= INT_MAX.
5370
5371 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
5372
5373 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
5374 (SAFE_NALLOCA): New macro.
5375
5376 * region-cache.c (struct boundary.pos, find_cache_boundary)
5377 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
5378 (set_cache_region, invalidate_region_cache)
5379 (revalidate_region_cache, know_region_cache, region_cache_forward)
5380 (region_cache_backward, pp_cache):
5381 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
5382 so that ptrdiff_t * can be passed to xpalloc.
5383 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
5384 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
5385 (pp_cache): Don't assume cache_len fits in int.
5386 * region-cache.h: Adjust extern decls to match.
5387
5388 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
5389 EMACS_INT, since either will do, for xpalloc.
5390
5391 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
5392 (xnmalloc, xnrealloc, xpalloc): New functions.
5393
726e0ab1
PE
5394 * bidi.c (bidi_shelve_header_size): New constant.
5395 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
5396 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
5397
51f30bc5 5398 * bidi.c (bidi_cache_shrink):
726e0ab1
PE
5399 * buffer.c (overlays_at, overlays_in, record_overlay_string)
5400 (overlay_strings):
5401 Don't update size of array until after memory allocation succeeds,
5402 because xmalloc/xrealloc may not return.
0065d054
PE
5403 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
5404 now that we have proper integer overflow checking.
5405 (record_overlay_string, overlay_strings): Catch overflows when
5406 calculating size of overlay_str_buf.
726e0ab1 5407
0065d054
PE
5408 * callproc.c (Fcall_process): Check for size overflow when
5409 calculating size of args2.
5410 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
5411 Normally we prefer signed values, but sticking with ptrdiff_t would
5412 require adding more-complicated checks.
726e0ab1
PE
5413
5414 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
5415 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
5416 Redo buffer-overflow calculations to avoid integer overflow.
0065d054 5417 Add a FIXME comment where memory seems to be over-allocated.
726e0ab1
PE
5418
5419 * character.c (Fstring): Check for size-calculation overflow.
5420
5421 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
5422 unnecessary integer overflow. Check for size overflow.
5423 (encode_coding_object): Don't update size until xmalloc succeeds.
5424
5425 * composite.c (get_composition_id): Check for overflow in glyph
5426 length calculations.
5427
5428 Integer and memory overflow fixes for display code.
5429 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
5430 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
5431 (scrolling_window): Check for overflow in size calculations.
5432 (line_draw_cost, realloc_glyph_pool, add_row_entry):
5433 Don't assume glyph table len fits in int.
5434 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
5435 (row_table_size): Now ptrdiff_t, not int.
5436 (scrolling_window): Avoid overflow in size calculations.
5437 Don't update size until allocation succeeds.
5438 * fns.c (concat): Check for overflow in size calculations.
5439 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
5440 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
5441 (NEXT_ALMOST_PRIME_LIMIT): New constant.
5442
5443 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
5444 (get_doc_string): Check for size calculation overflow.
5445 Don't update size until allocation succeeds.
5446 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
5447 EMACS_INT, where ptrdiff_t will do.
5448 (Fsubstitute_command_keys): Check for string overflow.
5449
5450 * editfns.c (set_time_zone_rule): Don't assume environment length
5451 fits in int.
5452 (message_length): Now ptrdiff_t, not int.
5453 (Fmessage_box): Don't update size until allocation succeeds.
5454 Don't assume message length fits in int.
5455 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
5456
0065d054
PE
5457 * emacs.c (main): Do not reallocate argv, since there is a null at
5458 the end that can be overwritten, and this way there's no need to
5459 worry about size-calculation overflow.
5460 (sort_args): Check for size-calculation overflow.
726e0ab1
PE
5461
5462 * eval.c (init_eval_once, grow_specpdl): Don't update size until
5463 alloc succeeds.
5464 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
5465
5466 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
5467 (x_set_scroll_bar_width, x_figure_window_size):
5468 Check for integer overflow.
5469 (x_set_alpha): Do not assume XINT fits in int.
5470
5471 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
5472 This is for the members text_lines, text_cols, total_lines, total_cols,
5473 where the system imposes an 'int' limit.
5474
5475 * fringe.c (Fdefine_fringe_bitmap):
5476 Don't update size until alloc works.
5477
5478 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
5479 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
5480
5481 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
5482 Check for size-calculation overflow.
5483 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
5484 do, as we prefer signed integers.
5485 (id_to_widget.max_size, id_to_widget.used)
5486 (xg_store_widget_in_map, xg_remove_widget_from_map)
5487 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
5488 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
5489 Use and return ptrdiff_t, not int.
5490 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
5491 * gtkutil.h: Change prototypes to match the above.
5492
5493 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
5494 are duplicate now that they've been promoted to lisp.h.
5495 (x_allocate_bitmap_record, x_alloc_image_color)
5496 (make_image_cache, cache_image, xpm_load):
5497 Don't update size until alloc is done.
5498 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
5499 (x_detect_edges):
3256efce 5500 Check for size calculation overflow.
726e0ab1
PE
5501 (ct_colors_allocated_max): New constant.
5502 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
5503 overflow.
3256efce 5504
726e0ab1
PE
5505 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
5506 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
5507 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
5508 Use ptrdiff_t, not int, to count maps.
5509 (read_char_minibuf_menu_prompt): Check for overflow in size
a66cfb1c
SM
5510 calculations. Don't update size until allocation succeeds.
5511 Redo calculations to avoid overflow.
726e0ab1
PE
5512 * keyboard.h: Change prototypes to match the above.
5513
5514 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
5515 to count maps.
5516 (current_minor_maps): Check for size calculation overflow.
5517 * keymap.h: Change prototypes to match the above.
5518
5519 * lread.c (read1, init_obarray): Don't update size until alloc done.
5520
5521 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
5522 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
5523
726e0ab1
PE
5524 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
5525 Now ptrdiff_t, not int.
5526 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
5527 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
5528
5529 * process.c (Fnetwork_interface_list): Check for overflow
5530 in size calculation.
5531
5532 * region-cache.c (move_cache_gap): Check for size calculation overflow.
5533
5534 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
5535 overflow. Don't bother calling xmalloc when xrealloc will do.
5536
5537 * search.c (Freplace_match): Check for size calculation overflow.
5538 (Fset_match_data): Don't assume list lengths fit in 'int'.
5539
5540 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
5541 for command line length. Do not attempt to address one before the
5542 beginning of an array, as that's not portable.
5543
5544 * term.c (max_frame_lines): Remove; unused.
5545 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
5546 not int.
5547 (encode_terminal_code, calculate_costs): Check for size
5548 calculation overflow.
5549 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
5550 table lengths and related sizes. Don't update size until alloc
5551 done. Redo calculations to avoid overflow.
5552 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
5553
5554 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
5555 subtracting pointers.
5556 (gobble_line): Check for overflow more carefully. Don't update size
5557 until alloc done.
5558
5559 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
5560 Don't update size until alloc done.
5561 Redo size calculations to avoid overflow.
5562 Check for size calculation overflow.
0065d054 5563 (main) [DEBUG]: Fix typo in invoking tparam1.
726e0ab1
PE
5564
5565 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
5566 Use ptrdiff_t, not int, for sizes.
5567 (store_mode_line_noprop_char): Don't update size until alloc done.
5568
0065d054
PE
5569 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
5570 Use ptrdiff_t, not int, for sizes.
5571 (Finternal_make_lisp_face, cache_face):
5572 Check for size calculation overflow.
5573 (cache_face): Treat size calculation overflows as if they were
5574 memory exhaustion (the usual treatment), rather than aborting.
726e0ab1
PE
5575
5576 * xfns.c (x_encode_text, x_set_name_internal)
5577 (Fx_change_window_property): Use ptrdiff_t, not int, to count
5578 sizes, since they can exceed INT_MAX in size. Check for size
5579 calculation overflow.
5580
0065d054
PE
5581 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
5582 (xg_select): Check for size calculation overflow.
726e0ab1
PE
5583 Don't update size until alloc done.
5584
0065d054 5585 * xrdb.c (get_environ_db): Don't assume path length fits in int,
726e0ab1 5586 as sprintf is limited to int lengths.
1d526e2f 5587
252c5ee1
PE
5588 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
5589 (X_LONG_MIN): New macros.
864d7ce7
PE
5590 Use them to make the following changes clearer.
5591 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
5592 This change doesn't affect the value now, but it may help remind
5593 future maintainers not to raise the value too much later.
5594 (SELECTION_QUANTUM): Remove, replacing with ...
5595 (selection_quantum): ... new function, which avoids overflow.
5596 All uses changed.
5597 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
5598 assumption that selection length fits in 'int'.
5599 (x_reply_selection_request, x_handle_selection_request)
5600 (x_get_window_property, receive_incremental_selection)
5601 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
5602 (lisp_data_to_selection_data, clean_local_selection_data):
5603 Use ptrdiff_t, not int, to record length of selection.
5604 (x_reply_selection_request, x_get_window_property)
5605 (receive_incremental_selection, x_property_data_to_lisp):
5606 Redo calculations to avoid overflow.
5607 (x_reply_selection_request): When sending hint, ceiling it at
252c5ee1 5608 X_LONG_MAX rather than relying on wraparound overflow to send
864d7ce7
PE
5609 something.
5610 (x_get_window_property, receive_incremental_selection)
5611 (lisp_data_to_selection_data, x_property_data_to_lisp):
5612 Check for size-calculation overflow.
5613 (x_get_window_property, receive_incremental_selection)
5614 (lisp_data_to_selection_data, Fx_register_dnd_atom):
5615 Don't store size until memory allocation succeeds.
5616 (x_get_window_property): Plug memory leak on memory exhaustion.
5617 Don't double-block input; malloc is safe here. Don't assume 2**34
5618 - 4 fits in unsigned long. Add an xassert to check
5619 XGetWindowProperty overflow. Be more careful about overflow
5620 calculations, and distinguish size from memory overflow better.
5621 (receive_incremental_selection): When tracing, don't assume
5622 unsigned int is less than INT_MAX.
5623 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
5624 harmful) conversions of unsigned short to int.
5625 (lisp_data_to_selection_data): Don't assume that integers
5626 in the range -65535 through -1 fit in an X unsigned short.
5627 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
5628 result parameters unless successful. Rely on cons_to_unsigned
5629 to report problems with elements; the old code wasn't right anyway.
5630 (x_check_property_data): Check for int overflow; we cannot use
5631 a wider type due to X limits.
5632 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
5633
726e0ab1 5634 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
34db673b 5635
0065d054
PE
5636 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
5637 (x_term_init): Check for size calculation overflow.
726e0ab1
PE
5638 (x_color_cells): Don't store size until memory allocation succeeds.
5639 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
0065d054 5640 Don't assume alloca size is less than MAX_ALLOCA.
726e0ab1
PE
5641 (x_term_init): Don't assume length fits in int (sprintf is limited
5642 to int size).
bc18e09d 5643
ebfa62c0
PE
5644 Use ptrdiff_t for composition IDs.
5645 * character.c (lisp_string_width):
5646 * composite.c (composition_table_size, n_compositions)
5647 (get_composition_id, composition_gstring_from_id):
5648 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
5649 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
5650 * window.c (Frecenter):
5651 Use ptrdiff_t, not int, for composition IDs.
5652 * composite.c (get_composition_id): Check for integer overflow.
5653 * composite.h: Adjust prototypes to match the above changes.
5654
d3411f89
PE
5655 Use ptrdiff_t for hash table indexes.
5656 * category.c (hash_get_category_set):
5657 * ccl.c (ccl_driver):
5658 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
5659 * coding.c (coding_system_charset_list, detect_coding_system):
5660 * coding.h (struct coding_system.id):
5661 * composite.c (get_composition_id, gstring_lookup_cache):
5662 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
5663 * image.c (xpm_get_color_table_h):
5664 * lisp.h (hash_lookup, hash_put):
5665 * minibuf.c (Ftest_completion):
5666 Use ptrdiff_t for hash table indexes, not int (which is too
5667 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
5668 32-bit --with-wide-int hosts).
5669
e097a6fa
PE
5670 * charset.c (Fdefine_charset_internal): Check for integer overflow.
5671 Add a FIXME comment about memory leaks.
5672 (syms_of_charset): Don't assume xmalloc returns.
5673
5637687f
PE
5674 Don't assume that stated character widths fit in int.
5675 * character.c (Fchar_width, c_string_width, lisp_string_width):
5676 * character.h (CHAR_WIDTH):
5677 * indent.c (MULTIBYTE_BYTES_WIDTH):
5678 Use sanitize_char_width to avoid undefined and/or bad behavior
5679 with outlandish widths.
a66cfb1c 5680 * character.h (sanitize_tab_width): Rename from sanitize_width,
5637687f
PE
5681 now that we have two such functions. All uses changed.
5682 (sanitize_char_width): New inline function.
5683
a2271ba2
PE
5684 Don't assume that tab-width fits in int.
5685 * character.h (sanitize_width): New inline function.
5686 (SANE_TAB_WIDTH): New macro.
5687 (ASCII_CHAR_WIDTH): Use it.
5688 * indent.c (sane_tab_width): Remove. All uses replaced by
5689 SANE_TAB_WIDTH (current_buffer).
5690 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
5691
18c52557
PE
5692 * fileio.c: Integer overflow issues with file modes.
5693 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
5694
caeeedc1
PE
5695 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
5696 Remove unreachable code.
5697 (read_hex, load_charset_map_from_file): Check for integer overflow.
5698
6df6ae42 5699 * xterm.c: Don't go over XClientMessageEvent limit.
50849c52
PE
5700 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
5701 (x_send_scroll_bar_event): Likewise. Check that the size does not
5702 exceed limits imposed by XClientMessageEvent, as well as the usual
5703 ptrdiff_t and size_t limits.
5704
b13995db
PE
5705 * keyboard.c: Overflow, signedness and related fixes.
5706 (make_lispy_movement): Use same integer type in forward decl
5707 that is used in the definition.
5708 (read_key_sequence, keyremap_step):
5709 Change bufsize argument back to int, undoing my 2011-03-30 change.
5710 We prefer signed types, and int is wide enough here.
5711 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
5712 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
5713 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
5714 length, not size_t. Use ptrdiff_t for index, not int.
5715 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
5716 possibility of integer overflow.
5717
13464394
PE
5718 Overflow, signedness and related fixes for images.
5719
5720 * dispextern.h (struct it.stack[0].u.image.image_id)
5721 (struct_it.image_id, struct image.id, struct image_cache.size)
5722 (struct image_cache.used, struct image_cache.ref_count):
5723 * gtkutil.c (update_frame_tool_bar):
5724 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
5725 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
5726 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
5727 * nsmenu.m (update_frame_tool_bar):
5728 * xdisp.c (calc_pixel_width_or_height):
5729 * xfns.c (image_cache_refcount):
5730 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
5731 on typical 64-bit hosts.
5732
5733 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
5734 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
5735 Omit unnecessary casts to int.
5736 (parse_image_spec): Check that integers fall into 'int' range
5737 when the callers expect that.
5738 (image_ascent): Redo ascent calculation to avoid int overflow.
5739 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
5740 (lookup_image): Remove unnecessary tests.
5741 (xbm_image_p): Locals are now of int, not EMACS_INT,
5742 since parse_image_check makes sure they fit into int.
5743 (png_load, gif_load, svg_load_image):
5744 Prefer int to unsigned where either will do.
5745 (tiff_handler): New function, combining the cores of the
a66cfb1c
SM
5746 old tiff_error_handler and tiff_warning_handler.
5747 This function is rewritten to use vsnprintf and thereby avoid
13464394
PE
5748 stack buffer overflows. It uses only the features of vsnprintf
5749 that are common to both POSIX and native Microsoft.
5750 (tiff_error_handler, tiff_warning_handler): Use it.
5751 (tiff_load, gif_load, imagemagick_load_image):
5752 Don't assume :index value fits in 'int'.
5753 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
5754 (imagemagick_load_image): Check that crop parameters fit into
5755 the integer types that MagickCropImage accepts. Don't assume
5756 Vimagemagick_render_type has a nonnegative value. Don't assume
5757 size_t fits in 'long'.
5758 (gs_load): Use printmax_t to print the widest integers possible.
5759 Check for integer overflow when computing image height and width.
5760
c11821d4
EZ
57612011-08-26 Eli Zaretskii <eliz@gnu.org>
5762
5763 * xdisp.c (redisplay_window): Don't force window start if point
5764 will be invisible in the resulting window. (Bug#9324)
5765
0c95fcf7
EZ
57662011-08-25 Eli Zaretskii <eliz@gnu.org>
5767
5768 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
5769 the display spec is of the form `(space ...)'.
5770 (handle_display_spec): Return the value returned by
5771 handle_single_display_spec, not just 1 or zero.
5772 (handle_single_display_spec): If the display spec is of the form
5773 `(space ...)', and specifies display in the text area, return 2
5774 rather than 1.
fee65a97 5775 (try_cursor_movement): Check for the need to scroll more
a66cfb1c
SM
5776 accurately, and prefer exact match for point under bidi.
5777 Don't advance `row' beyond the last row of the window.
0c95fcf7
EZ
5778
5779 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
5780 into disp_prop; all users changed.
5781
5782 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
5783 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
5784 for the text covered by the display property.
5785
e4ed06f1
CY
57862011-08-25 Chong Yidong <cyd@stupidchicken.com>
5787
5788 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
5789 Change return value to nil.
5790 (Frecord_buffer): Delete unused function.
5791
f67cdd7f
EZ
57922011-08-24 Eli Zaretskii <eliz@gnu.org>
5793
5980d4c6
EZ
5794 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
5795 buffers, return left-to-right.
8610fe8b
EZ
5796 (set_cursor_from_row): Consider candidate row a win if its glyph
5797 represents a newline and point is on that newline. Fixes cursor
5798 positioning on the newline at EOL of R2L text within L2R
5799 paragraph, and vice versa.
5800 (try_cursor_movement): Check continued rows, in addition to
5801 continuation rows. Fixes unwarranted scroll when point enters a
5802 continued line of R2L text within an L2R paragraph, or vice versa.
5803 (cursor_row_p): Consider the case of point being equal to
5804 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
5805 from the end of a short line to the beginning of a continued line
5806 of R2L text within L2R paragraph.
5807 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
5808 composed characters.
5980d4c6 5809
f67cdd7f
EZ
5810 * bidi.c (bidi_check_type): Use xassert.
5811 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
5812 members.
5813
bca633fb
EZ
58142011-08-23 Eli Zaretskii <eliz@gnu.org>
5815
5816 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
5817 a character.
5818
4a5885a7
CY
58192011-08-23 Chong Yidong <cyd@stupidchicken.com>
5820
5821 * nsfont.m (ns_otf_to_script): Fix typo.
5822
0902a04e
KH
58232011-08-22 Kenichi Handa <handa@m17n.org>
5824
5825 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
5826 extra slot even if the purpose is char-code-property-table.
5827
1a2e6670
EZ
58282011-08-23 Eli Zaretskii <eliz@gnu.org>
5829
8ddde651
EZ
5830 * xdisp.c (redisplay_window): When computing centering_position,
5831 account for the height of the header line. (Bug#8874)
5832
425cc014
EZ
5833 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
5834 instead of CHAR_TO_BYTE. Fixes a crash when a completion
5835 candidate is selected by the mouse, and that candidate has a
5836 composed character under the mouse.
5837
1a2e6670
EZ
5838 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
5839 coordinates reported by pos-visible-in-window-p for a composed
5840 character in column zero.
5841
8b76d6f8
SM
58422011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
5843
5844 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
5845
dac347dd
EZ
58462011-08-22 Eli Zaretskii <eliz@gnu.org>
5847
5848 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
5849 consider it a hit if to_charpos is anywhere in the range of the
5850 composed buffer positions.
5851
e013fb34
CY
58522011-08-22 Chong Yidong <cyd@stupidchicken.com>
5853
5854 * image.c (gif_load): Don't assume that each subimage has the same
5855 dimensions as the base image. Handle disposal method that is
5856 "undefined" by the gif spec (Bug#9335).
5857
bd1ba3e8
CY
58582011-08-20 Chong Yidong <cyd@stupidchicken.com>
5859
5860 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
024a2d76 5861 (Fcondition_case): Document `debug' symbol in error handler.
bd1ba3e8 5862
54a1215b
EZ
58632011-08-19 Eli Zaretskii <eliz@gnu.org>
5864
823564e5
EZ
5865 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
5866 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
5867 from an Org mode buffer to a Speedbar frame.
5868
54a1215b
EZ
5869 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
5870 a composition, take its buffer position from IT->cmp_it.charpos.
5871 Fixes cursor positioning at the beginning of a line that begins
5872 with a composed character.
5873
9778ebcc
EZ
58742011-08-18 Eli Zaretskii <eliz@gnu.org>
5875
0be6ee06
EZ
5876 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
5877 character bidirectional type, use STRONG_L instead. Fixes crashes
5878 in a buffer produced by `describe-categories'.
5879
9778ebcc
EZ
5880 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
5881 members before the level stack, so they would be saved and
5882 restored when copying iterator state. Fixes incorrect reordering
5883 around TABs covered by display properties.
5884
156bffbe
AS
58852011-08-18 Andreas Schwab <schwab@linux-m68k.org>
5886
6b02f655 5887 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
156bffbe 5888
72ad093b
CY
58892011-08-17 Chong Yidong <cyd@stupidchicken.com>
5890
5891 * eval.c (internal_condition_case, internal_condition_case_1)
8b76d6f8
SM
5892 (internal_condition_case_2, internal_condition_case_n):
5893 Remove unnecessary aborts (Bug#9081).
72ad093b 5894
35774242
EZ
58952011-08-17 Eli Zaretskii <eliz@gnu.org>
5896
5897 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
5898 has no `load' handler, try opening the file locally. (Bug#9311)
5899
db76dd85
KB
59002011-08-16 Ken Brown <kbrown@cornell.edu>
5901
5902 * gmalloc.c: Expand comment.
5903
b215eee5
EZ
59042011-08-16 Eli Zaretskii <eliz@gnu.org>
5905
5906 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
5907 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
5908
a4579d33
KB
59092011-08-16 Ken Brown <kbrown@cornell.edu>
5910
5911 Fix memory allocation problems in Cygwin build (Bug#9273).
5912
5913 * unexcw.c ( __malloc_initialized): Declare external variable.
5914 (fixup_executable): Force the dumped emacs to reinitialize malloc.
5915
8b76d6f8
SM
5916 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
5917 New variables.
a4579d33
KB
5918 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
5919 dumped emacs.
5920 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
5921 in the static heap.
5922 [CYGWIN] (special_realloc): New function.
5923 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
5924 requests to realloc storage in the static heap.
5925
3ebec551
PE
59262011-08-15 Paul Eggert <eggert@cs.ucla.edu>
5927
5928 * bidi.c (bidi_initialize): Remove unused local.
5929
9fd8be00
EZ
59302011-08-15 Eli Zaretskii <eliz@gnu.org>
5931
6b02f655
SM
5932 * bidimirror.h:
5933 * biditype.h: Remove file.
5934 * makefile.w32-in ($(BLD)/bidi.$(O)):
5935 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
474a8465
EZ
5936
5937 * dispextern.h: Fix a typo in the comment to bidi_type_t.
5938
5939 * chartab.c: Improve commentary for the uniprop_table API.
5940
32413314
EZ
5941 * bidi.c (bidi_paragraph_init): Support zero value of
5942 bidi_ignore_explicit_marks_for_paragraph_level.
474a8465
EZ
5943 (bidi_initialize): Use uniprop_table instead of including
5944 biditype.h and bidimirror.h.
32413314 5945
9fd8be00
EZ
5946 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
5947 coordinates of the iterator when restoring from ppos_it.
5948 (Bug#9296)
5949
5cf2b69b
KH
59502011-08-14 Kenichi Handa <handa@m17n.org>
5951
5952 * process.c (create_process): Call setup_process_coding_systems
72ad093b 5953 after the pid of the process is set to -1 (Bug#8162).
5cf2b69b 5954
daf17d00
EZ
59552011-08-14 Eli Zaretskii <eliz@gnu.org>
5956
5957 * xdisp.c (move_it_in_display_line_to): Don't invoke
5958 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
5959 ppos_it. Fixes vertical cursor motion when line beginning is
5960 covered by an image. (Bug#9296)
5961
08e3161a
JD
59622011-08-14 Jan Djärv <jan.h.d@swipnet.se>
5963
5964 * nsterm.h (ns_run_ascript): Declare.
5965 (NSAPP_DATA2_RUNASSCRIPT): Define.
5966
5967 * nsfns.m (as_script, as_result, as_status): New static variables.
5968 (ns_run_ascript): New function.
5e617bc2 5969 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
08e3161a
JD
5970 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
5971 the event loop. Get status from as_status (Bug#7276).
5972
5973 * nsterm.m (sendEvent): If event is NSApplicationDefined and
5974 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
5975 the event loop (Bug#7276).
5976
a3720aa2
AS
59772011-08-14 Andreas Schwab <schwab@linux-m68k.org>
5978
5979 * gnutls.c (QCgnutls_bootprop_priority)
5980 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
5981 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
5982 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
5983 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
5984 (QCgnutls_bootprop_verify_hostname_error)
5985 (QCgnutls_bootprop_callbacks_verify): Rename from
5986 Qgnutls_bootprop_..., all uses changed.
5987
5988 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
5989 uses changed.
5990
0a0d27fb
PE
59912011-08-14 Paul Eggert <eggert@cs.ucla.edu>
5992
19d5c50c
PE
5993 * xfaces.c (Qframe_set_background_mode): Now static.
5994 * dispextern.h (Qframe_set_background_mode): Remove decl.
5995
0a0d27fb
PE
5996 * process.c (Fnetwork_interface_info): Declare local only if needed.
5997
377538cb
JD
59982011-08-13 Jan Djärv <jan.h.d@swipnet.se>
5999
6000 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
6001 (Fnetwork_interface_list): Allocate in increments of bytes instead
6002 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
6003 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
6004 sockaddr.
6005 (struct ifflag_def): notrailers is smart on OSX.
6006 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
6007 Get hardware address with getifaddrs if available.
6008
08fff70c
EZ
60092011-08-12 Eli Zaretskii <eliz@gnu.org>
6010
6011 * xdisp.c (iterate_out_of_display_property): xassert that
6012 IT->position is set to within IT->object's boundaries. Break from
6013 the loop as soon as EOB is reached; avoids infloops in redisplay
8b76d6f8
SM
6014 when IT->position is set up wrongly due to some bug.
6015 Set IT->current to match the bidi iterator unconditionally.
08fff70c
EZ
6016 (push_display_prop): Allow GET_FROM_STRING as IT->method on
6017 entry. Force push_it to save on the stack the current
6018 buffer/string position, to be restored by pop_it. Fix flags in
6019 the iterator structure wrt the object coming from a display
6020 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
6021 properties. (Bug#9284)
6022
7be1c708 60232011-08-09 Andreas Schwab <schwab@linux-m68k.org>
aac0c6e3 6024
7be1c708
CY
6025 * fontset.c (fontset_get_font_group): Add proper type checks.
6026 (Bug#9172)
aac0c6e3 6027
7be1c708 60282011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
aac0c6e3 6029
7be1c708
CY
6030 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
6031 and LC_VERSION_MIN_MACOSX.
6032 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
6033 (dump_it) [LC_FUNCTION_STARTS]: Use it.
aac0c6e3 6034
97bb72a6
EZ
60352011-08-08 Eli Zaretskii <eliz@gnu.org>
6036
6037 * xdisp.c (forward_to_next_line_start): Allow to use the
8b76d6f8
SM
6038 no-display-properties-and-no-overlays under bidi display.
6039 Set disp_pos in the bidi iterator to avoid searches for display
757664a4 6040 properties and overlays.
97bb72a6 6041
d5617611
CY
60422011-08-08 Chong Yidong <cyd@stupidchicken.com>
6043
37e11a63
CY
6044 * editfns.c (Fset_time_zone_rule): Document relationship with the
6045 setenv function.
6046
d5617611
CY
6047 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
6048 the font entity extracted from the cache (Bug#8109).
6049
58872834
CY
60502011-08-07 Chong Yidong <cyd@stupidchicken.com>
6051
6052 * composite.c (autocmp_chars): Don't reset point. That is done by
6053 restore_point_unwind (Bug#5984).
6054
75bfc667
JL
60552011-08-07 Juri Linkov <juri@jurta.org>
6056
6057 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
6058 to show the arg `TIME' instead of `TIMEVAL'.
6059
d1410150
EZ
60602011-08-06 Eli Zaretskii <eliz@gnu.org>
6061
6062 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
6063 display property strides EOL and includes a newline, as in
6064 longlines-mode. (Bug#9254)
75b771e4
EZ
6065 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
6066 word-wrap under bidirectional display. (Bug#9224)
d1410150
EZ
6067
6068 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
6069 is non-zero, even if the data buffer is NULL. Fixes a crash in
6070 vertical-motion with longlines-mode. (Bug#9254)
6071
35928349
EZ
60722011-08-05 Eli Zaretskii <eliz@gnu.org>
6073
ec7cc85b
EZ
6074 * bidi.c <bidi_cache_total_alloc>: Now static.
6075 (bidi_initialize): Initialize bidi_cache_total_alloc.
6076
8b76d6f8 6077 * xdisp.c (display_line): Release buffer allocated for shelved bidi
35928349
EZ
6078 cache. (Bug#9221)
6079
6080 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
6081 amount allocated this far in `bidi_cache_total_alloc'.
6082 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
6083 non-zero, only free the data buffer without restoring the cache
6084 contents. All callers changed.
6085
6086 * dispextern.h (bidi_unshelve_cache): Update prototype.
6087
6088 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
6089 (move_it_in_display_line, move_it_to)
6090 (move_it_vertically_backward, move_it_by_lines): Replace the call
6091 to xfree to an equivalent call to bidi_unshelve_cache.
6092 (move_it_in_display_line_to): Fix logic of returning
412b6358 6093 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
35928349 6094
e2e2423b
EZ
60952011-08-05 Eli Zaretskii <eliz@gnu.org>
6096
6097 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
6098 came from a string character with a `cursor' property. (Bug#9229)
6099
ae9e757a
JD
61002011-08-04 Jan Djärv <jan.h.d@swipnet.se>
6101
6102 * Makefile.in (LIB_PTHREAD): New variable.
6103 (LIBES): Add LIB_PTHREAD (Bug#9216).
6104
6105 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
6106 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
6107
213bd7f2
AS
61082011-08-04 Andreas Schwab <schwab@linux-m68k.org>
6109
6b02f655 6110 * regex.c (re_iswctype): Remove some redundant boolean conversions.
213bd7f2 6111
99aaf75f
JD
61122011-08-04 Jan Djärv <jan.h.d@swipnet.se>
6113
6114 * xterm.c (x_find_topmost_parent): New function.
6115 (x_set_frame_alpha): Find topmost parent window with
6116 x_find_topmost_parent and set the property there also (bug#9181).
6117 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
6118
c74e9d86
PE
61192011-08-04 Paul Eggert <eggert@cs.ucla.edu>
6120
6121 * callproc.c (Fcall_process): Avoid vfork clobbering
6122 the local vars buffer, coding_systems, current_dir.
6123
640c8776
SM
61242011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
6125
6126 * keymap.c (Fmake_composed_keymap): Move to subr.el.
6127
f26d0e4c
PE
61282011-08-03 Paul Eggert <eggert@cs.ucla.edu>
6129
8a10d76c
PE
6130 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
6131 so that it is not optimized away.
6132
f26d0e4c
PE
6133 * xdisp.c (compute_display_string_pos): Remove unused local.
6134
55439c61
EZ
61352011-08-02 Eli Zaretskii <eliz@gnu.org>
6136
6137 Fix slow cursor motion and scrolling in large buffers with
6138 selective display, like Org Mode buffers. (Bug#9218)
6139
6140 * dispextern.h (struct bidi_it): New member disp_prop_p.
6141
6142 * xdisp.c: Remove one-slot cache of display string positions.
6143 (compute_display_string_pos): Accept an additional argument
5e617bc2 6144 DISP_PROP_P; callers changed. Scan at most 5K characters forward
55439c61
EZ
6145 for a display string or property. If found, set DISP_PROP_P
6146 non-zero.
6147
6148 * bidi.c (bidi_fetch_char): Accept an additional argument
640c8776
SM
6149 DISP_PROP_P, and pass it to compute_display_string_pos.
6150 Only handle text covered by a display string if DISP_PROP_P is returned
55439c61
EZ
6151 non-zero. All callers of bidi_fetch_char changed.
6152
fb33fa43
SM
61532011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
6154
6155 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
6156
b099e063
DM
61572010-12-03 Don March <don@ohspite.net>
6158
6159 * keymap.c (Fdefine_key): Fix non-prefix key error message when
6160 last character M-[char] is translated to ESC [char] (bug#7541).
6161
5cc7f7af
KH
61622011-08-02 Kenichi Handa <handa@m17n.org>
6163
d0fffa3f 6164 * lisp.h (uniprop_table): Extern it.
5cc7f7af
KH
6165
6166 * chartab.c (uniprop_table): Make it non-static.
6167
525d5e6e
EZ
61682011-08-01 Eli Zaretskii <eliz@gnu.org>
6169
6170 * xdisp.c (forward_to_next_line_start): Accept additional argument
6171 BIDI_IT_PREV, and store into it the state of the bidi iterator had
6172 on the newline.
6173 (reseat_at_next_visible_line_start): Use the bidi iterator state
6174 returned by forward_to_next_line_start to restore the state of
6175 it->bidi_it after backing up to previous newline. (Bug#9212)
6176
31011111
AS
61772011-07-30 Andreas Schwab <schwab@linux-m68k.org>
6178
6179 * regex.c (re_comp): Protoize.
6180 (re_exec): Fix return type.
6181 (regexec): Fix type of `ret'. (Bug#9203)
6182
476371c4
PE
61832011-07-28 Paul Eggert <eggert@cs.ucla.edu>
6184
e5d76069
PE
6185 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
6186 This is needed if max-image-size is a floating-point number.
6187
9a79b20c
AS
61882011-07-28 Andreas Schwab <schwab@linux-m68k.org>
6189
6190 * print.c (print_object): Print empty symbol as ##.
6191
6192 * lread.c (read1): Read ## as empty symbol.
6193
d8c2fa78
AA
61942011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
6195
6196 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
6197 setting frame foreground color (Bug#9175).
6198 (x_set_background_color): Likewise.
6199
ffe57a7a
AA
6200 * nsmenu.m (-setText): Size tooltip dimensions precisely to
6201 contents (Bug#9176).
6202 (EmacsTooltip -init): Remove bezels and add shadows to
6203 tooltip windows.
6204
bf3492a5
AA
6205 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
6206 or scroll bar (Bug#8470).
6207
d55e9c53
AA
6208 * nsfont.m (nsfont_open): Remove assignment to voffset and
6209 unnecessary vars hshink, expand, hd, full_height, min_height.
6210 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
6211
6212 * nsterm.h (nsfont_info): Remove voffset field.
6213
d8c2fa78 62142011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
4843aac3
AA
6215
6216 Implement strike-through and overline on NextStep (Bug#8863).
6217
6218 * nsfont.m (nsfont_open): Use underline position provided by font,
6219 instead of hard-coded value of 2.
6220 (nsfont_draw): Call ns_draw_text_decoration instead.
6221
6222 * nsterm.h: Add declaration for ns_draw_text_decoration.
6223
6224 * nsterm.m (ns_draw_text_decoration): New function for drawing
6225 underline, overline, and strike-through.
6226 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
6227 ns_draw_text_decoration. Change treatment of cursor drawing to
8d5ed899 6228 accommodate underlining, etc.
4843aac3 6229
4cc60b9b
EZ
62302011-07-28 Eli Zaretskii <eliz@gnu.org>
6231
bc7ece87
EZ
6232 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
6233 default.
4cc60b9b 6234
476371c4
PE
62352011-07-28 Paul Eggert <eggert@cs.ucla.edu>
6236
66606eea
PE
6237 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
6238 Without this fix, if a signal arrives just after memory fills up,
6239 'malloc' might be invoked reentrantly.
6240
476371c4
PE
6241 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
6242 In other words, assume that every image size is allowed, on non-X
6243 hosts. This assumption is probably wrong, but it lets Emacs compile.
6244
f3fcc40d
AS
62452011-07-28 Andreas Schwab <schwab@linux-m68k.org>
6246
6247 * regex.c (re_iswctype): Convert return values to boolean.
6248
350c992f
EZ
62492011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
6250
6251 * xdisp.c (compute_display_string_pos): Don't use cached display
6252 string position if the buffer had its restriction changed.
6253 (Bug#9184)
6254
5266b4bb
PE
62552011-07-28 Paul Eggert <eggert@cs.ucla.edu>
6256
6257 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
6258
2573a837 62592011-07-28 Paul Eggert <eggert@cs.ucla.edu>
ca4aa935 6260
41f55ccd 6261 Integer signedness and overflow and related fixes. (Bug#9079)
cf950e6b 6262
39e378da
PE
6263 * bidi.c: Integer size and overflow fixes.
6264 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
6265 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
6266 (bidi_cache_find_level_change, bidi_cache_ensure_space)
6267 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
6268 (bidi_find_other_level_edge):
6269 Use ptrdiff_t instead of EMACS_INT where either will do.
6270 This works better on 32-bit hosts configured --with-wide-int.
6271 (bidi_cache_ensure_space): Check for size-calculation overflow.
6272 Use % rather than repeated addition, for better worst-case speed.
6273 Don't set bidi_cache_size until after xrealloc returns, because it
6274 might not return.
6275 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
f0eb61e9
PE
6276 (bidi_cache_ensure_space): Also check that the bidi cache size
6277 does not exceed that of the largest Lisp string or buffer. See Eli
6278 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
39e378da 6279
5e927815
PE
6280 * alloc.c (__malloc_size_t): Remove.
6281 All uses replaced by size_t. See Andreas Schwab's note
6282 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
6283
ca4aa935
PE
6284 * image.c: Improve checking for integer overflow.
6285 (check_image_size): Assume that f is nonnull, since
6286 it is always nonnull in practice. This is one less thing to
6287 worry about when checking for integer overflow later.
6288 (x_check_image_size): New function, which checks for integer
6289 overflow issues inside X.
6290 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
6291 This removes the need for a memory_full check.
6292 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
6293 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
6294 (xbm_read_bitmap_data): Change locals back to 'int', since
6295 their values must fit in 'int'.
6296 (xpm_load_image, png_load, tiff_load):
6297 Invoke x_create_x_image_and_pixmap earlier,
6298 to avoid much needless work if the image is too large.
6299 (tiff_load): Treat overly large images as if
6300 x_create_x_image_and_pixmap failed, not as malloc failures.
6301 (gs_load): Use x_check_image_size.
6302
5f8f9cc2
PE
6303 * gtkutil.c: Omit integer casts.
6304 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
6305 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
6306
5adf60bc
PE
6307 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
6308
c8907a93
PE
6309 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
6310 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
6311 would wrongly return t on a 64-bit host.
6312
e3c25c68
PE
6313 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
6314 The plain *_OVERFLOW macros run afoul of GCC bug 49705
6315 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
6316 and therefore cause GCC to emit a bogus diagnostic in some cases.
6317
3f791afe
PE
6318 * image.c: Integer signedness and overflow and related fixes.
6319 This is not an exhaustive set of fixes, but it's time to
6320 record what I've got.
6321 (lookup_pixel_color, check_image_size): Remove redundant decls.
6322 (check_image_size): Don't assume that arbitrary EMACS_INT values
6323 fit in 'int', or that arbitrary 'double' values fit in 'int'.
6324 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
6325 (tiff_load, imagemagick_load_image):
6326 Check for overflow in size calculations.
6327 (x_create_x_image_and_pixmap): Remove unnecessary test for
6328 xmalloc returning NULL; that can't happen.
6329 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
6330 (xpm_color_bucket): Use better integer hashing function.
6331 (xpm_cache_color): Don't possibly over-allocate memory.
6332 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
6333 (gif_memory_source):
6334 Use ptrdiff_t, not int or size_t, to record sizes.
6335 (png_load): Don't assume values greater than 2**31 fit in 'int'.
6336 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
6337 either works, as we prefer signed integers.
6338 (tiff_read_from_memory, tiff_write_from_memory):
6339 Return tsize_t, not size_t, since that's what the TIFF API wants.
6340 (tiff_read_from_memory): Don't fail simply because the read would
6341 go past EOF; instead, return a short read.
6342 (tiff_load): Omit no-longer-needed casts.
6343 (Fimagemagick_types): Don't assume size fits into 'int'.
6344
3cc5a532
PE
6345 Improve hashing quality when configured --with-wide-int.
6346 * fns.c (hash_string): New function, taken from sxhash_string.
6347 Do not discard information about ASCII character case; this
6348 discarding is no longer needed.
6349 (sxhash-string): Use it. Change sig to match it. Caller changed.
6350 * lisp.h: Declare it.
6351 * lread.c (hash_string): Remove, since we now use fns.c's version.
6352 The fns.c version returns a wider integer if --with-wide-int is
6353 specified, so this should help the quality of the hashing a bit.
6354
b312a492
PE
6355 * emacs.c: Integer overflow minor fix.
6356 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
6357 Define only if GNU_LINUX.
6358 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
6359
dfd153ae
PE
6360 * dispnew.c: Integer signedness and overflow fixes.
6361 Remove unnecessary forward decls, that were a maintenance hassle.
6362 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
6363 All uses changed.
6364 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
6365 (scrolling_window): Use ptrdiff_t, not int, for byte count.
6366 (prepare_desired_row, line_draw_cost):
6367 Use int, not unsigned, where either works.
6368 (save_current_matrix, restore_current_matrix):
6369 Use ptrdiff_t, not size_t, where either works.
6370 (init_display): Check for overflow more accurately, and without
6371 relying on undefined behavior.
6372
a81d11a3
PE
6373 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
6374 Remove, replacing with the new symbols in lisp.h. All uses changed.
6375 * fileio.c (make_temp_name):
6376 * filelock.c (lock_file_1, lock_file):
6377 * xdisp.c (message_dolog):
6378 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
6379 Use pMd etc. instead.
6380 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
6381 replacing the pWIDE etc. symbols removed from editfns.c.
6382
3300e6fd
PE
6383 * keyboard.h (num_input_events): Now uintmax_t.
6384 This is (very slightly) less likely to mess up due to wraparound.
6385 All uses changed.
6386
fd05c7e9
PE
6387 * buffer.c: Integer signedness fixes.
6388 (alloc_buffer_text, enlarge_buffer_text):
6389 Use ptrdiff_t rather than size_t when either will do, as we prefer
6390 signed integers.
6391
903fe15d
PE
6392 * alloc.c: Integer signedness and overflow fixes.
6393 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
6394 (__malloc_size_t): Default to size_t, not to int.
6395 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
6396 (Fgarbage_collect, mark_object_loop_halt, mark_object):
6397 Prefer ptrdiff_t to size_t when either would do, as we prefer
6398 signed integers.
6399 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
6400 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
6401 Now const. Initialize with values that are in range even if char
6402 is signed.
6403 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
6404 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
6405 These functions do the right thing with sizes > 2**32.
6406 (check_depth): Now ptrdiff_t, not int.
6407 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
6408 Adjust to new way of storing sizes. Check for size overflow bugs
6409 in rest of code.
6410 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
6411 slightly wrong anyway, as it missed one instance of
6412 XMALLOC_OVERRUN_CHECK_OVERHEAD.
6413 (refill_memory_reserve): Omit needless cast to size_t.
6414 (mark_object_loop_halt): Mark as externally visible.
6415
ac82cc6a
PE
6416 * xselect.c: Integer signedness and overflow fixes.
6417 (Fx_register_dnd_atom, x_handle_dnd_message):
6418 Use ptrdiff_t, not size_t, since we prefer signed.
6419 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
6420 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
6421 x_dnd_atoms_size and x_dnd_atoms_length.
6422
c2d1e36d
PE
6423 * doprnt.c: Prefer signed to unsigned when either works.
6424 * eval.c (verror):
6425 * doprnt.c (doprnt):
6426 * lisp.h (doprnt):
6427 * xdisp.c (vmessage):
6428 Use ptrdiff_t, not size_t, when using or implementing doprnt,
6429 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
6430 prefer signed arithmetic to avoid comparison confusion.
6431 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
6432 but is a bit tricky.
6433
0e926e56
PE
6434 Assume freestanding C89 headers, string.h, stdlib.h.
6435 * data.c, doprnt.c, floatfns.c, print.c:
6436 Include float.h unconditionally.
6437 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
6438 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
6439 * regex.c: Likewise for stddef.h, string.h.
6440 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
6441 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
6442 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
6443 (STDC_HEADERS): Remove obsolete defines.
6444 * sysdep.c: Include limits.h unconditionally.
6445
9cfdb3ec
PE
6446 Assume support for memcmp, memcpy, memmove, memset.
6447 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
6448 * regex.c (memcmp, memcpy):
6449 Remove; we assume C89 now.
6450
6451 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
6452 (__malloc_safe_bcopy): Remove; no longer needed.
6453
cf950e6b 6454 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
6089c567
PE
6455 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
6456 well either way, and we prefer signed to unsigned.
6457
dbf38e02
LMI
64582011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
6459
6460 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
6461 closes the connection while we're reading (bug#9182).
6462
d6f0886c 64632011-07-25 Jan Djärv <jan.h.d@swipnet.se>
24e0f6b1 6464
d6f0886c
JD
6465 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
6466 are specified (Bug#9168).
24e0f6b1 6467
2eb1f9e6
PE
64682011-07-25 Paul Eggert <eggert@cs.ucla.edu>
6469
6470 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
6471 Found by GCC static checking and --with-wide-int on a 32-bit host.
6472
22381272 64732011-07-25 Eli Zaretskii <eliz@gnu.org>
7daee910
EZ
6474
6475 * xdisp.c (compute_display_string_pos): Fix logic of caching
6476 previous display string position. Initialize cached_prev_pos to
6477 -1. Fixes slow-down at the beginning of a buffer.
6478
f25e39b4
EZ
64792011-07-24 Eli Zaretskii <eliz@gnu.org>
6480
6481 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
6482 for attrs[LFACE_FONTSET_INDEX].
6483
04c4b52e
PE
64842011-07-23 Paul Eggert <eggert@cs.ucla.edu>
6485
6486 * xml.c (parse_region): Remove unused local
6487 that was recently introduced.
6488
c1734fbd
EZ
64892011-07-23 Eli Zaretskii <eliz@gnu.org>
6490
be18c5a5
EZ
6491 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
6492 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
6493
c1734fbd
EZ
6494 * xdisp.c (move_it_in_display_line_to): Record the best matching
6495 position for TO_CHARPOS while scanning the line, and restore it on
640c8776
SM
6496 exit if none of the characters scanned was an exact match.
6497 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
a9269c18
EZ
6498 when exact match is impossible due to invisible text, and the
6499 lines are truncated.
6500
a258d627
JD
65012011-07-23 Jan Djärv <jan.h.d@swipnet.se>
6502
6503 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
6504 for OSX >= 10.7.
6505
b6d5a689
EZ
65062011-07-22 Eli Zaretskii <eliz@gnu.org>
6507
0f74f785
EZ
6508 Fix a significant slow-down of cursor motion with C-n, C-p,
6509 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
6510 auto-repeat under bidi redisplay in fontified buffers.
b6d5a689 6511 * xdisp.c (compute_stop_pos_backwards): New function.
b6d5a689
EZ
6512 (next_element_from_buffer): Call compute_stop_pos_backwards to
6513 find a suitable prev_stop when we find ourselves before
0f74f785
EZ
6514 base_level_stop.
6515 (reseat): Don't look for prev_stop, as that could mean a very long
6516 run.
6517 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
6518 <cached_disp_overlay_modiff>: Cache for last found display string
6519 position.
551918c1 6520 (compute_display_string_pos): Return the cached position if asked
0f74f785
EZ
6521 about the same buffer in the same area of character positions, and
6522 the buffer wasn't changed since the time the display string
6523 position was cached.
551918c1 6524
b2d0c91a
EZ
65252011-07-22 Eli Zaretskii <eliz@gnu.org>
6526
6527 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
6528 is an integer, which is important for empty lines. (Bug#9149)
6529
043604ee
CY
65302011-07-22 Chong Yidong <cyd@stupidchicken.com>
6531
6532 * frame.c (Fmodify_frame_parameters): In tty case, update the
6533 default face if necessary (Bug#4238).
6534
da4adb04
CY
65352011-07-21 Chong Yidong <cyd@stupidchicken.com>
6536
6537 * editfns.c (Fstring_to_char): No need to explain what a character
6538 is in the docstring (Bug#6576).
6539
9abd0532
LMI
65402011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
6541
6542 * xml.c (parse_region): Make sure we always return a tree.
6543
36881d16
HK
65442011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
6545
6546 * xml.c (parse_region): If a document contains only comments,
6547 return that, too.
6548
1e98674d
LMI
65492011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
6550
6551 * xml.c (make_dom): Return comments, too.
6552
590bd467
PE
65532011-07-19 Paul Eggert <eggert@cs.ucla.edu>
6554
6555 Port to OpenBSD.
6556 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
6557 and the surrounding thread.
6558 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
6559 rather than fgets, and retry after EINTR. Otherwise, 'emacs
6560 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
6561 timer goes off.
6562 * s/openbsd.h (BROKEN_SIGIO): Define.
6563 * unexelf.c (unexec) [__OpenBSD__]:
6564 Don't update the .mdebug section of the Alpha COFF symbol table.
6565
f41628b2
LMI
65662011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
6567
6568 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
6569 (bug#8460).
6570
b59b67c5
PE
65712011-07-18 Paul Eggert <eggert@cs.ucla.edu>
6572
15e3a074
PE
6573 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
6574 This fixes some race conditions on the permissions of any newly
6575 created file.
6576
41bed37d
PE
6577 * alloc.c (valid_pointer_p): Use pipe, not open.
6578 This fixes some permissions issues when debugging.
6579
b59b67c5
PE
6580 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
6581 If fchown fails to set both uid and gid, try to set just gid,
6582 as that is sometimes allowed. Adjust the file's mode to eliminate
6583 setuid or setgid bits that are inappropriate if fchown fails.
6584
925a6be7
SM
65852011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
6586
6587 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
6588 to compare Lisp_Objects.
6589 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
6590 global_gnutls_log_level, don't mistake it for a Lisp_Object.
6591 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
6592
52968808
AS
65932011-07-17 Andreas Schwab <schwab@linux-m68k.org>
6594
0a6a104b
AS
6595 * lread.c (read_integer): Unread even EOF character.
6596 (read1): Likewise. Properly record start position of symbol.
6597
52968808
AS
6598 * lread.c (read1): Read `#:' as empty uninterned symbol if no
6599 symbol character follows.
6600
9e381cdd
PE
66012011-07-17 Paul Eggert <eggert@cs.ucla.edu>
6602
6603 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
6604 This works around a problem with the previous change to Fcopy_file.
6605 Recent glibc declares fchown with __attribute__((warn_unused_result)),
6606 and without this change, GCC might complain about discarding
6607 fchown's return value.
6608
b5641435
JB
66092011-07-16 Juanma Barranquero <lekktu@gmail.com>
6610
6611 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
6612
a8031457
PE
66132011-07-16 Paul Eggert <eggert@cs.ucla.edu>
6614
6615 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
6616
dd889327
LMI
66172011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
6618
750c33f7
LMI
6619 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
6620 it's used from the C level.
6621
dd889327
LMI
6622 * process.c: Use the same condition for POLL_FOR_INPUT in both
6623 keyboard.c and process.c (bug#1858).
6624
87e86684
LM
66252011-07-09 Lawrence Mitchell <wence@gmx.li>
6626
6627 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
6628 (Fgnutls_boot): Use it.
6629
64348f40
AS
66302011-07-15 Andreas Schwab <schwab@linux-m68k.org>
6631
6632 * doc.c (Fsubstitute_command_keys): Revert last change.
6633
1d698799
LMI
66342011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
6635
f863868c
LMI
6636 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
6637 quotes the next character, and doesn't affect other longer
6638 sequences (bug#8935).
6639
1d698799
LMI
6640 * lread.c (syms_of_lread): Clarify that is isn't only
6641 `eval-buffer' and `eval-defun' that's affected by
6642 `lexical-binding' (bug#8460).
6643
aa4b6df6
EZ
66442011-07-15 Eli Zaretskii <eliz@gnu.org>
6645
6646 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
6b02f655 6647 bidi redisplay when a line includes both an image and is truncated.
aa4b6df6 6648
5d856da6
PE
66492011-07-14 Paul Eggert <eggert@cs.ucla.edu>
6650
ad6042bb
PE
6651 Fix minor problems found by static checking.
6652 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
6653 (elsz): Now a signed constant, not a size_t var. We prefer signed
6654 types to unsigned, to avoid integer comparison confusion. Without
6655 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
6656 "cannot optimize loop, the loop counter may overflow", a symptom
6657 of the confusion.
f00bbb22 6658 * indent.c (Fvertical_motion): Mark locals as initialized.
5d856da6
PE
6659 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
6660
6468f31c
LMI
66612011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
6662
49080b10
LMI
6663 * search.c (Fre_search_backward): Mention `case-fold-search' in
6664 all the re_search_* functions (bug#8138).
6665
6468f31c
LMI
6666 * keyboard.c (Fopen_dribble_file): Document when the file is
6667 closed (bug#8056).
6668
c965adc5
EZ
66692011-07-14 Eli Zaretskii <eliz@gnu.org>
6670
df9733bf
EZ
6671 * bidi.c (bidi_dump_cached_states): Fix format of displaying
6672 bidi_cache_idx.
6673
0bb23927
EZ
6674 Support bidi reordering of display and overlay strings.
6675 * xdisp.c (compute_display_string_pos)
6676 (compute_display_string_end): Accept additional argument STRING.
6677 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
6678 (reseat_to_string): Initialize bidi_it->string.s and
6679 bidi_it->string.schars.
6680 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
640c8776
SM
6681 NULL (avoids a crash in bidi_paragraph_init).
6682 Initialize itb.string.lstring.
0bb23927
EZ
6683 (init_iterator): Call bidi_init_it only of a valid
6684 buffer position was specified. Initialize paragraph_embedding to
6685 L2R.
6686 (reseat_to_string): Initialize the bidi iterator.
6687 (display_string): If we need to ignore text properties of
6688 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
6689 original value of -1 will not work with bidi.)
6690 (compute_display_string_pos): First arg is now struct
6691 `text_pos *'; all callers changed. Support display properties on
6692 Lisp strings.
6693 (compute_display_string_end): Support display properties on Lisp
6694 strings.
6695 (init_iterator, reseat_1, reseat_to_string): Initialize the
6696 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
6697 when iterating on a string not from display properties).
640c8776
SM
6698 (compute_display_string_pos, compute_display_string_end):
6699 Fix calculation of the object to scan. Fixes an error when using
0bb23927
EZ
6700 arrow keys.
6701 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
640c8776
SM
6702 base_level_stop; instead, set base_level_stop to BEGV.
6703 Fixes crashes in vertical-motion.
0bb23927
EZ
6704 (next_element_from_buffer): Improve commentary for when
6705 the iterator is before prev_stop.
6706 (init_iterator): Initialize bidi_p from the default value of
6707 bidi-display-reordering, not from buffer-local value. Use the
6708 buffer-local value only if initializing for buffer iteration.
6709 (handle_invisible_prop): Support invisible properties on strings
6710 that are being bidi-reordered.
6711 (set_iterator_to_next): Support bidi reordering of C strings and
6712 Lisp strings.
6713 (next_element_from_string): Support bidi reordering of Lisp
6714 strings.
6715 (handle_stop_backwards): Support Lisp strings as well.
640c8776
SM
6716 (display_string): Support display of R2L glyph rows.
6717 Use IT_STRING_CHARPOS when displaying from a Lisp string.
0bb23927
EZ
6718 (init_iterator): Don't initialize it->bidi_p for strings
6719 here.
6720 (reseat_to_string): Initialize it->bidi_p for strings here.
6721 (next_element_from_string, next_element_from_c_string)
6722 (next_element_from_buffer): Add xassert's for correspondence
6723 between IT's object being iterated and it->bidi_it.string
6724 structure.
6725 (face_before_or_after_it_pos): Support bidi iteration.
6726 (next_element_from_c_string): Handle the case of the first string
6727 character that is not the first one in the visual order.
6728 (get_visually_first_element): New function, refactored from common
6729 parts of next_element_from_buffer, next_element_from_string, and
6730 next_element_from_c_string.
6731 (tool_bar_lines_needed, redisplay_tool_bar)
6732 (display_menu_bar): Force left-to-right direction. Add a FIXME
6733 comment for making that be controlled by a user option.
6734 (push_it, pop_it): Save and restore the state of the
6735 bidi iterator. Save and restore the bidi_p flag.
6736 (pop_it): Iterate out of display property for string iteration as
6737 well.
6738 (iterate_out_of_display_property): Support iteration over strings.
6739 (handle_single_display_spec): Set up it->bidi_it for iteration
6740 over a display string, and call bidi_init_it.
6741 (handle_single_display_spec, next_overlay_string)
6742 (get_overlay_strings_1, push_display_prop): Set up the bidi
6743 iterator for displaying display or overlay strings.
6744 (forward_to_next_line_start): Don't use the shortcut if
6745 bidi-iterating.
6746 (back_to_previous_visible_line_start): If handle_display_prop
6747 pushed the iterator stack, restore the internal state of the bidi
6748 iterator by calling bidi_pop_it same number of times.
6749 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
6750 and we are bidi-iterating, don't decrement the iterator position;
6751 instead, set the first_elt flag in the bidi iterator, to produce
6752 the same effect.
6753 (reseat_1): Remove redundant setting of string_from_display_prop_p.
6754 (push_display_prop): xassert that we are iterating a buffer.
6755 (push_it, pop_it): Save and restore paragraph_embedding member.
6756 (handle_single_display_spec, next_overlay_string)
6757 (get_overlay_strings_1, reseat_1, reseat_to_string)
6758 (push_display_prop): Set up the `unibyte' member of bidi_it.string
6759 correctly. Don't assume unibyte strings are not bidi-reordered.
6760 (compute_display_string_pos)
6761 (compute_display_string_end): Fix handling the case of C string.
6762 (push_it, pop_it): Save and restore from_disp_prop_p.
6763 (handle_single_display_spec, push_display_prop): Set the
6764 from_disp_prop_p flag.
6765 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
6766 (pop_it): Call iterate_out_of_display_property only if we are
6767 popping after iteration over a string that came from a display
6768 property. Fix a typo in popping stretch info. Add an assertion
6769 for verifying that the iterator position is in sync with the bidi
6770 iterator.
6771 (handle_single_display_spec, get_overlay_strings_1)
6772 (push_display_prop): Fix initialization of paragraph direction for
6773 string when that of the parent object is not yet determined.
6774 (reseat_1): Call bidi_init_it to resync the bidi
6775 iterator with IT's position. (Bug#7616)
6776 (find_row_edges): If ROW->start.pos gives position
6777 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
6778 (handle_stop, back_to_previous_visible_line_start, reseat_1):
6779 Reset the from_disp_prop_p flag.
6780 (SAVE_IT, RESTORE_IT): New macros.
6781 (pos_visible_p, face_before_or_after_it_pos)
6782 (back_to_previous_visible_line_start)
6783 (move_it_in_display_line_to, move_it_in_display_line)
6784 (move_it_to, move_it_vertically_backward, move_it_by_lines)
6785 (try_scrolling, redisplay_window, display_line): Use them when
6786 saving a temporary copy of the iterator and restoring it back.
6787 (back_to_previous_visible_line_start, reseat_1)
6788 (init_iterator): Empty the bidi cache "stack".
6789 (move_it_in_display_line_to): If iterator ended up at
6790 EOL, but we never saw any buffer positions smaller than
6791 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
6792 motion in bidi-reordered lines.
6793 (move_it_in_display_line_to): Record prev_method and prev_pos
6794 immediately before the call to set_iterator_to_next. Fixes cursor
6795 motion in bidi-reordered lines with stretch glyphs and strings
6796 displayed in margins. (Bug#8133) (Bug#8867)
6797 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
6798 TO_CHARPOS.
640c8776
SM
6799 (pos_visible_p): Support positions in bidi-reordered lines.
6800 Save and restore bidi cache.
0bb23927
EZ
6801
6802 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
6803 (bidi_paragraph_info): Delete unused struct.
6804 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
6805 (bidi_cache_start): New variable.
6806 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
6807 to zero.
6808 (bidi_cache_fetch_state, bidi_cache_search)
6809 (bidi_cache_find_level_change, bidi_cache_iterator_state)
6810 (bidi_cache_find, bidi_peek_at_next_level)
6811 (bidi_level_of_next_char, bidi_find_other_level_edge)
6812 (bidi_move_to_visually_next): Compare cache index with
6813 bidi_cache_start rather than with zero.
6814 (bidi_fetch_char): Accept new argument STRING; all callers
6815 changed. Support iteration over a string. Support strings with
6816 display properties. Support unibyte strings. Fix the type of
6817 `len' according to what STRING_CHAR_AND_LENGTH expects.
6818 (bidi_paragraph_init, bidi_resolve_explicit_1)
6819 (bidi_resolve_explicit, bidi_resolve_weak)
640c8776
SM
6820 (bidi_level_of_next_char, bidi_move_to_visually_next):
6821 Support iteration over a string.
0bb23927
EZ
6822 (bidi_set_sor_type, bidi_resolve_explicit_1)
6823 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
6824 can now be zero (for strings); special values 0 and -1 were
6825 changed to -1 and -2, respectively.
6826 (bidi_char_at_pos): New function.
6827 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
6828 Call it instead of FETCH_MULTIBYTE_CHAR.
6829 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
6830 initialized to valid values.
6831 (bidi_init_it): Don't initialize charpos and bytepos with invalid
6832 values.
6833 (bidi_level_of_next_char): Allow the sentinel "position" to pass
6834 the test for valid cached positions. Fix the logic for looking up
6835 the sentinel state in the cache. GCPRO the Lisp string we are
6836 iterating.
6837 (bidi_push_it, bidi_pop_it): New functions.
6838 (bidi_initialize): Initialize the bidi cache start stack pointer.
6839 (bidi_cache_ensure_space): New function, refactored from part of
6840 bidi_cache_iterator_state. Don't assume the required size is just
6841 one BIDI_CACHE_CHUNK away.
6842 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
6843 (bidi_count_bytes, bidi_char_at_pos): New functions.
6844 (bidi_cache_search): Don't assume bidi_cache_last_idx is
6845 always valid if bidi_cache_idx is valid.
6846 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
6847 is valid if it's going to be used.
6848 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
6849 (bidi_cache_fetch_state, bidi_cache_search)
c965adc5
EZ
6850 (bidi_cache_find_level_change, bidi_cache_ensure_space)
6851 (bidi_cache_iterator_state, bidi_cache_find)
640c8776
SM
6852 (bidi_find_other_level_edge, bidi_cache_start_stack):
6853 All variables related to cache indices are now EMACS_INT.
c965adc5 6854
0bb23927
EZ
6855 * dispextern.h (struct bidi_string_data): New structure.
6856 (struct bidi_it): New member `string'. Make flag members be 1-bit
6857 fields, and put them last in the struct.
640c8776
SM
6858 (compute_display_string_pos, compute_display_string_end):
6859 Update prototypes.
0bb23927
EZ
6860 (bidi_push_it, bidi_pop_it): Add prototypes.
6861 (struct iterator_stack_entry): New members bidi_p,
6862 paragraph_embedding, and from_disp_prop_p.
6863 (struct it): Member bidi_p is now a bit field 1 bit wide.
640c8776
SM
6864 (bidi_shelve_cache, bidi_unshelve_cache):
6865 Declare prototypes.
0bb23927
EZ
6866
6867 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
6868 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
6869 and vector-like objects.
6870
6871 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
6872 cache around display iteration.
6873
6874 * window.c (Fwindow_end, window_scroll_pixel_based)
6875 (displayed_window_lines, Frecenter): Save and restore the bidi
6876 cache around display iteration.
6877
3bbd2265
LMI
68782011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
6879
6880 * editfns.c (Fdelete_region): Clarify the use of the named
6881 parameters (bug#6788).
6882
adc47434
MR
68832011-07-14 Martin Rudalics <rudalics@gmx.at>
6884
6885 * indent.c (Fvertical_motion): Set and restore w->pointm when
6886 saving and restoring the window's buffer (Bug#9006).
6887
837c31f8
LMI
68882011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
6889
6890 * editfns.c (Fstring_to_char): Clarify just what is returned
6891 (bug#6576). Text by Eli Zaretskii.
6892
ac389d0c
JB
68932011-07-13 Juanma Barranquero <lekktu@gmail.com>
6894
6895 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
6896
0be0ce47
EZ
68972011-07-13 Eli Zaretskii <eliz@gnu.org>
6898
6899 * buffer.c (mmap_find): Fix a typo.
6900
cd18e7e3
JB
69012011-07-13 Johan Bockgård <bojohan@gnu.org>
6902
6903 Fix execution of x selection hooks.
6904 * xselect.c (Qx_lost_selection_functions)
6905 (Qx_sent_selection_functions): New vars.
6906 (syms_of_xselect): DEFSYM them.
6907 (x_handle_selection_request): Pass Qx_sent_selection_functions
6908 rather than Vx_sent_selection_functions to Frun_hook_with_args.
6909 (x_handle_selection_clear,x_clear_frame_selections):
6910 Pass Qx_lost_selection_functions rather than
6911 Vx_lost_selection_functions to Frun_hook_with_args.
6912
47ea7f44
PE
69132011-07-13 Paul Eggert <eggert@cs.ucla.edu>
6914
ac389d0c 6915 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
2941c447
PE
6916 The old code sometimes used this field without initializing it.
6917
47ea7f44
PE
6918 * alloc.c (gc_sweep): Don't read past end of array.
6919 In theory, the old code could also have corrupted Emacs internals,
6920 though it'd be very unlikely.
6921
bc985c87
AS
69222011-07-12 Andreas Schwab <schwab@linux-m68k.org>
6923
6924 * character.c (Fcharacterp): Don't advertise optional ignored
ac389d0c 6925 argument. (Bug#4026)
bc985c87 6926
0cf34688
LMI
69272011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
6928
b3dadd76
LMI
6929 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
6930 key" (bug#4257).
6931
0cf34688
LMI
6932 * window.c (Fset_window_start): Doc fix (bug#4199).
6933 (Fset_window_hscroll): Ditto.
6934
270768cd
PE
69352011-07-12 Paul Eggert <eggert@cs.ucla.edu>
6936
077e3dda 6937 Fix minor new problems caught by GCC 4.6.1.
270768cd 6938 * term.c (init_tty): Remove unused local.
490011a6 6939 * xsettings.c (store_monospaced_changed): Define this function only
077e3dda 6940 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
490011a6 6941 not used otherwise.
270768cd 6942
b1f58454
CY
69432011-07-12 Chong Yidong <cyd@stupidchicken.com>
6944
6945 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
6946
22b9578d
LMI
69472011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
6948
6e70ab07
LMI
6949 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
6950 are the mini-buffer and the echo area (bug#3320).
6951
22b9578d
LMI
6952 * term.c (init_tty): Remove support for supdup, c10 and perq
6953 terminals, which are no longer supported (bug#1482).
6954
8974cc9f
JB
69552011-07-10 Johan Bockgård <bojohan@gnu.org>
6956
6957 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
6958
a560d974
JD
69592011-07-10 Jan Djärv <jan.h.d@swipnet.se>
6960
6961 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
6962 for non-popups (Bug#3642).
6963
1dae0f0a
AS
69642011-07-10 Andreas Schwab <schwab@linux-m68k.org>
6965
268c2c36 6966 * alloc.c (reset_malloc_hooks): Protoize.
1dae0f0a 6967 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
268c2c36
AS
6968 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
6969 * cm.c (losecursor): Likewise.
1dae0f0a
AS
6970 * data.c (fmod): Likewise.
6971 * dispnew.c (swap_glyphs_in_rows): Likewise.
6972 * emacs.c (memory_warning_signal): Likewise.
6973 * floatfns.c (float_error): Likewise.
6974 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
6975 (otf_open, font_otf_capability, generate_otf_features)
6976 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
6977 Likewise.
6978 * image.c (pbm_read_file): Likewise.
6979 * indent.c (string_display_width): Likewise.
6980 * intervals.c (check_for_interval, search_for_interval)
6981 (inc_interval_count, count_intervals, root_interval)
6982 (adjust_intervals_for_insertion, make_new_interval): Likewise.
6983 * lread.c (defalias): Likewise.
268c2c36 6984 * ralloc.c (r_alloc_check): Likewise.
1dae0f0a
AS
6985 * regex.c (set_image_of_range_1, set_image_of_range)
6986 (regex_grow_registers): Likewise.
6987 * sysdep.c (strerror): Likewise.
6988 * termcap.c (valid_filename_p, tprint, main): Likewise.
6989 * tparam.c (main): Likewise.
6990 * unexhp9k800.c (run_time_remap, save_data_space)
6991 (update_file_ptrs, read_header, write_header, calculate_checksum)
6992 (copy_file, copy_rest, display_header): Likewise.
6993 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
6994 Likewise.
6995 * xdisp.c (check_it): Likewise.
6996 * xfaces.c (register_color, unregister_color, unregister_colors):
6997 Likewise.
6998 * xfns.c (print_fontset_result): Likewise.
6999 * xrdb.c (member, fatal, main): Likewise.
7000
99033785
PE
70012011-07-10 Paul Eggert <eggert@cs.ucla.edu>
7002
7003 Fix minor problems found by static checking (Bug#9031).
7004 * chartab.c (char_table_set_range, map_sub_char_table):
7005 Remove unused locals.
7006 (uniprop_table): Now static.
7007 * composite.c (_work_char): Remove unused static var.
7008
9cb2ac56
JB
70092011-07-09 Juanma Barranquero <lekktu@gmail.com>
7010
7011 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
7012
f25661f0
JD
70132011-07-09 Jan Djärv <jan.h.d@swipnet.se>
7014
7015 * gtkutil.c (qttip_cb): Remove code without function.
7016
8278c4fe
EZ
70172011-07-09 Eli Zaretskii <eliz@gnu.org>
7018
7019 * w32.c (pthread_sigmask): New stub.
7020
1692ae2d 70212011-07-08 Paul Eggert <eggert@cs.ucla.edu>
123403e4 7022
8a6ebd58 7023 Use pthread_sigmask, not sigprocmask (Bug#9010).
123403e4
PE
7024 sigprocmask is portable only for single-threaded applications, and
7025 Emacs can be multi-threaded when it uses GTK.
1301ac26
PE
7026 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
7027 (LIBES): Use it.
7028 * callproc.c (Fcall_process):
7029 * process.c (create_process):
7030 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
7031 Use pthread_sigmask, not sigprocmask.
123403e4 7032
1b854618
JD
70332011-07-08 Jan Djärv <jan.h.d@swipnet.se>
7034
7035 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
7036 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
7037 wrong (Bug#8591).
7038
3fe4b549
JD
70392011-07-08 Jan Djärv <jan.h.d@swipnet.se>
7040
0ce7e563
JD
7041 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
7042 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
7043 (xg_hide_tooltip): Fix comment.
7044
3fe4b549
JD
7045 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
7046 in registerServicesMenuSendTypes.
7047 (validRequestorForSendType): Don't check ns_return_types.
7048
7049 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
7050 ns_return_type.
7051
5df75e47
JR
70522011-07-08 Jason Rumney <jasonr@gnu.org>
7053
22610910
JR
7054 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
7055 SH_SHOW for hidden windows (Bug#5482).
7056
5df75e47
JR
7057 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
7058 frame struct members of non-existent frames (Bug#6284).
7059
699c10bd
JD
70602011-07-08 Jan Djärv <jan.h.d@swipnet.se>
7061
4393663b
JD
7062 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
7063 variable firstTime not needed on OSX >= 10.6.
7064 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
7065 >= 10.5. Use setKnobProportion, setDoubleValue.
7066
7067 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
7068 (MAC_OS_X_VERSION_10_5): Define if not defined.
7069 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
7070 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
7071 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
7072
7073 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
7074 cString and lossyCString on OSX >= 10.4
7075
58179cce 7076 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
4393663b
JD
7077 sizeToFit on OSX >= 10.2.
7078
7079 * nsimage.m (allocInitFromFile): Don't use deprecated method
7080 bestRepresentationForDevice on OSX >= 10.6.
7081
7082 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
7083 to avoid warning.
7084
7085 * emacs.c: Declare unexec_init_emacs_zone.
7086
a63e0781
JD
7087 * nsgui.h: Fix compiler warning about gnulib redefining verify.
7088
699c10bd
JD
7089 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
7090
7091 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
7092 on svcsMenu (Bug#8842).
7093
7094 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
7095 ns_return_types.
7096 (Fns_list_services): Just return Qnil on 10.6, code not working there.
7097
7098 * nsterm.m (QUTF8_STRING): Declare.
7099 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
7100 (validRequestorForSendType): Return type is (id).
7101 Change indexOfObjectIdenticalTo to indexOfObject.
7102 Check if we have local selection before returning self (Bug#8842).
7103 (writeSelectionToPasteboard): Put local selection into paste board
7104 if we have a local selection (Bug#8842).
7105 (syms_of_nsterm): DEFSYM QUTF8_STRING.
7106
7107 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
7108 (ns_get_local_selection): Declare.
7109
54e10184
LMI
71102011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
7111
9888ff71
LMI
7112 * keymap.c (describe_map_tree): Don't insert a double newline at
7113 the end of the buffer (bug#1169) and return whether we inserted
7114 something.
7115
54e10184
LMI
7116 * callint.c (Fcall_interactively): Change "reading args" to
7117 "providing args" to try to clarify what it does (bug#1010).
7118
15fa4783
KH
71192011-07-07 Kenichi Handa <handa@m17n.org>
7120
7121 * composite.c (composition_compute_stop_pos): Ignore a static
7122 composition starting before CHARPOS (Bug#8915).
7123
7124 * xdisp.c (handle_composition_prop): Likewise.
7125
a8815b00
EZ
71262011-07-07 Eli Zaretskii <eliz@gnu.org>
7127
7128 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
7129 (Bug#9015)
7130
ef7b981d 71312011-07-07 Kenichi Handa <handa@m17n.org>
c805dec0
KH
7132
7133 * character.h (unicode_category_t): New enum type.
7134
7135 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
7136 (Qchar_code_property_table): New variable.
7137 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
7138 (UNIPROP_COMPRESSED_FORM_P): New macros.
7139 (char_table_ascii): Uncompress the compressed values.
7140 (sub_char_table_ref): New arg is_uniprop. Callers changed.
7141 Uncompress the compressed values.
ac389d0c 7142 (sub_char_table_ref_and_range): Likewise.
c805dec0
KH
7143 (char_table_ref_and_range): Uncompress the compressed values.
7144 (sub_char_table_set): New arg is_uniprop. Callers changed.
7145 Uncompress the compressed values.
7146 (sub_char_table_set_range): Args changed. Callers changed.
7147 (char_table_set_range): Adjuted for the above change.
7148 (map_sub_char_table): Delete args default_val and parent. Add arg
7149 top. Give decoded values to a Lisp function.
640c8776 7150 (map_char_table): Adjust for the above change. Give decoded
c805dec0
KH
7151 values to a Lisp function. Gcpro more variables.
7152 (uniprop_table_uncompress)
7153 (uniprop_decode_value_run_length): New functions.
7154 (uniprop_decoder, uniprop_decoder_count): New variables.
7155 (uniprop_get_decoder, uniprop_encode_value_character)
7156 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
7157 New functions.
7158 (uniprop_encoder, uniprop_encoder_count): New variables.
7159 (uniprop_get_encoder, uniprop_table)
7160 (Funicode_property_table_internal, Fget_unicode_property_internal)
7161 (Fput_unicode_property_internal): New functions.
7162 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
7163 Sunicode_property_table_internal, Sget_unicode_property_internal,
5e617bc2 7164 and Sput_unicode_property_internal. Defvar_lisp
c805dec0
KH
7165 char-code-property-alist.
7166
640c8776 7167 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
c805dec0
KH
7168 Vunicode_category_table.
7169
640c8776 7170 * font.c (font_range): Adjust for the change of
c805dec0
KH
7171 Vunicode_category_table.
7172
76b397fb
DN
71732011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
7174
7175 * m/iris4d.h: Remove file, move contents ...
7176 * s/irix6-5.h: ... here.
7177
22b4128e
PE
71782011-07-06 Paul Eggert <eggert@cs.ucla.edu>
7179
7180 Remove unportable assumption about struct layout (Bug#8884).
8a5c77bb
PE
7181 * alloc.c (mark_buffer):
7182 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
7183 (clone_per_buffer_values): Don't assume that
22b4128e
PE
7184 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
7185 This isn't true in general, and it's particularly not true
7186 if Emacs is configured with --with-wide-int.
7187 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
7188 New macros, used in the buffer.c change.
7189
869795d6
JD
71902011-07-05 Jan Djärv <jan.h.d@swipnet.se>
7191
7192 * xsettings.c: Use both GConf and GSettings if both are available.
7193 (store_config_changed_event): Add comment.
7194 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
7195 (store_tool_bar_style_changed): New functions.
5e617bc2 7196 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
869795d6
JD
7197 (struct xsettings): Move font inside HAVE_XFT.
7198 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
640c8776 7199 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
869795d6 7200 Move inside HAVE_XFT.
640c8776 7201 (something_changed_gsettingsCB): Rename from something_changedCB.
869795d6
JD
7202 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
7203 also.
7204 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
5e617bc2 7205 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
640c8776 7206 (something_changed_gconfCB): Rename from something_changedCB.
869795d6
JD
7207 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
7208 (parse_settings): Move check for font inside HAVE_XFT.
7209 (read_settings, apply_xft_settings): Add comment.
7210 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
7211 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
7212 call store_font_name_changed.
7213 (xft_settings_event): Add comment.
7214 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
7215 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
7216 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
7217 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
7218 (xsettings_initialize): Call init_gsettings last.
640c8776
SM
7219 (xsettings_get_system_font, xsettings_get_system_normal_font):
7220 Add comment.
869795d6 7221
d8ed26bd
PE
72222011-07-05 Paul Eggert <eggert@cs.ucla.edu>
7223
7224 Random fixes. E.g., (random) never returned negative values.
7225 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
7226 subseconds part to the entropy, as that's a bit more random.
7227 Prefer signed to unsigned, since the signedness doesn't matter and
7228 in general we prefer signed. When given a limit, use a
7229 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
7230 latter isn't right if USE_2_TAGS_FOR_INTS.
7231 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
7232 not 0..VALMASK. Don't discard "excess" bits that random () returns.
7233
cabf1cac
SM
72342011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
7235
7236 * textprop.c (text_property_stickiness):
7237 Obey Vtext_property_default_nonsticky.
7238 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
7239 * w32fns.c (syms_of_w32fns):
7240 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
7241
6e9b2be9
PE
72422011-07-04 Paul Eggert <eggert@cs.ucla.edu>
7243
7244 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
7245 This is more efficient than Ffile_directory_p and avoids a minor race.
7246
90186c68
LMI
72472011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
7248
7c301272
LMI
7249 * buffer.c (Foverlay_put): Say what the return value is
7250 (bug#7835).
7251
c4f2d8d4
LMI
7252 * fileio.c (barf_or_query_if_file_exists): Check first if the file
7253 is a directory before asking whether to use the file name
7254 (bug#7564).
ad637907
LMI
7255 (barf_or_query_if_file_exists): Make the "File is a directory"
7256 error be more correct.
c4f2d8d4 7257
90186c68
LMI
7258 * fns.c (Frequire): Remove the mention of the .gz files, since
7259 that's installation-specific, but keep the mention of
7260 `get-load-suffixes'.
7261
da64016e
PE
72622011-07-04 Paul Eggert <eggert@cs.ucla.edu>
7263
7264 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
7265 Report string overflow if the output is too long.
7266
7d47b580
JB
72672011-07-04 Juanma Barranquero <lekktu@gmail.com>
7268
a555cb87
JB
7269 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
7270 (syms_of_gnutls): Remove duplicate DEFSYM for
7271 Qgnutls_bootprop_verify_hostname_error, an error for
7272 Qgnutls_bootprop_verify_error (which is no longer used).
7273
7d47b580
JB
7274 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
7275 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
7276 Also (re)move comments that are misplaced or no longer relevant.
7277
1e49bfab
LMI
72782011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
7279
7280 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
7281
1485f4c0
CY
72822011-07-03 Chong Yidong <cyd@stupidchicken.com>
7283
7284 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
7285 and background color parameters if they have been changed.
7286
a9ab721e
LMI
72872011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
7288
7289 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
7290
cf7cff57
PE
72912011-07-03 Paul Eggert <eggert@cs.ucla.edu>
7292
2e13213d
PE
7293 * xsettings.c (SYSTEM_FONT): Define only when used.
7294 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
7295
cf7cff57
PE
7296 * keymap.c (access_keymap_1): Now static.
7297
7a8e04f7
CY
72982011-07-02 Chong Yidong <cyd@stupidchicken.com>
7299
7300 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
7301 leave any prefix arg for the up event (Bug#1586).
7302
61352f62
LMI
73032011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
7304
69bb1ef7
LMI
7305 * lread.c (syms_of_lread): Mention single symbols defined by
7306 `defvar' or `defconst' (bug#7154).
7307
61352f62 7308 * fns.c (Frequire): Mention .el.gz files (bug#7314).
7b3747f9 7309 (Frequire): Mention get-load-suffixes.
61352f62 7310
28545e04
MR
73112011-07-02 Martin Rudalics <rudalics@gmx.at>
7312
7313 * window.h (window): Remove clone_number slot.
7314 * window.c (Fwindow_clone_number, Fset_window_clone_number):
7315 Remove.
7316 (make_parent_window, make_window, saved_window)
7317 (Fset_window_configuration, save_window_save): Don't deal with
7318 clone numbers.
7319 * buffer.c (Qclone_number): Remove declaration.
7320 (sort_overlays, overlay_strings): Don't deal with clone numbers.
7321
3349e122
SM
73222011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
7323
7324 Add multiple inheritance to keymaps.
7325 * keymap.c (Fmake_composed_keymap): New function.
7326 (Fset_keymap_parent): Simplify.
7327 (fix_submap_inheritance): Remove.
7328 (access_keymap_1): New function extracted from access_keymap to handle
7329 embedded parents and handle lists of maps.
7330 (access_keymap): Use it.
7331 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
7332 (Fcopy_keymap): Handle embedded parents.
7333 (Fcommand_remapping, define_as_prefix): Simplify.
7334 (Fkey_binding): Simplify.
7335 (syms_of_keymap): Move minibuffer-local-completion-map,
7336 minibuffer-local-filename-completion-map,
7337 minibuffer-local-must-match-map, and
7338 minibuffer-local-filename-must-match-map to Elisp.
7339 (syms_of_keymap): Defsubr make-composed-keymap.
7340 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
7341 (parse_menu_item): Trivial simplification.
7342
3279eb87
GM
73432011-07-01 Glenn Morris <rgm@gnu.org>
7344
7345 * Makefile.in (SETTINGS_LIBS): Fix typo.
7346
4550efdf
KI
73472011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny patch)
7348
7349 * coding.c (Fencode_coding_string): Record the last coding system
7350 used, as the function doc string says (bug#8738).
7351
0949d2b6
JD
73522011-07-01 Jan Djärv <jan.h.d@swipnet.se>
7353
7354 * xsettings.c (store_monospaced_changed): Take new font as arg and
7355 check for change against current_mono_font.
7356 (EMACS_TYPE_SETTINGS): Remove this and related defines.
7357 (emacs_settings_constructor, emacs_settings_get_property)
7358 (emacs_settings_set_property, emacs_settings_class_init)
7359 (emacs_settings_init, gsettings_obj): Remove.
7360 (something_changedCB): New function for HAVE_GSETTINGS.
7361 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
7362 with value as argument.
7363 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
7364 g_settings_new (Bug#8967). Do not create gsettings_obj.
9173deec 7365 Remove calls to g_settings_bind. Connect something_changedCB to
0949d2b6
JD
7366 "changed".
7367
7368 * xgselect.c: Add defined (HAVE_GSETTINGS).
7369 (xgselect_initialize): Ditto.
7370
7371 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
7372 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
7373 xg_select.
7374
bbc6b304
PE
73752011-07-01 Paul Eggert <eggert@cs.ucla.edu>
7376
7377 * eval.c (struct backtrace): Simplify and port the data structure.
7378 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
7379 signed bit field, as this assumption is not portable and it makes
7380 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
7381 "char debug_on_exit : 1" as this is not portable either; instead,
7382 use the portable "unsigned int debug_on_exit : 1". Remove unused
7383 member evalargs. Remove obsolete comments about cc bombing out.
7384
9851bfc5
JD
73852011-06-30 Jan Djärv <jan.h.d@swipnet.se>
7386
51bb811f 7387 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
9851bfc5
JD
7388 Let HAVE_GSETTINGS override HAVE_GCONF.
7389 (store_monospaced_changed): New function.
7390 (EMACS_SETTINGS): A new type derived from GObject to handle
7391 GSettings notifications.
7392 (emacs_settings_constructor, emacs_settings_get_property)
7393 (emacs_settings_set_property, emacs_settings_class_init):
7394 New functions.
7395 (gsettings_client, gsettings_obj): New variables.
7396 (GSETTINGS_SCHEMA): New define.
7397 (something_changedCB): Call store_monospaced_changed.
7398 (init_gsettings): New function.
7399 (xsettings_initialize): Call init_gsettings.
7400 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
7401 to NULL.
7402
640c8776 7403 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
9851bfc5
JD
7404 GCONF_CFLAGS/LIBS.
7405
5386012d
MR
74062011-06-29 Martin Rudalics <rudalics@gmx.at>
7407
7408 * window.c (resize_root_window, grow_mini_window)
7409 (shrink_mini_window): Rename Qresize_root_window to
7410 Qwindow_resize_root_window and Qresize_root_window_vertically to
7411 Qwindow_resize_root_window_vertically.
7412
f13e0b08
PE
74132011-06-28 Paul Eggert <eggert@cs.ucla.edu>
7414
7415 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
7416
94515237
JB
74172011-06-27 Juanma Barranquero <lekktu@gmail.com>
7418
7419 * makefile.w32-in: Redesign dependencies so they reflect more
7420 clearly which files are directly included by each source file,
7421 and not through other includes.
7422
e43b6e43
MR
74232011-06-27 Martin Rudalics <rudalics@gmx.at>
7424
7425 * buffer.c (Qclone_number): Declare static and DEFSYM it.
7426 (sort_overlays, overlay_strings): When an overlay's clone number
7427 matches the window's clone number process the overlay even if
7428 the overlay's window property doesn't match the current window.
7429
d68443dc
MR
7430 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
7431 (Fwindow_hchild): Rename to Fwindow_left_child.
7432 (Fwindow_next): Rename to Fwindow_next_sibling.
7433 (Fwindow_prev): Rename to Fwindow_prev_sibling.
d615d6d2
MR
7434 (resize_window_check): Rename to window_resize_check.
7435 (resize_window_apply): Rename to window_resize_apply.
7436 (Fresize_window_apply): Rename to Fwindow_resize_apply.
7437 (Fdelete_other_windows_internal, resize_frame_windows)
7438 (Fsplit_window_internal, Fdelete_window_internal)
7439 (grow_mini_window, shrink_mini_window)
7440 (Fresize_mini_window_internal): Fix callers accordingly.
d68443dc 7441
c7e73be5
JD
74422011-06-26 Jan Djärv <jan.h.d@swipnet.se>
7443
7444 * emacsgtkfixed.h: State that this is only used with Gtk+3.
7445 (emacs_fixed_set_min_size): Remove.
7446 (emacs_fixed_new): Take frame as argument.
7447
7448 * emacsgtkfixed.c: State that this is only used with Gtk+3.
7449 (_EmacsFixedPrivate): Remove minwidth/height.
7450 Add struct frame *f.
7451 (emacs_fixed_init): Initialize priv->f.
7452 (get_parent_class, emacs_fixed_set_min_size): Remove.
7453 (emacs_fixed_new): Set priv->f to argument.
7454 (emacs_fixed_get_preferred_width)
7455 (emacs_fixed_get_preferred_height): Use min_width/height from
7456 frames size_hint to set minimum and natural (Bug#8919).
7457 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
7458 and use min_width/height from frames size_hint to set
7459 min_width/height (Bug#8919).
7460
7461 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
9173deec
JB
7462 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
7463 Fix indentation.
c7e73be5 7464
cf99dcf8
EZ
74652011-06-26 Eli Zaretskii <eliz@gnu.org>
7466
7467 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
7468 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
7469 called at ZV.
7470
029529ac
CY
74712011-06-26 Chong Yidong <cyd@stupidchicken.com>
7472
7473 * process.c (wait_reading_process_output): Bypass select if
7474 waiting for a cell while ignoring keyboard input, and input is
7475 pending. Suggested by Jan Djärv (Bug#8869).
7476
7a7ef429
PE
74772011-06-25 Paul Eggert <eggert@cs.ucla.edu>
7478
7479 Use gnulib's dup2 module instead of rolling our own.
7480 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
7481
11fdef7d 74822011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
989b42d2
YM
7483
7484 * dispnew.c (scrolling_window): Before scrolling, turn off a
7485 mouse-highlight in the window being scrolled.
7486
cd3520a4
JB
74872011-06-24 Juanma Barranquero <lekktu@gmail.com>
7488
7489 Move DEFSYM to lisp.h and use everywhere.
7490
7491 * character.h (DEFSYM): Move declaration...
7492 * lisp.h (DEFSYM): ...here.
7493
7494 * gnutls.c:
7495 * minibuf.c:
7496 * w32menu.c:
7497 * w32proc.c:
7498 * w32select.c: Don't include character.h.
7499
7500 * alloc.c (syms_of_alloc):
7501 * buffer.c (syms_of_buffer):
7502 * bytecode.c (syms_of_bytecode):
7503 * callint.c (syms_of_callint):
7504 * casefiddle.c (syms_of_casefiddle):
7505 * casetab.c (init_casetab_once):
7506 * category.c (init_category_once, syms_of_category):
7507 * ccl.c (syms_of_ccl):
7508 * cmds.c (syms_of_cmds):
7509 * composite.c (syms_of_composite):
7510 * dbusbind.c (syms_of_dbusbind):
7511 * dired.c (syms_of_dired):
7512 * dispnew.c (syms_of_display):
7513 * doc.c (syms_of_doc):
7514 * editfns.c (syms_of_editfns):
7515 * emacs.c (syms_of_emacs):
7516 * eval.c (syms_of_eval):
7517 * fileio.c (syms_of_fileio):
7518 * fns.c (syms_of_fns):
7519 * frame.c (syms_of_frame):
7520 * fringe.c (syms_of_fringe):
7521 * insdel.c (syms_of_insdel):
7522 * keymap.c (syms_of_keymap):
7523 * lread.c (init_obarray, syms_of_lread):
7524 * macros.c (syms_of_macros):
7525 * msdos.c (syms_of_msdos):
7526 * print.c (syms_of_print):
7527 * process.c (syms_of_process):
7528 * search.c (syms_of_search):
7529 * sound.c (syms_of_sound):
7530 * syntax.c (init_syntax_once, syms_of_syntax):
7531 * terminal.c (syms_of_terminal):
7532 * textprop.c (syms_of_textprop):
7533 * undo.c (syms_of_undo):
7534 * w32.c (globals_of_w32):
7535 * window.c (syms_of_window):
7536 * xdisp.c (syms_of_xdisp):
7537 * xfaces.c (syms_of_xfaces):
7538 * xfns.c (syms_of_xfns):
7539 * xmenu.c (syms_of_xmenu):
7540 * xsettings.c (syms_of_xsettings):
7541 * xterm.c (syms_of_xterm): Use DEFSYM.
7542
4228cf16
TZ
75432011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
7544
cd3520a4 7545 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
4228cf16 7546
7fcccf1e
PE
75472011-06-23 Paul Eggert <eggert@cs.ucla.edu>
7548
7efb4e0e
PE
7549 Integer and buffer overflow fixes (Bug#8873).
7550
ff5844ad
PE
7551 * print.c (printchar, strout): Check for string overflow.
7552 (PRINTPREPARE, printchar, strout):
7553 Don't set size unless allocation succeeds.
7554
90532f02
PE
7555 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
7556 for sizes. Check for string overflow more accurately.
7557 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
7558
6d84508d
PE
7559 * macros.c: Integer and buffer overflow fixes.
7560 * keyboard.h (struct keyboard.kbd_macro_bufsize):
7561 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
7562 Use ptrdiff_t, not int, for sizes.
7563 Don't increment bufsize until after realloc succeeds.
7564 Check for size-calculation overflow.
7565 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
7566
437b2cb4
PE
7567 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
7568
8b9ac8b4
PE
7569 * lread.c: Integer overflow fixes.
7570 (read_integer): Radix is now EMACS_INT, not int,
7571 to improve quality of diagnostics for out-of-range radices.
7572 Calculate buffer size correctly for out-of-range radices.
7573 (read1): Check for integer overflow in radices, and in
7574 read-circle numbers.
82cb60d3
PE
7575 (read_escape): Avoid int overflow.
7576 (Fload, openp, read_buffer_size, read1)
7577 (substitute_object_recurse, read_vector, read_list, map_obarray):
7578 Use ptrdiff_t, not int, for sizes.
7579 (read1): Use EMACS_INT, not int, for sizes.
20270765 7580 Check for size overflow.
8b9ac8b4 7581
7fcccf1e
PE
7582 * image.c (cache_image): Check for size arithmetic overflow.
7583
bfbbd7e7
PE
7584 * lread.c: Integer overflow issues.
7585 (saved_doc_string_size, saved_doc_string_length)
7586 (prev_saved_doc_string_size, prev_saved_doc_string_length):
7587 Now ptrdiff_t, not int.
7588 (read1): Don't assume doc string length fits in int. Check for
7589 out-of-range doc string lengths.
7590 (read_list): Don't assume file position fits in int.
39019e54 7591 (read_escape): Check for hex character overflow.
bfbbd7e7 7592
4e323265
LL
75932011-06-22 Leo Liu <sdl.web@gmail.com>
7594
7595 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
7596 Move to minibuffer.el.
7597
85fece3e
PE
75982011-06-22 Paul Eggert <eggert@cs.ucla.edu>
7599
20b84ce9 7600 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
85fece3e
PE
7601 The following patches are for when GLYPH_DEBUG && !XASSERT.
7602 * dispextern.h (trace_redisplay_p, dump_glyph_string):
7603 * dispnew.c (flush_stdout):
7604 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
7605 Mark as externally visible.
7606 * dispnew.c (check_window_matrix_pointers): Now static.
7607 * dispnew.c (window_to_frame_vpos):
7608 * xfns.c (unwind_create_frame):
7609 * xterm.c (x_check_font): Remove unused local.
7610 * scroll.c (CHECK_BOUNDS):
7611 * xfaces.c (cache_fache): Rename local to avoid shadowing.
7612 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
7613 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
7614 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
7615 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
7616 Now static.
7617 (debug_method_add): Use va_list and vsprintf rather than relying
7618 on undefined behavior with wrong number of arguments.
7619 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
7620 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
7621 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
7622 since we're not interested in debugging glyphs with old libraries.
7623 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
7624 GCC 4.6.0's static checking.
7625
0766b489
PE
76262011-06-22 Paul Eggert <eggert@cs.ucla.edu>
7627
31fd4b32
PE
7628 Integer overflow and signedness fixes (Bug#8873).
7629 A few related buffer overrun fixes, too.
7630
b79e8648
PE
7631 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
7632
0766b489
PE
7633 * dispextern.h (struct face.stipple):
7634 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
7635 (x_bitmap_mask, x_allocate_bitmap_record)
7636 (x_create_bitmap_from_data, x_create_bitmap_from_file)
7637 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
7638 (x_create_bitmap_from_xpm_data):
7639 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
7640 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
7641 (.bitmaps_last):
7642 * xfaces.c (load_pixmap):
7643 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
7644 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
7645 (.bitmaps_last, struct x_output.icon_bitmap):
7646 Use ptrdiff_t, not int, for bitmap indexes.
7647 (x_allocate_bitmap_record): Check for size overflow.
7648 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
7649
b081724f
PE
7650 Use ptrdiff_t, not int, for overlay counts.
7651 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
7652 * editfns.c (overlays_around, get_pos_property):
7653 * textprop.c (get_char_property_and_overlay):
7654 * xdisp.c (next_overlay_change, note_mouse_highlight):
7655 * xfaces.c (face_at_buffer_position):
21514da7
PE
7656 * buffer.c (OVERLAY_COUNT_MAX): New macro.
7657 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
7658 (Fnext_overlay_change, Fprevious_overlay_change)
7659 (mouse_face_overlay_overlaps, Foverlays_in):
b081724f 7660 Use ptrdiff_t, not int, for sizes.
21514da7 7661 (overlays_at, overlays_in): Check for size-calculation overflow.
b081724f 7662
3de73e5e
PE
7663 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
7664
2606c57b
PE
7665 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
7666 (x_session_initialize): Do not assume string length fits in int.
7667
aaafe47a
PE
7668 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
7669 This is unlikely, but can occur if DPI is outlandish.
7670
2674ddc8 7671 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
3a5077c5
PE
7672 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
7673
28154962
PE
7674 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
7675 * xrdb.c (magic_file_p, search_magic_path):
7676 Omit last arg SUFFIX; it was always 0. All callers changed.
7677 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
7678
7de51af5
PE
7679 * xfont.c (xfont_match): Avoid need for strlen.
7680
25ed6cc3
PE
7681 * xfns.c: Don't assume strlen fits in int.
7682 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
7683
4eab31dd
PE
7684 * xdisp.c (message_log_check_duplicate): Return intmax_t,
7685 not unsigned long, as we prefer signed integers. All callers changed.
7686 Detect integer overflow in repeat count.
7687 (message_dolog): Don't assume print length fits in 39 bytes.
df1f27af 7688 (display_mode_element): Don't assume strlen fits in int.
4eab31dd 7689
171e2a58
PE
7690 * termcap.c: Don't assume sizes fit in int and never overflow.
7691 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
7692 (gobble_line): Check for size-calculation overflow.
7693
ad39faca 7694 * minibuf.c (Fread_buffer):
6e5bb2dc 7695 * lread.c (intern, intern_c_string):
74ca2eb3
PE
7696 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
7697 Don't assume string length fits in int.
7698
52c61c22 7699 * keyboard.c (parse_tool_bar_item):
9bda3520
PE
7700 * gtkutil.c (style_changed_cb): Avoid need for strlen.
7701
b5b8c9e5
PE
7702 * font.c: Don't assume string length fits in int.
7703 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
7704 Use ptrdiff_t, not int.
ccd6111c
PE
7705 (font_intern_prop): Don't assume string length fits in int.
7706 Don't assume integer property fits in fixnum.
7707 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
b5b8c9e5 7708
882f0d81 7709 * filelock.c: Fix some buffer overrun and integer overflow issues.
51cab52b 7710 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
882f0d81
PE
7711 Reformulate so as not to need the command string.
7712 Invoke gzip -cd rather than gunzip, as it's more portable.
7713 (lock_info_type, lock_file_1, lock_file):
7714 Don't assume pid_t and time_t fit in unsigned long.
7715 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
7716 (current_lock_owner): Prefer signed type for sizes.
7717 Use memcpy, not strncpy, where memcpy is what is really wanted.
7718 Don't assume (via atoi) that time_t and pid_t fit in int.
7719 Check for time_t and/or pid_t out of range, e.g., via a network share.
7720 Don't alloca where an auto var works fine.
7721
93f4cf88
PE
7722 * fileio.c: Fix some integer overflow issues.
7723 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
7724 Don't assume string length fits in int.
7725 (directory_file_name): Don't assume string length fits in long.
7726 (make_temp_name): Don't assume pid fits in int, or that its print
7727 length is less than 20.
7728
f3e92b69
PE
7729 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
7730
1bfdaf10
PE
7731 * coding.c (make_subsidiaries): Don't assume string length fits in int.
7732
35016e9a
PE
7733 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
7734
3d1e65a1
PE
7735 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
7736 We prefer signed integers, even for size calculations.
7737
0b963a93
PE
7738 * emacs.c: Don't assume string length fits in 'int'.
7739 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
7740 (main): Don't invoke strlen when not needed.
7741
573f4b54
PE
7742 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
7743 (XD_DEBUG_MESSAGE): Don't waste a byte.
7744
989f33ba
PE
7745 * callproc.c (getenv_internal_1, getenv_internal)
7746 (Fgetenv_internal):
965d34eb
PE
7747 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
7748
e4d29b33
PE
7749 * lread.c (invalid_syntax): Omit length argument.
7750 All uses changed. This doesn't fix a bug, but it simplifies the
7751 code away from its former Hollerith-constant appearance, and it's
7752 one less 'int' to worry about when looking at integer-overflow issues.
51cab52b 7753 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
e4d29b33 7754
eb49b136
PE
7755 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
7756 This didn't break anything, but it didn't help either.
7757 It's confusing to put a bogus integer in a place where the actual
7758 value does not matter.
9f62aeb1 7759 (LIST_END_P): Remove unused macro and its bogus comment.
cbeff735 7760 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
eb49b136 7761
15375a22
PE
7762 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
7763 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
7764 implementation.
b61cc01c
PE
7765 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
7766 We prefer signed types, and the value cannot exceed the EMACS_INT
7767 range anyway (because otherwise the length would not be representable).
9a8e8d9b
PE
7768 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
7769 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
7770 This avoids a GCC warning when WIDE_EMACS_INT.
15375a22 7771
53b2623d
PE
7772 * indent.c (sane_tab_width): New function.
7773 (current_column, scan_for_column, Findent_to, position_indentation)
7774 (compute_motion): Use it. This is just for clarity.
8fcaf9cc 7775 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
53b2623d 7776
51cab52b 7777 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
45aebb64 7778
f2ed8a70
PE
7779 * lisp.h (lint_assume): New macro.
7780 * composite.c (composition_gstring_put_cache):
7781 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
7782
abe80cc6
PE
7783 * editfns.c, insdel.c:
7784 Omit unnecessary forward decls, to simplify future changes.
a9e860e1 7785
b02c740e
PE
7786 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
7787
ebc96716
PE
7788 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
7789
b4e50fa0 7790 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
f03dc6ef 7791 Use much-faster test for byte-length change.
311d5d7c 7792 Don't assume string byte-length fits in 'int'.
a4cf38e4 7793 Check that character arg fits in 'int'.
85461888 7794 (mapcar1): Declare byte as byte, for clarity.
b4e50fa0 7795
c0c1ee9f
PE
7796 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
7797
a498d7f4
PE
7798 * fns.c (concat): Catch string overflow earlier.
7799 Do not rely on integer wraparound.
7800
51cab52b
PE
7801 * dispextern.h (struct it.overlay_strings_charpos)
7802 (struct it.selective): Now EMACS_INT, not int.
87830974
PE
7803 * xdisp.c (forward_to_next_line_start)
7804 (back_to_previous_visible_line_start)
7805 (reseat_at_next_visible_line_start, next_element_from_buffer):
7806 Don't arbitrarily truncate the value of 'selective' to int.
7807
76031fad
PE
7808 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
7809
5eb55db9
PE
7810 * composite.c: Don't truncate sizes to 'int'.
7811 (composition_gstring_p, composition_reseat_it)
7812 (composition_adjust_point): Use EMACS_INT, not int.
7d100a81
PE
7813 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
7814 not EMACS_UINT, for indexes.
5eb55db9 7815
0703a717
PE
7816 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
7817
d6202519
PE
7818 * buffer.c: Include <verify.h>.
7819 (struct sortvec.priority, struct sortstr.priority):
8961a454 7820 Now EMACS_INT, not int.
c20998a7 7821 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
67c36fce
PE
7822 (struct sortstr.size, record_overlay_string)
7823 (struct sortstrlist.size, struct sortlist.used):
7824 Don't truncate size to int.
7825 (record_overlay_string): Check for size-calculation overflow.
d6202519 7826 (init_buffer_once): Check at compile-time, not run-time.
fadf4e30 7827
d5a19415
JM
78282011-06-22 Jim Meyering <meyering@redhat.com>
7829
029529ac 7830 Don't leak an XBM-image-sized buffer
d5a19415
JM
7831 * image.c (xbm_load): Free the image buffer after using it.
7832
a9041e6c
PE
78332011-06-21 Paul Eggert <eggert@cs.ucla.edu>
7834
7835 Port to Sun C.
7836 * composite.c (find_automatic_composition): Omit needless 'return 0;'
7837 that Sun C diagnosed.
7838 * fns.c (secure_hash): Fix pointer signedness issue.
7839 * intervals.c (static_offset_intervals): New function.
7840 (offset_intervals): Use it.
7841
7f3f739f
LL
78422011-06-21 Leo Liu <sdl.web@gmail.com>
7843
7844 * deps.mk (fns.o):
7845 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
7846 sha512.h.
7847
7848 * fns.c (secure_hash): Rename from crypto_hash_function and change
7849 the first arg to accept symbols.
5b66d427 7850 (Fsecure_hash): New primitive.
7f3f739f
LL
7851 (syms_of_fns): New symbols.
7852
76147d94
DD
78532011-06-20 Deniz Dogan <deniz@dogan.se>
7854
7855 * process.c (Fset_process_buffer): Clarify return value in
7856 docstring.
7857
7d7d0045
CY
78582011-06-18 Chong Yidong <cyd@stupidchicken.com>
7859
7860 * dispnew.c (add_window_display_history): Use BVAR.
7861
7862 * xdisp.c (debug_method_add): Use BVAR.
7863 (check_window_end, dump_glyph_matrix, dump_glyph)
7864 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
7865
7866 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
7867 Likewise.
7868
7869 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
7870 check till after the cache is created in init_frame_faces.
7871
ff2bc410
SM
78722011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
7873
7874 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
7875
28177add
PE
78762011-06-16 Paul Eggert <eggert@cs.ucla.edu>
7877
dd3482fe
PE
7878 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
7879 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
7880 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
7881
393d71f3 7882 Improve buffer-overflow checking (Bug#8873).
1c8e352f
PE
7883 * fileio.c (Finsert_file_contents):
7884 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
7885 Remove the old (too-loose) buffer overflow checks.
7886 They weren't needed, since make_gap checks for buffer overflow.
7887 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
7888 The old code merely checked for Emacs fixnum overflow, and relied
7889 on undefined (wraparound) behavior. The new code avoids undefined
7890 behavior, and also checks for ptrdiff_t and/or size_t overflow.
7891
2e6813b0 7892 * editfns.c (Finsert_char): Don't dump core with very negative counts.
21d890a4
PE
7893 Tune. Don't use wider integers than needed. Don't use alloca.
7894 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
2e6813b0 7895
599a9e4f
PE
7896 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
7897
99561444
PE
7898 * insdel.c, lisp.h (buffer_overflow): New function.
7899 (insert_from_buffer_1, replace_range, replace_range_2):
7900 * insdel.c (make_gap_larger):
7901 * editfns.c (Finsert_char):
7902 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
7903
28177add
PE
7904 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
7905
e69dafad
PE
79062011-06-15 Paul Eggert <eggert@cs.ucla.edu>
7907
4baa020d 7908 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
ff672d2c 7909
b1c46f02
PE
7910 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
7911 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
7912
e69dafad
PE
7913 * fileio.c: Don't assume EMACS_INT fits in off_t.
7914 (emacs_lseek): New static function.
7915 (Finsert_file_contents, Fwrite_region): Use it.
7916 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
7917
566684ea
PE
7918 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
7919
e6966cd6
PE
7920 * fns.c: Don't overflow int when computing a list length.
7921 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
7922 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
7923 truncation on 64-bit hosts. Check for QUIT every
7924 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
7925 faster and is responsive enough.
7926 (Flength): Report an error instead of overflowing an integer.
7927 (Fsafe_length): Return a float if the value is not representable
7928 as a fixnum. This shouldn't happen except in contrived situations.
6346d301 7929 (Fnthcdr, Fsort): Don't assume list length fits in int.
de41a810 7930 (Fcopy_sequence): Don't assume vector length fits in int.
00c604f2 7931
dd0b0efb
PE
7932 * alloc.c: Check that resized vectors' lengths fit in fixnums.
7933 (header_size, word_size): New constants.
7934 (allocate_vectorlike): Don't check size overflow here.
7935 (allocate_vector): Check it here instead, since this is the only
7936 caller of allocate_vectorlike that could cause overflow.
7937 Check that the new vector's length is representable as a fixnum.
7938
86fe5cfe
PE
7939 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
7940 The previous code was bogus. For example, next_almost_prime (32)
7941 returned 39, which is undesirable as it is a multiple of 3; and
7942 next_almost_prime (24) returned 25, which is a multiple of 5 so
7943 why was the code bothering to check for multiples of 7?
7944
80e88859
PE
7945 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
7946
4a2f0ad6
PE
7947 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
7948
f66c7cf8
PE
7949 Variadic C functions now count arguments with ptrdiff_t.
7950 This partly undoes my 2011-03-30 change, which replaced int with size_t.
7951 Back then I didn't know that the Emacs coding style prefers signed int.
7952 Also, in the meantime I found a few more instances where arguments
4a2f0ad6
PE
7953 were being counted with int, which may truncate counts on 64-bit
7954 machines, or EMACS_INT, which may be unnecessarily wide.
f66c7cf8
PE
7955 * lisp.h (struct Lisp_Subr.function.aMANY)
7956 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
7957 Arg counts are now ptrdiff_t, not size_t.
7958 All variadic functions and their callers changed accordingly.
7959 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
7960 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
7961 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
7962 * callint.c (Fcall_interactively): Check arg count for overflow,
7963 to avoid potential buffer overrun. Use signed char, not 'int',
7964 for 'varies' array, so that we needn't bother to check its size
7965 calculation for overflow.
7966 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
7967 * eval.c (apply_lambda):
7968 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
7969 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
7970 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
7971
a1759b76
PE
7972 * callint.c (Fcall_interactively): Don't use index var as event count.
7973
d96be9fc
PE
7974 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
7975 * mem-limits.h (SIZE): Remove; no longer used.
7976
a690a978 7977 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
5efd304b 7978
578c21e6
PE
7979 Remove unnecessary casts.
7980 * xterm.c (x_term_init):
7981 * xfns.c (x_set_border_pixel):
7982 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
7983 These aren't needed now that we assume ANSI C.
7984
96f53c6c
PE
7985 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
7986 It's more likely to cause problems (due to unsigned overflow)
7987 than to cure them.
7988
83c77d31
PE
7989 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
7990
ee2079f1
PE
7991 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
7992
6da65536
PE
7993 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
7994
7147c4a4
PE
7995 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
7996
193e32d9
PE
7997 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
7998
e5533da6
PE
7999 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
8000
9910e595
PE
8001 GLYPH_CODE_FACE returns EMACS_INT, not int.
8002 * dispextern.h (merge_faces):
8003 * xfaces.c (merge_faces):
01103c44
PE
8004 * xdisp.c (get_next_display_element, next_element_from_display_vector):
8005 Don't assume EMACS_INT fits in int.
9910e595 8006
2638320e
PE
8007 * character.h (CHAR_VALID_P): Remove unused parameter.
8008 * fontset.c, lisp.h, xdisp.c: All uses changed.
8009
045eb8d9
PE
8010 * editfns.c (Ftranslate_region_internal): Omit redundant test.
8011
c1f134b5
PE
8012 * fns.c (concat): Minor tuning based on overflow analysis.
8013 This doesn't fix any bugs. Use int to hold character, instead
8014 of constantly refetching from Emacs object. Use XFASTINT, not
8015 XINT, for value known to be a character. Don't bother comparing
8016 a single byte to 0400, as it's always less.
8017
395fcb93 8018 * floatfns.c (Fexpt):
327eeec8
PE
8019 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
8020
abbd3d23
PE
8021 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
8022 for characters.
8023
684a03ef
PE
8024 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
8025
0fed43f3
PE
8026 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
8027 Without this fix, on a 64-bit host (aset S 0 4294967386) would
8028 incorrectly succeed when S was a string, because 4294967386 was
8029 truncated before it was used.
8030
8fd02eb7
PE
8031 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
8032 Otherwise, an out-of-range integer could cause undefined behavior
8033 on a 64-bit host.
8034
f8c86b69
PE
8035 * composite.c: Use int, not EMACS_INT, for characters.
8036 (fill_gstring_body, composition_compute_stop_pos): Use int, not
8037 EMACS_INT, for values that are known to be in character range.
8038 This doesn't fix any bugs but is the usual style inside Emacs and
8039 may generate better code on 32-bit machines.
8040
34206dd2
PE
8041 Make sure a 64-bit char is never passed to ENCODE_CHAR.
8042 This is for reasons similar to the recent CHAR_STRING fix.
8043 * charset.c (Fencode_char): Check that character arg is actually
8044 a character. Pass an int to ENCODE_CHAR.
8045 * charset.h (ENCODE_CHAR): Verify that the character argument is no
8046 wider than 'int', as a compile-time check to prevent future regressions
8047 in this area.
8048
c5958d4c 8049 * character.c (char_string): Remove unnecessary casts.
13bdea59
PE
8050
8051 Make sure a 64-bit char is never passed to CHAR_STRING.
8052 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
8053 by silently ignoring the top 32 bits, allowing some values
8054 that were far too large to be valid characters.
8055 * character.h: Include <verify.h>.
8056 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
8057 arguments are no wider than unsigned, as a compile-time check
8058 to prevent future regressions in this area.
8059 * data.c (Faset):
01103c44 8060 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
13bdea59
PE
8061 (Fsubst_char_in_region):
8062 * fns.c (concat):
8063 * xdisp.c (decode_mode_spec_coding):
8064 Adjust to CHAR_STRING's new requirement.
8065 * editfns.c (Finsert_char, Fsubst_char_in_region):
8066 * fns.c (concat): Check that character args are actually
8067 characters. Without this test, these functions did the wrong
8068 thing with wildly out-of-range values on 64-bit hosts.
8069
d37ca623
PE
8070 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
8071 These casts should not be needed on 32-bit hosts, either.
8072 * keyboard.c (read_char):
8073 * lread.c (Fload): Remove casts to unsigned.
8074
ea204efb
PE
8075 * lisp.h (UNSIGNED_CMP): New macro.
8076 This fixes comparison bugs on 64-bit hosts.
8077 (ASCII_CHAR_P): Use it.
8078 * casefiddle.c (casify_object):
01103c44 8079 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
ea204efb
PE
8080 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
8081 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
8082 * dispextern.h (FACE_FROM_ID):
8083 * keyboard.c (read_char): Use UNSIGNED_CMP.
8084
41cb286c
PE
8085 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
8086 not to EMACS_INT, to avoid GCC warning.
8087
4a1b9832
PE
8088 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
8089
55daad71
PE
8090 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
8091 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
8092 isn't needed on 32-bit machines.
8f95c75c 8093
01103c44
PE
8094 * buffer.c (Fgenerate_new_buffer_name):
8095 Use EMACS_INT for count, not int.
0ceccced 8096 (advance_to_char_boundary): Return EMACS_INT, not int.
e762cafe
PE
8097
8098 * data.c (Qcompiled_function): Now static.
8099
c6f072e7
PE
8100 * window.c (window_body_lines): Now static.
8101
20ce5912
PE
8102 * image.c (gif_load): Rename local to avoid shadowing.
8103
9c4c5f81
PE
8104 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
8105 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
8106 * alloc.c (make_save_value): Integer argument is now of type
8107 ptrdiff_t, not int.
8108 (mark_object): Use ptrdiff_t, not int.
8109 * lisp.h (pD): New macro.
8110 * print.c (print_object): Use it.
8111
c0c5c8ae
PE
8112 * alloc.c: Use EMACS_INT, not int, to count objects.
8113 (total_conses, total_markers, total_symbols, total_vector_size)
8114 (total_free_conses, total_free_markers, total_free_symbols)
01103c44
PE
8115 (total_free_floats, total_floats, total_free_intervals)
8116 (total_intervals, total_strings, total_free_strings):
c0c5c8ae
PE
8117 Now EMACS_INT, not int. All uses changed.
8118 (Fgarbage_collect): Compute overall total using a double, so that
8119 integer overflow is less likely to be a problem. Check for overflow
8120 when converting back to an integer.
5a25e253
PE
8121 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
8122 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
8123 These were 'int' variables that could overflow on 64-bit hosts;
8124 they were never used, so remove them instead of repairing them.
211a0b2a 8125 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
6349ae4d
PE
8126 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
8127 Previously, this ceilinged at INT_MAX, but that doesn't work on
8128 64-bit machines.
e46bb31a 8129 (allocate_pseudovector): Don't use EMACS_INT when int would do.
c0c5c8ae 8130
c78baabf 8131 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
86f61a15 8132 (allocate_vectorlike): Check for ptrdiff_t overflow.
b6439961
PE
8133 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
8134 when a (possibly-narrower) signed value would do just as well.
8135 We prefer using signed arithmetic, to avoid comparison confusion.
c78baabf 8136
c9d624c6
PE
8137 * alloc.c: Catch some string size overflows that we were missing.
8138 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
8139 for convenience in STRING_BYTES_MAX.
8140 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
8141 The definition here is exact; the one in lisp.h was approximate.
8142 (allocate_string_data): Check for string overflow. This catches
8143 some instances we weren't catching before. Also, it catches
8144 size_t overflow on (unusual) hosts where SIZE_MAX <= min
8145 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
8146 and ptrdiff_t and EMACS_INT are both 64 bits.
c78baabf 8147
c9d624c6
PE
8148 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
8149 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
640c8776 8150 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
c9d624c6 8151
353032ce
PE
8152 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
8153
2bccce07
PE
8154 * alloc.c (Fmake_string): Check for out-of-range init.
8155
0ac30604
SM
81562011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
8157
8158 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
8159
c195f2de
JD
81602011-06-14 Jan Djärv <jan.h.d@swipnet.se>
8161
8162 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
8163 xg_get_default_scrollbar_width.
8164
8165 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
8166 (int_gtk_range_get_value): Move to the scroll bar part of the file.
8167 (style_changed_cb): Call update_theme_scrollbar_width and call
8168 x_set_scroll_bar_default_width and xg_frame_set_char_size for
8169 all frames (Bug#8505).
8170 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
8171 Call gtk_window_set_resizable if HAVE_GTK3.
8172 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
8173 and height if HAVE_GTK3 (Bug#8505).
8174 (scroll_bar_width_for_theme): New variable.
8175 (update_theme_scrollbar_width): New function.
8176 (xg_get_default_scrollbar_width): Move code to
8177 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
8178 (xg_initialize): Call update_theme_scrollbar_width.
8179
8180 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
8181
8182 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
8183
e10ac9f1
MR
81842011-06-12 Martin Rudalics <rudalics@gmx.at>
8185
8186 * frame.c (make_frame): Call other_buffer_safely instead of
8187 other_buffer.
8188
8189 * window.c (temp_output_buffer_show): Call display_buffer with
8190 second argument Vtemp_buffer_show_specifiers and reset latter
8191 immediately after the call.
8192 (Vtemp_buffer_show_specifiers): New variable.
8193 (auto_window_vscroll_p, next_screen_context_lines)
8194 (Vscroll_preserve_screen_position): Remove leading asterisks from
8195 doc-strings.
8196
2d3c217e 81972011-06-12 Paul Eggert <eggert@cs.ucla.edu>
4475bec4 8198
7b7f97e8 8199 Fix minor problems found by GCC 4.6.0 static checking.
4475bec4
PE
8200 * buffer.c (Qclone_number): Remove for now, as it's unused.
8201 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
8202 (record_buffer): Remove unused local.
8203 * frame.c (other_visible_frames, frame_buffer_list): Now static.
8204 (set_frame_buffer_list): Remove; unused.
8205 * frame.h (other_visible_frames): Remove decl.
8206 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
8207 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
8208 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
8209 if HAVE_GPM.
8210 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
8211 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
8212 Define only if HAVE_GPM.
8213 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
8214 (update_hints_inhibit): Remove; never set. All uses removed.
8215 * widgetprv.h (emacsFrameClassRec): Remove decl.
8216 * window.c (delete_deletable_window): Now returns void, since it
8217 wasn't returning anything.
8218 (compare_window_configurations): Remove unused locals.
8219 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
8220 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
4475bec4
PE
8221 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
8222 the same widths as pointers. This follows up on the 2011-05-06 patch.
8223 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
8224 * xterm.h: Likewise.
8225 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
8226
1384b89e
JB
82272011-06-12 Juanma Barranquero <lekktu@gmail.com>
8228
8229 * makefile.w32-in: Update dependencies.
8230 (LISP_H): Add lib/intprops.h.
8231
1100a63c
CY
82322011-06-11 Chong Yidong <cyd@stupidchicken.com>
8233
8234 * image.c (gif_load): Add animation frame delay to the metadata.
8235 (syms_of_image): Use DEFSYM. New symbol `delay'.
8236
6198ccd0
MR
82372011-06-11 Martin Rudalics <rudalics@gmx.at>
8238
8239 * window.c (delete_deletable_window): Re-add.
8240 (Fset_window_configuration): Rewrite to handle dead buffers and
8241 consequently deletable windows.
8242 (window_tree, Fwindow_tree): Remove. Supply functionality in
8243 window.el.
8244 (compare_window_configurations): Simplify code.
8245
b6e3633c
AS
82462011-06-11 Andreas Schwab <schwab@linux-m68k.org>
8247
1ab0dee5
AS
8248 * image.c (imagemagick_load_image): Fix type mismatch.
8249 (Fimagemagick_types): Likewise.
8250
b6e3633c
AS
8251 * window.h (replace_buffer_in_windows): Declare.
8252
9397e56f
MR
82532011-06-11 Martin Rudalics <rudalics@gmx.at>
8254
8255 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
8256 Qclone_number. Remove external declaration of Qdelete_window.
8257 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
8258 code.
640c8776
SM
8259 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
8260 Run Qbuffer_list_update_hook if allowed.
9397e56f
MR
8261 (Fother_buffer): Rewrite doc-string. Major rewrite for new
8262 buffer list implementation.
8263 (other_buffer_safely): New function.
8264 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
8265 calls to replace_buffer_in_windows and
8266 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
8267 if allowed.
8268 (record_buffer): Inhibit quitting and rewrite using quittable
8269 functions. Run Qbuffer_list_update_hook if allowed.
8270 (Frecord_buffer, Funrecord_buffer): New functions.
640c8776
SM
8271 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
8272 Move switch-to-buffer to window.el.
9397e56f
MR
8273 (bury-buffer): Move to window.el.
8274 (Vbuffer_list_update_hook): New variable.
8275
8276 * lisp.h (other_buffer_safely): Add prototype in buffer.c
8277 section.
8278
8279 * window.h (resize_frame_windows): Move up in code.
8280 (Fwindow_frame): Remove EXFUN.
8281 (replace_buffer_in_all_windows): Remove prototype.
8282 (replace_buffer_in_windows_safely): Add prototype.
8283
8284 * window.c: Declare Qdelete_window static again. Move down
8285 declaration of select_count.
8286 (Fnext_window, Fprevious_window): Rewrite doc-strings.
8287 (Fother_window): Move to window.el.
8288 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
8289 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
8290 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
8291 window.el.
8292 (replace_buffer_in_windows): Implement by calling
8293 Qreplace_buffer_in_windows.
8294 (replace_buffer_in_all_windows): Remove with some functionality
8295 moved into replace_buffer_in_windows_safely.
8296 (replace_buffer_in_windows_safely): New function.
8297 (select_window_norecord, select_frame_norecord): Move in front
8298 of run_window_configuration_change_hook. Remove now obsolete
8299 declarations.
640c8776
SM
8300 (Fset_window_buffer): Rewrite doc-string.
8301 Call Qrecord_window_buffer.
9397e56f
MR
8302 (keys_of_window): Move binding for other-window to window.el.
8303
b50691aa
CY
83042011-06-11 Chong Yidong <cyd@stupidchicken.com>
8305
8306 * dispextern.h (struct image): Replace data member, whose int_val
8307 and ptr_val fields were not used by anything, with a single
8308 lisp_val object.
8309
8310 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
8311 (gif_clear_image, gif_load, imagemagick_load_image)
8312 (gs_clear_image, gs_load): Callers changed.
8313
3f754b86
PE
83142011-06-10 Paul Eggert <eggert@cs.ucla.edu>
8315
cca69397
PE
8316 * buffer.h: Include <time.h>, for time_t.
8317 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
8318
109e28d0
PE
8319 Fix minor problems found by static checking.
8320
60737f02
PE
8321 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
8322
4b66faf3
PE
8323 Make identifiers static if they are not used in other modules.
8324 * data.c (Qcompiled_function, Qframe, Qvector):
8325 * image.c (QimageMagick, Qsvg):
8326 * minibuf.c (Qmetadata):
8327 * window.c (resize_window_check, resize_root_window): Now static.
8328 * window.h (resize_window_check, resize_root_window): Remove decls.
8329
109e28d0
PE
8330 * window.c (window_deletion_count, delete_deletable_window):
8331 Remove; unused.
46a4ce9e
PE
8332 (window_body_lines): Now static.
8333 (Fdelete_other_windows_internal): Mark vars as initialized.
8334 Make sure 'resize_failed' is initialized.
8335 (run_window_configuration_change_hook): Rename local to avoid shadowing.
8336 (resize_window_apply): Remove unused local.
8337 * window.h (delete_deletable_window): Remove decl.
8338
109e28d0 8339 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
33290528
PE
8340 (imagemagick_load_image): Fix pointer signedness problem by changing
8341 last arg from unsigned char * to char *. All uses changed.
8342 Also, fix a local for similar reasons.
8343 Remove unused locals. Remove locals to avoid shadowing.
8344 (fn_rsvg_handle_free): Remove; unused.
8345 (svg_load, svg_load_image): Fix pointer signedness problem.
f7e13da3 8346 (imagemagick_load_image): Don't use garbage pointer image_wand.
33290528 8347
3f754b86
PE
8348 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
8349
2547adb1
CY
83502011-06-10 Chong Yidong <cyd@stupidchicken.com>
8351
8352 * image.c (gif_load): Fix omitted cast error introduced by
8353 2011-06-06 change.
8354
2c8e37d4
MR
83552011-06-10 Martin Rudalics <rudalics@gmx.at>
8356
8357 * window.h (resize_proportionally, orig_total_lines)
8358 (orig_top_line): Remove from window structure.
8359 (set_window_height, set_window_width, change_window_heights)
8360 (Fdelete_window): Remove prototypes.
8361 (resize_frame_windows): Remove duplicate declaration.
8362
440a42e3
EZ
83632011-06-10 Eli Zaretskii <eliz@gnu.org>
8364
8365 * window.h (resize_frame_windows, resize_window_check)
8366 (delete_deletable_window, resize_root_window)
8367 (resize_frame_windows): Declare prototypes.
8368
8369 * window.c (resize_window_apply): Make definition be "static" to
8370 match the prototype.
8371
562dd5e9
MR
83722011-06-10 Martin Rudalics <rudalics@gmx.at>
8373
8374 * window.c: Remove declarations of Qwindow_size_fixed,
8375 window_min_size_1, window_min_size_2, window_min_size,
8376 size_window, window_fixed_size_p, enlarge_window, delete_window.
8377 Remove static from declaration of Qdelete_window, it's
8378 temporarily needed by Fbury_buffer.
8379 (replace_window): Don't assign orig_top_line and
8380 orig_total_lines.
8381 (Fdelete_window, delete_window): Remove. Window deletion is
8382 handled by window.el.
640c8776
SM
8383 (window_loop): Remove DELETE_OTHER_WINDOWS case.
8384 Replace Fdelete_window calls with calls to Qdelete_window.
562dd5e9
MR
8385 (Fdelete_other_windows): Remove. Deleting other windows is
8386 handled by window.el.
8387 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
8388 handled in window.el.
8389 (window_min_size_2, window_min_size_1, window_min_size): Remove.
8390 Window minimum sizes are handled in window.el.
8391 (shrink_windows, size_window, set_window_height)
8392 (set_window_width, change_window_heights, window_height)
8393 (window_width, CURBEG, CURSIZE, enlarge_window)
8394 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
8395 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
8396 handled in window.el.
8397 (make_dummy_parent): Rename to make_parent_window and give it a
8398 second argument horflag.
8399 (make_window): Don't set resize_proportionally any more.
8400 (Fsplit_window): Remove. Windows are split in window.el.
8401 (save_restore_action, save_restore_orig_size)
8402 (shrink_window_lowest_first, save_restore_orig_size): Remove.
8403 Resize mini windows in window.el.
8404 (grow_mini_window, shrink_mini_window): Implement by calling
8405 Qresize_root_window_vertically, resize_window_check and
8406 resize_window_apply.
640c8776
SM
8407 (saved_window, Fset_window_configuration, save_window_save):
8408 Do not handle orig_top_line, orig_total_lines, and
562dd5e9
MR
8409 resize_proportionally.
8410 (window_min_height, window_min_width): Move to window.el.
8411 (keys_of_window): Move bindings for delete-other-windows,
8412 split-window, delete-window and enlarge-window to window.el.
8413
8414 * buffer.c: Temporarily extern Qdelete_window.
8415 (Fbury_buffer): Temporarily call Qdelete_window instead of
8416 Fdelete_window (Fbury_buffer will move to window.el soon).
8417
8418 * frame.c (set_menu_bar_lines_1): Remove code handling
8419 orig_top_line and orig_total_lines.
8420
8421 * dispnew.c (adjust_frame_glyphs_initially): Don't use
8422 set_window_height but set heights directly.
8423 (change_frame_size_1): Use resize_frame_windows.
8424
8425 * xdisp.c (init_xdisp): Don't use set_window_height but set
8426 heights directly.
8427
640c8776
SM
8428 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
8429 Use resize_frame_windows instead of change_window_heights and run
562dd5e9
MR
8430 run_window_configuration_change_hook.
8431
8432 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
8433 instead of change_window_heights and run
8434 run_window_configuration_change_hook.
8435
1a13852e
MR
84362011-06-09 Martin Rudalics <rudalics@gmx.at>
8437
8438 * window.c (replace_window): Rename second argument REPLACEMENT to
8439 NEW. New third argument SETFLAG. Rewrite.
8440 (delete_window, make_dummy_parent): Call replace_window with
8441 third argument 1.
8442 (window_list_1): Move down in code.
8443 (run_window_configuration_change_hook): Move set_buffer part
8444 before select_frame_norecord part in order to unwind correctly.
8445 Rename count1 to count.
8446 (recombine_windows, delete_deletable_window, resize_root_window)
8447 (Fdelete_other_windows_internal)
8448 (Frun_window_configuration_change_hook, make_parent_window)
8449 (resize_window_check, resize_window_apply, Fresize_window_apply)
8450 (resize_frame_windows, Fsplit_window_internal)
640c8776
SM
8451 (Fdelete_window_internal, Fresize_mini_window_internal):
8452 New functions.
1a13852e
MR
8453 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
8454
f3d1777e
MR
84552011-06-08 Martin Rudalics <rudalics@gmx.at>
8456
496e208e
MR
8457 * window.h (window): Add some new members to window structure -
8458 normal_lines, normal_cols, new_total, new_normal, clone_number,
8459 splits, nest, prev_buffers, next_buffers.
8460 (WINDOW_TOTAL_SIZE): Move here from window.c.
b9e809c2 8461 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
496e208e 8462
f3d1777e
MR
8463 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
8464 Remove.
496e208e
MR
8465 (make_dummy_parent): Set new members of windows structure.
8466 (make_window): Move down in code. Handle new members of window
8467 structure.
8468 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
8469 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
8470 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
8471 (Fset_window_prev_buffers, Fwindow_next_buffers)
640c8776
SM
8472 (Fset_window_next_buffers, Fset_window_clone_number):
8473 New functions.
496e208e
MR
8474 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
8475 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
8476 Doc-string fixes.
8477 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
8478 Argument WINDOW can be now internal window too.
8479 (Fwindow_use_time): Move up in code.
8480 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
8481 Rewrite doc-string.
8482 (Fset_window_configuration, saved_window)
8483 (Fcurrent_window_configuration, save_window_save): Handle new
8484 members of window structure.
b9e809c2
MR
8485 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
8486 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
8487 (syms_of_window): New Lisp objects Qrecord_window_buffer,
8488 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
8489 Qget_mru_window, Qresize_root_window,
8490 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
8491 Qauto_buffer_name; staticpro them.
f3d1777e 8492
abde8f8c
MR
84932011-06-07 Martin Rudalics <rudalics@gmx.at>
8494
8495 * window.c (Fwindow_total_size, Fwindow_left_column)
8496 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
8497 (Fwindow_list_1): New functions.
8498 (window_box_text_cols): Replace with window_body_cols.
640c8776
SM
8499 (Fwindow_width, Fscroll_left, Fscroll_right):
8500 Use window_body_cols instead of window_box_text_cols.
8501 (delete_window, Fset_window_configuration):
8502 Call delete_all_subwindows with window as argument.
fa8a67e6
MR
8503 (delete_all_subwindows): Take a window as argument and not a
8504 structure. Rewrite.
190b47e6
MR
8505 (window_loop): Remove handling of GET_LRU_WINDOW and
8506 GET_LARGEST_WINDOW.
8507 (Fget_lru_window, Fget_largest_window): Move to window.el.
abde8f8c
MR
8508
8509 * window.h: Extern window_body_cols instead of
fa8a67e6
MR
8510 window_box_text_cols. delete_all_subwindows now takes a
8511 Lisp_Object as argument.
abde8f8c 8512
640c8776
SM
8513 * indent.c (compute_motion, Fcompute_motion):
8514 Use window_body_cols instead of window_box_text_cols.
abde8f8c 8515
fa8a67e6
MR
8516 * frame.c (delete_frame): Call delete_all_subwindows with root
8517 window as argument.
8518
a54e3482
DC
85192011-06-07 Daniel Colascione <dan.colascione@gmail.com>
8520
8521 * fns.c (Fputhash): Document return value.
8522
60002bf5
CY
85232011-06-06 Chong Yidong <cyd@stupidchicken.com>
8524
8525 * image.c (gif_load): Implement gif89a spec "no disposal" method.
8526
0c671da6 85272011-06-06 Paul Eggert <eggert@cs.ucla.edu>
ccd9a01a 8528
b862a52a 8529 Cons<->int and similar integer overflow fixes (Bug#8794).
77984278 8530
be44ca6c
PE
8531 Check for overflow when converting integer to cons and back.
8532 * charset.c (Fdefine_charset_internal, Fdecode_char):
8533 Use cons_to_unsigned to catch overflow.
8534 (Fencode_char): Use INTEGER_TO_CONS.
8535 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
8536 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
8537 * data.c (long_to_cons, cons_to_long): Remove.
8538 (cons_to_unsigned, cons_to_signed): New functions.
8539 These signal an error for invalid or out-of-range values.
8540 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
8541 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
8542 * font.c (Ffont_variation_glyphs):
8543 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
8544 * lisp.h: Include <intprops.h>.
8545 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
8546 (cons_to_signed, cons_to_unsigned): New decls.
8547 (long_to_cons, cons_to_long): Remove decls.
8548 * undo.c (record_first_change): Use INTEGER_TO_CONS.
8549 (Fprimitive_undo): Use CONS_TO_INTEGER.
8550 * xfns.c (Fx_window_property): Likewise.
8551 * xselect.c: Include <limits.h>.
8552 (x_own_selection, selection_data_to_lisp_data):
8553 Use INTEGER_TO_CONS.
8554 (x_handle_selection_request, x_handle_selection_clear)
8555 (x_get_foreign_selection, Fx_disown_selection_internal)
8556 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
8557 (lisp_data_to_selection_data): Use cons_to_unsigned.
8558 (x_fill_property_data): Use cons_to_signed.
8559 Report values out of range.
8560
d1f3d2af
PE
8561 Check for buffer and string overflow more precisely.
8562 * buffer.h (BUF_BYTES_MAX): New macro.
8563 * lisp.h (STRING_BYTES_MAX): New macro.
8564 * alloc.c (Fmake_string):
8565 * character.c (string_escape_byte8):
8566 * coding.c (coding_alloc_by_realloc):
8567 * doprnt.c (doprnt):
8568 * editfns.c (Fformat):
8569 * eval.c (verror):
8570 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
8571 since they may not be the same number.
8572 * editfns.c (Finsert_char):
8573 * fileio.c (Finsert_file_contents):
8574 Likewise for BUF_BYTES_MAX.
8575
dd52fcea
PE
8576 * image.c: Use ptrdiff_t, not int, for sizes.
8577 (slurp_file): Switch from int to ptrdiff_t.
8578 All uses changed.
8579 (slurp_file): Check that file size fits in both size_t (for
8580 malloc) and ptrdiff_t (for sanity and safety).
8581
7f9bbdbb
PE
8582 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
8583 if b->modtime has its maximal value.
8584
dfe18f82
PE
8585 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
8586
84acfcf0
PE
8587 Don't assume time_t can fit into int.
8588 * buffer.h (struct buffer.modtime): Now time_t, not int.
8589 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
8590 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
8591
ccd9a01a
PE
8592 Minor fixes for signed vs unsigned integers.
8593 * character.h (MAYBE_UNIFY_CHAR):
8594 * charset.c (maybe_unify_char):
8595 * keyboard.c (read_char, reorder_modifiers):
8596 XINT -> XFASTINT, since the integer must be nonnegative.
8597 * ftfont.c (ftfont_spec_pattern):
8598 * keymap.c (access_keymap, silly_event_symbol_error):
8599 XUINT -> XFASTINT, since the integer must be nonnegative.
8600 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
8601 since it makes no difference and we prefer signed.
8602 * keyboard.c (record_char): Use XUINT when all the neighbors do.
8603 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
8604 nonnegative.
8605
d6d100dd
SM
86062011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
8607
8608 * window.h (Fwindow_frame): Declare.
8609
2b6148e4
PE
86102011-06-06 Paul Eggert <eggert@cs.ucla.edu>
8611
8612 * alloc.c: Simplify handling of large-request failures (Bug#8800).
8613 (SPARE_MEMORY): Always define.
8614 (LARGE_REQUEST): Remove.
8615 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
8616
f230ecc9
MR
86172011-06-06 Martin Rudalics <rudalics@gmx.at>
8618
727e958e
MR
8619 * lisp.h: Move EXFUNS for Fframe_root_window,
8620 Fframe_first_window and Fset_frame_selected_window to window.h.
8621
8622 * window.h: Move EXFUNS for Fframe_root_window,
8623 Fframe_first_window and Fset_frame_selected_window here from
8624 lisp.h.
8625
8626 * frame.c (Fwindow_frame, Fframe_first_window)
8627 (Fframe_root_window, Fframe_selected_window)
8628 (Fset_frame_selected_window): Move to window.c.
8629 (Factive_minibuffer_window): Move to minibuf.c.
8630 (Fother_visible_frames_p): New function.
8631
8632 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
8633
f230ecc9
MR
8634 * window.c (decode_window, decode_any_window): Move up in code.
8635 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
8636 (inhibit_frame_unsplittable): Remove unused variable.
bf60a96b
MR
8637 (Fwindow_buffer): Move up and rewrite doc-string.
8638 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
8639 (Fwindow_prev): New functions.
727e958e
MR
8640 (Fwindow_frame): Move here from frame.c. Accept any window as
8641 argument.
8642 (Fframe_root_window, Fframe_first_window)
8643 (Fframe_selected_window): Move here from frame.c. Accept frame
8644 or arbitrary window as argument. Update doc-strings.
8645 (Fminibuffer_window): Move up in code.
8646 (Fwindow_minibuffer_p): Move up in code and simplify.
d6d100dd
SM
8647 (Fset_frame_selected_window): Move here from frame.c.
8648 Marginal rewrite.
727e958e
MR
8649 (Fselected_window, select_window, Fselect_window): Move up in
8650 code. Minor doc-string fixes.
f230ecc9 8651
4d09bcf6
PE
86522011-06-06 Paul Eggert <eggert@cs.ucla.edu>
8653
8654 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
8655 Do not assume that spare memory exists; that assumption is valid
8656 only if SYSTEM_MALLOC.
8657 (LARGE_REQUEST): New macro, so that the issue of large requests
8658 is separated from the issue of spare memory.
8659
810928a2
AS
86602011-06-05 Andreas Schwab <schwab@linux-m68k.org>
8661
172418ad
AS
8662 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
8663 format. (Bug#8806)
8664
43f862f7
AS
8665 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
8666
810928a2
AS
8667 * xfns.c (x_set_scroll_bar_default_width): Move declarations
8668 before statements.
8669
a059fe24
JD
86702011-06-05 Jan Djärv <jan.h.d@swipnet.se>
8671
8672 * gtkutil.c (xg_get_default_scrollbar_width): New function.
8673
8674 * gtkutil.h: Declare xg_get_default_scrollbar_width.
8675
8676 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
8677 min width by calling x_set_scroll_bar_default_width (Bug#8505).
8678
989bf368
JB
86792011-06-05 Juanma Barranquero <lekktu@gmail.com>
8680
8681 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
8682
4b80f674
CY
86832011-06-04 Chong Yidong <cyd@stupidchicken.com>
8684
8685 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
8686 (x_clipboard_manager_save): Add return value.
d6d100dd
SM
8687 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
8688 New error handlers.
4b80f674
CY
8689 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
8690 Obey Vx_select_enable_clipboard_manager. Catch errors in
8691 x_clipboard_manager_save (Bug#8779).
8692 (Vx_select_enable_clipboard_manager): New variable.
de65b42c 8693 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
4b80f674 8694
99a33b77 86952011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
8b3115e7
DN
8696
8697 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
8698
99a33b77 86992011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14eca62f
YM
8700
8701 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
8702 in the current matrix if keep_current_p is non-zero.
8703
8264569d
EZ
87042011-06-04 Eli Zaretskii <eliz@gnu.org>
8705
8706 * bidi.c (bidi_level_of_next_char): Fix last change.
8707
57f97249
EZ
87082011-06-03 Eli Zaretskii <eliz@gnu.org>
8709
fec2107c 8710 Support bidi reordering of text covered by display properties.
57f97249 8711
fec2107c
EZ
8712 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
8713 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
8714 (bidi_cache_search, bidi_cache_iterator_state)
8715 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
d6d100dd
SM
8716 (bidi_level_of_next_char, bidi_move_to_visually_next):
8717 Support character positions inside a run of characters covered by a
fec2107c
EZ
8718 display string.
8719 (bidi_paragraph_init, bidi_resolve_explicit_1)
8720 (bidi_level_of_next_char): Call bidi_fetch_char and
8721 bidi_fetch_char_advance instead of FETCH_CHAR and
8722 FETCH_CHAR_ADVANCE.
8723 (bidi_init_it): Initialize new members.
8724 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
8725 definitions.
8726 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
8727 instead of using explicit *_CHAR codes.
d6d100dd
SM
8728 (bidi_resolve_explicit, bidi_resolve_weak):
8729 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
fec2107c
EZ
8730 bidirectional text is supported only in multibyte buffers.
8731 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
8732 it to initialize the frame_window_p member of struct bidi_it.
8733 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
8734 (bidi_resolve_explicit, bidi_resolve_weak)
8735 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
8736 bidi_it->nchars is non-positive.
8737 (bidi_level_of_next_char): Don't try to lookup the cache for the
8738 next/previous character if nothing is cached there yet, or if we
8739 were just reseat()'ed to a new position.
c40e2fb2 8740
0e14fe90
EZ
8741 * xdisp.c (set_cursor_from_row): Set start and stop points
8742 according to the row's direction when priming the loop that looks
8743 for the glyph on which to display cursor.
8744 (single_display_spec_intangible_p): Function deleted.
8745 (display_prop_intangible_p): Reimplement to call
8746 handle_display_spec instead of single_display_spec_intangible_p.
d6d100dd
SM
8747 Accept 3 additional arguments needed by handle_display_spec.
8748 This fixes incorrect cursor motion across display property with complex
0e14fe90
EZ
8749 values: lists, `(when COND...)' forms, etc.
8750 (single_display_spec_string_p): Support property values that are
8751 lists with the argument STRING its top-level element.
8752 (display_prop_string_p): Fix the condition for processing a
8753 property that is a list to be consistent with handle_display_spec.
fec2107c 8754 (handle_display_spec): New function, refactored from the
fc6f18ce
EZ
8755 last portion of handle_display_prop.
8756 (compute_display_string_pos): Accept additional argument
8757 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
8758 value of a `display' property is a "replacing spec".
8759 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
8760 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
8761 the display property, but just return a value indicating whether
8762 the display property will replace the characters it covers.
8763 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
8764 frame_window_p members of struct bidi_it.
d6d100dd
SM
8765 (compute_display_string_pos, compute_display_string_end):
8766 New functions.
fec2107c
EZ
8767 (push_it): Accept second argument POSITION, where pop_it should
8768 jump to continue iteration.
8769 (reseat_1): Initialize bidi_it.disp_pos.
fc6f18ce 8770
fec2107c
EZ
8771 * keyboard.c (adjust_point_for_property): Adjust the call to
8772 display_prop_intangible_p to its new signature.
fc6f18ce
EZ
8773
8774 * dispextern.h (struct bidi_it): New member frame_window_p.
fec2107c
EZ
8775 (bidi_init_it): Update prototypes.
8776 (display_prop_intangible_p): Update prototype.
d6d100dd
SM
8777 (compute_display_string_pos, compute_display_string_end):
8778 Declare prototypes.
fec2107c
EZ
8779 (struct bidi_it): New members nchars and disp_pos. ch_len is now
8780 EMACS_INT.
fc6f18ce 8781
40087514 87822011-06-02 Paul Eggert <eggert@cs.ucla.edu>
0de4bb68 8783
57f53182
PE
8784 Malloc failure behavior now depends on size of allocation.
8785 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
8786 * lisp.h: Change signatures accordingly.
8787 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
8788 All callers changed. (Bug#8762)
8789
8790 * gnutls.c: Use Emacs's memory allocators.
8791 Without this change, the gnutls library would invoke malloc etc.
8792 directly, which causes problems on non-SYNC_INPUT hosts, and which
8793 runs afoul of improving memory_full behavior. (Bug#8761)
8794 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
8795 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
8796 xfree instead of the default malloc, realloc, free.
8797 (Fgnutls_boot): No need to check for memory allocation failure,
8798 since xmalloc does that for us.
8799
ac32cd99 8800 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
3870d916
PE
8801 * category.c (hash_get_category_set):
8802 * ccl.c (ccl_driver):
8803 * charset.c (Fdefine_charset_internal):
8804 * charset.h (struct charset.hash_index):
8805 * composite.c (get_composition_id, gstring_lookup_cache)
8806 (composition_gstring_put_cache):
8807 * composite.h (struct composition.hash_index):
8808 * dispextern.h (struct image.hash):
8809 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
8810 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
8811 (hashfn_equal, hashfn_user_defined, make_hash_table)
8812 (maybe_resize_hash_table, hash_lookup, hash_put)
8813 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
8814 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
8815 (Fsxhash, Fgethash, Fputhash, Fmaphash):
8816 * image.c (make_image, search_image_cache, lookup_image)
8817 (xpm_put_color_table_h):
8818 * lisp.h (struct Lisp_Hash_Table):
0de4bb68 8819 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
ac389d0c 8820 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
3870d916 8821 for hashes and hash indexes, instead of 'unsigned' and 'int'.
40087514
PE
8822 * alloc.c (allocate_vectorlike):
8823 Check for overflow in vector size calculations.
8824 * ccl.c (ccl_driver):
8825 Check for overflow when converting EMACS_INT to int.
0de4bb68
PE
8826 * fns.c, image.c: Remove unnecessary static decls that would otherwise
8827 need to be updated by these changes.
40087514
PE
8828 * fns.c (make_hash_table, maybe_resize_hash_table):
8829 Check for integer overflow with large hash tables.
0de4bb68
PE
8830 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
8831 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
8832 (SXHASH_REDUCE): New macro.
8833 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
8834 Use it instead of discarding useful hash info with large hash values.
8835 (sxhash_float): New function.
8836 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
8837 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
40087514
PE
8838 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
8839 Rewrite to use FIXNUM_BITS, as this simplifies things.
0de4bb68
PE
8840 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
8841 Adjust signatures to match updated version of code.
8842 (consing_since_gc): Now EMACS_INT, since a single hash table can
8843 use more than INT_MAX bytes.
8844
698d32e2
DN
88452011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
8846
8847 Make it possible to build with GCC-4.6+ -O2 -flto.
8848
8849 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
8850
fd6fa53f
SM
88512011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
8852
8853 * minibuf.c (get_minibuffer, read_minibuf_unwind):
8854 Call minibuffer-inactive-mode.
8855
864db017
JB
88562011-05-31 Juanma Barranquero <lekktu@gmail.com>
8857
8858 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
8859 Update dependencies.
8860
2ad0baf4
DN
88612011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
8862
8863 * data.c (init_data): Remove code for UTS, this system is not
8864 supported anymore.
8865
4fcc2638
DN
88662011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
8867
8868 Don't force ./temacs to start in terminal mode.
8869
8870 * frame.c (make_initial_frame): Initialize faces in all cases, not
8871 only when CANNOT_DUMP is defined.
8872 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
8873
c56e0fd5
DN
88742011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
8875
8876 * dispnew.c (add_window_display_history): Use const for the string
8877 pointer. Remove declaration, not needed.
8878
333d54da 88792011-05-31 Paul Eggert <eggert@cs.ucla.edu>
9cf9f756 8880
55d4c1b2 8881 Use 'inline', not 'INLINE'.
333d54da 8882 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
55d4c1b2
PE
8883 * alloc.c, fontset.c (INLINE): Remove.
8884 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
8885 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
8886 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
8887 * gmalloc.c (register_heapinfo): Use inline unconditionally.
8888 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
8889
738db178
DN
88902011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
8891
8892 Make it possible to run ./temacs.
8893
8894 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
8895 syms_of_callproc does the same thing. Remove test for
8896 "initialized", do it in the caller.
8897 * emacs.c (main): Avoid calling set_initial_environment when dumping.
8898
620c53a6
SM
88992011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
8900
8901 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
8902 (read_minibuf): Use get_minibuffer.
8903 (syms_of_minibuf): Use DEFSYM.
8904 (Qmetadata): New var.
8905 * data.c (Qbuffer): Don't make it static.
8906 (syms_of_data): Use DEFSYM.
8907
e003a292
PE
89082011-05-31 Paul Eggert <eggert@cs.ucla.edu>
8909
8910 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
8911 (CCL_CODE_MIN): New macro.
8912
ed008a6d
PE
89132011-05-30 Paul Eggert <eggert@cs.ucla.edu>
8914
3687c2ef
PE
8915 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
8916
ed008a6d
PE
8917 * eval.c (Qdebug): Now static.
8918 * lisp.h (Qdebug): Remove decl. This reverts a part of the
8919 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
8920 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
8921
d66c4c7c
CY
89222011-05-29 Chong Yidong <cyd@stupidchicken.com>
8923
8924 * image.c: Various fixes to ImageMagick code comments.
8925 (Fimagemagick_types): Doc fix.
8926
5fbc2025
PE
89272011-05-29 Paul Eggert <eggert@cs.ucla.edu>
8928
0196f88a
PE
8929 Minor fixes prompted by GCC 4.6.0 warnings.
8930
8931 * xselect.c (converted_selections, conversion_fail_tag): Now static.
8932
5fbc2025
PE
8933 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
8934 (x_clipboard_manager_save_all): Move extern decl to ...
8935 * xterm.h: ... here, so that it can be checked for consistency.
8936
1dd3c2d9
CY
89372011-05-29 Chong Yidong <cyd@stupidchicken.com>
8938
8939 * xselect.c (x_clipboard_manager_save_frame)
8940 (x_clipboard_manager_save_all): New functions.
8941 (Fx_clipboard_manager_save): Lisp function deleted.
8942
8943 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
8944 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
8945
8946 * xterm.h: Update prototype.
8947
5ba6571d
WX
89482011-05-28 William Xu <william.xwl@gmail.com>
8949
8950 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
8951 exiting (Bug#8239).
8952
3eaff834
JM
89532011-05-28 Jim Meyering <meyering@redhat.com>
8954
e1900994 8955 Avoid a sign-extension bug in crypto_hash_function.
3eaff834
JM
8956 * fns.c (to_uchar): Define.
8957 (crypto_hash_function): Use it to convert some newly-signed
8958 variables to unsigned, to avoid sign-extension bugs. For example,
8959 without this change, (md5 "truc") would evaluate to
8960 45723a2aff78ff4fff7fff1114760e62 rather than the expected
8961 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
e1900994 8962 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
3eaff834 8963
0f6990a7
PE
89642011-05-27 Paul Eggert <eggert@cs.ucla.edu>
8965
8966 Integer overflow fixes.
c8a9ca5a 8967
08686060
PE
8968 * dbusbind.c: Serial number integer overflow fixes.
8969 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
08686060
PE
8970 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
8971 to hold a serial number that is too large for a fixnum.
8972 (Fdbus_method_return_internal, Fdbus_method_error_internal):
8973 Check for serial numbers out of range. Decode any serial number
59568bf0 8974 that was so large that it became a float. (Bug#8722)
08686060 8975
2d1fc3c7
PE
8976 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
8977 (Fdbus_call_method, Fdbus_call_method_asynchronously):
8978 Use XFASTINT rather than XUINT when numbers are nonnegative.
8979 (xd_append_arg, Fdbus_method_return_internal):
8980 (Fdbus_method_error_internal): Likewise. Also, for unsigned
8981 arguments, check that Lisp number is nonnegative, rather than
59568bf0 8982 silently wrapping negative numbers around. (Bug#8722)
30217ff0 8983 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
59568bf0 8984 (Bug#8722)
2d1fc3c7 8985
c8a9ca5a
PE
8986 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
8987
519e1d69
PE
8988 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
8989
6df6ae42 8990 ccl: Add integer overflow checks.
30569699
PE
8991 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
8992 (IN_INT_RANGE): New macros.
8993 (ccl_driver): Use them to check for integer overflow when
8994 decoding a CCL program. Many of the new checks are whether XINT (x)
8995 fits in int; it doesn't always, on 64-bit hosts. The new version
8996 doesn't catch all possible integer overflows, but it's an
847044ea 8997 improvement. (Bug#8719)
30569699 8998
c11285dc
PE
8999 * alloc.c (make_event_array): Use XINT, not XUINT.
9000 There's no need for unsigned here.
9001
fdccd48e
PE
9002 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
9003 This follows up to the 2011-05-06 change that substituted uintptr_t
9004 for EMACS_INT. This case wasn't caught back then.
9005
37910ab2
PE
9006 Rework Fformat to avoid integer overflow issues.
9007 * editfns.c: Include <float.h> unconditionally, as it's everywhere
9008 now (part of C89). Include <verify.h>.
9009 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
9010 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
9011 (Fformat): Avoid the prepass trying to compute sizes; it was only
9012 approximate and thus did not catch overflow reliably. Instead, walk
9013 through the format just once, formatting and computing sizes as we go,
9014 checking for integer overflow at every step, and allocating a larger
9015 buffer as needed. Keep track separately whether the format is
9016 multibyte. Keep only the most-recently calculated precision, rather
9017 than them all. Record whether each argument has been converted to
9018 string. Use EMACS_INT, not int, for byte and char and arg counts.
9019 Support field widths and precisions larger than INT_MAX. Avoid
9020 sprintf's undefined behavior with conversion specifications such as %#d
9021 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
9022 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
9023 formatting out-of-range floating point numbers with int
9173deec 9024 formats. (Bug#8668)
37910ab2 9025
2e6578fb
PE
9026 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
9027
0ae6bdee
PE
9028 * data.c: Avoid integer truncation in expressions involving floats.
9029 * data.c: Include <intprops.h>.
9030 (arith_driver): When there's an integer overflow in an expression
9031 involving floating point, convert the integers to floating point
9032 so that the resulting value does not suffer from catastrophic
9033 integer truncation. For example, on a 64-bit host (* 4
9034 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
9035 Do not rely on undefined behavior after integer overflow.
9036
de883a70
PE
9037 merge count_size_as_multibyte, parse_str_to_multibyte
9038 * character.c, character.h (count_size_as_multibyte):
fd6fa53f 9039 Rename from parse_str_to_multibyte; all uses changed.
de883a70
PE
9040 Check for integer overflow.
9041 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
9042 since it's now a duplicate of the other. This is more of
9043 a character than a buffer op, so better that it's in character.c.
9044 * fns.c, print.c: Adjust to above changes.
9045
2ff916cb
PE
90462011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
9047
9048 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
9049
f1b54466
PE
90502011-05-27 Paul Eggert <eggert@cs.ucla.edu>
9051
fb1ac845
PE
9052 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
9053 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
9054 (x_clipboard_manager_save): Now static.
9055 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
9056
f1b54466
PE
9057 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
9058 (crypto_hash_function): Now static.
9059 Fix pointer signedness problems. Avoid unnecessary initializations.
9060
a9f737ee
CY
90612011-05-27 Chong Yidong <cyd@stupidchicken.com>
9062
9063 * termhooks.h (Vselection_alist): Make it terminal-local.
9064
9065 * terminal.c (create_terminal): Initialize it.
9066
9067 * xselect.c: Support for clipboard managers.
9068 (Vselection_alist): Move to termhooks.h as terminal-local var.
9069 (LOCAL_SELECTION): New macro.
9070 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
9071 (symbol_to_x_atom): Remove gratuitous arg.
9072 (x_handle_selection_request, lisp_data_to_selection_data)
9073 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
620c53a6
SM
9074 (x_own_selection, x_get_local_selection, x_convert_selection):
9075 New arg, specifying work frame. Use terminal-local Vselection_alist.
a9f737ee
CY
9076 (some_frame_on_display): Delete unused function.
9077 (Fx_own_selection_internal, Fx_get_selection_internal)
9078 (Fx_disown_selection_internal, Fx_selection_owner_p)
9079 (Fx_selection_exists_p): New optional frame arg.
9080 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
9081 (x_handle_selection_clear): Don't treat other terminals with the
9082 same keyboard specially. Use the terminal-local Vselection_alist.
9083 (x_clear_frame_selections): Use Frun_hook_with_args.
9084
9085 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
9086
9087 * xterm.h: Add support for those atoms.
9088
e067f0c1
CY
90892011-05-26 Chong Yidong <cyd@stupidchicken.com>
9090
9091 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
9092 (converted_selections, conversion_fail_tag): New global variables.
9093 (x_selection_request_lisp_error): Free the above.
9094 (x_get_local_selection): Remove unnecessary code.
9095 (x_reply_selection_request): Args changed; handle arbitrary array
620c53a6
SM
9096 of converted selections stored in converted_selections.
9097 Separate the XChangeProperty and SelectionNotify steps.
e067f0c1
CY
9098 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
9099 (x_convert_selection): New function.
9100 (x_handle_selection_event): Simplify.
9101 (x_get_foreign_selection): Don't ignore incoming requests while
9102 waiting for an answer; this will fail when we implement
9103 SAVE_TARGETS, and seems unnecessary anyway.
9104 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
9105 (Vx_sent_selection_functions): Doc fix.
9106
0f4aebc0
LL
91072011-05-26 Leo Liu <sdl.web@gmail.com>
9108
9109 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
9110
e61124cd
YM
91112011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
9112
9113 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
9114
9115 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
9116 for fringe update if it has periodic bitmap.
ac389d0c 9117 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
e61124cd
YM
9118 and fringe_bitmap_periodic_p.
9119
9120 * fringe.c (get_fringe_bitmap_data): New function.
9121 (draw_fringe_bitmap_1, update_window_fringes): Use it.
9122 (update_window_fringes): Record periodicity of fringe bitmap in glyph
9123 row. Mark glyph row for fringe update if periodicity changed.
9124
9125 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
9126 for fringe update unless it has periodic bitmap.
9127
f16d9837
KH
91282011-05-25 Kenichi Handa <handa@m17n.org>
9129
9130 * xdisp.c (get_next_display_element): Set correct it->face_id for
9131 a static composition.
9132
e1b90ef6
LL
91332011-05-24 Leo Liu <sdl.web@gmail.com>
9134
9135 * deps.mk (fns.o):
9136 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
9137
9138 * fns.c (crypto_hash_function, Fsha1): New function.
9139 (Fmd5): Use crypto_hash_function.
9140 (syms_of_fns): Add Ssha1.
9141
7400048f
PE
91422011-05-22 Paul Eggert <eggert@cs.ucla.edu>
9143
9144 * gnutls.c: Remove unused macros.
9145 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
9146 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
9147 Remove macros that are defined and never used.
9148 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
9149
abb71cf4
CY
91502011-05-22 Chong Yidong <cyd@stupidchicken.com>
9151
9152 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
9153 (Fx_get_selection_internal): Minor cleanup.
9154 (Fx_own_selection_internal): Rename arguments for consistency with
9155 select.el.
9156
6307db39
PE
91572011-05-22 Paul Eggert <eggert@cs.ucla.edu>
9158
9159 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
9160
f3d4e0a4
CY
91612011-05-22 Chong Yidong <cyd@stupidchicken.com>
9162
9163 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
9164
4d8ade89
YM
91652011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
9166
9167 * dispnew.c (scrolling_window): Don't exclude the case that the
9168 last enabled row in the desired matrix touches the bottom boundary.
9169
32078c8d
GM
91702011-05-21 Glenn Morris <rgm@gnu.org>
9171
9172 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
33cf345f
GM
9173 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
9174 and add some more files.
32078c8d 9175
7285dc67
EZ
91762011-05-20 Eli Zaretskii <eliz@gnu.org>
9177
9178 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
9179 report_file_error introduced by the change from 2011-05-07.
9180
89d1bd22
PE
91812011-05-20 Paul Eggert <eggert@cs.ucla.edu>
9182
9183 * systime.h (Time): Define only if emacs is defined.
9184 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
9185 where the include path doesn't have X11/X.h by default. See
9186 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
9187
cd394be1 91882011-05-20 Kenichi Handa <handa@m17n.org>
31bfc35c
KH
9189
9190 * composite.c (find_automatic_composition): Fix previous change.
9191
b9704ad9
GM
91922011-05-20 Glenn Morris <rgm@gnu.org>
9193
9194 * lisp.mk: New file, split from Makefile.in.
9195 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
9196 (shortlisp): Remove.
9197 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
9198
4a720484
GM
91992011-05-19 Glenn Morris <rgm@gnu.org>
9200
9201 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
9202 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
9203 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
9204 (lisp): Set the order to that of loadup.el.
9205 (shortlisp): Make it a copy of $lisp.
9206 (SOME_MACHINE_LISP): Remove.
9207 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
9208 Use just $shortlisp, not $SOME_MACHINE_LISP too.
9209
a28d4396
KH
92102011-05-18 Kenichi Handa <handa@m17n.org>
9211
9212 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
9213 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
9214 (find_automatic_composition): Mostly rewrite for efficiency.
9215
a2b1fa8e
JB
92162011-05-18 Juanma Barranquero <lekktu@gmail.com>
9217
9218 * makefile.w32-in: Update dependencies.
9219
8e1f5610
CS
92202011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
9221
9222 * menu.c: Include limits.h (fixes the MS-Windows build broken by
7d7d0045 9223 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
8e1f5610 9224
7025ee00 92252011-05-18 Paul Eggert <eggert@cs.ucla.edu>
cb93f9be 9226
cdfa6eab
PE
9227 Fix some integer overflow issues, such as string length overflow.
9228
06d6db33
PE
9229 * insdel.c (count_size_as_multibyte): Check for string overflow.
9230
2b4560a8
PE
9231 * character.c (lisp_string_width): Check for string overflow.
9232 Use EMACS_INT, not int, for string indexes and lengths; in
9233 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
9234 the resulting string length overflows an EMACS_INT; instead,
9235 report a string overflow if no precision given. When checking for
9236 precision exhaustion, use a check that cannot possibly have
9237 integer overflow. (Bug#8675)
9238 * character.h (lisp_string_width): Adjust to new signature.
9239
cb93f9be
PE
9240 * alloc.c (string_overflow): New function.
9241 (Fmake_string): Use it. This doesn't change behavior, but saves
9242 a few bytes and will simplify future changes.
9243 * character.c (string_escape_byte8): Likewise.
9244 * lisp.h (string_overflow): New decl.
9245
1a1f3366
PE
9246 Fixups, following up to the user-interface timestamp change.
9247 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
9248 for UI timestamps, instead of unsigned long.
9fbd6841
PE
9249 * msdos.c (mouse_get_pos): Likewise.
9250 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
1a1f3366
PE
9251 * w32gui.h (Time): Define by including "systime.h" rather than by
9252 declaring it ourselves. (Bug#8664)
9253
d4e3e4d3
PE
9254 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
9255 * image.c (clear_image_cache): Likewise.
9256
f6a24d19
PE
9257 * term.c (term_mouse_position): Don't assume time_t wraparound.
9258
08dc5ae6
PE
9259 Be more systematic about user-interface timestamps.
9260 Before, the code sometimes used 'Time', sometimes 'unsigned long',
620c53a6
SM
9261 and sometimes 'EMACS_UINT', to represent these timestamps.
9262 This change causes it to use 'Time' uniformly, as that's what X uses.
08dc5ae6
PE
9263 This makes the code easier to follow, and makes it easier to catch
9264 integer overflow bugs such as Bug#8664.
9265 * frame.c (Fmouse_position, Fmouse_pixel_position):
9266 Use Time, not unsigned long, for user-interface timestamps.
9267 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
9268 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
9269 * keyboard.h (last_event_timestamp): Likewise.
9270 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
9271 * menu.h (xmenu_show): Likewise.
9272 * term.c (term_mouse_position): Likewise.
9273 * termhooks.h (struct input_event.timestamp): Likewise.
9274 (struct terminal.mouse_position_hook): Likewise.
9275 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
9276 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
9277 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
9278 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
9279 what it was before.
9280 * menu.h, termhooks.h: Include "systime.h", for Time.
9281
8e55734a
PE
9282 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
9283 Don't assume that the difference between two unsigned long values
9284 can fit into an integer. At this point, we know button_down_time
9285 <= event->timestamp, so the difference must be nonnegative, so
9286 there's no need to cast the result if double-click-time is
9287 nonnegative, as it should be; check that it's nonnegative, just in
9288 case. This bug is triggered when events are more than 2**31 ms
86db42d2 9289 apart (about 25 days). (Bug#8664)
8e55734a 9290
841f1b75 9291 * xselect.c (last_event_timestamp): Remove duplicate decl.
6434756c 9292 (x_own_selection): Remove needless cast to unsigned long.
841f1b75 9293
3e26f69c
PE
9294 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
9295 that always fit in int. Use a sentinel instead of a counter, to
9296 avoid a temp and to allay GCC's concerns about possible int overflow.
d230cb74
PE
9297 * frame.h (struct frame): Use int for menu_bar_items_used
9298 instead of EMACS_INT, since it always fits in int.
3e26f69c 9299
5cc152c0
PE
9300 * menu.c (grow_menu_items): Check for int overflow.
9301
d89eb65e
PE
9302 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
9303
5235bd3e
PE
9304 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
9305 Before, the code was not consistent. These values cannot exceed
9306 2**31 - 1 so there's no need to make them unsigned.
9307 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
9308 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
9309 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
9310 as modifiers.
9311 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
9312
bc827e23
PE
9313 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
9314 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
9315 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
9316 presumably because the widths might not match.
9317
78eb494e
PE
9318 * window.c (size_window): Avoid needless test at loop start.
9319
04f2d78b
CB
93202011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
9321
9322 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
9323
d2fc7e3d 93242011-05-12 Drew Adams <drew.adams@oracle.com>
e531bdff
DA
9325
9326 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
9327
d2fc7e3d 93282011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7db47798
YM
9329
9330 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
9331 `width' to `bar_area_x' and `bar_area_width', respectively.
9332 (x_scroll_run): Take account of fringe background extension.
9333
04f2d78b
CB
9334 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
9335 Rename local vars `left' and `width' to `bar_area_x' and
7db47798
YM
9336 `bar_area_width', respectively.
9337 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
9338 background extension.
9339
79b70037
GM
93402011-05-10 Jim Meyering <meyering@redhat.com>
9341
9342 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
9343
2f142cc5
JB
93442011-05-10 Juanma Barranquero <lekktu@gmail.com>
9345
9346 * image.c (Finit_image_library): Return t for built-in image types,
9347 like pbm and xbm. (Bug#8640)
9348
57679c86
AS
93492011-05-09 Andreas Schwab <schwab@linux-m68k.org>
9350
9351 * w32menu.c (set_frame_menubar): Fix submenu allocation.
9352
888c9e86
EZ
93532011-05-07 Eli Zaretskii <eliz@gnu.org>
9354
b0512a1d
EZ
9355 * w32console.c (Fset_screen_color): Doc fix.
9356 (Fget_screen_color): New function.
9357 (syms_of_ntterm): Defsubr it.
9358
7285dc67
EZ
9359 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
9360 unlink the temporary file if Fcall_process didn't create it in the
9361 first place.
9362 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
9363 child process will be redirected to a file specified with `:file'.
888c9e86
EZ
9364 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
9365 cue to call_process_cleanup not to close that handle.
9366
4d3fcc8e
BK
93672011-05-07 Ben Key <bkey76@gmail.com>
9368
9369 * makefile.w32-in: The bootstrap-temacs rule now makes use of
9370 one of two shell specific rules, either bootstrap-temacs-CMD or
9371 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
9372 to the previous implementation of the bootstrap-temacs rule.
9373 The bootstrap-temacs-CMD rule is similar to the previous
9374 implementation of the bootstrap-temacs rule except that it
9375 makes use of the ESC_CFLAGS variable instead of the CFLAGS
9376 variable.
9377
9378 These changes, along with some changes to nt/configure.bat,
9379 nt/gmake.defs, and nt/nmake.defs, are required to extend my
9380 earlier fix to add support for --cflags and --ldflags options
9381 that include quotes so that it works whether make uses cmd or
9382 sh as the shell.
9383
b4289b64
MA
93842011-05-06 Michael Albinus <michael.albinus@gmx.de>
9385
9386 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
9387 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
9388 is a constant.
9389 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
9390 a string. Handle both cases.
9391 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
9392 (Fdbus_register_method): Use Qinvalid_function.
9393
af4c0e28
JB
93942011-05-06 Juanma Barranquero <lekktu@gmail.com>
9395
9396 * makefile.w32-in: Update dependencies.
9397 (LISP_H): Add inttypes.h and stdin.h.
9398 (PROCESS_H): Add unistd.h.
9399
c51453d9
EZ
94002011-05-06 Eli Zaretskii <eliz@gnu.org>
9401
9402 * lread.c: Include limits.h (fixes the MS-Windows build broken by
9403 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
9404
8ff0ac3c 94052011-05-06 Paul Eggert <eggert@cs.ucla.edu>
c032b5f8 9406
4c4b566b
PE
9407 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
9408
aab2b9b5
PE
9409 * term.c (vfatal): Remove stray call to va_end.
9410 It's not needed and the C Standard doesn't allow it here anyway.
9411
c378da0b
PE
9412 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
9413 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
9414
288b08c7
PE
9415 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
9416 bytes.
9417
e3601888
PE
9418 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
9419
db6c0e74
PE
9420 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
9421
dd5963ea
PE
9422 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
9423
88c9450f
PE
9424 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
9425
2f9442b8
PE
9426 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
9427
c032b5f8
PE
9428 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
9429 * charset.c (Fdefine_charset_internal): Don't initialize
9430 charset.code_space[15]. The value was garbage, on hosts with
2d38271b 9431 32-bit int (Bug#8600).
a108c10b
PE
9432
9433 * lread.c (read_integer): Be more consistent with string-to-number.
9434 Use string_to_number to do the actual conversion; this avoids
9435 rounding errors and fixes some other screwups. Without this fix,
9436 for example, #x1fffffffffffffff was misread as -2305843009213693952.
9437 (digit_to_number): Move earlier, for benefit of read_integer.
9438 Return -1 if the digit is out of range for the base, -2 if it is
48e400f0 9439 not a digit in any supported base. (Bug#8602)
a108c10b 9440
ad5f9eea
PE
9441 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
9442
aec1708a
PE
9443 * dispnew.c (scrolling_window): Return 1 if we scrolled,
9444 to match comment at start of function. This also removes a
9445 GCC warning about overflow in a 32+64-bit port.
9446
47be4ab5
PE
9447 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
9448
371cac43
PE
9449 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
9450 Reported by Stefan Monnier in
9451 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
04f2d78b
CB
9452 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
9453 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
371cac43 9454
d01a7826
PE
9455 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
9456 (EMACS_UINTPTR): Likewise, with uintptr_t.
9457
7fd47d5c
PE
9458 * lisp.h: Prefer 64-bit EMACS_INT if available.
9459 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
9460 on 32-bit hosts that have 64-bit int, so that they can access
9461 large files.
122b0c86
PE
9462 However, temporarily disable this change unless the temporary
9463 symbol WIDE_EMACS_INT is defined.
7fd47d5c 9464
8727937b
PE
9465 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
9466
8ac068ac
PE
9467 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
9468 This removes an assumption that EMACS_INT and long are the same
9469 width as pointers. The assumption is true for Emacs porting targets
9470 now, but we want to make other targets possible.
9471 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
9472 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
9473 In the rest of the code, change types of integers that hold casted
9474 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
9475 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
9476 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
9477 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
9478 No need to cast type when ORing.
9479 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
9480 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
9481 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
9482 assume EMACS_INT is the same width as char *.
9483 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
9484 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
9485 Remove no-longer-needed casts.
9486 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
9487 (xg_tool_bar_help_callback, xg_make_tool_item):
9488 Use EMACS_INTPTR to hold an integer
9489 that will be cast to void *; this can avoid a GCC warning
9490 if EMACS_INT is not the same width as void *.
9491 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
9492 * xdisp.c (display_echo_area_1, resize_mini_window_1):
9493 (current_message_1, set_message_1):
9494 Use a local to convert to proper width without a cast.
9495 * xmenu.c (dialog_selection_callback): Likewise.
9496
ede49d71
PE
9497 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
9498 Also, don't assume VALBITS / RAND_BITS is less than 5,
9499 and don't rely on undefined behavior when shifting a 1 left into
9500 the sign bit.
9501 * lisp.h (get_random): Change signature to match.
9502
2f30ecd0
PE
9503 * lread.c (hash_string): Use size_t, not int, for hash computation.
9504 Normally we prefer signed values; but hashing is special, because
9505 it's better to use unsigned division on hash table sizes so that
9506 the remainder is nonnegative. Also, size_t is the natural width
9507 for hashing into memory. The previous code used 'int', which doesn't
9508 retain enough info to hash well into very large tables.
9509 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
9510
2a866e7b
PE
9511 * dbusbind.c: Don't possibly lose pointer info when converting.
9512 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
9513 Use XPNTR rather than XHASH, so that the high-order bits of
9514 the pointer aren't lost when converting through void *.
9515
51639eac
PE
9516 * eval.c (Fautoload): Don't double-shift a pointer.
9517
92394119
PE
9518 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
9519
dbdb9a7c
JB
95202011-05-06 Juanma Barranquero <lekktu@gmail.com>
9521
9522 * gnutls.c (DEF_GNUTLS_FN):
9523 * image.c (DEF_IMGLIB_FN): Make function pointers static.
9524
db7a0b4f
AS
95252011-05-05 Andreas Schwab <schwab@linux-m68k.org>
9526
9527 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
9528 marker. (Bug#8610)
9529
cd394be1 95302011-05-05 Eli Zaretskii <eliz@gnu.org>
fab624aa
EZ
9531
9532 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
9533 New version that can reserve upto 2GB of heap space.
9534
f7ff1b0f 95352011-05-05 Chong Yidong <cyd@stupidchicken.com>
45cb8994
CY
9536
9537 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
9538
639c109b
TZ
95392011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
9540
9541 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
9542 `gnutls_certificate_set_x509_key_file'.
9543
d2127135
JB
95442011-05-05 Juanma Barranquero <lekktu@gmail.com>
9545
9546 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
9547 Update dependencies.
9548
e968f4f3
JB
95492011-05-04 Juanma Barranquero <lekktu@gmail.com>
9550
9551 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
9552 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
9553 Remove unused parameter `fildes'.
9554 * process.c (read_process_output, send_process): Don't pass it.
9555
84d358f0
JB
95562011-05-04 Juanma Barranquero <lekktu@gmail.com>
9557
9558 Fix previous change: the library cache is defined in w32.c.
9559 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
9560 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
9561
0898ca10
JB
95622011-05-04 Juanma Barranquero <lekktu@gmail.com>
9563
9564 Implement dynamic loading of GnuTLS on Windows.
9565
9566 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
9567 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
9568 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
9569 Declare.
9570
9571 * gnutls.c (Qgnutls_dll): Define.
9572 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
9573 (gnutls_*): Declare function pointers.
9574 (init_gnutls_functions): New function to initialize function pointers.
9575 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
9576 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
9577 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
9578 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
9579 (emacs_gnutls_write, emacs_gnutls_read)
9580 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
9581 (Fgnutls_available_p): New function.
9582 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
9583 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
9584 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
9585
9586 * image.c: Include w32.h.
9587 (Vimage_type_cache): Delete.
9588 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
9589 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
9590 (w32_delayed_load): Move to w32.c.
9591
9592 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
9593
9594 * w32.c (QCloaded_from, Vlibrary_cache): Define.
9595 (w32_delayed_load): Move from image.c. When loading a library, record
9596 its filename in the :loaded-from property of the library id.
9597 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
9598 Initialize and staticpro them.
9599 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
9600
9601 * process.c: Include lisp.h before w32.h, not after.
9602 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
9603 instead of gnutls_record_check_pending.
9604
9605 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
9606
ff4de4aa
TZ
96072011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
9608
9609 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
9610 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
9611 as passed in.
9612
abe95abb
JD
96132011-05-03 Jan Djärv <jan.h.d@swipnet.se>
9614
9615 * xterm.c (x_set_frame_alpha): Do not set property on anything
9616 else than FRAME_X_OUTER_WINDOW (Bug#8608).
9617
e16e55d4
JB
96182011-05-02 Juanma Barranquero <lekktu@gmail.com>
9619
9620 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
9621
bafcf6a5
JB
96222011-05-02 Juanma Barranquero <lekktu@gmail.com>
9623
9624 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
9625 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
9626 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
9627 (gnutls_global_initialized, Qgnutls_bootprop_priority)
9628 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
9629 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
9630 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
9631 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
9632 (Qgnutls_bootprop_callbacks_verify): Make static.
9633
e7a6747f
AS
96342011-05-01 Andreas Schwab <schwab@linux-m68k.org>
9635
19ed11ba
AS
9636 * callproc.c: Indentation fixup.
9637
e7a6747f 9638 * sysdep.c (wait_for_termination_1): Make static.
04f2d78b
CB
9639 (wait_for_termination, interruptible_wait_for_termination):
9640 Move after wait_for_termination_1.
e7a6747f 9641
1ef14cb4
LMI
96422011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
9643
9644 * sysdep.c (interruptible_wait_for_termination): New function
9645 which is like wait_for_termination, but allows keyboard
9646 interruptions.
9647
9648 * callproc.c (Fcall_process): Add (:file "file") as an option for
9649 the STDOUT buffer.
9650 (Fcall_process_region): Ditto.
9651
330d880c
EZ
96522011-04-30 Eli Zaretskii <eliz@gnu.org>
9653
8db90b73
EZ
9654 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
9655 rather than `XVECTOR (FOO)->size'.
9656
330d880c
EZ
9657 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
9658 inttypes.h, as a gnulib replacement is used if it not available in
9659 system headers.
9660
15cbd324
EZ
96612011-04-21 Eli Zaretskii <eliz@gnu.org>
9662
9663 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
9664 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
9665 of MOST_POSITIVE_FIXNUM. (Bug#8528)
9666
9667 * coding.c (coding_alloc_by_realloc): Error out if destination
9668 will grow beyond MOST_POSITIVE_FIXNUM.
9669 (decode_coding_emacs_mule): Abort if there isn't enough place in
9670 charbuf for the composition carryover bytes. Reserve an extra
9671 space for up to 2 characters produced in a loop.
9672 (decode_coding_iso_2022): Abort if there isn't enough place in
9673 charbuf for the composition carryover bytes.
9674
96752011-04-21 Eli Zaretskii <eliz@gnu.org>
afda1437 9676
ae940cca
EZ
9677 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
9678 aborting when %lld or %lll format is passed.
9679 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
9680 %llo or %llx format is passed. (Bug#8545)
9681
03ab8921
EZ
9682 * window.c (window_scroll_line_based): Use a marker instead of
9683 simple variables to record original value of point. (Bug#7952)
9684
afda1437
EZ
9685 * doprnt.c (doprnt): Fix the case where a multibyte sequence
9686 produced by %s or %c overflows available buffer space. (Bug#8545)
9687
f76dee0c
PE
96882011-04-28 Paul Eggert <eggert@cs.ucla.edu>
9689
9690 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
283cdbef 9691 (SIZE_MAX): Move defn after all includes, as they might #define it.
f76dee0c 9692
fdc5744d
JB
96932011-04-28 Juanma Barranquero <lekktu@gmail.com>
9694
9695 * w32.c (init_environment): Warn about defaulting HOME to C:\.
9696
638f053a
JB
96972011-04-28 Juanma Barranquero <lekktu@gmail.com>
9698
9699 * keyboard.c (Qdelayed_warnings_hook): Define.
9700 (command_loop_1): Run `delayed-warnings-hook'
9701 if Vdelayed_warnings_list is non-nil.
9702 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
9703 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
9704
d178f871
EZ
97052011-04-28 Eli Zaretskii <eliz@gnu.org>
9706
9707 * doprnt.c (doprnt): Don't return value smaller than the buffer
9708 size if the message was truncated. (Bug#8545).
9709
b124fd93
JB
97102011-04-28 Juanma Barranquero <lekktu@gmail.com>
9711
9712 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
9713 (Fx_window_property): #if-0 the whole functions, not just the bodies.
9714
e810457d
PE
97152011-04-27 Paul Eggert <eggert@cs.ucla.edu>
9716
9717 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
9718
ea51cceb
JB
97192011-04-27 Juanma Barranquero <lekktu@gmail.com>
9720
9721 * makefile.w32-in: Update dependencies.
9722
94dcfacf
EZ
97232011-04-27 Eli Zaretskii <eliz@gnu.org>
9724
9725 Improve `doprnt' and its usage. (Bug#8545)
9726 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
9727 `format_end'. Remove support for %l as a conversion specifier.
9728 Don't use xrealloc. Improve diagnostics when the %l size modifier
9729 is used. Update the commentary.
9730
9731 * eval.c (verror): Simplify calculation of size_t.
9732
9733 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
9734 messages.
9735
f61f41d7
PE
97362011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
9737
9738 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
9739 change.
9740
96fb4434
PE
97412011-04-27 Paul Eggert <eggert@cs.ucla.edu>
9742
9743 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
9744 This makes this file independent of the recent pseudovector change.
9745
671875da 97462011-04-26 Paul Eggert <eggert@cs.ucla.edu>
eab3844f 9747
69e9b5a3
PE
9748 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
9749
b5f869a7 9750 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
7754e151 9751 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
8d4c3955 9752 Remove unused local.
c8926152 9753 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
080e5a8d 9754
841a1577 9755 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
04f2d78b
CB
9756 GCC 4.6.0 optimizes based on type-based alias analysis.
9757 For example, if b is of type struct buffer * and v of type struct
eab3844f
PE
9758 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
9759 != &v->size, and therefore "v->size = 1; b->size = 2; return
9760 v->size;" must therefore return 1. This assumption is incorrect
9761 for Emacs, since it type-puns struct Lisp_Vector * with many other
9762 types. To fix this problem, this patch adds a new type struct
f904488f 9763 vectorlike_header that documents the constraints on layout of vectors
eab3844f
PE
9764 and pseudovectors, and helps optimizing compilers not get fooled
9765 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
9766 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
f904488f
PE
9767 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
9768 the size member.
eab3844f
PE
9769 (XSETPVECTYPE): Rewrite in terms of new macro.
9770 (XSETPVECTYPESIZE): New macro, specifying both type and size.
9771 This is a bit clearer, and further avoids the possibility of
9772 undesirable aliasing.
9773 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
f904488f 9774 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
eab3844f
PE
9775 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
9776 since Lisp_Subr is a special case (no "next" field).
04f2d78b
CB
9777 (ASIZE): Now uses header.size rather than size.
9778 All previous uses of XVECTOR (foo)->size replaced to use this macro,
f904488f
PE
9779 to avoid the hassle of writing XVECTOR (foo)->header.size.
9780 (struct vectorlike_header): New type.
eab3844f
PE
9781 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
9782 object, to help avoid aliasing.
9783 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
9784 (SUBRP): Likewise, since Lisp_Subr is a special case.
9785 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
9786 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
9787 (struct Lisp_Hash_Table): Combine first two members into a single
f904488f 9788 struct vectorlike_header member. All uses of "size" and "next" members
eab3844f
PE
9789 changed to be "header.size" and "header.next".
9790 * buffer.h (struct buffer): Likewise.
9791 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
9792 * frame.h (struct frame): Likewise.
9793 * process.h (struct Lisp_Process): Likewise.
9794 * termhooks.h (struct terminal): Likewise.
9795 * window.c (struct save_window_data, struct saved_window): Likewise.
9796 * window.h (struct window): Likewise.
9797 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
9798 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
9799 * buffer.c (init_buffer_once): Likewise.
9800 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
9801 special case.
9802 * process.c (Fformat_network_address): Use local var for size,
9803 for brevity.
9804
0df1eac5
PE
9805 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
9806
847ab9d1 9807 Make the Lisp reader and string-to-float more consistent (Bug#8525)
452f4150
PE
9808 * data.c (atof): Remove decl; no longer used or needed.
9809 (digit_to_number): Move to lread.c.
9810 (Fstring_to_number): Use new string_to_number function, to be
9811 consistent with how the Lisp reader treats infinities and NaNs.
9812 Do not assume that floating-point numbers represent EMACS_INT
9813 without losing information; this is not true on most 64-bit hosts.
9814 Avoid double-rounding errors, by insisting on integers when
9815 parsing non-base-10 numbers, as the documentation specifies.
9816 * lisp.h (string_to_number): New decl, replacing ...
9817 (isfloat_string): Remove.
bc0a5c13 9818 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
d78050d6 9819 (read1): Do not accept +. and -. as integers; this
452f4150
PE
9820 appears to have been a coding error. Similarly, do not accept
9821 strings like +-1e0 as floating point numbers. Do not report
9822 overflow for integer overflows unless the base is not 10 which
9823 means we have no simple and reliable way to continue.
9824 Break out the floating-point parsing into a new
9825 function string_to_number, so that Fstring_to_number parses
9826 floating point numbers consistently with the Lisp reader.
04f2d78b 9827 (digit_to_number): Move here from data.c. Make it static inline.
452f4150
PE
9828 (E_CHAR, EXP_INT): Remove, replacing with ...
9829 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
9830 (string_to_number): New function, replacing isfloat_string.
9831 This function checks for valid syntax and produces the resulting
9832 Lisp float number too. Rework it so that string-to-number
bc0a5c13 9833 no longer mishandles examples like "1.0e+". Use strtoumax,
d78050d6
PE
9834 so that overflow for non-base-10 numbers is reported only when
9835 there's no portable and simple way to convert to floating point.
452f4150 9836
67769ffc
PE
9837 * textprop.c (set_text_properties_1): Rewrite for clarity,
9838 and to avoid GCC warning about integer overflow.
9839
c20db43f
PE
9840 * intervals.h (struct interval): Use EMACS_INT for members
9841 where EMACS_UINT might cause problems. See
9842 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
9843 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
9844 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
9845 All uses changed.
37aa2f85
PE
9846 (offset_intervals): Tell GCC not to worry about length overflow
9847 when negating a negative length.
c20db43f 9848
2538aa2f
PE
9849 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
9850 (overrun_check_free): Likewise.
9851
f2d3008d
PE
9852 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
9853 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
9854 word size.
9855
ec8df744
PE
9856 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
9857 (gnutls_make_error): Rename local to avoid shadowing.
9858 (gnutls_emacs_global_deinit): ifdef out; not used.
9859 (Fgnutls_boot): Use const for pointer to readonly storage.
9860 Comment out unused local. Fix pointer signedness problems.
9861
640ee02d
PE
9862 * lread.c (openp): Don't stuff size_t into an 'int'.
9863 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
9864 about possible signed overflow.
9865
6048fb2a
PE
9866 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
9867 (GDK_KEY_g): Don't define if already defined.
9868 (xg_prepare_tooltip): Avoid pointer signedness problem.
9869 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
9870
fa3c87e1
PE
9871 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
9872 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
9873
2172544b
PE
9874 * xfns.c (Fx_window_property): Simplify a bit,
9875 to make a bit faster and to avoid GCC 4.6.0 warning.
9876 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
9877
9b821a21
PE
9878 * fns.c (internal_equal): Don't assume size_t fits in int.
9879
3c616cfa
PE
9880 * alloc.c (compact_small_strings): Tighten assertion a little.
9881
c2982e87
PE
9882 Replace pEd with more-general pI, and fix some printf arg casts.
9883 * lisp.h (pI): New macro, generalizing old pEd macro to other
9884 conversion specifiers. For example, use "...%"pI"d..." rather
9885 than "...%"pEd"...".
9886 (pEd): Remove. All uses replaced with similar uses of pI.
61bdb816 9887 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
c2982e87
PE
9888 * alloc.c (check_pure_size): Don't overflow by converting size to int.
9889 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
9890 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
9891 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
9892 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
9893 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
9894 64-bit hosts.
9895 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
9896 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
9897 * print.c (safe_debug_print, print_object): Likewise.
9898 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
9899 to int.
6f04d126
PE
9900 Use pI instead of if-then-else-abort. Use %p to avoid casts,
9901 avoiding the 0 flag, which is not portable.
c2982e87
PE
9902 * process.c (Fmake_network_process): Use pI to avoid cast.
9903 * region-cache.c (pp_cache): Likewise.
9904 * xdisp.c (decode_mode_spec): Likewise.
9905 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
9906 behavior on 64-bit hosts with printf arg.
6f04d126 9907 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
c2982e87
PE
9908 (x_stop_queuing_selection_requests): Likewise.
9909 (x_get_window_property): Don't truncate byte count to an 'int'
9910 when tracing.
0b432f21 9911
5e073ec7
PE
9912 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
9913 here, since it parses constructs like leading '-' and spaces,
9914 which are not wanted; and it overflows with large numbers.
9915 Instead, simply match F[0-9]+, which is what is wanted anyway.
9916
36372bf9
PE
9917 * alloc.c: Remove unportable assumptions about struct layout.
9918 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
9919 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
9920 (allocate_vectorlike, make_pure_vector): Use the new macros,
9921 plus offsetof, to remove unportable assumptions about struct layout.
9922 These assumptions hold on all porting targets that I know of, but
9923 they are not guaranteed, they're easy to remove, and removing them
9924 makes further changes easier.
9925
0b432f21
PE
9926 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
9927 This doesn't fix a bug but makes the code clearer.
bfd1c781
PE
9928 (string_overrun_cookie): Now const. Use initializers that
9929 don't formally overflow signed char, to avoid warnings.
000098c1
PE
9930 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
9931 can cause Emacs to crash when string overrun checking is enabled.
c7bda33c
PE
9932 (allocate_buffer): Don't assume sizeof (struct buffer) is a
9933 multiple of sizeof (EMACS_INT); it need not be, if
9934 alignof(EMACS_INT) < sizeof (EMACS_INT).
d0f4e1f5 9935 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
0b432f21 9936
895009e1
JB
99372011-04-26 Juanma Barranquero <lekktu@gmail.com>
9938
9939 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
9940
6a7a1b0b
TZ
99412011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
9942
9943 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
b5f869a7 9944 supposed to be handshaking. (Bug#8556)
6a7a1b0b
TZ
9945 Reported by Paul Eggert <eggert@cs.ucla.edu>.
9946
841a1577 99472011-04-26 Daniel Colascione <dan.colascione@gmail.com>
0438ce91
DC
9948
9949 * lisp.h (Qdebug): List symbol.
895009e1 9950 * eval.c (Qdebug): Restore global linkage.
0438ce91
DC
9951 * keyboard.c (debug-on-event): New variable.
9952 (handle_user_signal): Break into debugger when debug-on-event
9953 matches the current signal symbol.
9954
f2d3ba6f
DN
99552011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
9956
9957 * alloc.c (check_sblock, check_string_bytes)
9958 (check_string_free_list): Convert to standard C.
9959
42ce4c63
TZ
99602011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
9961
9962 * w32.c (emacs_gnutls_push): Fix typo.
9963
825cd63c
EZ
99642011-04-25 Eli Zaretskii <eliz@gnu.org>
9965
fb11d64d
EZ
9966 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
9967 "cast to pointer from integer of different size".
9968
825cd63c
EZ
9969 Improve doprnt and its use in verror. (Bug#8545)
9970 * doprnt.c (doprnt): Document the set of format control sequences
9971 supported by the function. Use SAFE_ALLOCA instead of always
9972 using `alloca'.
9973
9974 * eval.c (verror): Don't limit the buffer size at size_max-1, that
9975 is one byte too soon. Don't use xrealloc; instead xfree and
9976 xmalloc anew.
9977
e061a11b
TZ
99782011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
9979
9980 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
9981 callbacks stage.
9982
9983 * gnutls.c: Renamed global_initialized to
9984 gnutls_global_initialized. Added internals for the
9985 :verify-hostname-error, :verify-error, and :verify-flags
9986 parameters of `gnutls-boot' and documented those parameters in the
9987 docstring. Start callback support.
9173deec
JB
9988 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
9989 unless a fatal error occurred. Call gnutls_alert_send_appropriate
9990 on error. Return error code.
e061a11b
TZ
9991 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
9992 (emacs_gnutls_read): Likewise.
9993 (Fgnutls_boot): Return handshake error code.
9994 (emacs_gnutls_handle_error): New function.
9995 (wsaerror_to_errno): Likewise.
9996
9997 * w32.h (emacs_gnutls_pull): Add prototype.
9998 (emacs_gnutls_push): Likewise.
9999
10000 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
10001 (emacs_gnutls_push): Likewise.
10002
100032011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
10004
10005 * process.c (wait_reading_process_output): Check if GnuTLS
10006 buffered some data internally if no FDs are set for TLS
10007 connections.
10008
10009 * makefile.w32-in (OBJ2): Add gnutls.$(O).
10010 (LIBS): Link to USER_LIBS.
10011 ($(BLD)/gnutls.$(0)): New target.
10012
fa6996bc
EZ
100132011-04-24 Eli Zaretskii <eliz@gnu.org>
10014
eb35682e
EZ
10015 * xdisp.c (handle_single_display_spec): Rename the
10016 display_replaced_before_p argument into display_replaced_p, to
10017 make it consistent with the commentary. Fix typos in the
10018 commentary.
10019
e2ad650c
EZ
10020 * textprop.c (syms_of_textprop): Remove dead code.
10021 (copy_text_properties): Delete obsolete commentary about an
10022 interface that was deleted long ago. Fix typos in the description
10023 of arguments.
10024
1b2de274
EZ
10025 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
10026 to changes in oldXMenu/XMenu.h from 2011-04-16.
10027 <menu_help_message, prev_menu_help_message>: Constify.
10028 (IT_menu_make_room): menu->help_text is now `const char **';
10029 adjust.
10030
10031 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
10032 to changes in oldXMenu/XMenu.h from 2011-04-16.
10033 (struct XMenu): Declare `help_text' `const char **'.
10034
10035 * xfaces.c <Qunspecified>: Make extern again.
10036
10037 * syntax.c: Include sys/types.h before including regex.h, as
75f1671a 10038 required by POSIX.
1b2de274 10039
762b15be
EZ
10040 * doc.c (get_doc_string): Improve the format passed to `error'.
10041
10042 * doprnt.c (doprnt): Improve commentary.
10043
10044 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
10045
10046 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
10047 them with etags.
10048
f1052e5d
EZ
10049 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
10050 changes in globals.h immediately force recompilation.
762b15be
EZ
10051 (TAGS): Depend on $(CURDIR)/m/intel386.h and
10052 $(CURDIR)/s/ms-w32.h.
10053 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
f1052e5d 10054
fa6996bc
EZ
10055 * character.c (Fchar_direction): Function deleted.
10056 (syms_of_character): Don't defsubr it.
10057 <char-direction-table>: Deleted.
10058
e6c3da20
EZ
100592011-04-23 Eli Zaretskii <eliz@gnu.org>
10060
10061 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
10062 * doprnt.c: Include limits.h.
10063 (SIZE_MAX): New macro.
04f2d78b
CB
10064 (doprnt): Return a size_t value. 2nd arg is now size_t.
10065 Many local variables are now size_t instead of int or unsigned.
e6c3da20
EZ
10066 Improve overflow protection. Support `l' modifier for integer
10067 conversions. Support %l conversion. Don't assume an EMACS_INT
10068 argument for integer conversions and for %c.
10069
10070 * lisp.h (doprnt): Restore prototype.
10071
10072 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
10073 $(SRC)/character.h.
10074
10075 * Makefile.in (base_obj): Add back doprnt.o.
10076
10077 * deps.mk (doprnt.o): Add back prerequisites.
10078 (callint.o): Depend on character.h.
10079
10080 * eval.c (internal_lisp_condition_case): Include the handler
10081 representation in the error message.
10082 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
10083 when breaking from the loop.
10084
10085 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
10086
10087 * callint.c (Fcall_interactively): When displaying error message
10088 about invalid control letter, pass the character's codepoint, not
10089 a pointer to its multibyte form. Improve display of the character
10090 in octal and display also its hex code.
10091
10092 * character.c (char_string): Use %x to display the (unsigned)
10093 codepoint of an invalid character, to avoid displaying a bogus
10094 negative value.
10095
10096 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
10097 `error', not SYMBOL_NAME itself.
10098
10099 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
10100 character arguments to `error'.
10101
10102 * charset.c (check_iso_charset_parameter): Fix incorrect argument
10103 to `error' in error message about FINAL_CHAR argument. Make sure
10104 FINAL_CHAR is a character, and use %c when it is passed as
10105 argument to `error'.
10106
4ffd0d6b 101072011-04-23 Eli Zaretskii <eliz@gnu.org>
97a93095
EZ
10108
10109 * s/ms-w32.h (localtime): Redirect to sys_localtime.
10110
10111 * w32.c: Include <time.h>.
10112 (sys_localtime): New function.
10113
4ffd0d6b 101142011-04-23 Chong Yidong <cyd@stupidchicken.com>
c17819f4
CY
10115
10116 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
10117
4ffd0d6b 10118 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
aac0c6e3 10119
4ffd0d6b 101202011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
aac0c6e3 10121
4ffd0d6b
GM
10122 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
10123 zombies (Bug#8467).
aac0c6e3 10124
04c56954
EZ
101252011-04-19 Eli Zaretskii <eliz@gnu.org>
10126
10127 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
10128 gl_state.e_property when gl_state.object is Qt.
10129
10130 * insdel.c (make_gap_larger): Remove limitation of buffer size
10131 to <= INT_MAX.
10132
16a43933
CY
101332011-04-18 Chong Yidong <cyd@stupidchicken.com>
10134
10135 * xdisp.c (lookup_glyphless_char_display)
10136 (produce_glyphless_glyph): Handle cons cell entry in
10137 glyphless-char-display.
10138 (Vglyphless_char_display): Document it.
10139
10140 * term.c (produce_glyphless_glyph): Handle cons cell entry in
10141 glyphless-char-display.
10142
4581706e
CY
101432011-04-17 Chong Yidong <cyd@stupidchicken.com>
10144
10145 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
10146
10147 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
10148
10149 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
10150 definition for no-X builds.
10151
4887c6e2 101522011-04-16 Paul Eggert <eggert@cs.ucla.edu>
764430a3 10153
fd35b6f9
PE
10154 Static checks with GCC 4.6.0 and non-default toolkits.
10155
5c1ccb01
PE
10156 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
10157
006c5daa
PE
10158 * process.c (keyboard_bit_set): Define only if SIGIO.
10159 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
10160 (send_process): Repair possible setjmp clobbering.
10161
efc736d3
PE
10162 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
10163
4e2fe2e6
PE
10164 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
10165
f97334a2
PE
10166 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
10167
4e75f29d
PE
10168 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
10169 Define only if needed.
10170
90efadd1
PE
10171 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
10172 by pacifying GCC about it. Maybe it's time to retire it?
875975e9 10173 * xfaces.c (USG, __TIMEVAL__): Likewise.
90efadd1 10174
3c647824
PE
10175 * dispextern.h (struct redisplay_interface): Rename param
10176 to avoid shadowing.
e264f262 10177 * termhooks.h (struct terminal): Likewise.
761383f4 10178 * xterm.c (xembed_send_message): Likewise.
3c647824 10179
b58c5c4a
PE
10180 * insdel.c (make_gap_smaller): Define only if
10181 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
10182
cad59032
PE
10183 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
10184 it.
10185
c339dc2e
PE
10186 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
10187 so that we aren't warned about unused symbols.
10188
91a3e27b
PE
10189 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
10190
399c71d3 10191 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
7a3fb125 10192
8ffc96f5
PE
10193 * xfns.c (x_real_positions): Mark locals as initialized.
10194
eef9bc79
PE
10195 * xmenu.c (xmenu_show): Don't use uninitialized vars.
10196
098db9dd
PE
10197 * xterm.c: Fix problems found by static analysis with other toolkits.
10198 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
dda3aedd
PE
10199 (x_dispatch_event): Declare static if USE_GTK, and
10200 define if USE_GTK || USE_X_TOOLKIT.
098db9dd 10201 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
dda3aedd 10202 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
841a1577
JB
10203 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
10204 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
098db9dd 10205
eb18f6cc
PE
10206 * xmenu.c (menu_help_callback): Pointer type fixes.
10207 Use const pointers when pointing at readonly data. Avoid pointer
10208 signedness clashes.
10209 (FALSE): Remove unused macro.
10210 (update_frame_menubar): Remove unused decl.
10211
1fe72bf8
PE
10212 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
10213
60d9e1db
PE
10214 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
10215 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
10216 (single_menu_item): Rename local to avoid shadowing.
10217
39261c26
PE
10218 * keyboard.c (make_lispy_event): Remove unused local var.
10219
018c5e19
PE
10220 * frame.c, frame.h (x_get_resource_string): Bring this back, but
10221 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
10222
63d2b86e
PE
10223 * bitmaps: Change bitmaps from unsigned char back to the X11
10224 compatible char. Avoid the old compiler warnings about
10225 out-of-range initializers by using, for example, '\xab' rather
10226 than 0xab.
10227
aefd87e1
PE
10228 * xgselect.c (xgselect_initialize): Check vs interface
10229 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
10230
bf501fb9
PE
10231 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
10232
e9829fdf
PE
10233 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
10234 to read-only memory.
10235
1086c095
PE
10236 * fns.c (vector): Remove; this old hack is no longer needed.
10237
2baccd04 10238 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
401f10cb 10239 Remove unused var.
dde42981 10240 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
2baccd04 10241
72391843 10242 * xrdb.c (x_load_resources): Omit unused local.
3565b346 10243
436c16df 10244 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
8a94ea33 10245 (x_window): Rename locals to avoid shadowing.
dc5ddd85 10246 (USG): Use the kludged USG macro, to pacify gcc.
436c16df 10247
92bb796d 10248 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
bbbef9e1 10249 (x_term_init): Remove local to avoid shadowing.
92bb796d 10250
764430a3 10251 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
4887c6e2
PE
10252
10253 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
10254 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
10255
d1dfb56c
EZ
102562011-04-16 Eli Zaretskii <eliz@gnu.org>
10257
c4354cb4
EZ
10258 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
10259
d1dfb56c
EZ
10260 Fix regex.c, syntax.c and friends for buffers > 2GB.
10261 * syntax.h (struct gl_state_s): Declare character position members
10262 EMACS_INT.
10263
10264 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
10265
04f2d78b
CB
10266 * textprop.c (verify_interval_modification, interval_of):
10267 Declare arguments EMACS_INT.
d1dfb56c
EZ
10268
10269 * intervals.c (adjust_intervals_for_insertion): Declare arguments
10270 EMACS_INT.
10271
10272 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
10273
10274 * indent.c (Fvertical_motion): Local variable it_start is now
10275 EMACS_INT.
10276
10277 * regex.c (re_match, re_match_2, re_match_2_internal)
10278 (bcmp_translate, regcomp, regexec, print_double_string)
10279 (group_in_compile_stack, re_search, re_search_2, regex_compile)
10280 (re_compile_pattern, re_exec): Declare arguments and local
10281 variables `size_t' and `ssize_t' and return values `regoff_t', as
10282 appropriate.
10283 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
10284 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
10285 <compile_stack_type>: `size' and `avail' are now `size_t'.
10286
10287 * regex.h <regoff_t>: Use ssize_t, not int.
10288 (re_search, re_search_2, re_match, re_match_2): Arguments that
10289 specify buffer/string position and length are now ssize_t and
10290 size_t. Return type is regoff_t.
10291
613052cd
BK
102922011-04-16 Ben Key <bkey76@gmail.com>
10293
10294 * nsfont.m: Fixed bugs in ns_get_family and
10295 ns_descriptor_to_entity that were caused by using free to
10296 deallocate memory blocks that were allocated by xmalloc (via
10297 xstrdup). This caused Emacs to crash when compiled with
10298 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
10299 --enable-checking=xmallocoverrun). xfree is now used to
10300 deallocate these memory blocks.
10301
4170f62f 103022011-04-15 Paul Eggert <eggert@cs.ucla.edu>
3e047f51 10303
71b41406
PE
10304 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
10305
9587a89d
PE
10306 emacs_write: Accept and return EMACS_INT for sizes.
10307 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
10308 et seq.
10309 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
10310 Accept and return EMACS_INT.
10311 (emacs_gnutls_write): Return the number of bytes written on
10312 partial writes.
10313 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
273a5f82
PE
10314 (emacs_read, emacs_write): Remove check for negative size, as the
10315 Emacs source code has been audited now.
9587a89d
PE
10316 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
10317 (emacs_read, emacs_write): Use it.
273a5f82
PE
10318 * process.c (send_process): Adjust to the new signatures of
10319 emacs_write and emacs_gnutls_write. Do not attempt to store
10320 a byte offset into an 'int'; it might overflow.
9587a89d 10321 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
273a5f82 10322
3e047f51
PE
10323 * sound.c: Don't assume sizes fit in 'int'.
10324 (struct sound_device.period_size, alsa_period_size):
9c3c56a7 10325 Return EMACS_INT, not int.
3e047f51 10326 (struct sound_device.write, vox_write, alsa_write):
9c3c56a7
PE
10327 Accept EMACS_INT, not int.
10328 (wav_play, au_play): Use EMACS_INT to store sizes and to
3e047f51
PE
10329 record read return values.
10330
cc39a9db
BK
103312011-04-15 Ben Key <bkey76@gmail.com>
10332
c9d0ec6d
JB
10333 * keyboard.c (Qundefined): Don't declare static since it is used
10334 in nsfns.m.
10335 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
10336 static since they are used in nsfont.m.
cc39a9db 10337
6c60eb9f
SM
103382011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
10339
10340 * process.c (Qprocessp): Don't declare static.
10341 * lisp.h (Qprocessp): Declare again.
10342
7990b61a
JB
103432011-04-15 Juanma Barranquero <lekktu@gmail.com>
10344
10345 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
10346
5d4cb038
PE
103472011-04-14 Paul Eggert <eggert@cs.ucla.edu>
10348
8bd7b830 10349 Improve C-level modularity by making more things 'static'.
cd64ea1d 10350
e3b27b31
PE
10351 Don't publish debugger-only interfaces to other modules.
10352 * lisp.h (safe_debug_print, debug_output_compilation_hack):
10353 (verify_bytepos, count_markers): Move decls to the only modules
10354 that need them.
10355 * region-cache.h (pp_cache): Likewise.
10356 * window.h (check_all_windows): Likewise.
10357 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
10358
5d4cb038
PE
10359 * sysdep.c (croak): Now static, if
10360 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
10361 * syssignal.h (croak): Declare only if not static.
69003fd8
PE
10362
10363 * alloc.c (refill_memory_reserve): Now static if
10364 !defined REL_ALLOC || defined SYSTEM_MALLOC.
10365 * lisp.h (refill_memory_reserve): Declare only if not static.
93ea6e8f 10366
e87b6180
PE
10367 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
10368 Define only if USE_LUCID.
10369
ac64929e
PE
10370 * xrdb.c (x_customization_string, x_rm_string): Now static.
10371
6f37259d
PE
10372 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
10373 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
10374
1683e3ab
PE
10375 * xdisp.c (draw_row_with_mouse_face): Now static.
10376 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
10377
de9c2632
PE
10378 * window.h (check_all_windows): Mark externally visible.
10379
2b96acb7
PE
10380 * window.c (window_deletion_count): Now static.
10381
10382 * undo.c: Make symbols static if they're not exported.
10383 (last_undo_buffer, last_boundary_position, pending_boundary):
10384 Now static.
10385
50436f33
PE
10386 * textprop.c (interval_insert_behind_hooks): Now static.
10387 (interval_insert_in_front_hooks): Likewise.
10388
64520e5c
PE
10389 * term.c: Make symbols static if they're not exported.
10390 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
10391 (max_frame_lines, tty_set_terminal_modes):
10392 (tty_reset_terminal_modes, tty_turn_off_highlight):
10393 (get_tty_terminal): Now static.
10394 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
10395 * termhooks.h (term_mouse_moveto): Do not declare if
8bd7b830 10396 HAVE_WINDOW_SYSTEM.
64520e5c
PE
10397 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
10398 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
10399
1fa53021
PE
10400 * sysdep.c: Make symbols static if they're not exported.
10401 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
10402 Now static.
10403 (sigprocmask_set, full_mask): Remove; unused.
10404 (wait_debugging): Mark as visible.
10405 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
10406 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
10407
d4b43b22
PE
10408 * syntax.c (syntax_temp): Define only if !__GNUC__.
10409
b7c513d0
PE
10410 * sound.c (current_sound_device, current_sound): Now static.
10411
989b29ad
PE
10412 * search.c (searchbufs, searchbuf_head): Now static.
10413
13a55a78
PE
10414 * scroll.c (scroll_cost): Remove; unused.
10415 * dispextern.h (scroll_cost): Remove decl.
10416
de68a1fc
PE
10417 * region-cache.h (pp_cache): Mark as externally visible.
10418
40ccffa6
PE
10419 * process.c: Make symbols static if they're not exported.
10420 (process_tick, update_tick, create_process, chan_process):
10421 (Vprocess_alist, proc_buffered_char, datagram_access):
10422 (fd_callback_data, send_process_frame, process_sent_to): Now static.
10423 (deactivate_process): Mark defn as static, as well as decl.
10424 * lisp.h (create_process): Remove decl.
10425 * process.h (chan_process, Vprocess_alist): Remove decls.
10426
ad64fc97
PE
10427 * print.c: Make symbols static if they're not exported.
10428 (print_depth, new_backquote_output, being_printed, print_buffer):
10429 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
10430 (print_interval, print_number_index, initial_stderr_stream):
10431 Now static.
10432 * lisp.h (Fprinc): Remove decl.
10433 (debug_output_compilation_hack): Mark as externally visible.
10434
adddb265
PE
10435 * sysdep.c (croak): Move decl from here to syssignal.h.
10436 * syssignal.h (croak): Put it here, so the API can be checked when
10437 'croak' is called from dissociate_if_controlling_tty.
10438
1717ede2
PE
10439 * minibuf.c: Make symbols static if they're not exported.
10440 (minibuf_save_list, choose_minibuf_frame): Now static.
10441 * lisp.h (choose_minibuf_frame): Remove decl.
10442
fa5fb2bc
PE
10443 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
10444
1e3890d1
PE
10445 * lread.c: Make symbols static if they're not exported.
10446 (read_objects, initial_obarray, oblookup_last_bucket_number):
10447 Now static.
10448 (make_symbol): Remove; unused.
10449 * lisp.h (initial_obarray, make_symbol): Remove decls.
10450
8a1414fa
PE
10451 * keyboard.c: Make symbols static if they're not exported.
10452 (single_kboard, recent_keys_index, total_keys, recent_keys):
10453 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
10454 (this_single_command_key_start, echoing, last_auto_save):
10455 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
10456 (command_loop, echo_now, keyboard_init_hook, help_char_p):
10457 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
10458 (Vlispy_mouse_stem, double_click_count):
10459 Now static.
10460 (force_auto_save_soon): Define only if SIGDANGER.
10461 (ignore_mouse_drag_p): Now static if
10462 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
10463 (print_help): Remove; unused.
10464 (stop_character, last_timer_event): Mark as externally visible.
10465 * keyboard.h (ignore_mouse_drag_p): Declare only if
10466 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
10467 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
10468 * lisp.h (echoing): Remove decl.
10469 (force_auto_save_soon): Declare only if SIGDANGER.
10470 * xdisp.c (redisplay_window): Simplify code, to make it more
10471 obvious that ignore_mouse_drag_p is not accessed if !defined
10472 USE_GTK && !defined HAVE_NS.
10473
93ea6e8f
PE
10474 * intervals.c: Make symbols static if they're not exported.
10475 (merge_properties_sticky, merge_interval_right, delete_interval):
10476 Now static.
10477 * intervals.h (merge_interval_right, delete_interval): Remove decls.
10478
77382fcc
PE
10479 * insdel.c: Make symbols static if they're not exported.
10480 However, leave prepare_to_modify_buffer alone. It's never
10481 called from outside this function, but that appears to be a bug.
10482 (combine_after_change_list, combine_after_change_buffer):
4889fc82 10483 (adjust_after_replace, signal_before_change): Now static.
77382fcc
PE
10484 (adjust_after_replace_noundo): Remove; unused.
10485 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
4889fc82 10486 (signal_before_change): Remove decls.
77382fcc 10487
9306c32e
PE
10488 * indent.c (val_compute_motion, val_vmotion): Now static.
10489
cd44d2eb
PE
10490 * image.c: Make symbols static if they're not exported.
10491 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
10492 if USE_GTK.
10493 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
10494 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
10495
ad9a7a06
PE
10496 * fringe.c (standard_bitmaps): Now static.
10497 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
10498
81626931
PE
10499 * frame.c: Make symbols static if they're not exported.
10500 (x_report_frame_params, make_terminal_frame): Now static.
10501 (get_frame_param): Now static, unless HAVE_NS.
10502 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
10503 (x_get_resource_string): Remove; not used.
10504 * frame.h (make_terminal_frame, x_report_frame_params):
10505 (x_get_resource_string); Remove decls.
10506 (x_fullscreen_adjust): Declare only if WINDOWSNT.
10507 * lisp.h (get_frame_param): Declare only if HAVE_NS.
10508
239f9db9
PE
10509 * font.c, fontset.c: Make symbols static if they're not exported.
10510 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
10511 (FACE_SUITABLE_FOR_CHAR_P): Use it.
10512 * font.c (font_close_object): Now static.
10513 * font.h (font_close_object): Remove.
10514 * fontset.c (FONTSET_OBJLIST): Remove.
10515 (free_realized_fontset) #if-0 the body, which does nothing.
10516 (face_suitable_for_char_p): #if-0, as it's never called.
10517 * fontset.h (face_suitable_for_char_p): Remove decl.
04f2d78b
CB
10518 * xfaces.c (face_at_string_position):
10519 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
239f9db9
PE
10520 since 0 is always ASCII.
10521
dfcf3579
PE
10522 * fns.c (weak_hash_tables): Now static.
10523
5045092b
PE
10524 * fileio.c: Make symbols static if they're not exported.
10525 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
10526 (Vwrite_region_annotation_buffers): Now static.
10527
57a96f5c
PE
10528 * eval.c: Make symbols static if they're not exported.
10529 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
10530 * lisp.h (backtrace_list): Remove decl.
10531
35f08c38
PE
10532 * emacs.c: Make symbols static if they're not exported.
10533 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
10534 (fatal_error_code, fatal_error_signal_hook, standard_args):
10535 Now static.
10536 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
10537 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
10538 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
10539 * lisp.h (fatal_error_signal_hook): Remove decl.
10540 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
10541
f44bd759
PE
10542 * editfns.c: Move a (normally-unused) function to its only use.
10543 * editfns.c, lisp.h (get_operating_system_release): Remove.
10544 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
10545 worth the hassle of breaking this out.
10546
b532497d
PE
10547 * xterm.c: Make symbols static if they're not exported.
10548 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
10549 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
10550 (x_destroy_window, x_delete_display):
10551 Now static.
10552 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
10553 (x_mouse_leave): Remove; unused.
10554 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
10555 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
10556 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
10557 Remove decls.
10558 (x_mouse_leave): Declare only if WINDOWSNT.
10559 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
10560 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
10561 USE_X_TOOLKIT.
10562
1675728f
PE
10563 * ftxfont.c: Make symbols static if they're not exported.
10564 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
10565 HAVE_FREETYPE.
10566 * font.h (ftxfont_driver): Likewise.
10567
e4cebfca
PE
10568 * xfns.c: Make symbols static if they're not exported.
10569 (x_last_font_name, x_display_info_for_name):
10570 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
10571 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
10572 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
10573 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
10574 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
10575 (last_show_tip_args): Now static.
10576 (xic_defaut_fontset, xic_create_fontsetname): Define only if
10577 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
10578 (x_screen_planes): Remove; unused.
10579 * dispextern.h (x_screen_planes): Remove decl.
10580
5bf46f05
PE
10581 * dispnew.c: Make symbols static if they're not exported.
10582 * dispextern.h (redraw_garbaged_frames, scrolling):
10583 (increment_row_positions): Remove.
10584 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
10585 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
10586 Now static.
10587 (redraw_garbaged_frames): Remove; unused.
10588
435f4c28
PE
10589 * xfaces.c: Make symbols static if they're not exported.
10590 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
10591 Remove decls.
10592 * xterm.h (defined_color): Remove decls.
10593 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
10594 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
10595 (menu_face_changed_default, defined_color, free_realized_face):
10596 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
10597 (ascii_face_of_lisp_face): Remove; unused.
10598
8524aef3
PE
10599 * xdisp.c: Make symbols static if they're not exported.
10600 * dispextern.h (scratch_glyph_row, window_box_edges):
10601 (glyph_to_pixel_coords, set_cursor_from_row):
10602 (get_next_display_element, set_iterator_to_next):
10603 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
10604 (show_mouse_face): Remove decls
10605 * frame.h (message_buf_print): Likewise.
10606 * lisp.h (pop_message, set_message, check_point_in_composition):
10607 Likewise.
10608 * xterm.h (set_vertical_scroll_bar): Likewise.
10609 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
10610 (message_buf_print, scratch_glyph_row, displayed_buffer):
10611 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
10612 (get_next_display_element, show_mouse_face, window_box_edges):
10613 (frame_to_window_pixel_xy, check_point_in_composition):
10614 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
10615 (glyph_to_pixel_coords): Remove; unused.
10616
16390cd2
PE
10617 * dired.c (file_name_completion): Now static.
10618
10619 * dbusbind.c (xd_in_read_queued_messages): Now static.
10620
a25f4dfa
PE
10621 * lisp.h (circular_list_error, FOREACH): Remove; unused.
10622 * data.c (circular_list_error): Remove.
10623
14a9c8df
PE
10624 * commands.h (last_point_position, last_point_position_buffer):
10625 (last_point_position_window): Remove decls.
10626 * keyboard.c: Make these variables static.
10627
04f2d78b
CB
10628 * coding.h (coding, code_convert_region, encode_coding_gap):
10629 Remove decls.
74ab6df5
PE
10630 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
10631 (iso_code_class, detect_coding, code_convert_region): Now static.
10632 (encode_coding_gap): Remove; unused.
10633
38dfbee1
PE
10634 * chartab.c (chartab_chars, chartab_bits): Now static.
10635
a2cb4e63
PE
10636 * charset.h (charset_iso_8859_1): Remove decl.
10637 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
10638 Now static.
10639
127198fd
PE
10640 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
10641 * ccl.c (Vccl_program_table): Now static.
10642 (check_ccl_update): Remove; unused.
10643
d85b608f
PE
10644 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
10645 * category.h: ... from here.
10646 * category.c (check_category_table, set_category_set): Now static.
10647
31cd66f3
PE
10648 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
10649 * lisp.h: Remove these decls.
10650
c358e587
PE
10651 * buffer.c (buffer_count): Remove unused var.
10652
e78aecca
PE
10653 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
10654 so that it's not optimized away.
10655 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
10656 * dispextern.h (bidi_dump_cached_states): Remove, since it's
10657 exported only to the debugger.
10658
e192d7d3 10659 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
04f2d78b 10660 * atimer.h (run_all_atimers): Remove; not exported.
e192d7d3 10661
92470028
PE
10662 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
10663 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
10664 was inaccessible from Lisp.
10665 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
10666 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
10667
244ed907
PE
10668 alloc.c: Import and export fewer symbols, and remove unused items.
10669 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
10670 is defined.
10671 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
10672 it's not optimized away by whole-program optimization.
10673 (message_enable_multibyte, free_misc): Remove.
10674 (catchlist, handlerlist, mark_backtrace):
10675 Declare only if BYTE_MARK_STACK.
10676 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
10677 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
10678 (message_enable_multibyte): Remove decl.
10679 (free_misc, interval_free_list, float_block, float_block_index):
10680 (n_float_blocks, float_free_list, cons_block, cons_block_index):
10681 (cons_free_list, last_marked_index):
10682 Now static.
10683 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
10684 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
10685 (mark_backtrace): Define only if BYTE_MARK_STACK.
10686 * xdisp.c (message_enable_multibyte): Now static.
10687
61c2b50e 10688 Declare Lisp_Object Q* variables to be 'static' if not exported.
955cbe7b
PE
10689 This makes it easier for human readers (and static analyzers)
10690 to see whether these variables are used from other modules.
10691 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
10692 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
10693 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
10694 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
10695 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
10696 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
10697 * xmenu.c, xselect.c:
10698 Declare Q* vars static if they are not used in other modules.
10699 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
10700 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
10701 Remove decls of unexported vars.
10702 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
10703
95c82688
PE
10704 * lisp.h (DEFINE_FUNC): Make sname 'static'.
10705
16a97296
PE
10706 Make Emacs functions such as Fatom 'static' by default.
10707 This makes it easier for human readers (and static analyzers)
10708 to see whether these functions can be called from other modules.
10709 DEFUN now defines a static function. To make the function external
10710 so that it can be used in other C modules, use the new macro DEFUE.
8bd7b830
PE
10711 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
10712 (Finit_image_library):
16a97296
PE
10713 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
10714 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
10715 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
10716 Remove decls, since these functions are now static.
10717 (Funintern, Fget_internal_run_time): New decls, since these functions
10718 were already external.
95c82688 10719
16a97296
PE
10720 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
10721 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
10722 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
10723 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
10724 * keyboard.c, keymap.c, lread.c:
10725 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
10726 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
10727 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
10728 Mark functions with DEFUE instead of DEFUN,
10729 if they are used in other modules.
10730 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
10731 decls for now-static functions.
10732 * buffer.h (Fdelete_overlay): Remove decl.
10733 * callproc.c (Fgetenv_internal): Mark as internal.
10734 * composite.c (Fremove_list_of_text_properties): Remove decl.
10735 (Fcomposition_get_gstring): New forward static decl.
10736 * composite.h (Fcomposite_get_gstring): Remove decl.
10737 * dired.c (Ffile_attributes): New forward static decl.
10738 * doc.c (Fdocumntation_property): New forward static decl.
10739 * eval.c (Ffetch_bytecode): New forward static decl.
10740 (Funintern): Remove extern decl; now in .h file where it belongs.
10741 * fileio.c (Fmake_symbolic_link): New forward static decl.
10742 * image.c (Finit_image_library): New forward static decl.
10743 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
10744 * intervals.h (Fprevious_property_change):
10745 (Fremove_list_of_text_properties): Remove decls.
10746 * keyboard.c (Fthis_command_keys): Remove decl.
10747 (Fcommand_execute): New forward static decl.
10748 * keymap.c (Flookup_key): New forward static decl.
10749 (Fcopy_keymap): Now static.
10750 * keymap.h (Flookup_key): Remove decl.
10751 * process.c (Fget_process): New forward static decl.
10752 (Fprocess_datagram_address): Mark as internal.
10753 * syntax.c (Fsyntax_table_p): New forward static decl.
10754 (skip_chars): Remove duplicate decl.
10755 * textprop.c (Fprevious_property_change): New forward static decl.
10756 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
10757 Now internal.
10758 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
10759 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
10760
785bbd42
PE
10761 * editfns.c (Fformat): Remove unreachable code.
10762
8b913b57
AS
107632011-04-14 Andreas Schwab <schwab@linux-m68k.org>
10764
10765 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
10766 change. (Bug#8496)
10767
a6744a35
EZ
107682011-04-13 Eli Zaretskii <eliz@gnu.org>
10769
10770 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
10771 when at ZV. (Bug#8487)
10772
e7974947
AS
107732011-04-12 Andreas Schwab <schwab@linux-m68k.org>
10774
baad03f0
AS
10775 * charset.c (Fclear_charset_maps): Use xfree instead of free.
10776 (Bug#8437)
10777 * keyboard.c (parse_tool_bar_item): Likewise.
10778 * sound.c (sound_cleanup, alsa_close): Likewise.
10779 * termcap.c (tgetent): Likewise.
10780 * xfns.c (x_default_font_parameter): Likewise.
10781 * xsettings.c (read_and_apply_settings): Likewise.
10782
e7974947
AS
10783 * alloc.c (overrun_check_malloc, overrun_check_realloc)
10784 (overrun_check_free): Protoize.
10785
28272684
PE
107862011-04-12 Paul Eggert <eggert@cs.ucla.edu>
10787
10788 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
10789 since callers should never pass a negative size.
10790 Change the signature to match that of plain 'read' and 'write'; see
10791 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
10792 * lisp.h: Update prototypes of emacs_write and emacs_read.
10793
11997c76
EZ
107942011-04-11 Eli Zaretskii <eliz@gnu.org>
10795
10796 * xdisp.c (redisplay_window): Don't try to determine the character
10797 position of the scroll margin if the window start point w->startp
e896f03c 10798 is outside the buffer's accessible region. (Bug#8468)
11997c76 10799
8a2cbd72
EZ
108002011-04-10 Eli Zaretskii <eliz@gnu.org>
10801
10802 Fix write-region and its subroutines for buffers > 2GB.
10803 * fileio.c (a_write, e_write): Modify declaration of arguments and
10804 local variables to support buffers larger than 2GB.
10805 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
10806
10807 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
10808 argument, local variables, and return value.
10809
10810 * lisp.h: Update prototypes of emacs_write and emacs_read.
10811
10812 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
10813
4073e537 108142011-04-10 Paul Eggert <eggert@cs.ucla.edu>
eb3f1cc8 10815
1ebfdcb6
PE
10816 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
10817
b2ded58d
PE
10818 Fix more problems found by GCC 4.6.0's static checks.
10819
7d66342c
PE
10820 * xdisp.c (vmessage): Use a better test for character truncation.
10821
bbf47d44
PE
10822 * charset.c (load_charset_map): <, not <=, for optimization,
10823 and to avoid potential problems with integer overflow.
9248994d 10824 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
f9a68bc5 10825 * casetab.c (set_identity, shuffle): Likewise.
3ab1c7ce 10826 * editfns.c (Fformat): Likewise.
1e69125e 10827 * syntax.c (skip_chars): Likewise.
3befa583 10828
e3019616
PE
10829 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
10830 This also lets GCC 4.6.0 generate slightly better loop code.
10831
becfa255
PE
10832 * callint.c (Fcall_interactively): <, not <=, for optimization.
10833 (Fcall_interactively): Count the number of arguments produced,
10834 not the number of arguments given. This is simpler and lets GCC
10835 4.6.0 generate slightly better code.
10836
dae0cd48
PE
10837 * ftfont.c: Distingish more carefully between FcChar8 and char.
10838 The previous code passed unsigned char * to a functions like
10839 strlen and xstrcasecmp that expect char *, which does not
10840 conform to the C standard.
10841 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
10842 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
10843 char * when the C standard requires it.
10844
76032d70
PE
10845 * keyboard.c (read_char): Remove unused var.
10846
eb3f1cc8
PE
10847 * eval.c: Port to Windows vsnprintf (Bug#8435).
10848 Include <limits.h>.
10849 (SIZE_MAX): Define if the headers do not.
10850 (verror): Do not give up if vsnprintf returns a negative count.
10851 Instead, grow the buffer. This ports to Windows vsnprintf, which
10852 does not conform to C99. Problem reported by Eli Zaretskii.
10853 Also, simplify the allocation scheme, by avoiding the need for
10854 calling realloc, and removing the ALLOCATED variable.
10855
70476b54
PE
10856 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
10857
12020a9e
PE
10858 Remove invocations of doprnt, as Emacs now uses vsnprintf.
10859 But keep the doprint source code for now, as we might revamp it
10860 and use it again (Bug#8435).
ea6c7ae6
PE
10861 * lisp.h (doprnt): Remove.
10862 * Makefile.in (base_obj): Remove doprnt.o.
10863 * deps.mk (doprnt.o): Remove.
10864
5fdb398c
PE
10865 error: Print 32- and 64-bit integers portably (Bug#8435).
10866 Without this change, on typical 64-bit hosts error ("...%d...", N)
10867 was used to print both 32- and 64-bit integers N, which relied on
10868 undefined behavior.
61bdb816 10869 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
5fdb398c
PE
10870 * lisp.h (error, verror): Mark as printf-like functions.
10871 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
10872 Report overflow in size calculations when allocating printf buffer.
10873 Do not truncate output string at its first null byte.
10874 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
10875 Truncate the output at a character boundary, since vsnprintf does not
10876 do that.
10877 * charset.c (check_iso_charset_parameter): Convert internal
10878 character to string before calling 'error', since %c now has the
10879 printf meaning.
10880 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
10881 overflow when computing char to be passed to 'error'. Do not
10882 pass Lisp_Object to 'error'; pass the integer instead.
10883 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
10884 formatted with plain %d.
10885
b189fa66
PE
10886 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
10887
bff87ef0
PE
10888 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
10889
7e2cac20
PE
10890 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
10891
ce4d90b5
PE
10892 * xterm.c (x_catch_errors): Remove duplicate declaration.
10893
266c9547
PE
10894 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
10895
79c49ad2
PE
10896 * xdisp.c, lisp.h (message_nolog): Remove; unused.
10897
368f4090
JM
108982011-04-10 Jim Meyering <meyering@redhat.com>
10899
10900 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
10901 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
10902 return ssize_t not "int", and use size_t as the buffer length.
10903 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
10904 * gnutls.h: Update declarations.
10905 * process.c (read_process_output): Use ssize_t, to match.
10906 (send_process): Likewise.
10907
a32d4040
CY
109082011-04-09 Chong Yidong <cyd@stupidchicken.com>
10909
10910 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
10911
8546720e 109122011-04-09 Chong Yidong <cyd@stupidchicken.com>
aac0c6e3 10913
04f2d78b
CB
10914 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
10915 Use unsigned char, to match FcChar8 type definition.
aac0c6e3 10916
8546720e
GM
10917 * xterm.c (handle_one_xevent):
10918 * xmenu.c (create_and_show_popup_menu):
10919 * xselect.c (x_decline_selection_request)
10920 (x_reply_selection_request): Avoid type-punned deref of X events.
aac0c6e3 10921
0a2f5c1a 109222011-04-09 Eli Zaretskii <eliz@gnu.org>
a53e2e89
EZ
10923
10924 Fix some uses of `int' instead of EMACS_INT.
10925 * search.c (string_match_1, fast_string_match)
10926 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
10927 (scan_buffer, find_next_newline_no_quit)
10928 (find_before_next_newline, search_command, Freplace_match)
10929 (Fmatch_data): Make some `int' variables be EMACS_INT.
10930
10931 * xdisp.c (display_count_lines): 3rd argument and return value now
10932 EMACS_INT. All callers changed.
10933 (pint2hrstr): Last argument is now EMACS_INT.
10934
10935 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
10936 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
10937 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
10938 (decode_coding_utf_16, decode_coding_emacs_mule)
10939 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
10940 (decode_coding_ccl, decode_coding_charset)
10941 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
10942 (decode_coding_iso_2022, decode_coding_emacs_mule)
10943 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
10944 <char_offset, last_offset>: Declare EMACS_INT.
10945 (encode_coding_utf_8, encode_coding_utf_16)
10946 (encode_coding_emacs_mule, encode_invocation_designation)
10947 (encode_designation_at_bol, encode_coding_iso_2022)
10948 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
10949 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
10950 Declare EMACS_INT.
10951 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
10952 (encode_invocation_designation): Last argument P_NCHARS is now
10953 EMACS_INT.
10954 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
10955 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
10956
10957 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
10958 All users changed.
10959
10960 * ccl.c (Fccl_execute_on_string): Declare some variables
10961 EMACS_INT.
10962
8546720e 109632011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
0080dc6b
SS
10964
10965 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
10966
4e19a977
CS
109672011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
10968
10969 * process.c (Fformat_network_address): Doc fix.
10970
87302331
R
109712011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
10972
ee7683eb 10973 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
87302331 10974
cbb59342
CY
109752011-04-08 Chong Yidong <cyd@stupidchicken.com>
10976
10977 * keyboard.c (read_char): Call Lisp function help-form-show,
10978 instead of using internal_with_output_to_temp_buffer.
10979 (Qhelp_form_show): New var.
e0d38eeb 10980 (syms_of_keyboard): Use DEFSYM macro.
cbb59342
CY
10981
10982 * print.c (internal_with_output_to_temp_buffer): Function deleted.
10983
10984 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
10985
e67a13ab
CY
109862011-04-06 Chong Yidong <cyd@stupidchicken.com>
10987
04f2d78b
CB
10988 * process.c (Flist_processes): Remove to Lisp.
10989 (list_processes_1): Delete.
e67a13ab 10990
973f782d
EZ
109912011-04-06 Eli Zaretskii <eliz@gnu.org>
10992
7c106b1e
EZ
10993 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
10994
973f782d
EZ
10995 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
10996
41cf7d1a 109972011-04-06 Paul Eggert <eggert@cs.ucla.edu>
27ccc379 10998
ca23cc88
PE
10999 Fix more problems found by GCC 4.6.0's static checks.
11000
f390e2d5
PE
11001 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
11002
42eea0d0
PE
11003 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
11004
b69769da 11005 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
1e973bc7 11006
f9541e84
PE
11007 * xdisp.c (vmessage): Mark as a printf-like function.
11008
13841b55
PE
11009 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
11010
c136c10f
PE
11011 * sound.c (sound_warning): Don't crash if arg contains a printf format.
11012
5e2d4a30
PE
11013 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
11014 printf-like functions.
11015 (tiff_load): Add casts to remove these marks before passing them
11016 to system-supplied API.
11017
583f48b9
PE
11018 * eval.c (Fsignal): Remove excess argument to 'fatal'.
11019
b25d760e
PE
11020 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
11021 This avoids several warnings with gcc -Wstrict-overflow.
d5efd1d1
PE
11022 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
11023 directly, rather than having caller test rule sign. This avoids
11024 some unnecessary tests.
11025 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
11026 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
11027 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
b25d760e 11028
bc7b6697 11029 * xfont.c (xfont_text_extents): Remove var that was set but not used.
625a3eb1 11030 (xfont_open): Avoid unnecessary tests.
bc7b6697 11031
27ccc379
PE
11032 * composite.c (composition_gstring_put_cache): Use unsigned integer.
11033
dcd5c89a
PE
11034 * composite.h, composite.c (composition_gstring_put_cache):
11035 Use EMACS_INT, not int, for length.
11036
b13a45c6
PE
11037 * composite.h (COMPOSITION_DECODE_REFS): New macro,
11038 breaking out part of COMPOSITION_DECODE_RULE.
11039 (COMPOSITION_DECODE_RULE): Use it.
11040 * composite.c (get_composition_id): Remove unused local vars,
11041 by using the new macro.
11042
1e792e4d
PE
11043 * textprop.c (set_text_properties_1): Change while to do-while,
11044 since the condition is always true at first.
11045
dc6c6455 11046 * intervals.c (graft_intervals_into_buffer): Mark var as used.
aa86731f
PE
11047 (interval_deletion_adjustment): Return unsigned value.
11048 All uses changed.
dc6c6455 11049
aba7731a
PE
11050 * process.c (list_processes_1, create_pty, read_process_output):
11051 (exec_sentinel): Remove vars that were set but not used.
afd4052b 11052 (create_pty): Remove unnecessary "volatile"s.
bc57d757 11053 (Fnetwork_interface_info): Avoid possibility of int overflow.
82eaa333 11054 (read_process_output): Do adaptive read buffering even if carryover.
fe07cdfa 11055 (read_process_output): Simplify nbytes computation if buffered.
aba7731a 11056
fdfc4bf3
PE
11057 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
11058
fca8fe46 11059 * syntax.c (scan_words): Remove var that was set but not used.
12cbf13f 11060 (update_syntax_table): Use unsigned instead of int.
fca8fe46 11061
06a0259a 11062 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
3c346cc3 11063 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
e6eb4e9e 11064 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
06a0259a 11065
e7b9e80f
PE
11066 * print.c (print_error_message): Avoid int overflow.
11067
56201685
PE
11068 * font.c (font_list_entities): Redo for clarity,
11069 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
11070
78834453 11071 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
790771b1 11072 (font_score): Avoid potential overflow in diff calculation.
78834453 11073
0bc0b309 11074 * fns.c (substring_both): Remove var that is set but not used.
8cd55cb4 11075 (sxhash): Redo loop for clarity and to avoid wraparound warning.
0bc0b309 11076
e610eaca
PE
11077 * eval.c (funcall_lambda): Rename local to avoid shadowing.
11078
b895abce
PE
11079 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
11080 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
11081 can always succeed if overflow has undefined behavior.
11082
1f1d9321 11083 * search.c (boyer_moore, wordify): Remove vars set but not used.
6f076cc7 11084 (wordify): Omit three unnecessary tests.
1f1d9321 11085
c59478bc
PE
11086 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
11087 All callers changed. This avoids the need for an unused var.
11088
79b73827
PE
11089 * casefiddle.c (casify_region): Remove var that is set but not used.
11090
a4db5dfe
PE
11091 * dired.c (file_name_completion): Remove var that is set but not used.
11092
43aae36e
PE
11093 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
11094
2a47c44d 11095 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
163c5f32 11096 (Finsert_file_contents): Remove unnecessary code checking fd.
2a47c44d 11097
a37c69bf
PE
11098 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
11099 Check for integer overflow on size calculations.
11100
328ab8e7
PE
11101 * buffer.c (Fprevious_overlay_change): Remove var that is set
11102 but not used.
11103
e5a2a5cb
PE
11104 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
11105 Remove vars that are set but not used.
8d84a6eb 11106 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
6b043475 11107 (timer_check_2): Mark vars as initialized.
e5a2a5cb 11108
a60e5f68
PE
11109 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
11110
f661cb61 11111 * image.c (lookup_image): Remove var that is set but not used.
35fa624f 11112 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
f661cb61 11113
f0397f5a
PE
11114 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
11115 that are set but not used.
11116
8664db06 11117 * xfns.c (make_invisible_cursor): Don't return garbage
03733ee7 11118 if XCreateBitmapFromData fails (Bug#8410).
8664db06 11119
6abdaa4a
PE
11120 * xselect.c (x_get_local_selection, x_handle_property_notify):
11121 Remove vars that are set but not used.
11122
0ce7538d 11123 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
6abdaa4a 11124 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
0ce7538d 11125
9ae848fc
PE
11126 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
11127 Remove var that is set but not used.
0b918413
PE
11128 (scroll_bar_windows_size): Now size_t, not int.
11129 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
11130 Check for overflow.
9ae848fc 11131
a5a62657
PE
11132 * xfaces.c (realize_named_face): Remove vars that are set but not used.
11133 (map_tty_color) [!defined MSDOS]: Likewise.
11134
5c5cdd39
PE
11135 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
11136
66ebf983
PE
11137 * coding.c: Remove vars that are set but not used.
11138 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
11139 All callers changed.
11140 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
11141 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
11142 (decode_coding_charset): Remove vars that are set but not used.
11143
1be4d761
PE
11144 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
11145 that is set but not used.
11146
47553fa8
PE
11147 * print.c (print_object): Remove var that is set but not used.
11148
1f7196bf 11149 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
d1fdcab7
PE
11150 The gnulib version avoids calling malloc in the usual case,
11151 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
11152 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
11153 * filelock.c (current_lock_owner): Likewise.
11154 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
11155 * sysdep.c: Include allocator.h, careadlinkat.h.
11156 (emacs_no_realloc_allocator): New static constant.
11157 (emacs_readlink): New function.
fdb61804
PE
11158 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
11159 ../lib/careadlinkat.h.
d1fdcab7 11160
f84c17c7
SM
111612011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
11162
11163 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
11164 first non-nil return value).
11165
ef3862ad
JD
111662011-04-03 Jan Djärv <jan.h.d@swipnet.se>
11167
11168 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
11169 if not defined (Bug#8403).
11170
376a7006
JB
111712011-04-02 Juanma Barranquero <lekktu@gmail.com>
11172
11173 * xdisp.c (display_count_lines): Remove parameter `start',
11174 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
11175 (get_char_face_and_encoding): Remove parameter `multibyte_p',
11176 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
11177 (fill_stretch_glyph_string): Remove parameters `row' and `area',
11178 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
11179 and thereabouts. All callers changed.
11180 (get_per_char_metric): Remove parameter `f', unused since
11181 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
11182
6ca3801d
JM
111832011-04-02 Jim Meyering <meyering@redhat.com>
11184
11185 do not dereference NULL upon failed strdup
11186 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
11187 (ns_get_family): Likewise.
11188
d8e2b5ba
JB
111892011-04-02 Juanma Barranquero <lekktu@gmail.com>
11190
11191 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
11192
8c74fcbd
JD
111932011-04-02 Jan Djärv <jan.h.d@swipnet.se>
11194
11195 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
11196 later (Bug#8403).
11197
7200d79c
SM
111982011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
11199
03408648 11200 Add lexical binding.
7200d79c 11201
03408648
SM
11202 * window.c (Ftemp_output_buffer_show): New fun.
11203 (Fsave_window_excursion):
11204 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
11205
11206 * lread.c (lisp_file_lexically_bound_p): New function.
11207 (Fload): Bind Qlexical_binding.
11208 (readevalloop): Remove `evalfun' arg.
11209 Bind Qinternal_interpreter_environment.
11210 (Feval_buffer): Bind Qlexical_binding.
11211 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
11212 Mark as dynamic.
11213 (syms_of_lread): Declare `lexical-binding'.
11214
11215 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
11216
11217 * keyboard.c (eval_dyn): New fun.
11218 (menu_item_eval_property): Use it.
ca105506
SM
11219
11220 * image.c (parse_image_spec): Use Ffunctionp.
ca105506 11221
03408648
SM
11222 * fns.c (concat, mapcar1): Accept byte-code-functions.
11223
11224 * eval.c (Fsetq): Handle lexical vars.
11225 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
11226 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
11227 (FletX, Flet): Obey lexical binding.
11228 (Fcommandp): Handle closures.
11229 (Feval): New `lexical' arg.
11230 (eval_sub): New function extracted from Feval. Use it almost
11231 everywhere where Feval was used. Look up vars in lexical env.
11232 Handle closures.
11233 (Ffunctionp): Move from subr.el.
11234 (Ffuncall): Handle closures.
11235 (apply_lambda): Remove `eval_flags'.
11236 (funcall_lambda): Handle closures and new byte-code-functions.
11237 (Fspecial_variable_p): New function.
11238 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
11239 but without exporting it to Lisp.
23aba0ea 11240
23aba0ea 11241 * doc.c (Fdocumentation, store_function_docstring):
03408648 11242 * data.c (Finteractive_form): Handle closures.
23aba0ea 11243
03408648
SM
11244 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
11245 interactive spec.
ba83908c 11246
04f2d78b
CB
11247 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
11248 New byte-codes.
03408648
SM
11249 (exec_byte_code): New function extracted from Fbyte_code to handle new
11250 calling convention for byte-code-functions. Add new byte-codes.
ba83908c 11251
03408648 11252 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
e2abe5a1 11253
03408648 11254 * alloc.c (Fmake_symbol): Init new `declared_special' field.
e2abe5a1 11255
e2abce01
JB
112562011-03-31 Juanma Barranquero <lekktu@gmail.com>
11257
11258 * xdisp.c (redisplay_internal): Fix prototype.
11259
63696a73 112602011-03-31 Eli Zaretskii <eliz@gnu.org>
09725d26 11261
63696a73 11262 * xdisp.c (SCROLL_LIMIT): New macro.
04f2d78b
CB
11263 (try_scrolling): Use it when setting scroll_limit.
11264 Limit scrolling to 100 screen lines.
63696a73
EZ
11265 (redisplay_window): Even when falling back on "recentering",
11266 position point in the window according to scroll-conservatively,
11267 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
11268
11269 (try_scrolling): When point is above the window, allow searching
11270 as far as scroll_max, or one screenful, to compute vertical
11271 distance from PT to the scroll margin position. This prevents
11272 try_scrolling from unnecessarily failing when
11273 scroll-conservatively is set to a value slightly larger than the
11274 window height. Clean up the case of PT below the margin at bottom
11275 of window: scroll_max can no longer be INT_MAX. When aggressive
11276 scrolling is in use, don't let point enter the opposite scroll
11277 margin as result of the scroll.
11278 (syms_of_xdisp) <scroll-conservatively>: Document the
09725d26
EZ
11279 threshold of 100 lines for never-recentering scrolling.
11280
e4cc2dfc
JB
112812011-03-31 Juanma Barranquero <lekktu@gmail.com>
11282
11283 * dispextern.h (move_it_by_lines):
11284 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
11285 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
11286 (message_log_check_duplicate): Remove parameters `prev_bol' and
11287 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
11288 (redisplay_internal): Remove parameter `preserve_echo_area',
11289 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
11290
11291 * indent.c (Fvertical_motion):
11292 * window.c (window_scroll_pixel_based, Frecenter):
11293 Don't pass `need_y_p' to `move_it_by_lines'.
11294
1c470562
SM
112952011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
11296
44f230aa
SM
11297 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
11298 steal a few bits to be more compact.
11299 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
11300 Remove unneeded casts.
11301
1c470562
SM
11302 * bytecode.c (Fbyte_code): CAR and CDR can GC.
11303
888adce9
ZK
113042011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
11305
11306 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
11307 binding" message (bug#7967).
11308
f838ed7b
PE
113092011-03-30 Paul Eggert <eggert@cs.ucla.edu>
11310
77861b95
PE
11311 Fix more problems found by GCC 4.6.0's static checks.
11312
de6dbc14
PE
11313 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
11314 Remove unused local var.
11315
f838ed7b
PE
11316 * editfns.c (Fmessage_box): Remove unused local var.
11317
792c7b2b
PE
11318 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
11319 (note_mode_line_or_margin_highlight, note_mouse_highlight):
11320 Omit unused local vars.
c499e557 11321 * window.c (shrink_windows): Omit unused local var.
b01a1c29 11322 * menu.c (digest_single_submenu): Omit unused local var.
0bc32927
PE
11323 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
11324 Omit unused local var.
11325
ba0165e1
PE
11326 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
11327 Don't assume string length fits in int.
32ad8845 11328 (keyremap_step, read_key_sequence): Use size_t for sizes.
48011560 11329 (read_key_sequence): Don't check last_real_key_start redundantly.
ba0165e1 11330
3c59b4c9
PE
11331 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
11332 instead of alloca (Bug#8344).
11333
a3eed478 11334 * eval.c (Fbacktrace): Don't assume nargs fits in int.
5d5d959d 11335 (Fbacktrace_frame): Don't assume nframes fits in int.
a3eed478 11336
eb4d412d
PE
11337 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
11338
1658b401
PE
11339 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
11340 concerns.
11341
11342 * term.c (produce_glyphless_glyph): Remove unnecessary test.
11343
11344 * cm.c (calccost): Turn while-do into do-while, for clarity.
44f730c8 11345
9a2c6e05
PE
11346 * keyboard.c (syms_of_keyboard): Use the same style as later
11347 in this function when indexing through an array. This also
11348 works around GCC bug 48267.
11349
03d0a109
PE
11350 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
11351
44f730c8
PE
11352 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
11353
fe75f926
PE
11354 * chartab.c (sub_char_table_ref_and_range): Redo for slight
11355 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
11356
ffa8c828
PE
11357 * keyboard.c, keyboard.h (num_input_events): Now size_t.
11358 This avoids undefined behavior on integer overflow, and is a bit
11359 more convenient anyway since it is compared to a size_t variable.
11360
c5101a77
PE
11361 Variadic C functions now count arguments with size_t, not int.
11362 This avoids an unnecessary limitation on 64-bit machines, which
11363 caused (substring ...) to crash on large vectors (Bug#8344).
11364 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
11365 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
77861b95 11366 All variadic functions and their callers changed accordingly.
c5101a77
PE
11367 (struct gcpro.nvars): Now size_t, not int. All uses changed.
11368 * data.c (arith_driver, float_arith_driver): Likewise.
11369 * editfns.c (general_insert_function): Likewise.
11370 * eval.c (struct backtrace.nargs, interactive_p)
11371 (internal_condition_case_n, run_hook_with_args, apply_lambda)
11372 (funcall_lambda, mark_backtrace): Likewise.
11373 * fns.c (concat): Likewise.
11374 * frame.c (x_set_frame_parameters): Likewise.
11375 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
11376 0 if not found, not -1. All callers changed.
11377
dd3f25f7
PE
11378 * alloc.c (garbage_collect): Don't assume stack size fits in int.
11379 (stack_copy_size): Now size_t, not int.
11380 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
11381
461c2ab9
JB
113822011-03-28 Juanma Barranquero <lekktu@gmail.com>
11383
11384 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
11385 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
11386 All callers changed.
11387
11388 * lisp.h (multibyte_char_to_unibyte):
11389 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
11390 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
11391 * character.h (CHAR_TO_BYTE8):
11392 * cmds.c (internal_self_insert):
11393 * editfns.c (general_insert_function):
11394 * keymap.c (push_key_description):
11395 * search.c (Freplace_match):
11396 * xdisp.c (message_dolog, set_message_1): All callers changed.
11397
f6d62986
SM
113982011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
11399
11400 * keyboard.c (safe_run_hook_funcall): New function.
11401 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
11402 don't set the hook to nil, but remove the offending function instead.
11403 (Qcommand_hook_internal): Remove, unused.
11404 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
11405 Vcommand_hook_internal.
11406
11407 * eval.c (enum run_hooks_condition): Remove.
11408 (funcall_nil, funcall_not): New functions.
11409 (run_hook_with_args): Call each function through a `funcall' argument.
11410 Remove `cond' argument, now redundant.
11411 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
11412 (Frun_hook_with_args_until_failure): Adjust accordingly.
11413 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
11414
1db5b1ad
JB
114152011-03-28 Juanma Barranquero <lekktu@gmail.com>
11416
11417 * dispextern.h (string_buffer_position): Remove declaration.
11418
11419 * print.c (strout): Remove parameter `multibyte', unused since
11420 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
11421
11422 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
11423 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
11424 All callers changed.
11425
11426 * w32.c (_wsa_errlist): Use braces for struct initializers.
11427
11428 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
11429 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
11430 All callers changed.
11431 (string_buffer_position): Likewise. Also, make static (it's never
11432 used outside xdisp.c).
11433 (cursor_row_p): Remove parameter `w', unused since
11434 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
11435 (decode_mode_spec): Remove parameter `precision', introduced during
11436 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
11437 All callers changed.
11438
5ffb62aa
JD
114392011-03-27 Jan Djärv <jan.h.d@swipnet.se>
11440
11441 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
11442
461c2ab9 114432011-03-27 Anders Lindgren <andlind@gmail.com>
f0a1382a
JD
11444
11445 * nsterm.m (ns_menu_bar_is_hidden): New variable.
11446 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
11447 (ns_update_auto_hide_menu_bar): New functions.
11448 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
11449 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
11450 ns_constrain_all_frames.
11451 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
11452 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
11453
5c380ffb
JD
114542011-03-27 Jan Djärv <jan.h.d@swipnet.se>
11455
11456 * nsmenu.m (runDialogAt): Remove argument to timer_check.
11457
9af30bdf
GM
114582011-03-27 Glenn Morris <rgm@gnu.org>
11459
11460 * syssignal.h: Replace RETSIGTYPE with void.
11461 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
11462 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
11463 Replace SIGTYPE with void everywhere.
11464 * s/usg5-4-common.h (SIGTYPE): Remove definition.
11465 * s/template.h (SIGTYPE): Remove commented out definition.
11466
e2abce01
JB
114672011-03-26 Eli Zaretskii <eliz@gnu.org>
11468
11469 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
11470 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
11471
f868cd8a
JB
114722011-03-26 Juanma Barranquero <lekktu@gmail.com>
11473
59eb0929
JB
11474 * w32.c (read_unc_volume): Use parameter `henum', instead of
11475 global variable `wget_enum_handle'.
11476
11477 * keymap.c (describe_vector): Remove parameters `indices' and
11478 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
11479 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
11480
f868cd8a
JB
11481 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
11482
11483 * keyboard.c (timer_check): Remove parameter `do_it_now',
11484 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
11485 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
11486 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
11487
11488 * keyboard.c (read_char):
11489 * w32menu.c (w32_menu_display_help):
11490 * xmenu.c (show_help_event, menu_help_callback):
11491 Adjust calls to `show_help_echo'.
11492
11493 * gtkutil.c (xg_maybe_add_timer):
11494 * keyboard.c (readable_events):
11495 * process.c (wait_reading_process_output):
11496 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
11497
11498 * insdel.c (adjust_markers_gap_motion):
11499 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
11500 (gap_left, gap_right): Don't call it.
11501
2ecf6fdb
CY
115022011-03-25 Chong Yidong <cyd@stupidchicken.com>
11503
11504 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
11505 incurred during fontification.
11506
6b1f9ba4
JB
115072011-03-25 Juanma Barranquero <lekktu@gmail.com>
11508
11509 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
11510 (DEFVAR_PER_BUFFER): Don't pass it.
11511
11512 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
11513 (scrolling_window): Don't pass it.
11514
0f4a96b5
JB
115152011-03-25 Juanma Barranquero <lekktu@gmail.com>
11516
11517 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
11518
11519 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
11520 and `suffix'.
11521 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
11522 of variables specific to SELinux and computation of `encoded_absname'.
11523
11524 * image.c (XPutPixel): Remove unused variable `height'.
11525
11526 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
11527
11528 * unexw32.c (get_section_info): Remove unused variable `section'.
11529
11530 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
11531 (system_process_attributes): Remove unused variable `sess'.
11532 (sys_read): Remove unused variable `err'.
11533
11534 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
11535 (w32_wnd_proc): Remove unused variable `isdead'.
11536 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
11537 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
11538 (x_create_tip_frame): Remove unused variable `tem'.
11539
11540 * w32inevt.c (w32_console_read_socket):
11541 Remove unused variable `no_events'.
11542
11543 * w32term.c (x_draw_composite_glyph_string_foreground):
11544 Remove unused variable `width'.
11545
1149507c
JB
115462011-03-24 Juanma Barranquero <lekktu@gmail.com>
11547
11548 * w32term.c (x_set_glyph_string_clipping):
11549 Don't pass uninitialized region to CombineRgn.
11550
9c88f339
JB
115512011-03-23 Juanma Barranquero <lekktu@gmail.com>
11552
11553 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
11554 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
11555 (Fx_close_connection): Remove unused variable `i'.
11556
11557 * w32font.c (w32font_draw): Return number of glyphs.
11558 (w32font_open_internal): Remove unused variable `i'.
11559 (w32font_driver): Add missing initializer.
11560
11561 * w32menu.c (utf8to16): Remove unused variable `utf16'.
11562 (fill_in_menu): Remove unused variable `items_added'.
11563
11564 * w32term.c (last_mouse_press_frame): Remove static global variable.
11565 (w32_clip_to_row): Remove unused variable `f'.
11566 (x_delete_terminal): Remove unused variable `i'.
11567
11568 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
11569 (NOTHING): Remove unused static global variable.
11570 (uniscribe_check_otf): Remove unused variable `table'.
11571 (uniscribe_font_driver): Add missing initializers.
11572
dee091a3
JD
115732011-03-23 Julien Danjou <julien@danjou.info>
11574
11575 * term.c (Fsuspend_tty, Fresume_tty):
11576 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
11577 * window.c (temp_output_buffer_show):
11578 * insdel.c (signal_before_change):
11579 * frame.c (Fhandle_switch_frame):
11580 * fileio.c (Fdo_auto_save):
11581 * emacs.c (Fkill_emacs):
11582 * editfns.c (save_excursion_restore):
11583 * cmds.c (internal_self_insert):
11584 * callint.c (Fcall_interactively):
11585 * buffer.c (Fkill_all_local_variables):
11586 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
11587 Use Frun_hooks.
0f4a96b5 11588 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
e9fce1ac 11589 unconditionally since it does the check itself.
dee091a3 11590
2c520ab5 115912011-03-23 Paul Eggert <eggert@cs.ucla.edu>
f0641eff 11592
c9c49752
PE
11593 Fix more problems found by GCC 4.5.2's static checks.
11594
8abc3f12
PE
11595 * coding.c (encode_coding_raw_text): Avoid unnecessary test
11596 the first time through the loop, since we know p0 < p1 then.
11597 This also avoids a gcc -Wstrict-overflow warning.
11598
a2d26660
PE
11599 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
11600 leading to a memory leak, possible in functions like
11601 load_charset_map_from_file that can allocate an unbounded number
b12ef411 11602 of objects (Bug#8318).
a2d26660 11603
916c72e9
PE
11604 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
11605 that could (at least in theory) be that large.
11606
19ab8a18
PE
11607 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
11608 This is less likely to overflow, and avoids undefined behavior if
11609 overflow does occur. All callers changed. Use strtoul to scan
11610 for the unsigned long integer.
b7cbbd6f
PE
11611 (pint2hrstr): Simplify and tune code slightly.
11612 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
19ab8a18 11613
f0641eff
PE
11614 * scroll.c (do_scrolling): Work around GCC bug 48228.
11615 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
11616
7f650bb9
PE
11617 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
11618 This also avoids a warning with gcc -Wstrict-overflow.
39f5e519
PE
11619 (validate_x_resource_name): Simplify count usage.
11620 This also avoids a warning with gcc -Wstrict-overflow.
7f650bb9 11621
37dd57d1
PE
11622 * fileio.c (Fcopy_file): Report error if fchown or fchmod
11623 fail (Bug#8306).
81e56e61 11624
699979fc 11625 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
dc1ca6a8 11626
401bf9b4
PE
11627 * process.c (Fmake_network_process): Use socklen_t, not int,
11628 where POSIX says socklen_t is required in portable programs.
11629 This fixes a porting bug on hosts like 64-bit HP-UX, where
591b2973 11630 socklen_t is wider than int (Bug#8277).
401bf9b4
PE
11631 (Fmake_network_process, server_accept_connection):
11632 (wait_reading_process_output, read_process_output):
11633 Likewise.
11634
b93aacde
PE
11635 * process.c: Rename or move locals to avoid shadowing.
11636 (list_processes_1, Fmake_network_process):
11637 (read_process_output_error_handler, exec_sentinel_error_handler):
11638 Rename or move locals.
4dc343ee 11639 (Fmake_network_process): Define label "retry_connect" only if needed.
0da49335 11640 (Fnetwork_interface_info): Fix pointer signedness.
f990b4e5 11641 (process_send_signal): Add cast to avoid pointer signedness problem.
7b808126 11642 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
c939f91b 11643 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
b93aacde 11644
af8a867c 11645 Make tparam.h and terminfo.c consistent.
44f230aa
SM
11646 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
11647 Include tparam.h instead, since it declares them.
af8a867c
PE
11648 * cm.h (PC): Remove extern decl; tparam.h now does this.
11649 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
11650 * terminfo.c: Include tparam.h, to check interfaces.
11651 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
11652 (tparam): Adjust signature to match interface in tparam.h;
11653 this removes some undefined behavior. Check that outstring and len
11654 are zero, which they always are with Emacs.
11655 * tparam.h (PC, BC, UP): New extern decls.
11656
0248044d 11657 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
001a7ab4 11658 (xftfont_open): Rename locals to avoid shadowing.
0248044d 11659
8ff096c1 11660 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
a00924bb
PE
11661 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
11662 (OTF_TAG_SYM): Omit macro if not needed.
e932860f 11663 (ftfont_list): Remove unused local.
49eaafba
PE
11664 (get_adstyle_property, ftfont_pattern_entity):
11665 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
11666 Rename locals to avoid shadowing.
8ff096c1 11667
e2be39f6
PE
11668 * xfont.c (xfont_list_family): Mark var as initialized.
11669
c9735e30
PE
11670 * xml.c (make_dom): Now static.
11671
8f5201ae
PE
11672 * composite.c (composition_compute_stop_pos): Rename local to
11673 avoid shadowing.
b246f932
PE
11674 (composition_reseat_it): Remove unused locals.
11675 (find_automatic_composition, composition_adjust_point): Likewise.
80e079b2 11676 (composition_update_it): Mark var as initialized.
11b61122
PE
11677 (find_automatic_composition): Mark vars as initialized,
11678 with a FIXME (Bug#8290).
8f5201ae 11679
760fbc2c
PE
11680 character.h: Rename locals to avoid shadowing.
11681 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
11682 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
11683 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
11684 (BUF_DEC_POS): Be more systematic about renaming local temporaries
11685 to avoid shadowing.
11686
ff08eb85
PE
11687 * textprop.c (property_change_between_p): Remove; unused.
11688
fc7bf025
PE
11689 * intervals.c (interval_start_pos): Now static.
11690
235d7abc
PE
11691 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
11692
44f230aa
SM
11693 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
11694 Rename locals to avoid shadowing.
3e7d6594 11695
50060332
PE
11696 * sound.c (wav_play, au_play, Fplay_sound_internal):
11697 Fix pointer signedness.
d01f234b 11698 (alsa_choose_format): Remove unused local var.
c83b8872
PE
11699 (wav_play): Initialize a variable to 0, to prevent undefined
11700 behavior (Bug#8278).
50060332 11701
c4fc4e30
PE
11702 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
11703
918436ed
PE
11704 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
11705
c939f91b
PE
11706 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
11707 clobbering (Bug#8298).
b9c7f648
PE
11708 * sysdep.c (sys_subshell): Likewise.
11709 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
7e9123a2 11710
6bd8c144
PE
11711 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
11712 This should get cleaned up, so that child_setup has the
11713 same signature on all platforms.
11714
7710357c 11715 * callproc.c (call_process_cleanup): Now static.
cb1d0ef7 11716 (relocate_fd): Rename locals to avoid shadowing.
7710357c 11717
c59da222
CY
117182011-03-22 Chong Yidong <cyd@stupidchicken.com>
11719
11720 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
11721 not to be necessary, and produces flickering.
11722
66b87493
GM
117232011-03-20 Glenn Morris <rgm@gnu.org>
11724
11725 * config.in: Remove file.
11726
45b6f6d5
JB
117272011-03-20 Juanma Barranquero <lekktu@gmail.com>
11728
11729 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
11730 are now in src/globals.h.
11731 (syms_of_minibuf): Remove spurious & from previous change.
11732
cd394be1 117332011-03-20 Leo Liu <sdl.web@gmail.com>
3ec03f7e
LL
11734
11735 * minibuf.c (completing-read-function): New variable.
11736 (completing-read-default): Rename from completing-read.
11737 (completing-read): Call completing-read-function.
11738
b14e3e21
CY
117392011-03-19 Juanma Barranquero <lekktu@gmail.com>
11740
11741 * xfaces.c (Fx_load_color_file):
11742 Read color file from absolute filename (bug#8250).
11743
f2b726e6
JB
117442011-03-19 Juanma Barranquero <lekktu@gmail.com>
11745
11746 * makefile.w32-in: Update dependencies.
11747
09f6ff02
EZ
117482011-03-17 Eli Zaretskii <eliz@gnu.org>
11749
11750 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
11751
29a6015a
PE
117522011-03-17 Paul Eggert <eggert@cs.ucla.edu>
11753
a3a6c54e
PE
11754 Fix more problems found by GCC 4.5.2's static checks.
11755
b766f867
PE
11756 * process.c (make_serial_process_unwind, send_process_trap):
11757 (sigchld_handler): Now static.
11758
be02381c
PE
11759 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
11760 That way, the code declares only the vars that it needs.
11761 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
11762 * s/cygwin.h (PTY_ITERATION): Likewise.
11763 * s/darwin.h (PTY_ITERATION): Likewise.
11764 * s/gnu-linux.h (PTY_ITERATION): Likewise.
11765
57048744
PE
11766 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
11767 * process.c (allocate_pty): Don't declare stb unless it's needed.
11768
7914961c 11769 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
615f2d59
PE
11770 (CONSTANTLIM): Remove; unused.
11771 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
11772 Define only if needed.
7914961c 11773
b3967b18
PE
11774 * unexelf.c (unexec): Name an expression,
11775 to avoid gcc -Wbad-function-cast warning.
9ae71512
PE
11776 Use a different way to cause a compilation error if anyone uses
11777 n rather than nn, a way that does not involve shadowing.
73366a00 11778 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
b3967b18 11779
29a6015a
PE
11780 * deps.mk (unexalpha.o): Remove; unused.
11781
43cfc33e 11782 New file unexec.h, the (simple) interface for unexec (Bug#8267).
7feda0d2 11783 * unexec.h: New file.
ce701a33
PE
11784 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
11785 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
11786 Depend on unexec.h.
11787 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
11788 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
11789 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
381259ef 11790 Change as necessary to match prototype in unexec.h.
ce701a33 11791
01f44d5a
PE
11792 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
11793 shadowing.
4f63c6bb 11794 (back_comment, skip_chars): Mark vars as initialized.
01f44d5a 11795
a6670b0b
PE
11796 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
11797 Rename locals to avoid shadowing.
11798
cef2010d 11799 * lread.c (read1): Rewrite so as not to use empty "else".
0902fe45 11800 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
cef2010d 11801
d4d7173a
PE
11802 * print.c (Fredirect_debugging_output): Fix pointer signedess.
11803
f08b802a
PE
11804 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
11805 warning when compiling print.c.
11806
3ddb0639
PE
11807 * font.c (font_unparse_fcname): Abort in an "impossible" situation
11808 instead of using an uninitialized var.
5ad03b97 11809 (font_sort_entities): Mark var as initialized.
3ddb0639 11810
170a2692
PE
11811 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
11812
e663c700
PE
11813 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
11814 pointers to constants.
89bc529a 11815 (font_parse_fcname): Remove unused vars.
7b81e2d0 11816 (font_delete_unmatched): Now static.
ea838e10 11817 (font_get_spec): Remove; unused.
13a547c6
PE
11818 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
11819 (font_update_drivers, Ffont_get_glyphs, font_add_log):
11820 Rename or move locals to avoid shadowing.
e663c700 11821
2a80c887 11822 * fns.c (require_nesting_list, require_unwind): Now static.
612f56df 11823 (Ffillarray): Rename locals to avoid shadowing.
2a80c887 11824
1384fa33 11825 * floatfns.c (domain_error2): Define only if needed.
a885e2ed 11826 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1384fa33 11827
8b2c52e9
PE
11828 * alloc.c (mark_backtrace): Move decl from here ...
11829 * lisp.h: ... to here, so that it can be checked.
11830
475545b5 11831 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
d28a2170 11832 (Fdefvar): Rewrite so as not to use empty "else".
cfcbfb1a
PE
11833 (lisp_indirect_variable): Name an expression,
11834 to avoid gcc -Wbad-function-cast warning.
1faed8ae 11835 (Fdefvar): Rename locals to avoid shadowing.
475545b5 11836
b1349114 11837 * callint.c (quotify_arg, quotify_args): Now static.
a3e8cbda 11838 (Fcall_interactively): Rename locals to avoid shadowing.
b0e80955 11839 Use const pointer when appropriate.
b1349114 11840
a2928364
PE
11841 * lisp.h (get_system_name, get_operating_system_release):
11842 Move decls here, to check interfaces.
11843 * process.c (get_operating_system_release): Move decl to lisp.h.
11844 * xrdb.c (get_system_name): Likewise.
63c5d10b
PE
11845 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
11846 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
11847 some of which prompt warnings from gcc -Wbad-function-cast.
545b49b4
PE
11848 (Fformat_time_string, Fencode_time, Finsert_char):
11849 (Ftranslate_region_internal, Fformat):
11850 Rename or remove local vars to avoid shadowing.
9710023e 11851 (Ftranslate_region_internal): Mark var as initialized.
63c5d10b 11852
a415e694
PE
11853 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
11854 avoid shadowing.
11855
8ef4622d
PE
11856 * lisp.h (eassert): Check that the argument compiles, even if
11857 ENABLE_CHECKING is not defined.
11858
946f9a5b
PE
11859 * data.c (Findirect_variable): Name an expression, to avoid
11860 gcc -Wbad-function-cast warning.
112396d6 11861 (default_value, arithcompare, arith_driver, arith_error): Now static.
b9b84fa9 11862 (store_symval_forwarding): Rename local to avoid shadowing.
44f230aa
SM
11863 (Fmake_variable_buffer_local, Fmake_local_variable):
11864 Mark variables as initialized.
52746918 11865 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
946f9a5b 11866
e5aab7e7 11867 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
ae35e756
PE
11868 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
11869 Rename locals to avoid shadowing.
dff45157
PE
11870 (mark_stack): Move local variables into the #ifdef region where
11871 they're used.
7bc26fdb
PE
11872 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
11873 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
11874 needed otherwise.
11875 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
11876 (GC_STRING_CHARS): Remove; not used.
d40d4be1 11877 (Fmemory_limit): Cast sbrk's returned value to char *.
ae35e756 11878
e5aab7e7
PE
11879 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
11880 avoids undefined behavior in theory.
11881
4da60324
PE
11882 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
11883
88043301
PE
11884 Use functions, not macros, for up- and down-casing (Bug#8254).
11885 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
11886 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
11887 to use the following functions instead of these macros.
11888 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
11889 EMACS_INT, since callers assume the returned value fits in int.
11890 (upcase1): Likewise, for UPCASE_TABLE.
11891 (uppercasep, lowercasep, upcase): New static inline functions.
0da09c43 11892 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
db69b0cd 11893 the race-condition problem in the old DOWNCASE.
88043301 11894
19ed5445
PE
11895 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
11896 Rename locals to avoid shadowing.
11897 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
abbd1bcf
PE
11898 (regex_compile, re_search_2, re_match_2_internal):
11899 Remove unused local vars.
952db0d7
PE
11900 (FREE_VAR): Rewrite so as not to use empty "else",
11901 which gcc can warn about.
da053e48 11902 (regex_compile, re_match_2_internal): Mark locals as initialized.
b313f9d8
PE
11903 (RETALLOC_IF): Define only if needed.
11904 (WORDCHAR_P): Likewise. This one is never needed, but is used
11905 only in a comment talking about a compiler bug, so put inside
11906 the #if 0 of that comment.
11907 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
11908 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
11909 Remove; unused.
19ed5445 11910
1f3561e4 11911 * search.c (boyer_moore): Rename locals to avoid shadowing.
76ef09b7
PE
11912 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
11913 (PREV_CHAR_BOUNDARY): Likewise.
1f3561e4 11914
ded6f8f7
PE
11915 * search.c (simple_search): Remove unused var.
11916
dbd37a95
PE
11917 * dired.c (compile_pattern): Move decl from here ...
11918 * lisp.h: ... to here, so that it can be checked.
11919 (struct re_registers): New forward decl.
11920
7e47afad
PE
11921 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
11922
85f24f61
PE
11923 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
11924 All uses changed.
11925 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
11926 Rename locals to avoid shadowing.
5671df8f 11927 (Fvertical_motion): Mark locals as initialized.
85f24f61 11928
181aa2be 11929 * casefiddle.c (casify_object, casify_region): Now static.
e45a141a 11930 (casify_region): Mark local as initialized.
181aa2be 11931
930d429c
PE
11932 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
11933
7082eac6
PE
11934 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
11935 New macros, so that the caller can use some names other than
11936 gcpro1, gcpro2, etc.
11937 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
11938 of the new macros.
11939 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
11940 argument, for consistency with GCPRO2_VAR, etc: it is now the
11941 prefix of the variable, not the variable itself. All uses
11942 changed.
38b2c076
PE
11943 * dired.c (directory_files_internal, file_name_completion):
11944 Rename locals to avoid shadowing.
11945
15206ed9
PE
11946 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
11947 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
11948 dired.c's scmp function, had undefined behavior.
11949 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
11950 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
11951 * buffer.h: ... to here, because these macros use current_buffer,
11952 and the new implementation with inline functions needs to have
11953 current_buffer in scope now, rather than later when the macros
11954 are used.
11955 (downcase, upcase1): New static inline functions.
11956 (DOWNCASE, UPCASE1): Reimplement using these functions.
11957 This avoids undefined behavior in expressions like
11958 DOWNCASE (x) == DOWNCASE (y), which previously suffered
11959 from race conditions in accessing the global variables
11960 case_temp1 and case_temp2.
11961 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
11962 * lisp.h (case_temp1, case_temp2): Remove their decls.
11963 * character.h (ASCII_CHAR_P): Move from here ...
11964 * lisp.h: ... to here, so that the inline functions mentioned
11965 above can use them.
11966
4a6bea26
PE
11967 * dired.c (directory_files_internal_unwind): Now static.
11968
f14b7e14
PE
11969 * fileio.c (file_name_as_directory, directory_file_name):
11970 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
11971 Now static.
2893f146
PE
11972 (file_name_as_directory): Use const pointers when appropriate.
11973 (Fexpand_file_name): Likewise. In particular, newdir might
11974 point at constant storage, so make it a const pointer.
fd4ead52 11975 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
b14aac08
PE
11976 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
11977 signedness issues.
f839df0c
PE
11978 (Fset_file_times, Finsert_file_contents, auto_save_error):
11979 Rename locals to avoid shadowing.
f14b7e14 11980
5716756e 11981 * minibuf.c (choose_minibuf_frame_1): Now static.
62137a95
PE
11982 (Ftry_completion, Fall_completions): Rename or remove locals
11983 to avoid shadowing.
5716756e 11984
b4c3046a
PE
11985 * marker.c (bytepos_to_charpos): Remove; unused.
11986
b45db522
PE
11987 * lisp.h (verify_bytepos, count_markers): New decls,
11988 so that gcc does not warn that these functions aren't declared.
11989
85876d07
PE
11990 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
11991 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
f0cb4a60 11992 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
40ef059e 11993 (copy_text): Remove unused local var.
85876d07 11994
03d78a21 11995 * filelock.c (within_one_second): Now static.
b3dd38ab 11996 (lock_file_1): Rename local to avoid shadowing.
03d78a21 11997
5df8f01b
PE
11998 * buffer.c (fix_overlays_before): Mark locals as initialized.
11999 (fix_start_end_in_overlays): Likewise. This function should be
12000 simplified by using pointers-to-pointers, but that's a different
12001 matter.
b1d876f1 12002 (switch_to_buffer_1): Now static.
8f54f30a
PE
12003 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
12004 (report_overlay_modification): Rename locals to avoid shadowing.
c3bd59b5 12005
a70072c9 12006 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
fbd02d7b 12007 Fix pointer signedness issue.
edced198
PE
12008 (sys_subshell): Mark local as volatile if checking for lint,
12009 to suppress a gcc -Wclobbered warning that does not seem to be right.
15dfd3d9 12010 (MAXPATHLEN): Define only if needed.
a70072c9 12011
a0977c44
PE
12012 * process.c (serial_open, serial_configure): Move decls from here ...
12013 * systty.h: ... to here, so that they can be checked.
12014
a884fdcc
PE
12015 * fns.c (get_random, seed_random): Move extern decls from here ...
12016 * lisp.h: ... to here, so that they can be checked.
12017
604efe86 12018 * sysdep.c (reset_io): Now static.
b8950c94 12019 (wait_for_termination_signal): Remove; unused.
604efe86 12020
38fc62d9
PE
12021 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
12022 (copy_keymap_item, append_key, push_text_char_description):
12023 Now static.
1004a21a 12024 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
dbbb8427 12025 (DENSE_TABLE_SIZE): Remove; unused.
c1141155
PE
12026 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
12027 (describe_map_tree):
12028 Rename locals to avoid shadowing.
38fc62d9 12029
2f2650da
PE
12030 * keyboard.c: Declare functions static if they are not used elsewhere.
12031 (echo_char, echo_dash, cmd_error, top_level_2):
12032 (poll_for_input, handle_async_input): Now static.
69a058fa
PE
12033 (read_char, kbd_buffer_get_event, make_lispy_position):
12034 (make_lispy_event, make_lispy_movement, apply_modifiers):
12035 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
12036 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
12037 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
c8a06054 12038 (read_key_sequence, read_char): Mark locals as initialized.
3ac94672 12039 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
2f2650da 12040
a053e86c 12041 * keyboard.h (make_ctrl_char): New decl.
da2f2dd9
PE
12042 (mark_kboards): Move decl here ...
12043 * alloc.c (mark_kboards): ... from here.
a053e86c 12044
4752793e
PE
12045 * lisp.h (force_auto_save_soon): New decl.
12046
74f10ca7 12047 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
244fc23d
PE
12048 (DEFINE_DUMMY_FUNCTION): New macro.
12049 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
12050 Use it.
c03cd23f
PE
12051 (main): Add casts to avoid warnings
12052 if GCC considers string literals to be constants.
74f10ca7 12053
022e70d4
PE
12054 * lisp.h (fatal_error_signal): Add decl, since it's exported.
12055
59d6fe83
PE
12056 * dbusbind.c: Pointer signedness fixes.
12057 (xd_signature, xd_append_arg, xd_initialize):
12058 (Fdbus_call_method, Fdbus_call_method_asynchronously):
12059 (Fdbus_method_return_internal, Fdbus_method_error_internal):
12060 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
12061 (Fdbus_register_signal): Use SSDATA when the context wants char *.
12062
78320123
PE
12063 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
12064 if GCC considers string literals to be constants.
49cebcca 12065 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
78320123 12066
35ac2a97
SM
120672011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
12068
fb103ca9
SM
12069 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
12070 (print_preprocess, print_object): New macro to fix last change.
12071
35ac2a97
SM
12072 * print.c (print_preprocess): Don't forget font objects.
12073
62973b41
JB
120742011-03-16 Juanma Barranquero <lekktu@gmail.com>
12075
12076 * emacs.c (USAGE3): Doc fixes.
12077
0e48bb22
AS
120782011-03-15 Andreas Schwab <schwab@linux-m68k.org>
12079
12080 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
12081 structure.
12082
7684e57b
JB
120832011-03-14 Juanma Barranquero <lekktu@gmail.com>
12084
12085 * lisp.h (VWindow_system, Qfile_name_history):
12086 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
12087 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
12088 (w32_system_caret_x, w32_system_caret_y): Declare extern.
12089
12090 * w32select.c: Don't #include "keyboard.h".
c96bbc66 12091 (run_protected): Add extern declaration for waiting_for_input.
7684e57b
JB
12092
12093 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
12094 * w32console.c (detect_input_pending, read_input_pending)
12095 (encode_terminal_code):
12096 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
12097 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
12098 (w32_system_caret_y, Qfile_name_history):
12099 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
12100 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
12101 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
12102 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
12103 * w32proc.c (Qlocal, report_file_error):
12104 * w32term.c (Vwindow_system, updating_frame):
12105 * w32uniscribe.c (initialized, uniscribe_font_driver):
12106 Remove unneeded extern declarations.
12107
2aa46d6c
CY
121082011-03-14 Chong Yidong <cyd@stupidchicken.com>
12109
c96bbc66 12110 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
2aa46d6c 12111
cffc6f3b
CY
121122011-03-13 Chong Yidong <cyd@stupidchicken.com>
12113
12114 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
12115 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
12116 These macros can no longer be used for assignment.
12117
44f230aa
SM
12118 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
12119 Assign struct members directly, instead of using BUF_BEGV etc.
cffc6f3b
CY
12120 (record_buffer_markers, fetch_buffer_markers): New functions for
12121 recording and fetching special buffer markers.
12122 (set_buffer_internal_1, set_buffer_temp): Use them.
12123
12124 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
12125
12126 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
12127
12128 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
12129 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
12130
12131 * xdisp.c (hscroll_window_tree):
12132 (reconsider_clip_changes): Use PT instead of BUF_PT.
12133
d251f04b
EZ
121342011-03-13 Eli Zaretskii <eliz@gnu.org>
12135
12136 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
12137 $(EMACS_ROOT)/lib/intprops.h.
12138
f0c77cd1
PE
121392011-03-13 Paul Eggert <eggert@cs.ucla.edu>
12140
3eca4629
PE
12141 Fix more problems found by GCC 4.5.2's static checks.
12142
7c86ee98
PE
12143 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
12144 to unsigned char * to avoid compiler diagnostic.
b0afc268
PE
12145 (xg_free_frame_widgets): Make it clear that a local variable is
12146 needed only if USE_GTK_TOOLTIP.
01e0b5ad
PE
12147 (gdk_window_get_screen): Make it clear that this macro is needed
12148 only if USE_GTK_TOOLTIP.
1e5524e7
PE
12149 (int_gtk_range_get_value): New function, which avoids a diagnostic
12150 from gcc -Wbad-function-cast.
12151 (xg_set_toolkit_scroll_bar_thumb): Use it.
12152 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
12153 diagnostic from gcc -Wbad-function-cast.
65dc836c
PE
12154 (get_utf8_string, xg_get_file_with_chooser):
12155 Rename locals to avoid shadowing.
12156 (create_dialog): Move locals to avoid shadowing.
7c86ee98 12157
41729b81
PE
12158 * xgselect.c (xg_select): Remove unused var.
12159
f0c77cd1
PE
12160 * image.c (four_corners_best): Mark locals as initialized.
12161 (gif_load): Initialize transparent_p to zero (Bug#8238).
12162 Mark another local as initialized.
ec6cf4c6 12163 (my_png_error, my_error_exit): Mark with NO_RETURN.
f0c77cd1 12164
ce0ad53d 12165 * image.c (clear_image_cache): Now static.
d5d5a617 12166 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
e22cffbc 12167 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
77a765fd
PE
12168 (x_edge_detection): Remove unnecessary cast that
12169 gcc -Wbad-function-cast diagnoses.
2037898d 12170 (gif_load): Fix pointer signedness.
6ae141d6
PE
12171 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
12172 (jpeg_load, gif_load): Rename locals to avoid shadowing.
ce0ad53d 12173
33383987 121742011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3eca4629 12175
d32df629
PE
12176 Improve quality of tests for time stamp overflow.
12177 For example, without this patch (encode-time 0 0 0 1 1
12178 1152921504606846976) returns the obviously-bogus value (-948597
12179 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
12180 reports time overflow. See
12181 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
b8d9bd41
PE
12182 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
12183 * editfns.c: Include limits.h and intprops.h.
12184 (TIME_T_MIN, TIME_T_MAX): New macros.
12185 (time_overflow): Move earlier, to before first use.
12186 (hi_time, lo_time): New functions, for an accurate test for
12187 out-of-range times.
12188 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
12189 (Fget_internal_run_time): Don't assume time_t fits in int.
12190 (make_time): Use list2 instead of Fcons twice.
12191 (Fdecode_time): More accurate test for out-of-range times.
12192 (check_tm_member): New function.
12193 (Fencode_time): Use it, to test for out-of-range times.
d32df629
PE
12194 (lisp_time_argument): Don't rely on undefined left-shift and
12195 right-shift behavior when checking for time stamp overflow.
8be6f318 12196
fe31d94c
PE
12197 * editfns.c (time_overflow): New function, refactoring common code.
12198 (Fformat_time_string, Fdecode_time, Fencode_time):
12199 (Fcurrent_time_string): Use it.
12200
8be6f318
PE
12201 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
12202 * dired.c (make_time): Move to ...
12203 * editfns.c (make_time): ... here.
12204 * systime.h: Note the move.
12205
09d9db2c 122062011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
c47cbdfd 12207
126bc0dc
YM
12208 * fringe.c (update_window_fringes): Remove unused variables.
12209
c47cbdfd
YM
12210 * unexmacosx.c (copy_data_segment): Also copy __got section.
12211 (Bug#8223)
12212
7ac80be9
EZ
122132011-03-12 Eli Zaretskii <eliz@gnu.org>
12214
c96bbc66 12215 * termcap.c [MSDOS]: Include "msdos.h".
058e5dad
EZ
12216 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
12217 Constify `char *' arguments and their references according to
12218 prototypes in tparam.h.
12219
ecb0f94d 12220 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
058e5dad 12221
7ac80be9
EZ
12222 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
12223 Adapt all references accordingly.
12224
12225 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
12226
ef1fd07e
TT
122272011-03-11 Tom Tromey <tromey@redhat.com>
12228
12229 * buffer.c (syms_of_buffer): Remove obsolete comment.
12230
7ef4b50c
EZ
122312011-03-11 Eli Zaretskii <eliz@gnu.org>
12232
12233 * termhooks.h (encode_terminal_code): Declare prototype.
12234
12235 * msdos.c (encode_terminal_code): Don't declare prototype.
12236
12237 * term.c (encode_terminal_code): Now external again, used by
12238 w32console.c and msdos.c.
12239
44f230aa
SM
12240 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
12241 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
7ef4b50c 12242
4b1ec863 122432011-03-11 Paul Eggert <eggert@cs.ucla.edu>
f78faa98 12244
1714f52b 12245 Fix some minor problems found by GCC 4.5.2's static checks.
83316bf4 12246
4b1ec863
PE
12247 * fringe.c (update_window_fringes): Mark locals as initialized
12248 (Bug#8227).
12249 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
bf60f616 12250
524c7aa6
PE
12251 * alloc.c (mark_fringe_data): Move decl from here ...
12252 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
12253 to check its interface.
12254 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
12255
a5c0af81 12256 * fontset.c (free_realized_fontset): Now static.
7519b8cd 12257 (Fset_fontset_font): Rename local to avoid shadowing.
cc6e5db1 12258 (fontset_font): Mark local as initialized.
a9a06e0b 12259 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
a5c0af81 12260
b4716021
PE
12261 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
12262
811e9bac 12263 * xselect.c (x_disown_buffer_selections): Remove; not used.
7b83e2f1 12264 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
aa0daa9f
PE
12265 (x_own_selection, Fx_disown_selection_internal): Rename locals
12266 to avoid shadowing.
12267 (x_handle_dnd_message): Remove local to avoid shadowing.
811e9bac 12268
7e3ab302
PE
12269 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
12270 so that the caller can use some name other than gcpro1.
12271 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
58d2d479
PE
12272 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
12273 (Fx_backspace_delete_keys_p):
12274 Use them to avoid shadowing, and rename vars to avoid shadowing.
12275 (x_decode_color, x_set_name, x_window): Now static.
6b437900 12276 (Fx_create_frame): Add braces to silence GCC warning.
c0951e53 12277 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
06b0c8a0
PE
12278 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
12279 Remove unused locals.
7e3ab302
PE
12280 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
12281 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
12282 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
12283 macros.
f78faa98 12284
e2b13473
PE
12285 * xterm.h (x_mouse_leave): New decl.
12286
77f23912
PE
12287 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
12288 Remove unused functions.
cdf4ba58
PE
12289 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
12290 (x_calc_absolute_position): Now static.
7411c686 12291 (XTread_socket): Don't define label "out" unless it's used.
2b07bcff 12292 Don't declare local "event" unless it's used.
ed7bf3a5
PE
12293 (x_iconify_frame, x_free_frame_resources): Don't declare locals
12294 unless they are used.
38d0b34a
PE
12295 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
12296 (x_fatal_error_signal): Remove; not used.
a6067996
PE
12297 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
12298 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
12299 (x_error_catcher, x_connection_closed, x_error_handler):
12300 (x_error_quitter, xembed_send_message, x_iconify_frame):
12301 (my_log_handler): Rename locals to avoid shadowing.
28f1c698 12302 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2a8fade0 12303 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
77f23912 12304
44f230aa
SM
12305 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
12306 Rename or move locals to avoid shadowing.
6b463e58 12307 (tty_defined_color, merge_face_heights): Now static.
5967d051 12308 (free_realized_faces_for_fontset): Remove; not used.
1e9966ea
PE
12309 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
12310 does not deduce is never used uninitialized.
73719eba
PE
12311 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
12312 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
071048a3 12313
426994c3 12314 * terminal.c (store_terminal_param): Now static.
5489860b 12315
032f1620 12316 * xmenu.c (menu_highlight_callback): Now static.
9d66f88e 12317 (set_frame_menubar): Remove unused local.
d4323972 12318 (xmenu_show): Rename parameter to avoid shadowing.
6d1f7fee
PE
12319 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
12320 since they might point to immutable storage.
281585b0
PE
12321 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
12322 since it's unused otherwise.
032f1620 12323
367c19e5 12324 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
53df7c11 12325 Add a FIXME, since the code still doesn't look right. (Bug#8215)
9f36b9fd
PE
12326 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
12327 avoids a gcc -Wuninitialized diagnostic.
0e086e8f 12328 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
44a3a108
PE
12329 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
12330 does not deduce are never used uninitialized.
70739cbe 12331
07b48fa9
PE
12332 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
12333
8868a238 12334 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
4554d213
PE
12335 * window.c (window_loop, size_window):
12336 (run_window_configuration_change_hook, enlarge_window): Likewise.
8868a238 12337
7e5cf297 12338 * window.c (display_buffer): Now static.
d6550a9f
PE
12339 (size_window): Mark variables that gcc -Wuninitialized
12340 does not deduce are never used uninitialized.
a586633d
PE
12341 * window.h (check_all_windows): New decl, to forestall
12342 gcc -Wmissing-prototypes diagnostic.
5b555da1 12343 * dispextern.h (bidi_dump_cached_states): Likewise.
7e5cf297 12344
f6095868
PE
12345 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
12346 shadowing.
12347 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
726929c4
PE
12348 Include <limits.h>.
12349 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
12350 and to avoid gcc -Wuninitialized warning.
89ef49df
PE
12351 (load_charset_map): Mark variables that gcc -Wuninitialized
12352 does not deduce are never used uninitialized.
53df7c11 12353 (load_charset): Abort instead of using uninitialized var (Bug#8229).
f6095868 12354
f38b440c
PE
12355 * coding.c (coding_set_source, coding_set_destination):
12356 Use "else { /* comment */ }" rather than "else /* comment */;"
12357 for clarity, and to avoid gcc -Wempty-body warning.
2735d060
PE
12358 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
12359 a block, when the outer 'i' will do.
12360 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
12361 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
12362 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
12363 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
12364 (Fdecode_sjis_char, Fdefine_coding_system_internal):
12365 Rename locals to avoid shadowing.
12366 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
e2f1bab9
PE
12367 * coding.c (emacs_mule_char, encode_invocation_designation):
12368 Now static, since they're not used elsewhere.
413bb2db 12369 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
c4a63b12 12370 (decode_coding_object, encode_coding_object, detect_coding_system):
ee05f961
PE
12371 (decode_coding_emacs_mule): Mark variables that gcc
12372 -Wuninitialized does not deduce are never used uninitialized.
160b01f6
PE
12373 (detect_coding_iso_2022): Initialize a local variable that might
12374 be used uninitialized. Leave a FIXME because it's not clear that
53df7c11 12375 this initialization is needed. (Bug#8211)
5f58e762
PE
12376 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
12377 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
12378 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
12379 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
12380 Remove unused macros.
f38b440c 12381
232b38b9 12382 * category.c (hash_get_category_set): Remove unused local var.
9f3b5e69 12383 (copy_category_table): Now static, since it's not used elsewhere.
d0891610 12384 * character.c (string_count_byte8): Likewise.
232b38b9 12385
fb90da1b
PE
12386 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
12387 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
12388
fb93dbc2
PE
12389 * chartab.c (copy_sub_char_table): Now static, since it's not used
12390 elsewhere.
5c156ace
PE
12391 (sub_char_table_ref_and_range, char_table_ref_and_range):
12392 Rename locals to avoid shadowing.
bbcd0949 12393 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
fb93dbc2 12394
7d3b3862 12395 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
630d6892 12396 (BIDI_BOB): Remove unused macro.
7d3b3862 12397
6be7d3da
PE
12398 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
12399 deduce are never used uninitialized.
c2ed9c8b 12400 * term.c (encode_terminal_code): Likewise.
6be7d3da 12401
75f8807f 12402 * term.c (encode_terminal_code): Now static. Remove unused local.
72abad34 12403
50938595
PE
12404 * tparam.h: New file.
12405 * term.c, tparam.h: Include it.
12406 * deps.mk (term.o, tparam.o): Depend on tparam.h.
12407 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
12408 Move these decls to tparam.h, and make them agree with what
12409 is actually in tparam.c. The previous trick of using incompatible
12410 decls in different modules does not conform to the C standard.
12411 All callers of tparam changed to use tparam's actual API.
12412 * tparam.c (tparam1, tparam, tgoto):
12413 Use const pointers where appropriate.
12414
fbceeba2
PE
12415 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
12416 * cm.h (struct cm): Likewise.
12417 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
12418 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
12419 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
12420 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
12421 (turn_on_face, init_tty): Likewise.
12422 * termchar.h (struct tty_display_info): Likewise.
fbceeba2 12423
7f3f1250
PE
12424 * term.c (term_mouse_position): Rename local to avoid shadowing.
12425
e6ca6543
PE
12426 * alloc.c (mark_ttys): Move decl from here ...
12427 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
12428
c40f8d15
AS
124292011-03-11 Andreas Schwab <schwab@linux-m68k.org>
12430
12431 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
12432
cfe0661d
JB
124332011-03-09 Juanma Barranquero <lekktu@gmail.com>
12434
12435 * search.c (compile_pattern_1): Remove argument regp, unused since
12436 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
12437 (compile_pattern): Don't pass it.
12438
0afb4571
J
124392011-03-08 Jan Djärv <jan.h.d@swipnet.se>
12440
12441 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
12442 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
12443 for ! HAVE_GTK3.
12444 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
12445
12446 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
12447
12448 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
12449 gdk_window_get_screen, gdk_window_get_geometry,
12450 gdk_x11_window_lookup_for_display and GDK_KEY_g.
12451 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
12452 (xg_get_pixbuf_from_pixmap): New function.
12453 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
12454 to Pixmap, take frame as parameter, remove GdkColormap parameter.
12455 Call xg_get_pixbuf_from_pixmap instead of
12456 gdk_pixbuf_get_from_drawable.
12457 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
12458 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
12459 (xg_check_special_colors): Use GtkStyleContext and its functions
12460 for HAVE_GTK3.
12461 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
12462 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
12463 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
44f230aa
SM
12464 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
12465 Call gtk_widget_get_preferred_size.
0afb4571
J
12466 (xg_frame_resized): gdk_window_get_geometry only takes 5
12467 parameters.
44f230aa
SM
12468 (xg_win_to_widget, xg_event_is_for_menubar):
12469 Call gdk_x11_window_lookup_for_display.
0afb4571
J
12470 (xg_set_widget_bg): New function.
12471 (delete_cb): New function.
895009e1 12472 (xg_create_frame_widgets): Connect delete-event to delete_cb.
5c32d3f2 12473 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
0afb4571
J
12474 (xg_set_background_color): Call xg_set_widget_bg.
12475 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
12476 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
12477 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
12478 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
12479 if ! HAVE_GTK3.
12480 (update_frame_tool_bar): Call gtk_widget_hide.
12481 (xg_initialize): Use GDK_KEY_g.
12482
12483 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
12484 if ! HAVE_GTK3
12485 (x_session_initialize): Call gdk_x11_set_sm_client_id.
12486
12487 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
12488 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
12489 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
12490
1c2cc4ef
JB
124912011-03-08 Juanma Barranquero <lekktu@gmail.com>
12492
12493 * w32xfns.c (select_palette): Check success of RealizePalette against
12494 GDI_ERROR, not zero.
12495
33383987 12496See ChangeLog.11 for earlier changes.
aac0c6e3
MR
12497
12498;; Local Variables:
12499;; coding: utf-8
aac0c6e3
MR
12500;; End:
12501
2f097256 12502 Copyright (C) 2011-2012 Free Software Foundation, Inc.
aac0c6e3
MR
12503
12504 This file is part of GNU Emacs.
12505
12506 GNU Emacs is free software: you can redistribute it and/or modify
12507 it under the terms of the GNU General Public License as published by
12508 the Free Software Foundation, either version 3 of the License, or
12509 (at your option) any later version.
12510
12511 GNU Emacs is distributed in the hope that it will be useful,
12512 but WITHOUT ANY WARRANTY; without even the implied warranty of
12513 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12514 GNU General Public License for more details.
12515
12516 You should have received a copy of the GNU General Public License
12517 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.