nt/config.nt (_Noreturn): Don't reference __SUNPRO_C.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
7583a3a1
JB
12012-06-24 Juanma Barranquero <lekktu@gmail.com>
2
3 * makefile.w32-in: Update dependencies.
4
696056c2
EZ
52012-06-24 Eli Zaretskii <eliz@gnu.org>
6
7 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
8 (SYSTIME_H): Add nt/inc/sys/time.h.
9
10 * systime.h [WINDOWSNT]: Include sys/time.h.
11
12 * s/ms-w32.h (struct timespec): Definition moved from
13 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
14
845ca893
PE
152012-06-24 Paul Eggert <eggert@cs.ucla.edu>
16
17 Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
18 * buffer.h (buffer_slot_type_mismatch):
19 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
20 * eval.c (unwind_to_catch):
21 * image.c (my_png_error, my_error_exit):
22 * keyboard.c (quit_throw_to_read_char, user_error)
23 (Fexit_recursive_edit, Fabort_recursive_edit):
24 * lisp.h (die, args_out_of_range, args_out_of_range_3)
25 (wrong_type_argument, buffer_overflow, __executable_start)
26 (memory_full, buffer_memory_full, string_overflow, Fthrow)
27 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
28 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
29 (fatal):
30 (child_setup) [!DOS_NT]:
31 * lread.c (end_of_file_error, invalid_syntax):
32 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
33 * puresize.h (pure_write_error):
34 * search.c (matcher_overflow):
35 * sound.c (sound_perror, alsa_sound_perror):
36 * sysdep.c, syssignal.h (croak):
37 * term.c (maybe_fatal, vfatal):
38 * textprop.c (text_read_only):
39 * undo.c (user_error):
40 * unexmacosx.c (unexec_error):
41 * xterm.c (x_ins_del_lines, x_delete_glyphs):
42 Use _Noreturn rather than NO_RETURN.
43 No need for separate decl merely because of _Noreturn.
44 * sound.c (sound_warning, parse_sound):
45 Remove unnecessary forward decls.
46
f1dd8073
PE
472012-06-24 Paul Eggert <eggert@cs.ucla.edu>
48
49 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
50 * lisp.h (WAIT_READING_MAX): New macro.
51 * dispnew.c (Fsleep_for, sit_for):
52 * keyboard.c (kbd_buffer_get_event):
53 * process.c (Faccept_process_output):
54 Use it to avoid bogus compiler warnings with obsolescent GCC versions.
55 This improves on the previous patch, which introduced a bug
56 when time_t is unsigned and as wide as intmax_t.
57 See <http://bugs.gnu.org/9000#51>.
58
b82c1755
EZ
592012-06-23 Eli Zaretskii <eliz@gnu.org>
60
61 * dispnew.c (sit_for, Fsleep_for):
62 * keyboard.c (kbd_buffer_get_event):
63 * process.c (Faccept_process_output): Avoid compiler warnings when
64 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
65
ca300656
JB
662012-06-23 Juanma Barranquero <lekktu@gmail.com>
67
049ec95b
JB
68 * makefile.w32-in: Update dependencies.
69
ca300656
JB
70 * w32.c (ltime): Add return type and declare static.
71 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
72
db7b8d06
PE
732012-06-23 Paul Eggert <eggert@cs.ucla.edu>
74
75 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
76 Privately reported by Herbert J. Skuhra.
77 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
78 All uses changed.
79 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
80 not make_lisp_timeval, when the argument is of type EMACS_TIME.
81
0bd8297f
EZ
822012-06-23 Eli Zaretskii <eliz@gnu.org>
83
96512555
EZ
84 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
85 last argument of make_unibyte_string.
86
0bd8297f
EZ
87 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
88 language ID in the event parameters.
89
90 * w32term.c (w32_read_socket): Put the new keyboard codepage into
91 event.code, not the obscure "character set ID".
92
63def6b6
CY
932012-06-23 Chong Yidong <cyd@gnu.org>
94
95 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
96
e8a02204
EZ
972012-06-23 Eli Zaretskii <eliz@gnu.org>
98
388cdec0
EZ
99 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
100 * w32.c (fdutimens): New function.
101
102 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
103
104 * s/ms-w32.h (pselect): Redirect to sys_select.
105
106 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
107
e8a02204
EZ
108 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
109 in the logic of incrementing and decrementing the value of
110 use_relocatable_buffers.
111
d054f3fb
PE
1122012-06-23 Paul Eggert <eggert@cs.ucla.edu>
113
114 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
115 Privately reported by Herbert J. Skuhra.
116 [__FreeBSD__]: Remove "*/" typo after "#include".
117 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
118 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
119 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
120 Don't assume EMACS_TIME and struct timeval are the same type.
121
d35af63c
PE
1222012-06-22 Paul Eggert <eggert@cs.ucla.edu>
123
124 Support higher-resolution time stamps (Bug#9000).
125 The time stamps are only nanosecond-resolution at the C level,
126 since that's the best that any real-world system supports now.
127 But they are picosecond-resolution at the Lisp level, as that's
128 easy, and leaves room for future OS improvements.
129
130 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
131 (LIBES): Use it.
132
133 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
134 Don't get current time unless it's needed.
135
136 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
137 now provides it if it's absent.
138 (start_atimer): Port to higher-res time stamps.
139 Check for time stamp overflow. Don't get current time more
140 often than is needed.
141
142 * buffer.h (struct buffer): Buffer modtime now has high resolution.
143 Include systime.h, not time.h.
144 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
145
146 * dired.c: Include stat-time.h.
147 (Ffile-attributes): File times now have higher resolution.
148
149 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
150 (struct image): Timestamp now has higher resolution.
151
152 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
153 has at least microseconds now. All uses removed.
154 (update_frame, update_single_window, update_window, update_frame_1)
155 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
156
157 * editfns.c (time_overflow): Now extern.
158 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
159 (float-time, Fformat_time_string, Fcurrent_time_string)
160 (Fcurrent_time_zone): Accept and generate higher-resolution
161 time stamps.
162 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
163 (decode_time_components, lisp_seconds_argument): New functions.
164 (make_time): Now static.
165 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
166 Report an error if the time is invalid, rather than having the caller
167 do that.
168
169 * fileio.c: Include <stat-time.h>
170 (Fcopy_file): Copy higher-resolution time stamps.
171 Prefer to set the time stamp via a file descriptor if that works.
172 (Fset_file_times, Finsert_file_contents, Fwrite_region)
173 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
174 (Fvisited_file_modtime, Fset_visited_file_modtime):
175 Support higher-resolution time stamps.
176
177 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
178
179 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
180
181 * image.c (prepare_image_for_display, clear_image_cache)
182 (lookup_image): Port to higer-resolution time stamps.
183
184 * keyboard.c (start_polling, bind_polling_period):
185 Check for time stamp overflow.
186 (read_char, kbd_buffer_get_event, timer_start_idle)
187 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
188 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
189 Port to higher-resolution time stamps. Do not assume time_t is signed.
190 (decode_timer): New function. Timers are now vectors of length 9,
191 not 8, to accommodate the picosecond component.
192 (timer_check_2): Use it.
193
194 * nsterm.m (select_timeout, timeval_subtract): Remove.
195 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
196 as they're a bit more accurate and handle overflow better.
197 (ns_select): Change prototype to be compatible with pselect.
198 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
199 * nsterm.h (ns_select): Adjust prototype.
200
201 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
202 us-resolution time stamps.
203 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
204
205 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
206
207 * lisp.h (time_overflow): New decl.
208 (wait_reading_process_output): First arg is now intmax_t, not int,
209 to accommodate larger waits.
210
211 * process.h (struct Lisp_Process.read_output_delay):
212 Now counts nanoseconds, not microseconds.
213 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
214 EMACS_HAS_USECS.
215 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
216 (wait_reading_process_output):
217 Port to ns-resolution time stamps.
218 (Faccept_process_output, wait_reading_process_output):
219 Check for time stamp overflow. Do not assume time_t is signed.
220 (select_wrapper): Remove; we now use pselect.
221 (Fprocess_attributes): Now generates ns-resolution time stamps.
222
223 * sysdep.c: Include utimens.h. Don't include utime.h
224 or worry about struct utimbuf; gnulib does that for us now.
225 (gettimeofday): Remove; gnulib provides a substitute.
226 (make_timeval): New function.
227 (set_file_times): Now sets ns-resolution time stamps.
228 New arg FD; all uses changed.
229 (time_from_jiffies, ltime_from_jiffies, get_up_time)
230 (system_process_attributes):
231 Now returns ns-resolution time stamp. All uses changed.
232 Check for time stamp overflow.
233
234 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
235 provides a substitute now.
236
237 * systime.h: Include timespec.h rather than sys/time.h and time.h,
238 since it guarantees struct timespec.
239 (EMACS_TIME): Now struct timespec, so that we can support
240 ns-resolution time stamps.
241 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
242 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
243 (EMACS_USECS): Remove.
244 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
245 so multiply the arg by 1000 before storing it.
246 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
247 New macros.
248 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
249 Port to ns-resolution time stamps.
250 (EMACS_TIME_NEG_P): Remove; replaced by....
251 (EMACS_TIME_SIGN): New macro.
252 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
253 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
254 (set_file_times, make_time, lisp_time_argument): Adjust signature.
255 (make_timeval, make_lisp_time, decode_time_components): New decls.
256 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
257 that it mishandled time_t overflow. You can't compare by subtracting!
258 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
259 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
260
261 * term.c: Include <sys/time.h>.
262 (timeval_to_Time): New function, for proper overflow wraparound.
263 (term_mouse_position, term_mouse_click): Use it.
264
265 * undo.c (record_first_change): Support higher-resolution time stamps
266 in the undo buffer.
267 (Fprimitive_undo): Use them when restoring time stamps.
268
269 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
270 (w32_get_internal_run_time):
271 Port to higher-resolution Emacs time stamps.
272 (ltime): Now accepts single 64-bit integer, as that's more convenient
273 for callers.
274
275 * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
276
277 * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
278 for compatibility with pselect. Support ns-resolution time stamps.
279
280 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
281
282 * xselect.c (wait_for_property_change, x_get_foreign_selection):
283 Check for time stamp overflow, and support ns-resolution time stamps.
284
285 * xterm.c: Don't include sys/time.h; gnulib does that for us now.
286 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
287 (timeval_subtract): Remove; no longer needed.
288 (XTflash, XTring_bell, x_wait_for_event):
289 Port to ns-resolution time stamps. Don't assume time_t is signed.
290
b6a92dfe
CY
2912012-06-22 Chong Yidong <cyd@gnu.org>
292
293 * xdisp.c (x_consider_frame_title): Revert last change.
294
d251c37c
EZ
2952012-06-22 Eli Zaretskii <eliz@gnu.org>
296
297 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
298 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
299 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
300 staticidx goes up to 1597 out of 1600 = 0x640.)
301
f10deafb
PE
3022012-06-20 Paul Eggert <eggert@cs.ucla.edu>
303
304 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
305 Otherwise, the umask might be mistakenly 0 while handling input signals.
306
ec6de1e2
SM
3072012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
308
309 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
310
28be1ada
DA
3112012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
312
313 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
314 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
315 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
316 access to `contents' member of Lisp_Vector objects with AREF and ASET
317 where appropriate.
318
c6bf3022
CY
3192012-06-19 Chong Yidong <cyd@gnu.org>
320
321 * frame.c (delete_frame): When selecting a frame on a different
322 text terminal, do not alter the terminal's top-frame.
323
324 * xdisp.c (format_mode_line_unwind_data): Record the target
325 frame's selected window and its terminal's top-frame.
326 (unwind_format_mode_line): Restore them.
327 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
328 Callers changed.
329 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
330 since tty frames can be explicitly named.
331 (prepare_menu_bars): Likewise.
332
333 * term.c (Ftty_top_frame): New function.
334
defd4196
PE
3352012-06-18 Paul Eggert <eggert@cs.ucla.edu>
336
337 Port byte-code-meter to modern targets.
338 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
339 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
8b5257e1 340 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
defd4196
PE
341 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
342 (METER_1, METER_2): Simplify.
343
1053a871
SM
3442012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
345
346 * data.c (Fdefalias): Return `symbol' (bug#11686).
347
b7e8d081
MR
3482012-06-18 Martin Rudalics <rudalics@gmx.at>
349
350 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
1053a871
SM
351 gets killed during executing of this function (Bug#11665).
352 Try to always return Qt when the buffer has been actually killed.
b7e8d081
MR
353 (Vkill_buffer_query_functions): In doc-string say that functions
354 run by this hook should not change the current buffer.
355
7ea2b339
PE
3562012-06-18 Paul Eggert <eggert@cs.ucla.edu>
357
358 Fix recently-introduced process.c problems found by static checking.
359 * process.c (write_queue_push, write_queue_pop, send_process):
360 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
361 (write_queue_pop): Fix pointer signedness problem.
362 (send_process): Remove unused local.
363
96a313a1
CY
3642012-06-17 Chong Yidong <cyd@gnu.org>
365
366 * xdisp.c (redisplay_internal): No need to redisplay terminal
367 frames that are not on top.
368
20ca2e94
TN
3692012-06-17 Troels Nielsen <bn.troels@gmail.com>
370
371 * process.c (make_process): Initialize write_queue.
372 (write_queue_push, write_queue_pop): New functions.
373 (send_process): Use them to maintain correct ordering of process
374 writes (Bug#10815).
375
9a900ca9
PE
3762012-06-17 Paul Eggert <eggert@cs.ucla.edu>
377
310fbfa8
PE
378 * lisp.h (eassert): Assume C89 or later.
379 This removes the need for CHECK.
380 (CHECK): Remove. Its comments about always evaluating its
381 argument were confusing, as 'eassert' typically does not evaluate
382 its argument.
383
27bb1ca4
PE
384 * coding.c (produce_chars): Use ptrdiff_t, not int.
385
9a900ca9
PE
386 * xterm.c (x_draw_underwave): Check for integer overflow.
387 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
388
41b7f8bc 3892012-06-17 Jan Djärv <jan.h.d@swipnet.se>
50a93863
JD
390
391 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
392 referenced (Bug#11583).
393
9b0e3eba
AA
3942012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
395
396 Implement wave-style variant of underlining.
397 * dispextern.h (face_underline_type): New enum.
398 (face): Add field for underline type.
399 * nsterm.m (ns_draw_underwave): New function.
400 (ns_draw_text_decoration): Use it.
401 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
402 New functions.
403 (x_draw_glyph_string): Use them.
404 * xfaces.c (Qline, Qwave): New Lisp objects.
405 (check_lface_attrs, merge_face_ref)
1053a871
SM
406 (Finternal_set_lisp_face_attribute, realize_x_face):
407 Handle wave-style underline face attributes.
9b0e3eba
AA
408 * xterm.c (x_draw_underwave): New function.
409 (x_draw_glyph_string): Use it.
410
0fb52f11
JB
4112012-06-16 Juanma Barranquero <lekktu@gmail.com>
412
413 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
414 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
415 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
416 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
417 ($(BLD)/w32select.$(O)): Update dependencies.
418
e5560ff7
AS
4192012-06-16 Andreas Schwab <schwab@linux-m68k.org>
420
421 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
422 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
423 * character.c (_fetch_multibyte_char_p): Remove.
424 * alloc.c: Include "character.h" before "buffer.h".
425 * bidi.c: Likewise.
426 * buffer.c: Likewise.
427 * bytecode.c: Likewise.
428 * callint.c: Likewise.
429 * callproc.c: Likewise.
430 * casefiddle.c: Likewise.
431 * casetab.c: Likewise.
432 * category.c: Likewise.
433 * cmds.c: Likewise.
434 * coding.c: Likewise.
435 * composite.c: Likewise.
436 * dired.c: Likewise.
437 * dispnew.c: Likewise.
438 * doc.c: Likewise.
439 * dosfns.c: Likewise.
440 * editfns.c: Likewise.
441 * emacs.c: Likewise.
442 * fileio.c: Likewise.
443 * filelock.c: Likewise.
444 * font.c: Likewise.
445 * fontset.c: Likewise.
446 * fringe.c: Likewise.
447 * indent.c: Likewise.
448 * insdel.c: Likewise.
449 * intervals.c: Likewise.
450 * keyboard.c: Likewise.
451 * keymap.c: Likewise.
452 * lread.c: Likewise.
453 * macros.c: Likewise.
454 * marker.c: Likewise.
455 * minibuf.c: Likewise.
456 * nsfns.m: Likewise.
457 * nsmenu.m: Likewise.
458 * print.c: Likewise.
459 * process.c: Likewise.
460 * regex.c: Likewise.
461 * region-cache.c: Likewise.
462 * search.c: Likewise.
463 * syntax.c: Likewise.
464 * term.c: Likewise.
465 * textprop.c: Likewise.
466 * undo.c: Likewise.
467 * unexsol.c: Likewise.
468 * w16select.c: Likewise.
469 * w32fns.c: Likewise.
470 * w32menu.c: Likewise.
471 * window.c: Likewise.
472 * xdisp.c: Likewise.
473 * xfns.c: Likewise.
474 * xmenu.c: Likewise.
475 * xml.c: Likewise.
476 * xselect.c: Likewise.
477
2f07e6af
EZ
4782012-06-16 Eli Zaretskii <eliz@gnu.org>
479
1053a871
SM
480 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
481 If all the glyphs of the glyph row came from strings, and we have no
2f07e6af 482 cursor positioning clues, put the cursor on the first glyph of the
1097afe4
EZ
483 row.
484 (handle_face_prop): Use chunk-relative overlay string index when
485 indexing into it->string_overlays array. (Bug#11653)
946fdb73
EZ
486 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
487 the rightmost. (Bug#11720)
2f07e6af 488
29b83cec
AS
4892012-06-16 Andreas Schwab <schwab@linux-m68k.org>
490
491 * category.h (CHAR_HAS_CATEGORY): Define as inline.
492 (CATEGORY_MEMBER): Enforce 1/0 value.
493 * category.c (_temp_category_set): Remove.
494
4c5501e9
EZ
4952012-06-16 Eli Zaretskii <eliz@gnu.org>
496
497 * window.c (Fdelete_other_windows_internal)
498 (Fdelete_window_internal): Don't access frame's mouse highlight
499 info of the initial frame. (Bug#11677)
500
2b570124
PE
5012012-06-14 Paul Eggert <eggert@cs.ucla.edu>
502
e93864f9
PE
503 * .gdbinit (xgetint): Fix recently-introduced paren typo.
504 Assume USE_2_TAGS_FOR_INTS.
505 (xreload): Adjust $tagmask width to match recent lisp.h change.
506
2b570124
PE
507 Simplify lisp.h in minor ways that should not affect code.
508 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
509 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
510 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
511 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
512 (INTTYPEBITS): New macro, for clarity.
513 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
1053a871
SM
514 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
515 Simplify now that USE_LSB_TAG is always defined.
2b570124
PE
516 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
517 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
518
81755f69
JB
5192012-06-13 Juanma Barranquero <lekktu@gmail.com>
520
521 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
522
16192a57
GM
5232012-06-13 Glenn Morris <rgm@gnu.org>
524
525 * s/bsd-common.h (BSD4_3):
526 * s/usg5-4-common.h (USG5_4): No longer define; unused.
527
646b5f55
AS
5282012-06-13 Andreas Schwab <schwab@linux-m68k.org>
529
530 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
531 instead of union.
532 (XLI, XIL): Define.
1053a871
SM
533 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
534 Use them.
535 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
646b5f55 536 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
1053a871 537 * alloc.c (widen_to_Lisp_Object): Remove.
646b5f55
AS
538 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
539 * frame.c (delete_frame): Remove outdated comment.
540 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
541 USE_LISP_UNION_TYPE.
542 (Fw32_unregister_hot_key): Likewise.
543 (Fw32_toggle_lock_key): Likewise.
544 * w32menu.c (add_menu_item): Likewise.
545 (w32_menu_display_help): Use XIL instead of checking
546 USE_LISP_UNION_TYPE.
547 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
548 (init_heap): Likewise.
549 * w32term.c (w32_read_socket): Update comment.
550
1d3823c9
GM
5512012-06-13 Glenn Morris <rgm@gnu.org>
552
c62ff706
GM
553 * s/usg5-4-common.h, src/s/unixware.h:
554 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
555
1d3823c9
GM
556 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
557
bfe3e0a2
PE
5582012-06-13 Paul Eggert <eggert@cs.ucla.edu>
559
560 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
561 * alloc.c (make_number) [!defined make_number]:
562 Remove, as lisp.h always defines this now.
563 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
564 (roundup_size): Verify that it is a power of 2.
565 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
566 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
567 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
568 -DUSE_LSB_TAG=0, to override the automatically-selected default.
569 USE_LSB_TAG now is always defined to be either 0 or 1.
570 All uses changed.
571 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
572 code works fine either way, and efficiency is not a concern here,
573 as the union type is for debugging, not for production.
574 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
575 Use an inline function on all platforms when using the union type,
576 since this is simpler and 'static inline' can be used portably
577 within Emacs now.
578 (LISP_INITIALLY_ZERO): New macro.
579 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
580 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
581
45fa9c0f
GM
5822012-06-12 Glenn Morris <rgm@gnu.org>
583
b4492cba
GM
584 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
585
586 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
0d369729 587
45fa9c0f
GM
588 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
589 Move BROKEN_SIGIO to configure.
590
591 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
592 Move NO_TERMIO to configure.
593
0e25d334
CY
5942012-06-12 Chong Yidong <cyd@gnu.org>
595
596 * image.c (imagemagick_load_image): Use MagickFlattenImage if
597 MagickMergeImageLayers is undefined. Use pixel pusher loop if
598 MagickExportImagePixels is undefined.
599
43682bb6
PE
6002012-06-12 Paul Eggert <eggert@cs.ucla.edu>
601
602 * image.c (imagemagick_load_image): Remove unused label.
603
a9be7d2b
GM
6042012-06-11 Glenn Morris <rgm@gnu.org>
605
606 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
607 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
608 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
609 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
610
3017f87f
SM
6112012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
612
613 * alloc.c (make_byte_code): New function.
614 (Fmake_byte_code): Use it. Don't purify here.
615 * lread.c (read1): Use it as well to avoid extra allocation.
616
1b9b4cf4
CY
6172012-06-11 Chong Yidong <cyd@gnu.org>
618
619 * image.c (imagemagick_load_image): Implement transparency.
620
95988fcf
AS
6212012-06-10 Andreas Schwab <schwab@linux-m68k.org>
622
623 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
624 account for preceding backslashes. (Bug#11663)
625
cd4eb164
CY
6262012-06-09 Chong Yidong <cyd@gnu.org>
627
628 * term.c: Support italics in capable terminals (Bug#9652).
629 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
630 (turn_on_face): Output using TS_enter_italic_mode if available.
631 Don't handle unused blinking and alt-charset cases.
632 (turn_off_face): Handle italic case; discard unused tty_blinking_p
633 and tty_alt_charset_p cases.
634 (tty_capable_p, init_tty): Support italics.
635
636 * termchar.h (struct tty_display_info): Add field for italics.
637 Remove unused blink field.
638
639 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
640 Handle slant.
641
642 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
643 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
644 tty_alt_charset_p. Add tty_italic_p.
645
ff88beb8
MA
6462012-06-09 Michael Albinus <michael.albinus@gmx.de>
647
648 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
649 dbus_type_is_basic if available.
650 (xd_extract_signed, xd_extract_unsigned): Rename from
651 extract_signed and extract_unsigned, respectively. Adapt callers.
652
44286096
CY
6532012-06-09 Chong Yidong <cyd@gnu.org>
654
1682701f
CY
655 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
656
44286096
CY
657 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
658 case (Bug#9752).
659
d86feb17
PE
6602012-06-08 Paul Eggert <eggert@cs.ucla.edu>
661
662 * xdisp.c (vmessage): Treat frame message as multibyte.
663 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
664 would generate the diagnostic "Making \302\247 buffer-local while
665 let-bound!".
666
d5c20fe8
EZ
6672012-06-08 Eli Zaretskii <eliz@gnu.org>
668
669 * dispnew.c (showing_window_margins_p): Undo last change, which
670 was done due to an inadvertent commit.
671 (adjust_frame_glyphs_for_frame_redisplay): Do call
672 showing_window_margins_p.
673
513749ee
SM
6742012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
675
676 * eval.c (Fmake_var_non_special): New primitive.
677 (syms_of_eval): Defsubr it.
678 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
679
d4a8f5c1
JB
6802012-06-08 Juanma Barranquero <lekktu@gmail.com>
681
682 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
683 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
684
8bbbc977
EZ
6852012-06-08 Eli Zaretskii <eliz@gnu.org>
686
687 * alloc.c (allocate_vectorlike): Fix last change.
688
f3372c87
DA
6892012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
690
691 Block-based vector allocation of small vectors.
692 * lisp.h (struct vectorlike_header): New field `nbytes',
693 adjust comment accordingly.
694 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
695 to denote vector blocks. Adjust users (live_vector_p,
696 mark_maybe_pointer, valid_lisp_object_p) accordingly.
697 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
698 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES),
699 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX),
700 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST),
701 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
702 (roundup_size): New constant.
703 (struct vector_block): New data type.
704 (vector_blocks, vector_free_lists, zero_vector): New variables.
513749ee 705 (all_vectors): Rename to `large_vectors'.
f3372c87
DA
706 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
707 (sweep_vectors): New functions.
708 (allocate_vectorlike): Return `zero_vector' as the only vector of
709 0 items. Allocate new vector from block if vector size is less than
710 or equal to VBLOCK_BYTES_MAX.
711 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
712 (init_alloc_once): Add call to init_vectors.
713
4f18a4ed
SM
7142012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
715
716 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
717
86f158bc
PE
7182012-06-07 Paul Eggert <eggert@cs.ucla.edu>
719
720 * doprnt.c (doprnt): Truncate multibyte char correctly.
721 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
722 would mishandle a string argument "Xc" if X was a multibyte
723 character of length 2: it would truncate after X's first byte
724 rather than including all of X.
725
c5cfcbe0
CY
7262012-06-06 Chong Yidong <cyd@gnu.org>
727
728 * buffer.c (word_wrap): Doc fix.
729
c05cf390
PE
7302012-06-04 Paul Eggert <eggert@cs.ucla.edu>
731
732 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
733
0c3461de
GM
7342012-06-03 Glenn Morris <rgm@gnu.org>
735
736 * xdisp.c (tool-bar-style): Doc fix.
737
c71232db
UM
7382012-06-03 Ulrich Müller <ulm@gentoo.org>
739
740 * Makefile.in (PAXCTL): Define.
741 (temacs$(EXEEXT)): Disable memory randomization for the temacs
742 binary via PaX flags if the paxctl utility is available.
743 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
744 Restore PaX flags to their default. (Bug#11398)
745
383f7350
CY
7462012-06-03 Chong Yidong <cyd@gnu.org>
747
748 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
749 buffer (Bug#11226).
750
5f2c76c6
CY
7512012-06-03 Chong Yidong <cyd@gnu.org>
752
753 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
754 (note_mode_line_or_margin_highlight): If there is no help echo,
755 use mode-line-default-help-echo. Handle the case where the mouse
756 position is past the end of the mode line string.
757
758 * buffer.c (buffer_local_value_1): New function, split from
759 Fbuffer_local_value; can return Qunbound.
760 (Fbuffer_local_value): Use it.
761 (Vmode_line_format): Docstring tweaks.
762
773d47f6
PE
7632012-06-02 Paul Eggert <eggert@cs.ucla.edu>
764
765 * sysdep.c (system_process_attributes): Improve comment.
766
f2d6a3df
SM
7672012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
768
769 * keyboard.c: Export real-this-command to Elisp.
770 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
771 and DEFVAR it. Update all users.
772
63810350
PE
7732012-06-02 Paul Eggert <eggert@cs.ucla.edu>
774
7bd5c1f4
PE
775 * minibuf.c (Fassoc_string): Remove duplicate declaration.
776
63810350
PE
777 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
778 Convert pctcpu and pctmem to Lisp float properly.
779 Let the compiler fold better, as 100.0/0x8000 is exact.
780
a2821611
AS
7812012-06-02 Andreas Schwab <schwab@linux-m68k.org>
782
783 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
784 cons_block.
785
5fceba1d
PE
7862012-06-01 Paul Eggert <eggert@cs.ucla.edu>
787
788 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
789
c98ff5dd
DA
7902012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
791
792 For a 'struct window', replace some Lisp_Object fields to
793 bitfields where appropriate, remove unused fields.
794 * window.h (struct window): Remove unused 'last_mark_x' and
795 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
796 change it's type from Lisp_Object to bitfield.
797 Change type of 'force_start', 'optional_new_start',
798 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
799 fields from Lisp_Object to bitfield. Adjust users accordingly.
800
ca34e0be
PE
8012012-05-31 Paul Eggert <eggert@cs.ucla.edu>
802
803 Pacify gcc -Wdouble-precision when using Xaw.
804 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
805 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
806 Use 'float' consistently, rather than 'float' in most places
807 and 'double' in a couple of places.
808
efc00ab1 8092012-05-31 Eli Zaretskii <eliz@gnu.org>
d5fd2c54
EZ
810
811 * xdisp.c (handle_stop): Detect whether we have overlay strings
812 loaded by testing it->current.overlay_string_index to be
813 non-negative, instead of checking whether n_overlay_strings is
814 positive. (Bug#11587)
815
efc00ab1 8162012-05-31 Chong Yidong <cyd@gnu.org>
353c87f6
CY
817
818 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
819
820 * doc.c (Fsubstitute_command_keys): Doc fix.
821
efc00ab1 8222012-05-31 Eli Zaretskii <eliz@gnu.org>
a02ae4e5
EZ
823
824 * search.c (search_buffer): Remove calls to
825 r_alloc_inhibit_buffer_relocation, as it is now called by
826 maybe_unify_char, which was the cause of relocation of buffer text
827 in bug#11519.
828
efc00ab1 8292012-05-31 Eli Zaretskii <eliz@gnu.org>
291d430f
EZ
830
831 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
832 for the duration of call to load_charset, to avoid problems with
833 callers of maybe_unify_char that access buffer text through C
834 pointers.
835
836 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
837 decrement the inhibition flag, instead of just setting or
838 resetting it.
839
ba93a187
PE
8402012-05-31 Paul Eggert <eggert@cs.ucla.edu>
841
842 Remove obsolete '#define static' cruft.
843 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
844 This #undef was "temporary" in 2000; it is no longer needed
845 now that '#define static' has gone away.
846 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
847 (gray_bitmap_bits): Remove; no longer needed.
848 All uses replaced with definiens.
849 * xterm.c: Include "bitmaps/gray.xbm".
850
9e4bf381
PE
8512012-05-30 Paul Eggert <eggert@cs.ucla.edu>
852
853 Clean up __executable_start, monstartup when --enable-profiling.
854 The following changes affect the code only when profiling.
855 * dispnew.c (__executable_start): Rename from safe_bcopy.
856 Define only on platforms that need it.
857 * emacs.c: Include <sys/gmon.h> when profiling.
858 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
859 (__executable_start): Remove decl, since lisp.h does it now.
860 (safe_bcopy): Remove decl; no longer has that name.
861 (main): Coalesce #if into single bit of code, for simplicity.
862 Cast pointers to uintptr_t, since standard libraries want integers
863 and not pointers.
864 * lisp.h (__executable_start): New decl.
865
32d72c2f
GM
8662012-05-31 Glenn Morris <rgm@gnu.org>
867
868 * image.c (Fimagemagick_types): Doc fix.
869
baac5bc7
JM
8702012-05-30 Jim Meyering <meyering@redhat.com>
871
872 * callproc.c (Fcall_process_region): Include directory component
873 in mkstemp error message (Bug#11586).
874
72cb32cf
PE
8752012-05-30 Paul Eggert <eggert@cs.ucla.edu>
876
877 * alloc.c, lisp.h (make_pure_vector): Now static.
878
61b108cc
SM
8792012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
880
881 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
882 Move to byte-run.el.
883 (Fautoload): Do the hash-doc more carefully.
884 * data.c (Fdefalias): Purify definition, except for keymaps.
885 (Qdefun): Move from eval.c.
886 * lisp.h (Qdefun): Remove.
887 * lread.c (read1): Tiny simplification.
888
471fe23d
TN
8892012-05-29 Troels Nielsen <bn.troels@gmail.com>
890
934f3f58 891 Do not create empty overlays with the evaporate property (Bug#9642).
471fe23d
TN
892 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
893 Bug#9642, but explicitly check that the buffer the overlay would
894 be moved to is live and rearrange lines to make sure that errors
895 will not put the overlay in an inconsistent state.
896 (Fdelete_overlay): Cosmetics.
897
85d0efd1
EZ
8982012-05-28 Eli Zaretskii <eliz@gnu.org>
899
900 * w32term.c (my_bring_window_to_top): New function.
901 (x_raise_frame): Use handle returned by DeferWindowPos, which
61b108cc
SM
902 could be different from the original one.
903 Call my_bring_window_to_top instead of my_set_foreground_window.
85d0efd1
EZ
904 (Bug#11513)
905
906 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
907 by calling BringWindowToTop.
908
909 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
910 (WM_EMACS_END): Increase by one.
911
da92a98c
PE
9122012-05-28 Paul Eggert <eggert@cs.ucla.edu>
913
914 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
915 This avoids undefined behavior that might cause the eassert
916 to not catch an out-of-range value.
917
74d1f848
JB
9182012-05-28 Juanma Barranquero <lekktu@gmail.com>
919
920 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
921 Update dependencies.
922
9e1a06fc
EZ
9232012-05-27 Eli Zaretskii <eliz@gnu.org>
924
925 * bidi.c (bidi_mirror_char): Fix last change.
926
f3dd7312
AS
9272012-05-27 Andreas Schwab <schwab@linux-m68k.org>
928
929 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
930 when referring to sectname field in printf format.
931
81899c91
PE
9322012-05-27 Paul Eggert <eggert@cs.ucla.edu>
933
57b81a9f
PE
934 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
935 Only r_alloc_inhibit_buffer_relocation needed to be added;
936 the others were already declared.
937
81899c91
PE
938 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
939 before checking whether it's out of range. Put the check inside
940 eassert. See
941 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
942
33017faf 9432012-05-27 Ken Brown <kbrown@cornell.edu>
2f9b9adb
KB
944
945 * callproc.c (Fcall_process): Restore a line that was accidentally
946 commented out in the 2011-02-13 change (bug#11547).
947
33017faf 9482012-05-27 Eli Zaretskii <eliz@gnu.org>
52c55cc7
EZ
949
950 * lisp.h [REL_ALLOC]: Add prototypes for external functions
951 defined on ralloc.c.
952
953 * buffer.c [REL_ALLOC]: Remove prototypes of
954 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
955 they are now on lisp.h.
956
957 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
958
959 * search.c (search_buffer): Use it to inhibit relocation of buffer
960 text while re_search_2 is doing its job, because re_search_2 is
961 passed C pointers to buffer text. (Bug#11519)
962
23415acf
EZ
963 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
964 Update value to 24.
965
44e27368
EZ
966 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
967 state after an additional call to move_it_in_display_line_to, keep
968 the values of it->max_ascent and it->max_descent found for the
969 entire line.
970 (pos_visible_p): Revert the comparison against bottom_y to what it
971 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
972 (Bug#11464)
973
c1892f11
PE
9742012-05-26 Paul Eggert <eggert@cs.ucla.edu>
975
976 Fix coding-related core dumps with gcc -ftrapv.
977 The code was computing A - B, where A and B are pointers, and B is
978 random garbage. This can lead to core dumps on platforms that
979 have special pointer registers, and it also leads to core dumps on
980 x86-64 when compiled with gcc -ftrapv. The fix is to compute
981 A - B only when B is initialized properly.
982 * coding.c (coding_set_source, coding_set_destination): Return void.
983 (coding_change_source, coding_change_destinations): New functions,
984 with the old behaviors of coding_set_source and coding_set_destination.
985 All callers that need an offset changed to use these new functions.
986
eb7afdad
GM
9872012-05-26 Glenn Morris <rgm@gnu.org>
988
989 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
990
f12fdf02
EZ
9912012-05-26 Eli Zaretskii <eliz@gnu.org>
992
53a63be6 993 Extend mouse support on W32 text-mode console.
61b108cc
SM
994 * xdisp.c (draw_row_with_mouse_face):
995 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
eb3f6f01 996
eb3f6f01 997 * w32console.c: Include window.h.
61b108cc
SM
998 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
999 New functions.
eb3f6f01
EZ
1000 (initialize_w32_display): Initialize mouse-highlight data.
1001
53a63be6
EZ
1002 * w32inevt.c: Include termchar.h and window.h.
1003 (do_mouse_event): Support mouse-autoselect-window. When the mouse
1004 moves, call note_mouse_highlight. If help_echo changed, call
1005 gen_help_event to produce help-echo message in the echo area.
1006 Call clear_mouse_face if mouse_face_hidden is set in the mouse
1007 highlight info.
1008
4cfd81f6
PE
10092012-05-26 Paul Eggert <eggert@cs.ucla.edu>
1010
1011 * lread.c (read1): Simplify slightly to avoid an overflow warning
1012 with GCC 4.7.0 on x86-64.
1013
4446092a
EZ
10142012-05-26 Eli Zaretskii <eliz@gnu.org>
1015
1016 * bidi.c (bidi_mirror_char): Revert last change: an int is
1017 definitely wide enough here.
1018
42b2a986 10192012-05-25 Paul Eggert <eggert@cs.ucla.edu>
3164aeac 1020
42b2a986 1021 Fix integer width and related bugs (Bug#9874).
eb106a49 1022 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
d311d28c
PE
1023 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
1024 (string_bytes, check_sblock, allocate_string_data):
1025 (compact_small_strings, Fmake_bool_vector, make_string)
1026 (make_unibyte_string, make_multibyte_string)
1027 (make_string_from_bytes, make_specified_string)
1028 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
1029 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
1030 (mark_vectorlike):
1031 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1032 (allocate_pseudovector):
1033 Use int, not EMACS_INT, where int is wide enough.
1034 (inhibit_garbage_collection, Fgarbage_collect):
1035 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1036 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
1037 int might not be wide enough.
1038 (bidi_cache_search, bidi_cache_find, bidi_init_it)
1039 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
1040 (bidi_at_paragraph_end, bidi_find_paragraph_start)
1041 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
1042 (bidi_level_of_next_char, bidi_move_to_visually_next):
1043 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1044 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
1045 (Fkill_buffer, Fset_buffer_major_mode)
1046 (advance_to_char_boundary, Fbuffer_swap_text)
1047 (Fset_buffer_multibyte, overlays_at, overlays_in)
1048 (overlay_touches_p, struct sortvec, record_overlay_string)
1049 (overlay_strings, recenter_overlay_lists)
1050 (adjust_overlays_for_insert, adjust_overlays_for_delete)
1051 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
1052 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
1053 (Foverlay_recenter, last_overlay_modification_hooks_used)
1054 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
1055 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
977b0e45
PE
1056 (validate_region): Omit unnecessary test for b <= e,
1057 since that's guaranteed by the previous test.
d311d28c
PE
1058 (adjust_overlays_for_delete): Avoid pos + length overflow.
1059 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
1060 (report_overlay_modification):
1061 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1062 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
1063 Omit pointer cast, which isn't needed anyway, and doesn't work
1064 after the EMACS_INT -> ptrdiff_t change.
02481186 1065 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
d311d28c
PE
1066 * buffer.h: Adjust decls to match defn changes elsewhere.
1067 (struct buffer_text, struct buffer):
1068 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1069 Use EMACS_INT, not int, where int might not be wide enough.
39b5db3b
PE
1070 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
1071 not int, to avoid needless 32-bit limit on 64-bit hosts.
1072 (exec_byte_code): Use tighter memory-full test, one that checks
1073 for alloca overflow. Don't compute the address of the object just
1074 before an array, as that's not portable. Use EMACS_INT, not
1075 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
d311d28c
PE
1076 * callint.c (Fcall_interactively):
1077 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1078 * callproc.c (call_process_kill, Fcall_process):
1079 Don't assume pid_t fits into an Emacs fixnum.
1080 (call_process_cleanup, Fcall_process, child_setup):
1081 Don't assume pid_t fits into int.
1082 (call_process_cleanup, Fcall_process, delete_temp_file)
1083 (Fcall_process_region):
1084 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1085 (Fcall_process): Simplify handling of volatile integers.
1086 Use int, not EMACS_INT, where int will do.
1087 * casefiddle.c (casify_object, casify_region, operate_on_word)
1088 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
1089 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1090 (casify_object): Avoid integer overflow when overallocating buffer.
1091 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
45c2afd6 1092 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
d311d28c
PE
1093 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
1094 * category.h (CATEGORYP): Don't assume arg is nonnegative.
1095 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
1096 integers are now checked earlier. All uses replaced with XINT.
1097 (ccl_driver):
1098 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1099 For CCL_MapSingle, check that content and value are in int range.
c801946a
PE
1100 (ccl_driver, Fregister_code_conversion_map):
1101 Check that Vcode_version_map_vector is a vector.
d311d28c
PE
1102 (resolve_symbol_ccl_program): Check that vector header is in range.
1103 Always copy the vector, so that we can check its contents reliably
1104 now rather than having to recheck each instruction as it's being
1105 executed. Check that vector words fit in 'int'.
1106 (ccl_get_compiled_code, Fregister_ccl_program)
1107 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
1108 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
1109 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
1110 contents are in range.
1111 (Fccl_execute_on_string): Check that status is in range.
1112 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
1113 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
1114 Accept and return EMACS_INT, not int, because callers can pass values
1115 out of 'int' range.
1116 (c_string_width, strwidth, lisp_string_width, chars_in_text)
1117 (multibyte_chars_in_text, parse_str_as_multibyte)
1118 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
1119 (str_as_unibyte, str_to_unibyte, string_count_byte8)
1120 (string_escape_byte8, Fget_byte):
1121 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
a14e1568 1122 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
d311d28c
PE
1123 avoid mishandling large integers.
1124 * character.h: Adjust decls to match defn changes elsewhere.
1125 * charset.c (load_charset_map_from_file, find_charsets_in_text)
1126 (Ffind_charset_region):
1127 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1128 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
1129 (load_charset_map_from_vector, Fdefine_charset_internal):
3c7649c1 1130 Don't assume fixnum fits in int.
d311d28c
PE
1131 (load_charset_map_from_vector, Fmap_charset_chars):
1132 Remove now-unnecessary CHECK_NATNUMs.
1133 (Fdefine_charset_internal): Check ranges here, more carefully.
3c7649c1
PE
1134 Don't rely on undefined behavior with signed left shift overflow.
1135 Don't assume unsigned int fits into fixnum, or that fixnum fits
1136 into unsigned int. Don't require max_code to be a valid fixnum;
1137 that's not true for gb10830 4-byte on a 32-bit host. Allow
1138 invalid_code to be a cons, for the same reason. Require code_offset
1139 to be a character. Avoid int overflow if max_char is close
1140 to INT_MAX.
1141 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
1142 this is intended anyway and avoids some undefined behavior.
1143 (load_charset_map): Pass unsigned, not int, as 2nd arg of
1144 INDEX_TO_CODE_POINT, as that's what it expects.
1145 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
60ad3eab
PE
1146 * charset.h (DECODE_CHAR): Return int, not unsigned;
1147 this is what was intended anyway, and it avoids undefined behavior.
1148 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
1149 integer-overflow issues.
1150 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
1151 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
1152 where the argument is EMACS_INT, and this behavior is not intended.
d311d28c
PE
1153 * chartab.c (Fmake_char_table, Fset_char_table_range)
1154 (uniprop_get_decoder, uniprop_get_encoder):
1155 Don't assume fixnum fits in int.
1156 * cmds.c (move_point): New function, that does the gist of
1157 Fforward_char and Fbackward_char, but does so while checking
1158 for integer overflow more accurately.
c96e5d6a 1159 (Fforward_char, Fbackward_char): Use it.
d311d28c
PE
1160 (Fforward_line, Fend_of_line, internal_self_insert)
1161 (internal_self_insert):
1162 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1163 Fix a FIXME, by checking for integer overflow when calculating
1164 target_clm and actual_clm.
1165 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
8f50130c 1166 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
d311d28c
PE
1167 (ASSURE_DESTINATION, coding_alloc_by_realloc)
1168 (coding_alloc_by_making_gap, alloc_destination)
1169 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
1170 (encode_coding_utf_16, detect_coding_emacs_mule)
1171 (decode_coding_emacs_mule, encode_coding_emacs_mule)
1172 (detect_coding_iso_2022, decode_coding_iso_2022)
1173 (encode_invocation_designation, encode_designation_at_bol)
1174 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
1175 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
1176 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
1177 (encode_coding_ccl, encode_coding_raw_text)
1178 (detect_coding_charset, decode_coding_charset)
1179 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
1180 (produce_composition, produce_charset, produce_annotation)
1181 (decode_coding, handle_composition_annotation)
1182 (handle_charset_annotation, consume_chars, decode_coding_gap)
1183 (decode_coding_object, encode_coding_object, detect_coding_system)
1184 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
1185 (code_convert_region, code_convert_string)
8f50130c
PE
1186 (Fdefine_coding_system_internal)
1187 (coding_set_source, coding_set_destination):
d311d28c
PE
1188 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1189 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
1190 (Fdefine_coding_system_internal):
1191 Don't assume fixnums fit in int.
1192 (decode_coding_gap, decode_coding_object, encode_coding_object)
5895d7b9 1193 (Fread_coding_system, Fdetect_coding_region)
2c6a9faa
PE
1194 (Funencodable_char_position, Fcheck_coding_systems_region)
1195 (get_translation, handle_composition_annotation, consume_chars):
d311d28c 1196 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
977b0e45 1197 (consume_chars): Rewrite to not calculate an address outside buffer.
d311d28c 1198 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
7b09a37a 1199 Don't access memory outside of the args array.
d311d28c 1200 (Fdefine_coding_system_internal): Check for charset-id overflow.
47664caa
PE
1201 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
1202 result of ENCODE_CHAR.
d311d28c
PE
1203 * coding.h: Adjust decls to match defn changes elsewhere.
1204 (struct coding_system):
1205 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1206 * composite.c (get_composition_id, find_composition)
1207 (run_composition_function, update_compositions)
1208 (compose_text, composition_gstring_put_cache)
1209 (composition_gstring_p, composition_gstring_width)
1210 (fill_gstring_header, fill_gstring_body, autocmp_chars)
1211 (composition_compute_stop_pos, composition_reseat_it)
1212 (composition_update_it, struct position_record)
1213 (find_automatic_composition, composition_adjust_point)
1214 (Fcomposition_get_gstring, Ffind_composition_internal):
1215 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1216 (update_compositions):
1217 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1218 * composite.h: Adjust decls to match defn changes elsewhere.
1219 (struct composition):
1220 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1221 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
1222 Do not attempt to compute the address of the object just before a
1223 buffer; this is not portable.
1224 (Faref, Faset):
1225 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1226 (Faset): Use int, not EMACS_INT, where int is wide enough.
1227 (Fstring_to_number): Don't assume fixnums fit in int.
1228 (Frem): Don't assume arg is nonnegative.
1229 * dbusbind.c (xd_append_arg): Check for integers out of range.
1230 (Fdbus_call_method): Don't overflow the timeout int.
42b2a986 1231 (extract_signed, extract_unsigned): New functions.
243e0530
PE
1232 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
1233 (xd_get_connection_references): Return ptrdiff_t, not int.
1234 All uses changed.
1235 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
1236 (xd_read_message_1):
1237 Use int, not unsigned, where the dbus API uses int.
1238 (Fdbus_message_internal): Don't overflow mtype.
1239 (syms_of_dbusbind): Allocate right-sized buffer for integers.
d311d28c
PE
1240 * dired.c (directory_files_internal, file_name_completion, scmp)
1241 (file_name_completion_stat):
1242 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1243 (file_name_completion): Don't overflow matchcount.
1244 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
1245 * dispextern.h: Adjust decls to match defn changes elsewhere.
1246 (struct text_pos, struct glyph, struct bidi_saved_info)
1247 (struct bidi_string_data, struct bidi_it, struct composition_it)
1248 (struct it):
1249 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1250 (struct display_pos, struct composition_it, struct it):
1251 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1252 * dispnew.c (increment_matrix_positions)
1253 (increment_row_positions, mode_line_string)
1254 (marginal_area_string):
1255 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
54e1617f 1256 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
d311d28c
PE
1257 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1258 (duration_to_sec_usec): New function, to check for overflow better.
1259 (Fsleep_for, sit_for): Use it.
1260 * doc.c (get_doc_string, store_function_docstring):
1261 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1262 (get_doc_string, Fsnarf_documentation):
1263 Use int, not EMACS_INT, where int is wide enough.
1264 (get_doc_string):
1265 Use SAFE_ALLOCA, not alloca.
1266 Check for overflow when converting EMACS_INT to off_t.
1267 * doprnt.c (doprnt):
1268 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1269 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
1270 Don't assume uid_t fits into fixnum.
1271 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
1272 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
1273 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
1274 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
1275 (general_insert_function)
1276 (Finsert_char, make_buffer_string, make_buffer_string_both)
1277 (update_buffer_properties, Fbuffer_substring)
1278 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
1279 (Fsubst_char_in_region, check_translation)
1280 (Ftranslate_region_internal, save_restriction_restore, Fformat)
1281 (transpose_markers, Ftranspose_regions):
1282 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1283 (clip_to_bounds): Move to lisp.h as an inline function).
1284 (Fconstrain_to_field): Don't assume integers are nonnegative.
1285 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
1286 (Fsubst_char_in_region, Fsave_restriction):
1287 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1288 (Femacs_pid): Don't assume pid_t fits into fixnum.
1289 (lo_time): Use int, not EMACS_INT, when int suffices.
1290 (lisp_time_argument): Check for usec out of range.
1291 (Fencode_time): Don't assume fixnum fits in int.
3f4eabd1
PE
1292 (Fuser_login_name, Fuser_full_name): Signal an error
1293 if a uid argument is out of range, rather than relying on
1294 undefined behavior.
c8d5c857
PE
1295 (Fformat_time_string): Remove now-unnecessary check.
1296 lisp_time_argument checks for out-of-range usec now.
243e0530 1297 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
d311d28c
PE
1298 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
1299 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
1300 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
1301 (init_cmdargs, Fdump_emacs):
1302 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1303 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
1304 the bottom (typically) 32 bits of the fixnum.
1305 * eval.c (specpdl_size, call_debugger):
1306 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1307 (when_entered_debugger, Fbacktrace_debug):
1308 Don't assume fixnum can fit in int.
1309 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
1310 the object just before a buffer; this is not portable.
1311 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
1312 (grow_specpdl, unbind_to):
1313 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1314 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
1315 (grow_specpdl): Simplify allocation by using xpalloc.
856bbc81 1316 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
d311d28c
PE
1317 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
1318 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
1319 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1320 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
1321 (a_write, e_write):
1322 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1323 (Fcopy_file, non_regular_nbytes, read_non_regular)
1324 (Finsert_file_contents):
1325 Use int, not EMACS_INT, where int is wide enough.
1326 (READ_BUF_SIZE): Verify that it fits in int.
1327 (Finsert_file_contents): Check that counts are in proper range,
1328 rather than assuming fixnums fit into ptrdiff_t etc.
1329 Don't assume fixnums fit into int.
125b3835 1330 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
5895d7b9
PE
1331 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
1332 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
d311d28c
PE
1333 (string_char_to_byte, string_byte_to_char)
1334 (string_make_multibyte, string_to_multibyte)
1335 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
1336 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
1337 (substring_both, Fdelete, internal_equal, Ffillarray)
1338 (Fclear_string, mapcar1)
1339 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
1340 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
1341 (larger_vector, make_hash_table, maybe_resize_hash_table)
1342 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
1343 (Fmaphash, secure_hash):
1344 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1345 (concat): Check for string index and length overflow.
1346 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
1347 (Frequire):
1348 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1349 (larger_vector): New API (vec, incr_min, size_max) replaces old
1350 one (vec, new_size, init). This catches size overflow.
1351 INIT was removed because it was always Qnil.
1352 All callers changed.
1353 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
1354 the upper bound on a hash table index size.
1355 (make_hash_table, maybe_resize_hash_table): Use it.
1356 (secure_hash): Computer start_byte and end_byte only after
1357 they're known to be in ptrdiff_t range.
1358 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
1359 (Ffont_get_glyphs, Ffont_at):
1360 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1361 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
1362 (Flist_fonts, Fopen_font):
1363 Don't assume fixnum can fit in int.
1364 (check_gstring): Don't assume index can fit in int.
1365 (font_match_p): Check that fixnum is a character, not a nonnegative
1366 fixnum, since the later code needs to stuff it into an int.
1367 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
1368 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
1369 conversion overflow issues.
1370 (Fopen_font): Check for integer out of range.
1371 (Ffont_get_glyphs): Don't assume index can fit in int.
1372 * font.h: Adjust decls to match defn changes elsewhere.
1373 * fontset.c (reorder_font_vector): Redo score calculation to avoid
1374 integer overflow.
1375 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
1376 printmax_t, where ptrdiff_t is wide enough.
1377 (Finternal_char_font):
1378 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1379 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
1380 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
1381 (Fset_frame_position, x_set_frame_parameters)
1382 (x_set_line_spacing, x_set_border_width)
1383 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
1384 Check that fixnums are in proper range for system types.
1385 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
1386 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1387 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
1388 Use SAFE_ALLOCA_LISP, not alloca.
1389 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
1390 intptr_t is wide enough.
1391 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
1392 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
1393 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
1394 Check for fixnum out of range.
1395 * ftfont.c (ftfont_list): Don't assume index fits in int.
1396 Check that fixnums are in proper range for system types.
1397 (ftfont_shape_by_flt):
1398 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
d311d28c
PE
1399 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
1400 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1401 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
1402 Check that fixnums are in proper range for system types.
1403 * gnutls.h: Adjust decls to match defn changes elsewhere.
1404 * gtkutil.c (xg_dialog_run):
1405 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1406 (update_frame_tool_bar):
1407 Check that fixnums are in proper range for system types.
1408 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
5895d7b9 1409 (lookup_image): Check that fixnums are in range for system types.
d311d28c
PE
1410 * indent.c (last_known_column, last_known_column_point):
1411 (current_column_bol_cache):
1412 (skip_invisible, current_column, check_display_width):
1413 (check_display_width, scan_for_column, current_column_1)
1414 (Findent_to, Fcurrent_indentation, position_indentation)
1415 (indented_beyond_p, Fmove_to_column, compute_motion):
1416 (Fcompute_motion, Fvertical_motion):
1417 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1418 (last_known_column_modified): Use EMACS_INT, not int.
1419 (check_display_width):
1420 (Fcompute_motion):
1421 Check that fixnums and floats are in proper range for system types.
1422 (compute_motion): Don't assume index or fixnum fits in int.
1423 (compute_motion, Fcompute_motion):
1424 Use int, not EMACS_INT, when it is wide enough.
1425 (vmotion): Omit local var start_hpos that is always 0; that way
1426 we don't need to worry about overflow in expressions involving it.
1427 * indent.h: Adjust decls to match defn changes elsewhere.
1428 (struct position):
1429 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1430 Use int, not EMACS_INT, where int is wide enough.
1431 Remove unused members ovstring_chars_done and tab_offset;
1432 all uses removed.
1433 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
1434 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
1435 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
1436 (make_gap, copy_text, insert, insert_and_inherit)
1437 (insert_before_markers, insert_before_markers_and_inherit)
1438 (insert_1, count_combining_before, count_combining_after)
1439 (insert_1_both, insert_from_string)
1440 (insert_from_string_before_markers, insert_from_string_1)
1441 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
1442 (adjust_after_replace, adjust_after_insert, replace_range)
1443 (replace_range_2, del_range, del_range_1, del_range_byte)
1444 (del_range_both, del_range_2, modify_region)
1445 (prepare_to_modify_buffer, signal_before_change)
1446 (signal_after_change, Fcombine_after_change_execute):
1447 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1448 * intervals.c (traverse_intervals, rotate_right, rotate_left)
1449 (balance_an_interval, split_interval_right, split_interval_left)
1450 (find_interval, next_interval, update_interval)
1451 (adjust_intervals_for_insertion, delete_node, delete_interval)
1452 (interval_deletion_adjustment, adjust_intervals_for_deletion)
1453 (static_offset_intervals, offset_intervals)
1454 (merge_interval_right, merge_interval_left, make_new_interval)
1455 (graft_intervals_into_buffer, temp_set_point_both)
1456 (temp_set_point, set_point, adjust_for_invis_intang)
1457 (set_point_both, move_if_not_intangible, get_property_and_range)
1458 (get_local_map, copy_intervals, copy_intervals_to_string)
1459 (compare_string_intervals, set_intervals_multibyte_1):
1460 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1461 * intervals.h: Adjust decls to match defn changes elsewhere.
1462 (struct interval):
1463 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1464 * keyboard.c (this_command_key_count, this_single_command_key_start)
1465 (before_command_key_count, before_command_echo_length, echo_now)
1466 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
1467 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
1468 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
1469 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
1470 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1471 (last_non_minibuf_size, last_point_position, echo_truncate)
1472 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
1473 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
1474 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
1475 (stuff_buffered_input):
1476 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1477 (last_auto_save, command_loop_1, read_char):
1478 Use EMACS_INT, not int, to avoid integer overflow.
1479 (record_char): Avoid overflow in total_keys computation.
1480 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
1481 * keyboard.h: Adjust decls to match defn changes elsewhere.
1482 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
1483 (Fkey_description, Fdescribe_vector, Flookup_key):
1484 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1485 (click_position): New function, to check that positions are in range.
1486 (Fcurrent_active_maps):
1487 (describe_command):
1488 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1489 (Faccessible_keymaps, Fkey_description):
1490 (preferred_sequence_p):
1491 Don't assume fixnum can fit into int.
1492 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
1493 Check for integer overflow in size calculations.
1494 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
1495 avoid mishandling large integers.
1496 * lisp.h: Adjust decls to match defn changes elsewhere.
1497 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
1498 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
1499 (struct Lisp_Marker):
1500 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1501 (clip_to_bounds): Now an inline function, moved here from editfns.c.
d311d28c
PE
1502 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
1503 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
1504 All callers changed.
1505 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
1506 Assume the arg has valid form, since it always does.
1507 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
1508 unsigned integer system type.
1509 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
1510 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
1511 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1512 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
1513 (duration_to_sec_usec): New decl.
1514 * lread.c (read_from_string_index, read_from_string_index_byte)
1515 (read_from_string_limit, readchar, unreadchar, openp)
1516 (read_internal_start, read1, oblookup):
1517 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1518 (Fload, readevalloop, Feval_buffer, Feval_region):
1519 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1520 (openp): Check for out-of-range argument to 'access'.
1521 (read1): Use int, not EMACS_INT, where int is wide enough.
1522 Don't assume fixnum fits into int.
6efdadfd 1523 Fix off-by-one error that can read outside a buffer.
1ab7b8ac
PE
1524 (read_filtered_event): Use duration_to_sec_usec
1525 to do proper overflow checking on durations.
d311d28c
PE
1526 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
1527 in size calculation.
1528 (Fexecute_kbd_macro):
1529 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1530 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
1531 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
1532 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
1533 (set_marker_both, set_marker_restricted_both, marker_position)
1534 (marker_byte_position, Fbuffer_has_markers_at):
1535 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1536 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
61b108cc 1537 * menu.c (ensure_menu_items): Rename from grow_menu_items.
d311d28c
PE
1538 It now merely ensures that the menu is large enough, without
1539 necessarily growing it, as this avoids some integer overflow issues.
1540 All callers changed.
1541 (keymap_panes, parse_single_submenu, Fx_popup_menu):
1542 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1543 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
1544 Use SAFE_ALLOCA_LISP, not alloca.
1545 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
1546 to EMACS_INT. Check that fixnums are in proper range for system types.
1547 * minibuf.c (minibuf_prompt_width, string_to_object)
1548 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
1549 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
1550 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1551 (get_minibuffer, read_minibuf_unwind):
1552 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1553 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
1554 this simplifies overflow checking. All callers changed.
1555 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
1556 (Ftest_completion):
1557 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1558 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
1559 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
1560 Check that fixnums are in proper range for system types.
1561 (Fx_create_frame, Fx_show_tip):
1562 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1563 * nsfont.m (ns_findfonts, nsfont_list_family):
1564 Don't assume fixnum fits in long.
1565 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
1566 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1567 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
1568 wide enough.
17fdb222 1569 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
d311d28c
PE
1570 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1571 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
1572 (PRINTDECLARE, PRINTPREPARE):
1573 (strout, print_string):
1574 (print, print_preprocess, print_check_string_charset_prop)
1575 (print_object):
1576 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1577 (PRINTDECLARE):
1578 (temp_output_buffer_setup, Fprin1_to_string, print_object):
1579 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1580 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
d311d28c 1581 (printchar, strout): Use xpalloc to catch size calculation overflow.
0fd11aa5 1582 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
d311d28c
PE
1583 (print_error_message): Use SAFE_ALLOCA, not alloca.
1584 (print_object): Use int, not EMACS_INT, where int is wide enough.
a8b7caa3
PE
1585 (print_depth, new_backquote_output, print_number_index):
1586 Use ptrdiff_t, not int, where int might not be wide enough.
d311d28c
PE
1587 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
1588 (Fset_process_window_size, Fformat_network_address)
1589 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
d44287d4 1590 (sigchld_handler):
d311d28c 1591 Check that fixnums are in proper range for system types.
d44287d4 1592 (Fsignal_process): Simplify by avoiding a goto.
d83cf4cc
PE
1593 Check for process-ids out of pid_t range rather than relying on
1594 undefined behavior.
e4d81efc 1595 (process_tick, update_tick): Use EMACS_INT, not int.
d311d28c
PE
1596 (Fformat_network_address, read_process_output, send_process)
1597 (Fprocess_send_region, status_notify):
1598 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1599 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
1600 (wait_reading_process_output, read_process_output, exec_sentinel):
1601 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1602 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
1603 (Faccept_process_output): Use duration_to_sec_usec to do proper
1604 overflow checking on durations.
dde14581
PE
1605 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
1606 Don't assume pid_t fits in int.
02481186
PE
1607 * process.h (struct Lisp_Process): Members tick and update_tick
1608 are now of type EMACS_INT, not int.
b62b53e8
PE
1609 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
1610 configured --with-wide-int.
d311d28c
PE
1611 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
1612 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
1613 * search.c (looking_at_1, string_match_1):
1614 (fast_string_match, fast_c_string_match_ignore_case)
1615 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
1616 (scan_newline, find_before_next_newline, search_command)
1617 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
1618 (set_search_regs, wordify):
1619 (Freplace_match):
1620 (Fmatch_data):
1621 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1622 (string_match_1, search_buffer, set_search_regs):
1623 (Fmatch_data):
1624 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1625 (wordify): Check for overflow in size calculation.
1626 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
1627 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
1628 Check that fixnums are in proper range for system types.
1629 * sound.c (struct sound_device)
1630 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
1631 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1632 (Fplay_sound_internal):
1633 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
eacd378d 1634 * syntax.c (struct lisp_parse_state, find_start_modiff)
d311d28c
PE
1635 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
1636 (Fparse_partial_sexp):
1637 Don't assume fixnums can fit in int.
1638 (struct lisp_parse_state, find_start_pos, find_start_value)
1639 (find_start_value_byte, find_start_begv)
1640 (update_syntax_table, char_quoted, dec_bytepos)
1641 (find_defun_start, prev_char_comend_first, back_comment):
1642 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
1643 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
1644 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1645 (Finternal_describe_syntax_value): Check that match_lisp is a
1646 character, not an integer, since the code stuffs it into int.
1647 (scan_words, scan_sexps_forward):
1648 Check that fixnums are in proper range for system types.
1649 (Fforward_word):
1650 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1651 (scan_sexps_forward):
1652 Use CHARACTERP, not INTEGERP, since the value must fit into int.
1653 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
1654 * syntax.h: Adjust decls to match defn changes elsewhere.
1655 (struct gl_state_s):
1656 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
e4ecdc9c
PE
1657 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
1658 MOST_POSITIVE_FIXNUM.
d311d28c
PE
1659 * sysdep.c (wait_for_termination_1, wait_for_termination)
1660 (interruptible_wait_for_termination, mkdir):
1661 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
1662 (emacs_read, emacs_write):
1663 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
225a2cff
PE
1664 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
1665 and double all fit in int.
d311d28c
PE
1666 * term.c (set_tty_color_mode):
1667 Check that fixnums are in proper range for system types.
1668 * termhooks.h (struct input_event):
1669 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1670 * textprop.c (validate_interval_range, interval_of)
1671 (Fadd_text_properties, set_text_properties_1)
1672 (Fremove_text_properties, Fremove_list_of_text_properties)
1673 (Ftext_property_any, Ftext_property_not_all)
1674 (copy_text_properties, text_property_list, extend_property_ranges)
1675 (verify_interval_modification):
1676 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1677 (Fnext_single_char_property_change)
1678 (Fprevious_single_char_property_change):
1679 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
5895d7b9
PE
1680 (copy_text_properties):
1681 Check for integer overflow in index calculation.
d311d28c
PE
1682 * undo.c (last_boundary_position, record_point, record_insert)
1683 (record_delete, record_marker_adjustment, record_change)
1684 (record_property_change):
1685 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1686 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
1687 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1688 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
1689 (Fx_hide_tip, Fx_file_dialog):
1690 * w32menu.c (set_frame_menubar):
1691 Use ptrdiff_t, not int, for consistency with rest of code.
1692 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
1693 (select_window, Fdelete_other_windows_internal)
1694 (window_scroll_pixel_based, window_scroll_line_based)
1695 (Frecenter, Fset_window_configuration):
1696 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1697 (Fset_window_hscroll, run_window_configuration_change_hook)
1698 (set_window_buffer, temp_output_buffer_show, scroll_command)
5895d7b9 1699 (Fscroll_other_window, Frecenter):
d311d28c
PE
1700 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1701 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
1702 Don't assume fixnum fits in int.
1703 (Fset_window_scroll_bars):
1704 Check that fixnums are in proper range for system types.
1705 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
1706 (string_pos, c_string_pos, number_of_chars, init_iterator)
1707 (in_ellipses_for_invisible_text_p, init_from_display_pos)
1708 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
1709 (compute_display_string_end, handle_face_prop)
5895d7b9
PE
1710 (face_before_or_after_it_pos, handle_invisible_prop)
1711 (handle_display_prop, handle_display_spec, handle_single_display_spec)
d311d28c
PE
1712 (display_prop_intangible_p, string_buffer_position_lim)
1713 (string_buffer_position, handle_composition_prop, load_overlay_strings)
1714 (get_overlay_strings_1, get_overlay_strings)
1715 (iterate_out_of_display_property, forward_to_next_line_start)
1716 (back_to_previous_visible_line_start, reseat, reseat_to_string)
1717 (get_next_display_element, set_iterator_to_next)
1718 (get_visually_first_element, compute_stop_pos_backwards)
1719 (handle_stop_backwards, next_element_from_buffer)
1720 (move_it_in_display_line_to, move_it_in_display_line)
1721 (move_it_to, move_it_vertically_backward, move_it_by_lines)
1722 (add_to_log, message_dolog, message_log_check_duplicate)
1723 (message2, message2_nolog, message3, message3_nolog
1724 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
1725 (current_message_1, truncate_echo_area, truncate_message_1)
1726 (set_message, set_message_1, store_mode_line_noprop)
1727 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
1728 (text_outside_line_unchanged_p, check_point_in_composition)
1729 (reconsider_clip_changes)
1730 (redisplay_internal, set_cursor_from_row, try_scrolling)
1731 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
1732 (redisplay_window, find_last_unchanged_at_beg_row)
1733 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
1734 (trailing_whitespace_p, find_row_edges, display_line)
1735 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
1736 (display_mode_element, store_mode_line_string)
1737 (pint2str, pint2hrstr, decode_mode_spec)
1738 (display_count_lines, display_string, draw_glyphs)
1739 (x_produce_glyphs, x_insert_glyphs)
1740 (rows_from_pos_range, mouse_face_from_buffer_pos)
1741 (fast_find_string_pos, mouse_face_from_string_pos)
1742 (note_mode_line_or_margin_highlight, note_mouse_highlight):
1743 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1744 (safe_call, init_from_display_pos, handle_fontified_prop)
1745 (handle_single_display_spec, load_overlay_strings)
1746 (with_echo_area_buffer, setup_echo_area_for_printing)
1747 (display_echo_area, echo_area_display)
1748 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
1749 (update_tool_bar, hscroll_window_tree, redisplay_internal)
5895d7b9
PE
1750 (redisplay_window, dump_glyph_row, display_mode_line)
1751 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
43ad2e9a 1752 (handle_display_spec, display_prop_string_p):
d311d28c
PE
1753 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1754 (handle_single_display_spec, build_desired_tool_bar_string)
1755 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
1756 (get_specified_cursor_type):
1757 Check that fixnums are in proper range for system types.
1758 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
1759 (Flookup_image_map):
1760 Don't assume fixnums fit in int.
1761 (compare_overlay_entries):
1762 Avoid mishandling comparisons due to subtraction overflow.
1763 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
1764 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
1765 (handle_tool_bar_click):
1766 Use int, not unsigned, since we prefer signed and the signedness
1767 doesn't matter here.
1768 (get_next_display_element, next_element_from_display_vector):
1769 Use int, not EMACS_INT, when int is wide enough.
1770 (start_hourglass): Use duration_to_sec_usec to do proper
1771 overflow checking on durations.
1772 * xfaces.c (Fbitmap_spec_p):
1773 Check that fixnums are in proper range for system types.
1774 (compare_fonts_by_sort_order):
1775 Avoid mishandling comparisons due to subtraction overflow.
1776 (Fx_family_fonts, realize_basic_faces):
1777 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1778 (Fx_family_fonts):
1779 Don't assume fixnum fits in int.
1780 Use SAFE_ALLOCA_LISP, not alloca.
1781 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
1782 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
1783 (face_at_buffer_position, face_for_overlay_string)
1784 (face_at_string_position):
1785 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1786 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
1787 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
1788 (Fx_show_tip):
1789 Check that fixnums are in proper range for system types.
1790 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
1791 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
1792 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1793 (Fx_change_window_property): Don't assume fixnums fit in int.
1794 * xfont.c (xfont_chars_supported):
1795 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1796 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
1797 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
1798 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1799 * xml.c (parse_region):
1800 * xrdb.c (magic_file_p):
1801 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1802 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
1803 (x_get_local_selection, x_reply_selection_request)
1804 (x_handle_selection_request, wait_for_property_change):
1805 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1806 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
1807 short is wide enough.
1808 (x_send_client_event): Don't assume fixnum fits in int.
1809 * xterm.c (x_x_to_emacs_modifiers):
1810 Don't assume EMACS_INT overflows nicely into int.
1811 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
1812 may come from Lisp.
1813 (handle_one_xevent): NATNUMP can eval its arg twice.
1814 (x_connection_closed):
1815 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1816 * xterm.h: Adjust decls to match defn changes elsewhere.
1817 (struct scroll_bar): Use struct vectorlike_header
1818 rather than rolling our own approximation.
1819 (SCROLL_BAR_VEC_SIZE): Remove; not used.
1820
c6574eb5
GM
18212012-05-25 Glenn Morris <rgm@gnu.org>
1822
1823 * lisp.mk (lisp): Update for more files being compiled now.
1824
e8d32c7e
SM
18252012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
1826
48def666
SM
1827 * lread.c: Remove `read_pure' which makes no difference.
1828 (read_pure): Remove var.
1829 (unreadpure): Remove function.
1830 (readevalloop): Don't call read_list with -1 flag.
1831 (read1, read_vector): Don't test read_pure any more.
1832 (read_list): Simplify.
1833
e8d32c7e
SM
1834 * fileio.c, character.h: Minor style tweaks.
1835
4b2addb7
DA
18362012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
1837
1838 * window.h (clip_changed): Remove useless declaration.
1839
584461b2
JB
18402012-05-22 Juanma Barranquero <lekktu@gmail.com>
1841
1842 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
1843 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
1844
34374650
PE
18452012-05-22 Paul Eggert <eggert@cs.ucla.edu>
1846
1847 Remove src/m/*.
1848 This directory predates autoconf and is no longer needed nowadays.
1849 Move its few remaining bits of functionality to where they're needed.
1850 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
1851 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
1852 * m/template.h: Remove.
1853 * Makefile.in (M_FILE): Remove. All uses removed.
1854 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
1855 * lisp.h (USE_LSB_TAG):
1856 * mem-limits.h (EXCEEDS_LISP_PTR):
1857 Use VAL_MAX, not VALBITS, in #if.
1858 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
1859 (EMACS_UINT): Define unconditionally now.
1860 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
1861 (BITS_PER_EMACS_INT): New constants, replacing
1862 what used to be in config.h, but not useful in #if.
1863 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
1864 define them any more.
1865 (VAL_MAX): New macro.
1866 (VALMASK): Use it.
1867 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
1868 BITS_PER_EMACS_INT, in #if.
1869 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
1870 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
1871 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
1872 * s/ms-w32.h (DATA_START):
1873 Move here from removed file m/intel386.h.
1874 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
1875 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
1876
261cb4bb
PE
18772012-05-21 Paul Eggert <eggert@cs.ucla.edu>
1878
1879 Assume C89 or later.
1880 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
1881 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
1882 (xrealloc):
1883 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
1884 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
1885 * textprop.c, tparam.c (NULL): Remove.
1886 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
1887 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
1888 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
1889 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
1890 * xterm.c (input_signal_count): Assume volatile works.
1891
ff23cd9f
KB
18922012-05-21 Ken Brown <kbrown@cornell.edu>
1893
1894 * xgselect.c (xg_select): Fix first argument in call to 'select'
1895 (bug#11508).
1896
1b170bc6
KB
18972012-05-20 Ken Brown <kbrown@cornell.edu>
1898
1899 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
bd7239f5 1900 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
1b170bc6 1901
b2f4d39f
KB
19022012-05-19 Ken Brown <kbrown@cornell.edu>
1903
1904 * xfns.c (x_in_use): Remove `static' qualifier.
1905 * xterm.h (x_in_use): Declare.
1906 * xgselect.c: Include xterm.h.
1907 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
1908 and `display_arg' (bug#9754).
1909
003fdae2
PE
19102012-05-19 Paul Eggert <eggert@cs.ucla.edu>
1911
9232a6d9
PE
1912 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
1913
003fdae2
PE
1914 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
1915 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
1916
784b56e2
EZ
19172012-05-18 Eli Zaretskii <eliz@gnu.org>
1918
1919 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
1920
1921 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
1922 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c
1923
1924 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
1925 reference to image_cache->refcount.
1926 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
1927
a0a79cde
JL
19282012-05-17 Juri Linkov <juri@jurta.org>
1929
1930 * search.c (Fword_search_regexp, Fword_search_backward)
1931 (Fword_search_forward, Fword_search_backward_lax)
1932 (Fword_search_forward_lax): Move functions to isearch.el
1933 (bug#10145, bug#11381).
1934
b0572523
PE
19352012-05-16 Paul Eggert <eggert@cs.ucla.edu>
1936
1937 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
1938
9660f5fc
SM
19392012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
1940
1941 * lread.c (init_obarray): Declare Qt and Qnil as special.
1942
4374de83
GM
19432012-05-14 Glenn Morris <rgm@gnu.org>
1944
1945 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
985584ae 1946 Put "libexec" before "bin", for the sake of init_callproc_1.
4374de83 1947
dc44c39a
PE
19482012-05-14 Paul Eggert <eggert@cs.ucla.edu>
1949
078c97cb
PE
1950 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
1951
dc44c39a
PE
1952 * unexaix.c: Port to more-recent AIX compilers.
1953 (report_error, report_error_1, make_hdr, copy_sym)
1954 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
1955 Make arguments const char *, not char *, to avoid violations of C
1956 standard and to fix some AIX warnings reported by Gilles Pion.
1957
e18afed7 19582012-05-14 Eli Zaretskii <eliz@gnu.org>
ac268e67
EZ
1959
1960 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
1961 already have overlays loaded.
1962 (handle_single_display_spec): Before returning without displaying
1963 fringe bitmap, synchronize the bidi iterator with the main display
1964 iterator, by calling iterate_out_of_display_property.
1965 (iterate_out_of_display_property): Detect buffer iteration by
1966 testing that it->string is a Lisp string.
1967 (get_next_display_element): When the current object is exhausted,
1968 and there's something on it->stack, call set_iterator_to_next to
1969 proceed with what's on the stack, instead of returning zero.
1970 (set_iterator_to_next): If called at the end of a Lisp string,
1971 proceed to consider_string_end without incrementing string
1972 position. Don't increment display vector index past the end of
1973 the display vector. (Bug#11417)
c8fb9dc6
EZ
1974 (pos_visible_p): Don't report a position visible when move_it_to
1975 stopped at the last line of window, which happens to be scanned
1976 backwards by the bidi iteration. (Bug#11464)
ac268e67 1977
e18afed7 19782012-05-14 Eli Zaretskii <eliz@gnu.org>
82f9b393
EZ
1979
1980 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
1981 and right-margin display specs even if the spec is invalid or we
61b108cc
SM
1982 are on a TTY, and thus unable to display on the fringes.
1983 That's because the text with the property will not be displayed anyway,
82f9b393
EZ
1984 so we need to signal to the caller that this is a "replacing"
1985 display spec. This fixes display when the spec is invalid or we
1986 are on a TTY.
1987
e18afed7 19882012-05-14 Paul Eggert <eggert@cs.ucla.edu>
297834cd
PE
1989
1990 * unexaix.c (make_hdr): Fix typo in prototype.
1991 This bug broke the build on AIX. Problem reported by Gilles Pion.
1992
9d0a235a
MA
19932012-05-14 Michael Albinus <michael.albinus@gmx.de>
1994
1995 * keyboard.c (kbd_buffer_get_event): Read special events also in
1996 batch mode. (Bug#11415)
1997
9e6b06ed
GM
19982012-05-12 Glenn Morris <rgm@gnu.org>
1999
2000 * ns.mk: Update for ns_appbindir no longer having trailing "/".
2001
c1a1d7a3
EZ
20022012-05-12 Eli Zaretskii <eliz@gnu.org>
2003
2004 * lisp.mk (lisp): Add newcomment.elc.
2005
3fe7cdc8
GM
20062012-05-12 Glenn Morris <rgm@gnu.org>
2007
2008 * Makefile.in (MKDIR_P): New, set by configure.
2009 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
2010
53f7d2c0
PE
20112012-05-11 Paul Eggert <eggert@cs.ucla.edu>
2012
2013 Remove unused function hourglass_started.
2014 * dispextern.h (hourglass_started):
2015 * w32fns.c (hourglass_started):
2016 * xdisp.c (hourglass_started): Remove.
2017
75aafb17
JB
20182012-05-10 Juanma Barranquero <lekktu@gmail.com>
2019
2020 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
2021 Update dependencies.
2022
12959e8e
PE
20232012-05-10 Paul Eggert <eggert@cs.ucla.edu>
2024
97107e2e
PE
2025 * xgselect.c (xg_select): Put maxfds+1 into a var.
2026 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
2027
12959e8e
PE
2028 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
2029
836d29b3
DA
20302012-05-10 Dave Abrahams <dave@boostpro.com>
2031
2032 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
2033 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
2034
5cb67954
MA
20352012-05-09 Michael Albinus <michael.albinus@gmx.de>
2036
2037 * dbusbind.c (xd_registered_buses): New internal Lisp object.
2038 Rename all occurences of Vdbus_registered_buses to xd_registered_buses.
2039 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
2040 Initialize xd_registered_buses.
2041
3478ec45
PE
20422012-05-09 Paul Eggert <eggert@cs.ucla.edu>
2043
b263a6b0
PE
2044 Untag more efficiently if USE_LSB_TAG.
2045 This is based on a proposal by YAMAMOTO Mitsuharu in
2046 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
2047 For an admittedly artificial (nth 8000 longlist) benchmark on
2048 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
2049 Emacs's overall text size by 1%.
2050 * lisp.h (XUNTAG): New macro.
2051 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
2052 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
2053 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
2054 * eval.c (Fautoload):
2055 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
2056 * frame.h (XFRAME): Use XUNTAG.
2057
3478ec45
PE
2058 Port recent dbusbind.c changes to 32-bit --with-wide-int.
2059 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
2060 Remove unportable assumptions about print widths of types like
2061 dbus_uint32_t.
2062 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
2063 intptr_t when converting between pointer and integer, to avoid GCC
2064 warnings about wrong width.
2065
666b903b 20662012-05-09 Eli Zaretskii <eliz@gnu.org>
0d887c7d
EZ
2067
2068 * w32proc.c (new_child): Force Windows to reserve only 64KB of
2069 stack for each reader_thread, instead of defaulting to 8MB
2070 determined by the linker. This avoids failures in creating
2071 subprocesses on Windows 7, see the discussion in this thread:
2072 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
2073
b120cc17
JC
20742012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
2075
2076 Fix up display of the *Minibuf-0* buffer in the mini window.
2077 * keyboard.c (read_char): Don't clear the echo area if there's no
2078 message to clear.
2079 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
2fed2689 2080 contents of *Minibuf-0*) if there's no message displayed in its stead.
b120cc17 2081
9a4b36f8
MA
20822012-05-07 Michael Albinus <michael.albinus@gmx.de>
2083
2084 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
2085 batch mode.
2086
e5f9458f
CY
20872012-05-06 Chong Yidong <cyd@gnu.org>
2088
2089 * lisp.mk (lisp): Update.
2090
eceeb5fc 20912012-05-05 Jim Meyering <meyering@redhat.com>
bf98199c
JM
2092
2093 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
2094
71873e2b
SM
20952012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
2096
2097 * data.c (PUT_ERROR): New macro.
2098 (syms_of_data): Use it. Add new error type `user-error'.
2099 * undo.c (user_error): New function.
2100 (Fprimitive_undo): Use it.
2101 * print.c (print_error_message): Adjust print style for `user-error'.
2102 * keyboard.c (user_error): New function.
2103 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
2104
ab0fa4e4
PE
21052012-05-03 Paul Eggert <eggert@cs.ucla.edu>
2106
2107 Do not limit current-time-string to years 1000..9999.
2108 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
2109 (Fcurrent_time_string): Support any year that is supported by the
2110 underlying localtime representation. Don't use asctime, as it
2111 has undefined behavior for years outside the range -999..9999.
2112
7ed806a7
PE
21132012-05-02 Paul Eggert <eggert@cs.ucla.edu>
2114
2115 Fix race conditions involving setenv, gmtime, localtime, asctime.
2116 Without this fix, interrupts could mess up code that uses these
2117 nonreentrant functions, since setting TZ invalidates existing
2118 tm_zone or tzname values, and since most of these functions return
2119 pointers to static storage.
2120 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
2121 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
2122 Grow the critical sections to include not just invoking
2123 localtime/gmtime, but also accessing these functions' results
2124 including their tm_zone values if any, and any related TZ setting.
2125 (format_time_string): Last arg is now struct tm *, not struct tm **,
71873e2b
SM
2126 so that the struct tm is saved in the critical section.
2127 All callers changed. Simplify allocation of initial buffer, partly
7ed806a7
PE
2128 motivated by the fact that memory allocation needs to be outside
2129 the critical section.
2130
0c16dfed
DA
21312012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
2132
2133 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
2134 with RESET_INTERVAL.
2135
2136 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
2137 Remove duplicated buffer name initialization.
2138
3f83ace8
JM
21392012-05-02 Jim Meyering <jim@meyering.net>
2140
2141 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
2142
c7b8541e
JM
2143 * xfns.c (x_window): Use xstrdup (Bug#11375).
2144
90207a15 21452012-05-02 Eli Zaretskii <eliz@gnu.org>
2fa85638
EZ
2146
2147 * xdisp.c (pos_visible_p): If already at a newline from the
2148 display string before the 'while' loop, don't walk back the glyphs
2149 from it3.glyph_row. Solves assertion violation when the display
2150 string begins with a newline (egg.el). (Bug#11367)
2151
b593d6a9
AH
21522012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
2153
2154 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
2155 Move to simple.el.
2156
4737362e
GM
21572012-05-01 Glenn Morris <rgm@gnu.org>
2158
99cf43f9
GM
2159 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
2160 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
2161 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
2162 All were removed before 23.1.
2163
9311dcff
GM
2164 * dispnew.c: Remove HAVE_LIBNCURSES test;
2165 it is always true on relevant platforms.
2166
4d5c6349
GM
2167 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
2168 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
2169
4737362e
GM
2170 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
2171
74dd3a6b
AS
21722012-04-30 Andreas Schwab <schwab@linux-m68k.org>
2173
2174 * .gdbinit (xpr): Remove checks for no longer existing misc types.
2175 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
2176 Remove.
2177
13c379ee
PE
21782012-04-28 Paul Eggert <eggert@cs.ucla.edu>
2179
2180 Do not avoid creating empty evaporating overlays (Bug#9642).
2181 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
2182 That is, do not delete an evaporating overlay if it becomes
2183 empty after its bounds are adjusted to fit within its buffer.
2184 This fix caused other problems, and I'm reverting it until we get
2185 to the bottom of them.
2186
a8e7d6d7 21872012-04-27 Chong Yidong <cyd@gnu.org>
9be2fd9b
CY
2188
2189 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
2190
a8e7d6d7 21912012-04-27 Eli Zaretskii <eliz@gnu.org>
f0ee99a0
EZ
2192
2193 * xdisp.c (pos_visible_p): If the window start position is beyond
2194 ZV, start the display from buffer beginning. Prevents assertion
2195 violation in init_iterator when the minibuffer window is scrolled
2196 via the scroll bar.
2197
2198 * window.c (window_scroll_pixel_based): Likewise.
2199
a8e7d6d7 22002012-04-27 Chong Yidong <cyd@gnu.org>
9ec7751f
CY
2201
2202 * keymap.c (where_is_internal): Doc fix (Bug#10872).
2203
a8e7d6d7 22042012-04-27 Glenn Morris <rgm@gnu.org>
24c51a09
GM
2205
2206 * fileio.c (Fcopy_file, Fset_file_selinux_context):
2207 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
2208
a8e7d6d7 22092012-04-27 Eli Zaretskii <eliz@gnu.org>
73055685 2210
b593d6a9
AH
2211 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
2212 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
73055685 2213
1c6900d9
EZ
22142012-04-26 Eli Zaretskii <eliz@gnu.org>
2215
4c3fa1d9
EZ
2216 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
2217 display element, check also the underlying string or buffer
2218 character. (Bug#11341)
2219
1c6900d9
EZ
2220 * w32menu.c: Include w32heap.h.
2221 (add_menu_item): If the call to AppendMenuW (via
2222 unicode_append_menu) fails, disable Unicode menus only if we are
2223 running on Windows 9X/Me.
2224
42bf8205
AS
22252012-04-24 Andreas Schwab <schwab@linux-m68k.org>
2226
2227 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
2228 (xgetint): Add missing shift for LSB tags.
2229
b1bac16e
MR
22302012-04-24 Martin Rudalics <rudalics@gmx.at>
2231
2232 * keyboard.c (read_char): Don't wipe echo area for select window
2233 events: These might get delayed via `mouse-autoselect-window'
2234 (Bug#11304).
2235
d69621cc
JB
22362012-04-24 Juanma Barranquero <lekktu@gmail.com>
2237
2238 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
2239 manipulation of :loaded-from data.
2240
02fd101b
JB
22412012-04-23 Juanma Barranquero <lekktu@gmail.com>
2242
2243 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
2244 now a cons (bug#11311).
2245
888bec30
PE
22462012-04-23 Paul Eggert <eggert@cs.ucla.edu>
2247
89a438bd
PE
2248 Do not create empty overlays with the evaporate property (Bug#9642).
2249 * buffer.c (Fmove_overlay): Delete an evaporating overlay
2250 if it becomes empty after its bounds are adjusted to fit within
2251 its buffer. Without this fix, in a nonempty buffer (let ((o
2252 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
2253 yields an empty overlay that has the evaporate property, which is
2254 not supposed to happen.
2255
1068fe4d
PE
2256 Fix minor GTK3 problems found by static checking.
2257 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
2258 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
2259 (struct _EmacsFixedClass, emacs_fixed_get_type):
2260 Move decls here from emacsgtkfixed.h, since they needn't be public.
2261 (emacs_fixed_get_type): Now static.
2262 (emacs_fixed_class_init): Omit unused local.
2263 (emacs_fixed_child_type): Remove; unused.
2264 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
2265 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
2266 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
2267 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
2268 (EMACS_FIXED_GET_CLASS): Remove; unused.
2269 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
2270
888bec30
PE
2271 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
2272 Problem reported by Juanma Barranquero for Windows -Wunused-function.
2273
de85e130
PE
22742012-04-22 Paul Eggert <eggert@cs.ucla.edu>
2275
d0baac98 2276 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
bd7239f5 2277 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
d0baac98
PE
2278 (__malloc_size_t, __malloc_ptrdiff_t):
2279 Remove. All uses removed, replaced by the definiens if needed,
2280 since we can assume C89 or better now.
2281 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
2282 (protect_malloc_state, align, get_contiguous_space)
2283 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
2284 (malloc_atfork_handler_child, malloc_enable_thread)
2285 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
2286 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
2287 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
2288 (special_realloc, _realloc_internal_nolock, _realloc_internal)
2289 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
2290 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
2291 Define using prototypes, not old style.
2292 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
2293 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
2294 (align): Don't assume that signed integer overflow wraps around.
2295 Omit unused local var.
2296 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
2297 (_free_internal_nolock, memalign, mallochook, reallochook):
2298 Omit no-longer-needed casts.
2299 (valloc): Use getpagesize, not __getpagesize.
2300 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
2301 (struct hdr): The 'magic' member is now size_t, not unsigned long.
2302
de85e130
PE
2303 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
2304
dcbf5805
MA
23052012-04-22 Michael Albinus <michael.albinus@gmx.de>
2306
2307 Move functions from C to Lisp. Make non-blocking method calls
2308 the default. Implement further D-Bus standard interfaces.
2309
2310 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
2311 (QCdbus_request_name_allow_replacement)
2312 (QCdbus_request_name_replace_existing)
2313 (QCdbus_request_name_do_not_queue)
2314 (QCdbus_request_name_reply_primary_owner)
2315 (QCdbus_request_name_reply_in_queue)
2316 (QCdbus_request_name_reply_exists)
2317 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
2318 (QCdbus_registered_serial, QCdbus_registered_method)
2319 (QCdbus_registered_signal): New Lisp objects.
2320 (XD_DEBUG_MESSAGE): Use sizeof.
2321 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
2322 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
2323 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
2324 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
2325 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
2326 (xd_signature, xd_append_arg): Allow float for integer types.
2327 (xd_get_connection_references): New function.
b593d6a9
AH
2328 (xd_get_connection_address): Rename from xd_initialize.
2329 Return cached address.
dcbf5805
MA
2330 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
2331 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
2332 level.
2333 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
9a4b36f8 2334 Return number of refcounts.
dcbf5805
MA
2335 (Fdbus_get_unique_name): Make stronger parameter check.
2336 (Fdbus_message_internal): New defun.
2337 (Fdbus_call_method, Fdbus_call_method_asynchronously)
2338 (Fdbus_method_return_internal, Fdbus_method_error_internal)
2339 (Fdbus_send_signal, Fdbus_register_service)
2340 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
2341 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
2342 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
2343 (Vdbus_compiled_version, Vdbus_runtime_version)
2344 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
2345 (Vdbus_message_type_method_return, Vdbus_message_type_error)
2346 (Vdbus_message_type_signal): New defvars.
b593d6a9
AH
2347 (Vdbus_registered_buses, Vdbus_registered_objects_table):
2348 Adapt docstring.
dcbf5805 2349
52828e02
PE
23502012-04-22 Paul Eggert <eggert@cs.ucla.edu>
2351
da05bc4c
PE
2352 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
2353 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
2354 Do not assume ptrdiff_t is the same width as 'int'.
2355
52828e02
PE
2356 * alloc.c: Handle unusual debugging option combinations.
2357 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
2358 since the two debugging options are incompatible.
2359 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
2360 is defined.
2361 (mem_init, mem_insert, mem_insert_fixup):
2362 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
2363 (NEED_MEM_INSERT): Remove; no longer needed.
2364
f01769f9
LL
23652012-04-22 Leo Liu <sdl.web@gmail.com>
2366
2367 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
2368
5790543d
PE
23692012-04-22 Paul Eggert <eggert@cs.ucla.edu>
2370
2371 * sysdep.c [__FreeBSD__]: Minor cleanups.
2372 (list_system_processes, system_process_attributes) [__FreeBSD__]:
2373 Use Emacs indenting style more consistently. Avoid some casts.
2374 Use 'double' consistently rather than mixing 'float' and 'double'.
2375
b91b7e4d
EW
23762012-04-21 Eduard Wiebe <usenet@pusto.de>
2377
b593d6a9
AH
2378 * sysdep.c (list_system_processes, system_process_attributes):
2379 Add implementation for FreeBSD (Bug#5243).
b91b7e4d 2380
6114eb15
AS
23812012-04-21 Andreas Schwab <schwab@linux-m68k.org>
2382
2383 * lisp.mk (lisp): Update.
2384
2f38dff7
PE
23852012-04-20 Paul Eggert <eggert@cs.ucla.edu>
2386
2387 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
2388 It is never used otherwise.
2389
4ae29f89
SM
23902012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
2391
2392 * print.c (print_preprocess): Only check print_depth if print-circle
2393 is nil.
2394 (print_object): Check for cycles even when print-circle is nil and
2395 print-gensym is t, but only check print_depth if print-circle is nil.
2396
f30d612a
CY
23972012-04-20 Chong Yidong <cyd@gnu.org>
2398
2399 * process.c (wait_reading_process_output): If EIO occurs on a pty,
2400 set the status to "failed" and ensure that sentinel is run.
2401
c07a4c0b 24022012-04-20 Glenn Morris <rgm@gnu.org>
016a35df
GM
2403
2404 * process.c (Fset_process_inherit_coding_system_flag)
2405 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
4373fd43 2406 (Fmake_network_process, Fmake_serial_process): Doc fix.
016a35df 2407
c07a4c0b 24082012-04-20 Eli Zaretskii <eliz@gnu.org>
20a68157
EZ
2409
2410 * xdisp.c (string_buffer_position_lim): Limit starting position to
2411 BEGV.
2412 (set_cursor_from_row): If called for a mode-line or header-line
2413 row, return zero immediately.
2414 (try_cursor_movement): If inside continuation line, don't back up
4ae29f89
SM
2415 farther than the first row after the header line, if any.
2416 Don't consider the header-line row as "partially visible", even if
20a68157
EZ
2417 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
2418
c07a4c0b 24192012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 2420
4ae29f89
SM
2421 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
2422 (bug#11238).
ad3a2b41 2423
c07a4c0b 24242012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
6c94c34f 24252012-04-18 Paul Eggert <eggert@cs.ucla.edu>
ae6e112d
PE
2426
2427 configure: new option --enable-gcc-warnings (Bug#11207)
2428 * Makefile.in (C_WARNINGS_SWITCH): Remove.
2429 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
2430 (ALL_CFLAGS): Use new macros rather than old.
2431 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
2432 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
2433 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
2434 -Wunused-result, -Wunused-variable. This should go away once
2435 the Emacs and Gnulib regex code is merged.
2436 (xmalloc, xrealloc): Now static.
2437
aba027e8
PE
24382012-04-17 Paul Eggert <eggert@cs.ucla.edu>
2439
2440 * dired.c (Fsystem_groups): Remove unused local.
2441
e5a36063
GM
24422012-04-17 Glenn Morris <rgm@gnu.org>
2443
2444 * dired.c (Fsystem_users): Doc fix.
2445
316411f0
DA
24462012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
2447
2448 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
2449 (syms_of_dired): Add them.
2450
9426aba4
PE
24512012-04-16 Paul Eggert <eggert@cs.ucla.edu>
2452
b62a57be
PE
2453 Fix minor alloc.c problems found by static checking.
2454 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
2455 New extern decls, to avoid calling undeclared functions.
2456 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
2457 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
2458 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
2459 (NEED_MEM_INSERT): New macro.
2460 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
4b5afbb0 2461 Remove one incorrect comment and fix another.
b62a57be 2462
3539f31f
PE
2463 Fix minor ralloc.c problems found by static checking.
2464 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
2465 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
2466 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
2467 (r_alloc_sbrk): Now static.
2468
a041960a
PE
2469 Improve ralloc.c interface checking.
2470 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
2471 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
2472 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
2473 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
2474 [REL_ALLOC]: ... to here, to check interface.
2475 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
2476 Remove decls. This fixes an "It stinks!".
2477
9426aba4
PE
2478 * alloc.c (which_symbols): Fix alignment issue / type clash.
2479
d55c12ed
AS
24802012-04-15 Andreas Schwab <schwab@linux-m68k.org>
2481
2482 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
2483 (struct Lisp_Misc_Any): Likewise.
2484 (struct Lisp_Free): Likewise.
2485 * alloc.c (union aligned_Lisp_Symbol): Define.
2486 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
2487 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
2488 (union aligned_Lisp_Misc): Define.
2489 (MARKER_BLOCK_SIZE, struct marker_block): Use union
2490 aligned_Lisp_Misc instead of union Lisp_Misc.
4ae29f89 2491 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
d55c12ed 2492
b948ce8b
PE
24932012-04-14 Paul Eggert <eggert@cs.ucla.edu>
2494
2495 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
2496 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
2497 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
2498 * s/netbsd.h, s/sol2-6.h:
2499 Remove definition of GC_MARK_STACK, since the default now works.
2500 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
2501 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
2502 no longer the default.
2503 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
2504
35dc09a1 25052012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
ad3a2b41 2506
35dc09a1
GM
2507 * lread.c (lisp_file_lexically_bound_p):
2508 Fix hang at ";-*-\n" (bug#11238).
ad3a2b41 2509
35dc09a1
GM
25102012-04-14 Eli Zaretskii <eliz@gnu.org>
2511
2512 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
2513 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
2514
25152012-04-14 Jan Djärv <jan.h.d@swipnet.se>
2516
2517 * nsterm.m (constrainFrameRect): Always constrain when there is only
2518 one screen (Bug#10962).
2519
bcd86815
KB
25202012-04-13 Ken Brown <kbrown@cornell.edu>
2521
2522 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
2523
c25df26e
RT
25242012-04-13 Reuben Thomas <rrt@sc3d.org>
2525
2526 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
2527
0fc59f1e
DC
25282012-04-11 Daniel Colascione <dancol@dancol.org>
2529
2530 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
2531 against is gone. It's better to use vfork now so that when Cygwin
2532 gains a new, working vfork, we use it automatically (bug#10398).
2533
de8c03dc
SM
25342012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
2535
2536 * window.c (save_window_save): Obey window-point-insertion-type.
2537
2f097256
GM
25382012-04-11 Glenn Morris <rgm@gnu.org>
2539
2540 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
2541
453b951e
SM
25422012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
2543
2544 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
2545
75f1671a 25462012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
6bbef4e5
JC
2547
2548 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
2549 (force_quit_count): New var.
2550 (handle_interrupt): Use it.
2551
2a8ce227
JB
25522012-04-10 Juanma Barranquero <lekktu@gmail.com>
2553
2554 * w32.c (w32_delayed_load): Record the full path of the library
2555 being loaded (bug#10424).
2556
935396c0
GM
25572012-04-09 Glenn Morris <rgm@gnu.org>
2558
05920a43
GM
2559 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
2560 not just in the obarray, before snarfing them. (Bug#11036)
2561
935396c0
GM
2562 * Makefile.in ($(leimdir)/leim-list.el):
2563 Pass EMACS rather than BUILT_EMACS.
2564
a18ecafa
TZ
25652012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
2566
2567 * process.c (make_process):
2568 * process.h: Add integer `gnutls_handshakes_tried' member to
2569 process struct.
2570
6bbef4e5
JC
2571 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
2572 Add convenience `GNUTLS_LOG2i' macro.
a18ecafa
TZ
2573
2574 * gnutls.c (gnutls_log_function2i): Convenience log function.
2575 (emacs_gnutls_read): Use new log functions,
2576 `gnutls_handshakes_tried' process member, and
2577 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
2578 attempts per process (connection).
2579
b4d3bc10
CY
25802012-04-09 Chong Yidong <cyd@gnu.org>
2581
2582 * eval.c (Fuser_variable_p, user_variable_p_eh)
2583 (lisp_indirect_variable): Functions deleted.
2584 (Fdefvar): Caller changed.
2585
2586 * callint.c (Finteractive, Fcall_interactively):
2587 * minibuf.c (Fread_variable): Callers changed.
2588
70f4d973
EZ
25892012-04-09 Eli Zaretskii <eliz@gnu.org>
2590
2591 * xdisp.c (set_cursor_from_row): If the display string appears in
2592 the buffer at position that is closer to point than the position
2593 after the display string, display the cursor on the first glyph of
2594 the display string. Fixes cursor display when a 'display' text
2595 property immediately follows invisible text. (Bug#11094)
2596
cb3c2e3e
PE
25972012-04-09 Paul Eggert <eggert@cs.ucla.edu>
2598
2599 composite.c: use 'double' consistently
2600 * composite.c (get_composition_id): Use 'double' consistently
2601 instead of converting 'float' to 'double' and vice versa; this is
2602 easier to understand and avoids a GCC warning.
2603
fd06db5d
GM
26042012-04-09 Glenn Morris <rgm@gnu.org>
2605
50fe702a
GM
2606 * Makefile.in: Generate leim-list with bootstrap-emacs, in
2607 preparation for dumping it with emacs. (Bug#4789)
2608 (leimdir): New variable.
2609 ($(leimdir)/leim-list.el): New rule.
2610 (emacs$(EXEEXT)): Depend on leim-list.el.
2611
fd06db5d
GM
2612 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
2613 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
2614 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
2615
55c131ee
AS
26162012-04-08 Andreas Schwab <schwab@linux-m68k.org>
2617
2618 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
2619 proper alignment.
2620
9209588f
JB
26212012-04-07 Juanma Barranquero <lekktu@gmail.com>
2622
2623 * xml.c (init_libxml2_functions) [WINDOWSNT]:
2624 Remove unused local variable.
2625
e3fb2efb
PE
26262012-04-07 Paul Eggert <eggert@cs.ucla.edu>
2627
2628 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
2629 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
2630 (mark_memory): Mark Lisp_Objects only if pointers might hide in
2631 objects, as mark_maybe_pointer will catch them otherwise.
2632 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
2633 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
2634
b5385551
PE
26352012-04-07 Paul Eggert <eggert@cs.ucla.edu>
2636
2637 Fix typo that broke non-Windows builds.
2638 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
2639
9078ead6
EZ
26402012-04-07 Eli Zaretskii <eliz@gnu.org>
2641
2642 Support building on MS-Windows with libxml2.
2643
2644 * makefile.w32-in (OBJ2): Add xml.$(O).
2645 (GLOBAL_SOURCES): Add xml.c.
2646 ($(BLD)/xml.$(O)): New dependency list.
2647
2648 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
2649 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
2650 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
2651 [!WINDOWSNT]: New macros.
2652 (init_libxml2_functions, libxml2_loaded_p): New functions.
2653 (parse_region): Call fn_xmlCheckVersion instead of using the macro
2654 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
2655 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
2656 Calls xmlCleanupParser only if libxml2 was loaded (or statically
2657 linked in).
6bbef4e5
JC
2658 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
2659 Call init_libxml2_functions before calling libxml2 functions.
9078ead6
EZ
2660 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
2661
2662 * emacs.c: Don't include libxml/parser.h.
2663 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
2664 xmlCleanupParser directly.
2665
2666 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
2667
3811fdf3
EZ
26682012-04-07 Eli Zaretskii <eliz@gnu.org>
2669
2670 * indent.c (Fvertical_motion): If there is a display string at
2671 point, use it.vpos to compute how many lines to backtrack after
2672 move_it_to point. (Bug#11133)
2673
2f8e16b2
EZ
26742012-04-06 Eli Zaretskii <eliz@gnu.org>
2675
2676 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
2677 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
2678 about subtle differences between FETCH_CHAR* and STRING_CHAR*
2679 macros related to unification of CJK characters. For the details,
2680 see the discussion following the message here:
2681 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
2682
3d439cd1
CY
26832012-04-04 Chong Yidong <cyd@gnu.org>
2684
2685 * keyboard.c (Vdelayed_warnings_list): Doc fix.
2686
8bc53d00
EZ
26872012-04-01 Eli Zaretskii <eliz@gnu.org>
2688
2689 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
2690 instead of alloca. (Bug#11138)
2691
3b0512a3
AS
26922012-04-01 Andreas Schwab <schwab@linux-m68k.org>
2693
2694 * w32menu.c (is_simple_dialog): Properly check lisp types.
2695 (Bug#11141)
2696
8427ddd2
EZ
26972012-03-31 Eli Zaretskii <eliz@gnu.org>
2698
979022ef
EZ
2699 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
2700 position we get to after a call to move_it_to fails the
2701 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
2702 only if we wind up in a string from display property. (Bug#11063)
2703
a6b1c7cc
EZ
2704 * window.c (Fdelete_other_windows_internal): Invalidate the row
2705 and column information about mouse highlight, so that redisplay
2706 restores it after reallocating the glyph matrices. (Bug#7464)
2707
8427ddd2
EZ
2708 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
2709 string comes from a `display' text property, use the buffer
2710 position of that property as if we actually saw that position in
2711 the row's glyphs.
697ba24b
EZ
2712 (move_it_by_lines): Remove the assertion that
2713 "it->current_x == 0 && it->hpos == 0" which can be legitimately
2714 violated when there's a before-string at the beginning of a line.
2715 (Bug#11063)
8427ddd2 2716
65a0a738
EZ
27172012-03-30 Eli Zaretskii <eliz@gnu.org>
2718
2719 * xdisp.c (append_space_for_newline): If the default face was
2720 remapped, use the remapped face for the appended newline.
2721 (extend_face_to_end_of_line): Use the remapped default face for
2722 extending the face to the end of the line.
2723 (display_line): Call extend_face_to_end_of_line when the default
2724 face was remapped. (Bug#11068)
2725
581355cc
EZ
27262012-03-29 Eli Zaretskii <eliz@gnu.org>
2727
2728 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
2729
e8fc049f
SM
27302012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
2731
2732 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
2733
4fb9a543
GM
27342012-03-27 Glenn Morris <rgm@gnu.org>
2735
2736 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
2737 Doc fixes.
2738
679910f1
KH
27392012-03-26 Kenichi Handa <handa@m17n.org>
2740
2741 * dispextern.h (struct glyph): Fix previous change. Change the
2742 bit length of glyphless.ch to 25 (Bug#11082).
2743
90d49b7f
CY
27442012-03-26 Chong Yidong <cyd@gnu.org>
2745
2746 * keyboard.c (Vselection_inhibit_update_commands): New variable.
2747 (command_loop_1): Use it; inhibit selection update for
2748 handle-select-window too (Bug#8996).
2749
f514f6f0
FP
27502012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
2751
e8fc049f 2752 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
f514f6f0 2753
bf43fa51
KH
27542012-03-25 Kenichi Handa <handa@m17n.org>
2755
2756 * dispextern.h (struct glyph): Change the bit length of
2757 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
2758
8a0c01dd
EZ
27592012-03-24 Eli Zaretskii <eliz@gnu.org>
2760
2761 * s/ms-w32.h (tzname): Include time.h before redirecting to
2762 _tzname. Fixes the MSVC build. (Bug#9960)
2763
7d1c3a76
AS
27642012-03-24 Andreas Schwab <schwab@linux-m68k.org>
2765
8ed79523
AS
2766 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
2767 characters.
2768
7d1c3a76
AS
2769 * xterm.c (XTread_socket): Only modify handling_signal if
2770 !SYNC_INPUT. (Bug#11080)
2771
e99a9b8b
EZ
27722012-03-23 Eli Zaretskii <eliz@gnu.org>
2773
2774 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
2775 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
2776 when fetching a multibyte character consumes more bytes than
2777 CHAR_BYTES returns, due to unification of CJK characters in
2778 string_char. (Bug#11073)
2779
5063c0e1
TN
27802012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
2781
2782 * process.c (wait_reading_process_output): Handle pty disconnect
2783 by refraining from sending oneself a SIGCHLD (bug#10933).
2784
9f851fbd
CY
27852012-03-22 Chong Yidong <cyd@gnu.org>
2786
2787 * dispextern.h (struct it): New member string_from_prefix_prop_p.
2788
5063c0e1 2789 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
9f851fbd
CY
2790 Mark string as coming from a prefix property.
2791 (handle_face_prop): Use default face for prefix strings (Bug#4281).
2792 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
2793
fb5b8aca
CY
27942012-03-21 Chong Yidong <cyd@gnu.org>
2795
2796 * xfaces.c (Vface_remapping_alist): Doc fix.
2797
62356a1b
EZ
27982012-03-20 Eli Zaretskii <eliz@gnu.org>
2799
2800 * w32proc.c (Fw32_set_console_codepage)
5063c0e1
TN
2801 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
2802 Doc fixes.
62356a1b 2803
025de85b
CY
28042012-03-20 Chong Yidong <cyd@gnu.org>
2805
2806 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
2807 to reflect default non-nil value of redisplay-dont-pause.
2808
4827f94e
KH
28092012-03-19 Kenichi Handa <handa@m17n.org>
2810
2811 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
2812 it fit in a valid range (Bug#11003).
2813
e50a24a2
EZ
28142012-03-18 Eli Zaretskii <eliz@gnu.org>
2815
2816 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
2817 that is not from display property, accept the row as a "cursor
2818 row" if one of the string's character has a non-nil `cursor'
2819 property. Fixes cursor positioning when there are newlines in
2820 overlay strings, e.g. in icomplete.el. (Bug#11035)
2821
9af5ed87
PE
28222012-03-12 Paul Eggert <eggert@cs.ucla.edu>
2823
2824 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
2825
d1f55f16
CY
28262012-03-12 Chong Yidong <cyd@gnu.org>
2827
2828 * eval.c (inhibit_lisp_code): Rename from
2829 inhibit_window_configuration_change_hook; move from window.c.
2830
2831 * xfns.c (unwind_create_frame_1, Fx_create_frame):
2832 * window.c (run_window_configuration_change_hook)
2833 (syms_of_window): Callers changed.
2834
66c5eebd
CY
28352012-03-11 Chong Yidong <cyd@gnu.org>
2836
413df973
CY
2837 * keymap.c (Fkey_description): Doc fix (Bug#9700).
2838
66c5eebd
CY
2839 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
2840
1de11f56
CY
28412012-03-10 Chong Yidong <cyd@gnu.org>
2842
2843 * frame.c (other_visible_frames): Don't assume the selected frame
2844 is visible (Bug#10955).
2845
cae07000
SM
28462012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
2847
2848 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
2849
89c94350
JD
28502012-03-08 Jan Djärv <jan.h.d@swipnet.se>
2851
2852 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
2853 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
2854 zero (Bug#10954).
2855
999dd333
GM
28562012-03-03 Glenn Morris <rgm@gnu.org>
2857
01a6dcc8 2858 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
999dd333 2859
de0100f2
EZ
28602012-03-02 Eli Zaretskii <eliz@gnu.org>
2861
2862 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
2863 position past the first glyph_row that ends at ZV. (Bug#10902)
b8456c5c
EZ
2864 (redisplay_window, next_element_from_string): Fix typos in
2865 comments.
3e441275
EZ
2866 (redisplay_window): Pass to move_it_vertically the margin in
2867 pixels, not in screen lines.
de0100f2 2868
96a72ee9
GM
28692012-03-02 Glenn Morris <rgm@gnu.org>
2870
2871 * buffer.c (buffer-list-update-hook): Doc fix.
2872
312508d7
EZ
28732012-02-29 Eli Zaretskii <eliz@gnu.org>
2874
2875 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
2876 push_it before setting up the iterator for the first overlay
2877 string, even if we have an empty string loaded.
2878 (next_overlay_string): If there's an empty string on the iterator
2879 stack, pop the stack. (Bug#10903)
2880
27f3c637
PE
28812012-02-25 Paul Eggert <eggert@cs.ucla.edu>
2882
2883 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
2884 Suggested by Stefan Monnier in
2885 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
2886 * alloc.c (widen_to_Lisp_Object): New static function.
2887 (mark_memory): Also mark Lisp_Objects by fetching pointer words
2888 and widening them to Lisp_Objects. This would work even if
2889 USE_LSB_TAG is defined and wide integers are used, which might
2890 happen in a future version of Emacs.
2891
3c9dfce6
CY
28922012-02-25 Chong Yidong <cyd@gnu.org>
2893
fa74b241
CY
2894 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
2895 Doc fix.
2896
3c9dfce6
CY
2897 * xselect.c (Fx_selection_exists_p): Doc fix.
2898 (x_clipboard_manager_save_all): Print an informative message
2899 before saving to clipboard manager.
2900
9486df08
CY
29012012-02-24 Chong Yidong <cyd@gnu.org>
2902
2903 * keyboard.c (process_special_events): Handle all X selection
2904 requests in kbd_buffer, not just the next one (Bug#8869).
2905
f01d3321
CY
29062012-02-23 Chong Yidong <cyd@gnu.org>
2907
2908 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
2909 call when setting menu-bar-lines and tool-bar-lines parameters.
2910 (unwind_create_frame_1): New helper function.
2911
2912 * window.c (inhibit_window_configuration_change_hook): New var.
2913 (run_window_configuration_change_hook): Obey it.
b2e4ca7d 2914 (syms_of_window): Initialize it.
f01d3321 2915
86b847b6
CY
29162012-02-22 Chong Yidong <cyd@gnu.org>
2917
2918 * xterm.c (x_draw_image_relief): Add missing type check for
2919 Vtool_bar_button_margin (Bug#10743).
2920
a59225b1
CY
29212012-02-21 Chong Yidong <cyd@gnu.org>
2922
2923 * fileio.c (Vfile_name_handler_alist): Doc fix.
2924
2925 * buffer.c (Fget_file_buffer): Protect against invalid file
2926 handler return value.
2927
310f5bd4
PE
29282012-02-20 Paul Eggert <eggert@cs.ucla.edu>
2929
cb3a28cc
PE
2930 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
2931 when computing $valmask.
2932
310f5bd4
PE
2933 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
2934 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
2935 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
2936 It's useless in that case, and it can cause problems on hosts
2937 that allocate halves of EMACS_INT values separately.
2938 Reported by Dan Horák. Diagnosed by Andreas Schwab in
2939 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
2940 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
2941 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
2942 it avoids undefined behavior on hosts where shifting right by more
2943 than the word width has undefined behavior.
2944
2375c96a
CY
29452012-02-19 Chong Yidong <cyd@gnu.org>
2946
2947 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
2948 (Funhandled_file_name_directory, Ffile_name_as_directory)
2949 (Fdirectory_file_name, Fexpand_file_name)
2950 (Fsubstitute_in_file_name): Protect against invalid file handler
2951 return values (Bug#10845).
2952
3eb49e71
EZ
29532012-02-18 Eli Zaretskii <eliz@gnu.org>
2954
2955 * .gdbinit (pitx): Fix incorrect references to fields of the
2956 iterator stack.
2957
7b926f3f
CY
29582012-02-17 Chong Yidong <cyd@gnu.org>
2959
2960 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
2961
11273115
PE
29622012-02-15 Paul Eggert <eggert@cs.ucla.edu>
2963
2964 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
2965 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
2966
c3a70e2b
CY
29672012-02-15 Chong Yidong <cyd@gnu.org>
2968
2969 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
2970 marked as special. Also, starting docstrings with * is obsolete.
2971
0ca43699
AS
29722012-02-13 Andreas Schwab <schwab@linux-m68k.org>
2973
2974 * gnutls.c (emacs_gnutls_write): Fix last change.
2975
2e8f3c56
LI
29762012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
2977
2978 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
2979 send_process.
2980
af70074f
SM
29812012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
2982
2983 * keymap.c (Fsingle_key_description): Handle char ranges.
2984
95986d52
CY
29852012-02-12 Chong Yidong <cyd@gnu.org>
2986
afd83bd1
CY
2987 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
2988 as that creates a dangerous corner case.
2989
95986d52
CY
2990 * window.c (Fdelete_window_internal): Invalidate the mouse
2991 highlight (Bug#9904).
2992
bd7da63e
GM
29932012-02-12 Glenn Morris <rgm@gnu.org>
2994
2995 * xselect.c (Fx_own_selection_internal)
2996 (Fx_get_selection_internal, Fx_disown_selection_internal)
2997 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
2998 * nsselect.m (Fx_own_selection_internal)
2999 (Fx_disown_selection_internal, Fx_selection_exists_p)
3000 (Fx_selection_owner_p, Fx_get_selection_internal):
3001 Sync docs and argument specs with the xselect.c versions.
3002
77abcbc2
LI
30032012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
3004
3005 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
3006
90b671e2
EZ
30072012-02-11 Eli Zaretskii <eliz@gnu.org>
3008
1c0ca0b7
EZ
3009 * w32select.c (Fx_selection_exists_p): Sync doc string and
3010 argument list with xselect.c. (Bug#10783)
3011
3012 * w16select.c (Fx_selection_exists_p): Sync doc string and
3013 argument list with xselect.c. (Bug#10783)
90b671e2 3014
49241268
GM
30152012-02-10 Glenn Morris <rgm@gnu.org>
3016
3017 * fns.c (Fsecure_hash): Doc fix.
3018
f998bbe7 30192012-02-09 Kenichi Handa <handa@m17n.org>
5c1ca13d
KH
3020
3021 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
3022
0992bd9c
CY
30232012-02-07 Chong Yidong <cyd@gnu.org>
3024
3025 * buffer.c (Fbuffer_local_variables)
3026 (buffer_lisp_local_variables): Handle unbound vars correctly;
3027 don't let Qunbound leak into Lisp.
3028
af008560
GM
30292012-02-07 Glenn Morris <rgm@gnu.org>
3030
dd605cc4
GM
3031 * image.c (Fimagemagick_types): Doc fix.
3032
af008560
GM
3033 * image.c (imagemagick-render-type): Change it from a lisp object
3034 to an integer. Move the doc here from the lisp manual.
3035 Treat all values not equal to 0 the same.
3036
1449fa1d
CY
30372012-02-06 Chong Yidong <cyd@gnu.org>
3038
3039 * doc.c (store_function_docstring): Avoid applying docstring of
3040 alias to base function (Bug#2603).
3041
3723ec07
AS
30422012-02-04 Andreas Schwab <schwab@linux-m68k.org>
3043
3044 * .gdbinit (pp1, pv1): Remove redundant defines.
3045 (pr): Use pp.
3046
79c1cc1e
CY
30472012-02-04 Chong Yidong <cyd@gnu.org>
3048
3049 * nsterm.m: Declare a global (Bug#10694).
3050
d7f29f8e
EZ
30512012-02-04 Eli Zaretskii <eliz@gnu.org>
3052
cae07000
SM
3053 * w32.c (get_emacs_configuration_options):
3054 Include --enable-checking, if specified, in the return value.
d7f29f8e 3055
3b95a6f9
MR
30562012-02-04 Martin Rudalics <rudalics@gmx.at>
3057
3058 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
3059 after rounding frame sizes. (Bug#9723)
3060
d6fa96a6
EZ
30612012-02-04 Eli Zaretskii <eliz@gnu.org>
3062
3063 * keyboard.c (adjust_point_for_property): Don't position point
3064 before BEGV. (Bug#10696)
3065
df0b2940
PE
30662012-02-03 Paul Eggert <eggert@cs.ucla.edu>
3067
3068 Handle overflow when computing char display width (Bug#9496).
3069 * character.c (char_width): Return EMACS_INT, not int.
3070 (char_width, c_string_width): Check for overflow when
3071 computing the width; this is possible now that individual
3072 characters can have unbounded width. Problem introduced
3073 by merge from Emacs 23 on 2012-01-19.
3074
6bee44d6
MA
30752012-02-02 Michael Albinus <michael.albinus@gmx.de>
3076
3077 * dbusbind.c (Fdbus_register_method): Mention the return value
3078 :ignore in the docstring.
3079
44f92739
GM
30802012-02-02 Glenn Morris <rgm@gnu.org>
3081
1b9f60cc
GM
3082 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
3083
44f92739
GM
3084 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
3085 Unconditionally set to t. (Bug#10673)
3086 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
3087 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
3088 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
3089
c5d3843c
KH
30902012-02-02 Kenichi Handa <handa@m17n.org>
3091
3092 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
3093 0, do not call append_composite_glyph.
3094
159462d4 30952012-02-02 Kenichi Handa <handa@m17n.org>
d2a51fd7
KH
3096
3097 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
3098 NULL (Bug#6988).
3099 (x_produce_glyphs): If the component of a composition is a null
3100 string, set it->pixel_width to 1 to avoid zero-width glyph.
3101
78cef877
EZ
31022012-02-01 Eli Zaretskii <eliz@gnu.org>
3103
3104 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
3105 first 2 arguments are identical. This makes inserting large
3106 output from a subprocess an order of magnitude faster on
3107 MS-Windows, where all sbrk'ed memory is always contiguous.
3108
97897668
GM
31092012-01-31 Glenn Morris <rgm@gnu.org>
3110
3111 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
c78c6e0b 3112 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
97897668
GM
3113 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
3114
31fd3586
GM
31152012-01-29 Glenn Morris <rgm@gnu.org>
3116
3117 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
3118
0e24a8b2
CY
31192012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
3120
3121 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
3122
cc0adcb0
CY
31232012-01-28 Chong Yidong <cyd@gnu.org>
3124
3125 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
3126
acc28cb9
CY
31272012-01-26 Chong Yidong <cyd@gnu.org>
3128
9c69cfb7
CY
3129 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
3130
acc28cb9
CY
3131 * search.c (Fsearch_forward, Fsearch_backward): Document negative
3132 repeat counts (Bug#10507).
3133
48da7392
GM
31342012-01-26 Glenn Morris <rgm@gnu.org>
3135
3136 * lread.c (syms_of_lread): Doc fix.
3137
14af5f7f
CY
31382012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
3139
3140 * coding.c (encode_designation_at_bol): Change return value to
3141 EMACS_INT.
3142
0b21c100
CY
31432012-01-25 Chong Yidong <cyd@gnu.org>
3144
3145 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
3146
3c2907f7
CY
31472012-01-21 Chong Yidong <cyd@gnu.org>
3148
3149 * floatfns.c (Fcopysign): Make the second argument non-optional,
3150 since nil is not allowed anyway.
3151
959ad23f
AS
31522012-01-21 Andreas Schwab <schwab@linux-m68k.org>
3153
3154 * process.c (read_process_output): Use p instead of XPROCESS (proc).
3155 (send_process): Likewise.
3156
34a02f46
MR
31572012-01-19 Martin Rudalics <rudalics@gmx.at>
3158
3159 * window.c (save_window_save, Fcurrent_window_configuration)
cae07000
SM
3160 (Vwindow_persistent_parameters): Do not use Qstate.
3161 Rewrite doc-strings.
34a02f46 3162
1259009a 31632012-01-19 Kenichi Handa <handa@m17n.org>
25ed9e61
KH
3164
3165 * character.c (char_width): New function.
70d4fdf6
GM
3166 (Fchar_width, c_string_width, lisp_string_width):
3167 Use char_width (Bug#9496).
25ed9e61 3168
6a6ee00d
MR
31692012-01-16 Martin Rudalics <rudalics@gmx.at>
3170
3171 * window.c (Vwindow_persistent_parameters): New variable.
3172 (Fset_window_configuration, save_window_save): Handle persistent
3173 window parameters.
3174
c85efaf7
EZ
31752012-01-14 Eli Zaretskii <eliz@gnu.org>
3176
3177 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
3178 thrashing the stack of the thread. (Bug#9087)
3179
5944709e
PE
31802012-01-12 Paul Eggert <eggert@cs.ucla.edu>
3181
3182 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
3183
e71f5d99
EZ
31842012-01-11 Eli Zaretskii <eliz@gnu.org>
3185
3186 * xdisp.c (rows_from_pos_range): Handle the case where the
3187 highlight ends on a newline. (Bug#10464)
3188 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
3189 he end column for display of highlight that ends on a newline
3190 before a R2L line.
3191
ce316182
GM
31922012-01-11 Glenn Morris <rgm@gnu.org>
3193
3194 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
3195 from load-path also when installation-directory is nil. (Bug#10208)
3196
5b43da69
GM
31972012-01-10 Glenn Morris <rgm@gnu.org>
3198
74cc8ff9
GM
3199 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
3200
7d8d6e4e
GM
3201 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
3202 Update template values to be closer to their typical values these days.
5b43da69 3203
a0db8d43
EZ
32042012-01-09 Eli Zaretskii <eliz@gnu.org>
3205
3206 * xdisp.c (rows_from_pos_range): Accept additional argument
3207 DISP_STRING, and accept any glyph in a row whose object is that
3208 string as eligible for mouse highlight. Fixes mouse highlight of
3209 display strings from overlays. (Bug#10464)
3210
9a0115ab 32112012-01-07 Paul Eggert <eggert@cs.ucla.edu>
09450bae 3212
b9110d6a 3213 emacs: fix an auto-save permissions race condition (Bug#10400)
09450bae
PE
3214 * fileio.c (auto_saving_dir_umask): New static var.
3215 (Fmake_directory_internal): Use it.
3216 (do_auto_save_make_dir): Set it, instead of invoking chmod after
3217 creating the directory. The old code temporarily assigns
3218 too-generous permissions to the directory.
3219 (do_auto_save_eh): Clear it.
b9110d6a 3220 (Fdo_auto_save): Catch all errors, not just file errors, so
09450bae
PE
3221 that the var is always cleared.
3222
6c1bd3f3
EZ
32232012-01-07 Eli Zaretskii <eliz@gnu.org>
3224
3225 * search.c (scan_buffer): Pass character positions to
3226 know_region_cache, not byte positions. (Bug#6540)
3227
069d2b50
L
32282012-01-07 LynX <_LynX@bk.ru> (tiny change)
3229
3230 * w32.c (sys_rename): Report EXDEV when rename of a directory
3231 fails because the target is on another logical disk. (Bug#10284)
3232
75bf0d33
DB
32332012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
3234
3235 * xterm.c (x_embed_request_focus): New function.
3236
3237 * xterm.h: Add prototype.
3238
3239 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
3240
1c6e5a32
GM
32412012-01-05 Glenn Morris <rgm@gnu.org>
3242
3243 * emacs.c (emacs_copyright): Update short copyright year to 2012.
3244
651e947e
EZ
32452012-01-01 Eli Zaretskii <eliz@gnu.org>
3246
3247 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
3248 Load gnutls_transport_set_lowat only if GnuTLS version is below
3249 2.11.1.
3250 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
3251 GnuTLS versions below 2.11.1.
3252
3778cdd8
AL
32532011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
3254
3255 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
3256 to the doc string advising against its use for altering the way
3257 windows are scrolled.
3258
0e5317f7
KH
32592011-12-28 Kenichi Handa <handa@m17n.org>
3260
3261 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
3262 coding-system ASCII compatible only when it does not produce BOM
3263 on encoding (Bug#10383).
3264
93d5ca1f
JD
32652011-12-26 Jan Djärv <jan.h.d@swipnet.se>
3266
3267 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
3268 can scroll.
3269 (create_and_show_popup_menu): Always use menu_position_func for
3270 Gtk3 (Bug#10361).
3271
ca22b785
AS
32722011-12-24 Andreas Schwab <schwab@linux-m68k.org>
3273
3274 * callint.c (Fcall_interactively): Don't truncate prompt string.
3275
d048e1e6
EZ
32762011-12-23 Eli Zaretskii <eliz@gnu.org>
3277
3278 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
3279 property that ends at ZV, so that the bidi iteration could be
3ba1a2ad 3280 resumed from there (after widening). (Bug#10360)
d048e1e6 3281
5ccaba1f
JD
32822011-12-22 Jan Djärv <jan.h.d@swipnet.se>
3283
3284 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
3285
204ee57f
JD
32862011-12-21 Jan Djärv <jan.h.d@swipnet.se>
3287
b81d40f0
JB
3288 * nsterm.m (x_free_frame_resources):
3289 Release f->output_data.ns->miniimage.
204ee57f
JD
3290 (ns_index_color): Fix indentation. Do not retain
3291 color_table->colors[i].
3292
3293 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
3294 before returning.
3295
3296 * nsfns.m (x_set_background_color): Assign return value from
3297 ns_index_color to face-background instead of NSColor*.
3298 (ns_implicitly_set_icon_type): Fix indentation.
3299 Change assignment in for loop to comparison.
3300
3301 * emacs.c (ns_pool): New variable.
3302 (main): Assign ns_pool.
3303 (Fkill_emacs): Call ns_release_autorelease_pool.
3304
3305 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
3306 autorelease fdesc, release fdAttrs and tdict.
3307 (ns_get_covering_families): Release charset.
3308 (ns_findfonts): Release NSFontDescriptor created with new.
3309 (ns_uni_to_glyphs): Fix indentation.
3310 (setString): Release attrStr before assigning new value.
3311
c803b2b7
JD
33122011-12-18 Jan Djärv <jan.h.d@swipnet.se>
3313
678f4426
JD
3314 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
3315 and NS_IMPL_COCOA.
3316 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
3317 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
3318
cd394be1 33192011-12-18 David Reitter <reitter@cmu.edu>
678f4426 3320
5fecd5fc
JD
3321 * nsterm.m (ns_term_init): Subscribe for notifications
3322 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
3323 to method trackingNotification in EmacsMenu.
3324
3325 * nsmenu.m (trackingMenu): New variable.
3771cb17 3326 (trackingNotification): New method (from Aquamacs).
5fecd5fc 3327 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
3771cb17 3328 from Aquamacs (Bug#7030).
678f4426
JD
3329
33302011-12-18 Jan Djärv <jan.h.d@swipnet.se>
5fecd5fc 3331
c803b2b7
JD
3332 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
3333 (symbol_to_nsstring): Fix indentation.
3334 (ns_symbol_to_pb): New function.
cae07000
SM
3335 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
3336 (Fns_rotate_cut_buffers_internal): Remove.
3337 (Fns_store_selection_internal): Rename from
c803b2b7
JD
3338 Fns_store_cut_buffer_internal.
3339 (ns_get_foreign_selection, Fx_own_selection_internal)
3340 (Fx_disown_selection_internal, Fx_selection_exists_p)
b81d40f0
JB
3341 (Fns_get_selection_internal, Fns_store_selection_internal):
3342 Use ns_symbol_to_pb and check if return value is nil.
3343 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
3344 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
c803b2b7
JD
3345 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
3346 renamed to Sns_store_selection_internal.
3347 (ns_handle_selection_request): Move code to Fx_own_selection_internal
3348 and remove this function.
3349 (ns_handle_selection_clear): Remove, never used.
3350 (Fx_own_selection_internal): Move code from ns_handle_selection_request
3351 here.
3352
e1b01a3a
KB
33532011-12-17 Ken Brown <kbrown@cornell.edu>
3354
3355 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
3356 GID is unknown (Bug#10257).
3357
2adb6e85
PE
33582011-12-17 Paul Eggert <eggert@cs.ucla.edu>
3359
3360 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
3361 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
3362 which caused a build failure on GNU/Linux IA-64. This problem was
3363 introduced by my 2011-10-07 patch.
3364
d1d7b339
JL
33652011-12-15 Juri Linkov <juri@jurta.org>
3366
3367 * image.c (imagemagick_error): New function. (Bug#10112)
3368 (imagemagick_load_image): Comment out `MagickSetResolution' call.
3369 Use `imagemagick_error' where ImageMagick functions return
3370 `MagickFalse'.
3371 (Fimagemagick_types): Add `Fnreverse' to return the list in the
3372 proper order.
3373
100d5755
KH
33742011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3375
3376 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
3377 fill background (Bug#8992).
3378
454592a6
MR
33792011-12-13 Martin Rudalics <rudalics@gmx.at>
3380
3381 * window.c (Vwindow_combination_resize)
3382 (Vwindow_combination_limit): Use t instead of non-nil in
3383 doc-strings.
61d4b438
MR
3384 (Vrecenter_redisplay): Add first sentence of doc-string on
3385 separate line.
53524d93 3386 (Frecenter): Fix doc-string typo.
454592a6 3387
3633e3aa
KH
33882011-12-11 Kenichi Handa <handa@m17n.org>
3389
3390 * coding.c (Funencodable_char_position): Pay attention to the
3391 buffer text relocation (Bug#9389).
3392
7b9d523a 33932011-12-10 Jan Djärv <jan.h.d@swipnet.se>
61ccba97 3394
7b9d523a
JD
3395 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
3396 gtk_init (Bug#10100).
3397
b73189c6
EZ
33982011-12-10 Eli Zaretskii <eliz@gnu.org>
3399
3400 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
3401 IT->string is nil. (Bug#10263)
3402
f7dfe5d6
JD
34032011-12-10 Jan Djärv <jan.h.d@swipnet.se>
3404
83faebb4
JD
3405 * nsterm.h (x_free_frame_resources): Declare.
3406
f7dfe5d6
JD
3407 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
3408 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
3409
3410 * nsterm.h (ns_get_defaults_value): Declare.
3411
3412 * nsterm.m (ns_default): Call ns_get_defaults_value.
3413
7cd4e72c
EZ
34142011-12-09 Eli Zaretskii <eliz@gnu.org>
3415
3416 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
3417 (Bug#10170)
3418
b34d7317
YM
34192011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3420
3421 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
3422 that where the value of an _OBJC_* symbol points to is in the .bss
3423 section (Bug#10240).
3424
76470ad1
KH
34252011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
3426
3427 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
2fac8180 3428 after the loop to call ccl_driver at least once (Bug#8619).
76470ad1 3429
745fff94
KH
34302011-12-08 Kenichi Handa <handa@m17n.org>
3431
3432 * ftfont.c (get_adstyle_property): Fix previous change
3433 (Bug#10233).
3434
6e44397c
JB
34352011-12-07 Juanma Barranquero <lekktu@gmail.com>
3436
3437 * w32.c (init_environment): If no_site_lisp, remove site-lisp
3438 dirs from the default value of EMACSLOADPATH (bug#10208).
3439
7efa6272
GM
34402011-12-07 Glenn Morris <rgm@gnu.org>
3441
3442 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
3443 installation and source directories as well. (Bug#10208)
3444
f6fc4d87
CY
34452011-12-06 Chong Yidong <cyd@gnu.org>
3446
3447 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
3448
2bf26180
GM
34492011-12-06 Glenn Morris <rgm@gnu.org>
3450
3451 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
3452 as an error, not just -1. (Bug#10217)
3453
3a6ad4f0
CY
34542011-12-05 Chong Yidong <cyd@gnu.org>
3455
3456 * keyboard.c (process_special_events): New function.
3457 (swallow_events, Finput_pending_p): Use it (Bug#10195).
3458
75a3b399
PE
34592011-12-05 Paul Eggert <eggert@cs.ucla.edu>
3460
3461 * coding.c (encode_designation_at_bol): Don't use uninitialized
3462 local variable (Bug#9318).
3463
c3c9e25e
KH
34642011-12-05 Kenichi Handa <handa@m17n.org>
3465
3466 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
3467 return Qnil (Bug#8046, Bug#10193).
3468
5eb05ea3
KH
34692011-12-05 Kenichi Handa <handa@m17n.org>
3470
3471 * coding.c (encode_designation_at_bol): New args charbuf_end and
3472 dst. Return the number of produced bytes. Callers changed.
a79703f5
KH
3473 (coding_set_source): Return how many bytes coding->source was
3474 relocated.
3475 (coding_set_destination): Return how many bytes
3476 coding->destination was relocated.
3477 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
cae07000 3478 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
5eb05ea3
KH
3479
34802011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
3481
3482 * coding.c (CODING_CHAR_CHARSET_P): New macro.
3483 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
3484 macro (Bug#9318).
3485
34862011-12-05 Andreas Schwab <schwab@linux-m68k.org>
3487
3488 The following changes are to fix Bug#9318.
3489
a79703f5 3490 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
5eb05ea3
KH
3491 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
3492 (encode_coding_iso_2022, encode_coding_sjis)
a79703f5 3493 (encode_coding_big5, encode_coding_charset): Use the above macros.
5eb05ea3 3494
7dbda6df
JB
34952011-12-05 Juanma Barranquero <lekktu@gmail.com>
3496
3497 * lisp.h (process_quit_flag): Fix external declaration.
3498
6d5eb5b0
SM
34992011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
3500
3501 Don't macro-inline non-performance-critical code.
3502 * eval.c (process_quit_flag): New function.
3503 * lisp.h (QUIT): Use it.
3504
a0c3fad0
JD
35052011-12-04 Jan Djärv <jan.h.d@swipnet.se>
3506
3507 * nsfns.m (get_geometry_from_preferences): New function.
3508 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
3509
6c07aac2
AS
35102011-12-04 Andreas Schwab <schwab@linux-m68k.org>
3511
3512 * emacs.c (Qkill_emacs): Define.
3513 (syms_of_emacs): Initialize it.
3514 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
3515 Qquit_flag to `kill-emacs' instead.
6d5eb5b0
SM
3516 (quit_throw_to_read_char): Add parameter `from_signal'.
3517 All callers changed. Call Fkill_emacs if requested and safe.
6c07aac2
AS
3518 * lisp.h (QUIT): Call Fkill_emacs if requested.
3519
c052ead4
JD
35202011-12-03 Jan Djärv <jan.h.d@swipnet.se>
3521
3522 * widget.c (update_wm_hints): Return if wmshell is null.
3523 (widget_update_wm_size_hints): New function.
3524
3525 * widget.h (widget_update_wm_size_hints): Declare.
3526
3527 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
3528 widget_update_wm_size_hints (Bug#10104).
3529
9e49252b
EZ
35302011-12-03 Eli Zaretskii <eliz@gnu.org>
3531
3532 * xdisp.c (handle_invisible_prop): If the invisible text ends just
3533 before a newline, prepare the bidi iterator for consuming the
3534 newline, and keep the current paragraph direction. (Bug#10183)
e9a49426 3535 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
9e49252b 3536
02b16839
JL
35372011-12-02 Juri Linkov <juri@jurta.org>
3538
3539 * search.c (Fword_search_regexp): New Lisp function created from
3540 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
3541 (Fword_search_backward, Fword_search_forward)
3542 (Fword_search_backward_lax, Fword_search_forward_lax):
3543 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
3544 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
3545
0068070e
SM
35462011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
3547
3548 * fileio.c (Finsert_file_contents): Move after-change-function call
3549 to before the "handled:" label, since all "goto handled" appear in
3550 cases where the *-change-functions have already been properly called
3551 (bug#10117).
3552
3360a3fc
AS
35532011-12-01 Andreas Schwab <schwab@linux-m68k.org>
3554
3555 * keyboard.c (interrupt_signal): Don't call kill-emacs when
3556 waiting for input. (Bug#10169)
3557
73d6c093
EZ
35582011-11-30 Eli Zaretskii <eliz@gnu.org>
3559
3560 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
3561 verifies glyph row's hash code--we have just reallocated the
3562 glyphs, so their contents can be complete garbage. (Bug#10164)
3563
febe6bea
JB
35642011-11-30 Juanma Barranquero <lekktu@gmail.com>
3565
3566 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
3567
801a4313
EZ
35682011-11-30 Eli Zaretskii <eliz@gnu.org>
3569
3570 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
3571 attributes are tested _before_ calling verify_row_hash, to protect
3572 against GCC re-ordering of the tests. (Bug#10164)
3573
2b56b87e
JD
35742011-11-29 Jan Djärv <jan.h.d@swipnet.se>
3575
3576 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
3577
3578 * xterm.c (handle_one_xevent): Only set async_visible and friends
3579 if net_wm_state_hidden_seen is non-zero (Bug#10002)
7dbda6df 3580 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
2b56b87e
JD
3581 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
3582
dbf31225
PE
35832011-11-28 Paul Eggert <eggert@cs.ucla.edu>
3584
3585 Remove GCPRO-related macros that exist only to avoid shadowing locals.
3586 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
3587 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
3588 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
3589 All uses changed to use GCPRO1 etc.
3590 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
3591 Revert to old implementation (i.e., before 2011-03-11).
3592
1305621b
YM
35932011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3594
3595 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
3596 of scroll runs so as to avoid assigning disabled bogus rows and
3597 unnecessary graphics copy operations.
3598
8c9afb46
EZ
35992011-11-27 Eli Zaretskii <eliz@gnu.org>
3600
3601 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
3602 (snprintf) [_MSC_VER]: Redirect to _snprintf.
3603 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
3604 (malloc, free, realloc, calloc): Redirect to e_* only when
3605 compiling Emacs.
3606
3607 * lisp.h (GCTYPEBITS): Move before first use.
3608 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
3609 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
3610 this macro definition.
3611
3612 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
3613 _MSC_VER.
3614
54e9e3bf
JD
36152011-11-27 Jan Djärv <jan.h.d@swipnet.se>
3616
6d5eb5b0
SM
3617 * gtkutil.c (xg_create_frame_widgets):
3618 Call gtk_window_set_has_resize_grip (FALSE) if that function is
54e9e3bf
JD
3619 present with Gtk+ 2.0.
3620
83aca1cb
PE
36212011-11-26 Paul Eggert <eggert@cs.ucla.edu>
3622
3623 * fileio.c (Finsert_file_contents): Undo previous change; see
3624 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
3625
5b76caa4
PE
36262011-11-26 Paul Eggert <eggert@cs.ucla.edu>
3627
3628 Rename locals to avoid shadowing.
3629 * fileio.c (Finsert_file_contents):
3630 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
3631 * process.c (wait_reading_process_output):
3632 Rename inner 'proc' to 'p' to avoid shadowing.
3633 Indent for consistency with usual Emacs style.
3634
8c535114
EZ
36352011-11-25 Eli Zaretskii <eliz@gnu.org>
3636
3637 * xdisp.c (redisplay_window): If cursor row is not fully visible
3638 after recentering, and scroll-conservatively is set to a large
3639 number, scroll window by a few more lines to make the cursor fully
3640 visible and out of scroll-margin. (Bug#10105)
91b4a718
EZ
3641 (start_display): Don't move to the next line if the display should
3642 start at a newline that is part of a display vector or an overlay
3643 string. (Bug#10119)
8c535114 3644
fa4fdb5c
JL
36452011-11-24 Juri Linkov <juri@jurta.org>
3646
3647 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
3648 after the `MagickPingImage' call. (Bug#10112)
3649
90ec88df
CY
36502011-11-23 Chong Yidong <cyd@gnu.org>
3651
3652 * window.c (Fcoordinates_in_window_p): Accept only live windows.
3653
56e2e794
MR
36542011-11-23 Martin Rudalics <rudalics@gmx.at>
3655
3656 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
3657 making another buffer current. (Bug#10114)
3658
b6e64c41
GM
36592011-11-23 Glenn Morris <rgm@gnu.org>
3660
3661 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
3662
6b21de18
CY
36632011-11-23 Chong Yidong <cyd@gnu.org>
3664
3665 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
3666 using it (Bug#5984).
3667
b12cd789
EZ
36682011-11-22 Eli Zaretskii <eliz@gnu.org>
3669
3670 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
3671 and header-lines, as they don't have one computed for them.
3672 (Bug#10098)
3673
3674 * .gdbinit (prow): Make displayed values more self-explaining.
3675 Add row's hash code.
3676
261b6fd4
LMI
36772011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
3678
3679 * process.c (wait_reading_process_output): Fix asynchrounous
3680 GnuTLS socket handling on some versions of the GnuTLS library.
16c1ad08 3681 (wait_reading_process_output): Add comment and URL.
261b6fd4 3682
e7cfd277
JD
36832011-11-21 Jan Djärv <jan.h.d@swipnet.se>
3684
3685 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
3686
a9b9b7f5
CY
36872011-11-21 Chong Yidong <cyd@gnu.org>
3688
3689 * window.c (Fnext_window, Fprevious_window): Doc fix.
3690
b0d15b4f
SM
36912011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
3692
3693 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
3694
fe7a3057
JB
36952011-11-20 Juanma Barranquero <lekktu@gmail.com>
3696
3697 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
3698
d2999b1a
MR
36992011-11-20 Martin Rudalics <rudalics@gmx.at>
3700
3701 * window.c (Fset_window_combination_limit): Rename argument
3702 STATUS to LIMIT.
3703 (Vwindow_combination_limit): Remove "status" from doc-string.
3704
d5ff9cd0
AS
37052011-11-20 Andreas Schwab <schwab@linux-m68k.org>
3706
3707 * m/ibms390.h: Remove.
3708 * m/ibms390x.h: Don't include "ibms390.h".
3709
a5bb9bd3
SM
37102011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
3711
3712 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
3713 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
3714
cd1181db
JB
37152011-11-20 Juanma Barranquero <lekktu@gmail.com>
3716
3717 * casetab.c (Fset_case_table):
3718 * charset.c (Fcharset_after): Fix typos.
3719
615a3b8d 37202011-11-20 Paul Eggert <eggert@cs.ucla.edu>
6a0bf43d 3721
17e845af
PE
3722 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
3723 Otherwise, valgrind does not work on some platforms.
3724 Problem reported by Andreas Schwab in
6a0bf43d
PE
3725 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
3726 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
3727 is set, removing the need for VIRT_ADDRESS_VARIES.
3728 (PURE_P): Use a more-efficient implementation that needs just one
3729 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
3730 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
3731 to 4 (xorl, subq, cmpq, setbe).
3732 * alloc.c (pure): Always extern now, since that's the
3733 VIRT_ADDR_VARIES behavior.
3734 (PURE_POINTER_P): Use a single comparison, not two, for
3735 consistency with the new puresize.h.
3736 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
3737 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
3738 Remove VIRT_ADDR_VARIES no longer needed.
3739
f8fe6f96
EZ
37402011-11-19 Eli Zaretskii <eliz@gnu.org>
3741
3742 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
3743 (erase_phys_cursor, update_window_cursor, show_mouse_face)
3744 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
3745 behave as if the cursor position were at the window margin.
3746
3747 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
3748 and the cursor position is out of bounds, behave as if the cursor
3749 position were at the window margin. (Bug#10075)
3750
df05a53c
CY
37512011-11-18 Chong Yidong <cyd@gnu.org>
3752
3753 * window.c (Fwindow_combination_limit): Make first argument
3754 non-optional, since it is meaningless for live windows like the
3755 selected window.
61ccba97 3756
2071918e
DA
37572011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
3758
3759 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
3760
b50a28de
SM
37612011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
3762
3763 * intervals.c: Fix grafting over the whole buffer (bug#10071).
3764 (graft_intervals_into_buffer): Simplify.
3765
015137db
EZ
37662011-11-18 Eli Zaretskii <eliz@gnu.org>
3767
3768 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
3769 hash values of the two rows.
3770 (copy_row_except_pointers): Preserve the used[] arrays and the
3771 hash values of the two rows. (Bug#10035)
68c95424 3772 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
015137db
EZ
3773
3774 * xdisp.c (row_hash): New function, body extracted from
3775 compute_line_metrics.
3776 (compute_line_metrics): Call row_hash, instead of computing the
3777 hash code inline.
3778
3779 * dispnew.c (verify_row_hash): Call row_hash for computing the
3780 hash code of a row, instead of duplicating code from xdisp.c.
3781
3782 * dispextern.h (row_hash): Add prototype.
3783
a2addb04
TH
37842011-11-18 Tassilo Horn <tassilo@member.fsf.org>
3785
3786 * frame.c (delete_frame): Don't delete the terminal when the last
3787 X frame is closed if emacs is built with GTK toolkit.
3788
df85d315
JB
37892011-11-17 Juanma Barranquero <lekktu@gmail.com>
3790
3791 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
3792
a0c2d0ae
MR
37932011-11-17 Martin Rudalics <rudalics@gmx.at>
3794
3795 * window.c (Vwindow_splits): Rename to
3796 Vwindow_combination_resize. Suggested by Juri Linkov.
3797 (Fsplit_window_internal): Use Vwindow_combination_resize instead
3798 of Vwindow_splits.
3799
58179cce
JB
38002011-11-16 Juanma Barranquero <lekktu@gmail.com>
3801
7877f373
JB
3802 * nsfns.m (Fns_font_name):
3803 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
58179cce 3804
b6f67890
MR
38052011-11-16 Martin Rudalics <rudalics@gmx.at>
3806
3807 * window.h (window): Rename slot "nest" to "combination_limit".
3808 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
3809 (Fset_window_nest): Rename to Fset_window_combination_limit.
3810 (Vwindow_nest): Rename to Vwindow_combination_limit.
3811 (recombine_windows, make_parent_window, make_window)
3812 (Fsplit_window_internal, saved_window)
3813 (Fset_window_configuration, save_window_save): Rename all
3814 occurrences of window_nest to window_combination_limit.
3815
c7015153
JB
38162011-11-15 Juanma Barranquero <lekktu@gmail.com>
3817
3818 * image.c (imagemagick_load_image): Fix typo.
3819
322ad6ec
EZ
38202011-11-14 Eli Zaretskii <eliz@gnu.org>
3821
3822 * xdisp.c (display_line): Move the call to
3823 highlight_trailing_whitespace before the call to
3824 compute_line_metrics, since the latter needs to see the final
6d5eb5b0
SM
3825 faces of all the glyphs to compute ROW's hash value.
3826 Fixes assertion violations in row_equal_p. (Bug#10035)
322ad6ec 3827
f067b8ec
JB
38282011-11-14 Juanma Barranquero <lekktu@gmail.com>
3829
3830 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
3831 just return (bug#10044).
3832
1e5b2111
EZ
38332011-11-12 Eli Zaretskii <eliz@gnu.org>
3834
7ef3cbd5
EZ
3835 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
3836 with user-defined heap size. Bump the default size of the temacs
3837 heap to 27MB, to avoid memory warning when running temacs.
3838 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
3839
1e5b2111
EZ
3840 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
3841 current_matrix and desired_matrix. (Bug#9990)
7a7270dd
EZ
3842 (verify_row_hash) [XASSERTS]: New function.
3843 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
3844 that the hash value of glyph rows is correct.
1e5b2111 3845
89d61221
MR
38462011-11-12 Martin Rudalics <rudalics@gmx.at>
3847
3848 * window.h (window): Remove splits slot.
3849 * window.c (Fwindow_splits, Fset_window_splits): Remove.
3850 (Fdelete_other_windows_internal, make_parent_window)
3851 (make_window, Fsplit_window_internal, Fdelete_window_internal)
3852 (Fset_window_configuration, save_window_save): Don't deal with
3853 split status of windows.
3854 (saved_window): Remove splits slot.
3855 (Vwindow_splits): Rewrite doc-string.
3856
97f18cc8
JD
38572011-11-11 Jan Djärv <jan.h.d@swipnet.se>
3858
3859 * xfns.c (unwind_create_frame):
3860 * nsfns.m (unwind_create_frame):
3861 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
3862 Vframe_list (Bug#9999).
3863
22a648b4
DA
38642011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
3865
0b381c7e 3866 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
22a648b4 3867
659afede
KH
38682011-11-11 Kenichi Handa <handa@m17n.org>
3869
3870 * callproc.c (Fcall_process): Set the member dst_multibyte of
3871 process_coding.
3872
9ac0394b
KH
38732011-11-11 Johan Bockgård <bojohan@gnu.org>
3874
3875 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
3876 avoid a crash (bug#9496).
3877
2fbdc249
CY
38782011-11-09 Chong Yidong <cyd@gnu.org>
3879
3880 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
3881 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
3882
ac6b1f81
PE
38832011-11-08 Paul Eggert <eggert@cs.ucla.edu>
3884
3885 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
3886
09db192c
PE
38872011-11-08 Paul Eggert <eggert@cs.ucla.edu>
3888
3889 Avoid some portability problems by eschewing 'extern inline' functions.
3890 The trivial performance wins aren't worth the portability hassles; see
3891 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
3892 et seq.
3893 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
3894 (window_box_width, window_box_left, window_box_left_offset)
3895 (window_box_right, window_box_right_offset): Undo previous change,
3896 by removing the "extern"s.
3897 * intervals.c (adjust_intervals_for_insertion)
3898 (adjust_intervals_for_deletion): Undo previous change,
3899 making these static again.
3900 (offset_intervals, temp_set_point_both, temp_set_point)
3901 (copy_intervals_to_string): No longer inline.
3902 * xdisp.c (window_text_bottom_y, window_box_width)
3903 (window_box_height, window_box_left_offset)
3904 (window_box_right_offset, window_box_left, window_box_right)
3905 (window_box): No longer inline.
3906
105216ed
CY
39072011-11-08 Chong Yidong <cyd@gnu.org>
3908
3909 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
6d5eb5b0
SM
3910 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
3911 Signal an error if not a live window.
105216ed
CY
3912 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
3913 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
3914
ae9e237f
JB
39152011-11-07 Juanma Barranquero <lekktu@gmail.com>
3916
3917 * lisp.h (syms_of_abbrev): Remove declaration.
3918 Reported by CHENG Gao <chenggao@royau.me>.
3919
c7aa8333
EZ
39202011-11-07 Eli Zaretskii <eliz@gnu.org>
3921
3922 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
3923 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
3924 of temacs in GUI mode.
3925
be7f5545
MR
39262011-11-07 Martin Rudalics <rudalics@gmx.at>
3927
3928 * window.h: Declare delete_all_child_windows instead of
3929 delete_all_subwindows.
3930 * window.c (Fwindow_nest, Fset_window_nest)
3931 (Fset_window_new_total, Fset_window_new_normal)
3932 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
3933 (delete_all_subwindows): Rename to delete_all_child_windows.
3934 (Fdelete_other_windows_internal, Fset_window_configuration):
3935 Call delete_all_child_windows instead of delete_all_subwindows.
3936 * frame.c (delete_frame): Call delete_all_child_windows instead
3937 of delete_all_subwindows.
3938
ca78dc43
PE
39392011-11-07 Paul Eggert <eggert@cs.ucla.edu>
3940
3941 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
3942 This is also needed for porting to any host where GC_MARK_STACK is
3943 not GC_MAKE_GCPROS_NOOPS.
3944 (which_symbols): Use it.
3945
a0241d01
KH
39462011-11-07 Kenichi Handa <handa@m17n.org>
3947
3948 * coding.c (coding_set_destination): Check coding->src_pos only
3949 when coding->src_object is a buffer (bug#9910).
3950
3951 * process.c (send_process): Set the member src_multibyte of coding
3952 to 0 (bug#9911) when sending a unibyte text.
3953
3954 * callproc.c (Fcall_process): Set the member src_multibyte of
3955 process_coding to 0 (bug#9912).
3956
a64bfdfa 39572011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
ba24cea2
YM
3958
3959 * xmenu.c (cleanup_widget_value_tree): New function.
3960 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
3961 calling free_menubar_widget_value_tree directly (Bug#9830).
3962
cb41b32a
PE
39632011-11-06 Paul Eggert <eggert@cs.ucla.edu>
3964
3965 Fix some portability problems with 'inline'.
3966 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
3967 (window_box_width, window_box_left, window_box_left_offset)
3968 (window_box_right, window_box_right_offset): Declare extern.
3969 Otherwise, these inline functions do not conform to C99 and
3970 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
3971 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
3972 * intervals.c (adjust_intervals_for_insertion)
3973 (adjust_intervals_for_deletion): Now extern, because otherwise the
3974 extern inline functions 'offset_intervals' couldn't refer to it.
3975 (static_offset_intervals): Remove.
3976 (offset_intervals): Rewrite using the old contents of
3977 static_offset_intervals. The old version didn't conform to C99
3978 because an extern inline function contained a reference to an
3979 identifier with static linkage.
3980
b7041366
AS
39812011-11-06 Andreas Schwab <schwab@linux-m68k.org>
3982
3983 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
3984 GC.
3985
88a37c4d
EZ
39862011-11-06 Eli Zaretskii <eliz@gnu.org>
3987
3988 * xdisp.c (init_iterator, reseat_to_string): Don't set the
3989 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
3990 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
3991 return Qleft_to_right.
3992
49745b39
CY
39932011-11-06 Chong Yidong <cyd@gnu.org>
3994
3995 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
3996 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
3997 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
3998 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
3999 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
4000 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
4001 (Fwindow_vscroll): Doc fix.
4002 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
4003 argument, since it makes no sense to pass a live window and for
4004 consistency with window-child.
4005
1f05cd82
CS
40062011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
4007
4008 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
4009 support MSVC.
4010
22610910
JR
40112011-11-05 Jason Rumney <jasonr@gnu.org>
4012
4013 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
4014 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
4015 fonts (Bug#6029).
4016 (add_font_entity_to_list): Fix logic errors in mixed boolean and
4017 bitwise arithmetic preventing use of unicode-sip and non-truetype
4018 opentype fonts.
4019
a06776b2
EZ
40202011-11-05 Eli Zaretskii <eliz@gnu.org>
4021
3ad924ba
EZ
4022 * s/ms-w32.h (fstat, stat, utime): Move redirections to
4023 "emacs"-only part.
4024
a06776b2
EZ
4025 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
4026 initialization code to keep similarity to xfns.c after changes
4027 from 2011-11-05.
4028
c9e7db78
JD
40292011-11-05 Jan Djärv <jan.h.d@swipnet.se>
4030
a97f8f3f
JD
4031 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
4032 (unwind_create_frame): New function (Bug#9943).
4033 (Fx_create_frame): Restructure code to be more similar to the one in
4034 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
4035 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
4036 Move terminal->reference_count++ just before making the frame official
4037 (Bug#9943).
4038
4039 * nsterm.m (x_free_frame_resources): New function.
4040 (x_destroy_window): Move code to x_free_frame_resources.
4041
c9e7db78 4042 * xfns.c (unwind_create_frame): Fix comment.
6d5eb5b0
SM
4043 (Fx_create_frame, x_create_tip_frame):
4044 Move terminal->reference_count++ just before making the frame
75f1671a 4045 official. Move initialization of image_cache_refcount and
c9e7db78
JD
4046 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
4047
a6fc3b5c
EZ
40482011-11-05 Eli Zaretskii <eliz@gnu.org>
4049
4050 Support MSVC build with newer versions of Visual Studio.
4051 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
4052 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
4053 nt/gmake.defs.
4054
4055 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
4056 which are not supported by MSVC.
4057 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
4058 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
4059 bitfields.
4060 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
4061 types in bitfields.
4062 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
4063
4064 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
4065
58179cce 40662011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
a6fc3b5c
EZ
4067
4068 Support MSVC build with newer versions of Visual Studio.
4069 * w32.c: Don't include w32api.h for MSVC.
4070 (init_environment) [_MSC_VER]: Call sys_access, not _access.
4071
4072 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
4073 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
4074 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
4075 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
4076 e_* cousins.
4077 (alloca) [_MSC_VER]: Define to _alloca.
4078
4079 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
4080
4081 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
4082
a58c13ed
EZ
40832011-11-04 Eli Zaretskii <eliz@gnu.org>
4084
4085 * xdisp.c (note_mouse_highlight): If either of
4086 previous/next-single-property-change returns nil, treat that as
4087 the beginning or the end of the buffer. (Bug#9955)
4088
fe0b6370
JD
40892011-11-04 Jan Djärv <jan.h.d@swipnet.se>
4090
a58c13ed 4091 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
fe0b6370
JD
4092 label is not null (Bug#9951).
4093 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
4094 may be NULL.
4095
89bd5ee1
EZ
40962011-11-04 Eli Zaretskii <eliz@gnu.org>
4097
4098 * window.c (Fwindow_body_size): Mention in the doc string that the
4099 return value is in frame's canonical units. (Bug#9949)
4100
84c3edb9
EZ
41012011-11-03 Eli Zaretskii <eliz@gnu.org>
4102
4e2fb5c7
EZ
4103 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
4104
84c3edb9 4105 * w32fns.c (unwind_create_frame): If needed, free the glyph
3ab15fd6 4106 matrices of the partially constructed frame. (Bug#9943)
2a58bbc1 4107 * xfns.c (unwind_create_frame): Likewise.
84c3edb9 4108
bc17a887
EZ
41092011-11-01 Eli Zaretskii <eliz@gnu.org>
4110
4111 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
4112 Don't stop backward scan on the continuation glyph, even though
4113 its CHARPOS is positive.
6d5eb5b0
SM
4114 (mouse_face_from_buffer_pos, note_mouse_highlight):
4115 Rename cover_string to disp_string.
bc17a887 4116
4ee88440
MR
41172011-11-01 Martin Rudalics <rudalics@gmx.at>
4118
4119 * window.c (temp_output_buffer_show): Don't use
4120 Vtemp_buffer_show_specifiers.
4121 (Vtemp_buffer_show_specifiers): Remove unused variable.
4122
c2ff3c02
EZ
41232011-10-30 Eli Zaretskii <eliz@gnu.org>
4124
4125 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
4126 past the beginning of the current glyph matrix.
4127
58179cce 41282011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
6e56383b
JD
4129
4130 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
4131 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
4132 HAVE_GTK3 (Bug#9869).
b77a6a7f 4133
3b574623
JD
4134 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
4135 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
4136
b77a6a7f
JD
4137 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
4138
4139 * xterm.c: Declare x_handle_net_wm_state to return int.
4140 (handle_one_xevent): Check if we are iconified but don't have
4141 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
4142 (get_current_wm_state): Return non-zero if not hidden,
4143 check for _NET_WM_STATE_HIDDEN (Bug#9893).
4144 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
4145 (x_handle_net_wm_state): Return what get_current_wm_state returns.
4146 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
4147
196e41e4
PE
41482011-10-29 Paul Eggert <eggert@cs.ucla.edu>
4149
4150 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
4151 so that this new function doesn't get optimized away by a
4152 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
4153
021f2e1a
AS
41542011-10-29 Andreas Schwab <schwab@linux-m68k.org>
4155
4156 * frame.h (MOUSE_HL_INFO): Remove excess parens.
4157
8b058d44
EZ
41582011-10-29 Eli Zaretskii <eliz@gnu.org>
4159
4160 Fix the `xbytecode' command.
4161 * .gdbinit (xprintbytestr): New command.
b50a28de 4162 (xwhichsymbols): Rename from `which'; all callers changed.
8b058d44
EZ
4163 (xbytecode): Print the byte-code string as well.
4164
4452fb80
EZ
41652011-10-29 Kim Storm <storm@cua.dk>
4166
8b058d44
EZ
4167 * alloc.c (which_symbols): New function.
4168
21b72067
AS
41692011-10-29 Andreas Schwab <schwab@linux-m68k.org>
4170
4171 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
4172 line. (Bug#9903)
4173
83ed7b5c
GM
41742011-10-29 Glenn Morris <rgm@gnu.org>
4175
4176 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
4177 Not clear what it was for, and it causes various bugs. (Bug#9839)
4178
5a7a728b
EZ
41792011-10-28 Eli Zaretskii <eliz@gnu.org>
4180
4181 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
4182 possible random value that matches one of those tested as
4183 condition to clear the mouse face.
4184
d3d0842f
CY
41852011-10-28 Chong Yidong <cyd@gnu.org>
4186
4187 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
4188
31b39d13
DN
41892011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
4190
4191 * window.c (make_window): Initialize phys_cursor_on_p.
4192
9aba6043
SM
41932011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
4194
4195 * lisp.h (struct Lisp_Symbol): Update comments.
4196
c20992f4
JB
41972011-10-28 Juanma Barranquero <lekktu@gmail.com>
4198
4199 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
4200
db4f02f2
EZ
42012011-10-28 Eli Zaretskii <eliz@gnu.org>
4202
4203 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
4204 <oslsachem@gmail.com> for helping to debug this.
4205
4206 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
4207 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
4208 (g_b_init_get_glyph_outline_w): New static variables.
4209 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
4210 (GetGlyphOutlineW_Proc): New typedefs.
4211 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
9aba6043
SM
4212 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
4213 New functions.
4214 (w32font_open_internal, compute_metrics):
4215 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
db4f02f2
EZ
4216 instead of calling the "wide" APIs directly.
4217
4218 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
4219
4220 * w32.h (syms_of_w32font): Add prototype.
4221
87e68db4
JB
42222011-10-27 Juanma Barranquero <lekktu@gmail.com>
4223
4224 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
4225 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
4226 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
4227 (Fmove_to_window_line): Doc fix.
4228
435c1d67
CY
42292011-10-27 Chong Yidong <cyd@gnu.org>
4230
4231 * process.c (make_process): Set gnutls_state to NULL.
4232
4233 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
4234 non-NULL, regardless of GNUTLS_INITSTAGE.
4235 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
4236 an error. Set process slots as soon as we allocate them.
4237
4238 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
4239
9c6c6f49
CY
42402011-10-27 Chong Yidong <cyd@gnu.org>
4241
9aba6043
SM
4242 * gnutls.c (emacs_gnutls_deinit): New function.
4243 Deallocate credentials structures as well as calling gnutls_deinit.
9c6c6f49
CY
4244 (Fgnutls_deinit, Fgnutls_boot): Use it.
4245
4246 * process.c (make_process): Initialize GnuTLS credentials to NULL.
4247 (deactivate_process): Call emacs_gnutls_deinit.
4248
657d08d3
JB
42492011-10-27 Juanma Barranquero <lekktu@gmail.com>
4250
4251 * image.c (x_create_x_image_and_pixmap):
4252 * w32.c (sys_rename, w32_delayed_load):
4253 * w32font.c (fill_in_logfont):
4254 * w32reg.c (x_get_string_resource): Silence compiler warnings.
4255
5430d399
JB
42562011-10-26 Juanma Barranquero <lekktu@gmail.com>
4257
4258 * w32fns.c (w32_default_color_map): New function,
4259 extracted from Fw32_default_color_map.
a7ef684b 4260 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
5430d399 4261
fe0055fa
PE
42622011-10-25 Paul Eggert <eggert@cs.ucla.edu>
4263
4264 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
4265
e6346438
SM
42662011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
4267
4268 * keyboard.c (test_undefined): New function (bug#9751).
4269 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
4270
e112cc37
ET
42712011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
4272
4273 * sysdep.c (init_sys_modes): Fix the check for the controlling
4274 terminal (Bug#6649).
4275
7b5d6677
EZ
42762011-10-20 Eli Zaretskii <eliz@gnu.org>
4277
4278 * dispextern.h (struct bidi_it): New member next_en_type.
4279
4280 * bidi.c (bidi_line_init): Initialize the next_en_type member.
4281 (bidi_resolve_explicit_1): When next_en_pos is valid for the
4282 current character, check also for next_en_type being WEAK_EN.
4283 (bidi_resolve_weak): Don't enter the expensive loop if the current
4284 position is before next_en_pos. Record the bidi type of the first
4285 non-ET, non-BN character we find, in addition to its position.
4286 (bidi_level_of_next_char): Invalidate next_en_type when
4287 next_en_pos is over-stepped.
4288
7da0b018
PE
42892011-10-20 Paul Eggert <eggert@cs.ucla.edu>
4290
4291 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
4292 * editfns.c: Rewrite current-time-zone so that it invokes
4293 the equivalent of (format-time-string "%Z") to get the time zone name.
4294 This fixes a bug when the time zone name contains characters that
4295 need converting from the system time locale to Emacs internal format.
4296 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
4297 that patch fixed format-time-string to do the conversion, but
4298 I forgot to fix current-time-zone.
4299 (format_time_string): New function, containing most of
4300 what Fformat_time_string used to contain.
4301 (Fformat_time_string): Rewrite in terms of format_time_string.
4302 This doesn't change this function's behavior.
4303 (current-time-zone): Rewrite to use format_time_string.
4304 This fixes the bug reported by Michael Schierl in
4305 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
4306 Jason Rumney's 2007-06-07 change worked around this bug, but
4307 didn't fix it.
4308 * systime.h (tzname, timezone): Remove no-longer-used declarations.
4309
8547b010
EZ
43102011-10-19 Eli Zaretskii <eliz@gnu.org>
4311
4312 * xdisp.c (start_display): If the character at POS is displayed
4313 via a display vector, reset IT->current.dpvec_index to zero.
12b32963
EZ
4314 (try_window_reusing_current_matrix): If a line ends in a display
4315 vector or the next line starts in a display vector, continue
4316 redrawing the window even though the character position of
4317 start_row was reached.
8547b010
EZ
4318 (Bug#9771, part 2)
4319
4e948d15
CY
43202011-10-18 Chong Yidong <cyd@gnu.org>
4321
4322 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
4323 with nobreak-char-display too.
4324
4787455f
EZ
43252011-10-18 Eli Zaretskii <eliz@gnu.org>
4326
4327 Fix part 3 of bug#9771.
4328 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
4329 (bidi_resolve_neutral): Don't enter the expensive loop looking for
4330 non-neutral characters if the current character is a paragraph
4331 separator (a.k.a. Newline). This avoids running the same
4332 expensive loop twice, once when we consume the preceding newline
4333 and the other time when the line actually needs to be displayed.
4334 Avoid the loop when we see neutrals on the base embedding level
4335 following a character whose directionality is the same as the
4336 paragraph's. This avoids running the expensive loop when a line
4337 ends in a long sequence of neutrals, like control characters.
4338 Add assertion against STRONG_AL type. Slightly rearrange code
4339 that determines the type of a neutral given the first non-neutral
4340 that follows it.
4341 (bidi_level_of_next_char): Set next_en_pos to zero when
4342 invalidating its info.
4343
2c91f553
EZ
43442011-10-17 Eli Zaretskii <eliz@gnu.org>
4345
4346 * xdisp.c (push_display_prop): Determine whether to record string
4347 or buffer position by IT->string, not by IT->method. Allow
4348 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
f2ff9e88
EZ
4349 (move_it_vertically_backward): Don't look for character position
4350 immediately after the newline when in a continuation line.
4351 (Bug#9771, part 1)
2c91f553 4352
c7b08b0d
MR
43532011-10-15 Martin Rudalics <rudalics@gmx.at>
4354
4355 * window.c (coordinates_in_window): Rewrite and delabelize
4356 vertical border check. (Bug#5357) (Bug#9618)
4357
6b02f655
SM
43582011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
4359
4360 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
4361 errors in XSetWindowBorder (bug#9310).
4362
81d40c92
DA
43632011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
4364
4365 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
4366 avoid crash when xmalloc overrun checking is enabled.
4367
d4172c3b
EZ
43682011-10-13 Eli Zaretskii <eliz@gnu.org>
4369
4370 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
4371 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
4372 cursor motion with <left> and <right> arrow keys.
4373
4374 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
4375 some callers set that themselves.
4376
b00eea75
EZ
43772011-10-12 Eli Zaretskii <eliz@gnu.org>
4378
4379 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
4380 display string and the previous row comes from the same string and
4381 is empty. (Bug#9739) (Bug#9738)
4382
8fe012c4
SM
43832011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
4384
4385 * doc.c (get_doc_string): Encode file name (bug#9735).
4386
0074aef2
EZ
43872011-10-12 Eli Zaretskii <eliz@gnu.org>
4388
79beb178
EZ
4389 * bidi.c (bidi_level_of_next_char):
4390 * xdisp.c (get_visually_first_element): Remove old incorrect
4391 comments regarding the Unicode Line Separator character.
4392
0074aef2
EZ
4393 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
4394
6e4b3fbe
DA
43952011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
4396
4397 * alloc.c (Fgc_status): Do not access beyond zombies array
4398 boundary if nzombies > MAX_ZOMBIES.
4399 * alloc.c (dump_zombies): Add missing format specifier.
4400
0324f3af
PE
44012011-10-12 Paul Eggert <eggert@cs.ucla.edu>
4402
b5525cac
PE
4403 * xdisp.c (set_cursor_from_row): Simplify conditionals,
4404 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
4405
0324f3af
PE
4406 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
4407 Some packages use them to denote characters with modifiers.
4408
e9b5f888
AS
44092011-10-11 Andreas Schwab <schwab@linux-m68k.org>
4410
4411 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
4412 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
4413 matching a pp-number. Rename parameter var to var1.
4414
127827c0
SM
44152011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
4416
4417 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
4418
c8fd3bd0
GM
44192011-10-08 Glenn Morris <rgm@gnu.org>
4420
4421 * callint.c (Fcall_interactively): Give a more explicit error for the
4422 'c' case with a non-character input. (Bug#8479)
4423
352ec8ff
EZ
44242011-10-08 Eli Zaretskii <eliz@gnu.org>
4425
03669ccb
EZ
4426 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
4427 lines.
7061c986
EZ
4428 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
4429 lines that are hscrolled on the left.
03669ccb 4430
352ec8ff
EZ
4431 * dispnew.c (buffer_posn_from_coords): Account for a possible
4432 presence of header-line. (Bug#4426)
4433
a66cfb1c
SM
44342011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
4435
6b02f655
SM
4436 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
4437 Don't advertise functionality which we discourage or doesn't work.
a66cfb1c 4438
7c5ee88e
PE
44392011-10-07 Paul Eggert <eggert@cs.ucla.edu>
4440
4441 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
4442 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
4443 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
4444 this makes Emacs dump core during garbage collection on rare
4445 occasions. sizeof is obviously inferior to offsetof here, so
4446 stick with offsetof.
4447 (GC_POINTER_ALIGNMENT): New macro.
4448 (mark_memory): Omit 3rd (offset) arg; caller changed.
4449 Don't assume EMACS_INT alignment is the same as pointer alignment.
4450
df1bbe5b
SM
44512011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
4452
4453 * keyboard.c (read_key_sequence_remapped): New var.
4454 (read_key_sequence): Compute remapping in the right buffer.
4455 (command_loop_1): Use read_key_sequence's remapping directly.
4456
51553db6
SM
44572011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
4458
32c1fffd
SM
4459 * dired.c (file_name_completion): Don't expand file name.
4460 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
4461 before checking file name handler.
4462
51553db6
SM
4463 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
4464 they've been requested explicitly (bug#9591).
4465
b6bd1599 44662011-10-01 Andreas Schwab <schwab@linux-m68k.org>
fa2ec41f
AS
4467
4468 * keymap.c (Fsingle_key_description): Use make_specified_string
4469 instead of build_string to build string from push_key_description.
4470 (Bug#5193)
4471
f701dc2a
PE
44722011-09-30 Paul Eggert <eggert@cs.ucla.edu>
4473
4222c55d
PE
4474 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
4475 This fixes a Y2038 bug on 64-bit hosts.
4476 * buffer.c (reset_buffer):
4477 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
4478 (Fclear_buffer_auto_save_failure):
4479 Use 0, not -1, to represent an unset failure time, since time_t
4480 might not be signed.
4481
f701dc2a
PE
4482 Remove dependency on glibc malloc internals.
4483 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
4484 Move back here from lisp.h, but with their new implementations.
4485 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
4486 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
4487 * charset.c (charset_table_init): New static var.
4488 (syms_of_charset): Use it instead of xmalloc. This removes a
4489 dependency on glibc malloc internals. See Eli Zaretskii's comment in
4490 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
4491 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
4492 Move back to alloc.c.
4493 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
4494 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
4495
9ceebf39
JD
44962011-09-30 Jan Djärv <jan.h.d@swipnet.se>
4497
4498 * nsterm.m (windowDidResize): Call x_set_window_size only when
4499 ns_in_resize is true. Otherwise set pixelwidth/height and
4500 call change_frame_size (Bug#9628).
4501
cb993c58
PE
45022011-09-30 Paul Eggert <eggert@cs.ucla.edu>
4503
3930c88b
PE
4504 Port --enable-checking=all to Fedora 14 x86-64.
4505 * charset.c (syms_of_charset): Also account for glibc malloc's
4506 internal overhead when calculating the initial malloc maximum.
4507
cb993c58
PE
4508 Port --enable-checking=all to Fedora 14 x86.
4509 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
4510 Move to lisp.h.
4511 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
4512 (overrun_check_realloc, overrun_check_free):
4513 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
4514 That way, xmalloc returns a properly-aligned pointer even if
4515 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
4516 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
4517 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
4518 into account when calculating the initial malloc maximum.
4519 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
4520 Move here from alloc.c, so that charset.c can use it too.
4521 Properly align; the old code wasn't right for common 32-bit hosts
4522 when configured with --enable-checking=all.
4523 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
4524 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
4525
31bed486
EZ
45262011-09-29 Eli Zaretskii <eliz@gnu.org>
4527
04c70788 4528 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
31bed486
EZ
4529 use EDOM.
4530
fbcaa2f3
EZ
45312011-09-28 Eli Zaretskii <eliz@gnu.org>
4532
4533 * xdisp.c (compute_display_string_end): If there's no display
4534 string at CHARPOS, return -1.
4535
4536 * bidi.c (bidi_fetch_char): When compute_display_string_end
4537 returns a negative value, treat the character as a normal
4538 character not covered by a display string. (Bug#9624)
4539
a239d4e9
JB
45402011-09-28 Juanma Barranquero <lekktu@gmail.com>
4541
4542 * lread.c (Fread_from_string): Fix typo in docstring.
4543
88652fd5
EZ
45442011-09-27 Eli Zaretskii <eliz@gnu.org>
4545
4546 * xdisp.c (handle_invisible_prop): If invisible text ends on a
4547 newline, reseat the iterator instead of bidi-iterating there one
4548 character at a time. (Bug#9610)
32c1fffd
SM
4549 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
4550 TO_CHARPOS if the bidi iterator is at base embedding level.
88652fd5 4551
ed497dd4
AS
45522011-09-27 Andreas Schwab <schwab@linux-m68k.org>
4553
4554 * lread.c (readevalloop): Use correct code for NBSP.
4555 (read1): Likewise. (Bug#9608)
4556
b2bf61aa
MA
45572011-09-25 Michael Albinus <michael.albinus@gmx.de>
4558
4559 * dbusbind.c (Fdbus_register_signal): When service is not
4560 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
4561
32bbb17c
GM
45622011-09-25 Glenn Morris <rgm@gnu.org>
4563
4564 * buffer.c (truncate-lines): Doc fix.
4565
94e0933e
CY
45662011-09-24 Chong Yidong <cyd@stupidchicken.com>
4567
4568 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
4569 (Fset_window_next_buffers): Doc fix.
4570
cddde921
GM
45712011-09-24 Glenn Morris <rgm@gnu.org>
4572
4573 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
4574
1260aef1
PE
45752011-09-24 Paul Eggert <eggert@cs.ucla.edu>
4576
25b4bfa0
PE
4577 Fix minor problems found by static checking.
4578 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
1260aef1
PE
4579 * indent.c (Fvertical_motion): Fix == vs = typo.
4580
e3cbd34b
EZ
45812011-09-24 Eli Zaretskii <eliz@gnu.org>
4582
a66cfb1c
SM
4583 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
4584 Default value is now t. Doc fix.
6bf7006f 4585
e3cbd34b 4586 * indent.c (Fvertical_motion): Compute and apply the overshoot
32c1fffd 4587 logic when moving up, not only when moving down. Fix the
e3cbd34b 4588 confusing name and values of the it_overshoot_expected variable;
32c1fffd 4589 logic changes accordingly. (Bug#9254) (Bug#9549)
e3cbd34b
EZ
4590
4591 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
4592 CHARPOS is covered by a display string which includes newlines.
4593 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
4594 is covered by a display string with embedded newlines.
4595
a3de0cbd
MA
45962011-09-24 Michael Albinus <michael.albinus@gmx.de>
4597
4598 * dbusbind.c (Fdbus_register_signal): Add match rule to
4599 Vdbus_registered_objects_table. (Bug#9581)
a66cfb1c
SM
4600 (Fdbus_register_method, Vdbus_registered_objects_table):
4601 Fix docstring.
a3de0cbd 4602
b260039d
JM
46032011-09-24 Jim Meyering <meyering@redhat.com>
4604
32c1fffd 4605 do not ignore write error for any output size
b260039d
JM
4606 The previous change was incomplete.
4607 While it makes emacs --batch detect the vast majority of stdout
4608 write failures, errors were still ignored whenever the output size is
4609 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
4610 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
4611 && echo FAIL: ignored write error
4612 FAIL: ignored write error
4613 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
4614 && echo FAIL: ignored write error
4615 FAIL: ignored write error
4616 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
4617
8eca8a7c
AS
46182011-09-23 Andreas Schwab <schwab@linux-m68k.org>
4619
4620 * emacs.c (Fkill_emacs): In noninteractive mode exit
4621 non-successfully if a write error occurred on stdout. (Bug#9574)
4622
3341db62
EZ
46232011-09-21 Eli Zaretskii <eliz@gnu.org>
4624
4625 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
4626 the xassert test.
4627
4628 * dispextern.h (struct it): Update the comment documenting what
4629 can it->OBJECT be.
4630
8c203dbf
EZ
46312011-09-20 Eli Zaretskii <eliz@gnu.org>
4632
4633 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
4634 a display string, extend search for cursor position to end of row.
4635 (find_row_edges): If the row ends in a newline from a display
4636 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
4637 Handle the case of a display string with multiple newlines.
fd317ddf
EZ
4638 (Fcurrent_bidi_paragraph_direction): Fix search for previous
4639 non-empty line. Fixes confusing cursor motion with arrow keys at
4640 the beginning of a line that starts with whitespace.
8c203dbf 4641
a4824228
LMI
46422011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
4643
4644 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
4645 (bug#9493).
4646
33ed493b
CY
46472011-09-18 Chong Yidong <cyd@stupidchicken.com>
4648
4649 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
4650 boolean (Bug#9154).
4651
56cd55c8
EZ
46522011-09-18 Eli Zaretskii <eliz@gnu.org>
4653
4654 * xdisp.c (display_line): Record maximum and minimum buffer
4655 positions even if no glyphs were produced (e.g., by a zero-width
4656 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
4657 buffer positions that will be removed from the glyph row because
4658 they don't fit.
c02dcedf
EZ
4659 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
4660 column is beyond frame width: don't subtract 1 "pixel" when
4661 computing width of the stretch.
3e62b7e0
EZ
4662 (reseat_at_next_visible_line_start): Undo the change made on
4663 2011-09-17 that saved paragraph information and restored it after
4664 the call to `reseat'. (Bug#9545)
56cd55c8 4665
5ed99d36 46662011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3390454c
YM
4667
4668 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
4669 and turn window cursor on if cleared (Bug#9415).
4670
5ed99d36 46712011-09-18 Andreas Schwab <schwab@linux-m68k.org>
edb7b4dc
AS
4672
4673 * search.c (boyer_moore): Take unibyte characters from pattern
4674 literally. (Bug#9458)
4675
9bade7b2
EZ
46762011-09-18 Eli Zaretskii <eliz@gnu.org>
4677
4678 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
4679
e5e9d610
PE
46802011-09-18 Paul Eggert <eggert@cs.ucla.edu>
4681
87e4427a
PE
4682 Fix minor problem found by static checking.
4683 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
4684 initialized, to pacify gcc -Wuninitialized.
4685
e5e9d610
PE
4686 * fileio.c: Report proper errno when syscall falls.
4687 (Finsert_file_contents): Save and restore errno,
4688 so that report_file_error outputs the correct diagnostic.
4689 (Fwrite_region) [CLASH_DETECTION]: Likewise.
4690
a1674f0b
EZ
46912011-09-18 Eli Zaretskii <eliz@gnu.org>
4692
4693 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
4694
fbfb6dd4
EZ
46952011-09-17 Eli Zaretskii <eliz@gnu.org>
4696
4697 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
4698 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
4699
bb187662
EZ
47002011-09-17 Eli Zaretskii <eliz@gnu.org>
4701
1137e8b8 4702 * xdisp.c (reseat_at_next_visible_line_start): Keep information
6b02f655 4703 about the current paragraph and restore it after the call to reseat.
1137e8b8
EZ
4704
4705 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
4706 (bidi_find_paragraph_start): Search back for paragraph beginning
4707 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
4708 (bidi_move_to_visually_next): Only trigger paragraph-related
4709 computations when the last character is a newline or at EOB, not
4710 just any NEUTRAL_B. (Bug#9470)
4711
bb187662
EZ
4712 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
4713 truncated lines if point is covered by a display string. (Bug#9524)
4714
2e621251
PE
47152011-09-16 Paul Eggert <eggert@cs.ucla.edu>
4716
4717 * xselect.c: Relax test for outgoing X longs (Bug#9498).
4718 (cons_to_x_long): New function.
4719 (lisp_data_to_selection_data): Use it. Correct the test for
4720 short-versus-long data; it was negated. Break out of vector
4721 loop, for efficiency, when a long datum is discovered.
4722
91a15bc6
SM
47232011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
4724
4725 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
4726
b41c3a35
EZ
47272011-09-16 Eli Zaretskii <eliz@gnu.org>
4728
4729 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
4730 GCC PR/17406) by declaring this function with external scope.
4731
7812ba2d
PE
47322011-09-15 Paul Eggert <eggert@cs.ucla.edu>
4733
4734 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
4735 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
4736
cf7edc2a
AS
47372011-09-15 Andreas Schwab <schwab@linux-m68k.org>
4738
4739 * editfns.c (Fformat): Correctly handle text properties on "%%".
4740
bd01620e
EZ
47412011-09-15 Eli Zaretskii <eliz@gnu.org>
4742
4743 * xterm.c (x_draw_composite_glyph_string_foreground):
4744 * w32term.c (x_draw_composite_glyph_string_foreground):
4745 * term.c (encode_terminal_code):
4746 * composite.c (composition_update_it, get_composition_id):
4747 * xdisp.c (get_next_display_element)
4748 (fill_composite_glyph_string): Add comments about special meaning
4749 of TAB characters in a composition.
4750
a02719a3
PE
47512011-09-15 Paul Eggert <eggert@cs.ucla.edu>
4752
4753 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
4c122725
PE
4754 This occurs when processing a multibyte format.
4755 Problem reported by Wolfgang Jenker.
a02719a3 4756
72589a3c
JB
47572011-09-15 Johan Bockgård <bojohan@gnu.org>
4758
4759 * xdisp.c (try_cursor_movement): Only check for exact match if
4760 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
4761
1c14176c
PE
47622011-09-14 Paul Eggert <eggert@cs.ucla.edu>
4763
4764 Remove unused external symbols.
4765 * dispextern.h (calc_pixel_width_or_height): Remove decl.
4766 * xdisp.c (calc_pixel_width_or_height): Now static.
4767 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
4768 * indent.c (check_display_width):
4769 * w32term.c: Fix comment to match code.
4770 * xterm.c, xterm.h (x_catching_errors): Remove.
4771
d2eea5b5
PE
47722011-09-14 Paul Eggert <eggert@cs.ucla.edu>
4773
4774 * xselect.c: Use signed conversions more consistently (Bug#9498).
4775 (selection_data_to_lisp_data): Assume incoming selection data are
4776 signed integers, not unsigned. This is to be consistent with
4777 outgoing selection data, which was modified to use signed integers
4778 in as part of the fix to Bug#9196 in response to Jan D.'s comment
4779 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
4780 expects long, not unsigned long.
4781
46888499
EZ
47822011-09-14 Eli Zaretskii <eliz@gnu.org>
4783
4784 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
4785 computation of loop end. Reported by Johan Bockgård
4786 <bojohan@gnu.org>.
4787
ef8ef9fb
CY
47882011-09-13 Chong Yidong <cyd@stupidchicken.com>
4789
4790 * frame.c (Fother_visible_frames_p): Function deleted.
4791
fa819fed
EZ
47922011-09-12 Eli Zaretskii <eliz@gnu.org>
4793
4794 * indent.c (compute_motion): Process display vector front to back
4795 rather than the other way around. (Bug#2496)
4796
2ba8e008
SM
47972011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
4798
4799 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
4800
20f53c69
CY
48012011-09-11 Chong Yidong <cyd@stupidchicken.com>
4802
4803 * minibuf.c (Fread_from_minibuffer): Doc fix.
4804
d562d7a4
EZ
48052011-09-11 Eli Zaretskii <eliz@gnu.org>
4806
4807 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
4808 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
4809
1c4d7f3d
LMI
48102011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
4811
4812 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
4813 value for non-existent files.
4814
b885bf36
EZ
48152011-09-11 Eli Zaretskii <eliz@gnu.org>
4816
4817 * fileio.c (Finsert_file_contents): If the file cannot be opened,
4818 set its "size" to -1. This will set the modtime_size field of
4819 the corresponding buffer to -1, which is what
4820 verify-visited-file-modtime expects for files that do not exist.
4821 (Bug#9139)
4822
6612f0bf
PE
48232011-09-11 Paul Eggert <eggert@cs.ucla.edu>
4824
4825 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
4826 here ...
4827 * lisp.h: ... from here. push_key_description is no longer
4828 defined in keyboard.c, so its declaration should not be in
4829 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
4830 logically belongs with push_key_description.
4831
dfb3f755
PE
48322011-09-10 Paul Eggert <eggert@cs.ucla.edu>
4833
4834 * buffer.h: Include <sys/types.h> instead of <time.h>.
4835 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
4836 Problem reported by Herbert J. Skuhra.
4837
3134906c
LMI
48382011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
4839
4840 * xml.c (parse_region): Make the parsing work for
4841 non-comment-starting XML files again (bug#9144).
4842
8d903f4e
AS
48432011-09-10 Andreas Schwab <schwab@linux-m68k.org>
4844
4845 * image.c (gif_load): Fix calculation of bottom and right corner.
4846 (Bug#9468)
4847
80ad64f4
EZ
48482011-09-10 Eli Zaretskii <eliz@gnu.org>
4849
4850 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
4851 redisplay in small windows.
4852
208a048d
EZ
48532011-09-09 Eli Zaretskii <eliz@gnu.org>
4854
4855 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
4856
9b1c252e
MR
48572011-09-08 Martin Rudalics <rudalics@gmx.at>
4858
4859 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
4860 Operate on live windows only.
4861
2949f33b
JB
48622011-09-08 Juanma Barranquero <lekktu@gmail.com>
4863
4864 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
4865
e08dcafd
EZ
48662011-09-07 Eli Zaretskii <eliz@gnu.org>
4867
4868 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
4869 only under bidi iteration.
4870
115b96bd
JD
48712011-09-07 Jan Djärv <jan.h.d@swipnet.se>
4872
4873 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
4874
c8199d0f
PE
48752011-09-06 Paul Eggert <eggert@cs.ucla.edu>
4876
4877 isnan: Fix porting problem to Solaris 10 with bundled gcc.
4878 Without this fix, the command to link temacs failed due to an
4879 undefined symbol __builtin_isnan. This is because
4880 /usr/include/iso/math_c99.h #defines isnan(x) to
4881 __builtin_isnan(x), but the bundled gcc, which identifies itself
4882 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
4883 a __builtin_isnan.
4884 * floatfns.c (isnan): #undef, and then #define to a clone of
4885 what's in data.c.
4886 (Fisnan): Always define, since it's always available now.
4887 (syms_of_floatfns): Always define isnan at the Lisp level.
4888
e39b275c 48892011-09-06 Paul Eggert <eggert@cs.ucla.edu>
1c262cae
PE
4890
4891 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
4892
b2db44d9 48932011-09-06 Paul Eggert <eggert@cs.ucla.edu>
728f8f0a 4894
f4af5137 4895 * fileio.c: Fix bugs with large file offsets (Bug#9428).
728f8f0a
PE
4896 The previous code assumed that file offsets (off_t values) fit in
4897 EMACS_INT variables, which is not true on typical 32-bit hosts.
4898 The code messed up by falsely reporting buffer overflow in cases
4899 such as (insert-file-contents "big" nil 1 2) into an empty buffer
4900 when "big" contains more than 2**29 bytes, even though this
4901 inserts just one byte and does not overflow the buffer.
4902 (Finsert_file_contents): Store file offsets as off_t
4903 values, not as EMACS_INT values. Check for overflow when
4904 converting between EMACS_INT and off_t. When checking for
4905 buffer overflow or for overlap, take the offsets into account.
4906 Don't use EMACS_INT for small values where int suffices.
4907 When checking for overlap, fix a typo: ZV was used where
4908 ZV_BYTE was intended.
4909 (Fwrite_region): Don't assume off_t fits into 'long'.
4910 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
4911
ecfc0a49
MA
49122011-09-05 Michael Albinus <michael.albinus@gmx.de>
4913
4914 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
4915
6511acf2 49162011-09-04 Paul Eggert <eggert@cs.ucla.edu>
61bfeeb7 4917
0999621a 4918 sprintf-related integer and memory overflow issues (Bug#9412).
62f19c19
PE
4919
4920 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
8666506e 4921 (esprintf, exprintf, evxprintf): New functions.
62f19c19 4922 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
6b02f655 4923 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
62f19c19
PE
4924 (modify_event_symbol): Do not assume that the length of
4925 name_alist_or_stem is safe to alloca and fits in int.
4926 (Fexecute_extended_command): Likewise for function name and binding.
4927 (Frecursion_depth): Wrap around reliably on integer overflow.
4928 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
4929 since some callers pass EMACS_INT values.
4930 (Fsingle_key_description): Don't crash if symbol name contains more
4931 than MAX_ALLOCA bytes.
4932 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
4933 (get_minibuffer): Arg is now EMACS_INT, not int.
4934 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
8666506e 4935 (esprintf, exprintf, evxprintf): New decls.
62f19c19
PE
4936 * window.h (command_loop_level, minibuf_level): Reflect API changes.
4937
2be7d702
PE
4938 * dbusbind.c (signature_cat): New function.
4939 (xd_signature, Fdbus_register_signal):
2ea16b89
PE
4940 Do not overrun buffer; instead, report string overflow.
4941
9d1df220
PE
4942 * dispnew.c (add_window_display_history): Don't overrun buffer.
4943 Truncate instead; this is OK since it's just a log.
4944
33ef5c64
PE
4945 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
4946 even if the time zone offset is outlandishly large.
4947 Don't mishandle offset == INT_MIN.
4948
66c6fdd5
PE
4949 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
4950 when creating daemon; the previous buffer-overflow check was incorrect.
4951
d749b01b
PE
4952 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
4953 which has the guts of the old verror function.
4954
b5cd1905
PE
4955 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
4956 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
4957
6e1a67fb
PE
4958 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
4959 (font_unparse_xlfd): Don't blindly alloca long strings.
c21721cc 4960 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
8666506e 4961 fits in int, when using sprintf. Use single snprintf to count
c21721cc
PE
4962 length of string rather than counting it via multiple sprintfs;
4963 that's simpler and more reliable.
c21721cc
PE
4964 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
4965 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
4966 sprintf, in case result does not fit in int.
4967
c57b67fc
PE
4968 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
4969 (fontset_from_font): Print it.
4970
8a401434
PE
4971 * frame.c (tty_frame_count): Now printmax_t, not int.
4972 (make_terminal_frame, set_term_frame_name): Print it.
4973 (x_report_frame_params): In X, window IDs are unsigned long,
4974 not signed long, so print them as unsigned.
4975 (validate_x_resource_name): Check for implausibly long names,
4976 and don't assume name length fits in 'int'.
4977 (x_get_resource_string): Don't blindly alloca invocation name;
4978 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
4979 not fit in int.
4980
6e1a67fb
PE
4981 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
4982 (xg_check_special_colors, xg_set_geometry):
84722b3d
PE
4983 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
4984
0df02bf3
PE
4985 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
4986 Use esprintf, not sprintf, in case result does not fit in int.
4987
48e30793
PE
4988 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
4989 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
4990 it as a large positive number.
4991 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
4992 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
4993
a66ff6d8
PE
4994 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
4995 in case result does not fit in int.
4996
aca216ff
PE
4997 * print.c (float_to_string): Detect width overflow more reliably.
4998 (print_object): Make sprintf buffer a bit bigger, to avoid potential
4999 buffer overrun. Don't assume list length fits in 'int'. Treat
5000 print length of 0 as 0, not as infinity; to be consistent with other
5001 uses of print length in this function. Don't overflow print length
5002 index. Don't assume hash table size fits in 'long', or that
5003 vectorlike size fits in 'unsigned long'.
5004
31c286f7
PE
5005 * process.c (make_process): Use printmax_t, not int, to format
5006 process-name gensyms.
5007
55e5faa1
PE
5008 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
5009
80f2e268
PE
5010 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
5011 to avoid potential buffer overrun.
5012
670741ab
PE
5013 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
5014 if X resource line is longer than 512 bytes.
5015
b7163a50
PE
5016 * xfns.c (x_window): Make sprintf buffer a bit bigger
5017 to avoid potential buffer overrun.
5018
ae58ff1f
PE
5019 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
5020
c43c8a6a
PE
5021 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
5022
3f8236f4
PE
50232011-09-04 Paul Eggert <eggert@cs.ucla.edu>
5024
53e9fe90 5025 Integer overflow fixes for scrolling, etc.
6511acf2
PE
5026 Without these, Emacs silently mishandles large integers sometimes.
5027 For example, "C-u 4294967297 M-x recenter" was treated as if
53e9fe90
PE
5028 it were "C-u 1 M-x recenter" on a typical 64-bit host.
5029
6511acf2
PE
5030 * xdisp.c (try_window_id): Check Emacs fixnum range before
5031 converting to 'int'.
806add1d 5032
6511acf2 5033 * window.c (window_scroll_line_based, Frecenter):
71f02bc5
PE
5034 Check that an Emacs fixnum is in range before assigning it to 'int'.
5035 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
5036 values converted from Emacs fixnums.
5037 (Frecenter): Don't wrap around a line count if it is out of 'int'
5038 range; instead, treat it as an extreme value.
5039 (Fset_window_configuration, compare_window_configurations):
5040 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
5041
6511acf2
PE
5042 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
5043 that can exceed INT_MAX. Check that EMACS_INT value is in range
5044 before assigning it to the (possibly-narrower) index.
a0efffc8
PE
5045 (match_limit): Don't assume that a fixnum can fit in 'int'.
5046
6511acf2 5047 * print.c (print_object): Use ptrdiff_t, not int, for index that can
29ebea3b
PE
5048 exceed INT_MAX.
5049
6511acf2 5050 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
3f8236f4
PE
5051 (Fvertical_motion): Don't wrap around LINES values that don't fit
5052 in 'int'. Instead, treat them as extreme values. This is good
5053 enough for windows, which can't have more than INT_MAX lines anyway.
5054
fcb901a7
LMI
50552011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
5056
0f2f6b6d
LMI
5057 * Require libxml/parser.h to avoid compilation warning.
5058
fcb901a7
LMI
5059 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
5060
5061 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
5062 since this reportedly can destroy thread storage.
5063
6e20a0d4
CY
50642011-08-30 Chong Yidong <cyd@stupidchicken.com>
5065
5066 * syntax.c (find_defun_start): Update all cache variables if
5067 exiting early (Bug#9401).
5068
148ae00e
EZ
50692011-08-30 Eli Zaretskii <eliz@gnu.org>
5070
f6cfbd8f
EZ
5071 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
5072
148ae00e
EZ
5073 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
5074 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
5075 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
5076
5077 * term.c (tty_append_glyph): New function.
5078 (produce_stretch_glyph): Static function and its prototype deleted.
5079
a66cfb1c
SM
5080 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
5081 Add prototypes.
148ae00e 5082
c4a07a4c
PE
50832011-08-29 Paul Eggert <eggert@cs.ucla.edu>
5084
5085 * image.c (parse_image_spec): Check for nonnegative, not for positive,
5086 when checking :margin (Bug#9390).
5087 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
a66cfb1c 5088 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
c4a07a4c
PE
5089 so that the name doesn't mislead. All uses changed.
5090
6bc8cd65
JB
50912011-08-28 Johan Bockgård <bojohan@gnu.org>
5092
5093 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
5094 set_tty_hooks.
5095
dca4927e
EZ
50962011-08-27 Eli Zaretskii <eliz@gnu.org>
5097
5098 * xdisp.c (move_it_to): Don't bail out early when reaching
5099 position beyond to_charpos, if we are scanning backwards.
5100 (move_it_vertically_backward): When DY == 0, make sure we get to
5101 the first character in the line after the newline.
5102
f2cad773
PE
51032011-08-27 Paul Eggert <eggert@cs.ucla.edu>
5104
5105 * ccl.c: Improve and simplify overflow checking (Bug#9196).
5106 (ccl_driver): Do not generate an out-of-range pointer.
5107 (Fccl_execute_on_string): Remove unnecessary check for
5108 integer overflow, noted by Stefan Monnier in
5109 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
5110 Remove a FIXME that didn't need fixing.
5111 Simplify the newly-introduced buffer reallocation code.
5112
0cae2cdb
JB
51132011-08-27 Juanma Barranquero <lekktu@gmail.com>
5114
5115 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
5116
5fc295a4 51172011-08-26 Paul Eggert <eggert@cs.ucla.edu>
ddff3151 5118
70c60eb2 5119 Integer and memory overflow issues (Bug#9196).
726e0ab1 5120
d31850da
PE
5121 * doc.c (get_doc_string): Rework so that
5122 get_doc_string_buffer_size is the actual buffer size, rather than
5123 being 1 less than the actual buffer size; this makes xpalloc more
5124 convenient.
5125
a69fbedb
PE
5126 * image.c (x_allocate_bitmap_record, cache_image):
5127 * xselect.c (Fx_register_dnd_atom):
5128 Simplify previous changes by using xpalloc.
5129
fe5c5d37
PE
5130 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
5131 since either will do and ptrdiff_t is convenient with xpalloc.
5132
0065d054
PE
5133 * charset.c (charset_table_size)
5134 (struct charset_sort_data.priority): Now ptrdiff_t.
5135 (charset_compare): Don't overflow if priorities differ greatly.
5136 (Fsort_charsets): Don't assume list length fits in int.
5137 Check for size-calculation overflow when allocating sort data.
5138 (syms_of_charset): Allocate an initial charset table that is
5139 just under 64 KiB, to avoid problems with glibc malloc and mmap.
5140
5141 * cmds.c (internal_self_insert): Check for size-calculation overflow.
5142
5143 * composite.h (struct composition.glyph_len): Now int, not unsigned.
5144 The actual value is always <= INT_MAX, and leaving it unsigned made
5145 overflow checking harder.
5146
5147 * dispextern.h (struct glyph_matrix.rows_allocated)
5148 (struct face_cache.size): Now ptrdiff_t, for convenience in use
5149 with xpalloc. The values are still always <= INT_MAX.
5150
5151 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
5152
5153 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
5154 (SAFE_NALLOCA): New macro.
5155
5156 * region-cache.c (struct boundary.pos, find_cache_boundary)
5157 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
5158 (set_cache_region, invalidate_region_cache)
5159 (revalidate_region_cache, know_region_cache, region_cache_forward)
5160 (region_cache_backward, pp_cache):
5161 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
5162 so that ptrdiff_t * can be passed to xpalloc.
5163 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
5164 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
5165 (pp_cache): Don't assume cache_len fits in int.
5166 * region-cache.h: Adjust extern decls to match.
5167
5168 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
5169 EMACS_INT, since either will do, for xpalloc.
5170
5171 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
5172 (xnmalloc, xnrealloc, xpalloc): New functions.
5173
726e0ab1
PE
5174 * bidi.c (bidi_shelve_header_size): New constant.
5175 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
5176 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
5177
51f30bc5 5178 * bidi.c (bidi_cache_shrink):
726e0ab1
PE
5179 * buffer.c (overlays_at, overlays_in, record_overlay_string)
5180 (overlay_strings):
5181 Don't update size of array until after memory allocation succeeds,
5182 because xmalloc/xrealloc may not return.
0065d054
PE
5183 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
5184 now that we have proper integer overflow checking.
5185 (record_overlay_string, overlay_strings): Catch overflows when
5186 calculating size of overlay_str_buf.
726e0ab1 5187
0065d054
PE
5188 * callproc.c (Fcall_process): Check for size overflow when
5189 calculating size of args2.
5190 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
5191 Normally we prefer signed values, but sticking with ptrdiff_t would
5192 require adding more-complicated checks.
726e0ab1
PE
5193
5194 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
5195 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
5196 Redo buffer-overflow calculations to avoid integer overflow.
0065d054 5197 Add a FIXME comment where memory seems to be over-allocated.
726e0ab1
PE
5198
5199 * character.c (Fstring): Check for size-calculation overflow.
5200
5201 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
5202 unnecessary integer overflow. Check for size overflow.
5203 (encode_coding_object): Don't update size until xmalloc succeeds.
5204
5205 * composite.c (get_composition_id): Check for overflow in glyph
5206 length calculations.
5207
5208 Integer and memory overflow fixes for display code.
5209 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
5210 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
5211 (scrolling_window): Check for overflow in size calculations.
5212 (line_draw_cost, realloc_glyph_pool, add_row_entry):
5213 Don't assume glyph table len fits in int.
5214 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
5215 (row_table_size): Now ptrdiff_t, not int.
5216 (scrolling_window): Avoid overflow in size calculations.
5217 Don't update size until allocation succeeds.
5218 * fns.c (concat): Check for overflow in size calculations.
5219 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
5220 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
5221 (NEXT_ALMOST_PRIME_LIMIT): New constant.
5222
5223 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
5224 (get_doc_string): Check for size calculation overflow.
5225 Don't update size until allocation succeeds.
5226 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
5227 EMACS_INT, where ptrdiff_t will do.
5228 (Fsubstitute_command_keys): Check for string overflow.
5229
5230 * editfns.c (set_time_zone_rule): Don't assume environment length
5231 fits in int.
5232 (message_length): Now ptrdiff_t, not int.
5233 (Fmessage_box): Don't update size until allocation succeeds.
5234 Don't assume message length fits in int.
5235 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
5236
0065d054
PE
5237 * emacs.c (main): Do not reallocate argv, since there is a null at
5238 the end that can be overwritten, and this way there's no need to
5239 worry about size-calculation overflow.
5240 (sort_args): Check for size-calculation overflow.
726e0ab1
PE
5241
5242 * eval.c (init_eval_once, grow_specpdl): Don't update size until
5243 alloc succeeds.
5244 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
5245
5246 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
5247 (x_set_scroll_bar_width, x_figure_window_size):
5248 Check for integer overflow.
5249 (x_set_alpha): Do not assume XINT fits in int.
5250
5251 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
5252 This is for the members text_lines, text_cols, total_lines, total_cols,
5253 where the system imposes an 'int' limit.
5254
5255 * fringe.c (Fdefine_fringe_bitmap):
5256 Don't update size until alloc works.
5257
5258 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
5259 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
5260
5261 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
5262 Check for size-calculation overflow.
5263 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
5264 do, as we prefer signed integers.
5265 (id_to_widget.max_size, id_to_widget.used)
5266 (xg_store_widget_in_map, xg_remove_widget_from_map)
5267 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
5268 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
5269 Use and return ptrdiff_t, not int.
5270 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
5271 * gtkutil.h: Change prototypes to match the above.
5272
5273 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
5274 are duplicate now that they've been promoted to lisp.h.
5275 (x_allocate_bitmap_record, x_alloc_image_color)
5276 (make_image_cache, cache_image, xpm_load):
5277 Don't update size until alloc is done.
5278 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
5279 (x_detect_edges):
3256efce 5280 Check for size calculation overflow.
726e0ab1
PE
5281 (ct_colors_allocated_max): New constant.
5282 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
5283 overflow.
3256efce 5284
726e0ab1
PE
5285 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
5286 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
5287 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
5288 Use ptrdiff_t, not int, to count maps.
5289 (read_char_minibuf_menu_prompt): Check for overflow in size
a66cfb1c
SM
5290 calculations. Don't update size until allocation succeeds.
5291 Redo calculations to avoid overflow.
726e0ab1
PE
5292 * keyboard.h: Change prototypes to match the above.
5293
5294 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
5295 to count maps.
5296 (current_minor_maps): Check for size calculation overflow.
5297 * keymap.h: Change prototypes to match the above.
5298
5299 * lread.c (read1, init_obarray): Don't update size until alloc done.
5300
5301 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
5302 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
5303
726e0ab1
PE
5304 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
5305 Now ptrdiff_t, not int.
5306 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
5307 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
5308
5309 * process.c (Fnetwork_interface_list): Check for overflow
5310 in size calculation.
5311
5312 * region-cache.c (move_cache_gap): Check for size calculation overflow.
5313
5314 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
5315 overflow. Don't bother calling xmalloc when xrealloc will do.
5316
5317 * search.c (Freplace_match): Check for size calculation overflow.
5318 (Fset_match_data): Don't assume list lengths fit in 'int'.
5319
5320 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
5321 for command line length. Do not attempt to address one before the
5322 beginning of an array, as that's not portable.
5323
5324 * term.c (max_frame_lines): Remove; unused.
5325 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
5326 not int.
5327 (encode_terminal_code, calculate_costs): Check for size
5328 calculation overflow.
5329 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
5330 table lengths and related sizes. Don't update size until alloc
5331 done. Redo calculations to avoid overflow.
5332 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
5333
5334 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
5335 subtracting pointers.
5336 (gobble_line): Check for overflow more carefully. Don't update size
5337 until alloc done.
5338
5339 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
5340 Don't update size until alloc done.
5341 Redo size calculations to avoid overflow.
5342 Check for size calculation overflow.
0065d054 5343 (main) [DEBUG]: Fix typo in invoking tparam1.
726e0ab1
PE
5344
5345 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
5346 Use ptrdiff_t, not int, for sizes.
5347 (store_mode_line_noprop_char): Don't update size until alloc done.
5348
0065d054
PE
5349 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
5350 Use ptrdiff_t, not int, for sizes.
5351 (Finternal_make_lisp_face, cache_face):
5352 Check for size calculation overflow.
5353 (cache_face): Treat size calculation overflows as if they were
5354 memory exhaustion (the usual treatment), rather than aborting.
726e0ab1
PE
5355
5356 * xfns.c (x_encode_text, x_set_name_internal)
5357 (Fx_change_window_property): Use ptrdiff_t, not int, to count
5358 sizes, since they can exceed INT_MAX in size. Check for size
5359 calculation overflow.
5360
0065d054
PE
5361 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
5362 (xg_select): Check for size calculation overflow.
726e0ab1
PE
5363 Don't update size until alloc done.
5364
0065d054 5365 * xrdb.c (get_environ_db): Don't assume path length fits in int,
726e0ab1 5366 as sprintf is limited to int lengths.
1d526e2f 5367
252c5ee1
PE
5368 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
5369 (X_LONG_MIN): New macros.
864d7ce7
PE
5370 Use them to make the following changes clearer.
5371 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
5372 This change doesn't affect the value now, but it may help remind
5373 future maintainers not to raise the value too much later.
5374 (SELECTION_QUANTUM): Remove, replacing with ...
5375 (selection_quantum): ... new function, which avoids overflow.
5376 All uses changed.
5377 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
5378 assumption that selection length fits in 'int'.
5379 (x_reply_selection_request, x_handle_selection_request)
5380 (x_get_window_property, receive_incremental_selection)
5381 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
5382 (lisp_data_to_selection_data, clean_local_selection_data):
5383 Use ptrdiff_t, not int, to record length of selection.
5384 (x_reply_selection_request, x_get_window_property)
5385 (receive_incremental_selection, x_property_data_to_lisp):
5386 Redo calculations to avoid overflow.
5387 (x_reply_selection_request): When sending hint, ceiling it at
252c5ee1 5388 X_LONG_MAX rather than relying on wraparound overflow to send
864d7ce7
PE
5389 something.
5390 (x_get_window_property, receive_incremental_selection)
5391 (lisp_data_to_selection_data, x_property_data_to_lisp):
5392 Check for size-calculation overflow.
5393 (x_get_window_property, receive_incremental_selection)
5394 (lisp_data_to_selection_data, Fx_register_dnd_atom):
5395 Don't store size until memory allocation succeeds.
5396 (x_get_window_property): Plug memory leak on memory exhaustion.
5397 Don't double-block input; malloc is safe here. Don't assume 2**34
5398 - 4 fits in unsigned long. Add an xassert to check
5399 XGetWindowProperty overflow. Be more careful about overflow
5400 calculations, and distinguish size from memory overflow better.
5401 (receive_incremental_selection): When tracing, don't assume
5402 unsigned int is less than INT_MAX.
5403 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
5404 harmful) conversions of unsigned short to int.
5405 (lisp_data_to_selection_data): Don't assume that integers
5406 in the range -65535 through -1 fit in an X unsigned short.
5407 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
5408 result parameters unless successful. Rely on cons_to_unsigned
5409 to report problems with elements; the old code wasn't right anyway.
5410 (x_check_property_data): Check for int overflow; we cannot use
5411 a wider type due to X limits.
5412 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
5413
726e0ab1 5414 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
34db673b 5415
0065d054
PE
5416 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
5417 (x_term_init): Check for size calculation overflow.
726e0ab1
PE
5418 (x_color_cells): Don't store size until memory allocation succeeds.
5419 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
0065d054 5420 Don't assume alloca size is less than MAX_ALLOCA.
726e0ab1
PE
5421 (x_term_init): Don't assume length fits in int (sprintf is limited
5422 to int size).
bc18e09d 5423
ebfa62c0
PE
5424 Use ptrdiff_t for composition IDs.
5425 * character.c (lisp_string_width):
5426 * composite.c (composition_table_size, n_compositions)
5427 (get_composition_id, composition_gstring_from_id):
5428 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
5429 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
5430 * window.c (Frecenter):
5431 Use ptrdiff_t, not int, for composition IDs.
5432 * composite.c (get_composition_id): Check for integer overflow.
5433 * composite.h: Adjust prototypes to match the above changes.
5434
d3411f89
PE
5435 Use ptrdiff_t for hash table indexes.
5436 * category.c (hash_get_category_set):
5437 * ccl.c (ccl_driver):
5438 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
5439 * coding.c (coding_system_charset_list, detect_coding_system):
5440 * coding.h (struct coding_system.id):
5441 * composite.c (get_composition_id, gstring_lookup_cache):
5442 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
5443 * image.c (xpm_get_color_table_h):
5444 * lisp.h (hash_lookup, hash_put):
5445 * minibuf.c (Ftest_completion):
5446 Use ptrdiff_t for hash table indexes, not int (which is too
5447 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
5448 32-bit --with-wide-int hosts).
5449
e097a6fa
PE
5450 * charset.c (Fdefine_charset_internal): Check for integer overflow.
5451 Add a FIXME comment about memory leaks.
5452 (syms_of_charset): Don't assume xmalloc returns.
5453
5637687f
PE
5454 Don't assume that stated character widths fit in int.
5455 * character.c (Fchar_width, c_string_width, lisp_string_width):
5456 * character.h (CHAR_WIDTH):
5457 * indent.c (MULTIBYTE_BYTES_WIDTH):
5458 Use sanitize_char_width to avoid undefined and/or bad behavior
5459 with outlandish widths.
a66cfb1c 5460 * character.h (sanitize_tab_width): Rename from sanitize_width,
5637687f
PE
5461 now that we have two such functions. All uses changed.
5462 (sanitize_char_width): New inline function.
5463
a2271ba2
PE
5464 Don't assume that tab-width fits in int.
5465 * character.h (sanitize_width): New inline function.
5466 (SANE_TAB_WIDTH): New macro.
5467 (ASCII_CHAR_WIDTH): Use it.
5468 * indent.c (sane_tab_width): Remove. All uses replaced by
5469 SANE_TAB_WIDTH (current_buffer).
5470 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
5471
18c52557
PE
5472 * fileio.c: Integer overflow issues with file modes.
5473 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
5474
caeeedc1
PE
5475 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
5476 Remove unreachable code.
5477 (read_hex, load_charset_map_from_file): Check for integer overflow.
5478
6df6ae42 5479 * xterm.c: Don't go over XClientMessageEvent limit.
50849c52
PE
5480 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
5481 (x_send_scroll_bar_event): Likewise. Check that the size does not
5482 exceed limits imposed by XClientMessageEvent, as well as the usual
5483 ptrdiff_t and size_t limits.
5484
b13995db
PE
5485 * keyboard.c: Overflow, signedness and related fixes.
5486 (make_lispy_movement): Use same integer type in forward decl
5487 that is used in the definition.
5488 (read_key_sequence, keyremap_step):
5489 Change bufsize argument back to int, undoing my 2011-03-30 change.
5490 We prefer signed types, and int is wide enough here.
5491 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
5492 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
5493 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
5494 length, not size_t. Use ptrdiff_t for index, not int.
5495 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
5496 possibility of integer overflow.
5497
13464394
PE
5498 Overflow, signedness and related fixes for images.
5499
5500 * dispextern.h (struct it.stack[0].u.image.image_id)
5501 (struct_it.image_id, struct image.id, struct image_cache.size)
5502 (struct image_cache.used, struct image_cache.ref_count):
5503 * gtkutil.c (update_frame_tool_bar):
5504 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
5505 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
5506 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
5507 * nsmenu.m (update_frame_tool_bar):
5508 * xdisp.c (calc_pixel_width_or_height):
5509 * xfns.c (image_cache_refcount):
5510 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
5511 on typical 64-bit hosts.
5512
5513 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
5514 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
5515 Omit unnecessary casts to int.
5516 (parse_image_spec): Check that integers fall into 'int' range
5517 when the callers expect that.
5518 (image_ascent): Redo ascent calculation to avoid int overflow.
5519 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
5520 (lookup_image): Remove unnecessary tests.
5521 (xbm_image_p): Locals are now of int, not EMACS_INT,
5522 since parse_image_check makes sure they fit into int.
5523 (png_load, gif_load, svg_load_image):
5524 Prefer int to unsigned where either will do.
5525 (tiff_handler): New function, combining the cores of the
a66cfb1c
SM
5526 old tiff_error_handler and tiff_warning_handler.
5527 This function is rewritten to use vsnprintf and thereby avoid
13464394
PE
5528 stack buffer overflows. It uses only the features of vsnprintf
5529 that are common to both POSIX and native Microsoft.
5530 (tiff_error_handler, tiff_warning_handler): Use it.
5531 (tiff_load, gif_load, imagemagick_load_image):
5532 Don't assume :index value fits in 'int'.
5533 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
5534 (imagemagick_load_image): Check that crop parameters fit into
5535 the integer types that MagickCropImage accepts. Don't assume
5536 Vimagemagick_render_type has a nonnegative value. Don't assume
5537 size_t fits in 'long'.
5538 (gs_load): Use printmax_t to print the widest integers possible.
5539 Check for integer overflow when computing image height and width.
5540
c11821d4
EZ
55412011-08-26 Eli Zaretskii <eliz@gnu.org>
5542
5543 * xdisp.c (redisplay_window): Don't force window start if point
5544 will be invisible in the resulting window. (Bug#9324)
5545
0c95fcf7
EZ
55462011-08-25 Eli Zaretskii <eliz@gnu.org>
5547
5548 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
5549 the display spec is of the form `(space ...)'.
5550 (handle_display_spec): Return the value returned by
5551 handle_single_display_spec, not just 1 or zero.
5552 (handle_single_display_spec): If the display spec is of the form
5553 `(space ...)', and specifies display in the text area, return 2
5554 rather than 1.
fee65a97 5555 (try_cursor_movement): Check for the need to scroll more
a66cfb1c
SM
5556 accurately, and prefer exact match for point under bidi.
5557 Don't advance `row' beyond the last row of the window.
0c95fcf7
EZ
5558
5559 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
5560 into disp_prop; all users changed.
5561
5562 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
5563 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
5564 for the text covered by the display property.
5565
e4ed06f1
CY
55662011-08-25 Chong Yidong <cyd@stupidchicken.com>
5567
5568 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
5569 Change return value to nil.
5570 (Frecord_buffer): Delete unused function.
5571
f67cdd7f
EZ
55722011-08-24 Eli Zaretskii <eliz@gnu.org>
5573
5980d4c6
EZ
5574 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
5575 buffers, return left-to-right.
8610fe8b
EZ
5576 (set_cursor_from_row): Consider candidate row a win if its glyph
5577 represents a newline and point is on that newline. Fixes cursor
5578 positioning on the newline at EOL of R2L text within L2R
5579 paragraph, and vice versa.
5580 (try_cursor_movement): Check continued rows, in addition to
5581 continuation rows. Fixes unwarranted scroll when point enters a
5582 continued line of R2L text within an L2R paragraph, or vice versa.
5583 (cursor_row_p): Consider the case of point being equal to
5584 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
5585 from the end of a short line to the beginning of a continued line
5586 of R2L text within L2R paragraph.
5587 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
5588 composed characters.
5980d4c6 5589
f67cdd7f
EZ
5590 * bidi.c (bidi_check_type): Use xassert.
5591 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
5592 members.
5593
bca633fb
EZ
55942011-08-23 Eli Zaretskii <eliz@gnu.org>
5595
5596 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
5597 a character.
5598
4a5885a7
CY
55992011-08-23 Chong Yidong <cyd@stupidchicken.com>
5600
5601 * nsfont.m (ns_otf_to_script): Fix typo.
5602
0902a04e
KH
56032011-08-22 Kenichi Handa <handa@m17n.org>
5604
5605 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
5606 extra slot even if the purpose is char-code-property-table.
5607
1a2e6670
EZ
56082011-08-23 Eli Zaretskii <eliz@gnu.org>
5609
8ddde651
EZ
5610 * xdisp.c (redisplay_window): When computing centering_position,
5611 account for the height of the header line. (Bug#8874)
5612
425cc014
EZ
5613 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
5614 instead of CHAR_TO_BYTE. Fixes a crash when a completion
5615 candidate is selected by the mouse, and that candidate has a
5616 composed character under the mouse.
5617
1a2e6670
EZ
5618 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
5619 coordinates reported by pos-visible-in-window-p for a composed
5620 character in column zero.
5621
8b76d6f8
SM
56222011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
5623
5624 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
5625
dac347dd
EZ
56262011-08-22 Eli Zaretskii <eliz@gnu.org>
5627
5628 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
5629 consider it a hit if to_charpos is anywhere in the range of the
5630 composed buffer positions.
5631
e013fb34
CY
56322011-08-22 Chong Yidong <cyd@stupidchicken.com>
5633
5634 * image.c (gif_load): Don't assume that each subimage has the same
5635 dimensions as the base image. Handle disposal method that is
5636 "undefined" by the gif spec (Bug#9335).
5637
bd1ba3e8
CY
56382011-08-20 Chong Yidong <cyd@stupidchicken.com>
5639
5640 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
024a2d76 5641 (Fcondition_case): Document `debug' symbol in error handler.
bd1ba3e8 5642
54a1215b
EZ
56432011-08-19 Eli Zaretskii <eliz@gnu.org>
5644
823564e5
EZ
5645 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
5646 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
5647 from an Org mode buffer to a Speedbar frame.
5648
54a1215b
EZ
5649 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
5650 a composition, take its buffer position from IT->cmp_it.charpos.
5651 Fixes cursor positioning at the beginning of a line that begins
5652 with a composed character.
5653
9778ebcc
EZ
56542011-08-18 Eli Zaretskii <eliz@gnu.org>
5655
0be6ee06
EZ
5656 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
5657 character bidirectional type, use STRONG_L instead. Fixes crashes
5658 in a buffer produced by `describe-categories'.
5659
9778ebcc
EZ
5660 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
5661 members before the level stack, so they would be saved and
5662 restored when copying iterator state. Fixes incorrect reordering
5663 around TABs covered by display properties.
5664
156bffbe
AS
56652011-08-18 Andreas Schwab <schwab@linux-m68k.org>
5666
6b02f655 5667 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
156bffbe 5668
72ad093b
CY
56692011-08-17 Chong Yidong <cyd@stupidchicken.com>
5670
5671 * eval.c (internal_condition_case, internal_condition_case_1)
8b76d6f8
SM
5672 (internal_condition_case_2, internal_condition_case_n):
5673 Remove unnecessary aborts (Bug#9081).
72ad093b 5674
35774242
EZ
56752011-08-17 Eli Zaretskii <eliz@gnu.org>
5676
5677 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
5678 has no `load' handler, try opening the file locally. (Bug#9311)
5679
db76dd85
KB
56802011-08-16 Ken Brown <kbrown@cornell.edu>
5681
5682 * gmalloc.c: Expand comment.
5683
b215eee5
EZ
56842011-08-16 Eli Zaretskii <eliz@gnu.org>
5685
5686 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
5687 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
5688
a4579d33
KB
56892011-08-16 Ken Brown <kbrown@cornell.edu>
5690
5691 Fix memory allocation problems in Cygwin build (Bug#9273).
5692
5693 * unexcw.c ( __malloc_initialized): Declare external variable.
5694 (fixup_executable): Force the dumped emacs to reinitialize malloc.
5695
8b76d6f8
SM
5696 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
5697 New variables.
a4579d33
KB
5698 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
5699 dumped emacs.
5700 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
5701 in the static heap.
5702 [CYGWIN] (special_realloc): New function.
5703 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
5704 requests to realloc storage in the static heap.
5705
3ebec551
PE
57062011-08-15 Paul Eggert <eggert@cs.ucla.edu>
5707
5708 * bidi.c (bidi_initialize): Remove unused local.
5709
9fd8be00
EZ
57102011-08-15 Eli Zaretskii <eliz@gnu.org>
5711
6b02f655
SM
5712 * bidimirror.h:
5713 * biditype.h: Remove file.
5714 * makefile.w32-in ($(BLD)/bidi.$(O)):
5715 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
474a8465
EZ
5716
5717 * dispextern.h: Fix a typo in the comment to bidi_type_t.
5718
5719 * chartab.c: Improve commentary for the uniprop_table API.
5720
32413314
EZ
5721 * bidi.c (bidi_paragraph_init): Support zero value of
5722 bidi_ignore_explicit_marks_for_paragraph_level.
474a8465
EZ
5723 (bidi_initialize): Use uniprop_table instead of including
5724 biditype.h and bidimirror.h.
32413314 5725
9fd8be00
EZ
5726 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
5727 coordinates of the iterator when restoring from ppos_it.
5728 (Bug#9296)
5729
5cf2b69b
KH
57302011-08-14 Kenichi Handa <handa@m17n.org>
5731
5732 * process.c (create_process): Call setup_process_coding_systems
72ad093b 5733 after the pid of the process is set to -1 (Bug#8162).
5cf2b69b 5734
daf17d00
EZ
57352011-08-14 Eli Zaretskii <eliz@gnu.org>
5736
5737 * xdisp.c (move_it_in_display_line_to): Don't invoke
5738 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
5739 ppos_it. Fixes vertical cursor motion when line beginning is
5740 covered by an image. (Bug#9296)
5741
08e3161a
JD
57422011-08-14 Jan Djärv <jan.h.d@swipnet.se>
5743
5744 * nsterm.h (ns_run_ascript): Declare.
5745 (NSAPP_DATA2_RUNASSCRIPT): Define.
5746
5747 * nsfns.m (as_script, as_result, as_status): New static variables.
5748 (ns_run_ascript): New function.
5e617bc2 5749 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
08e3161a
JD
5750 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
5751 the event loop. Get status from as_status (Bug#7276).
5752
5753 * nsterm.m (sendEvent): If event is NSApplicationDefined and
5754 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
5755 the event loop (Bug#7276).
5756
a3720aa2
AS
57572011-08-14 Andreas Schwab <schwab@linux-m68k.org>
5758
5759 * gnutls.c (QCgnutls_bootprop_priority)
5760 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
5761 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
5762 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
5763 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
5764 (QCgnutls_bootprop_verify_hostname_error)
5765 (QCgnutls_bootprop_callbacks_verify): Rename from
5766 Qgnutls_bootprop_..., all uses changed.
5767
5768 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
5769 uses changed.
5770
0a0d27fb
PE
57712011-08-14 Paul Eggert <eggert@cs.ucla.edu>
5772
19d5c50c
PE
5773 * xfaces.c (Qframe_set_background_mode): Now static.
5774 * dispextern.h (Qframe_set_background_mode): Remove decl.
5775
0a0d27fb
PE
5776 * process.c (Fnetwork_interface_info): Declare local only if needed.
5777
377538cb
JD
57782011-08-13 Jan Djärv <jan.h.d@swipnet.se>
5779
5780 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
5781 (Fnetwork_interface_list): Allocate in increments of bytes instead
5782 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
5783 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
5784 sockaddr.
5785 (struct ifflag_def): notrailers is smart on OSX.
5786 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
5787 Get hardware address with getifaddrs if available.
5788
08fff70c
EZ
57892011-08-12 Eli Zaretskii <eliz@gnu.org>
5790
5791 * xdisp.c (iterate_out_of_display_property): xassert that
5792 IT->position is set to within IT->object's boundaries. Break from
5793 the loop as soon as EOB is reached; avoids infloops in redisplay
8b76d6f8
SM
5794 when IT->position is set up wrongly due to some bug.
5795 Set IT->current to match the bidi iterator unconditionally.
08fff70c
EZ
5796 (push_display_prop): Allow GET_FROM_STRING as IT->method on
5797 entry. Force push_it to save on the stack the current
5798 buffer/string position, to be restored by pop_it. Fix flags in
5799 the iterator structure wrt the object coming from a display
5800 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
5801 properties. (Bug#9284)
5802
7be1c708 58032011-08-09 Andreas Schwab <schwab@linux-m68k.org>
aac0c6e3 5804
7be1c708
CY
5805 * fontset.c (fontset_get_font_group): Add proper type checks.
5806 (Bug#9172)
aac0c6e3 5807
7be1c708 58082011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
aac0c6e3 5809
7be1c708
CY
5810 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
5811 and LC_VERSION_MIN_MACOSX.
5812 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
5813 (dump_it) [LC_FUNCTION_STARTS]: Use it.
aac0c6e3 5814
97bb72a6
EZ
58152011-08-08 Eli Zaretskii <eliz@gnu.org>
5816
5817 * xdisp.c (forward_to_next_line_start): Allow to use the
8b76d6f8
SM
5818 no-display-properties-and-no-overlays under bidi display.
5819 Set disp_pos in the bidi iterator to avoid searches for display
757664a4 5820 properties and overlays.
97bb72a6 5821
d5617611
CY
58222011-08-08 Chong Yidong <cyd@stupidchicken.com>
5823
37e11a63
CY
5824 * editfns.c (Fset_time_zone_rule): Document relationship with the
5825 setenv function.
5826
d5617611
CY
5827 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
5828 the font entity extracted from the cache (Bug#8109).
5829
58872834
CY
58302011-08-07 Chong Yidong <cyd@stupidchicken.com>
5831
5832 * composite.c (autocmp_chars): Don't reset point. That is done by
5833 restore_point_unwind (Bug#5984).
5834
75bfc667
JL
58352011-08-07 Juri Linkov <juri@jurta.org>
5836
5837 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
5838 to show the arg `TIME' instead of `TIMEVAL'.
5839
d1410150
EZ
58402011-08-06 Eli Zaretskii <eliz@gnu.org>
5841
5842 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
5843 display property strides EOL and includes a newline, as in
5844 longlines-mode. (Bug#9254)
75b771e4
EZ
5845 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
5846 word-wrap under bidirectional display. (Bug#9224)
d1410150
EZ
5847
5848 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
5849 is non-zero, even if the data buffer is NULL. Fixes a crash in
5850 vertical-motion with longlines-mode. (Bug#9254)
5851
35928349
EZ
58522011-08-05 Eli Zaretskii <eliz@gnu.org>
5853
ec7cc85b
EZ
5854 * bidi.c <bidi_cache_total_alloc>: Now static.
5855 (bidi_initialize): Initialize bidi_cache_total_alloc.
5856
8b76d6f8 5857 * xdisp.c (display_line): Release buffer allocated for shelved bidi
35928349
EZ
5858 cache. (Bug#9221)
5859
5860 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
5861 amount allocated this far in `bidi_cache_total_alloc'.
5862 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
5863 non-zero, only free the data buffer without restoring the cache
5864 contents. All callers changed.
5865
5866 * dispextern.h (bidi_unshelve_cache): Update prototype.
5867
5868 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
5869 (move_it_in_display_line, move_it_to)
5870 (move_it_vertically_backward, move_it_by_lines): Replace the call
5871 to xfree to an equivalent call to bidi_unshelve_cache.
5872 (move_it_in_display_line_to): Fix logic of returning
412b6358 5873 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
35928349 5874
e2e2423b
EZ
58752011-08-05 Eli Zaretskii <eliz@gnu.org>
5876
5877 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
5878 came from a string character with a `cursor' property. (Bug#9229)
5879
ae9e757a
JD
58802011-08-04 Jan Djärv <jan.h.d@swipnet.se>
5881
5882 * Makefile.in (LIB_PTHREAD): New variable.
5883 (LIBES): Add LIB_PTHREAD (Bug#9216).
5884
5885 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
5886 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
5887
213bd7f2
AS
58882011-08-04 Andreas Schwab <schwab@linux-m68k.org>
5889
6b02f655 5890 * regex.c (re_iswctype): Remove some redundant boolean conversions.
213bd7f2 5891
99aaf75f
JD
58922011-08-04 Jan Djärv <jan.h.d@swipnet.se>
5893
5894 * xterm.c (x_find_topmost_parent): New function.
5895 (x_set_frame_alpha): Find topmost parent window with
5896 x_find_topmost_parent and set the property there also (bug#9181).
5897 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
5898
c74e9d86
PE
58992011-08-04 Paul Eggert <eggert@cs.ucla.edu>
5900
5901 * callproc.c (Fcall_process): Avoid vfork clobbering
5902 the local vars buffer, coding_systems, current_dir.
5903
640c8776
SM
59042011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
5905
5906 * keymap.c (Fmake_composed_keymap): Move to subr.el.
5907
f26d0e4c
PE
59082011-08-03 Paul Eggert <eggert@cs.ucla.edu>
5909
8a10d76c
PE
5910 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
5911 so that it is not optimized away.
5912
f26d0e4c
PE
5913 * xdisp.c (compute_display_string_pos): Remove unused local.
5914
55439c61
EZ
59152011-08-02 Eli Zaretskii <eliz@gnu.org>
5916
5917 Fix slow cursor motion and scrolling in large buffers with
5918 selective display, like Org Mode buffers. (Bug#9218)
5919
5920 * dispextern.h (struct bidi_it): New member disp_prop_p.
5921
5922 * xdisp.c: Remove one-slot cache of display string positions.
5923 (compute_display_string_pos): Accept an additional argument
5e617bc2 5924 DISP_PROP_P; callers changed. Scan at most 5K characters forward
55439c61
EZ
5925 for a display string or property. If found, set DISP_PROP_P
5926 non-zero.
5927
5928 * bidi.c (bidi_fetch_char): Accept an additional argument
640c8776
SM
5929 DISP_PROP_P, and pass it to compute_display_string_pos.
5930 Only handle text covered by a display string if DISP_PROP_P is returned
55439c61
EZ
5931 non-zero. All callers of bidi_fetch_char changed.
5932
fb33fa43
SM
59332011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
5934
5935 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
5936
b099e063
DM
59372010-12-03 Don March <don@ohspite.net>
5938
5939 * keymap.c (Fdefine_key): Fix non-prefix key error message when
5940 last character M-[char] is translated to ESC [char] (bug#7541).
5941
5cc7f7af
KH
59422011-08-02 Kenichi Handa <handa@m17n.org>
5943
d0fffa3f 5944 * lisp.h (uniprop_table): Extern it.
5cc7f7af
KH
5945
5946 * chartab.c (uniprop_table): Make it non-static.
5947
525d5e6e
EZ
59482011-08-01 Eli Zaretskii <eliz@gnu.org>
5949
5950 * xdisp.c (forward_to_next_line_start): Accept additional argument
5951 BIDI_IT_PREV, and store into it the state of the bidi iterator had
5952 on the newline.
5953 (reseat_at_next_visible_line_start): Use the bidi iterator state
5954 returned by forward_to_next_line_start to restore the state of
5955 it->bidi_it after backing up to previous newline. (Bug#9212)
5956
31011111
AS
59572011-07-30 Andreas Schwab <schwab@linux-m68k.org>
5958
5959 * regex.c (re_comp): Protoize.
5960 (re_exec): Fix return type.
5961 (regexec): Fix type of `ret'. (Bug#9203)
5962
476371c4
PE
59632011-07-28 Paul Eggert <eggert@cs.ucla.edu>
5964
e5d76069
PE
5965 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
5966 This is needed if max-image-size is a floating-point number.
5967
9a79b20c
AS
59682011-07-28 Andreas Schwab <schwab@linux-m68k.org>
5969
5970 * print.c (print_object): Print empty symbol as ##.
5971
5972 * lread.c (read1): Read ## as empty symbol.
5973
d8c2fa78
AA
59742011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
5975
5976 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
5977 setting frame foreground color (Bug#9175).
5978 (x_set_background_color): Likewise.
5979
ffe57a7a
AA
5980 * nsmenu.m (-setText): Size tooltip dimensions precisely to
5981 contents (Bug#9176).
5982 (EmacsTooltip -init): Remove bezels and add shadows to
5983 tooltip windows.
5984
bf3492a5
AA
5985 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
5986 or scroll bar (Bug#8470).
5987
d55e9c53
AA
5988 * nsfont.m (nsfont_open): Remove assignment to voffset and
5989 unnecessary vars hshink, expand, hd, full_height, min_height.
5990 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
5991
5992 * nsterm.h (nsfont_info): Remove voffset field.
5993
d8c2fa78 59942011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
4843aac3
AA
5995
5996 Implement strike-through and overline on NextStep (Bug#8863).
5997
5998 * nsfont.m (nsfont_open): Use underline position provided by font,
5999 instead of hard-coded value of 2.
6000 (nsfont_draw): Call ns_draw_text_decoration instead.
6001
6002 * nsterm.h: Add declaration for ns_draw_text_decoration.
6003
6004 * nsterm.m (ns_draw_text_decoration): New function for drawing
6005 underline, overline, and strike-through.
6006 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
6007 ns_draw_text_decoration. Change treatment of cursor drawing to
8d5ed899 6008 accommodate underlining, etc.
4843aac3 6009
4cc60b9b
EZ
60102011-07-28 Eli Zaretskii <eliz@gnu.org>
6011
bc7ece87
EZ
6012 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
6013 default.
4cc60b9b 6014
476371c4
PE
60152011-07-28 Paul Eggert <eggert@cs.ucla.edu>
6016
66606eea
PE
6017 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
6018 Without this fix, if a signal arrives just after memory fills up,
6019 'malloc' might be invoked reentrantly.
6020
476371c4
PE
6021 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
6022 In other words, assume that every image size is allowed, on non-X
6023 hosts. This assumption is probably wrong, but it lets Emacs compile.
6024
f3fcc40d
AS
60252011-07-28 Andreas Schwab <schwab@linux-m68k.org>
6026
6027 * regex.c (re_iswctype): Convert return values to boolean.
6028
350c992f
EZ
60292011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
6030
6031 * xdisp.c (compute_display_string_pos): Don't use cached display
6032 string position if the buffer had its restriction changed.
6033 (Bug#9184)
6034
5266b4bb
PE
60352011-07-28 Paul Eggert <eggert@cs.ucla.edu>
6036
6037 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
6038
2573a837 60392011-07-28 Paul Eggert <eggert@cs.ucla.edu>
ca4aa935 6040
41f55ccd 6041 Integer signedness and overflow and related fixes. (Bug#9079)
cf950e6b 6042
39e378da
PE
6043 * bidi.c: Integer size and overflow fixes.
6044 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
6045 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
6046 (bidi_cache_find_level_change, bidi_cache_ensure_space)
6047 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
6048 (bidi_find_other_level_edge):
6049 Use ptrdiff_t instead of EMACS_INT where either will do.
6050 This works better on 32-bit hosts configured --with-wide-int.
6051 (bidi_cache_ensure_space): Check for size-calculation overflow.
6052 Use % rather than repeated addition, for better worst-case speed.
6053 Don't set bidi_cache_size until after xrealloc returns, because it
6054 might not return.
6055 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
f0eb61e9
PE
6056 (bidi_cache_ensure_space): Also check that the bidi cache size
6057 does not exceed that of the largest Lisp string or buffer. See Eli
6058 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
39e378da 6059
5e927815
PE
6060 * alloc.c (__malloc_size_t): Remove.
6061 All uses replaced by size_t. See Andreas Schwab's note
6062 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
6063
ca4aa935
PE
6064 * image.c: Improve checking for integer overflow.
6065 (check_image_size): Assume that f is nonnull, since
6066 it is always nonnull in practice. This is one less thing to
6067 worry about when checking for integer overflow later.
6068 (x_check_image_size): New function, which checks for integer
6069 overflow issues inside X.
6070 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
6071 This removes the need for a memory_full check.
6072 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
6073 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
6074 (xbm_read_bitmap_data): Change locals back to 'int', since
6075 their values must fit in 'int'.
6076 (xpm_load_image, png_load, tiff_load):
6077 Invoke x_create_x_image_and_pixmap earlier,
6078 to avoid much needless work if the image is too large.
6079 (tiff_load): Treat overly large images as if
6080 x_create_x_image_and_pixmap failed, not as malloc failures.
6081 (gs_load): Use x_check_image_size.
6082
5f8f9cc2
PE
6083 * gtkutil.c: Omit integer casts.
6084 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
6085 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
6086
5adf60bc
PE
6087 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
6088
c8907a93
PE
6089 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
6090 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
6091 would wrongly return t on a 64-bit host.
6092
e3c25c68
PE
6093 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
6094 The plain *_OVERFLOW macros run afoul of GCC bug 49705
6095 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
6096 and therefore cause GCC to emit a bogus diagnostic in some cases.
6097
3f791afe
PE
6098 * image.c: Integer signedness and overflow and related fixes.
6099 This is not an exhaustive set of fixes, but it's time to
6100 record what I've got.
6101 (lookup_pixel_color, check_image_size): Remove redundant decls.
6102 (check_image_size): Don't assume that arbitrary EMACS_INT values
6103 fit in 'int', or that arbitrary 'double' values fit in 'int'.
6104 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
6105 (tiff_load, imagemagick_load_image):
6106 Check for overflow in size calculations.
6107 (x_create_x_image_and_pixmap): Remove unnecessary test for
6108 xmalloc returning NULL; that can't happen.
6109 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
6110 (xpm_color_bucket): Use better integer hashing function.
6111 (xpm_cache_color): Don't possibly over-allocate memory.
6112 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
6113 (gif_memory_source):
6114 Use ptrdiff_t, not int or size_t, to record sizes.
6115 (png_load): Don't assume values greater than 2**31 fit in 'int'.
6116 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
6117 either works, as we prefer signed integers.
6118 (tiff_read_from_memory, tiff_write_from_memory):
6119 Return tsize_t, not size_t, since that's what the TIFF API wants.
6120 (tiff_read_from_memory): Don't fail simply because the read would
6121 go past EOF; instead, return a short read.
6122 (tiff_load): Omit no-longer-needed casts.
6123 (Fimagemagick_types): Don't assume size fits into 'int'.
6124
3cc5a532
PE
6125 Improve hashing quality when configured --with-wide-int.
6126 * fns.c (hash_string): New function, taken from sxhash_string.
6127 Do not discard information about ASCII character case; this
6128 discarding is no longer needed.
6129 (sxhash-string): Use it. Change sig to match it. Caller changed.
6130 * lisp.h: Declare it.
6131 * lread.c (hash_string): Remove, since we now use fns.c's version.
6132 The fns.c version returns a wider integer if --with-wide-int is
6133 specified, so this should help the quality of the hashing a bit.
6134
b312a492
PE
6135 * emacs.c: Integer overflow minor fix.
6136 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
6137 Define only if GNU_LINUX.
6138 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
6139
dfd153ae
PE
6140 * dispnew.c: Integer signedness and overflow fixes.
6141 Remove unnecessary forward decls, that were a maintenance hassle.
6142 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
6143 All uses changed.
6144 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
6145 (scrolling_window): Use ptrdiff_t, not int, for byte count.
6146 (prepare_desired_row, line_draw_cost):
6147 Use int, not unsigned, where either works.
6148 (save_current_matrix, restore_current_matrix):
6149 Use ptrdiff_t, not size_t, where either works.
6150 (init_display): Check for overflow more accurately, and without
6151 relying on undefined behavior.
6152
a81d11a3
PE
6153 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
6154 Remove, replacing with the new symbols in lisp.h. All uses changed.
6155 * fileio.c (make_temp_name):
6156 * filelock.c (lock_file_1, lock_file):
6157 * xdisp.c (message_dolog):
6158 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
6159 Use pMd etc. instead.
6160 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
6161 replacing the pWIDE etc. symbols removed from editfns.c.
6162
3300e6fd
PE
6163 * keyboard.h (num_input_events): Now uintmax_t.
6164 This is (very slightly) less likely to mess up due to wraparound.
6165 All uses changed.
6166
fd05c7e9
PE
6167 * buffer.c: Integer signedness fixes.
6168 (alloc_buffer_text, enlarge_buffer_text):
6169 Use ptrdiff_t rather than size_t when either will do, as we prefer
6170 signed integers.
6171
903fe15d
PE
6172 * alloc.c: Integer signedness and overflow fixes.
6173 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
6174 (__malloc_size_t): Default to size_t, not to int.
6175 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
6176 (Fgarbage_collect, mark_object_loop_halt, mark_object):
6177 Prefer ptrdiff_t to size_t when either would do, as we prefer
6178 signed integers.
6179 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
6180 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
6181 Now const. Initialize with values that are in range even if char
6182 is signed.
6183 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
6184 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
6185 These functions do the right thing with sizes > 2**32.
6186 (check_depth): Now ptrdiff_t, not int.
6187 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
6188 Adjust to new way of storing sizes. Check for size overflow bugs
6189 in rest of code.
6190 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
6191 slightly wrong anyway, as it missed one instance of
6192 XMALLOC_OVERRUN_CHECK_OVERHEAD.
6193 (refill_memory_reserve): Omit needless cast to size_t.
6194 (mark_object_loop_halt): Mark as externally visible.
6195
ac82cc6a
PE
6196 * xselect.c: Integer signedness and overflow fixes.
6197 (Fx_register_dnd_atom, x_handle_dnd_message):
6198 Use ptrdiff_t, not size_t, since we prefer signed.
6199 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
6200 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
6201 x_dnd_atoms_size and x_dnd_atoms_length.
6202
c2d1e36d
PE
6203 * doprnt.c: Prefer signed to unsigned when either works.
6204 * eval.c (verror):
6205 * doprnt.c (doprnt):
6206 * lisp.h (doprnt):
6207 * xdisp.c (vmessage):
6208 Use ptrdiff_t, not size_t, when using or implementing doprnt,
6209 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
6210 prefer signed arithmetic to avoid comparison confusion.
6211 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
6212 but is a bit tricky.
6213
0e926e56
PE
6214 Assume freestanding C89 headers, string.h, stdlib.h.
6215 * data.c, doprnt.c, floatfns.c, print.c:
6216 Include float.h unconditionally.
6217 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
6218 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
6219 * regex.c: Likewise for stddef.h, string.h.
6220 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
6221 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
6222 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
6223 (STDC_HEADERS): Remove obsolete defines.
6224 * sysdep.c: Include limits.h unconditionally.
6225
9cfdb3ec
PE
6226 Assume support for memcmp, memcpy, memmove, memset.
6227 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
6228 * regex.c (memcmp, memcpy):
6229 Remove; we assume C89 now.
6230
6231 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
6232 (__malloc_safe_bcopy): Remove; no longer needed.
6233
cf950e6b 6234 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
6089c567
PE
6235 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
6236 well either way, and we prefer signed to unsigned.
6237
dbf38e02
LMI
62382011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
6239
6240 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
6241 closes the connection while we're reading (bug#9182).
6242
d6f0886c 62432011-07-25 Jan Djärv <jan.h.d@swipnet.se>
24e0f6b1 6244
d6f0886c
JD
6245 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
6246 are specified (Bug#9168).
24e0f6b1 6247
2eb1f9e6
PE
62482011-07-25 Paul Eggert <eggert@cs.ucla.edu>
6249
6250 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
6251 Found by GCC static checking and --with-wide-int on a 32-bit host.
6252
22381272 62532011-07-25 Eli Zaretskii <eliz@gnu.org>
7daee910
EZ
6254
6255 * xdisp.c (compute_display_string_pos): Fix logic of caching
6256 previous display string position. Initialize cached_prev_pos to
6257 -1. Fixes slow-down at the beginning of a buffer.
6258
f25e39b4
EZ
62592011-07-24 Eli Zaretskii <eliz@gnu.org>
6260
6261 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
6262 for attrs[LFACE_FONTSET_INDEX].
6263
04c4b52e
PE
62642011-07-23 Paul Eggert <eggert@cs.ucla.edu>
6265
6266 * xml.c (parse_region): Remove unused local
6267 that was recently introduced.
6268
c1734fbd
EZ
62692011-07-23 Eli Zaretskii <eliz@gnu.org>
6270
be18c5a5
EZ
6271 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
6272 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
6273
c1734fbd
EZ
6274 * xdisp.c (move_it_in_display_line_to): Record the best matching
6275 position for TO_CHARPOS while scanning the line, and restore it on
640c8776
SM
6276 exit if none of the characters scanned was an exact match.
6277 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
a9269c18
EZ
6278 when exact match is impossible due to invisible text, and the
6279 lines are truncated.
6280
a258d627
JD
62812011-07-23 Jan Djärv <jan.h.d@swipnet.se>
6282
6283 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
6284 for OSX >= 10.7.
6285
b6d5a689
EZ
62862011-07-22 Eli Zaretskii <eliz@gnu.org>
6287
0f74f785
EZ
6288 Fix a significant slow-down of cursor motion with C-n, C-p,
6289 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
6290 auto-repeat under bidi redisplay in fontified buffers.
b6d5a689 6291 * xdisp.c (compute_stop_pos_backwards): New function.
b6d5a689
EZ
6292 (next_element_from_buffer): Call compute_stop_pos_backwards to
6293 find a suitable prev_stop when we find ourselves before
0f74f785
EZ
6294 base_level_stop.
6295 (reseat): Don't look for prev_stop, as that could mean a very long
6296 run.
6297 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
6298 <cached_disp_overlay_modiff>: Cache for last found display string
6299 position.
551918c1 6300 (compute_display_string_pos): Return the cached position if asked
0f74f785
EZ
6301 about the same buffer in the same area of character positions, and
6302 the buffer wasn't changed since the time the display string
6303 position was cached.
551918c1 6304
b2d0c91a
EZ
63052011-07-22 Eli Zaretskii <eliz@gnu.org>
6306
6307 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
6308 is an integer, which is important for empty lines. (Bug#9149)
6309
043604ee
CY
63102011-07-22 Chong Yidong <cyd@stupidchicken.com>
6311
6312 * frame.c (Fmodify_frame_parameters): In tty case, update the
6313 default face if necessary (Bug#4238).
6314
da4adb04
CY
63152011-07-21 Chong Yidong <cyd@stupidchicken.com>
6316
6317 * editfns.c (Fstring_to_char): No need to explain what a character
6318 is in the docstring (Bug#6576).
6319
9abd0532
LMI
63202011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
6321
6322 * xml.c (parse_region): Make sure we always return a tree.
6323
36881d16
HK
63242011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
6325
6326 * xml.c (parse_region): If a document contains only comments,
6327 return that, too.
6328
1e98674d
LMI
63292011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
6330
6331 * xml.c (make_dom): Return comments, too.
6332
590bd467
PE
63332011-07-19 Paul Eggert <eggert@cs.ucla.edu>
6334
6335 Port to OpenBSD.
6336 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
6337 and the surrounding thread.
6338 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
6339 rather than fgets, and retry after EINTR. Otherwise, 'emacs
6340 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
6341 timer goes off.
6342 * s/openbsd.h (BROKEN_SIGIO): Define.
6343 * unexelf.c (unexec) [__OpenBSD__]:
6344 Don't update the .mdebug section of the Alpha COFF symbol table.
6345
f41628b2
LMI
63462011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
6347
6348 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
6349 (bug#8460).
6350
b59b67c5
PE
63512011-07-18 Paul Eggert <eggert@cs.ucla.edu>
6352
15e3a074
PE
6353 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
6354 This fixes some race conditions on the permissions of any newly
6355 created file.
6356
41bed37d
PE
6357 * alloc.c (valid_pointer_p): Use pipe, not open.
6358 This fixes some permissions issues when debugging.
6359
b59b67c5
PE
6360 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
6361 If fchown fails to set both uid and gid, try to set just gid,
6362 as that is sometimes allowed. Adjust the file's mode to eliminate
6363 setuid or setgid bits that are inappropriate if fchown fails.
6364
925a6be7
SM
63652011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
6366
6367 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
6368 to compare Lisp_Objects.
6369 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
6370 global_gnutls_log_level, don't mistake it for a Lisp_Object.
6371 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
6372
52968808
AS
63732011-07-17 Andreas Schwab <schwab@linux-m68k.org>
6374
0a6a104b
AS
6375 * lread.c (read_integer): Unread even EOF character.
6376 (read1): Likewise. Properly record start position of symbol.
6377
52968808
AS
6378 * lread.c (read1): Read `#:' as empty uninterned symbol if no
6379 symbol character follows.
6380
9e381cdd
PE
63812011-07-17 Paul Eggert <eggert@cs.ucla.edu>
6382
6383 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
6384 This works around a problem with the previous change to Fcopy_file.
6385 Recent glibc declares fchown with __attribute__((warn_unused_result)),
6386 and without this change, GCC might complain about discarding
6387 fchown's return value.
6388
b5641435
JB
63892011-07-16 Juanma Barranquero <lekktu@gmail.com>
6390
6391 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
6392
a8031457
PE
63932011-07-16 Paul Eggert <eggert@cs.ucla.edu>
6394
6395 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
6396
dd889327
LMI
63972011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
6398
750c33f7
LMI
6399 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
6400 it's used from the C level.
6401
dd889327
LMI
6402 * process.c: Use the same condition for POLL_FOR_INPUT in both
6403 keyboard.c and process.c (bug#1858).
6404
87e86684
LM
64052011-07-09 Lawrence Mitchell <wence@gmx.li>
6406
6407 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
6408 (Fgnutls_boot): Use it.
6409
64348f40
AS
64102011-07-15 Andreas Schwab <schwab@linux-m68k.org>
6411
6412 * doc.c (Fsubstitute_command_keys): Revert last change.
6413
1d698799
LMI
64142011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
6415
f863868c
LMI
6416 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
6417 quotes the next character, and doesn't affect other longer
6418 sequences (bug#8935).
6419
1d698799
LMI
6420 * lread.c (syms_of_lread): Clarify that is isn't only
6421 `eval-buffer' and `eval-defun' that's affected by
6422 `lexical-binding' (bug#8460).
6423
aa4b6df6
EZ
64242011-07-15 Eli Zaretskii <eliz@gnu.org>
6425
6426 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
6b02f655 6427 bidi redisplay when a line includes both an image and is truncated.
aa4b6df6 6428
5d856da6
PE
64292011-07-14 Paul Eggert <eggert@cs.ucla.edu>
6430
ad6042bb
PE
6431 Fix minor problems found by static checking.
6432 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
6433 (elsz): Now a signed constant, not a size_t var. We prefer signed
6434 types to unsigned, to avoid integer comparison confusion. Without
6435 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
6436 "cannot optimize loop, the loop counter may overflow", a symptom
6437 of the confusion.
f00bbb22 6438 * indent.c (Fvertical_motion): Mark locals as initialized.
5d856da6
PE
6439 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
6440
6468f31c
LMI
64412011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
6442
49080b10
LMI
6443 * search.c (Fre_search_backward): Mention `case-fold-search' in
6444 all the re_search_* functions (bug#8138).
6445
6468f31c
LMI
6446 * keyboard.c (Fopen_dribble_file): Document when the file is
6447 closed (bug#8056).
6448
c965adc5
EZ
64492011-07-14 Eli Zaretskii <eliz@gnu.org>
6450
df9733bf
EZ
6451 * bidi.c (bidi_dump_cached_states): Fix format of displaying
6452 bidi_cache_idx.
6453
0bb23927
EZ
6454 Support bidi reordering of display and overlay strings.
6455 * xdisp.c (compute_display_string_pos)
6456 (compute_display_string_end): Accept additional argument STRING.
6457 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
6458 (reseat_to_string): Initialize bidi_it->string.s and
6459 bidi_it->string.schars.
6460 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
640c8776
SM
6461 NULL (avoids a crash in bidi_paragraph_init).
6462 Initialize itb.string.lstring.
0bb23927
EZ
6463 (init_iterator): Call bidi_init_it only of a valid
6464 buffer position was specified. Initialize paragraph_embedding to
6465 L2R.
6466 (reseat_to_string): Initialize the bidi iterator.
6467 (display_string): If we need to ignore text properties of
6468 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
6469 original value of -1 will not work with bidi.)
6470 (compute_display_string_pos): First arg is now struct
6471 `text_pos *'; all callers changed. Support display properties on
6472 Lisp strings.
6473 (compute_display_string_end): Support display properties on Lisp
6474 strings.
6475 (init_iterator, reseat_1, reseat_to_string): Initialize the
6476 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
6477 when iterating on a string not from display properties).
640c8776
SM
6478 (compute_display_string_pos, compute_display_string_end):
6479 Fix calculation of the object to scan. Fixes an error when using
0bb23927
EZ
6480 arrow keys.
6481 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
640c8776
SM
6482 base_level_stop; instead, set base_level_stop to BEGV.
6483 Fixes crashes in vertical-motion.
0bb23927
EZ
6484 (next_element_from_buffer): Improve commentary for when
6485 the iterator is before prev_stop.
6486 (init_iterator): Initialize bidi_p from the default value of
6487 bidi-display-reordering, not from buffer-local value. Use the
6488 buffer-local value only if initializing for buffer iteration.
6489 (handle_invisible_prop): Support invisible properties on strings
6490 that are being bidi-reordered.
6491 (set_iterator_to_next): Support bidi reordering of C strings and
6492 Lisp strings.
6493 (next_element_from_string): Support bidi reordering of Lisp
6494 strings.
6495 (handle_stop_backwards): Support Lisp strings as well.
640c8776
SM
6496 (display_string): Support display of R2L glyph rows.
6497 Use IT_STRING_CHARPOS when displaying from a Lisp string.
0bb23927
EZ
6498 (init_iterator): Don't initialize it->bidi_p for strings
6499 here.
6500 (reseat_to_string): Initialize it->bidi_p for strings here.
6501 (next_element_from_string, next_element_from_c_string)
6502 (next_element_from_buffer): Add xassert's for correspondence
6503 between IT's object being iterated and it->bidi_it.string
6504 structure.
6505 (face_before_or_after_it_pos): Support bidi iteration.
6506 (next_element_from_c_string): Handle the case of the first string
6507 character that is not the first one in the visual order.
6508 (get_visually_first_element): New function, refactored from common
6509 parts of next_element_from_buffer, next_element_from_string, and
6510 next_element_from_c_string.
6511 (tool_bar_lines_needed, redisplay_tool_bar)
6512 (display_menu_bar): Force left-to-right direction. Add a FIXME
6513 comment for making that be controlled by a user option.
6514 (push_it, pop_it): Save and restore the state of the
6515 bidi iterator. Save and restore the bidi_p flag.
6516 (pop_it): Iterate out of display property for string iteration as
6517 well.
6518 (iterate_out_of_display_property): Support iteration over strings.
6519 (handle_single_display_spec): Set up it->bidi_it for iteration
6520 over a display string, and call bidi_init_it.
6521 (handle_single_display_spec, next_overlay_string)
6522 (get_overlay_strings_1, push_display_prop): Set up the bidi
6523 iterator for displaying display or overlay strings.
6524 (forward_to_next_line_start): Don't use the shortcut if
6525 bidi-iterating.
6526 (back_to_previous_visible_line_start): If handle_display_prop
6527 pushed the iterator stack, restore the internal state of the bidi
6528 iterator by calling bidi_pop_it same number of times.
6529 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
6530 and we are bidi-iterating, don't decrement the iterator position;
6531 instead, set the first_elt flag in the bidi iterator, to produce
6532 the same effect.
6533 (reseat_1): Remove redundant setting of string_from_display_prop_p.
6534 (push_display_prop): xassert that we are iterating a buffer.
6535 (push_it, pop_it): Save and restore paragraph_embedding member.
6536 (handle_single_display_spec, next_overlay_string)
6537 (get_overlay_strings_1, reseat_1, reseat_to_string)
6538 (push_display_prop): Set up the `unibyte' member of bidi_it.string
6539 correctly. Don't assume unibyte strings are not bidi-reordered.
6540 (compute_display_string_pos)
6541 (compute_display_string_end): Fix handling the case of C string.
6542 (push_it, pop_it): Save and restore from_disp_prop_p.
6543 (handle_single_display_spec, push_display_prop): Set the
6544 from_disp_prop_p flag.
6545 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
6546 (pop_it): Call iterate_out_of_display_property only if we are
6547 popping after iteration over a string that came from a display
6548 property. Fix a typo in popping stretch info. Add an assertion
6549 for verifying that the iterator position is in sync with the bidi
6550 iterator.
6551 (handle_single_display_spec, get_overlay_strings_1)
6552 (push_display_prop): Fix initialization of paragraph direction for
6553 string when that of the parent object is not yet determined.
6554 (reseat_1): Call bidi_init_it to resync the bidi
6555 iterator with IT's position. (Bug#7616)
6556 (find_row_edges): If ROW->start.pos gives position
6557 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
6558 (handle_stop, back_to_previous_visible_line_start, reseat_1):
6559 Reset the from_disp_prop_p flag.
6560 (SAVE_IT, RESTORE_IT): New macros.
6561 (pos_visible_p, face_before_or_after_it_pos)
6562 (back_to_previous_visible_line_start)
6563 (move_it_in_display_line_to, move_it_in_display_line)
6564 (move_it_to, move_it_vertically_backward, move_it_by_lines)
6565 (try_scrolling, redisplay_window, display_line): Use them when
6566 saving a temporary copy of the iterator and restoring it back.
6567 (back_to_previous_visible_line_start, reseat_1)
6568 (init_iterator): Empty the bidi cache "stack".
6569 (move_it_in_display_line_to): If iterator ended up at
6570 EOL, but we never saw any buffer positions smaller than
6571 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
6572 motion in bidi-reordered lines.
6573 (move_it_in_display_line_to): Record prev_method and prev_pos
6574 immediately before the call to set_iterator_to_next. Fixes cursor
6575 motion in bidi-reordered lines with stretch glyphs and strings
6576 displayed in margins. (Bug#8133) (Bug#8867)
6577 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
6578 TO_CHARPOS.
640c8776
SM
6579 (pos_visible_p): Support positions in bidi-reordered lines.
6580 Save and restore bidi cache.
0bb23927
EZ
6581
6582 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
6583 (bidi_paragraph_info): Delete unused struct.
6584 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
6585 (bidi_cache_start): New variable.
6586 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
6587 to zero.
6588 (bidi_cache_fetch_state, bidi_cache_search)
6589 (bidi_cache_find_level_change, bidi_cache_iterator_state)
6590 (bidi_cache_find, bidi_peek_at_next_level)
6591 (bidi_level_of_next_char, bidi_find_other_level_edge)
6592 (bidi_move_to_visually_next): Compare cache index with
6593 bidi_cache_start rather than with zero.
6594 (bidi_fetch_char): Accept new argument STRING; all callers
6595 changed. Support iteration over a string. Support strings with
6596 display properties. Support unibyte strings. Fix the type of
6597 `len' according to what STRING_CHAR_AND_LENGTH expects.
6598 (bidi_paragraph_init, bidi_resolve_explicit_1)
6599 (bidi_resolve_explicit, bidi_resolve_weak)
640c8776
SM
6600 (bidi_level_of_next_char, bidi_move_to_visually_next):
6601 Support iteration over a string.
0bb23927
EZ
6602 (bidi_set_sor_type, bidi_resolve_explicit_1)
6603 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
6604 can now be zero (for strings); special values 0 and -1 were
6605 changed to -1 and -2, respectively.
6606 (bidi_char_at_pos): New function.
6607 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
6608 Call it instead of FETCH_MULTIBYTE_CHAR.
6609 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
6610 initialized to valid values.
6611 (bidi_init_it): Don't initialize charpos and bytepos with invalid
6612 values.
6613 (bidi_level_of_next_char): Allow the sentinel "position" to pass
6614 the test for valid cached positions. Fix the logic for looking up
6615 the sentinel state in the cache. GCPRO the Lisp string we are
6616 iterating.
6617 (bidi_push_it, bidi_pop_it): New functions.
6618 (bidi_initialize): Initialize the bidi cache start stack pointer.
6619 (bidi_cache_ensure_space): New function, refactored from part of
6620 bidi_cache_iterator_state. Don't assume the required size is just
6621 one BIDI_CACHE_CHUNK away.
6622 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
6623 (bidi_count_bytes, bidi_char_at_pos): New functions.
6624 (bidi_cache_search): Don't assume bidi_cache_last_idx is
6625 always valid if bidi_cache_idx is valid.
6626 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
6627 is valid if it's going to be used.
6628 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
6629 (bidi_cache_fetch_state, bidi_cache_search)
c965adc5
EZ
6630 (bidi_cache_find_level_change, bidi_cache_ensure_space)
6631 (bidi_cache_iterator_state, bidi_cache_find)
640c8776
SM
6632 (bidi_find_other_level_edge, bidi_cache_start_stack):
6633 All variables related to cache indices are now EMACS_INT.
c965adc5 6634
0bb23927
EZ
6635 * dispextern.h (struct bidi_string_data): New structure.
6636 (struct bidi_it): New member `string'. Make flag members be 1-bit
6637 fields, and put them last in the struct.
640c8776
SM
6638 (compute_display_string_pos, compute_display_string_end):
6639 Update prototypes.
0bb23927
EZ
6640 (bidi_push_it, bidi_pop_it): Add prototypes.
6641 (struct iterator_stack_entry): New members bidi_p,
6642 paragraph_embedding, and from_disp_prop_p.
6643 (struct it): Member bidi_p is now a bit field 1 bit wide.
640c8776
SM
6644 (bidi_shelve_cache, bidi_unshelve_cache):
6645 Declare prototypes.
0bb23927
EZ
6646
6647 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
6648 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
6649 and vector-like objects.
6650
6651 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
6652 cache around display iteration.
6653
6654 * window.c (Fwindow_end, window_scroll_pixel_based)
6655 (displayed_window_lines, Frecenter): Save and restore the bidi
6656 cache around display iteration.
6657
3bbd2265
LMI
66582011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
6659
6660 * editfns.c (Fdelete_region): Clarify the use of the named
6661 parameters (bug#6788).
6662
adc47434
MR
66632011-07-14 Martin Rudalics <rudalics@gmx.at>
6664
6665 * indent.c (Fvertical_motion): Set and restore w->pointm when
6666 saving and restoring the window's buffer (Bug#9006).
6667
837c31f8
LMI
66682011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
6669
6670 * editfns.c (Fstring_to_char): Clarify just what is returned
6671 (bug#6576). Text by Eli Zaretskii.
6672
ac389d0c
JB
66732011-07-13 Juanma Barranquero <lekktu@gmail.com>
6674
6675 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
6676
0be0ce47
EZ
66772011-07-13 Eli Zaretskii <eliz@gnu.org>
6678
6679 * buffer.c (mmap_find): Fix a typo.
6680
cd18e7e3
JB
66812011-07-13 Johan Bockgård <bojohan@gnu.org>
6682
6683 Fix execution of x selection hooks.
6684 * xselect.c (Qx_lost_selection_functions)
6685 (Qx_sent_selection_functions): New vars.
6686 (syms_of_xselect): DEFSYM them.
6687 (x_handle_selection_request): Pass Qx_sent_selection_functions
6688 rather than Vx_sent_selection_functions to Frun_hook_with_args.
6689 (x_handle_selection_clear,x_clear_frame_selections):
6690 Pass Qx_lost_selection_functions rather than
6691 Vx_lost_selection_functions to Frun_hook_with_args.
6692
47ea7f44
PE
66932011-07-13 Paul Eggert <eggert@cs.ucla.edu>
6694
ac389d0c 6695 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
2941c447
PE
6696 The old code sometimes used this field without initializing it.
6697
47ea7f44
PE
6698 * alloc.c (gc_sweep): Don't read past end of array.
6699 In theory, the old code could also have corrupted Emacs internals,
6700 though it'd be very unlikely.
6701
bc985c87
AS
67022011-07-12 Andreas Schwab <schwab@linux-m68k.org>
6703
6704 * character.c (Fcharacterp): Don't advertise optional ignored
ac389d0c 6705 argument. (Bug#4026)
bc985c87 6706
0cf34688
LMI
67072011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
6708
b3dadd76
LMI
6709 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
6710 key" (bug#4257).
6711
0cf34688
LMI
6712 * window.c (Fset_window_start): Doc fix (bug#4199).
6713 (Fset_window_hscroll): Ditto.
6714
270768cd
PE
67152011-07-12 Paul Eggert <eggert@cs.ucla.edu>
6716
077e3dda 6717 Fix minor new problems caught by GCC 4.6.1.
270768cd 6718 * term.c (init_tty): Remove unused local.
490011a6 6719 * xsettings.c (store_monospaced_changed): Define this function only
077e3dda 6720 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
490011a6 6721 not used otherwise.
270768cd 6722
b1f58454
CY
67232011-07-12 Chong Yidong <cyd@stupidchicken.com>
6724
6725 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
6726
22b9578d
LMI
67272011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
6728
6e70ab07
LMI
6729 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
6730 are the mini-buffer and the echo area (bug#3320).
6731
22b9578d
LMI
6732 * term.c (init_tty): Remove support for supdup, c10 and perq
6733 terminals, which are no longer supported (bug#1482).
6734
8974cc9f
JB
67352011-07-10 Johan Bockgård <bojohan@gnu.org>
6736
6737 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
6738
a560d974
JD
67392011-07-10 Jan Djärv <jan.h.d@swipnet.se>
6740
6741 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
6742 for non-popups (Bug#3642).
6743
1dae0f0a
AS
67442011-07-10 Andreas Schwab <schwab@linux-m68k.org>
6745
268c2c36 6746 * alloc.c (reset_malloc_hooks): Protoize.
1dae0f0a 6747 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
268c2c36
AS
6748 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
6749 * cm.c (losecursor): Likewise.
1dae0f0a
AS
6750 * data.c (fmod): Likewise.
6751 * dispnew.c (swap_glyphs_in_rows): Likewise.
6752 * emacs.c (memory_warning_signal): Likewise.
6753 * floatfns.c (float_error): Likewise.
6754 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
6755 (otf_open, font_otf_capability, generate_otf_features)
6756 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
6757 Likewise.
6758 * image.c (pbm_read_file): Likewise.
6759 * indent.c (string_display_width): Likewise.
6760 * intervals.c (check_for_interval, search_for_interval)
6761 (inc_interval_count, count_intervals, root_interval)
6762 (adjust_intervals_for_insertion, make_new_interval): Likewise.
6763 * lread.c (defalias): Likewise.
268c2c36 6764 * ralloc.c (r_alloc_check): Likewise.
1dae0f0a
AS
6765 * regex.c (set_image_of_range_1, set_image_of_range)
6766 (regex_grow_registers): Likewise.
6767 * sysdep.c (strerror): Likewise.
6768 * termcap.c (valid_filename_p, tprint, main): Likewise.
6769 * tparam.c (main): Likewise.
6770 * unexhp9k800.c (run_time_remap, save_data_space)
6771 (update_file_ptrs, read_header, write_header, calculate_checksum)
6772 (copy_file, copy_rest, display_header): Likewise.
6773 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
6774 Likewise.
6775 * xdisp.c (check_it): Likewise.
6776 * xfaces.c (register_color, unregister_color, unregister_colors):
6777 Likewise.
6778 * xfns.c (print_fontset_result): Likewise.
6779 * xrdb.c (member, fatal, main): Likewise.
6780
99033785
PE
67812011-07-10 Paul Eggert <eggert@cs.ucla.edu>
6782
6783 Fix minor problems found by static checking (Bug#9031).
6784 * chartab.c (char_table_set_range, map_sub_char_table):
6785 Remove unused locals.
6786 (uniprop_table): Now static.
6787 * composite.c (_work_char): Remove unused static var.
6788
9cb2ac56
JB
67892011-07-09 Juanma Barranquero <lekktu@gmail.com>
6790
6791 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
6792
f25661f0
JD
67932011-07-09 Jan Djärv <jan.h.d@swipnet.se>
6794
6795 * gtkutil.c (qttip_cb): Remove code without function.
6796
8278c4fe
EZ
67972011-07-09 Eli Zaretskii <eliz@gnu.org>
6798
6799 * w32.c (pthread_sigmask): New stub.
6800
1692ae2d 68012011-07-08 Paul Eggert <eggert@cs.ucla.edu>
123403e4 6802
8a6ebd58 6803 Use pthread_sigmask, not sigprocmask (Bug#9010).
123403e4
PE
6804 sigprocmask is portable only for single-threaded applications, and
6805 Emacs can be multi-threaded when it uses GTK.
1301ac26
PE
6806 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
6807 (LIBES): Use it.
6808 * callproc.c (Fcall_process):
6809 * process.c (create_process):
6810 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
6811 Use pthread_sigmask, not sigprocmask.
123403e4 6812
1b854618
JD
68132011-07-08 Jan Djärv <jan.h.d@swipnet.se>
6814
6815 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
6816 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
6817 wrong (Bug#8591).
6818
3fe4b549
JD
68192011-07-08 Jan Djärv <jan.h.d@swipnet.se>
6820
0ce7e563
JD
6821 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
6822 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
6823 (xg_hide_tooltip): Fix comment.
6824
3fe4b549
JD
6825 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
6826 in registerServicesMenuSendTypes.
6827 (validRequestorForSendType): Don't check ns_return_types.
6828
6829 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
6830 ns_return_type.
6831
5df75e47
JR
68322011-07-08 Jason Rumney <jasonr@gnu.org>
6833
22610910
JR
6834 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
6835 SH_SHOW for hidden windows (Bug#5482).
6836
5df75e47
JR
6837 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
6838 frame struct members of non-existent frames (Bug#6284).
6839
699c10bd
JD
68402011-07-08 Jan Djärv <jan.h.d@swipnet.se>
6841
4393663b
JD
6842 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
6843 variable firstTime not needed on OSX >= 10.6.
6844 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
6845 >= 10.5. Use setKnobProportion, setDoubleValue.
6846
6847 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
6848 (MAC_OS_X_VERSION_10_5): Define if not defined.
6849 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
6850 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
6851 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
6852
6853 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
6854 cString and lossyCString on OSX >= 10.4
6855
58179cce 6856 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
4393663b
JD
6857 sizeToFit on OSX >= 10.2.
6858
6859 * nsimage.m (allocInitFromFile): Don't use deprecated method
6860 bestRepresentationForDevice on OSX >= 10.6.
6861
6862 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
6863 to avoid warning.
6864
6865 * emacs.c: Declare unexec_init_emacs_zone.
6866
a63e0781
JD
6867 * nsgui.h: Fix compiler warning about gnulib redefining verify.
6868
699c10bd
JD
6869 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
6870
6871 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
6872 on svcsMenu (Bug#8842).
6873
6874 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
6875 ns_return_types.
6876 (Fns_list_services): Just return Qnil on 10.6, code not working there.
6877
6878 * nsterm.m (QUTF8_STRING): Declare.
6879 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
6880 (validRequestorForSendType): Return type is (id).
6881 Change indexOfObjectIdenticalTo to indexOfObject.
6882 Check if we have local selection before returning self (Bug#8842).
6883 (writeSelectionToPasteboard): Put local selection into paste board
6884 if we have a local selection (Bug#8842).
6885 (syms_of_nsterm): DEFSYM QUTF8_STRING.
6886
6887 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
6888 (ns_get_local_selection): Declare.
6889
54e10184
LMI
68902011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
6891
9888ff71
LMI
6892 * keymap.c (describe_map_tree): Don't insert a double newline at
6893 the end of the buffer (bug#1169) and return whether we inserted
6894 something.
6895
54e10184
LMI
6896 * callint.c (Fcall_interactively): Change "reading args" to
6897 "providing args" to try to clarify what it does (bug#1010).
6898
15fa4783
KH
68992011-07-07 Kenichi Handa <handa@m17n.org>
6900
6901 * composite.c (composition_compute_stop_pos): Ignore a static
6902 composition starting before CHARPOS (Bug#8915).
6903
6904 * xdisp.c (handle_composition_prop): Likewise.
6905
a8815b00
EZ
69062011-07-07 Eli Zaretskii <eliz@gnu.org>
6907
6908 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
6909 (Bug#9015)
6910
ef7b981d 69112011-07-07 Kenichi Handa <handa@m17n.org>
c805dec0
KH
6912
6913 * character.h (unicode_category_t): New enum type.
6914
6915 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
6916 (Qchar_code_property_table): New variable.
6917 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
6918 (UNIPROP_COMPRESSED_FORM_P): New macros.
6919 (char_table_ascii): Uncompress the compressed values.
6920 (sub_char_table_ref): New arg is_uniprop. Callers changed.
6921 Uncompress the compressed values.
ac389d0c 6922 (sub_char_table_ref_and_range): Likewise.
c805dec0
KH
6923 (char_table_ref_and_range): Uncompress the compressed values.
6924 (sub_char_table_set): New arg is_uniprop. Callers changed.
6925 Uncompress the compressed values.
6926 (sub_char_table_set_range): Args changed. Callers changed.
6927 (char_table_set_range): Adjuted for the above change.
6928 (map_sub_char_table): Delete args default_val and parent. Add arg
6929 top. Give decoded values to a Lisp function.
640c8776 6930 (map_char_table): Adjust for the above change. Give decoded
c805dec0
KH
6931 values to a Lisp function. Gcpro more variables.
6932 (uniprop_table_uncompress)
6933 (uniprop_decode_value_run_length): New functions.
6934 (uniprop_decoder, uniprop_decoder_count): New variables.
6935 (uniprop_get_decoder, uniprop_encode_value_character)
6936 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
6937 New functions.
6938 (uniprop_encoder, uniprop_encoder_count): New variables.
6939 (uniprop_get_encoder, uniprop_table)
6940 (Funicode_property_table_internal, Fget_unicode_property_internal)
6941 (Fput_unicode_property_internal): New functions.
6942 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
6943 Sunicode_property_table_internal, Sget_unicode_property_internal,
5e617bc2 6944 and Sput_unicode_property_internal. Defvar_lisp
c805dec0
KH
6945 char-code-property-alist.
6946
640c8776 6947 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
c805dec0
KH
6948 Vunicode_category_table.
6949
640c8776 6950 * font.c (font_range): Adjust for the change of
c805dec0
KH
6951 Vunicode_category_table.
6952
76b397fb
DN
69532011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
6954
6955 * m/iris4d.h: Remove file, move contents ...
6956 * s/irix6-5.h: ... here.
6957
22b4128e
PE
69582011-07-06 Paul Eggert <eggert@cs.ucla.edu>
6959
6960 Remove unportable assumption about struct layout (Bug#8884).
8a5c77bb
PE
6961 * alloc.c (mark_buffer):
6962 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
6963 (clone_per_buffer_values): Don't assume that
22b4128e
PE
6964 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
6965 This isn't true in general, and it's particularly not true
6966 if Emacs is configured with --with-wide-int.
6967 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
6968 New macros, used in the buffer.c change.
6969
869795d6
JD
69702011-07-05 Jan Djärv <jan.h.d@swipnet.se>
6971
6972 * xsettings.c: Use both GConf and GSettings if both are available.
6973 (store_config_changed_event): Add comment.
6974 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
6975 (store_tool_bar_style_changed): New functions.
5e617bc2 6976 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
869795d6
JD
6977 (struct xsettings): Move font inside HAVE_XFT.
6978 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
640c8776 6979 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
869795d6 6980 Move inside HAVE_XFT.
640c8776 6981 (something_changed_gsettingsCB): Rename from something_changedCB.
869795d6
JD
6982 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
6983 also.
6984 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
5e617bc2 6985 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
640c8776 6986 (something_changed_gconfCB): Rename from something_changedCB.
869795d6
JD
6987 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
6988 (parse_settings): Move check for font inside HAVE_XFT.
6989 (read_settings, apply_xft_settings): Add comment.
6990 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
6991 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
6992 call store_font_name_changed.
6993 (xft_settings_event): Add comment.
6994 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
6995 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
6996 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
6997 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
6998 (xsettings_initialize): Call init_gsettings last.
640c8776
SM
6999 (xsettings_get_system_font, xsettings_get_system_normal_font):
7000 Add comment.
869795d6 7001
d8ed26bd
PE
70022011-07-05 Paul Eggert <eggert@cs.ucla.edu>
7003
7004 Random fixes. E.g., (random) never returned negative values.
7005 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
7006 subseconds part to the entropy, as that's a bit more random.
7007 Prefer signed to unsigned, since the signedness doesn't matter and
7008 in general we prefer signed. When given a limit, use a
7009 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
7010 latter isn't right if USE_2_TAGS_FOR_INTS.
7011 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
7012 not 0..VALMASK. Don't discard "excess" bits that random () returns.
7013
cabf1cac
SM
70142011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
7015
7016 * textprop.c (text_property_stickiness):
7017 Obey Vtext_property_default_nonsticky.
7018 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
7019 * w32fns.c (syms_of_w32fns):
7020 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
7021
6e9b2be9
PE
70222011-07-04 Paul Eggert <eggert@cs.ucla.edu>
7023
7024 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
7025 This is more efficient than Ffile_directory_p and avoids a minor race.
7026
90186c68
LMI
70272011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
7028
7c301272
LMI
7029 * buffer.c (Foverlay_put): Say what the return value is
7030 (bug#7835).
7031
c4f2d8d4
LMI
7032 * fileio.c (barf_or_query_if_file_exists): Check first if the file
7033 is a directory before asking whether to use the file name
7034 (bug#7564).
ad637907
LMI
7035 (barf_or_query_if_file_exists): Make the "File is a directory"
7036 error be more correct.
c4f2d8d4 7037
90186c68
LMI
7038 * fns.c (Frequire): Remove the mention of the .gz files, since
7039 that's installation-specific, but keep the mention of
7040 `get-load-suffixes'.
7041
da64016e
PE
70422011-07-04 Paul Eggert <eggert@cs.ucla.edu>
7043
7044 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
7045 Report string overflow if the output is too long.
7046
7d47b580
JB
70472011-07-04 Juanma Barranquero <lekktu@gmail.com>
7048
a555cb87
JB
7049 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
7050 (syms_of_gnutls): Remove duplicate DEFSYM for
7051 Qgnutls_bootprop_verify_hostname_error, an error for
7052 Qgnutls_bootprop_verify_error (which is no longer used).
7053
7d47b580
JB
7054 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
7055 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
7056 Also (re)move comments that are misplaced or no longer relevant.
7057
1e49bfab
LMI
70582011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
7059
7060 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
7061
1485f4c0
CY
70622011-07-03 Chong Yidong <cyd@stupidchicken.com>
7063
7064 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
7065 and background color parameters if they have been changed.
7066
a9ab721e
LMI
70672011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
7068
7069 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
7070
cf7cff57
PE
70712011-07-03 Paul Eggert <eggert@cs.ucla.edu>
7072
2e13213d
PE
7073 * xsettings.c (SYSTEM_FONT): Define only when used.
7074 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
7075
cf7cff57
PE
7076 * keymap.c (access_keymap_1): Now static.
7077
7a8e04f7
CY
70782011-07-02 Chong Yidong <cyd@stupidchicken.com>
7079
7080 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
7081 leave any prefix arg for the up event (Bug#1586).
7082
61352f62
LMI
70832011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
7084
69bb1ef7
LMI
7085 * lread.c (syms_of_lread): Mention single symbols defined by
7086 `defvar' or `defconst' (bug#7154).
7087
61352f62 7088 * fns.c (Frequire): Mention .el.gz files (bug#7314).
7b3747f9 7089 (Frequire): Mention get-load-suffixes.
61352f62 7090
28545e04
MR
70912011-07-02 Martin Rudalics <rudalics@gmx.at>
7092
7093 * window.h (window): Remove clone_number slot.
7094 * window.c (Fwindow_clone_number, Fset_window_clone_number):
7095 Remove.
7096 (make_parent_window, make_window, saved_window)
7097 (Fset_window_configuration, save_window_save): Don't deal with
7098 clone numbers.
7099 * buffer.c (Qclone_number): Remove declaration.
7100 (sort_overlays, overlay_strings): Don't deal with clone numbers.
7101
3349e122
SM
71022011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
7103
7104 Add multiple inheritance to keymaps.
7105 * keymap.c (Fmake_composed_keymap): New function.
7106 (Fset_keymap_parent): Simplify.
7107 (fix_submap_inheritance): Remove.
7108 (access_keymap_1): New function extracted from access_keymap to handle
7109 embedded parents and handle lists of maps.
7110 (access_keymap): Use it.
7111 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
7112 (Fcopy_keymap): Handle embedded parents.
7113 (Fcommand_remapping, define_as_prefix): Simplify.
7114 (Fkey_binding): Simplify.
7115 (syms_of_keymap): Move minibuffer-local-completion-map,
7116 minibuffer-local-filename-completion-map,
7117 minibuffer-local-must-match-map, and
7118 minibuffer-local-filename-must-match-map to Elisp.
7119 (syms_of_keymap): Defsubr make-composed-keymap.
7120 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
7121 (parse_menu_item): Trivial simplification.
7122
3279eb87
GM
71232011-07-01 Glenn Morris <rgm@gnu.org>
7124
7125 * Makefile.in (SETTINGS_LIBS): Fix typo.
7126
4550efdf
KI
71272011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny patch)
7128
7129 * coding.c (Fencode_coding_string): Record the last coding system
7130 used, as the function doc string says (bug#8738).
7131
0949d2b6
JD
71322011-07-01 Jan Djärv <jan.h.d@swipnet.se>
7133
7134 * xsettings.c (store_monospaced_changed): Take new font as arg and
7135 check for change against current_mono_font.
7136 (EMACS_TYPE_SETTINGS): Remove this and related defines.
7137 (emacs_settings_constructor, emacs_settings_get_property)
7138 (emacs_settings_set_property, emacs_settings_class_init)
7139 (emacs_settings_init, gsettings_obj): Remove.
7140 (something_changedCB): New function for HAVE_GSETTINGS.
7141 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
7142 with value as argument.
7143 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
7144 g_settings_new (Bug#8967). Do not create gsettings_obj.
9173deec 7145 Remove calls to g_settings_bind. Connect something_changedCB to
0949d2b6
JD
7146 "changed".
7147
7148 * xgselect.c: Add defined (HAVE_GSETTINGS).
7149 (xgselect_initialize): Ditto.
7150
7151 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
7152 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
7153 xg_select.
7154
bbc6b304
PE
71552011-07-01 Paul Eggert <eggert@cs.ucla.edu>
7156
7157 * eval.c (struct backtrace): Simplify and port the data structure.
7158 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
7159 signed bit field, as this assumption is not portable and it makes
7160 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
7161 "char debug_on_exit : 1" as this is not portable either; instead,
7162 use the portable "unsigned int debug_on_exit : 1". Remove unused
7163 member evalargs. Remove obsolete comments about cc bombing out.
7164
9851bfc5
JD
71652011-06-30 Jan Djärv <jan.h.d@swipnet.se>
7166
51bb811f 7167 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
9851bfc5
JD
7168 Let HAVE_GSETTINGS override HAVE_GCONF.
7169 (store_monospaced_changed): New function.
7170 (EMACS_SETTINGS): A new type derived from GObject to handle
7171 GSettings notifications.
7172 (emacs_settings_constructor, emacs_settings_get_property)
7173 (emacs_settings_set_property, emacs_settings_class_init):
7174 New functions.
7175 (gsettings_client, gsettings_obj): New variables.
7176 (GSETTINGS_SCHEMA): New define.
7177 (something_changedCB): Call store_monospaced_changed.
7178 (init_gsettings): New function.
7179 (xsettings_initialize): Call init_gsettings.
7180 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
7181 to NULL.
7182
640c8776 7183 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
9851bfc5
JD
7184 GCONF_CFLAGS/LIBS.
7185
5386012d
MR
71862011-06-29 Martin Rudalics <rudalics@gmx.at>
7187
7188 * window.c (resize_root_window, grow_mini_window)
7189 (shrink_mini_window): Rename Qresize_root_window to
7190 Qwindow_resize_root_window and Qresize_root_window_vertically to
7191 Qwindow_resize_root_window_vertically.
7192
f13e0b08
PE
71932011-06-28 Paul Eggert <eggert@cs.ucla.edu>
7194
7195 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
7196
94515237
JB
71972011-06-27 Juanma Barranquero <lekktu@gmail.com>
7198
7199 * makefile.w32-in: Redesign dependencies so they reflect more
7200 clearly which files are directly included by each source file,
7201 and not through other includes.
7202
e43b6e43
MR
72032011-06-27 Martin Rudalics <rudalics@gmx.at>
7204
7205 * buffer.c (Qclone_number): Declare static and DEFSYM it.
7206 (sort_overlays, overlay_strings): When an overlay's clone number
7207 matches the window's clone number process the overlay even if
7208 the overlay's window property doesn't match the current window.
7209
d68443dc
MR
7210 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
7211 (Fwindow_hchild): Rename to Fwindow_left_child.
7212 (Fwindow_next): Rename to Fwindow_next_sibling.
7213 (Fwindow_prev): Rename to Fwindow_prev_sibling.
d615d6d2
MR
7214 (resize_window_check): Rename to window_resize_check.
7215 (resize_window_apply): Rename to window_resize_apply.
7216 (Fresize_window_apply): Rename to Fwindow_resize_apply.
7217 (Fdelete_other_windows_internal, resize_frame_windows)
7218 (Fsplit_window_internal, Fdelete_window_internal)
7219 (grow_mini_window, shrink_mini_window)
7220 (Fresize_mini_window_internal): Fix callers accordingly.
d68443dc 7221
c7e73be5
JD
72222011-06-26 Jan Djärv <jan.h.d@swipnet.se>
7223
7224 * emacsgtkfixed.h: State that this is only used with Gtk+3.
7225 (emacs_fixed_set_min_size): Remove.
7226 (emacs_fixed_new): Take frame as argument.
7227
7228 * emacsgtkfixed.c: State that this is only used with Gtk+3.
7229 (_EmacsFixedPrivate): Remove minwidth/height.
7230 Add struct frame *f.
7231 (emacs_fixed_init): Initialize priv->f.
7232 (get_parent_class, emacs_fixed_set_min_size): Remove.
7233 (emacs_fixed_new): Set priv->f to argument.
7234 (emacs_fixed_get_preferred_width)
7235 (emacs_fixed_get_preferred_height): Use min_width/height from
7236 frames size_hint to set minimum and natural (Bug#8919).
7237 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
7238 and use min_width/height from frames size_hint to set
7239 min_width/height (Bug#8919).
7240
7241 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
9173deec
JB
7242 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
7243 Fix indentation.
c7e73be5 7244
cf99dcf8
EZ
72452011-06-26 Eli Zaretskii <eliz@gnu.org>
7246
7247 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
7248 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
7249 called at ZV.
7250
029529ac
CY
72512011-06-26 Chong Yidong <cyd@stupidchicken.com>
7252
7253 * process.c (wait_reading_process_output): Bypass select if
7254 waiting for a cell while ignoring keyboard input, and input is
7255 pending. Suggested by Jan Djärv (Bug#8869).
7256
7a7ef429
PE
72572011-06-25 Paul Eggert <eggert@cs.ucla.edu>
7258
7259 Use gnulib's dup2 module instead of rolling our own.
7260 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
7261
11fdef7d 72622011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
989b42d2
YM
7263
7264 * dispnew.c (scrolling_window): Before scrolling, turn off a
7265 mouse-highlight in the window being scrolled.
7266
cd3520a4
JB
72672011-06-24 Juanma Barranquero <lekktu@gmail.com>
7268
7269 Move DEFSYM to lisp.h and use everywhere.
7270
7271 * character.h (DEFSYM): Move declaration...
7272 * lisp.h (DEFSYM): ...here.
7273
7274 * gnutls.c:
7275 * minibuf.c:
7276 * w32menu.c:
7277 * w32proc.c:
7278 * w32select.c: Don't include character.h.
7279
7280 * alloc.c (syms_of_alloc):
7281 * buffer.c (syms_of_buffer):
7282 * bytecode.c (syms_of_bytecode):
7283 * callint.c (syms_of_callint):
7284 * casefiddle.c (syms_of_casefiddle):
7285 * casetab.c (init_casetab_once):
7286 * category.c (init_category_once, syms_of_category):
7287 * ccl.c (syms_of_ccl):
7288 * cmds.c (syms_of_cmds):
7289 * composite.c (syms_of_composite):
7290 * dbusbind.c (syms_of_dbusbind):
7291 * dired.c (syms_of_dired):
7292 * dispnew.c (syms_of_display):
7293 * doc.c (syms_of_doc):
7294 * editfns.c (syms_of_editfns):
7295 * emacs.c (syms_of_emacs):
7296 * eval.c (syms_of_eval):
7297 * fileio.c (syms_of_fileio):
7298 * fns.c (syms_of_fns):
7299 * frame.c (syms_of_frame):
7300 * fringe.c (syms_of_fringe):
7301 * insdel.c (syms_of_insdel):
7302 * keymap.c (syms_of_keymap):
7303 * lread.c (init_obarray, syms_of_lread):
7304 * macros.c (syms_of_macros):
7305 * msdos.c (syms_of_msdos):
7306 * print.c (syms_of_print):
7307 * process.c (syms_of_process):
7308 * search.c (syms_of_search):
7309 * sound.c (syms_of_sound):
7310 * syntax.c (init_syntax_once, syms_of_syntax):
7311 * terminal.c (syms_of_terminal):
7312 * textprop.c (syms_of_textprop):
7313 * undo.c (syms_of_undo):
7314 * w32.c (globals_of_w32):
7315 * window.c (syms_of_window):
7316 * xdisp.c (syms_of_xdisp):
7317 * xfaces.c (syms_of_xfaces):
7318 * xfns.c (syms_of_xfns):
7319 * xmenu.c (syms_of_xmenu):
7320 * xsettings.c (syms_of_xsettings):
7321 * xterm.c (syms_of_xterm): Use DEFSYM.
7322
4228cf16
TZ
73232011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
7324
cd3520a4 7325 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
4228cf16 7326
7fcccf1e
PE
73272011-06-23 Paul Eggert <eggert@cs.ucla.edu>
7328
7efb4e0e
PE
7329 Integer and buffer overflow fixes (Bug#8873).
7330
ff5844ad
PE
7331 * print.c (printchar, strout): Check for string overflow.
7332 (PRINTPREPARE, printchar, strout):
7333 Don't set size unless allocation succeeds.
7334
90532f02
PE
7335 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
7336 for sizes. Check for string overflow more accurately.
7337 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
7338
6d84508d
PE
7339 * macros.c: Integer and buffer overflow fixes.
7340 * keyboard.h (struct keyboard.kbd_macro_bufsize):
7341 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
7342 Use ptrdiff_t, not int, for sizes.
7343 Don't increment bufsize until after realloc succeeds.
7344 Check for size-calculation overflow.
7345 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
7346
437b2cb4
PE
7347 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
7348
8b9ac8b4
PE
7349 * lread.c: Integer overflow fixes.
7350 (read_integer): Radix is now EMACS_INT, not int,
7351 to improve quality of diagnostics for out-of-range radices.
7352 Calculate buffer size correctly for out-of-range radices.
7353 (read1): Check for integer overflow in radices, and in
7354 read-circle numbers.
82cb60d3
PE
7355 (read_escape): Avoid int overflow.
7356 (Fload, openp, read_buffer_size, read1)
7357 (substitute_object_recurse, read_vector, read_list, map_obarray):
7358 Use ptrdiff_t, not int, for sizes.
7359 (read1): Use EMACS_INT, not int, for sizes.
20270765 7360 Check for size overflow.
8b9ac8b4 7361
7fcccf1e
PE
7362 * image.c (cache_image): Check for size arithmetic overflow.
7363
bfbbd7e7
PE
7364 * lread.c: Integer overflow issues.
7365 (saved_doc_string_size, saved_doc_string_length)
7366 (prev_saved_doc_string_size, prev_saved_doc_string_length):
7367 Now ptrdiff_t, not int.
7368 (read1): Don't assume doc string length fits in int. Check for
7369 out-of-range doc string lengths.
7370 (read_list): Don't assume file position fits in int.
39019e54 7371 (read_escape): Check for hex character overflow.
bfbbd7e7 7372
4e323265
LL
73732011-06-22 Leo Liu <sdl.web@gmail.com>
7374
7375 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
7376 Move to minibuffer.el.
7377
85fece3e
PE
73782011-06-22 Paul Eggert <eggert@cs.ucla.edu>
7379
20b84ce9 7380 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
85fece3e
PE
7381 The following patches are for when GLYPH_DEBUG && !XASSERT.
7382 * dispextern.h (trace_redisplay_p, dump_glyph_string):
7383 * dispnew.c (flush_stdout):
7384 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
7385 Mark as externally visible.
7386 * dispnew.c (check_window_matrix_pointers): Now static.
7387 * dispnew.c (window_to_frame_vpos):
7388 * xfns.c (unwind_create_frame):
7389 * xterm.c (x_check_font): Remove unused local.
7390 * scroll.c (CHECK_BOUNDS):
7391 * xfaces.c (cache_fache): Rename local to avoid shadowing.
7392 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
7393 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
7394 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
7395 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
7396 Now static.
7397 (debug_method_add): Use va_list and vsprintf rather than relying
7398 on undefined behavior with wrong number of arguments.
7399 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
7400 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
7401 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
7402 since we're not interested in debugging glyphs with old libraries.
7403 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
7404 GCC 4.6.0's static checking.
7405
0766b489
PE
74062011-06-22 Paul Eggert <eggert@cs.ucla.edu>
7407
31fd4b32
PE
7408 Integer overflow and signedness fixes (Bug#8873).
7409 A few related buffer overrun fixes, too.
7410
b79e8648
PE
7411 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
7412
0766b489
PE
7413 * dispextern.h (struct face.stipple):
7414 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
7415 (x_bitmap_mask, x_allocate_bitmap_record)
7416 (x_create_bitmap_from_data, x_create_bitmap_from_file)
7417 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
7418 (x_create_bitmap_from_xpm_data):
7419 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
7420 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
7421 (.bitmaps_last):
7422 * xfaces.c (load_pixmap):
7423 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
7424 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
7425 (.bitmaps_last, struct x_output.icon_bitmap):
7426 Use ptrdiff_t, not int, for bitmap indexes.
7427 (x_allocate_bitmap_record): Check for size overflow.
7428 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
7429
b081724f
PE
7430 Use ptrdiff_t, not int, for overlay counts.
7431 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
7432 * editfns.c (overlays_around, get_pos_property):
7433 * textprop.c (get_char_property_and_overlay):
7434 * xdisp.c (next_overlay_change, note_mouse_highlight):
7435 * xfaces.c (face_at_buffer_position):
21514da7
PE
7436 * buffer.c (OVERLAY_COUNT_MAX): New macro.
7437 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
7438 (Fnext_overlay_change, Fprevious_overlay_change)
7439 (mouse_face_overlay_overlaps, Foverlays_in):
b081724f 7440 Use ptrdiff_t, not int, for sizes.
21514da7 7441 (overlays_at, overlays_in): Check for size-calculation overflow.
b081724f 7442
3de73e5e
PE
7443 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
7444
2606c57b
PE
7445 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
7446 (x_session_initialize): Do not assume string length fits in int.
7447
aaafe47a
PE
7448 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
7449 This is unlikely, but can occur if DPI is outlandish.
7450
2674ddc8 7451 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
3a5077c5
PE
7452 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
7453
28154962
PE
7454 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
7455 * xrdb.c (magic_file_p, search_magic_path):
7456 Omit last arg SUFFIX; it was always 0. All callers changed.
7457 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
7458
7de51af5
PE
7459 * xfont.c (xfont_match): Avoid need for strlen.
7460
25ed6cc3
PE
7461 * xfns.c: Don't assume strlen fits in int.
7462 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
7463
4eab31dd
PE
7464 * xdisp.c (message_log_check_duplicate): Return intmax_t,
7465 not unsigned long, as we prefer signed integers. All callers changed.
7466 Detect integer overflow in repeat count.
7467 (message_dolog): Don't assume print length fits in 39 bytes.
df1f27af 7468 (display_mode_element): Don't assume strlen fits in int.
4eab31dd 7469
171e2a58
PE
7470 * termcap.c: Don't assume sizes fit in int and never overflow.
7471 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
7472 (gobble_line): Check for size-calculation overflow.
7473
ad39faca 7474 * minibuf.c (Fread_buffer):
6e5bb2dc 7475 * lread.c (intern, intern_c_string):
74ca2eb3
PE
7476 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
7477 Don't assume string length fits in int.
7478
52c61c22 7479 * keyboard.c (parse_tool_bar_item):
9bda3520
PE
7480 * gtkutil.c (style_changed_cb): Avoid need for strlen.
7481
b5b8c9e5
PE
7482 * font.c: Don't assume string length fits in int.
7483 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
7484 Use ptrdiff_t, not int.
ccd6111c
PE
7485 (font_intern_prop): Don't assume string length fits in int.
7486 Don't assume integer property fits in fixnum.
7487 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
b5b8c9e5 7488
882f0d81 7489 * filelock.c: Fix some buffer overrun and integer overflow issues.
51cab52b 7490 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
882f0d81
PE
7491 Reformulate so as not to need the command string.
7492 Invoke gzip -cd rather than gunzip, as it's more portable.
7493 (lock_info_type, lock_file_1, lock_file):
7494 Don't assume pid_t and time_t fit in unsigned long.
7495 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
7496 (current_lock_owner): Prefer signed type for sizes.
7497 Use memcpy, not strncpy, where memcpy is what is really wanted.
7498 Don't assume (via atoi) that time_t and pid_t fit in int.
7499 Check for time_t and/or pid_t out of range, e.g., via a network share.
7500 Don't alloca where an auto var works fine.
7501
93f4cf88
PE
7502 * fileio.c: Fix some integer overflow issues.
7503 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
7504 Don't assume string length fits in int.
7505 (directory_file_name): Don't assume string length fits in long.
7506 (make_temp_name): Don't assume pid fits in int, or that its print
7507 length is less than 20.
7508
f3e92b69
PE
7509 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
7510
1bfdaf10
PE
7511 * coding.c (make_subsidiaries): Don't assume string length fits in int.
7512
35016e9a
PE
7513 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
7514
3d1e65a1
PE
7515 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
7516 We prefer signed integers, even for size calculations.
7517
0b963a93
PE
7518 * emacs.c: Don't assume string length fits in 'int'.
7519 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
7520 (main): Don't invoke strlen when not needed.
7521
573f4b54
PE
7522 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
7523 (XD_DEBUG_MESSAGE): Don't waste a byte.
7524
989f33ba
PE
7525 * callproc.c (getenv_internal_1, getenv_internal)
7526 (Fgetenv_internal):
965d34eb
PE
7527 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
7528
e4d29b33
PE
7529 * lread.c (invalid_syntax): Omit length argument.
7530 All uses changed. This doesn't fix a bug, but it simplifies the
7531 code away from its former Hollerith-constant appearance, and it's
7532 one less 'int' to worry about when looking at integer-overflow issues.
51cab52b 7533 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
e4d29b33 7534
eb49b136
PE
7535 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
7536 This didn't break anything, but it didn't help either.
7537 It's confusing to put a bogus integer in a place where the actual
7538 value does not matter.
9f62aeb1 7539 (LIST_END_P): Remove unused macro and its bogus comment.
cbeff735 7540 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
eb49b136 7541
15375a22
PE
7542 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
7543 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
7544 implementation.
b61cc01c
PE
7545 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
7546 We prefer signed types, and the value cannot exceed the EMACS_INT
7547 range anyway (because otherwise the length would not be representable).
9a8e8d9b
PE
7548 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
7549 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
7550 This avoids a GCC warning when WIDE_EMACS_INT.
15375a22 7551
53b2623d
PE
7552 * indent.c (sane_tab_width): New function.
7553 (current_column, scan_for_column, Findent_to, position_indentation)
7554 (compute_motion): Use it. This is just for clarity.
8fcaf9cc 7555 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
53b2623d 7556
51cab52b 7557 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
45aebb64 7558
f2ed8a70
PE
7559 * lisp.h (lint_assume): New macro.
7560 * composite.c (composition_gstring_put_cache):
7561 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
7562
abe80cc6
PE
7563 * editfns.c, insdel.c:
7564 Omit unnecessary forward decls, to simplify future changes.
a9e860e1 7565
b02c740e
PE
7566 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
7567
ebc96716
PE
7568 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
7569
b4e50fa0 7570 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
f03dc6ef 7571 Use much-faster test for byte-length change.
311d5d7c 7572 Don't assume string byte-length fits in 'int'.
a4cf38e4 7573 Check that character arg fits in 'int'.
85461888 7574 (mapcar1): Declare byte as byte, for clarity.
b4e50fa0 7575
c0c1ee9f
PE
7576 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
7577
a498d7f4
PE
7578 * fns.c (concat): Catch string overflow earlier.
7579 Do not rely on integer wraparound.
7580
51cab52b
PE
7581 * dispextern.h (struct it.overlay_strings_charpos)
7582 (struct it.selective): Now EMACS_INT, not int.
87830974
PE
7583 * xdisp.c (forward_to_next_line_start)
7584 (back_to_previous_visible_line_start)
7585 (reseat_at_next_visible_line_start, next_element_from_buffer):
7586 Don't arbitrarily truncate the value of 'selective' to int.
7587
76031fad
PE
7588 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
7589
5eb55db9
PE
7590 * composite.c: Don't truncate sizes to 'int'.
7591 (composition_gstring_p, composition_reseat_it)
7592 (composition_adjust_point): Use EMACS_INT, not int.
7d100a81
PE
7593 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
7594 not EMACS_UINT, for indexes.
5eb55db9 7595
0703a717
PE
7596 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
7597
d6202519
PE
7598 * buffer.c: Include <verify.h>.
7599 (struct sortvec.priority, struct sortstr.priority):
8961a454 7600 Now EMACS_INT, not int.
c20998a7 7601 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
67c36fce
PE
7602 (struct sortstr.size, record_overlay_string)
7603 (struct sortstrlist.size, struct sortlist.used):
7604 Don't truncate size to int.
7605 (record_overlay_string): Check for size-calculation overflow.
d6202519 7606 (init_buffer_once): Check at compile-time, not run-time.
fadf4e30 7607
d5a19415
JM
76082011-06-22 Jim Meyering <meyering@redhat.com>
7609
029529ac 7610 Don't leak an XBM-image-sized buffer
d5a19415
JM
7611 * image.c (xbm_load): Free the image buffer after using it.
7612
a9041e6c
PE
76132011-06-21 Paul Eggert <eggert@cs.ucla.edu>
7614
7615 Port to Sun C.
7616 * composite.c (find_automatic_composition): Omit needless 'return 0;'
7617 that Sun C diagnosed.
7618 * fns.c (secure_hash): Fix pointer signedness issue.
7619 * intervals.c (static_offset_intervals): New function.
7620 (offset_intervals): Use it.
7621
7f3f739f
LL
76222011-06-21 Leo Liu <sdl.web@gmail.com>
7623
7624 * deps.mk (fns.o):
7625 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
7626 sha512.h.
7627
7628 * fns.c (secure_hash): Rename from crypto_hash_function and change
7629 the first arg to accept symbols.
5b66d427 7630 (Fsecure_hash): New primitive.
7f3f739f
LL
7631 (syms_of_fns): New symbols.
7632
76147d94
DD
76332011-06-20 Deniz Dogan <deniz@dogan.se>
7634
7635 * process.c (Fset_process_buffer): Clarify return value in
7636 docstring.
7637
7d7d0045
CY
76382011-06-18 Chong Yidong <cyd@stupidchicken.com>
7639
7640 * dispnew.c (add_window_display_history): Use BVAR.
7641
7642 * xdisp.c (debug_method_add): Use BVAR.
7643 (check_window_end, dump_glyph_matrix, dump_glyph)
7644 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
7645
7646 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
7647 Likewise.
7648
7649 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
7650 check till after the cache is created in init_frame_faces.
7651
ff2bc410
SM
76522011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
7653
7654 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
7655
28177add
PE
76562011-06-16 Paul Eggert <eggert@cs.ucla.edu>
7657
dd3482fe
PE
7658 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
7659 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
7660 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
7661
393d71f3 7662 Improve buffer-overflow checking (Bug#8873).
1c8e352f
PE
7663 * fileio.c (Finsert_file_contents):
7664 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
7665 Remove the old (too-loose) buffer overflow checks.
7666 They weren't needed, since make_gap checks for buffer overflow.
7667 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
7668 The old code merely checked for Emacs fixnum overflow, and relied
7669 on undefined (wraparound) behavior. The new code avoids undefined
7670 behavior, and also checks for ptrdiff_t and/or size_t overflow.
7671
2e6813b0 7672 * editfns.c (Finsert_char): Don't dump core with very negative counts.
21d890a4
PE
7673 Tune. Don't use wider integers than needed. Don't use alloca.
7674 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
2e6813b0 7675
599a9e4f
PE
7676 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
7677
99561444
PE
7678 * insdel.c, lisp.h (buffer_overflow): New function.
7679 (insert_from_buffer_1, replace_range, replace_range_2):
7680 * insdel.c (make_gap_larger):
7681 * editfns.c (Finsert_char):
7682 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
7683
28177add
PE
7684 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
7685
e69dafad
PE
76862011-06-15 Paul Eggert <eggert@cs.ucla.edu>
7687
4baa020d 7688 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
ff672d2c 7689
b1c46f02
PE
7690 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
7691 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
7692
e69dafad
PE
7693 * fileio.c: Don't assume EMACS_INT fits in off_t.
7694 (emacs_lseek): New static function.
7695 (Finsert_file_contents, Fwrite_region): Use it.
7696 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
7697
566684ea
PE
7698 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
7699
e6966cd6
PE
7700 * fns.c: Don't overflow int when computing a list length.
7701 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
7702 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
7703 truncation on 64-bit hosts. Check for QUIT every
7704 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
7705 faster and is responsive enough.
7706 (Flength): Report an error instead of overflowing an integer.
7707 (Fsafe_length): Return a float if the value is not representable
7708 as a fixnum. This shouldn't happen except in contrived situations.
6346d301 7709 (Fnthcdr, Fsort): Don't assume list length fits in int.
de41a810 7710 (Fcopy_sequence): Don't assume vector length fits in int.
00c604f2 7711
dd0b0efb
PE
7712 * alloc.c: Check that resized vectors' lengths fit in fixnums.
7713 (header_size, word_size): New constants.
7714 (allocate_vectorlike): Don't check size overflow here.
7715 (allocate_vector): Check it here instead, since this is the only
7716 caller of allocate_vectorlike that could cause overflow.
7717 Check that the new vector's length is representable as a fixnum.
7718
86fe5cfe
PE
7719 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
7720 The previous code was bogus. For example, next_almost_prime (32)
7721 returned 39, which is undesirable as it is a multiple of 3; and
7722 next_almost_prime (24) returned 25, which is a multiple of 5 so
7723 why was the code bothering to check for multiples of 7?
7724
80e88859
PE
7725 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
7726
4a2f0ad6
PE
7727 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
7728
f66c7cf8
PE
7729 Variadic C functions now count arguments with ptrdiff_t.
7730 This partly undoes my 2011-03-30 change, which replaced int with size_t.
7731 Back then I didn't know that the Emacs coding style prefers signed int.
7732 Also, in the meantime I found a few more instances where arguments
4a2f0ad6
PE
7733 were being counted with int, which may truncate counts on 64-bit
7734 machines, or EMACS_INT, which may be unnecessarily wide.
f66c7cf8
PE
7735 * lisp.h (struct Lisp_Subr.function.aMANY)
7736 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
7737 Arg counts are now ptrdiff_t, not size_t.
7738 All variadic functions and their callers changed accordingly.
7739 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
7740 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
7741 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
7742 * callint.c (Fcall_interactively): Check arg count for overflow,
7743 to avoid potential buffer overrun. Use signed char, not 'int',
7744 for 'varies' array, so that we needn't bother to check its size
7745 calculation for overflow.
7746 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
7747 * eval.c (apply_lambda):
7748 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
7749 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
7750 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
7751
a1759b76
PE
7752 * callint.c (Fcall_interactively): Don't use index var as event count.
7753
d96be9fc
PE
7754 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
7755 * mem-limits.h (SIZE): Remove; no longer used.
7756
a690a978 7757 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
5efd304b 7758
578c21e6
PE
7759 Remove unnecessary casts.
7760 * xterm.c (x_term_init):
7761 * xfns.c (x_set_border_pixel):
7762 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
7763 These aren't needed now that we assume ANSI C.
7764
96f53c6c
PE
7765 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
7766 It's more likely to cause problems (due to unsigned overflow)
7767 than to cure them.
7768
83c77d31
PE
7769 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
7770
ee2079f1
PE
7771 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
7772
6da65536
PE
7773 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
7774
7147c4a4
PE
7775 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
7776
193e32d9
PE
7777 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
7778
e5533da6
PE
7779 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
7780
9910e595
PE
7781 GLYPH_CODE_FACE returns EMACS_INT, not int.
7782 * dispextern.h (merge_faces):
7783 * xfaces.c (merge_faces):
01103c44
PE
7784 * xdisp.c (get_next_display_element, next_element_from_display_vector):
7785 Don't assume EMACS_INT fits in int.
9910e595 7786
2638320e
PE
7787 * character.h (CHAR_VALID_P): Remove unused parameter.
7788 * fontset.c, lisp.h, xdisp.c: All uses changed.
7789
045eb8d9
PE
7790 * editfns.c (Ftranslate_region_internal): Omit redundant test.
7791
c1f134b5
PE
7792 * fns.c (concat): Minor tuning based on overflow analysis.
7793 This doesn't fix any bugs. Use int to hold character, instead
7794 of constantly refetching from Emacs object. Use XFASTINT, not
7795 XINT, for value known to be a character. Don't bother comparing
7796 a single byte to 0400, as it's always less.
7797
395fcb93 7798 * floatfns.c (Fexpt):
327eeec8
PE
7799 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
7800
abbd3d23
PE
7801 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
7802 for characters.
7803
684a03ef
PE
7804 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
7805
0fed43f3
PE
7806 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
7807 Without this fix, on a 64-bit host (aset S 0 4294967386) would
7808 incorrectly succeed when S was a string, because 4294967386 was
7809 truncated before it was used.
7810
8fd02eb7
PE
7811 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
7812 Otherwise, an out-of-range integer could cause undefined behavior
7813 on a 64-bit host.
7814
f8c86b69
PE
7815 * composite.c: Use int, not EMACS_INT, for characters.
7816 (fill_gstring_body, composition_compute_stop_pos): Use int, not
7817 EMACS_INT, for values that are known to be in character range.
7818 This doesn't fix any bugs but is the usual style inside Emacs and
7819 may generate better code on 32-bit machines.
7820
34206dd2
PE
7821 Make sure a 64-bit char is never passed to ENCODE_CHAR.
7822 This is for reasons similar to the recent CHAR_STRING fix.
7823 * charset.c (Fencode_char): Check that character arg is actually
7824 a character. Pass an int to ENCODE_CHAR.
7825 * charset.h (ENCODE_CHAR): Verify that the character argument is no
7826 wider than 'int', as a compile-time check to prevent future regressions
7827 in this area.
7828
c5958d4c 7829 * character.c (char_string): Remove unnecessary casts.
13bdea59
PE
7830
7831 Make sure a 64-bit char is never passed to CHAR_STRING.
7832 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
7833 by silently ignoring the top 32 bits, allowing some values
7834 that were far too large to be valid characters.
7835 * character.h: Include <verify.h>.
7836 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
7837 arguments are no wider than unsigned, as a compile-time check
7838 to prevent future regressions in this area.
7839 * data.c (Faset):
01103c44 7840 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
13bdea59
PE
7841 (Fsubst_char_in_region):
7842 * fns.c (concat):
7843 * xdisp.c (decode_mode_spec_coding):
7844 Adjust to CHAR_STRING's new requirement.
7845 * editfns.c (Finsert_char, Fsubst_char_in_region):
7846 * fns.c (concat): Check that character args are actually
7847 characters. Without this test, these functions did the wrong
7848 thing with wildly out-of-range values on 64-bit hosts.
7849
d37ca623
PE
7850 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
7851 These casts should not be needed on 32-bit hosts, either.
7852 * keyboard.c (read_char):
7853 * lread.c (Fload): Remove casts to unsigned.
7854
ea204efb
PE
7855 * lisp.h (UNSIGNED_CMP): New macro.
7856 This fixes comparison bugs on 64-bit hosts.
7857 (ASCII_CHAR_P): Use it.
7858 * casefiddle.c (casify_object):
01103c44 7859 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
ea204efb
PE
7860 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
7861 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
7862 * dispextern.h (FACE_FROM_ID):
7863 * keyboard.c (read_char): Use UNSIGNED_CMP.
7864
41cb286c
PE
7865 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
7866 not to EMACS_INT, to avoid GCC warning.
7867
4a1b9832
PE
7868 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
7869
55daad71
PE
7870 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
7871 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
7872 isn't needed on 32-bit machines.
8f95c75c 7873
01103c44
PE
7874 * buffer.c (Fgenerate_new_buffer_name):
7875 Use EMACS_INT for count, not int.
0ceccced 7876 (advance_to_char_boundary): Return EMACS_INT, not int.
e762cafe
PE
7877
7878 * data.c (Qcompiled_function): Now static.
7879
c6f072e7
PE
7880 * window.c (window_body_lines): Now static.
7881
20ce5912
PE
7882 * image.c (gif_load): Rename local to avoid shadowing.
7883
9c4c5f81
PE
7884 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
7885 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
7886 * alloc.c (make_save_value): Integer argument is now of type
7887 ptrdiff_t, not int.
7888 (mark_object): Use ptrdiff_t, not int.
7889 * lisp.h (pD): New macro.
7890 * print.c (print_object): Use it.
7891
c0c5c8ae
PE
7892 * alloc.c: Use EMACS_INT, not int, to count objects.
7893 (total_conses, total_markers, total_symbols, total_vector_size)
7894 (total_free_conses, total_free_markers, total_free_symbols)
01103c44
PE
7895 (total_free_floats, total_floats, total_free_intervals)
7896 (total_intervals, total_strings, total_free_strings):
c0c5c8ae
PE
7897 Now EMACS_INT, not int. All uses changed.
7898 (Fgarbage_collect): Compute overall total using a double, so that
7899 integer overflow is less likely to be a problem. Check for overflow
7900 when converting back to an integer.
5a25e253
PE
7901 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
7902 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
7903 These were 'int' variables that could overflow on 64-bit hosts;
7904 they were never used, so remove them instead of repairing them.
211a0b2a 7905 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
6349ae4d
PE
7906 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
7907 Previously, this ceilinged at INT_MAX, but that doesn't work on
7908 64-bit machines.
e46bb31a 7909 (allocate_pseudovector): Don't use EMACS_INT when int would do.
c0c5c8ae 7910
c78baabf 7911 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
86f61a15 7912 (allocate_vectorlike): Check for ptrdiff_t overflow.
b6439961
PE
7913 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
7914 when a (possibly-narrower) signed value would do just as well.
7915 We prefer using signed arithmetic, to avoid comparison confusion.
c78baabf 7916
c9d624c6
PE
7917 * alloc.c: Catch some string size overflows that we were missing.
7918 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
7919 for convenience in STRING_BYTES_MAX.
7920 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
7921 The definition here is exact; the one in lisp.h was approximate.
7922 (allocate_string_data): Check for string overflow. This catches
7923 some instances we weren't catching before. Also, it catches
7924 size_t overflow on (unusual) hosts where SIZE_MAX <= min
7925 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
7926 and ptrdiff_t and EMACS_INT are both 64 bits.
c78baabf 7927
c9d624c6
PE
7928 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
7929 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
640c8776 7930 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
c9d624c6 7931
353032ce
PE
7932 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
7933
2bccce07
PE
7934 * alloc.c (Fmake_string): Check for out-of-range init.
7935
0ac30604
SM
79362011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
7937
7938 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
7939
c195f2de
JD
79402011-06-14 Jan Djärv <jan.h.d@swipnet.se>
7941
7942 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
7943 xg_get_default_scrollbar_width.
7944
7945 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
7946 (int_gtk_range_get_value): Move to the scroll bar part of the file.
7947 (style_changed_cb): Call update_theme_scrollbar_width and call
7948 x_set_scroll_bar_default_width and xg_frame_set_char_size for
7949 all frames (Bug#8505).
7950 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
7951 Call gtk_window_set_resizable if HAVE_GTK3.
7952 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
7953 and height if HAVE_GTK3 (Bug#8505).
7954 (scroll_bar_width_for_theme): New variable.
7955 (update_theme_scrollbar_width): New function.
7956 (xg_get_default_scrollbar_width): Move code to
7957 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
7958 (xg_initialize): Call update_theme_scrollbar_width.
7959
7960 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
7961
7962 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
7963
e10ac9f1
MR
79642011-06-12 Martin Rudalics <rudalics@gmx.at>
7965
7966 * frame.c (make_frame): Call other_buffer_safely instead of
7967 other_buffer.
7968
7969 * window.c (temp_output_buffer_show): Call display_buffer with
7970 second argument Vtemp_buffer_show_specifiers and reset latter
7971 immediately after the call.
7972 (Vtemp_buffer_show_specifiers): New variable.
7973 (auto_window_vscroll_p, next_screen_context_lines)
7974 (Vscroll_preserve_screen_position): Remove leading asterisks from
7975 doc-strings.
7976
2d3c217e 79772011-06-12 Paul Eggert <eggert@cs.ucla.edu>
4475bec4 7978
7b7f97e8 7979 Fix minor problems found by GCC 4.6.0 static checking.
4475bec4
PE
7980 * buffer.c (Qclone_number): Remove for now, as it's unused.
7981 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
7982 (record_buffer): Remove unused local.
7983 * frame.c (other_visible_frames, frame_buffer_list): Now static.
7984 (set_frame_buffer_list): Remove; unused.
7985 * frame.h (other_visible_frames): Remove decl.
7986 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
7987 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
7988 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
7989 if HAVE_GPM.
7990 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
7991 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
7992 Define only if HAVE_GPM.
7993 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
7994 (update_hints_inhibit): Remove; never set. All uses removed.
7995 * widgetprv.h (emacsFrameClassRec): Remove decl.
7996 * window.c (delete_deletable_window): Now returns void, since it
7997 wasn't returning anything.
7998 (compare_window_configurations): Remove unused locals.
7999 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
8000 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
4475bec4
PE
8001 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
8002 the same widths as pointers. This follows up on the 2011-05-06 patch.
8003 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
8004 * xterm.h: Likewise.
8005 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
8006
1384b89e
JB
80072011-06-12 Juanma Barranquero <lekktu@gmail.com>
8008
8009 * makefile.w32-in: Update dependencies.
8010 (LISP_H): Add lib/intprops.h.
8011
1100a63c
CY
80122011-06-11 Chong Yidong <cyd@stupidchicken.com>
8013
8014 * image.c (gif_load): Add animation frame delay to the metadata.
8015 (syms_of_image): Use DEFSYM. New symbol `delay'.
8016
6198ccd0
MR
80172011-06-11 Martin Rudalics <rudalics@gmx.at>
8018
8019 * window.c (delete_deletable_window): Re-add.
8020 (Fset_window_configuration): Rewrite to handle dead buffers and
8021 consequently deletable windows.
8022 (window_tree, Fwindow_tree): Remove. Supply functionality in
8023 window.el.
8024 (compare_window_configurations): Simplify code.
8025
b6e3633c
AS
80262011-06-11 Andreas Schwab <schwab@linux-m68k.org>
8027
1ab0dee5
AS
8028 * image.c (imagemagick_load_image): Fix type mismatch.
8029 (Fimagemagick_types): Likewise.
8030
b6e3633c
AS
8031 * window.h (replace_buffer_in_windows): Declare.
8032
9397e56f
MR
80332011-06-11 Martin Rudalics <rudalics@gmx.at>
8034
8035 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
8036 Qclone_number. Remove external declaration of Qdelete_window.
8037 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
8038 code.
640c8776
SM
8039 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
8040 Run Qbuffer_list_update_hook if allowed.
9397e56f
MR
8041 (Fother_buffer): Rewrite doc-string. Major rewrite for new
8042 buffer list implementation.
8043 (other_buffer_safely): New function.
8044 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
8045 calls to replace_buffer_in_windows and
8046 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
8047 if allowed.
8048 (record_buffer): Inhibit quitting and rewrite using quittable
8049 functions. Run Qbuffer_list_update_hook if allowed.
8050 (Frecord_buffer, Funrecord_buffer): New functions.
640c8776
SM
8051 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
8052 Move switch-to-buffer to window.el.
9397e56f
MR
8053 (bury-buffer): Move to window.el.
8054 (Vbuffer_list_update_hook): New variable.
8055
8056 * lisp.h (other_buffer_safely): Add prototype in buffer.c
8057 section.
8058
8059 * window.h (resize_frame_windows): Move up in code.
8060 (Fwindow_frame): Remove EXFUN.
8061 (replace_buffer_in_all_windows): Remove prototype.
8062 (replace_buffer_in_windows_safely): Add prototype.
8063
8064 * window.c: Declare Qdelete_window static again. Move down
8065 declaration of select_count.
8066 (Fnext_window, Fprevious_window): Rewrite doc-strings.
8067 (Fother_window): Move to window.el.
8068 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
8069 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
8070 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
8071 window.el.
8072 (replace_buffer_in_windows): Implement by calling
8073 Qreplace_buffer_in_windows.
8074 (replace_buffer_in_all_windows): Remove with some functionality
8075 moved into replace_buffer_in_windows_safely.
8076 (replace_buffer_in_windows_safely): New function.
8077 (select_window_norecord, select_frame_norecord): Move in front
8078 of run_window_configuration_change_hook. Remove now obsolete
8079 declarations.
640c8776
SM
8080 (Fset_window_buffer): Rewrite doc-string.
8081 Call Qrecord_window_buffer.
9397e56f
MR
8082 (keys_of_window): Move binding for other-window to window.el.
8083
b50691aa
CY
80842011-06-11 Chong Yidong <cyd@stupidchicken.com>
8085
8086 * dispextern.h (struct image): Replace data member, whose int_val
8087 and ptr_val fields were not used by anything, with a single
8088 lisp_val object.
8089
8090 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
8091 (gif_clear_image, gif_load, imagemagick_load_image)
8092 (gs_clear_image, gs_load): Callers changed.
8093
3f754b86
PE
80942011-06-10 Paul Eggert <eggert@cs.ucla.edu>
8095
cca69397
PE
8096 * buffer.h: Include <time.h>, for time_t.
8097 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
8098
109e28d0
PE
8099 Fix minor problems found by static checking.
8100
60737f02
PE
8101 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
8102
4b66faf3
PE
8103 Make identifiers static if they are not used in other modules.
8104 * data.c (Qcompiled_function, Qframe, Qvector):
8105 * image.c (QimageMagick, Qsvg):
8106 * minibuf.c (Qmetadata):
8107 * window.c (resize_window_check, resize_root_window): Now static.
8108 * window.h (resize_window_check, resize_root_window): Remove decls.
8109
109e28d0
PE
8110 * window.c (window_deletion_count, delete_deletable_window):
8111 Remove; unused.
46a4ce9e
PE
8112 (window_body_lines): Now static.
8113 (Fdelete_other_windows_internal): Mark vars as initialized.
8114 Make sure 'resize_failed' is initialized.
8115 (run_window_configuration_change_hook): Rename local to avoid shadowing.
8116 (resize_window_apply): Remove unused local.
8117 * window.h (delete_deletable_window): Remove decl.
8118
109e28d0 8119 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
33290528
PE
8120 (imagemagick_load_image): Fix pointer signedness problem by changing
8121 last arg from unsigned char * to char *. All uses changed.
8122 Also, fix a local for similar reasons.
8123 Remove unused locals. Remove locals to avoid shadowing.
8124 (fn_rsvg_handle_free): Remove; unused.
8125 (svg_load, svg_load_image): Fix pointer signedness problem.
f7e13da3 8126 (imagemagick_load_image): Don't use garbage pointer image_wand.
33290528 8127
3f754b86
PE
8128 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
8129
2547adb1
CY
81302011-06-10 Chong Yidong <cyd@stupidchicken.com>
8131
8132 * image.c (gif_load): Fix omitted cast error introduced by
8133 2011-06-06 change.
8134
2c8e37d4
MR
81352011-06-10 Martin Rudalics <rudalics@gmx.at>
8136
8137 * window.h (resize_proportionally, orig_total_lines)
8138 (orig_top_line): Remove from window structure.
8139 (set_window_height, set_window_width, change_window_heights)
8140 (Fdelete_window): Remove prototypes.
8141 (resize_frame_windows): Remove duplicate declaration.
8142
440a42e3
EZ
81432011-06-10 Eli Zaretskii <eliz@gnu.org>
8144
8145 * window.h (resize_frame_windows, resize_window_check)
8146 (delete_deletable_window, resize_root_window)
8147 (resize_frame_windows): Declare prototypes.
8148
8149 * window.c (resize_window_apply): Make definition be "static" to
8150 match the prototype.
8151
562dd5e9
MR
81522011-06-10 Martin Rudalics <rudalics@gmx.at>
8153
8154 * window.c: Remove declarations of Qwindow_size_fixed,
8155 window_min_size_1, window_min_size_2, window_min_size,
8156 size_window, window_fixed_size_p, enlarge_window, delete_window.
8157 Remove static from declaration of Qdelete_window, it's
8158 temporarily needed by Fbury_buffer.
8159 (replace_window): Don't assign orig_top_line and
8160 orig_total_lines.
8161 (Fdelete_window, delete_window): Remove. Window deletion is
8162 handled by window.el.
640c8776
SM
8163 (window_loop): Remove DELETE_OTHER_WINDOWS case.
8164 Replace Fdelete_window calls with calls to Qdelete_window.
562dd5e9
MR
8165 (Fdelete_other_windows): Remove. Deleting other windows is
8166 handled by window.el.
8167 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
8168 handled in window.el.
8169 (window_min_size_2, window_min_size_1, window_min_size): Remove.
8170 Window minimum sizes are handled in window.el.
8171 (shrink_windows, size_window, set_window_height)
8172 (set_window_width, change_window_heights, window_height)
8173 (window_width, CURBEG, CURSIZE, enlarge_window)
8174 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
8175 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
8176 handled in window.el.
8177 (make_dummy_parent): Rename to make_parent_window and give it a
8178 second argument horflag.
8179 (make_window): Don't set resize_proportionally any more.
8180 (Fsplit_window): Remove. Windows are split in window.el.
8181 (save_restore_action, save_restore_orig_size)
8182 (shrink_window_lowest_first, save_restore_orig_size): Remove.
8183 Resize mini windows in window.el.
8184 (grow_mini_window, shrink_mini_window): Implement by calling
8185 Qresize_root_window_vertically, resize_window_check and
8186 resize_window_apply.
640c8776
SM
8187 (saved_window, Fset_window_configuration, save_window_save):
8188 Do not handle orig_top_line, orig_total_lines, and
562dd5e9
MR
8189 resize_proportionally.
8190 (window_min_height, window_min_width): Move to window.el.
8191 (keys_of_window): Move bindings for delete-other-windows,
8192 split-window, delete-window and enlarge-window to window.el.
8193
8194 * buffer.c: Temporarily extern Qdelete_window.
8195 (Fbury_buffer): Temporarily call Qdelete_window instead of
8196 Fdelete_window (Fbury_buffer will move to window.el soon).
8197
8198 * frame.c (set_menu_bar_lines_1): Remove code handling
8199 orig_top_line and orig_total_lines.
8200
8201 * dispnew.c (adjust_frame_glyphs_initially): Don't use
8202 set_window_height but set heights directly.
8203 (change_frame_size_1): Use resize_frame_windows.
8204
8205 * xdisp.c (init_xdisp): Don't use set_window_height but set
8206 heights directly.
8207
640c8776
SM
8208 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
8209 Use resize_frame_windows instead of change_window_heights and run
562dd5e9
MR
8210 run_window_configuration_change_hook.
8211
8212 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
8213 instead of change_window_heights and run
8214 run_window_configuration_change_hook.
8215
1a13852e
MR
82162011-06-09 Martin Rudalics <rudalics@gmx.at>
8217
8218 * window.c (replace_window): Rename second argument REPLACEMENT to
8219 NEW. New third argument SETFLAG. Rewrite.
8220 (delete_window, make_dummy_parent): Call replace_window with
8221 third argument 1.
8222 (window_list_1): Move down in code.
8223 (run_window_configuration_change_hook): Move set_buffer part
8224 before select_frame_norecord part in order to unwind correctly.
8225 Rename count1 to count.
8226 (recombine_windows, delete_deletable_window, resize_root_window)
8227 (Fdelete_other_windows_internal)
8228 (Frun_window_configuration_change_hook, make_parent_window)
8229 (resize_window_check, resize_window_apply, Fresize_window_apply)
8230 (resize_frame_windows, Fsplit_window_internal)
640c8776
SM
8231 (Fdelete_window_internal, Fresize_mini_window_internal):
8232 New functions.
1a13852e
MR
8233 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
8234
f3d1777e
MR
82352011-06-08 Martin Rudalics <rudalics@gmx.at>
8236
496e208e
MR
8237 * window.h (window): Add some new members to window structure -
8238 normal_lines, normal_cols, new_total, new_normal, clone_number,
8239 splits, nest, prev_buffers, next_buffers.
8240 (WINDOW_TOTAL_SIZE): Move here from window.c.
b9e809c2 8241 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
496e208e 8242
f3d1777e
MR
8243 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
8244 Remove.
496e208e
MR
8245 (make_dummy_parent): Set new members of windows structure.
8246 (make_window): Move down in code. Handle new members of window
8247 structure.
8248 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
8249 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
8250 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
8251 (Fset_window_prev_buffers, Fwindow_next_buffers)
640c8776
SM
8252 (Fset_window_next_buffers, Fset_window_clone_number):
8253 New functions.
496e208e
MR
8254 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
8255 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
8256 Doc-string fixes.
8257 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
8258 Argument WINDOW can be now internal window too.
8259 (Fwindow_use_time): Move up in code.
8260 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
8261 Rewrite doc-string.
8262 (Fset_window_configuration, saved_window)
8263 (Fcurrent_window_configuration, save_window_save): Handle new
8264 members of window structure.
b9e809c2
MR
8265 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
8266 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
8267 (syms_of_window): New Lisp objects Qrecord_window_buffer,
8268 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
8269 Qget_mru_window, Qresize_root_window,
8270 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
8271 Qauto_buffer_name; staticpro them.
f3d1777e 8272
abde8f8c
MR
82732011-06-07 Martin Rudalics <rudalics@gmx.at>
8274
8275 * window.c (Fwindow_total_size, Fwindow_left_column)
8276 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
8277 (Fwindow_list_1): New functions.
8278 (window_box_text_cols): Replace with window_body_cols.
640c8776
SM
8279 (Fwindow_width, Fscroll_left, Fscroll_right):
8280 Use window_body_cols instead of window_box_text_cols.
8281 (delete_window, Fset_window_configuration):
8282 Call delete_all_subwindows with window as argument.
fa8a67e6
MR
8283 (delete_all_subwindows): Take a window as argument and not a
8284 structure. Rewrite.
190b47e6
MR
8285 (window_loop): Remove handling of GET_LRU_WINDOW and
8286 GET_LARGEST_WINDOW.
8287 (Fget_lru_window, Fget_largest_window): Move to window.el.
abde8f8c
MR
8288
8289 * window.h: Extern window_body_cols instead of
fa8a67e6
MR
8290 window_box_text_cols. delete_all_subwindows now takes a
8291 Lisp_Object as argument.
abde8f8c 8292
640c8776
SM
8293 * indent.c (compute_motion, Fcompute_motion):
8294 Use window_body_cols instead of window_box_text_cols.
abde8f8c 8295
fa8a67e6
MR
8296 * frame.c (delete_frame): Call delete_all_subwindows with root
8297 window as argument.
8298
a54e3482
DC
82992011-06-07 Daniel Colascione <dan.colascione@gmail.com>
8300
8301 * fns.c (Fputhash): Document return value.
8302
60002bf5
CY
83032011-06-06 Chong Yidong <cyd@stupidchicken.com>
8304
8305 * image.c (gif_load): Implement gif89a spec "no disposal" method.
8306
0c671da6 83072011-06-06 Paul Eggert <eggert@cs.ucla.edu>
ccd9a01a 8308
b862a52a 8309 Cons<->int and similar integer overflow fixes (Bug#8794).
77984278 8310
be44ca6c
PE
8311 Check for overflow when converting integer to cons and back.
8312 * charset.c (Fdefine_charset_internal, Fdecode_char):
8313 Use cons_to_unsigned to catch overflow.
8314 (Fencode_char): Use INTEGER_TO_CONS.
8315 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
8316 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
8317 * data.c (long_to_cons, cons_to_long): Remove.
8318 (cons_to_unsigned, cons_to_signed): New functions.
8319 These signal an error for invalid or out-of-range values.
8320 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
8321 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
8322 * font.c (Ffont_variation_glyphs):
8323 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
8324 * lisp.h: Include <intprops.h>.
8325 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
8326 (cons_to_signed, cons_to_unsigned): New decls.
8327 (long_to_cons, cons_to_long): Remove decls.
8328 * undo.c (record_first_change): Use INTEGER_TO_CONS.
8329 (Fprimitive_undo): Use CONS_TO_INTEGER.
8330 * xfns.c (Fx_window_property): Likewise.
8331 * xselect.c: Include <limits.h>.
8332 (x_own_selection, selection_data_to_lisp_data):
8333 Use INTEGER_TO_CONS.
8334 (x_handle_selection_request, x_handle_selection_clear)
8335 (x_get_foreign_selection, Fx_disown_selection_internal)
8336 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
8337 (lisp_data_to_selection_data): Use cons_to_unsigned.
8338 (x_fill_property_data): Use cons_to_signed.
8339 Report values out of range.
8340
d1f3d2af
PE
8341 Check for buffer and string overflow more precisely.
8342 * buffer.h (BUF_BYTES_MAX): New macro.
8343 * lisp.h (STRING_BYTES_MAX): New macro.
8344 * alloc.c (Fmake_string):
8345 * character.c (string_escape_byte8):
8346 * coding.c (coding_alloc_by_realloc):
8347 * doprnt.c (doprnt):
8348 * editfns.c (Fformat):
8349 * eval.c (verror):
8350 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
8351 since they may not be the same number.
8352 * editfns.c (Finsert_char):
8353 * fileio.c (Finsert_file_contents):
8354 Likewise for BUF_BYTES_MAX.
8355
dd52fcea
PE
8356 * image.c: Use ptrdiff_t, not int, for sizes.
8357 (slurp_file): Switch from int to ptrdiff_t.
8358 All uses changed.
8359 (slurp_file): Check that file size fits in both size_t (for
8360 malloc) and ptrdiff_t (for sanity and safety).
8361
7f9bbdbb
PE
8362 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
8363 if b->modtime has its maximal value.
8364
dfe18f82
PE
8365 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
8366
84acfcf0
PE
8367 Don't assume time_t can fit into int.
8368 * buffer.h (struct buffer.modtime): Now time_t, not int.
8369 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
8370 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
8371
ccd9a01a
PE
8372 Minor fixes for signed vs unsigned integers.
8373 * character.h (MAYBE_UNIFY_CHAR):
8374 * charset.c (maybe_unify_char):
8375 * keyboard.c (read_char, reorder_modifiers):
8376 XINT -> XFASTINT, since the integer must be nonnegative.
8377 * ftfont.c (ftfont_spec_pattern):
8378 * keymap.c (access_keymap, silly_event_symbol_error):
8379 XUINT -> XFASTINT, since the integer must be nonnegative.
8380 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
8381 since it makes no difference and we prefer signed.
8382 * keyboard.c (record_char): Use XUINT when all the neighbors do.
8383 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
8384 nonnegative.
8385
d6d100dd
SM
83862011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
8387
8388 * window.h (Fwindow_frame): Declare.
8389
2b6148e4
PE
83902011-06-06 Paul Eggert <eggert@cs.ucla.edu>
8391
8392 * alloc.c: Simplify handling of large-request failures (Bug#8800).
8393 (SPARE_MEMORY): Always define.
8394 (LARGE_REQUEST): Remove.
8395 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
8396
f230ecc9
MR
83972011-06-06 Martin Rudalics <rudalics@gmx.at>
8398
727e958e
MR
8399 * lisp.h: Move EXFUNS for Fframe_root_window,
8400 Fframe_first_window and Fset_frame_selected_window to window.h.
8401
8402 * window.h: Move EXFUNS for Fframe_root_window,
8403 Fframe_first_window and Fset_frame_selected_window here from
8404 lisp.h.
8405
8406 * frame.c (Fwindow_frame, Fframe_first_window)
8407 (Fframe_root_window, Fframe_selected_window)
8408 (Fset_frame_selected_window): Move to window.c.
8409 (Factive_minibuffer_window): Move to minibuf.c.
8410 (Fother_visible_frames_p): New function.
8411
8412 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
8413
f230ecc9
MR
8414 * window.c (decode_window, decode_any_window): Move up in code.
8415 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
8416 (inhibit_frame_unsplittable): Remove unused variable.
bf60a96b
MR
8417 (Fwindow_buffer): Move up and rewrite doc-string.
8418 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
8419 (Fwindow_prev): New functions.
727e958e
MR
8420 (Fwindow_frame): Move here from frame.c. Accept any window as
8421 argument.
8422 (Fframe_root_window, Fframe_first_window)
8423 (Fframe_selected_window): Move here from frame.c. Accept frame
8424 or arbitrary window as argument. Update doc-strings.
8425 (Fminibuffer_window): Move up in code.
8426 (Fwindow_minibuffer_p): Move up in code and simplify.
d6d100dd
SM
8427 (Fset_frame_selected_window): Move here from frame.c.
8428 Marginal rewrite.
727e958e
MR
8429 (Fselected_window, select_window, Fselect_window): Move up in
8430 code. Minor doc-string fixes.
f230ecc9 8431
4d09bcf6
PE
84322011-06-06 Paul Eggert <eggert@cs.ucla.edu>
8433
8434 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
8435 Do not assume that spare memory exists; that assumption is valid
8436 only if SYSTEM_MALLOC.
8437 (LARGE_REQUEST): New macro, so that the issue of large requests
8438 is separated from the issue of spare memory.
8439
810928a2
AS
84402011-06-05 Andreas Schwab <schwab@linux-m68k.org>
8441
172418ad
AS
8442 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
8443 format. (Bug#8806)
8444
43f862f7
AS
8445 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
8446
810928a2
AS
8447 * xfns.c (x_set_scroll_bar_default_width): Move declarations
8448 before statements.
8449
a059fe24
JD
84502011-06-05 Jan Djärv <jan.h.d@swipnet.se>
8451
8452 * gtkutil.c (xg_get_default_scrollbar_width): New function.
8453
8454 * gtkutil.h: Declare xg_get_default_scrollbar_width.
8455
8456 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
8457 min width by calling x_set_scroll_bar_default_width (Bug#8505).
8458
989bf368
JB
84592011-06-05 Juanma Barranquero <lekktu@gmail.com>
8460
8461 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
8462
4b80f674
CY
84632011-06-04 Chong Yidong <cyd@stupidchicken.com>
8464
8465 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
8466 (x_clipboard_manager_save): Add return value.
d6d100dd
SM
8467 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
8468 New error handlers.
4b80f674
CY
8469 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
8470 Obey Vx_select_enable_clipboard_manager. Catch errors in
8471 x_clipboard_manager_save (Bug#8779).
8472 (Vx_select_enable_clipboard_manager): New variable.
de65b42c 8473 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
4b80f674 8474
99a33b77 84752011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
8b3115e7
DN
8476
8477 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
8478
99a33b77 84792011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
14eca62f
YM
8480
8481 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
8482 in the current matrix if keep_current_p is non-zero.
8483
8264569d
EZ
84842011-06-04 Eli Zaretskii <eliz@gnu.org>
8485
8486 * bidi.c (bidi_level_of_next_char): Fix last change.
8487
57f97249
EZ
84882011-06-03 Eli Zaretskii <eliz@gnu.org>
8489
fec2107c 8490 Support bidi reordering of text covered by display properties.
57f97249 8491
fec2107c
EZ
8492 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
8493 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
8494 (bidi_cache_search, bidi_cache_iterator_state)
8495 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
d6d100dd
SM
8496 (bidi_level_of_next_char, bidi_move_to_visually_next):
8497 Support character positions inside a run of characters covered by a
fec2107c
EZ
8498 display string.
8499 (bidi_paragraph_init, bidi_resolve_explicit_1)
8500 (bidi_level_of_next_char): Call bidi_fetch_char and
8501 bidi_fetch_char_advance instead of FETCH_CHAR and
8502 FETCH_CHAR_ADVANCE.
8503 (bidi_init_it): Initialize new members.
8504 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
8505 definitions.
8506 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
8507 instead of using explicit *_CHAR codes.
d6d100dd
SM
8508 (bidi_resolve_explicit, bidi_resolve_weak):
8509 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
fec2107c
EZ
8510 bidirectional text is supported only in multibyte buffers.
8511 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
8512 it to initialize the frame_window_p member of struct bidi_it.
8513 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
8514 (bidi_resolve_explicit, bidi_resolve_weak)
8515 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
8516 bidi_it->nchars is non-positive.
8517 (bidi_level_of_next_char): Don't try to lookup the cache for the
8518 next/previous character if nothing is cached there yet, or if we
8519 were just reseat()'ed to a new position.
c40e2fb2 8520
0e14fe90
EZ
8521 * xdisp.c (set_cursor_from_row): Set start and stop points
8522 according to the row's direction when priming the loop that looks
8523 for the glyph on which to display cursor.
8524 (single_display_spec_intangible_p): Function deleted.
8525 (display_prop_intangible_p): Reimplement to call
8526 handle_display_spec instead of single_display_spec_intangible_p.
d6d100dd
SM
8527 Accept 3 additional arguments needed by handle_display_spec.
8528 This fixes incorrect cursor motion across display property with complex
0e14fe90
EZ
8529 values: lists, `(when COND...)' forms, etc.
8530 (single_display_spec_string_p): Support property values that are
8531 lists with the argument STRING its top-level element.
8532 (display_prop_string_p): Fix the condition for processing a
8533 property that is a list to be consistent with handle_display_spec.
fec2107c 8534 (handle_display_spec): New function, refactored from the
fc6f18ce
EZ
8535 last portion of handle_display_prop.
8536 (compute_display_string_pos): Accept additional argument
8537 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
8538 value of a `display' property is a "replacing spec".
8539 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
8540 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
8541 the display property, but just return a value indicating whether
8542 the display property will replace the characters it covers.
8543 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
8544 frame_window_p members of struct bidi_it.
d6d100dd
SM
8545 (compute_display_string_pos, compute_display_string_end):
8546 New functions.
fec2107c
EZ
8547 (push_it): Accept second argument POSITION, where pop_it should
8548 jump to continue iteration.
8549 (reseat_1): Initialize bidi_it.disp_pos.
fc6f18ce 8550
fec2107c
EZ
8551 * keyboard.c (adjust_point_for_property): Adjust the call to
8552 display_prop_intangible_p to its new signature.
fc6f18ce
EZ
8553
8554 * dispextern.h (struct bidi_it): New member frame_window_p.
fec2107c
EZ
8555 (bidi_init_it): Update prototypes.
8556 (display_prop_intangible_p): Update prototype.
d6d100dd
SM
8557 (compute_display_string_pos, compute_display_string_end):
8558 Declare prototypes.
fec2107c
EZ
8559 (struct bidi_it): New members nchars and disp_pos. ch_len is now
8560 EMACS_INT.
fc6f18ce 8561
40087514 85622011-06-02 Paul Eggert <eggert@cs.ucla.edu>
0de4bb68 8563
57f53182
PE
8564 Malloc failure behavior now depends on size of allocation.
8565 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
8566 * lisp.h: Change signatures accordingly.
8567 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
8568 All callers changed. (Bug#8762)
8569
8570 * gnutls.c: Use Emacs's memory allocators.
8571 Without this change, the gnutls library would invoke malloc etc.
8572 directly, which causes problems on non-SYNC_INPUT hosts, and which
8573 runs afoul of improving memory_full behavior. (Bug#8761)
8574 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
8575 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
8576 xfree instead of the default malloc, realloc, free.
8577 (Fgnutls_boot): No need to check for memory allocation failure,
8578 since xmalloc does that for us.
8579
ac32cd99 8580 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
3870d916
PE
8581 * category.c (hash_get_category_set):
8582 * ccl.c (ccl_driver):
8583 * charset.c (Fdefine_charset_internal):
8584 * charset.h (struct charset.hash_index):
8585 * composite.c (get_composition_id, gstring_lookup_cache)
8586 (composition_gstring_put_cache):
8587 * composite.h (struct composition.hash_index):
8588 * dispextern.h (struct image.hash):
8589 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
8590 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
8591 (hashfn_equal, hashfn_user_defined, make_hash_table)
8592 (maybe_resize_hash_table, hash_lookup, hash_put)
8593 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
8594 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
8595 (Fsxhash, Fgethash, Fputhash, Fmaphash):
8596 * image.c (make_image, search_image_cache, lookup_image)
8597 (xpm_put_color_table_h):
8598 * lisp.h (struct Lisp_Hash_Table):
0de4bb68 8599 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
ac389d0c 8600 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
3870d916 8601 for hashes and hash indexes, instead of 'unsigned' and 'int'.
40087514
PE
8602 * alloc.c (allocate_vectorlike):
8603 Check for overflow in vector size calculations.
8604 * ccl.c (ccl_driver):
8605 Check for overflow when converting EMACS_INT to int.
0de4bb68
PE
8606 * fns.c, image.c: Remove unnecessary static decls that would otherwise
8607 need to be updated by these changes.
40087514
PE
8608 * fns.c (make_hash_table, maybe_resize_hash_table):
8609 Check for integer overflow with large hash tables.
0de4bb68
PE
8610 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
8611 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
8612 (SXHASH_REDUCE): New macro.
8613 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
8614 Use it instead of discarding useful hash info with large hash values.
8615 (sxhash_float): New function.
8616 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
8617 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
40087514
PE
8618 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
8619 Rewrite to use FIXNUM_BITS, as this simplifies things.
0de4bb68
PE
8620 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
8621 Adjust signatures to match updated version of code.
8622 (consing_since_gc): Now EMACS_INT, since a single hash table can
8623 use more than INT_MAX bytes.
8624
698d32e2
DN
86252011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
8626
8627 Make it possible to build with GCC-4.6+ -O2 -flto.
8628
8629 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
8630
fd6fa53f
SM
86312011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
8632
8633 * minibuf.c (get_minibuffer, read_minibuf_unwind):
8634 Call minibuffer-inactive-mode.
8635
864db017
JB
86362011-05-31 Juanma Barranquero <lekktu@gmail.com>
8637
8638 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
8639 Update dependencies.
8640
2ad0baf4
DN
86412011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
8642
8643 * data.c (init_data): Remove code for UTS, this system is not
8644 supported anymore.
8645
4fcc2638
DN
86462011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
8647
8648 Don't force ./temacs to start in terminal mode.
8649
8650 * frame.c (make_initial_frame): Initialize faces in all cases, not
8651 only when CANNOT_DUMP is defined.
8652 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
8653
c56e0fd5
DN
86542011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
8655
8656 * dispnew.c (add_window_display_history): Use const for the string
8657 pointer. Remove declaration, not needed.
8658
333d54da 86592011-05-31 Paul Eggert <eggert@cs.ucla.edu>
9cf9f756 8660
55d4c1b2 8661 Use 'inline', not 'INLINE'.
333d54da 8662 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
55d4c1b2
PE
8663 * alloc.c, fontset.c (INLINE): Remove.
8664 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
8665 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
8666 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
8667 * gmalloc.c (register_heapinfo): Use inline unconditionally.
8668 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
8669
738db178
DN
86702011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
8671
8672 Make it possible to run ./temacs.
8673
8674 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
8675 syms_of_callproc does the same thing. Remove test for
8676 "initialized", do it in the caller.
8677 * emacs.c (main): Avoid calling set_initial_environment when dumping.
8678
620c53a6
SM
86792011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
8680
8681 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
8682 (read_minibuf): Use get_minibuffer.
8683 (syms_of_minibuf): Use DEFSYM.
8684 (Qmetadata): New var.
8685 * data.c (Qbuffer): Don't make it static.
8686 (syms_of_data): Use DEFSYM.
8687
e003a292
PE
86882011-05-31 Paul Eggert <eggert@cs.ucla.edu>
8689
8690 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
8691 (CCL_CODE_MIN): New macro.
8692
ed008a6d
PE
86932011-05-30 Paul Eggert <eggert@cs.ucla.edu>
8694
3687c2ef
PE
8695 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
8696
ed008a6d
PE
8697 * eval.c (Qdebug): Now static.
8698 * lisp.h (Qdebug): Remove decl. This reverts a part of the
8699 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
8700 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
8701
d66c4c7c
CY
87022011-05-29 Chong Yidong <cyd@stupidchicken.com>
8703
8704 * image.c: Various fixes to ImageMagick code comments.
8705 (Fimagemagick_types): Doc fix.
8706
5fbc2025
PE
87072011-05-29 Paul Eggert <eggert@cs.ucla.edu>
8708
0196f88a
PE
8709 Minor fixes prompted by GCC 4.6.0 warnings.
8710
8711 * xselect.c (converted_selections, conversion_fail_tag): Now static.
8712
5fbc2025
PE
8713 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
8714 (x_clipboard_manager_save_all): Move extern decl to ...
8715 * xterm.h: ... here, so that it can be checked for consistency.
8716
1dd3c2d9
CY
87172011-05-29 Chong Yidong <cyd@stupidchicken.com>
8718
8719 * xselect.c (x_clipboard_manager_save_frame)
8720 (x_clipboard_manager_save_all): New functions.
8721 (Fx_clipboard_manager_save): Lisp function deleted.
8722
8723 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
8724 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
8725
8726 * xterm.h: Update prototype.
8727
5ba6571d
WX
87282011-05-28 William Xu <william.xwl@gmail.com>
8729
8730 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
8731 exiting (Bug#8239).
8732
3eaff834
JM
87332011-05-28 Jim Meyering <meyering@redhat.com>
8734
e1900994 8735 Avoid a sign-extension bug in crypto_hash_function.
3eaff834
JM
8736 * fns.c (to_uchar): Define.
8737 (crypto_hash_function): Use it to convert some newly-signed
8738 variables to unsigned, to avoid sign-extension bugs. For example,
8739 without this change, (md5 "truc") would evaluate to
8740 45723a2aff78ff4fff7fff1114760e62 rather than the expected
8741 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
e1900994 8742 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
3eaff834 8743
0f6990a7
PE
87442011-05-27 Paul Eggert <eggert@cs.ucla.edu>
8745
8746 Integer overflow fixes.
c8a9ca5a 8747
08686060
PE
8748 * dbusbind.c: Serial number integer overflow fixes.
8749 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
08686060
PE
8750 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
8751 to hold a serial number that is too large for a fixnum.
8752 (Fdbus_method_return_internal, Fdbus_method_error_internal):
8753 Check for serial numbers out of range. Decode any serial number
59568bf0 8754 that was so large that it became a float. (Bug#8722)
08686060 8755
2d1fc3c7
PE
8756 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
8757 (Fdbus_call_method, Fdbus_call_method_asynchronously):
8758 Use XFASTINT rather than XUINT when numbers are nonnegative.
8759 (xd_append_arg, Fdbus_method_return_internal):
8760 (Fdbus_method_error_internal): Likewise. Also, for unsigned
8761 arguments, check that Lisp number is nonnegative, rather than
59568bf0 8762 silently wrapping negative numbers around. (Bug#8722)
30217ff0 8763 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
59568bf0 8764 (Bug#8722)
2d1fc3c7 8765
c8a9ca5a
PE
8766 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
8767
519e1d69
PE
8768 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
8769
6df6ae42 8770 ccl: Add integer overflow checks.
30569699
PE
8771 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
8772 (IN_INT_RANGE): New macros.
8773 (ccl_driver): Use them to check for integer overflow when
8774 decoding a CCL program. Many of the new checks are whether XINT (x)
8775 fits in int; it doesn't always, on 64-bit hosts. The new version
8776 doesn't catch all possible integer overflows, but it's an
847044ea 8777 improvement. (Bug#8719)
30569699 8778
c11285dc
PE
8779 * alloc.c (make_event_array): Use XINT, not XUINT.
8780 There's no need for unsigned here.
8781
fdccd48e
PE
8782 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
8783 This follows up to the 2011-05-06 change that substituted uintptr_t
8784 for EMACS_INT. This case wasn't caught back then.
8785
37910ab2
PE
8786 Rework Fformat to avoid integer overflow issues.
8787 * editfns.c: Include <float.h> unconditionally, as it's everywhere
8788 now (part of C89). Include <verify.h>.
8789 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
8790 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
8791 (Fformat): Avoid the prepass trying to compute sizes; it was only
8792 approximate and thus did not catch overflow reliably. Instead, walk
8793 through the format just once, formatting and computing sizes as we go,
8794 checking for integer overflow at every step, and allocating a larger
8795 buffer as needed. Keep track separately whether the format is
8796 multibyte. Keep only the most-recently calculated precision, rather
8797 than them all. Record whether each argument has been converted to
8798 string. Use EMACS_INT, not int, for byte and char and arg counts.
8799 Support field widths and precisions larger than INT_MAX. Avoid
8800 sprintf's undefined behavior with conversion specifications such as %#d
8801 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
8802 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
8803 formatting out-of-range floating point numbers with int
9173deec 8804 formats. (Bug#8668)
37910ab2 8805
2e6578fb
PE
8806 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
8807
0ae6bdee
PE
8808 * data.c: Avoid integer truncation in expressions involving floats.
8809 * data.c: Include <intprops.h>.
8810 (arith_driver): When there's an integer overflow in an expression
8811 involving floating point, convert the integers to floating point
8812 so that the resulting value does not suffer from catastrophic
8813 integer truncation. For example, on a 64-bit host (* 4
8814 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
8815 Do not rely on undefined behavior after integer overflow.
8816
de883a70
PE
8817 merge count_size_as_multibyte, parse_str_to_multibyte
8818 * character.c, character.h (count_size_as_multibyte):
fd6fa53f 8819 Rename from parse_str_to_multibyte; all uses changed.
de883a70
PE
8820 Check for integer overflow.
8821 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
8822 since it's now a duplicate of the other. This is more of
8823 a character than a buffer op, so better that it's in character.c.
8824 * fns.c, print.c: Adjust to above changes.
8825
2ff916cb
PE
88262011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
8827
8828 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
8829
f1b54466
PE
88302011-05-27 Paul Eggert <eggert@cs.ucla.edu>
8831
fb1ac845
PE
8832 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
8833 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
8834 (x_clipboard_manager_save): Now static.
8835 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
8836
f1b54466
PE
8837 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
8838 (crypto_hash_function): Now static.
8839 Fix pointer signedness problems. Avoid unnecessary initializations.
8840
a9f737ee
CY
88412011-05-27 Chong Yidong <cyd@stupidchicken.com>
8842
8843 * termhooks.h (Vselection_alist): Make it terminal-local.
8844
8845 * terminal.c (create_terminal): Initialize it.
8846
8847 * xselect.c: Support for clipboard managers.
8848 (Vselection_alist): Move to termhooks.h as terminal-local var.
8849 (LOCAL_SELECTION): New macro.
8850 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
8851 (symbol_to_x_atom): Remove gratuitous arg.
8852 (x_handle_selection_request, lisp_data_to_selection_data)
8853 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
620c53a6
SM
8854 (x_own_selection, x_get_local_selection, x_convert_selection):
8855 New arg, specifying work frame. Use terminal-local Vselection_alist.
a9f737ee
CY
8856 (some_frame_on_display): Delete unused function.
8857 (Fx_own_selection_internal, Fx_get_selection_internal)
8858 (Fx_disown_selection_internal, Fx_selection_owner_p)
8859 (Fx_selection_exists_p): New optional frame arg.
8860 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
8861 (x_handle_selection_clear): Don't treat other terminals with the
8862 same keyboard specially. Use the terminal-local Vselection_alist.
8863 (x_clear_frame_selections): Use Frun_hook_with_args.
8864
8865 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
8866
8867 * xterm.h: Add support for those atoms.
8868
e067f0c1
CY
88692011-05-26 Chong Yidong <cyd@stupidchicken.com>
8870
8871 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
8872 (converted_selections, conversion_fail_tag): New global variables.
8873 (x_selection_request_lisp_error): Free the above.
8874 (x_get_local_selection): Remove unnecessary code.
8875 (x_reply_selection_request): Args changed; handle arbitrary array
620c53a6
SM
8876 of converted selections stored in converted_selections.
8877 Separate the XChangeProperty and SelectionNotify steps.
e067f0c1
CY
8878 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
8879 (x_convert_selection): New function.
8880 (x_handle_selection_event): Simplify.
8881 (x_get_foreign_selection): Don't ignore incoming requests while
8882 waiting for an answer; this will fail when we implement
8883 SAVE_TARGETS, and seems unnecessary anyway.
8884 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
8885 (Vx_sent_selection_functions): Doc fix.
8886
0f4aebc0
LL
88872011-05-26 Leo Liu <sdl.web@gmail.com>
8888
8889 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
8890
e61124cd
YM
88912011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
8892
8893 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
8894
8895 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
8896 for fringe update if it has periodic bitmap.
ac389d0c 8897 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
e61124cd
YM
8898 and fringe_bitmap_periodic_p.
8899
8900 * fringe.c (get_fringe_bitmap_data): New function.
8901 (draw_fringe_bitmap_1, update_window_fringes): Use it.
8902 (update_window_fringes): Record periodicity of fringe bitmap in glyph
8903 row. Mark glyph row for fringe update if periodicity changed.
8904
8905 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
8906 for fringe update unless it has periodic bitmap.
8907
f16d9837
KH
89082011-05-25 Kenichi Handa <handa@m17n.org>
8909
8910 * xdisp.c (get_next_display_element): Set correct it->face_id for
8911 a static composition.
8912
e1b90ef6
LL
89132011-05-24 Leo Liu <sdl.web@gmail.com>
8914
8915 * deps.mk (fns.o):
8916 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
8917
8918 * fns.c (crypto_hash_function, Fsha1): New function.
8919 (Fmd5): Use crypto_hash_function.
8920 (syms_of_fns): Add Ssha1.
8921
7400048f
PE
89222011-05-22 Paul Eggert <eggert@cs.ucla.edu>
8923
8924 * gnutls.c: Remove unused macros.
8925 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
8926 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
8927 Remove macros that are defined and never used.
8928 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
8929
abb71cf4
CY
89302011-05-22 Chong Yidong <cyd@stupidchicken.com>
8931
8932 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
8933 (Fx_get_selection_internal): Minor cleanup.
8934 (Fx_own_selection_internal): Rename arguments for consistency with
8935 select.el.
8936
6307db39
PE
89372011-05-22 Paul Eggert <eggert@cs.ucla.edu>
8938
8939 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
8940
f3d4e0a4
CY
89412011-05-22 Chong Yidong <cyd@stupidchicken.com>
8942
8943 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
8944
4d8ade89
YM
89452011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
8946
8947 * dispnew.c (scrolling_window): Don't exclude the case that the
8948 last enabled row in the desired matrix touches the bottom boundary.
8949
32078c8d
GM
89502011-05-21 Glenn Morris <rgm@gnu.org>
8951
8952 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
33cf345f
GM
8953 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
8954 and add some more files.
32078c8d 8955
7285dc67
EZ
89562011-05-20 Eli Zaretskii <eliz@gnu.org>
8957
8958 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
8959 report_file_error introduced by the change from 2011-05-07.
8960
89d1bd22
PE
89612011-05-20 Paul Eggert <eggert@cs.ucla.edu>
8962
8963 * systime.h (Time): Define only if emacs is defined.
8964 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
8965 where the include path doesn't have X11/X.h by default. See
8966 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
8967
cd394be1 89682011-05-20 Kenichi Handa <handa@m17n.org>
31bfc35c
KH
8969
8970 * composite.c (find_automatic_composition): Fix previous change.
8971
b9704ad9
GM
89722011-05-20 Glenn Morris <rgm@gnu.org>
8973
8974 * lisp.mk: New file, split from Makefile.in.
8975 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
8976 (shortlisp): Remove.
8977 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
8978
4a720484
GM
89792011-05-19 Glenn Morris <rgm@gnu.org>
8980
8981 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
8982 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
8983 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
8984 (lisp): Set the order to that of loadup.el.
8985 (shortlisp): Make it a copy of $lisp.
8986 (SOME_MACHINE_LISP): Remove.
8987 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
8988 Use just $shortlisp, not $SOME_MACHINE_LISP too.
8989
a28d4396
KH
89902011-05-18 Kenichi Handa <handa@m17n.org>
8991
8992 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
8993 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
8994 (find_automatic_composition): Mostly rewrite for efficiency.
8995
a2b1fa8e
JB
89962011-05-18 Juanma Barranquero <lekktu@gmail.com>
8997
8998 * makefile.w32-in: Update dependencies.
8999
8e1f5610
CS
90002011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
9001
9002 * menu.c: Include limits.h (fixes the MS-Windows build broken by
7d7d0045 9003 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
8e1f5610 9004
7025ee00 90052011-05-18 Paul Eggert <eggert@cs.ucla.edu>
cb93f9be 9006
cdfa6eab
PE
9007 Fix some integer overflow issues, such as string length overflow.
9008
06d6db33
PE
9009 * insdel.c (count_size_as_multibyte): Check for string overflow.
9010
2b4560a8
PE
9011 * character.c (lisp_string_width): Check for string overflow.
9012 Use EMACS_INT, not int, for string indexes and lengths; in
9013 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
9014 the resulting string length overflows an EMACS_INT; instead,
9015 report a string overflow if no precision given. When checking for
9016 precision exhaustion, use a check that cannot possibly have
9017 integer overflow. (Bug#8675)
9018 * character.h (lisp_string_width): Adjust to new signature.
9019
cb93f9be
PE
9020 * alloc.c (string_overflow): New function.
9021 (Fmake_string): Use it. This doesn't change behavior, but saves
9022 a few bytes and will simplify future changes.
9023 * character.c (string_escape_byte8): Likewise.
9024 * lisp.h (string_overflow): New decl.
9025
1a1f3366
PE
9026 Fixups, following up to the user-interface timestamp change.
9027 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
9028 for UI timestamps, instead of unsigned long.
9fbd6841
PE
9029 * msdos.c (mouse_get_pos): Likewise.
9030 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
1a1f3366
PE
9031 * w32gui.h (Time): Define by including "systime.h" rather than by
9032 declaring it ourselves. (Bug#8664)
9033
d4e3e4d3
PE
9034 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
9035 * image.c (clear_image_cache): Likewise.
9036
f6a24d19
PE
9037 * term.c (term_mouse_position): Don't assume time_t wraparound.
9038
08dc5ae6
PE
9039 Be more systematic about user-interface timestamps.
9040 Before, the code sometimes used 'Time', sometimes 'unsigned long',
620c53a6
SM
9041 and sometimes 'EMACS_UINT', to represent these timestamps.
9042 This change causes it to use 'Time' uniformly, as that's what X uses.
08dc5ae6
PE
9043 This makes the code easier to follow, and makes it easier to catch
9044 integer overflow bugs such as Bug#8664.
9045 * frame.c (Fmouse_position, Fmouse_pixel_position):
9046 Use Time, not unsigned long, for user-interface timestamps.
9047 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
9048 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
9049 * keyboard.h (last_event_timestamp): Likewise.
9050 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
9051 * menu.h (xmenu_show): Likewise.
9052 * term.c (term_mouse_position): Likewise.
9053 * termhooks.h (struct input_event.timestamp): Likewise.
9054 (struct terminal.mouse_position_hook): Likewise.
9055 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
9056 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
9057 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
9058 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
9059 what it was before.
9060 * menu.h, termhooks.h: Include "systime.h", for Time.
9061
8e55734a
PE
9062 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
9063 Don't assume that the difference between two unsigned long values
9064 can fit into an integer. At this point, we know button_down_time
9065 <= event->timestamp, so the difference must be nonnegative, so
9066 there's no need to cast the result if double-click-time is
9067 nonnegative, as it should be; check that it's nonnegative, just in
9068 case. This bug is triggered when events are more than 2**31 ms
86db42d2 9069 apart (about 25 days). (Bug#8664)
8e55734a 9070
841f1b75 9071 * xselect.c (last_event_timestamp): Remove duplicate decl.
6434756c 9072 (x_own_selection): Remove needless cast to unsigned long.
841f1b75 9073
3e26f69c
PE
9074 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
9075 that always fit in int. Use a sentinel instead of a counter, to
9076 avoid a temp and to allay GCC's concerns about possible int overflow.
d230cb74
PE
9077 * frame.h (struct frame): Use int for menu_bar_items_used
9078 instead of EMACS_INT, since it always fits in int.
3e26f69c 9079
5cc152c0
PE
9080 * menu.c (grow_menu_items): Check for int overflow.
9081
d89eb65e
PE
9082 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
9083
5235bd3e
PE
9084 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
9085 Before, the code was not consistent. These values cannot exceed
9086 2**31 - 1 so there's no need to make them unsigned.
9087 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
9088 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
9089 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
9090 as modifiers.
9091 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
9092
bc827e23
PE
9093 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
9094 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
9095 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
9096 presumably because the widths might not match.
9097
78eb494e
PE
9098 * window.c (size_window): Avoid needless test at loop start.
9099
04f2d78b
CB
91002011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
9101
9102 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
9103
d2fc7e3d 91042011-05-12 Drew Adams <drew.adams@oracle.com>
e531bdff
DA
9105
9106 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
9107
d2fc7e3d 91082011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7db47798
YM
9109
9110 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
9111 `width' to `bar_area_x' and `bar_area_width', respectively.
9112 (x_scroll_run): Take account of fringe background extension.
9113
04f2d78b
CB
9114 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
9115 Rename local vars `left' and `width' to `bar_area_x' and
7db47798
YM
9116 `bar_area_width', respectively.
9117 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
9118 background extension.
9119
79b70037
GM
91202011-05-10 Jim Meyering <meyering@redhat.com>
9121
9122 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
9123
2f142cc5
JB
91242011-05-10 Juanma Barranquero <lekktu@gmail.com>
9125
9126 * image.c (Finit_image_library): Return t for built-in image types,
9127 like pbm and xbm. (Bug#8640)
9128
57679c86
AS
91292011-05-09 Andreas Schwab <schwab@linux-m68k.org>
9130
9131 * w32menu.c (set_frame_menubar): Fix submenu allocation.
9132
888c9e86
EZ
91332011-05-07 Eli Zaretskii <eliz@gnu.org>
9134
b0512a1d
EZ
9135 * w32console.c (Fset_screen_color): Doc fix.
9136 (Fget_screen_color): New function.
9137 (syms_of_ntterm): Defsubr it.
9138
7285dc67
EZ
9139 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
9140 unlink the temporary file if Fcall_process didn't create it in the
9141 first place.
9142 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
9143 child process will be redirected to a file specified with `:file'.
888c9e86
EZ
9144 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
9145 cue to call_process_cleanup not to close that handle.
9146
4d3fcc8e
BK
91472011-05-07 Ben Key <bkey76@gmail.com>
9148
9149 * makefile.w32-in: The bootstrap-temacs rule now makes use of
9150 one of two shell specific rules, either bootstrap-temacs-CMD or
9151 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
9152 to the previous implementation of the bootstrap-temacs rule.
9153 The bootstrap-temacs-CMD rule is similar to the previous
9154 implementation of the bootstrap-temacs rule except that it
9155 makes use of the ESC_CFLAGS variable instead of the CFLAGS
9156 variable.
9157
9158 These changes, along with some changes to nt/configure.bat,
9159 nt/gmake.defs, and nt/nmake.defs, are required to extend my
9160 earlier fix to add support for --cflags and --ldflags options
9161 that include quotes so that it works whether make uses cmd or
9162 sh as the shell.
9163
b4289b64
MA
91642011-05-06 Michael Albinus <michael.albinus@gmx.de>
9165
9166 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
9167 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
9168 is a constant.
9169 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
9170 a string. Handle both cases.
9171 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
9172 (Fdbus_register_method): Use Qinvalid_function.
9173
af4c0e28
JB
91742011-05-06 Juanma Barranquero <lekktu@gmail.com>
9175
9176 * makefile.w32-in: Update dependencies.
9177 (LISP_H): Add inttypes.h and stdin.h.
9178 (PROCESS_H): Add unistd.h.
9179
c51453d9
EZ
91802011-05-06 Eli Zaretskii <eliz@gnu.org>
9181
9182 * lread.c: Include limits.h (fixes the MS-Windows build broken by
9183 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
9184
8ff0ac3c 91852011-05-06 Paul Eggert <eggert@cs.ucla.edu>
c032b5f8 9186
4c4b566b
PE
9187 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
9188
aab2b9b5
PE
9189 * term.c (vfatal): Remove stray call to va_end.
9190 It's not needed and the C Standard doesn't allow it here anyway.
9191
c378da0b
PE
9192 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
9193 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
9194
288b08c7
PE
9195 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
9196 bytes.
9197
e3601888
PE
9198 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
9199
db6c0e74
PE
9200 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
9201
dd5963ea
PE
9202 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
9203
88c9450f
PE
9204 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
9205
2f9442b8
PE
9206 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
9207
c032b5f8
PE
9208 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
9209 * charset.c (Fdefine_charset_internal): Don't initialize
9210 charset.code_space[15]. The value was garbage, on hosts with
2d38271b 9211 32-bit int (Bug#8600).
a108c10b
PE
9212
9213 * lread.c (read_integer): Be more consistent with string-to-number.
9214 Use string_to_number to do the actual conversion; this avoids
9215 rounding errors and fixes some other screwups. Without this fix,
9216 for example, #x1fffffffffffffff was misread as -2305843009213693952.
9217 (digit_to_number): Move earlier, for benefit of read_integer.
9218 Return -1 if the digit is out of range for the base, -2 if it is
48e400f0 9219 not a digit in any supported base. (Bug#8602)
a108c10b 9220
ad5f9eea
PE
9221 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
9222
aec1708a
PE
9223 * dispnew.c (scrolling_window): Return 1 if we scrolled,
9224 to match comment at start of function. This also removes a
9225 GCC warning about overflow in a 32+64-bit port.
9226
47be4ab5
PE
9227 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
9228
371cac43
PE
9229 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
9230 Reported by Stefan Monnier in
9231 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
04f2d78b
CB
9232 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
9233 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
371cac43 9234
d01a7826
PE
9235 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
9236 (EMACS_UINTPTR): Likewise, with uintptr_t.
9237
7fd47d5c
PE
9238 * lisp.h: Prefer 64-bit EMACS_INT if available.
9239 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
9240 on 32-bit hosts that have 64-bit int, so that they can access
9241 large files.
122b0c86
PE
9242 However, temporarily disable this change unless the temporary
9243 symbol WIDE_EMACS_INT is defined.
7fd47d5c 9244
8727937b
PE
9245 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
9246
8ac068ac
PE
9247 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
9248 This removes an assumption that EMACS_INT and long are the same
9249 width as pointers. The assumption is true for Emacs porting targets
9250 now, but we want to make other targets possible.
9251 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
9252 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
9253 In the rest of the code, change types of integers that hold casted
9254 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
9255 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
9256 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
9257 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
9258 No need to cast type when ORing.
9259 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
9260 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
9261 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
9262 assume EMACS_INT is the same width as char *.
9263 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
9264 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
9265 Remove no-longer-needed casts.
9266 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
9267 (xg_tool_bar_help_callback, xg_make_tool_item):
9268 Use EMACS_INTPTR to hold an integer
9269 that will be cast to void *; this can avoid a GCC warning
9270 if EMACS_INT is not the same width as void *.
9271 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
9272 * xdisp.c (display_echo_area_1, resize_mini_window_1):
9273 (current_message_1, set_message_1):
9274 Use a local to convert to proper width without a cast.
9275 * xmenu.c (dialog_selection_callback): Likewise.
9276
ede49d71
PE
9277 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
9278 Also, don't assume VALBITS / RAND_BITS is less than 5,
9279 and don't rely on undefined behavior when shifting a 1 left into
9280 the sign bit.
9281 * lisp.h (get_random): Change signature to match.
9282
2f30ecd0
PE
9283 * lread.c (hash_string): Use size_t, not int, for hash computation.
9284 Normally we prefer signed values; but hashing is special, because
9285 it's better to use unsigned division on hash table sizes so that
9286 the remainder is nonnegative. Also, size_t is the natural width
9287 for hashing into memory. The previous code used 'int', which doesn't
9288 retain enough info to hash well into very large tables.
9289 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
9290
2a866e7b
PE
9291 * dbusbind.c: Don't possibly lose pointer info when converting.
9292 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
9293 Use XPNTR rather than XHASH, so that the high-order bits of
9294 the pointer aren't lost when converting through void *.
9295
51639eac
PE
9296 * eval.c (Fautoload): Don't double-shift a pointer.
9297
92394119
PE
9298 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
9299
dbdb9a7c
JB
93002011-05-06 Juanma Barranquero <lekktu@gmail.com>
9301
9302 * gnutls.c (DEF_GNUTLS_FN):
9303 * image.c (DEF_IMGLIB_FN): Make function pointers static.
9304
db7a0b4f
AS
93052011-05-05 Andreas Schwab <schwab@linux-m68k.org>
9306
9307 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
9308 marker. (Bug#8610)
9309
cd394be1 93102011-05-05 Eli Zaretskii <eliz@gnu.org>
fab624aa
EZ
9311
9312 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
9313 New version that can reserve upto 2GB of heap space.
9314
f7ff1b0f 93152011-05-05 Chong Yidong <cyd@stupidchicken.com>
45cb8994
CY
9316
9317 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
9318
639c109b
TZ
93192011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
9320
9321 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
9322 `gnutls_certificate_set_x509_key_file'.
9323
d2127135
JB
93242011-05-05 Juanma Barranquero <lekktu@gmail.com>
9325
9326 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
9327 Update dependencies.
9328
e968f4f3
JB
93292011-05-04 Juanma Barranquero <lekktu@gmail.com>
9330
9331 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
9332 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
9333 Remove unused parameter `fildes'.
9334 * process.c (read_process_output, send_process): Don't pass it.
9335
84d358f0
JB
93362011-05-04 Juanma Barranquero <lekktu@gmail.com>
9337
9338 Fix previous change: the library cache is defined in w32.c.
9339 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
9340 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
9341
0898ca10
JB
93422011-05-04 Juanma Barranquero <lekktu@gmail.com>
9343
9344 Implement dynamic loading of GnuTLS on Windows.
9345
9346 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
9347 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
9348 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
9349 Declare.
9350
9351 * gnutls.c (Qgnutls_dll): Define.
9352 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
9353 (gnutls_*): Declare function pointers.
9354 (init_gnutls_functions): New function to initialize function pointers.
9355 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
9356 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
9357 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
9358 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
9359 (emacs_gnutls_write, emacs_gnutls_read)
9360 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
9361 (Fgnutls_available_p): New function.
9362 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
9363 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
9364 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
9365
9366 * image.c: Include w32.h.
9367 (Vimage_type_cache): Delete.
9368 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
9369 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
9370 (w32_delayed_load): Move to w32.c.
9371
9372 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
9373
9374 * w32.c (QCloaded_from, Vlibrary_cache): Define.
9375 (w32_delayed_load): Move from image.c. When loading a library, record
9376 its filename in the :loaded-from property of the library id.
9377 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
9378 Initialize and staticpro them.
9379 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
9380
9381 * process.c: Include lisp.h before w32.h, not after.
9382 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
9383 instead of gnutls_record_check_pending.
9384
9385 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
9386
ff4de4aa
TZ
93872011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
9388
9389 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
9390 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
9391 as passed in.
9392
abe95abb
JD
93932011-05-03 Jan Djärv <jan.h.d@swipnet.se>
9394
9395 * xterm.c (x_set_frame_alpha): Do not set property on anything
9396 else than FRAME_X_OUTER_WINDOW (Bug#8608).
9397
e16e55d4
JB
93982011-05-02 Juanma Barranquero <lekktu@gmail.com>
9399
9400 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
9401
bafcf6a5
JB
94022011-05-02 Juanma Barranquero <lekktu@gmail.com>
9403
9404 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
9405 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
9406 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
9407 (gnutls_global_initialized, Qgnutls_bootprop_priority)
9408 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
9409 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
9410 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
9411 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
9412 (Qgnutls_bootprop_callbacks_verify): Make static.
9413
e7a6747f
AS
94142011-05-01 Andreas Schwab <schwab@linux-m68k.org>
9415
19ed11ba
AS
9416 * callproc.c: Indentation fixup.
9417
e7a6747f 9418 * sysdep.c (wait_for_termination_1): Make static.
04f2d78b
CB
9419 (wait_for_termination, interruptible_wait_for_termination):
9420 Move after wait_for_termination_1.
e7a6747f 9421
1ef14cb4
LMI
94222011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
9423
9424 * sysdep.c (interruptible_wait_for_termination): New function
9425 which is like wait_for_termination, but allows keyboard
9426 interruptions.
9427
9428 * callproc.c (Fcall_process): Add (:file "file") as an option for
9429 the STDOUT buffer.
9430 (Fcall_process_region): Ditto.
9431
330d880c
EZ
94322011-04-30 Eli Zaretskii <eliz@gnu.org>
9433
8db90b73
EZ
9434 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
9435 rather than `XVECTOR (FOO)->size'.
9436
330d880c
EZ
9437 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
9438 inttypes.h, as a gnulib replacement is used if it not available in
9439 system headers.
9440
15cbd324
EZ
94412011-04-21 Eli Zaretskii <eliz@gnu.org>
9442
9443 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
9444 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
9445 of MOST_POSITIVE_FIXNUM. (Bug#8528)
9446
9447 * coding.c (coding_alloc_by_realloc): Error out if destination
9448 will grow beyond MOST_POSITIVE_FIXNUM.
9449 (decode_coding_emacs_mule): Abort if there isn't enough place in
9450 charbuf for the composition carryover bytes. Reserve an extra
9451 space for up to 2 characters produced in a loop.
9452 (decode_coding_iso_2022): Abort if there isn't enough place in
9453 charbuf for the composition carryover bytes.
9454
94552011-04-21 Eli Zaretskii <eliz@gnu.org>
afda1437 9456
ae940cca
EZ
9457 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
9458 aborting when %lld or %lll format is passed.
9459 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
9460 %llo or %llx format is passed. (Bug#8545)
9461
03ab8921
EZ
9462 * window.c (window_scroll_line_based): Use a marker instead of
9463 simple variables to record original value of point. (Bug#7952)
9464
afda1437
EZ
9465 * doprnt.c (doprnt): Fix the case where a multibyte sequence
9466 produced by %s or %c overflows available buffer space. (Bug#8545)
9467
f76dee0c
PE
94682011-04-28 Paul Eggert <eggert@cs.ucla.edu>
9469
9470 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
283cdbef 9471 (SIZE_MAX): Move defn after all includes, as they might #define it.
f76dee0c 9472
fdc5744d
JB
94732011-04-28 Juanma Barranquero <lekktu@gmail.com>
9474
9475 * w32.c (init_environment): Warn about defaulting HOME to C:\.
9476
638f053a
JB
94772011-04-28 Juanma Barranquero <lekktu@gmail.com>
9478
9479 * keyboard.c (Qdelayed_warnings_hook): Define.
9480 (command_loop_1): Run `delayed-warnings-hook'
9481 if Vdelayed_warnings_list is non-nil.
9482 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
9483 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
9484
d178f871
EZ
94852011-04-28 Eli Zaretskii <eliz@gnu.org>
9486
9487 * doprnt.c (doprnt): Don't return value smaller than the buffer
9488 size if the message was truncated. (Bug#8545).
9489
b124fd93
JB
94902011-04-28 Juanma Barranquero <lekktu@gmail.com>
9491
9492 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
9493 (Fx_window_property): #if-0 the whole functions, not just the bodies.
9494
e810457d
PE
94952011-04-27 Paul Eggert <eggert@cs.ucla.edu>
9496
9497 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
9498
ea51cceb
JB
94992011-04-27 Juanma Barranquero <lekktu@gmail.com>
9500
9501 * makefile.w32-in: Update dependencies.
9502
94dcfacf
EZ
95032011-04-27 Eli Zaretskii <eliz@gnu.org>
9504
9505 Improve `doprnt' and its usage. (Bug#8545)
9506 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
9507 `format_end'. Remove support for %l as a conversion specifier.
9508 Don't use xrealloc. Improve diagnostics when the %l size modifier
9509 is used. Update the commentary.
9510
9511 * eval.c (verror): Simplify calculation of size_t.
9512
9513 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
9514 messages.
9515
f61f41d7
PE
95162011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
9517
9518 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
9519 change.
9520
96fb4434
PE
95212011-04-27 Paul Eggert <eggert@cs.ucla.edu>
9522
9523 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
9524 This makes this file independent of the recent pseudovector change.
9525
671875da 95262011-04-26 Paul Eggert <eggert@cs.ucla.edu>
eab3844f 9527
69e9b5a3
PE
9528 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
9529
b5f869a7 9530 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
7754e151 9531 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
8d4c3955 9532 Remove unused local.
c8926152 9533 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
080e5a8d 9534
841a1577 9535 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
04f2d78b
CB
9536 GCC 4.6.0 optimizes based on type-based alias analysis.
9537 For example, if b is of type struct buffer * and v of type struct
eab3844f
PE
9538 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
9539 != &v->size, and therefore "v->size = 1; b->size = 2; return
9540 v->size;" must therefore return 1. This assumption is incorrect
9541 for Emacs, since it type-puns struct Lisp_Vector * with many other
9542 types. To fix this problem, this patch adds a new type struct
f904488f 9543 vectorlike_header that documents the constraints on layout of vectors
eab3844f
PE
9544 and pseudovectors, and helps optimizing compilers not get fooled
9545 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
9546 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
f904488f
PE
9547 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
9548 the size member.
eab3844f
PE
9549 (XSETPVECTYPE): Rewrite in terms of new macro.
9550 (XSETPVECTYPESIZE): New macro, specifying both type and size.
9551 This is a bit clearer, and further avoids the possibility of
9552 undesirable aliasing.
9553 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
f904488f 9554 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
eab3844f
PE
9555 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
9556 since Lisp_Subr is a special case (no "next" field).
04f2d78b
CB
9557 (ASIZE): Now uses header.size rather than size.
9558 All previous uses of XVECTOR (foo)->size replaced to use this macro,
f904488f
PE
9559 to avoid the hassle of writing XVECTOR (foo)->header.size.
9560 (struct vectorlike_header): New type.
eab3844f
PE
9561 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
9562 object, to help avoid aliasing.
9563 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
9564 (SUBRP): Likewise, since Lisp_Subr is a special case.
9565 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
9566 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
9567 (struct Lisp_Hash_Table): Combine first two members into a single
f904488f 9568 struct vectorlike_header member. All uses of "size" and "next" members
eab3844f
PE
9569 changed to be "header.size" and "header.next".
9570 * buffer.h (struct buffer): Likewise.
9571 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
9572 * frame.h (struct frame): Likewise.
9573 * process.h (struct Lisp_Process): Likewise.
9574 * termhooks.h (struct terminal): Likewise.
9575 * window.c (struct save_window_data, struct saved_window): Likewise.
9576 * window.h (struct window): Likewise.
9577 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
9578 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
9579 * buffer.c (init_buffer_once): Likewise.
9580 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
9581 special case.
9582 * process.c (Fformat_network_address): Use local var for size,
9583 for brevity.
9584
0df1eac5
PE
9585 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
9586
847ab9d1 9587 Make the Lisp reader and string-to-float more consistent (Bug#8525)
452f4150
PE
9588 * data.c (atof): Remove decl; no longer used or needed.
9589 (digit_to_number): Move to lread.c.
9590 (Fstring_to_number): Use new string_to_number function, to be
9591 consistent with how the Lisp reader treats infinities and NaNs.
9592 Do not assume that floating-point numbers represent EMACS_INT
9593 without losing information; this is not true on most 64-bit hosts.
9594 Avoid double-rounding errors, by insisting on integers when
9595 parsing non-base-10 numbers, as the documentation specifies.
9596 * lisp.h (string_to_number): New decl, replacing ...
9597 (isfloat_string): Remove.
bc0a5c13 9598 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
d78050d6 9599 (read1): Do not accept +. and -. as integers; this
452f4150
PE
9600 appears to have been a coding error. Similarly, do not accept
9601 strings like +-1e0 as floating point numbers. Do not report
9602 overflow for integer overflows unless the base is not 10 which
9603 means we have no simple and reliable way to continue.
9604 Break out the floating-point parsing into a new
9605 function string_to_number, so that Fstring_to_number parses
9606 floating point numbers consistently with the Lisp reader.
04f2d78b 9607 (digit_to_number): Move here from data.c. Make it static inline.
452f4150
PE
9608 (E_CHAR, EXP_INT): Remove, replacing with ...
9609 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
9610 (string_to_number): New function, replacing isfloat_string.
9611 This function checks for valid syntax and produces the resulting
9612 Lisp float number too. Rework it so that string-to-number
bc0a5c13 9613 no longer mishandles examples like "1.0e+". Use strtoumax,
d78050d6
PE
9614 so that overflow for non-base-10 numbers is reported only when
9615 there's no portable and simple way to convert to floating point.
452f4150 9616
67769ffc
PE
9617 * textprop.c (set_text_properties_1): Rewrite for clarity,
9618 and to avoid GCC warning about integer overflow.
9619
c20db43f
PE
9620 * intervals.h (struct interval): Use EMACS_INT for members
9621 where EMACS_UINT might cause problems. See
9622 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
9623 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
9624 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
9625 All uses changed.
37aa2f85
PE
9626 (offset_intervals): Tell GCC not to worry about length overflow
9627 when negating a negative length.
c20db43f 9628
2538aa2f
PE
9629 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
9630 (overrun_check_free): Likewise.
9631
f2d3008d
PE
9632 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
9633 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
9634 word size.
9635
ec8df744
PE
9636 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
9637 (gnutls_make_error): Rename local to avoid shadowing.
9638 (gnutls_emacs_global_deinit): ifdef out; not used.
9639 (Fgnutls_boot): Use const for pointer to readonly storage.
9640 Comment out unused local. Fix pointer signedness problems.
9641
640ee02d
PE
9642 * lread.c (openp): Don't stuff size_t into an 'int'.
9643 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
9644 about possible signed overflow.
9645
6048fb2a
PE
9646 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
9647 (GDK_KEY_g): Don't define if already defined.
9648 (xg_prepare_tooltip): Avoid pointer signedness problem.
9649 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
9650
fa3c87e1
PE
9651 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
9652 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
9653
2172544b
PE
9654 * xfns.c (Fx_window_property): Simplify a bit,
9655 to make a bit faster and to avoid GCC 4.6.0 warning.
9656 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
9657
9b821a21
PE
9658 * fns.c (internal_equal): Don't assume size_t fits in int.
9659
3c616cfa
PE
9660 * alloc.c (compact_small_strings): Tighten assertion a little.
9661
c2982e87
PE
9662 Replace pEd with more-general pI, and fix some printf arg casts.
9663 * lisp.h (pI): New macro, generalizing old pEd macro to other
9664 conversion specifiers. For example, use "...%"pI"d..." rather
9665 than "...%"pEd"...".
9666 (pEd): Remove. All uses replaced with similar uses of pI.
61bdb816 9667 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
c2982e87
PE
9668 * alloc.c (check_pure_size): Don't overflow by converting size to int.
9669 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
9670 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
9671 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
9672 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
9673 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
9674 64-bit hosts.
9675 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
9676 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
9677 * print.c (safe_debug_print, print_object): Likewise.
9678 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
9679 to int.
6f04d126
PE
9680 Use pI instead of if-then-else-abort. Use %p to avoid casts,
9681 avoiding the 0 flag, which is not portable.
c2982e87
PE
9682 * process.c (Fmake_network_process): Use pI to avoid cast.
9683 * region-cache.c (pp_cache): Likewise.
9684 * xdisp.c (decode_mode_spec): Likewise.
9685 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
9686 behavior on 64-bit hosts with printf arg.
6f04d126 9687 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
c2982e87
PE
9688 (x_stop_queuing_selection_requests): Likewise.
9689 (x_get_window_property): Don't truncate byte count to an 'int'
9690 when tracing.
0b432f21 9691
5e073ec7
PE
9692 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
9693 here, since it parses constructs like leading '-' and spaces,
9694 which are not wanted; and it overflows with large numbers.
9695 Instead, simply match F[0-9]+, which is what is wanted anyway.
9696
36372bf9
PE
9697 * alloc.c: Remove unportable assumptions about struct layout.
9698 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
9699 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
9700 (allocate_vectorlike, make_pure_vector): Use the new macros,
9701 plus offsetof, to remove unportable assumptions about struct layout.
9702 These assumptions hold on all porting targets that I know of, but
9703 they are not guaranteed, they're easy to remove, and removing them
9704 makes further changes easier.
9705
0b432f21
PE
9706 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
9707 This doesn't fix a bug but makes the code clearer.
bfd1c781
PE
9708 (string_overrun_cookie): Now const. Use initializers that
9709 don't formally overflow signed char, to avoid warnings.
000098c1
PE
9710 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
9711 can cause Emacs to crash when string overrun checking is enabled.
c7bda33c
PE
9712 (allocate_buffer): Don't assume sizeof (struct buffer) is a
9713 multiple of sizeof (EMACS_INT); it need not be, if
9714 alignof(EMACS_INT) < sizeof (EMACS_INT).
d0f4e1f5 9715 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
0b432f21 9716
895009e1
JB
97172011-04-26 Juanma Barranquero <lekktu@gmail.com>
9718
9719 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
9720
6a7a1b0b
TZ
97212011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
9722
9723 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
b5f869a7 9724 supposed to be handshaking. (Bug#8556)
6a7a1b0b
TZ
9725 Reported by Paul Eggert <eggert@cs.ucla.edu>.
9726
841a1577 97272011-04-26 Daniel Colascione <dan.colascione@gmail.com>
0438ce91
DC
9728
9729 * lisp.h (Qdebug): List symbol.
895009e1 9730 * eval.c (Qdebug): Restore global linkage.
0438ce91
DC
9731 * keyboard.c (debug-on-event): New variable.
9732 (handle_user_signal): Break into debugger when debug-on-event
9733 matches the current signal symbol.
9734
f2d3ba6f
DN
97352011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
9736
9737 * alloc.c (check_sblock, check_string_bytes)
9738 (check_string_free_list): Convert to standard C.
9739
42ce4c63
TZ
97402011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
9741
9742 * w32.c (emacs_gnutls_push): Fix typo.
9743
825cd63c
EZ
97442011-04-25 Eli Zaretskii <eliz@gnu.org>
9745
fb11d64d
EZ
9746 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
9747 "cast to pointer from integer of different size".
9748
825cd63c
EZ
9749 Improve doprnt and its use in verror. (Bug#8545)
9750 * doprnt.c (doprnt): Document the set of format control sequences
9751 supported by the function. Use SAFE_ALLOCA instead of always
9752 using `alloca'.
9753
9754 * eval.c (verror): Don't limit the buffer size at size_max-1, that
9755 is one byte too soon. Don't use xrealloc; instead xfree and
9756 xmalloc anew.
9757
e061a11b
TZ
97582011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
9759
9760 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
9761 callbacks stage.
9762
9763 * gnutls.c: Renamed global_initialized to
9764 gnutls_global_initialized. Added internals for the
9765 :verify-hostname-error, :verify-error, and :verify-flags
9766 parameters of `gnutls-boot' and documented those parameters in the
9767 docstring. Start callback support.
9173deec
JB
9768 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
9769 unless a fatal error occurred. Call gnutls_alert_send_appropriate
9770 on error. Return error code.
e061a11b
TZ
9771 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
9772 (emacs_gnutls_read): Likewise.
9773 (Fgnutls_boot): Return handshake error code.
9774 (emacs_gnutls_handle_error): New function.
9775 (wsaerror_to_errno): Likewise.
9776
9777 * w32.h (emacs_gnutls_pull): Add prototype.
9778 (emacs_gnutls_push): Likewise.
9779
9780 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
9781 (emacs_gnutls_push): Likewise.
9782
97832011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
9784
9785 * process.c (wait_reading_process_output): Check if GnuTLS
9786 buffered some data internally if no FDs are set for TLS
9787 connections.
9788
9789 * makefile.w32-in (OBJ2): Add gnutls.$(O).
9790 (LIBS): Link to USER_LIBS.
9791 ($(BLD)/gnutls.$(0)): New target.
9792
fa6996bc
EZ
97932011-04-24 Eli Zaretskii <eliz@gnu.org>
9794
eb35682e
EZ
9795 * xdisp.c (handle_single_display_spec): Rename the
9796 display_replaced_before_p argument into display_replaced_p, to
9797 make it consistent with the commentary. Fix typos in the
9798 commentary.
9799
e2ad650c
EZ
9800 * textprop.c (syms_of_textprop): Remove dead code.
9801 (copy_text_properties): Delete obsolete commentary about an
9802 interface that was deleted long ago. Fix typos in the description
9803 of arguments.
9804
1b2de274
EZ
9805 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
9806 to changes in oldXMenu/XMenu.h from 2011-04-16.
9807 <menu_help_message, prev_menu_help_message>: Constify.
9808 (IT_menu_make_room): menu->help_text is now `const char **';
9809 adjust.
9810
9811 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
9812 to changes in oldXMenu/XMenu.h from 2011-04-16.
9813 (struct XMenu): Declare `help_text' `const char **'.
9814
9815 * xfaces.c <Qunspecified>: Make extern again.
9816
9817 * syntax.c: Include sys/types.h before including regex.h, as
75f1671a 9818 required by POSIX.
1b2de274 9819
762b15be
EZ
9820 * doc.c (get_doc_string): Improve the format passed to `error'.
9821
9822 * doprnt.c (doprnt): Improve commentary.
9823
9824 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
9825
9826 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
9827 them with etags.
9828
f1052e5d
EZ
9829 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
9830 changes in globals.h immediately force recompilation.
762b15be
EZ
9831 (TAGS): Depend on $(CURDIR)/m/intel386.h and
9832 $(CURDIR)/s/ms-w32.h.
9833 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
f1052e5d 9834
fa6996bc
EZ
9835 * character.c (Fchar_direction): Function deleted.
9836 (syms_of_character): Don't defsubr it.
9837 <char-direction-table>: Deleted.
9838
e6c3da20
EZ
98392011-04-23 Eli Zaretskii <eliz@gnu.org>
9840
9841 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
9842 * doprnt.c: Include limits.h.
9843 (SIZE_MAX): New macro.
04f2d78b
CB
9844 (doprnt): Return a size_t value. 2nd arg is now size_t.
9845 Many local variables are now size_t instead of int or unsigned.
e6c3da20
EZ
9846 Improve overflow protection. Support `l' modifier for integer
9847 conversions. Support %l conversion. Don't assume an EMACS_INT
9848 argument for integer conversions and for %c.
9849
9850 * lisp.h (doprnt): Restore prototype.
9851
9852 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
9853 $(SRC)/character.h.
9854
9855 * Makefile.in (base_obj): Add back doprnt.o.
9856
9857 * deps.mk (doprnt.o): Add back prerequisites.
9858 (callint.o): Depend on character.h.
9859
9860 * eval.c (internal_lisp_condition_case): Include the handler
9861 representation in the error message.
9862 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
9863 when breaking from the loop.
9864
9865 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
9866
9867 * callint.c (Fcall_interactively): When displaying error message
9868 about invalid control letter, pass the character's codepoint, not
9869 a pointer to its multibyte form. Improve display of the character
9870 in octal and display also its hex code.
9871
9872 * character.c (char_string): Use %x to display the (unsigned)
9873 codepoint of an invalid character, to avoid displaying a bogus
9874 negative value.
9875
9876 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
9877 `error', not SYMBOL_NAME itself.
9878
9879 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
9880 character arguments to `error'.
9881
9882 * charset.c (check_iso_charset_parameter): Fix incorrect argument
9883 to `error' in error message about FINAL_CHAR argument. Make sure
9884 FINAL_CHAR is a character, and use %c when it is passed as
9885 argument to `error'.
9886
4ffd0d6b 98872011-04-23 Eli Zaretskii <eliz@gnu.org>
97a93095
EZ
9888
9889 * s/ms-w32.h (localtime): Redirect to sys_localtime.
9890
9891 * w32.c: Include <time.h>.
9892 (sys_localtime): New function.
9893
4ffd0d6b 98942011-04-23 Chong Yidong <cyd@stupidchicken.com>
c17819f4
CY
9895
9896 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
9897
4ffd0d6b 9898 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
aac0c6e3 9899
4ffd0d6b 99002011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
aac0c6e3 9901
4ffd0d6b
GM
9902 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
9903 zombies (Bug#8467).
aac0c6e3 9904
04c56954
EZ
99052011-04-19 Eli Zaretskii <eliz@gnu.org>
9906
9907 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
9908 gl_state.e_property when gl_state.object is Qt.
9909
9910 * insdel.c (make_gap_larger): Remove limitation of buffer size
9911 to <= INT_MAX.
9912
16a43933
CY
99132011-04-18 Chong Yidong <cyd@stupidchicken.com>
9914
9915 * xdisp.c (lookup_glyphless_char_display)
9916 (produce_glyphless_glyph): Handle cons cell entry in
9917 glyphless-char-display.
9918 (Vglyphless_char_display): Document it.
9919
9920 * term.c (produce_glyphless_glyph): Handle cons cell entry in
9921 glyphless-char-display.
9922
4581706e
CY
99232011-04-17 Chong Yidong <cyd@stupidchicken.com>
9924
9925 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
9926
9927 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
9928
9929 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
9930 definition for no-X builds.
9931
4887c6e2 99322011-04-16 Paul Eggert <eggert@cs.ucla.edu>
764430a3 9933
fd35b6f9
PE
9934 Static checks with GCC 4.6.0 and non-default toolkits.
9935
5c1ccb01
PE
9936 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
9937
006c5daa
PE
9938 * process.c (keyboard_bit_set): Define only if SIGIO.
9939 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
9940 (send_process): Repair possible setjmp clobbering.
9941
efc736d3
PE
9942 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
9943
4e2fe2e6
PE
9944 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
9945
f97334a2
PE
9946 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
9947
4e75f29d
PE
9948 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
9949 Define only if needed.
9950
90efadd1
PE
9951 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
9952 by pacifying GCC about it. Maybe it's time to retire it?
875975e9 9953 * xfaces.c (USG, __TIMEVAL__): Likewise.
90efadd1 9954
3c647824
PE
9955 * dispextern.h (struct redisplay_interface): Rename param
9956 to avoid shadowing.
e264f262 9957 * termhooks.h (struct terminal): Likewise.
761383f4 9958 * xterm.c (xembed_send_message): Likewise.
3c647824 9959
b58c5c4a
PE
9960 * insdel.c (make_gap_smaller): Define only if
9961 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
9962
cad59032
PE
9963 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
9964 it.
9965
c339dc2e
PE
9966 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
9967 so that we aren't warned about unused symbols.
9968
91a3e27b
PE
9969 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
9970
399c71d3 9971 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
7a3fb125 9972
8ffc96f5
PE
9973 * xfns.c (x_real_positions): Mark locals as initialized.
9974
eef9bc79
PE
9975 * xmenu.c (xmenu_show): Don't use uninitialized vars.
9976
098db9dd
PE
9977 * xterm.c: Fix problems found by static analysis with other toolkits.
9978 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
dda3aedd
PE
9979 (x_dispatch_event): Declare static if USE_GTK, and
9980 define if USE_GTK || USE_X_TOOLKIT.
098db9dd 9981 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
dda3aedd 9982 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
841a1577
JB
9983 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
9984 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
098db9dd 9985
eb18f6cc
PE
9986 * xmenu.c (menu_help_callback): Pointer type fixes.
9987 Use const pointers when pointing at readonly data. Avoid pointer
9988 signedness clashes.
9989 (FALSE): Remove unused macro.
9990 (update_frame_menubar): Remove unused decl.
9991
1fe72bf8
PE
9992 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
9993
60d9e1db
PE
9994 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
9995 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
9996 (single_menu_item): Rename local to avoid shadowing.
9997
39261c26
PE
9998 * keyboard.c (make_lispy_event): Remove unused local var.
9999
018c5e19
PE
10000 * frame.c, frame.h (x_get_resource_string): Bring this back, but
10001 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
10002
63d2b86e
PE
10003 * bitmaps: Change bitmaps from unsigned char back to the X11
10004 compatible char. Avoid the old compiler warnings about
10005 out-of-range initializers by using, for example, '\xab' rather
10006 than 0xab.
10007
aefd87e1
PE
10008 * xgselect.c (xgselect_initialize): Check vs interface
10009 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
10010
bf501fb9
PE
10011 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
10012
e9829fdf
PE
10013 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
10014 to read-only memory.
10015
1086c095
PE
10016 * fns.c (vector): Remove; this old hack is no longer needed.
10017
2baccd04 10018 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
401f10cb 10019 Remove unused var.
dde42981 10020 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
2baccd04 10021
72391843 10022 * xrdb.c (x_load_resources): Omit unused local.
3565b346 10023
436c16df 10024 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
8a94ea33 10025 (x_window): Rename locals to avoid shadowing.
dc5ddd85 10026 (USG): Use the kludged USG macro, to pacify gcc.
436c16df 10027
92bb796d 10028 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
bbbef9e1 10029 (x_term_init): Remove local to avoid shadowing.
92bb796d 10030
764430a3 10031 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
4887c6e2
PE
10032
10033 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
10034 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
10035
d1dfb56c
EZ
100362011-04-16 Eli Zaretskii <eliz@gnu.org>
10037
c4354cb4
EZ
10038 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
10039
d1dfb56c
EZ
10040 Fix regex.c, syntax.c and friends for buffers > 2GB.
10041 * syntax.h (struct gl_state_s): Declare character position members
10042 EMACS_INT.
10043
10044 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
10045
04f2d78b
CB
10046 * textprop.c (verify_interval_modification, interval_of):
10047 Declare arguments EMACS_INT.
d1dfb56c
EZ
10048
10049 * intervals.c (adjust_intervals_for_insertion): Declare arguments
10050 EMACS_INT.
10051
10052 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
10053
10054 * indent.c (Fvertical_motion): Local variable it_start is now
10055 EMACS_INT.
10056
10057 * regex.c (re_match, re_match_2, re_match_2_internal)
10058 (bcmp_translate, regcomp, regexec, print_double_string)
10059 (group_in_compile_stack, re_search, re_search_2, regex_compile)
10060 (re_compile_pattern, re_exec): Declare arguments and local
10061 variables `size_t' and `ssize_t' and return values `regoff_t', as
10062 appropriate.
10063 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
10064 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
10065 <compile_stack_type>: `size' and `avail' are now `size_t'.
10066
10067 * regex.h <regoff_t>: Use ssize_t, not int.
10068 (re_search, re_search_2, re_match, re_match_2): Arguments that
10069 specify buffer/string position and length are now ssize_t and
10070 size_t. Return type is regoff_t.
10071
613052cd
BK
100722011-04-16 Ben Key <bkey76@gmail.com>
10073
10074 * nsfont.m: Fixed bugs in ns_get_family and
10075 ns_descriptor_to_entity that were caused by using free to
10076 deallocate memory blocks that were allocated by xmalloc (via
10077 xstrdup). This caused Emacs to crash when compiled with
10078 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
10079 --enable-checking=xmallocoverrun). xfree is now used to
10080 deallocate these memory blocks.
10081
4170f62f 100822011-04-15 Paul Eggert <eggert@cs.ucla.edu>
3e047f51 10083
71b41406
PE
10084 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
10085
9587a89d
PE
10086 emacs_write: Accept and return EMACS_INT for sizes.
10087 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
10088 et seq.
10089 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
10090 Accept and return EMACS_INT.
10091 (emacs_gnutls_write): Return the number of bytes written on
10092 partial writes.
10093 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
273a5f82
PE
10094 (emacs_read, emacs_write): Remove check for negative size, as the
10095 Emacs source code has been audited now.
9587a89d
PE
10096 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
10097 (emacs_read, emacs_write): Use it.
273a5f82
PE
10098 * process.c (send_process): Adjust to the new signatures of
10099 emacs_write and emacs_gnutls_write. Do not attempt to store
10100 a byte offset into an 'int'; it might overflow.
9587a89d 10101 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
273a5f82 10102
3e047f51
PE
10103 * sound.c: Don't assume sizes fit in 'int'.
10104 (struct sound_device.period_size, alsa_period_size):
9c3c56a7 10105 Return EMACS_INT, not int.
3e047f51 10106 (struct sound_device.write, vox_write, alsa_write):
9c3c56a7
PE
10107 Accept EMACS_INT, not int.
10108 (wav_play, au_play): Use EMACS_INT to store sizes and to
3e047f51
PE
10109 record read return values.
10110
cc39a9db
BK
101112011-04-15 Ben Key <bkey76@gmail.com>
10112
c9d0ec6d
JB
10113 * keyboard.c (Qundefined): Don't declare static since it is used
10114 in nsfns.m.
10115 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
10116 static since they are used in nsfont.m.
cc39a9db 10117
6c60eb9f
SM
101182011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
10119
10120 * process.c (Qprocessp): Don't declare static.
10121 * lisp.h (Qprocessp): Declare again.
10122
7990b61a
JB
101232011-04-15 Juanma Barranquero <lekktu@gmail.com>
10124
10125 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
10126
5d4cb038
PE
101272011-04-14 Paul Eggert <eggert@cs.ucla.edu>
10128
8bd7b830 10129 Improve C-level modularity by making more things 'static'.
cd64ea1d 10130
e3b27b31
PE
10131 Don't publish debugger-only interfaces to other modules.
10132 * lisp.h (safe_debug_print, debug_output_compilation_hack):
10133 (verify_bytepos, count_markers): Move decls to the only modules
10134 that need them.
10135 * region-cache.h (pp_cache): Likewise.
10136 * window.h (check_all_windows): Likewise.
10137 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
10138
5d4cb038
PE
10139 * sysdep.c (croak): Now static, if
10140 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
10141 * syssignal.h (croak): Declare only if not static.
69003fd8
PE
10142
10143 * alloc.c (refill_memory_reserve): Now static if
10144 !defined REL_ALLOC || defined SYSTEM_MALLOC.
10145 * lisp.h (refill_memory_reserve): Declare only if not static.
93ea6e8f 10146
e87b6180
PE
10147 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
10148 Define only if USE_LUCID.
10149
ac64929e
PE
10150 * xrdb.c (x_customization_string, x_rm_string): Now static.
10151
6f37259d
PE
10152 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
10153 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
10154
1683e3ab
PE
10155 * xdisp.c (draw_row_with_mouse_face): Now static.
10156 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
10157
de9c2632
PE
10158 * window.h (check_all_windows): Mark externally visible.
10159
2b96acb7
PE
10160 * window.c (window_deletion_count): Now static.
10161
10162 * undo.c: Make symbols static if they're not exported.
10163 (last_undo_buffer, last_boundary_position, pending_boundary):
10164 Now static.
10165
50436f33
PE
10166 * textprop.c (interval_insert_behind_hooks): Now static.
10167 (interval_insert_in_front_hooks): Likewise.
10168
64520e5c
PE
10169 * term.c: Make symbols static if they're not exported.
10170 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
10171 (max_frame_lines, tty_set_terminal_modes):
10172 (tty_reset_terminal_modes, tty_turn_off_highlight):
10173 (get_tty_terminal): Now static.
10174 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
10175 * termhooks.h (term_mouse_moveto): Do not declare if
8bd7b830 10176 HAVE_WINDOW_SYSTEM.
64520e5c
PE
10177 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
10178 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
10179
1fa53021
PE
10180 * sysdep.c: Make symbols static if they're not exported.
10181 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
10182 Now static.
10183 (sigprocmask_set, full_mask): Remove; unused.
10184 (wait_debugging): Mark as visible.
10185 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
10186 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
10187
d4b43b22
PE
10188 * syntax.c (syntax_temp): Define only if !__GNUC__.
10189
b7c513d0
PE
10190 * sound.c (current_sound_device, current_sound): Now static.
10191
989b29ad
PE
10192 * search.c (searchbufs, searchbuf_head): Now static.
10193
13a55a78
PE
10194 * scroll.c (scroll_cost): Remove; unused.
10195 * dispextern.h (scroll_cost): Remove decl.
10196
de68a1fc
PE
10197 * region-cache.h (pp_cache): Mark as externally visible.
10198
40ccffa6
PE
10199 * process.c: Make symbols static if they're not exported.
10200 (process_tick, update_tick, create_process, chan_process):
10201 (Vprocess_alist, proc_buffered_char, datagram_access):
10202 (fd_callback_data, send_process_frame, process_sent_to): Now static.
10203 (deactivate_process): Mark defn as static, as well as decl.
10204 * lisp.h (create_process): Remove decl.
10205 * process.h (chan_process, Vprocess_alist): Remove decls.
10206
ad64fc97
PE
10207 * print.c: Make symbols static if they're not exported.
10208 (print_depth, new_backquote_output, being_printed, print_buffer):
10209 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
10210 (print_interval, print_number_index, initial_stderr_stream):
10211 Now static.
10212 * lisp.h (Fprinc): Remove decl.
10213 (debug_output_compilation_hack): Mark as externally visible.
10214
adddb265
PE
10215 * sysdep.c (croak): Move decl from here to syssignal.h.
10216 * syssignal.h (croak): Put it here, so the API can be checked when
10217 'croak' is called from dissociate_if_controlling_tty.
10218
1717ede2
PE
10219 * minibuf.c: Make symbols static if they're not exported.
10220 (minibuf_save_list, choose_minibuf_frame): Now static.
10221 * lisp.h (choose_minibuf_frame): Remove decl.
10222
fa5fb2bc
PE
10223 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
10224
1e3890d1
PE
10225 * lread.c: Make symbols static if they're not exported.
10226 (read_objects, initial_obarray, oblookup_last_bucket_number):
10227 Now static.
10228 (make_symbol): Remove; unused.
10229 * lisp.h (initial_obarray, make_symbol): Remove decls.
10230
8a1414fa
PE
10231 * keyboard.c: Make symbols static if they're not exported.
10232 (single_kboard, recent_keys_index, total_keys, recent_keys):
10233 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
10234 (this_single_command_key_start, echoing, last_auto_save):
10235 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
10236 (command_loop, echo_now, keyboard_init_hook, help_char_p):
10237 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
10238 (Vlispy_mouse_stem, double_click_count):
10239 Now static.
10240 (force_auto_save_soon): Define only if SIGDANGER.
10241 (ignore_mouse_drag_p): Now static if
10242 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
10243 (print_help): Remove; unused.
10244 (stop_character, last_timer_event): Mark as externally visible.
10245 * keyboard.h (ignore_mouse_drag_p): Declare only if
10246 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
10247 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
10248 * lisp.h (echoing): Remove decl.
10249 (force_auto_save_soon): Declare only if SIGDANGER.
10250 * xdisp.c (redisplay_window): Simplify code, to make it more
10251 obvious that ignore_mouse_drag_p is not accessed if !defined
10252 USE_GTK && !defined HAVE_NS.
10253
93ea6e8f
PE
10254 * intervals.c: Make symbols static if they're not exported.
10255 (merge_properties_sticky, merge_interval_right, delete_interval):
10256 Now static.
10257 * intervals.h (merge_interval_right, delete_interval): Remove decls.
10258
77382fcc
PE
10259 * insdel.c: Make symbols static if they're not exported.
10260 However, leave prepare_to_modify_buffer alone. It's never
10261 called from outside this function, but that appears to be a bug.
10262 (combine_after_change_list, combine_after_change_buffer):
4889fc82 10263 (adjust_after_replace, signal_before_change): Now static.
77382fcc
PE
10264 (adjust_after_replace_noundo): Remove; unused.
10265 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
4889fc82 10266 (signal_before_change): Remove decls.
77382fcc 10267
9306c32e
PE
10268 * indent.c (val_compute_motion, val_vmotion): Now static.
10269
cd44d2eb
PE
10270 * image.c: Make symbols static if they're not exported.
10271 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
10272 if USE_GTK.
10273 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
10274 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
10275
ad9a7a06
PE
10276 * fringe.c (standard_bitmaps): Now static.
10277 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
10278
81626931
PE
10279 * frame.c: Make symbols static if they're not exported.
10280 (x_report_frame_params, make_terminal_frame): Now static.
10281 (get_frame_param): Now static, unless HAVE_NS.
10282 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
10283 (x_get_resource_string): Remove; not used.
10284 * frame.h (make_terminal_frame, x_report_frame_params):
10285 (x_get_resource_string); Remove decls.
10286 (x_fullscreen_adjust): Declare only if WINDOWSNT.
10287 * lisp.h (get_frame_param): Declare only if HAVE_NS.
10288
239f9db9
PE
10289 * font.c, fontset.c: Make symbols static if they're not exported.
10290 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
10291 (FACE_SUITABLE_FOR_CHAR_P): Use it.
10292 * font.c (font_close_object): Now static.
10293 * font.h (font_close_object): Remove.
10294 * fontset.c (FONTSET_OBJLIST): Remove.
10295 (free_realized_fontset) #if-0 the body, which does nothing.
10296 (face_suitable_for_char_p): #if-0, as it's never called.
10297 * fontset.h (face_suitable_for_char_p): Remove decl.
04f2d78b
CB
10298 * xfaces.c (face_at_string_position):
10299 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
239f9db9
PE
10300 since 0 is always ASCII.
10301
dfcf3579
PE
10302 * fns.c (weak_hash_tables): Now static.
10303
5045092b
PE
10304 * fileio.c: Make symbols static if they're not exported.
10305 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
10306 (Vwrite_region_annotation_buffers): Now static.
10307
57a96f5c
PE
10308 * eval.c: Make symbols static if they're not exported.
10309 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
10310 * lisp.h (backtrace_list): Remove decl.
10311
35f08c38
PE
10312 * emacs.c: Make symbols static if they're not exported.
10313 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
10314 (fatal_error_code, fatal_error_signal_hook, standard_args):
10315 Now static.
10316 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
10317 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
10318 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
10319 * lisp.h (fatal_error_signal_hook): Remove decl.
10320 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
10321
f44bd759
PE
10322 * editfns.c: Move a (normally-unused) function to its only use.
10323 * editfns.c, lisp.h (get_operating_system_release): Remove.
10324 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
10325 worth the hassle of breaking this out.
10326
b532497d
PE
10327 * xterm.c: Make symbols static if they're not exported.
10328 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
10329 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
10330 (x_destroy_window, x_delete_display):
10331 Now static.
10332 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
10333 (x_mouse_leave): Remove; unused.
10334 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
10335 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
10336 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
10337 Remove decls.
10338 (x_mouse_leave): Declare only if WINDOWSNT.
10339 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
10340 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
10341 USE_X_TOOLKIT.
10342
1675728f
PE
10343 * ftxfont.c: Make symbols static if they're not exported.
10344 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
10345 HAVE_FREETYPE.
10346 * font.h (ftxfont_driver): Likewise.
10347
e4cebfca
PE
10348 * xfns.c: Make symbols static if they're not exported.
10349 (x_last_font_name, x_display_info_for_name):
10350 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
10351 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
10352 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
10353 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
10354 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
10355 (last_show_tip_args): Now static.
10356 (xic_defaut_fontset, xic_create_fontsetname): Define only if
10357 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
10358 (x_screen_planes): Remove; unused.
10359 * dispextern.h (x_screen_planes): Remove decl.
10360
5bf46f05
PE
10361 * dispnew.c: Make symbols static if they're not exported.
10362 * dispextern.h (redraw_garbaged_frames, scrolling):
10363 (increment_row_positions): Remove.
10364 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
10365 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
10366 Now static.
10367 (redraw_garbaged_frames): Remove; unused.
10368
435f4c28
PE
10369 * xfaces.c: Make symbols static if they're not exported.
10370 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
10371 Remove decls.
10372 * xterm.h (defined_color): Remove decls.
10373 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
10374 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
10375 (menu_face_changed_default, defined_color, free_realized_face):
10376 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
10377 (ascii_face_of_lisp_face): Remove; unused.
10378
8524aef3
PE
10379 * xdisp.c: Make symbols static if they're not exported.
10380 * dispextern.h (scratch_glyph_row, window_box_edges):
10381 (glyph_to_pixel_coords, set_cursor_from_row):
10382 (get_next_display_element, set_iterator_to_next):
10383 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
10384 (show_mouse_face): Remove decls
10385 * frame.h (message_buf_print): Likewise.
10386 * lisp.h (pop_message, set_message, check_point_in_composition):
10387 Likewise.
10388 * xterm.h (set_vertical_scroll_bar): Likewise.
10389 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
10390 (message_buf_print, scratch_glyph_row, displayed_buffer):
10391 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
10392 (get_next_display_element, show_mouse_face, window_box_edges):
10393 (frame_to_window_pixel_xy, check_point_in_composition):
10394 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
10395 (glyph_to_pixel_coords): Remove; unused.
10396
16390cd2
PE
10397 * dired.c (file_name_completion): Now static.
10398
10399 * dbusbind.c (xd_in_read_queued_messages): Now static.
10400
a25f4dfa
PE
10401 * lisp.h (circular_list_error, FOREACH): Remove; unused.
10402 * data.c (circular_list_error): Remove.
10403
14a9c8df
PE
10404 * commands.h (last_point_position, last_point_position_buffer):
10405 (last_point_position_window): Remove decls.
10406 * keyboard.c: Make these variables static.
10407
04f2d78b
CB
10408 * coding.h (coding, code_convert_region, encode_coding_gap):
10409 Remove decls.
74ab6df5
PE
10410 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
10411 (iso_code_class, detect_coding, code_convert_region): Now static.
10412 (encode_coding_gap): Remove; unused.
10413
38dfbee1
PE
10414 * chartab.c (chartab_chars, chartab_bits): Now static.
10415
a2cb4e63
PE
10416 * charset.h (charset_iso_8859_1): Remove decl.
10417 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
10418 Now static.
10419
127198fd
PE
10420 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
10421 * ccl.c (Vccl_program_table): Now static.
10422 (check_ccl_update): Remove; unused.
10423
d85b608f
PE
10424 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
10425 * category.h: ... from here.
10426 * category.c (check_category_table, set_category_set): Now static.
10427
31cd66f3
PE
10428 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
10429 * lisp.h: Remove these decls.
10430
c358e587
PE
10431 * buffer.c (buffer_count): Remove unused var.
10432
e78aecca
PE
10433 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
10434 so that it's not optimized away.
10435 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
10436 * dispextern.h (bidi_dump_cached_states): Remove, since it's
10437 exported only to the debugger.
10438
e192d7d3 10439 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
04f2d78b 10440 * atimer.h (run_all_atimers): Remove; not exported.
e192d7d3 10441
92470028
PE
10442 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
10443 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
10444 was inaccessible from Lisp.
10445 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
10446 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
10447
244ed907
PE
10448 alloc.c: Import and export fewer symbols, and remove unused items.
10449 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
10450 is defined.
10451 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
10452 it's not optimized away by whole-program optimization.
10453 (message_enable_multibyte, free_misc): Remove.
10454 (catchlist, handlerlist, mark_backtrace):
10455 Declare only if BYTE_MARK_STACK.
10456 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
10457 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
10458 (message_enable_multibyte): Remove decl.
10459 (free_misc, interval_free_list, float_block, float_block_index):
10460 (n_float_blocks, float_free_list, cons_block, cons_block_index):
10461 (cons_free_list, last_marked_index):
10462 Now static.
10463 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
10464 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
10465 (mark_backtrace): Define only if BYTE_MARK_STACK.
10466 * xdisp.c (message_enable_multibyte): Now static.
10467
61c2b50e 10468 Declare Lisp_Object Q* variables to be 'static' if not exported.
955cbe7b
PE
10469 This makes it easier for human readers (and static analyzers)
10470 to see whether these variables are used from other modules.
10471 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
10472 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
10473 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
10474 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
10475 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
10476 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
10477 * xmenu.c, xselect.c:
10478 Declare Q* vars static if they are not used in other modules.
10479 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
10480 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
10481 Remove decls of unexported vars.
10482 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
10483
95c82688
PE
10484 * lisp.h (DEFINE_FUNC): Make sname 'static'.
10485
16a97296
PE
10486 Make Emacs functions such as Fatom 'static' by default.
10487 This makes it easier for human readers (and static analyzers)
10488 to see whether these functions can be called from other modules.
10489 DEFUN now defines a static function. To make the function external
10490 so that it can be used in other C modules, use the new macro DEFUE.
8bd7b830
PE
10491 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
10492 (Finit_image_library):
16a97296
PE
10493 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
10494 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
10495 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
10496 Remove decls, since these functions are now static.
10497 (Funintern, Fget_internal_run_time): New decls, since these functions
10498 were already external.
95c82688 10499
16a97296
PE
10500 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
10501 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
10502 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
10503 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
10504 * keyboard.c, keymap.c, lread.c:
10505 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
10506 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
10507 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
10508 Mark functions with DEFUE instead of DEFUN,
10509 if they are used in other modules.
10510 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
10511 decls for now-static functions.
10512 * buffer.h (Fdelete_overlay): Remove decl.
10513 * callproc.c (Fgetenv_internal): Mark as internal.
10514 * composite.c (Fremove_list_of_text_properties): Remove decl.
10515 (Fcomposition_get_gstring): New forward static decl.
10516 * composite.h (Fcomposite_get_gstring): Remove decl.
10517 * dired.c (Ffile_attributes): New forward static decl.
10518 * doc.c (Fdocumntation_property): New forward static decl.
10519 * eval.c (Ffetch_bytecode): New forward static decl.
10520 (Funintern): Remove extern decl; now in .h file where it belongs.
10521 * fileio.c (Fmake_symbolic_link): New forward static decl.
10522 * image.c (Finit_image_library): New forward static decl.
10523 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
10524 * intervals.h (Fprevious_property_change):
10525 (Fremove_list_of_text_properties): Remove decls.
10526 * keyboard.c (Fthis_command_keys): Remove decl.
10527 (Fcommand_execute): New forward static decl.
10528 * keymap.c (Flookup_key): New forward static decl.
10529 (Fcopy_keymap): Now static.
10530 * keymap.h (Flookup_key): Remove decl.
10531 * process.c (Fget_process): New forward static decl.
10532 (Fprocess_datagram_address): Mark as internal.
10533 * syntax.c (Fsyntax_table_p): New forward static decl.
10534 (skip_chars): Remove duplicate decl.
10535 * textprop.c (Fprevious_property_change): New forward static decl.
10536 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
10537 Now internal.
10538 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
10539 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
10540
785bbd42
PE
10541 * editfns.c (Fformat): Remove unreachable code.
10542
8b913b57
AS
105432011-04-14 Andreas Schwab <schwab@linux-m68k.org>
10544
10545 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
10546 change. (Bug#8496)
10547
a6744a35
EZ
105482011-04-13 Eli Zaretskii <eliz@gnu.org>
10549
10550 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
10551 when at ZV. (Bug#8487)
10552
e7974947
AS
105532011-04-12 Andreas Schwab <schwab@linux-m68k.org>
10554
baad03f0
AS
10555 * charset.c (Fclear_charset_maps): Use xfree instead of free.
10556 (Bug#8437)
10557 * keyboard.c (parse_tool_bar_item): Likewise.
10558 * sound.c (sound_cleanup, alsa_close): Likewise.
10559 * termcap.c (tgetent): Likewise.
10560 * xfns.c (x_default_font_parameter): Likewise.
10561 * xsettings.c (read_and_apply_settings): Likewise.
10562
e7974947
AS
10563 * alloc.c (overrun_check_malloc, overrun_check_realloc)
10564 (overrun_check_free): Protoize.
10565
28272684
PE
105662011-04-12 Paul Eggert <eggert@cs.ucla.edu>
10567
10568 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
10569 since callers should never pass a negative size.
10570 Change the signature to match that of plain 'read' and 'write'; see
10571 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
10572 * lisp.h: Update prototypes of emacs_write and emacs_read.
10573
11997c76
EZ
105742011-04-11 Eli Zaretskii <eliz@gnu.org>
10575
10576 * xdisp.c (redisplay_window): Don't try to determine the character
10577 position of the scroll margin if the window start point w->startp
e896f03c 10578 is outside the buffer's accessible region. (Bug#8468)
11997c76 10579
8a2cbd72
EZ
105802011-04-10 Eli Zaretskii <eliz@gnu.org>
10581
10582 Fix write-region and its subroutines for buffers > 2GB.
10583 * fileio.c (a_write, e_write): Modify declaration of arguments and
10584 local variables to support buffers larger than 2GB.
10585 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
10586
10587 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
10588 argument, local variables, and return value.
10589
10590 * lisp.h: Update prototypes of emacs_write and emacs_read.
10591
10592 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
10593
4073e537 105942011-04-10 Paul Eggert <eggert@cs.ucla.edu>
eb3f1cc8 10595
1ebfdcb6
PE
10596 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
10597
b2ded58d
PE
10598 Fix more problems found by GCC 4.6.0's static checks.
10599
7d66342c
PE
10600 * xdisp.c (vmessage): Use a better test for character truncation.
10601
bbf47d44
PE
10602 * charset.c (load_charset_map): <, not <=, for optimization,
10603 and to avoid potential problems with integer overflow.
9248994d 10604 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
f9a68bc5 10605 * casetab.c (set_identity, shuffle): Likewise.
3ab1c7ce 10606 * editfns.c (Fformat): Likewise.
1e69125e 10607 * syntax.c (skip_chars): Likewise.
3befa583 10608
e3019616
PE
10609 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
10610 This also lets GCC 4.6.0 generate slightly better loop code.
10611
becfa255
PE
10612 * callint.c (Fcall_interactively): <, not <=, for optimization.
10613 (Fcall_interactively): Count the number of arguments produced,
10614 not the number of arguments given. This is simpler and lets GCC
10615 4.6.0 generate slightly better code.
10616
dae0cd48
PE
10617 * ftfont.c: Distingish more carefully between FcChar8 and char.
10618 The previous code passed unsigned char * to a functions like
10619 strlen and xstrcasecmp that expect char *, which does not
10620 conform to the C standard.
10621 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
10622 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
10623 char * when the C standard requires it.
10624
76032d70
PE
10625 * keyboard.c (read_char): Remove unused var.
10626
eb3f1cc8
PE
10627 * eval.c: Port to Windows vsnprintf (Bug#8435).
10628 Include <limits.h>.
10629 (SIZE_MAX): Define if the headers do not.
10630 (verror): Do not give up if vsnprintf returns a negative count.
10631 Instead, grow the buffer. This ports to Windows vsnprintf, which
10632 does not conform to C99. Problem reported by Eli Zaretskii.
10633 Also, simplify the allocation scheme, by avoiding the need for
10634 calling realloc, and removing the ALLOCATED variable.
10635
70476b54
PE
10636 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
10637
12020a9e
PE
10638 Remove invocations of doprnt, as Emacs now uses vsnprintf.
10639 But keep the doprint source code for now, as we might revamp it
10640 and use it again (Bug#8435).
ea6c7ae6
PE
10641 * lisp.h (doprnt): Remove.
10642 * Makefile.in (base_obj): Remove doprnt.o.
10643 * deps.mk (doprnt.o): Remove.
10644
5fdb398c
PE
10645 error: Print 32- and 64-bit integers portably (Bug#8435).
10646 Without this change, on typical 64-bit hosts error ("...%d...", N)
10647 was used to print both 32- and 64-bit integers N, which relied on
10648 undefined behavior.
61bdb816 10649 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
5fdb398c
PE
10650 * lisp.h (error, verror): Mark as printf-like functions.
10651 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
10652 Report overflow in size calculations when allocating printf buffer.
10653 Do not truncate output string at its first null byte.
10654 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
10655 Truncate the output at a character boundary, since vsnprintf does not
10656 do that.
10657 * charset.c (check_iso_charset_parameter): Convert internal
10658 character to string before calling 'error', since %c now has the
10659 printf meaning.
10660 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
10661 overflow when computing char to be passed to 'error'. Do not
10662 pass Lisp_Object to 'error'; pass the integer instead.
10663 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
10664 formatted with plain %d.
10665
b189fa66
PE
10666 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
10667
bff87ef0
PE
10668 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
10669
7e2cac20
PE
10670 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
10671
ce4d90b5
PE
10672 * xterm.c (x_catch_errors): Remove duplicate declaration.
10673
266c9547
PE
10674 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
10675
79c49ad2
PE
10676 * xdisp.c, lisp.h (message_nolog): Remove; unused.
10677
368f4090
JM
106782011-04-10 Jim Meyering <meyering@redhat.com>
10679
10680 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
10681 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
10682 return ssize_t not "int", and use size_t as the buffer length.
10683 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
10684 * gnutls.h: Update declarations.
10685 * process.c (read_process_output): Use ssize_t, to match.
10686 (send_process): Likewise.
10687
a32d4040
CY
106882011-04-09 Chong Yidong <cyd@stupidchicken.com>
10689
10690 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
10691
8546720e 106922011-04-09 Chong Yidong <cyd@stupidchicken.com>
aac0c6e3 10693
04f2d78b
CB
10694 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
10695 Use unsigned char, to match FcChar8 type definition.
aac0c6e3 10696
8546720e
GM
10697 * xterm.c (handle_one_xevent):
10698 * xmenu.c (create_and_show_popup_menu):
10699 * xselect.c (x_decline_selection_request)
10700 (x_reply_selection_request): Avoid type-punned deref of X events.
aac0c6e3 10701
0a2f5c1a 107022011-04-09 Eli Zaretskii <eliz@gnu.org>
a53e2e89
EZ
10703
10704 Fix some uses of `int' instead of EMACS_INT.
10705 * search.c (string_match_1, fast_string_match)
10706 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
10707 (scan_buffer, find_next_newline_no_quit)
10708 (find_before_next_newline, search_command, Freplace_match)
10709 (Fmatch_data): Make some `int' variables be EMACS_INT.
10710
10711 * xdisp.c (display_count_lines): 3rd argument and return value now
10712 EMACS_INT. All callers changed.
10713 (pint2hrstr): Last argument is now EMACS_INT.
10714
10715 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
10716 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
10717 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
10718 (decode_coding_utf_16, decode_coding_emacs_mule)
10719 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
10720 (decode_coding_ccl, decode_coding_charset)
10721 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
10722 (decode_coding_iso_2022, decode_coding_emacs_mule)
10723 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
10724 <char_offset, last_offset>: Declare EMACS_INT.
10725 (encode_coding_utf_8, encode_coding_utf_16)
10726 (encode_coding_emacs_mule, encode_invocation_designation)
10727 (encode_designation_at_bol, encode_coding_iso_2022)
10728 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
10729 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
10730 Declare EMACS_INT.
10731 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
10732 (encode_invocation_designation): Last argument P_NCHARS is now
10733 EMACS_INT.
10734 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
10735 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
10736
10737 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
10738 All users changed.
10739
10740 * ccl.c (Fccl_execute_on_string): Declare some variables
10741 EMACS_INT.
10742
8546720e 107432011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
0080dc6b
SS
10744
10745 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
10746
4e19a977
CS
107472011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
10748
10749 * process.c (Fformat_network_address): Doc fix.
10750
87302331
R
107512011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
10752
ee7683eb 10753 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
87302331 10754
cbb59342
CY
107552011-04-08 Chong Yidong <cyd@stupidchicken.com>
10756
10757 * keyboard.c (read_char): Call Lisp function help-form-show,
10758 instead of using internal_with_output_to_temp_buffer.
10759 (Qhelp_form_show): New var.
e0d38eeb 10760 (syms_of_keyboard): Use DEFSYM macro.
cbb59342
CY
10761
10762 * print.c (internal_with_output_to_temp_buffer): Function deleted.
10763
10764 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
10765
e67a13ab
CY
107662011-04-06 Chong Yidong <cyd@stupidchicken.com>
10767
04f2d78b
CB
10768 * process.c (Flist_processes): Remove to Lisp.
10769 (list_processes_1): Delete.
e67a13ab 10770
973f782d
EZ
107712011-04-06 Eli Zaretskii <eliz@gnu.org>
10772
7c106b1e
EZ
10773 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
10774
973f782d
EZ
10775 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
10776
41cf7d1a 107772011-04-06 Paul Eggert <eggert@cs.ucla.edu>
27ccc379 10778
ca23cc88
PE
10779 Fix more problems found by GCC 4.6.0's static checks.
10780
f390e2d5
PE
10781 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
10782
42eea0d0
PE
10783 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
10784
b69769da 10785 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
1e973bc7 10786
f9541e84
PE
10787 * xdisp.c (vmessage): Mark as a printf-like function.
10788
13841b55
PE
10789 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
10790
c136c10f
PE
10791 * sound.c (sound_warning): Don't crash if arg contains a printf format.
10792
5e2d4a30
PE
10793 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
10794 printf-like functions.
10795 (tiff_load): Add casts to remove these marks before passing them
10796 to system-supplied API.
10797
583f48b9
PE
10798 * eval.c (Fsignal): Remove excess argument to 'fatal'.
10799
b25d760e
PE
10800 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
10801 This avoids several warnings with gcc -Wstrict-overflow.
d5efd1d1
PE
10802 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
10803 directly, rather than having caller test rule sign. This avoids
10804 some unnecessary tests.
10805 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
10806 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
10807 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
b25d760e 10808
bc7b6697 10809 * xfont.c (xfont_text_extents): Remove var that was set but not used.
625a3eb1 10810 (xfont_open): Avoid unnecessary tests.
bc7b6697 10811
27ccc379
PE
10812 * composite.c (composition_gstring_put_cache): Use unsigned integer.
10813
dcd5c89a
PE
10814 * composite.h, composite.c (composition_gstring_put_cache):
10815 Use EMACS_INT, not int, for length.
10816
b13a45c6
PE
10817 * composite.h (COMPOSITION_DECODE_REFS): New macro,
10818 breaking out part of COMPOSITION_DECODE_RULE.
10819 (COMPOSITION_DECODE_RULE): Use it.
10820 * composite.c (get_composition_id): Remove unused local vars,
10821 by using the new macro.
10822
1e792e4d
PE
10823 * textprop.c (set_text_properties_1): Change while to do-while,
10824 since the condition is always true at first.
10825
dc6c6455 10826 * intervals.c (graft_intervals_into_buffer): Mark var as used.
aa86731f
PE
10827 (interval_deletion_adjustment): Return unsigned value.
10828 All uses changed.
dc6c6455 10829
aba7731a
PE
10830 * process.c (list_processes_1, create_pty, read_process_output):
10831 (exec_sentinel): Remove vars that were set but not used.
afd4052b 10832 (create_pty): Remove unnecessary "volatile"s.
bc57d757 10833 (Fnetwork_interface_info): Avoid possibility of int overflow.
82eaa333 10834 (read_process_output): Do adaptive read buffering even if carryover.
fe07cdfa 10835 (read_process_output): Simplify nbytes computation if buffered.
aba7731a 10836
fdfc4bf3
PE
10837 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
10838
fca8fe46 10839 * syntax.c (scan_words): Remove var that was set but not used.
12cbf13f 10840 (update_syntax_table): Use unsigned instead of int.
fca8fe46 10841
06a0259a 10842 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
3c346cc3 10843 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
e6eb4e9e 10844 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
06a0259a 10845
e7b9e80f
PE
10846 * print.c (print_error_message): Avoid int overflow.
10847
56201685
PE
10848 * font.c (font_list_entities): Redo for clarity,
10849 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
10850
78834453 10851 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
790771b1 10852 (font_score): Avoid potential overflow in diff calculation.
78834453 10853
0bc0b309 10854 * fns.c (substring_both): Remove var that is set but not used.
8cd55cb4 10855 (sxhash): Redo loop for clarity and to avoid wraparound warning.
0bc0b309 10856
e610eaca
PE
10857 * eval.c (funcall_lambda): Rename local to avoid shadowing.
10858
b895abce
PE
10859 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
10860 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
10861 can always succeed if overflow has undefined behavior.
10862
1f1d9321 10863 * search.c (boyer_moore, wordify): Remove vars set but not used.
6f076cc7 10864 (wordify): Omit three unnecessary tests.
1f1d9321 10865
c59478bc
PE
10866 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
10867 All callers changed. This avoids the need for an unused var.
10868
79b73827
PE
10869 * casefiddle.c (casify_region): Remove var that is set but not used.
10870
a4db5dfe
PE
10871 * dired.c (file_name_completion): Remove var that is set but not used.
10872
43aae36e
PE
10873 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
10874
2a47c44d 10875 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
163c5f32 10876 (Finsert_file_contents): Remove unnecessary code checking fd.
2a47c44d 10877
a37c69bf
PE
10878 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
10879 Check for integer overflow on size calculations.
10880
328ab8e7
PE
10881 * buffer.c (Fprevious_overlay_change): Remove var that is set
10882 but not used.
10883
e5a2a5cb
PE
10884 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
10885 Remove vars that are set but not used.
8d84a6eb 10886 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
6b043475 10887 (timer_check_2): Mark vars as initialized.
e5a2a5cb 10888
a60e5f68
PE
10889 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
10890
f661cb61 10891 * image.c (lookup_image): Remove var that is set but not used.
35fa624f 10892 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
f661cb61 10893
f0397f5a
PE
10894 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
10895 that are set but not used.
10896
8664db06 10897 * xfns.c (make_invisible_cursor): Don't return garbage
03733ee7 10898 if XCreateBitmapFromData fails (Bug#8410).
8664db06 10899
6abdaa4a
PE
10900 * xselect.c (x_get_local_selection, x_handle_property_notify):
10901 Remove vars that are set but not used.
10902
0ce7538d 10903 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
6abdaa4a 10904 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
0ce7538d 10905
9ae848fc
PE
10906 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
10907 Remove var that is set but not used.
0b918413
PE
10908 (scroll_bar_windows_size): Now size_t, not int.
10909 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
10910 Check for overflow.
9ae848fc 10911
a5a62657
PE
10912 * xfaces.c (realize_named_face): Remove vars that are set but not used.
10913 (map_tty_color) [!defined MSDOS]: Likewise.
10914
5c5cdd39
PE
10915 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
10916
66ebf983
PE
10917 * coding.c: Remove vars that are set but not used.
10918 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
10919 All callers changed.
10920 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
10921 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
10922 (decode_coding_charset): Remove vars that are set but not used.
10923
1be4d761
PE
10924 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
10925 that is set but not used.
10926
47553fa8
PE
10927 * print.c (print_object): Remove var that is set but not used.
10928
1f7196bf 10929 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
d1fdcab7
PE
10930 The gnulib version avoids calling malloc in the usual case,
10931 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
10932 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
10933 * filelock.c (current_lock_owner): Likewise.
10934 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
10935 * sysdep.c: Include allocator.h, careadlinkat.h.
10936 (emacs_no_realloc_allocator): New static constant.
10937 (emacs_readlink): New function.
fdb61804
PE
10938 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
10939 ../lib/careadlinkat.h.
d1fdcab7 10940
f84c17c7
SM
109412011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
10942
10943 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
10944 first non-nil return value).
10945
ef3862ad
JD
109462011-04-03 Jan Djärv <jan.h.d@swipnet.se>
10947
10948 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
10949 if not defined (Bug#8403).
10950
376a7006
JB
109512011-04-02 Juanma Barranquero <lekktu@gmail.com>
10952
10953 * xdisp.c (display_count_lines): Remove parameter `start',
10954 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
10955 (get_char_face_and_encoding): Remove parameter `multibyte_p',
10956 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
10957 (fill_stretch_glyph_string): Remove parameters `row' and `area',
10958 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
10959 and thereabouts. All callers changed.
10960 (get_per_char_metric): Remove parameter `f', unused since
10961 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
10962
6ca3801d
JM
109632011-04-02 Jim Meyering <meyering@redhat.com>
10964
10965 do not dereference NULL upon failed strdup
10966 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
10967 (ns_get_family): Likewise.
10968
d8e2b5ba
JB
109692011-04-02 Juanma Barranquero <lekktu@gmail.com>
10970
10971 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
10972
8c74fcbd
JD
109732011-04-02 Jan Djärv <jan.h.d@swipnet.se>
10974
10975 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
10976 later (Bug#8403).
10977
7200d79c
SM
109782011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
10979
03408648 10980 Add lexical binding.
7200d79c 10981
03408648
SM
10982 * window.c (Ftemp_output_buffer_show): New fun.
10983 (Fsave_window_excursion):
10984 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
10985
10986 * lread.c (lisp_file_lexically_bound_p): New function.
10987 (Fload): Bind Qlexical_binding.
10988 (readevalloop): Remove `evalfun' arg.
10989 Bind Qinternal_interpreter_environment.
10990 (Feval_buffer): Bind Qlexical_binding.
10991 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
10992 Mark as dynamic.
10993 (syms_of_lread): Declare `lexical-binding'.
10994
10995 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
10996
10997 * keyboard.c (eval_dyn): New fun.
10998 (menu_item_eval_property): Use it.
ca105506
SM
10999
11000 * image.c (parse_image_spec): Use Ffunctionp.
ca105506 11001
03408648
SM
11002 * fns.c (concat, mapcar1): Accept byte-code-functions.
11003
11004 * eval.c (Fsetq): Handle lexical vars.
11005 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
11006 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
11007 (FletX, Flet): Obey lexical binding.
11008 (Fcommandp): Handle closures.
11009 (Feval): New `lexical' arg.
11010 (eval_sub): New function extracted from Feval. Use it almost
11011 everywhere where Feval was used. Look up vars in lexical env.
11012 Handle closures.
11013 (Ffunctionp): Move from subr.el.
11014 (Ffuncall): Handle closures.
11015 (apply_lambda): Remove `eval_flags'.
11016 (funcall_lambda): Handle closures and new byte-code-functions.
11017 (Fspecial_variable_p): New function.
11018 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
11019 but without exporting it to Lisp.
23aba0ea 11020
23aba0ea 11021 * doc.c (Fdocumentation, store_function_docstring):
03408648 11022 * data.c (Finteractive_form): Handle closures.
23aba0ea 11023
03408648
SM
11024 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
11025 interactive spec.
ba83908c 11026
04f2d78b
CB
11027 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
11028 New byte-codes.
03408648
SM
11029 (exec_byte_code): New function extracted from Fbyte_code to handle new
11030 calling convention for byte-code-functions. Add new byte-codes.
ba83908c 11031
03408648 11032 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
e2abe5a1 11033
03408648 11034 * alloc.c (Fmake_symbol): Init new `declared_special' field.
e2abe5a1 11035
e2abce01
JB
110362011-03-31 Juanma Barranquero <lekktu@gmail.com>
11037
11038 * xdisp.c (redisplay_internal): Fix prototype.
11039
63696a73 110402011-03-31 Eli Zaretskii <eliz@gnu.org>
09725d26 11041
63696a73 11042 * xdisp.c (SCROLL_LIMIT): New macro.
04f2d78b
CB
11043 (try_scrolling): Use it when setting scroll_limit.
11044 Limit scrolling to 100 screen lines.
63696a73
EZ
11045 (redisplay_window): Even when falling back on "recentering",
11046 position point in the window according to scroll-conservatively,
11047 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
11048
11049 (try_scrolling): When point is above the window, allow searching
11050 as far as scroll_max, or one screenful, to compute vertical
11051 distance from PT to the scroll margin position. This prevents
11052 try_scrolling from unnecessarily failing when
11053 scroll-conservatively is set to a value slightly larger than the
11054 window height. Clean up the case of PT below the margin at bottom
11055 of window: scroll_max can no longer be INT_MAX. When aggressive
11056 scrolling is in use, don't let point enter the opposite scroll
11057 margin as result of the scroll.
11058 (syms_of_xdisp) <scroll-conservatively>: Document the
09725d26
EZ
11059 threshold of 100 lines for never-recentering scrolling.
11060
e4cc2dfc
JB
110612011-03-31 Juanma Barranquero <lekktu@gmail.com>
11062
11063 * dispextern.h (move_it_by_lines):
11064 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
11065 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
11066 (message_log_check_duplicate): Remove parameters `prev_bol' and
11067 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
11068 (redisplay_internal): Remove parameter `preserve_echo_area',
11069 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
11070
11071 * indent.c (Fvertical_motion):
11072 * window.c (window_scroll_pixel_based, Frecenter):
11073 Don't pass `need_y_p' to `move_it_by_lines'.
11074
1c470562
SM
110752011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
11076
44f230aa
SM
11077 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
11078 steal a few bits to be more compact.
11079 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
11080 Remove unneeded casts.
11081
1c470562
SM
11082 * bytecode.c (Fbyte_code): CAR and CDR can GC.
11083
888adce9
ZK
110842011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
11085
11086 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
11087 binding" message (bug#7967).
11088
f838ed7b
PE
110892011-03-30 Paul Eggert <eggert@cs.ucla.edu>
11090
77861b95
PE
11091 Fix more problems found by GCC 4.6.0's static checks.
11092
de6dbc14
PE
11093 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
11094 Remove unused local var.
11095
f838ed7b
PE
11096 * editfns.c (Fmessage_box): Remove unused local var.
11097
792c7b2b
PE
11098 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
11099 (note_mode_line_or_margin_highlight, note_mouse_highlight):
11100 Omit unused local vars.
c499e557 11101 * window.c (shrink_windows): Omit unused local var.
b01a1c29 11102 * menu.c (digest_single_submenu): Omit unused local var.
0bc32927
PE
11103 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
11104 Omit unused local var.
11105
ba0165e1
PE
11106 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
11107 Don't assume string length fits in int.
32ad8845 11108 (keyremap_step, read_key_sequence): Use size_t for sizes.
48011560 11109 (read_key_sequence): Don't check last_real_key_start redundantly.
ba0165e1 11110
3c59b4c9
PE
11111 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
11112 instead of alloca (Bug#8344).
11113
a3eed478 11114 * eval.c (Fbacktrace): Don't assume nargs fits in int.
5d5d959d 11115 (Fbacktrace_frame): Don't assume nframes fits in int.
a3eed478 11116
eb4d412d
PE
11117 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
11118
1658b401
PE
11119 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
11120 concerns.
11121
11122 * term.c (produce_glyphless_glyph): Remove unnecessary test.
11123
11124 * cm.c (calccost): Turn while-do into do-while, for clarity.
44f730c8 11125
9a2c6e05
PE
11126 * keyboard.c (syms_of_keyboard): Use the same style as later
11127 in this function when indexing through an array. This also
11128 works around GCC bug 48267.
11129
03d0a109
PE
11130 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
11131
44f730c8
PE
11132 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
11133
fe75f926
PE
11134 * chartab.c (sub_char_table_ref_and_range): Redo for slight
11135 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
11136
ffa8c828
PE
11137 * keyboard.c, keyboard.h (num_input_events): Now size_t.
11138 This avoids undefined behavior on integer overflow, and is a bit
11139 more convenient anyway since it is compared to a size_t variable.
11140
c5101a77
PE
11141 Variadic C functions now count arguments with size_t, not int.
11142 This avoids an unnecessary limitation on 64-bit machines, which
11143 caused (substring ...) to crash on large vectors (Bug#8344).
11144 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
11145 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
77861b95 11146 All variadic functions and their callers changed accordingly.
c5101a77
PE
11147 (struct gcpro.nvars): Now size_t, not int. All uses changed.
11148 * data.c (arith_driver, float_arith_driver): Likewise.
11149 * editfns.c (general_insert_function): Likewise.
11150 * eval.c (struct backtrace.nargs, interactive_p)
11151 (internal_condition_case_n, run_hook_with_args, apply_lambda)
11152 (funcall_lambda, mark_backtrace): Likewise.
11153 * fns.c (concat): Likewise.
11154 * frame.c (x_set_frame_parameters): Likewise.
11155 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
11156 0 if not found, not -1. All callers changed.
11157
dd3f25f7
PE
11158 * alloc.c (garbage_collect): Don't assume stack size fits in int.
11159 (stack_copy_size): Now size_t, not int.
11160 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
11161
461c2ab9
JB
111622011-03-28 Juanma Barranquero <lekktu@gmail.com>
11163
11164 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
11165 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
11166 All callers changed.
11167
11168 * lisp.h (multibyte_char_to_unibyte):
11169 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
11170 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
11171 * character.h (CHAR_TO_BYTE8):
11172 * cmds.c (internal_self_insert):
11173 * editfns.c (general_insert_function):
11174 * keymap.c (push_key_description):
11175 * search.c (Freplace_match):
11176 * xdisp.c (message_dolog, set_message_1): All callers changed.
11177
f6d62986
SM
111782011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
11179
11180 * keyboard.c (safe_run_hook_funcall): New function.
11181 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
11182 don't set the hook to nil, but remove the offending function instead.
11183 (Qcommand_hook_internal): Remove, unused.
11184 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
11185 Vcommand_hook_internal.
11186
11187 * eval.c (enum run_hooks_condition): Remove.
11188 (funcall_nil, funcall_not): New functions.
11189 (run_hook_with_args): Call each function through a `funcall' argument.
11190 Remove `cond' argument, now redundant.
11191 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
11192 (Frun_hook_with_args_until_failure): Adjust accordingly.
11193 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
11194
1db5b1ad
JB
111952011-03-28 Juanma Barranquero <lekktu@gmail.com>
11196
11197 * dispextern.h (string_buffer_position): Remove declaration.
11198
11199 * print.c (strout): Remove parameter `multibyte', unused since
11200 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
11201
11202 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
11203 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
11204 All callers changed.
11205
11206 * w32.c (_wsa_errlist): Use braces for struct initializers.
11207
11208 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
11209 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
11210 All callers changed.
11211 (string_buffer_position): Likewise. Also, make static (it's never
11212 used outside xdisp.c).
11213 (cursor_row_p): Remove parameter `w', unused since
11214 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
11215 (decode_mode_spec): Remove parameter `precision', introduced during
11216 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
11217 All callers changed.
11218
5ffb62aa
JD
112192011-03-27 Jan Djärv <jan.h.d@swipnet.se>
11220
11221 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
11222
461c2ab9 112232011-03-27 Anders Lindgren <andlind@gmail.com>
f0a1382a
JD
11224
11225 * nsterm.m (ns_menu_bar_is_hidden): New variable.
11226 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
11227 (ns_update_auto_hide_menu_bar): New functions.
11228 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
11229 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
11230 ns_constrain_all_frames.
11231 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
11232 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
11233
5c380ffb
JD
112342011-03-27 Jan Djärv <jan.h.d@swipnet.se>
11235
11236 * nsmenu.m (runDialogAt): Remove argument to timer_check.
11237
9af30bdf
GM
112382011-03-27 Glenn Morris <rgm@gnu.org>
11239
11240 * syssignal.h: Replace RETSIGTYPE with void.
11241 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
11242 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
11243 Replace SIGTYPE with void everywhere.
11244 * s/usg5-4-common.h (SIGTYPE): Remove definition.
11245 * s/template.h (SIGTYPE): Remove commented out definition.
11246
e2abce01
JB
112472011-03-26 Eli Zaretskii <eliz@gnu.org>
11248
11249 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
11250 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
11251
f868cd8a
JB
112522011-03-26 Juanma Barranquero <lekktu@gmail.com>
11253
59eb0929
JB
11254 * w32.c (read_unc_volume): Use parameter `henum', instead of
11255 global variable `wget_enum_handle'.
11256
11257 * keymap.c (describe_vector): Remove parameters `indices' and
11258 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
11259 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
11260
f868cd8a
JB
11261 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
11262
11263 * keyboard.c (timer_check): Remove parameter `do_it_now',
11264 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
11265 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
11266 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
11267
11268 * keyboard.c (read_char):
11269 * w32menu.c (w32_menu_display_help):
11270 * xmenu.c (show_help_event, menu_help_callback):
11271 Adjust calls to `show_help_echo'.
11272
11273 * gtkutil.c (xg_maybe_add_timer):
11274 * keyboard.c (readable_events):
11275 * process.c (wait_reading_process_output):
11276 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
11277
11278 * insdel.c (adjust_markers_gap_motion):
11279 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
11280 (gap_left, gap_right): Don't call it.
11281
2ecf6fdb
CY
112822011-03-25 Chong Yidong <cyd@stupidchicken.com>
11283
11284 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
11285 incurred during fontification.
11286
6b1f9ba4
JB
112872011-03-25 Juanma Barranquero <lekktu@gmail.com>
11288
11289 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
11290 (DEFVAR_PER_BUFFER): Don't pass it.
11291
11292 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
11293 (scrolling_window): Don't pass it.
11294
0f4a96b5
JB
112952011-03-25 Juanma Barranquero <lekktu@gmail.com>
11296
11297 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
11298
11299 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
11300 and `suffix'.
11301 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
11302 of variables specific to SELinux and computation of `encoded_absname'.
11303
11304 * image.c (XPutPixel): Remove unused variable `height'.
11305
11306 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
11307
11308 * unexw32.c (get_section_info): Remove unused variable `section'.
11309
11310 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
11311 (system_process_attributes): Remove unused variable `sess'.
11312 (sys_read): Remove unused variable `err'.
11313
11314 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
11315 (w32_wnd_proc): Remove unused variable `isdead'.
11316 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
11317 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
11318 (x_create_tip_frame): Remove unused variable `tem'.
11319
11320 * w32inevt.c (w32_console_read_socket):
11321 Remove unused variable `no_events'.
11322
11323 * w32term.c (x_draw_composite_glyph_string_foreground):
11324 Remove unused variable `width'.
11325
1149507c
JB
113262011-03-24 Juanma Barranquero <lekktu@gmail.com>
11327
11328 * w32term.c (x_set_glyph_string_clipping):
11329 Don't pass uninitialized region to CombineRgn.
11330
9c88f339
JB
113312011-03-23 Juanma Barranquero <lekktu@gmail.com>
11332
11333 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
11334 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
11335 (Fx_close_connection): Remove unused variable `i'.
11336
11337 * w32font.c (w32font_draw): Return number of glyphs.
11338 (w32font_open_internal): Remove unused variable `i'.
11339 (w32font_driver): Add missing initializer.
11340
11341 * w32menu.c (utf8to16): Remove unused variable `utf16'.
11342 (fill_in_menu): Remove unused variable `items_added'.
11343
11344 * w32term.c (last_mouse_press_frame): Remove static global variable.
11345 (w32_clip_to_row): Remove unused variable `f'.
11346 (x_delete_terminal): Remove unused variable `i'.
11347
11348 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
11349 (NOTHING): Remove unused static global variable.
11350 (uniscribe_check_otf): Remove unused variable `table'.
11351 (uniscribe_font_driver): Add missing initializers.
11352
dee091a3
JD
113532011-03-23 Julien Danjou <julien@danjou.info>
11354
11355 * term.c (Fsuspend_tty, Fresume_tty):
11356 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
11357 * window.c (temp_output_buffer_show):
11358 * insdel.c (signal_before_change):
11359 * frame.c (Fhandle_switch_frame):
11360 * fileio.c (Fdo_auto_save):
11361 * emacs.c (Fkill_emacs):
11362 * editfns.c (save_excursion_restore):
11363 * cmds.c (internal_self_insert):
11364 * callint.c (Fcall_interactively):
11365 * buffer.c (Fkill_all_local_variables):
11366 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
11367 Use Frun_hooks.
0f4a96b5 11368 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
e9fce1ac 11369 unconditionally since it does the check itself.
dee091a3 11370
2c520ab5 113712011-03-23 Paul Eggert <eggert@cs.ucla.edu>
f0641eff 11372
c9c49752
PE
11373 Fix more problems found by GCC 4.5.2's static checks.
11374
8abc3f12
PE
11375 * coding.c (encode_coding_raw_text): Avoid unnecessary test
11376 the first time through the loop, since we know p0 < p1 then.
11377 This also avoids a gcc -Wstrict-overflow warning.
11378
a2d26660
PE
11379 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
11380 leading to a memory leak, possible in functions like
11381 load_charset_map_from_file that can allocate an unbounded number
b12ef411 11382 of objects (Bug#8318).
a2d26660 11383
916c72e9
PE
11384 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
11385 that could (at least in theory) be that large.
11386
19ab8a18
PE
11387 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
11388 This is less likely to overflow, and avoids undefined behavior if
11389 overflow does occur. All callers changed. Use strtoul to scan
11390 for the unsigned long integer.
b7cbbd6f
PE
11391 (pint2hrstr): Simplify and tune code slightly.
11392 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
19ab8a18 11393
f0641eff
PE
11394 * scroll.c (do_scrolling): Work around GCC bug 48228.
11395 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
11396
7f650bb9
PE
11397 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
11398 This also avoids a warning with gcc -Wstrict-overflow.
39f5e519
PE
11399 (validate_x_resource_name): Simplify count usage.
11400 This also avoids a warning with gcc -Wstrict-overflow.
7f650bb9 11401
37dd57d1
PE
11402 * fileio.c (Fcopy_file): Report error if fchown or fchmod
11403 fail (Bug#8306).
81e56e61 11404
699979fc 11405 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
dc1ca6a8 11406
401bf9b4
PE
11407 * process.c (Fmake_network_process): Use socklen_t, not int,
11408 where POSIX says socklen_t is required in portable programs.
11409 This fixes a porting bug on hosts like 64-bit HP-UX, where
591b2973 11410 socklen_t is wider than int (Bug#8277).
401bf9b4
PE
11411 (Fmake_network_process, server_accept_connection):
11412 (wait_reading_process_output, read_process_output):
11413 Likewise.
11414
b93aacde
PE
11415 * process.c: Rename or move locals to avoid shadowing.
11416 (list_processes_1, Fmake_network_process):
11417 (read_process_output_error_handler, exec_sentinel_error_handler):
11418 Rename or move locals.
4dc343ee 11419 (Fmake_network_process): Define label "retry_connect" only if needed.
0da49335 11420 (Fnetwork_interface_info): Fix pointer signedness.
f990b4e5 11421 (process_send_signal): Add cast to avoid pointer signedness problem.
7b808126 11422 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
c939f91b 11423 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
b93aacde 11424
af8a867c 11425 Make tparam.h and terminfo.c consistent.
44f230aa
SM
11426 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
11427 Include tparam.h instead, since it declares them.
af8a867c
PE
11428 * cm.h (PC): Remove extern decl; tparam.h now does this.
11429 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
11430 * terminfo.c: Include tparam.h, to check interfaces.
11431 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
11432 (tparam): Adjust signature to match interface in tparam.h;
11433 this removes some undefined behavior. Check that outstring and len
11434 are zero, which they always are with Emacs.
11435 * tparam.h (PC, BC, UP): New extern decls.
11436
0248044d 11437 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
001a7ab4 11438 (xftfont_open): Rename locals to avoid shadowing.
0248044d 11439
8ff096c1 11440 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
a00924bb
PE
11441 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
11442 (OTF_TAG_SYM): Omit macro if not needed.
e932860f 11443 (ftfont_list): Remove unused local.
49eaafba
PE
11444 (get_adstyle_property, ftfont_pattern_entity):
11445 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
11446 Rename locals to avoid shadowing.
8ff096c1 11447
e2be39f6
PE
11448 * xfont.c (xfont_list_family): Mark var as initialized.
11449
c9735e30
PE
11450 * xml.c (make_dom): Now static.
11451
8f5201ae
PE
11452 * composite.c (composition_compute_stop_pos): Rename local to
11453 avoid shadowing.
b246f932
PE
11454 (composition_reseat_it): Remove unused locals.
11455 (find_automatic_composition, composition_adjust_point): Likewise.
80e079b2 11456 (composition_update_it): Mark var as initialized.
11b61122
PE
11457 (find_automatic_composition): Mark vars as initialized,
11458 with a FIXME (Bug#8290).
8f5201ae 11459
760fbc2c
PE
11460 character.h: Rename locals to avoid shadowing.
11461 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
11462 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
11463 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
11464 (BUF_DEC_POS): Be more systematic about renaming local temporaries
11465 to avoid shadowing.
11466
ff08eb85
PE
11467 * textprop.c (property_change_between_p): Remove; unused.
11468
fc7bf025
PE
11469 * intervals.c (interval_start_pos): Now static.
11470
235d7abc
PE
11471 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
11472
44f230aa
SM
11473 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
11474 Rename locals to avoid shadowing.
3e7d6594 11475
50060332
PE
11476 * sound.c (wav_play, au_play, Fplay_sound_internal):
11477 Fix pointer signedness.
d01f234b 11478 (alsa_choose_format): Remove unused local var.
c83b8872
PE
11479 (wav_play): Initialize a variable to 0, to prevent undefined
11480 behavior (Bug#8278).
50060332 11481
c4fc4e30
PE
11482 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
11483
918436ed
PE
11484 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
11485
c939f91b
PE
11486 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
11487 clobbering (Bug#8298).
b9c7f648
PE
11488 * sysdep.c (sys_subshell): Likewise.
11489 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
7e9123a2 11490
6bd8c144
PE
11491 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
11492 This should get cleaned up, so that child_setup has the
11493 same signature on all platforms.
11494
7710357c 11495 * callproc.c (call_process_cleanup): Now static.
cb1d0ef7 11496 (relocate_fd): Rename locals to avoid shadowing.
7710357c 11497
c59da222
CY
114982011-03-22 Chong Yidong <cyd@stupidchicken.com>
11499
11500 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
11501 not to be necessary, and produces flickering.
11502
66b87493
GM
115032011-03-20 Glenn Morris <rgm@gnu.org>
11504
11505 * config.in: Remove file.
11506
45b6f6d5
JB
115072011-03-20 Juanma Barranquero <lekktu@gmail.com>
11508
11509 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
11510 are now in src/globals.h.
11511 (syms_of_minibuf): Remove spurious & from previous change.
11512
cd394be1 115132011-03-20 Leo Liu <sdl.web@gmail.com>
3ec03f7e
LL
11514
11515 * minibuf.c (completing-read-function): New variable.
11516 (completing-read-default): Rename from completing-read.
11517 (completing-read): Call completing-read-function.
11518
b14e3e21
CY
115192011-03-19 Juanma Barranquero <lekktu@gmail.com>
11520
11521 * xfaces.c (Fx_load_color_file):
11522 Read color file from absolute filename (bug#8250).
11523
f2b726e6
JB
115242011-03-19 Juanma Barranquero <lekktu@gmail.com>
11525
11526 * makefile.w32-in: Update dependencies.
11527
09f6ff02
EZ
115282011-03-17 Eli Zaretskii <eliz@gnu.org>
11529
11530 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
11531
29a6015a
PE
115322011-03-17 Paul Eggert <eggert@cs.ucla.edu>
11533
a3a6c54e
PE
11534 Fix more problems found by GCC 4.5.2's static checks.
11535
b766f867
PE
11536 * process.c (make_serial_process_unwind, send_process_trap):
11537 (sigchld_handler): Now static.
11538
be02381c
PE
11539 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
11540 That way, the code declares only the vars that it needs.
11541 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
11542 * s/cygwin.h (PTY_ITERATION): Likewise.
11543 * s/darwin.h (PTY_ITERATION): Likewise.
11544 * s/gnu-linux.h (PTY_ITERATION): Likewise.
11545
57048744
PE
11546 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
11547 * process.c (allocate_pty): Don't declare stb unless it's needed.
11548
7914961c 11549 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
615f2d59
PE
11550 (CONSTANTLIM): Remove; unused.
11551 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
11552 Define only if needed.
7914961c 11553
b3967b18
PE
11554 * unexelf.c (unexec): Name an expression,
11555 to avoid gcc -Wbad-function-cast warning.
9ae71512
PE
11556 Use a different way to cause a compilation error if anyone uses
11557 n rather than nn, a way that does not involve shadowing.
73366a00 11558 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
b3967b18 11559
29a6015a
PE
11560 * deps.mk (unexalpha.o): Remove; unused.
11561
43cfc33e 11562 New file unexec.h, the (simple) interface for unexec (Bug#8267).
7feda0d2 11563 * unexec.h: New file.
ce701a33
PE
11564 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
11565 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
11566 Depend on unexec.h.
11567 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
11568 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
11569 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
381259ef 11570 Change as necessary to match prototype in unexec.h.
ce701a33 11571
01f44d5a
PE
11572 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
11573 shadowing.
4f63c6bb 11574 (back_comment, skip_chars): Mark vars as initialized.
01f44d5a 11575
a6670b0b
PE
11576 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
11577 Rename locals to avoid shadowing.
11578
cef2010d 11579 * lread.c (read1): Rewrite so as not to use empty "else".
0902fe45 11580 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
cef2010d 11581
d4d7173a
PE
11582 * print.c (Fredirect_debugging_output): Fix pointer signedess.
11583
f08b802a
PE
11584 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
11585 warning when compiling print.c.
11586
3ddb0639
PE
11587 * font.c (font_unparse_fcname): Abort in an "impossible" situation
11588 instead of using an uninitialized var.
5ad03b97 11589 (font_sort_entities): Mark var as initialized.
3ddb0639 11590
170a2692
PE
11591 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
11592
e663c700
PE
11593 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
11594 pointers to constants.
89bc529a 11595 (font_parse_fcname): Remove unused vars.
7b81e2d0 11596 (font_delete_unmatched): Now static.
ea838e10 11597 (font_get_spec): Remove; unused.
13a547c6
PE
11598 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
11599 (font_update_drivers, Ffont_get_glyphs, font_add_log):
11600 Rename or move locals to avoid shadowing.
e663c700 11601
2a80c887 11602 * fns.c (require_nesting_list, require_unwind): Now static.
612f56df 11603 (Ffillarray): Rename locals to avoid shadowing.
2a80c887 11604
1384fa33 11605 * floatfns.c (domain_error2): Define only if needed.
a885e2ed 11606 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
1384fa33 11607
8b2c52e9
PE
11608 * alloc.c (mark_backtrace): Move decl from here ...
11609 * lisp.h: ... to here, so that it can be checked.
11610
475545b5 11611 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
d28a2170 11612 (Fdefvar): Rewrite so as not to use empty "else".
cfcbfb1a
PE
11613 (lisp_indirect_variable): Name an expression,
11614 to avoid gcc -Wbad-function-cast warning.
1faed8ae 11615 (Fdefvar): Rename locals to avoid shadowing.
475545b5 11616
b1349114 11617 * callint.c (quotify_arg, quotify_args): Now static.
a3e8cbda 11618 (Fcall_interactively): Rename locals to avoid shadowing.
b0e80955 11619 Use const pointer when appropriate.
b1349114 11620
a2928364
PE
11621 * lisp.h (get_system_name, get_operating_system_release):
11622 Move decls here, to check interfaces.
11623 * process.c (get_operating_system_release): Move decl to lisp.h.
11624 * xrdb.c (get_system_name): Likewise.
63c5d10b
PE
11625 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
11626 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
11627 some of which prompt warnings from gcc -Wbad-function-cast.
545b49b4
PE
11628 (Fformat_time_string, Fencode_time, Finsert_char):
11629 (Ftranslate_region_internal, Fformat):
11630 Rename or remove local vars to avoid shadowing.
9710023e 11631 (Ftranslate_region_internal): Mark var as initialized.
63c5d10b 11632
a415e694
PE
11633 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
11634 avoid shadowing.
11635
8ef4622d
PE
11636 * lisp.h (eassert): Check that the argument compiles, even if
11637 ENABLE_CHECKING is not defined.
11638
946f9a5b
PE
11639 * data.c (Findirect_variable): Name an expression, to avoid
11640 gcc -Wbad-function-cast warning.
112396d6 11641 (default_value, arithcompare, arith_driver, arith_error): Now static.
b9b84fa9 11642 (store_symval_forwarding): Rename local to avoid shadowing.
44f230aa
SM
11643 (Fmake_variable_buffer_local, Fmake_local_variable):
11644 Mark variables as initialized.
52746918 11645 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
946f9a5b 11646
e5aab7e7 11647 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
ae35e756
PE
11648 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
11649 Rename locals to avoid shadowing.
dff45157
PE
11650 (mark_stack): Move local variables into the #ifdef region where
11651 they're used.
7bc26fdb
PE
11652 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
11653 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
11654 needed otherwise.
11655 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
11656 (GC_STRING_CHARS): Remove; not used.
d40d4be1 11657 (Fmemory_limit): Cast sbrk's returned value to char *.
ae35e756 11658
e5aab7e7
PE
11659 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
11660 avoids undefined behavior in theory.
11661
4da60324
PE
11662 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
11663
88043301
PE
11664 Use functions, not macros, for up- and down-casing (Bug#8254).
11665 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
11666 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
11667 to use the following functions instead of these macros.
11668 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
11669 EMACS_INT, since callers assume the returned value fits in int.
11670 (upcase1): Likewise, for UPCASE_TABLE.
11671 (uppercasep, lowercasep, upcase): New static inline functions.
0da09c43 11672 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
db69b0cd 11673 the race-condition problem in the old DOWNCASE.
88043301 11674
19ed5445
PE
11675 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
11676 Rename locals to avoid shadowing.
11677 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
abbd1bcf
PE
11678 (regex_compile, re_search_2, re_match_2_internal):
11679 Remove unused local vars.
952db0d7
PE
11680 (FREE_VAR): Rewrite so as not to use empty "else",
11681 which gcc can warn about.
da053e48 11682 (regex_compile, re_match_2_internal): Mark locals as initialized.
b313f9d8
PE
11683 (RETALLOC_IF): Define only if needed.
11684 (WORDCHAR_P): Likewise. This one is never needed, but is used
11685 only in a comment talking about a compiler bug, so put inside
11686 the #if 0 of that comment.
11687 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
11688 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
11689 Remove; unused.
19ed5445 11690
1f3561e4 11691 * search.c (boyer_moore): Rename locals to avoid shadowing.
76ef09b7
PE
11692 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
11693 (PREV_CHAR_BOUNDARY): Likewise.
1f3561e4 11694
ded6f8f7
PE
11695 * search.c (simple_search): Remove unused var.
11696
dbd37a95
PE
11697 * dired.c (compile_pattern): Move decl from here ...
11698 * lisp.h: ... to here, so that it can be checked.
11699 (struct re_registers): New forward decl.
11700
7e47afad
PE
11701 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
11702
85f24f61
PE
11703 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
11704 All uses changed.
11705 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
11706 Rename locals to avoid shadowing.
5671df8f 11707 (Fvertical_motion): Mark locals as initialized.
85f24f61 11708
181aa2be 11709 * casefiddle.c (casify_object, casify_region): Now static.
e45a141a 11710 (casify_region): Mark local as initialized.
181aa2be 11711
930d429c
PE
11712 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
11713
7082eac6
PE
11714 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
11715 New macros, so that the caller can use some names other than
11716 gcpro1, gcpro2, etc.
11717 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
11718 of the new macros.
11719 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
11720 argument, for consistency with GCPRO2_VAR, etc: it is now the
11721 prefix of the variable, not the variable itself. All uses
11722 changed.
38b2c076
PE
11723 * dired.c (directory_files_internal, file_name_completion):
11724 Rename locals to avoid shadowing.
11725
15206ed9
PE
11726 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
11727 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
11728 dired.c's scmp function, had undefined behavior.
11729 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
11730 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
11731 * buffer.h: ... to here, because these macros use current_buffer,
11732 and the new implementation with inline functions needs to have
11733 current_buffer in scope now, rather than later when the macros
11734 are used.
11735 (downcase, upcase1): New static inline functions.
11736 (DOWNCASE, UPCASE1): Reimplement using these functions.
11737 This avoids undefined behavior in expressions like
11738 DOWNCASE (x) == DOWNCASE (y), which previously suffered
11739 from race conditions in accessing the global variables
11740 case_temp1 and case_temp2.
11741 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
11742 * lisp.h (case_temp1, case_temp2): Remove their decls.
11743 * character.h (ASCII_CHAR_P): Move from here ...
11744 * lisp.h: ... to here, so that the inline functions mentioned
11745 above can use them.
11746
4a6bea26
PE
11747 * dired.c (directory_files_internal_unwind): Now static.
11748
f14b7e14
PE
11749 * fileio.c (file_name_as_directory, directory_file_name):
11750 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
11751 Now static.
2893f146
PE
11752 (file_name_as_directory): Use const pointers when appropriate.
11753 (Fexpand_file_name): Likewise. In particular, newdir might
11754 point at constant storage, so make it a const pointer.
fd4ead52 11755 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
b14aac08
PE
11756 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
11757 signedness issues.
f839df0c
PE
11758 (Fset_file_times, Finsert_file_contents, auto_save_error):
11759 Rename locals to avoid shadowing.
f14b7e14 11760
5716756e 11761 * minibuf.c (choose_minibuf_frame_1): Now static.
62137a95
PE
11762 (Ftry_completion, Fall_completions): Rename or remove locals
11763 to avoid shadowing.
5716756e 11764
b4c3046a
PE
11765 * marker.c (bytepos_to_charpos): Remove; unused.
11766
b45db522
PE
11767 * lisp.h (verify_bytepos, count_markers): New decls,
11768 so that gcc does not warn that these functions aren't declared.
11769
85876d07
PE
11770 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
11771 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
f0cb4a60 11772 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
40ef059e 11773 (copy_text): Remove unused local var.
85876d07 11774
03d78a21 11775 * filelock.c (within_one_second): Now static.
b3dd38ab 11776 (lock_file_1): Rename local to avoid shadowing.
03d78a21 11777
5df8f01b
PE
11778 * buffer.c (fix_overlays_before): Mark locals as initialized.
11779 (fix_start_end_in_overlays): Likewise. This function should be
11780 simplified by using pointers-to-pointers, but that's a different
11781 matter.
b1d876f1 11782 (switch_to_buffer_1): Now static.
8f54f30a
PE
11783 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
11784 (report_overlay_modification): Rename locals to avoid shadowing.
c3bd59b5 11785
a70072c9 11786 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
fbd02d7b 11787 Fix pointer signedness issue.
edced198
PE
11788 (sys_subshell): Mark local as volatile if checking for lint,
11789 to suppress a gcc -Wclobbered warning that does not seem to be right.
15dfd3d9 11790 (MAXPATHLEN): Define only if needed.
a70072c9 11791
a0977c44
PE
11792 * process.c (serial_open, serial_configure): Move decls from here ...
11793 * systty.h: ... to here, so that they can be checked.
11794
a884fdcc
PE
11795 * fns.c (get_random, seed_random): Move extern decls from here ...
11796 * lisp.h: ... to here, so that they can be checked.
11797
604efe86 11798 * sysdep.c (reset_io): Now static.
b8950c94 11799 (wait_for_termination_signal): Remove; unused.
604efe86 11800
38fc62d9
PE
11801 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
11802 (copy_keymap_item, append_key, push_text_char_description):
11803 Now static.
1004a21a 11804 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
dbbb8427 11805 (DENSE_TABLE_SIZE): Remove; unused.
c1141155
PE
11806 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
11807 (describe_map_tree):
11808 Rename locals to avoid shadowing.
38fc62d9 11809
2f2650da
PE
11810 * keyboard.c: Declare functions static if they are not used elsewhere.
11811 (echo_char, echo_dash, cmd_error, top_level_2):
11812 (poll_for_input, handle_async_input): Now static.
69a058fa
PE
11813 (read_char, kbd_buffer_get_event, make_lispy_position):
11814 (make_lispy_event, make_lispy_movement, apply_modifiers):
11815 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
11816 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
11817 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
c8a06054 11818 (read_key_sequence, read_char): Mark locals as initialized.
3ac94672 11819 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
2f2650da 11820
a053e86c 11821 * keyboard.h (make_ctrl_char): New decl.
da2f2dd9
PE
11822 (mark_kboards): Move decl here ...
11823 * alloc.c (mark_kboards): ... from here.
a053e86c 11824
4752793e
PE
11825 * lisp.h (force_auto_save_soon): New decl.
11826
74f10ca7 11827 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
244fc23d
PE
11828 (DEFINE_DUMMY_FUNCTION): New macro.
11829 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
11830 Use it.
c03cd23f
PE
11831 (main): Add casts to avoid warnings
11832 if GCC considers string literals to be constants.
74f10ca7 11833
022e70d4
PE
11834 * lisp.h (fatal_error_signal): Add decl, since it's exported.
11835
59d6fe83
PE
11836 * dbusbind.c: Pointer signedness fixes.
11837 (xd_signature, xd_append_arg, xd_initialize):
11838 (Fdbus_call_method, Fdbus_call_method_asynchronously):
11839 (Fdbus_method_return_internal, Fdbus_method_error_internal):
11840 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
11841 (Fdbus_register_signal): Use SSDATA when the context wants char *.
11842
78320123
PE
11843 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
11844 if GCC considers string literals to be constants.
49cebcca 11845 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
78320123 11846
35ac2a97
SM
118472011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
11848
fb103ca9
SM
11849 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
11850 (print_preprocess, print_object): New macro to fix last change.
11851
35ac2a97
SM
11852 * print.c (print_preprocess): Don't forget font objects.
11853
62973b41
JB
118542011-03-16 Juanma Barranquero <lekktu@gmail.com>
11855
11856 * emacs.c (USAGE3): Doc fixes.
11857
0e48bb22
AS
118582011-03-15 Andreas Schwab <schwab@linux-m68k.org>
11859
11860 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
11861 structure.
11862
7684e57b
JB
118632011-03-14 Juanma Barranquero <lekktu@gmail.com>
11864
11865 * lisp.h (VWindow_system, Qfile_name_history):
11866 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
11867 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
11868 (w32_system_caret_x, w32_system_caret_y): Declare extern.
11869
11870 * w32select.c: Don't #include "keyboard.h".
c96bbc66 11871 (run_protected): Add extern declaration for waiting_for_input.
7684e57b
JB
11872
11873 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
11874 * w32console.c (detect_input_pending, read_input_pending)
11875 (encode_terminal_code):
11876 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
11877 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
11878 (w32_system_caret_y, Qfile_name_history):
11879 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
11880 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
11881 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
11882 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
11883 * w32proc.c (Qlocal, report_file_error):
11884 * w32term.c (Vwindow_system, updating_frame):
11885 * w32uniscribe.c (initialized, uniscribe_font_driver):
11886 Remove unneeded extern declarations.
11887
2aa46d6c
CY
118882011-03-14 Chong Yidong <cyd@stupidchicken.com>
11889
c96bbc66 11890 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
2aa46d6c 11891
cffc6f3b
CY
118922011-03-13 Chong Yidong <cyd@stupidchicken.com>
11893
11894 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
11895 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
11896 These macros can no longer be used for assignment.
11897
44f230aa
SM
11898 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
11899 Assign struct members directly, instead of using BUF_BEGV etc.
cffc6f3b
CY
11900 (record_buffer_markers, fetch_buffer_markers): New functions for
11901 recording and fetching special buffer markers.
11902 (set_buffer_internal_1, set_buffer_temp): Use them.
11903
11904 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
11905
11906 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
11907
11908 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
11909 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
11910
11911 * xdisp.c (hscroll_window_tree):
11912 (reconsider_clip_changes): Use PT instead of BUF_PT.
11913
d251f04b
EZ
119142011-03-13 Eli Zaretskii <eliz@gnu.org>
11915
11916 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
11917 $(EMACS_ROOT)/lib/intprops.h.
11918
f0c77cd1
PE
119192011-03-13 Paul Eggert <eggert@cs.ucla.edu>
11920
3eca4629
PE
11921 Fix more problems found by GCC 4.5.2's static checks.
11922
7c86ee98
PE
11923 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
11924 to unsigned char * to avoid compiler diagnostic.
b0afc268
PE
11925 (xg_free_frame_widgets): Make it clear that a local variable is
11926 needed only if USE_GTK_TOOLTIP.
01e0b5ad
PE
11927 (gdk_window_get_screen): Make it clear that this macro is needed
11928 only if USE_GTK_TOOLTIP.
1e5524e7
PE
11929 (int_gtk_range_get_value): New function, which avoids a diagnostic
11930 from gcc -Wbad-function-cast.
11931 (xg_set_toolkit_scroll_bar_thumb): Use it.
11932 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
11933 diagnostic from gcc -Wbad-function-cast.
65dc836c
PE
11934 (get_utf8_string, xg_get_file_with_chooser):
11935 Rename locals to avoid shadowing.
11936 (create_dialog): Move locals to avoid shadowing.
7c86ee98 11937
41729b81
PE
11938 * xgselect.c (xg_select): Remove unused var.
11939
f0c77cd1
PE
11940 * image.c (four_corners_best): Mark locals as initialized.
11941 (gif_load): Initialize transparent_p to zero (Bug#8238).
11942 Mark another local as initialized.
ec6cf4c6 11943 (my_png_error, my_error_exit): Mark with NO_RETURN.
f0c77cd1 11944
ce0ad53d 11945 * image.c (clear_image_cache): Now static.
d5d5a617 11946 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
e22cffbc 11947 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
77a765fd
PE
11948 (x_edge_detection): Remove unnecessary cast that
11949 gcc -Wbad-function-cast diagnoses.
2037898d 11950 (gif_load): Fix pointer signedness.
6ae141d6
PE
11951 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
11952 (jpeg_load, gif_load): Rename locals to avoid shadowing.
ce0ad53d 11953
33383987 119542011-03-12 Paul Eggert <eggert@cs.ucla.edu>
3eca4629 11955
d32df629
PE
11956 Improve quality of tests for time stamp overflow.
11957 For example, without this patch (encode-time 0 0 0 1 1
11958 1152921504606846976) returns the obviously-bogus value (-948597
11959 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
11960 reports time overflow. See
11961 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
b8d9bd41
PE
11962 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
11963 * editfns.c: Include limits.h and intprops.h.
11964 (TIME_T_MIN, TIME_T_MAX): New macros.
11965 (time_overflow): Move earlier, to before first use.
11966 (hi_time, lo_time): New functions, for an accurate test for
11967 out-of-range times.
11968 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
11969 (Fget_internal_run_time): Don't assume time_t fits in int.
11970 (make_time): Use list2 instead of Fcons twice.
11971 (Fdecode_time): More accurate test for out-of-range times.
11972 (check_tm_member): New function.
11973 (Fencode_time): Use it, to test for out-of-range times.
d32df629
PE
11974 (lisp_time_argument): Don't rely on undefined left-shift and
11975 right-shift behavior when checking for time stamp overflow.
8be6f318 11976
fe31d94c
PE
11977 * editfns.c (time_overflow): New function, refactoring common code.
11978 (Fformat_time_string, Fdecode_time, Fencode_time):
11979 (Fcurrent_time_string): Use it.
11980
8be6f318
PE
11981 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
11982 * dired.c (make_time): Move to ...
11983 * editfns.c (make_time): ... here.
11984 * systime.h: Note the move.
11985
09d9db2c 119862011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
c47cbdfd 11987
126bc0dc
YM
11988 * fringe.c (update_window_fringes): Remove unused variables.
11989
c47cbdfd
YM
11990 * unexmacosx.c (copy_data_segment): Also copy __got section.
11991 (Bug#8223)
11992
7ac80be9
EZ
119932011-03-12 Eli Zaretskii <eliz@gnu.org>
11994
c96bbc66 11995 * termcap.c [MSDOS]: Include "msdos.h".
058e5dad
EZ
11996 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
11997 Constify `char *' arguments and their references according to
11998 prototypes in tparam.h.
11999
ecb0f94d 12000 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
058e5dad 12001
7ac80be9
EZ
12002 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
12003 Adapt all references accordingly.
12004
12005 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
12006
ef1fd07e
TT
120072011-03-11 Tom Tromey <tromey@redhat.com>
12008
12009 * buffer.c (syms_of_buffer): Remove obsolete comment.
12010
7ef4b50c
EZ
120112011-03-11 Eli Zaretskii <eliz@gnu.org>
12012
12013 * termhooks.h (encode_terminal_code): Declare prototype.
12014
12015 * msdos.c (encode_terminal_code): Don't declare prototype.
12016
12017 * term.c (encode_terminal_code): Now external again, used by
12018 w32console.c and msdos.c.
12019
44f230aa
SM
12020 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
12021 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
7ef4b50c 12022
4b1ec863 120232011-03-11 Paul Eggert <eggert@cs.ucla.edu>
f78faa98 12024
1714f52b 12025 Fix some minor problems found by GCC 4.5.2's static checks.
83316bf4 12026
4b1ec863
PE
12027 * fringe.c (update_window_fringes): Mark locals as initialized
12028 (Bug#8227).
12029 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
bf60f616 12030
524c7aa6
PE
12031 * alloc.c (mark_fringe_data): Move decl from here ...
12032 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
12033 to check its interface.
12034 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
12035
a5c0af81 12036 * fontset.c (free_realized_fontset): Now static.
7519b8cd 12037 (Fset_fontset_font): Rename local to avoid shadowing.
cc6e5db1 12038 (fontset_font): Mark local as initialized.
a9a06e0b 12039 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
a5c0af81 12040
b4716021
PE
12041 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
12042
811e9bac 12043 * xselect.c (x_disown_buffer_selections): Remove; not used.
7b83e2f1 12044 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
aa0daa9f
PE
12045 (x_own_selection, Fx_disown_selection_internal): Rename locals
12046 to avoid shadowing.
12047 (x_handle_dnd_message): Remove local to avoid shadowing.
811e9bac 12048
7e3ab302
PE
12049 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
12050 so that the caller can use some name other than gcpro1.
12051 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
58d2d479
PE
12052 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
12053 (Fx_backspace_delete_keys_p):
12054 Use them to avoid shadowing, and rename vars to avoid shadowing.
12055 (x_decode_color, x_set_name, x_window): Now static.
6b437900 12056 (Fx_create_frame): Add braces to silence GCC warning.
c0951e53 12057 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
06b0c8a0
PE
12058 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
12059 Remove unused locals.
7e3ab302
PE
12060 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
12061 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
12062 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
12063 macros.
f78faa98 12064
e2b13473
PE
12065 * xterm.h (x_mouse_leave): New decl.
12066
77f23912
PE
12067 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
12068 Remove unused functions.
cdf4ba58
PE
12069 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
12070 (x_calc_absolute_position): Now static.
7411c686 12071 (XTread_socket): Don't define label "out" unless it's used.
2b07bcff 12072 Don't declare local "event" unless it's used.
ed7bf3a5
PE
12073 (x_iconify_frame, x_free_frame_resources): Don't declare locals
12074 unless they are used.
38d0b34a
PE
12075 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
12076 (x_fatal_error_signal): Remove; not used.
a6067996
PE
12077 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
12078 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
12079 (x_error_catcher, x_connection_closed, x_error_handler):
12080 (x_error_quitter, xembed_send_message, x_iconify_frame):
12081 (my_log_handler): Rename locals to avoid shadowing.
28f1c698 12082 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
2a8fade0 12083 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
77f23912 12084
44f230aa
SM
12085 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
12086 Rename or move locals to avoid shadowing.
6b463e58 12087 (tty_defined_color, merge_face_heights): Now static.
5967d051 12088 (free_realized_faces_for_fontset): Remove; not used.
1e9966ea
PE
12089 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
12090 does not deduce is never used uninitialized.
73719eba
PE
12091 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
12092 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
071048a3 12093
426994c3 12094 * terminal.c (store_terminal_param): Now static.
5489860b 12095
032f1620 12096 * xmenu.c (menu_highlight_callback): Now static.
9d66f88e 12097 (set_frame_menubar): Remove unused local.
d4323972 12098 (xmenu_show): Rename parameter to avoid shadowing.
6d1f7fee
PE
12099 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
12100 since they might point to immutable storage.
281585b0
PE
12101 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
12102 since it's unused otherwise.
032f1620 12103
367c19e5 12104 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
53df7c11 12105 Add a FIXME, since the code still doesn't look right. (Bug#8215)
9f36b9fd
PE
12106 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
12107 avoids a gcc -Wuninitialized diagnostic.
0e086e8f 12108 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
44a3a108
PE
12109 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
12110 does not deduce are never used uninitialized.
70739cbe 12111
07b48fa9
PE
12112 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
12113
8868a238 12114 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
4554d213
PE
12115 * window.c (window_loop, size_window):
12116 (run_window_configuration_change_hook, enlarge_window): Likewise.
8868a238 12117
7e5cf297 12118 * window.c (display_buffer): Now static.
d6550a9f
PE
12119 (size_window): Mark variables that gcc -Wuninitialized
12120 does not deduce are never used uninitialized.
a586633d
PE
12121 * window.h (check_all_windows): New decl, to forestall
12122 gcc -Wmissing-prototypes diagnostic.
5b555da1 12123 * dispextern.h (bidi_dump_cached_states): Likewise.
7e5cf297 12124
f6095868
PE
12125 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
12126 shadowing.
12127 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
726929c4
PE
12128 Include <limits.h>.
12129 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
12130 and to avoid gcc -Wuninitialized warning.
89ef49df
PE
12131 (load_charset_map): Mark variables that gcc -Wuninitialized
12132 does not deduce are never used uninitialized.
53df7c11 12133 (load_charset): Abort instead of using uninitialized var (Bug#8229).
f6095868 12134
f38b440c
PE
12135 * coding.c (coding_set_source, coding_set_destination):
12136 Use "else { /* comment */ }" rather than "else /* comment */;"
12137 for clarity, and to avoid gcc -Wempty-body warning.
2735d060
PE
12138 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
12139 a block, when the outer 'i' will do.
12140 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
12141 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
12142 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
12143 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
12144 (Fdecode_sjis_char, Fdefine_coding_system_internal):
12145 Rename locals to avoid shadowing.
12146 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
e2f1bab9
PE
12147 * coding.c (emacs_mule_char, encode_invocation_designation):
12148 Now static, since they're not used elsewhere.
413bb2db 12149 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
c4a63b12 12150 (decode_coding_object, encode_coding_object, detect_coding_system):
ee05f961
PE
12151 (decode_coding_emacs_mule): Mark variables that gcc
12152 -Wuninitialized does not deduce are never used uninitialized.
160b01f6
PE
12153 (detect_coding_iso_2022): Initialize a local variable that might
12154 be used uninitialized. Leave a FIXME because it's not clear that
53df7c11 12155 this initialization is needed. (Bug#8211)
5f58e762
PE
12156 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
12157 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
12158 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
12159 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
12160 Remove unused macros.
f38b440c 12161
232b38b9 12162 * category.c (hash_get_category_set): Remove unused local var.
9f3b5e69 12163 (copy_category_table): Now static, since it's not used elsewhere.
d0891610 12164 * character.c (string_count_byte8): Likewise.
232b38b9 12165
fb90da1b
PE
12166 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
12167 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
12168
fb93dbc2
PE
12169 * chartab.c (copy_sub_char_table): Now static, since it's not used
12170 elsewhere.
5c156ace
PE
12171 (sub_char_table_ref_and_range, char_table_ref_and_range):
12172 Rename locals to avoid shadowing.
bbcd0949 12173 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
fb93dbc2 12174
7d3b3862 12175 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
630d6892 12176 (BIDI_BOB): Remove unused macro.
7d3b3862 12177
6be7d3da
PE
12178 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
12179 deduce are never used uninitialized.
c2ed9c8b 12180 * term.c (encode_terminal_code): Likewise.
6be7d3da 12181
75f8807f 12182 * term.c (encode_terminal_code): Now static. Remove unused local.
72abad34 12183
50938595
PE
12184 * tparam.h: New file.
12185 * term.c, tparam.h: Include it.
12186 * deps.mk (term.o, tparam.o): Depend on tparam.h.
12187 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
12188 Move these decls to tparam.h, and make them agree with what
12189 is actually in tparam.c. The previous trick of using incompatible
12190 decls in different modules does not conform to the C standard.
12191 All callers of tparam changed to use tparam's actual API.
12192 * tparam.c (tparam1, tparam, tgoto):
12193 Use const pointers where appropriate.
12194
fbceeba2
PE
12195 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
12196 * cm.h (struct cm): Likewise.
12197 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
12198 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
12199 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
12200 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
12201 (turn_on_face, init_tty): Likewise.
12202 * termchar.h (struct tty_display_info): Likewise.
fbceeba2 12203
7f3f1250
PE
12204 * term.c (term_mouse_position): Rename local to avoid shadowing.
12205
e6ca6543
PE
12206 * alloc.c (mark_ttys): Move decl from here ...
12207 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
12208
c40f8d15
AS
122092011-03-11 Andreas Schwab <schwab@linux-m68k.org>
12210
12211 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
12212
cfe0661d
JB
122132011-03-09 Juanma Barranquero <lekktu@gmail.com>
12214
12215 * search.c (compile_pattern_1): Remove argument regp, unused since
12216 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
12217 (compile_pattern): Don't pass it.
12218
0afb4571
J
122192011-03-08 Jan Djärv <jan.h.d@swipnet.se>
12220
12221 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
12222 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
12223 for ! HAVE_GTK3.
12224 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
12225
12226 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
12227
12228 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
12229 gdk_window_get_screen, gdk_window_get_geometry,
12230 gdk_x11_window_lookup_for_display and GDK_KEY_g.
12231 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
12232 (xg_get_pixbuf_from_pixmap): New function.
12233 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
12234 to Pixmap, take frame as parameter, remove GdkColormap parameter.
12235 Call xg_get_pixbuf_from_pixmap instead of
12236 gdk_pixbuf_get_from_drawable.
12237 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
12238 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
12239 (xg_check_special_colors): Use GtkStyleContext and its functions
12240 for HAVE_GTK3.
12241 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
12242 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
12243 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
44f230aa
SM
12244 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
12245 Call gtk_widget_get_preferred_size.
0afb4571
J
12246 (xg_frame_resized): gdk_window_get_geometry only takes 5
12247 parameters.
44f230aa
SM
12248 (xg_win_to_widget, xg_event_is_for_menubar):
12249 Call gdk_x11_window_lookup_for_display.
0afb4571
J
12250 (xg_set_widget_bg): New function.
12251 (delete_cb): New function.
895009e1 12252 (xg_create_frame_widgets): Connect delete-event to delete_cb.
5c32d3f2 12253 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
0afb4571
J
12254 (xg_set_background_color): Call xg_set_widget_bg.
12255 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
12256 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
12257 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
12258 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
12259 if ! HAVE_GTK3.
12260 (update_frame_tool_bar): Call gtk_widget_hide.
12261 (xg_initialize): Use GDK_KEY_g.
12262
12263 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
12264 if ! HAVE_GTK3
12265 (x_session_initialize): Call gdk_x11_set_sm_client_id.
12266
12267 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
12268 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
12269 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
12270
1c2cc4ef
JB
122712011-03-08 Juanma Barranquero <lekktu@gmail.com>
12272
12273 * w32xfns.c (select_palette): Check success of RealizePalette against
12274 GDI_ERROR, not zero.
12275
33383987 12276See ChangeLog.11 for earlier changes.
aac0c6e3
MR
12277
12278;; Local Variables:
12279;; coding: utf-8
aac0c6e3
MR
12280;; End:
12281
2f097256 12282 Copyright (C) 2011-2012 Free Software Foundation, Inc.
aac0c6e3
MR
12283
12284 This file is part of GNU Emacs.
12285
12286 GNU Emacs is free software: you can redistribute it and/or modify
12287 it under the terms of the GNU General Public License as published by
12288 the Free Software Foundation, either version 3 of the License, or
12289 (at your option) any later version.
12290
12291 GNU Emacs is distributed in the hope that it will be useful,
12292 but WITHOUT ANY WARRANTY; without even the implied warranty of
12293 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12294 GNU General Public License for more details.
12295
12296 You should have received a copy of the GNU General Public License
12297 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.