* xfns.c (x_window): Remove redundant cast.
[bpt/emacs.git] / src / ChangeLog
1 2012-06-25 Paul Eggert <eggert@cs.ucla.edu>
2
3 * xfns.c (x_window): Remove redundant cast.
4
5 2012-06-25 Dmitry Antipov <dmantipov@yandex.ru>
6
7 * xmenu.c (xmenu_show, xdialog_show): Explicit cast from
8 `const char *' to `char *' to avoid compiler warning.
9
10 2012-06-24 Paul Eggert <eggert@cs.ucla.edu>
11
12 * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
13 instead of truncating it to 63 (admittedly a generous limit).
14
15 * process.c: Fix spelling and caps in comments.
16
17 2012-06-24 Dan Nicolaescu <dann@ics.uci.edu>
18
19 * emacs.c (setpgrp): Remove definition, unused.
20 * sysdep.c (setpgrp): Remove definition, not used in this file.
21
22 2012-06-24 Juanma Barranquero <lekktu@gmail.com>
23
24 * makefile.w32-in: Update dependencies.
25
26 2012-06-24 Eli Zaretskii <eliz@gnu.org>
27
28 * makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
29 (SYSTIME_H): Add nt/inc/sys/time.h.
30
31 * systime.h [WINDOWSNT]: Include sys/time.h.
32
33 * s/ms-w32.h (struct timespec): Definition moved from
34 nt/inc/sys/time.h. Suggested by Paul Eggert <eggert@cs.ucla.edu>.
35
36 2012-06-24 Paul Eggert <eggert@cs.ucla.edu>
37
38 Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
39 * buffer.h (buffer_slot_type_mismatch):
40 * data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
41 * eval.c (unwind_to_catch):
42 * image.c (my_png_error, my_error_exit):
43 * keyboard.c (quit_throw_to_read_char, user_error)
44 (Fexit_recursive_edit, Fabort_recursive_edit):
45 * lisp.h (die, args_out_of_range, args_out_of_range_3)
46 (wrong_type_argument, buffer_overflow, __executable_start)
47 (memory_full, buffer_memory_full, string_overflow, Fthrow)
48 (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
49 (error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
50 (fatal):
51 (child_setup) [!DOS_NT]:
52 * lread.c (end_of_file_error, invalid_syntax):
53 * process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
54 * puresize.h (pure_write_error):
55 * search.c (matcher_overflow):
56 * sound.c (sound_perror, alsa_sound_perror):
57 * sysdep.c, syssignal.h (croak):
58 * term.c (maybe_fatal, vfatal):
59 * textprop.c (text_read_only):
60 * undo.c (user_error):
61 * unexmacosx.c (unexec_error):
62 * xterm.c (x_ins_del_lines, x_delete_glyphs):
63 Use _Noreturn rather than NO_RETURN.
64 No need for separate decl merely because of _Noreturn.
65 * sound.c (sound_warning, parse_sound):
66 Remove unnecessary forward decls.
67
68 2012-06-24 Paul Eggert <eggert@cs.ucla.edu>
69
70 Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
71 * lisp.h (WAIT_READING_MAX): New macro.
72 * dispnew.c (Fsleep_for, sit_for):
73 * keyboard.c (kbd_buffer_get_event):
74 * process.c (Faccept_process_output):
75 Use it to avoid bogus compiler warnings with obsolescent GCC versions.
76 This improves on the previous patch, which introduced a bug
77 when time_t is unsigned and as wide as intmax_t.
78 See <http://bugs.gnu.org/9000#51>.
79
80 2012-06-23 Eli Zaretskii <eliz@gnu.org>
81
82 * dispnew.c (sit_for, Fsleep_for):
83 * keyboard.c (kbd_buffer_get_event):
84 * process.c (Faccept_process_output): Avoid compiler warnings when
85 comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
86
87 2012-06-23 Juanma Barranquero <lekktu@gmail.com>
88
89 * makefile.w32-in: Update dependencies.
90
91 * w32.c (ltime): Add return type and declare static.
92 (w32_get_internal_run_time): Remove usused variable `time_100ns'.
93
94 2012-06-23 Paul Eggert <eggert@cs.ucla.edu>
95
96 * sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
97 Privately reported by Herbert J. Skuhra.
98 (make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
99 All uses changed.
100 (system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
101 not make_lisp_timeval, when the argument is of type EMACS_TIME.
102
103 2012-06-23 Eli Zaretskii <eliz@gnu.org>
104
105 * w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
106 last argument of make_unibyte_string.
107
108 * keyboard.c (kbd_buffer_get_event): Include the codepage and the
109 language ID in the event parameters.
110
111 * w32term.c (w32_read_socket): Put the new keyboard codepage into
112 event.code, not the obscure "character set ID".
113
114 2012-06-23 Chong Yidong <cyd@gnu.org>
115
116 * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
117
118 2012-06-23 Eli Zaretskii <eliz@gnu.org>
119
120 Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
121 * w32.c (fdutimens): New function.
122
123 * w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
124
125 * s/ms-w32.h (pselect): Redirect to sys_select.
126
127 * sysselect.h [WINDOWSNT]: Don't include sys/select.h.
128
129 * ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
130 in the logic of incrementing and decrementing the value of
131 use_relocatable_buffers.
132
133 2012-06-23 Paul Eggert <eggert@cs.ucla.edu>
134
135 * sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
136 Privately reported by Herbert J. Skuhra.
137 [__FreeBSD__]: Remove "*/" typo after "#include".
138 (timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
139 (TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
140 (TIMEVAL, system_process_attributes) [__FreeBSD__]:
141 Don't assume EMACS_TIME and struct timeval are the same type.
142
143 2012-06-22 Paul Eggert <eggert@cs.ucla.edu>
144
145 Support higher-resolution time stamps (Bug#9000).
146 The time stamps are only nanosecond-resolution at the C level,
147 since that's the best that any real-world system supports now.
148 But they are picosecond-resolution at the Lisp level, as that's
149 easy, and leaves room for future OS improvements.
150
151 * Makefile.in (LIB_CLOCK_GETTIME): New macro.
152 (LIBES): Use it.
153
154 * alloc.c (Fgarbage_collect): Port to higher-res time stamps.
155 Don't get current time unless it's needed.
156
157 * atimer.c: Include <sys/time.h> unconditionally, since gnulib
158 now provides it if it's absent.
159 (start_atimer): Port to higher-res time stamps.
160 Check for time stamp overflow. Don't get current time more
161 often than is needed.
162
163 * buffer.h (struct buffer): Buffer modtime now has high resolution.
164 Include systime.h, not time.h.
165 (NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
166
167 * dired.c: Include stat-time.h.
168 (Ffile-attributes): File times now have higher resolution.
169
170 * dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
171 (struct image): Timestamp now has higher resolution.
172
173 * dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
174 has at least microseconds now. All uses removed.
175 (update_frame, update_single_window, update_window, update_frame_1)
176 (Fsleep_for, sit_for): Port to higher-resolution time stamps.
177
178 * editfns.c (time_overflow): Now extern.
179 (Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
180 (float-time, Fformat_time_string, Fcurrent_time_string)
181 (Fcurrent_time_zone): Accept and generate higher-resolution
182 time stamps.
183 (make_time_tail, make_lisp_time, dissassemble_lisp_time)
184 (decode_time_components, lisp_seconds_argument): New functions.
185 (make_time): Now static.
186 (lisp_time_argument): Now returns EMACS_TIME. New arg ppsec.
187 Report an error if the time is invalid, rather than having the caller
188 do that.
189
190 * fileio.c: Include <stat-time.h>
191 (Fcopy_file): Copy higher-resolution time stamps.
192 Prefer to set the time stamp via a file descriptor if that works.
193 (Fset_file_times, Finsert_file_contents, Fwrite_region)
194 (Fverify_visited_file_modtime, Fclear_visited_file_modtime)
195 (Fvisited_file_modtime, Fset_visited_file_modtime):
196 Support higher-resolution time stamps.
197
198 * fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
199
200 * gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
201
202 * image.c (prepare_image_for_display, clear_image_cache)
203 (lookup_image): Port to higer-resolution time stamps.
204
205 * keyboard.c (start_polling, bind_polling_period):
206 Check for time stamp overflow.
207 (read_char, kbd_buffer_get_event, timer_start_idle)
208 (timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
209 (Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
210 Port to higher-resolution time stamps. Do not assume time_t is signed.
211 (decode_timer): New function. Timers are now vectors of length 9,
212 not 8, to accommodate the picosecond component.
213 (timer_check_2): Use it.
214
215 * nsterm.m (select_timeout, timeval_subtract): Remove.
216 (ns_timeout): Use Emacs's facilities for time stamp arithmetic,
217 as they're a bit more accurate and handle overflow better.
218 (ns_select): Change prototype to be compatible with pselect.
219 (ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
220 * nsterm.h (ns_select): Adjust prototype.
221
222 * msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
223 us-resolution time stamps.
224 (sys_select): Use the new EMACS_TIME_SIGN macro instead.
225
226 * lread.c (read_filtered_event): Port to ns-resolution time stamps.
227
228 * lisp.h (time_overflow): New decl.
229 (wait_reading_process_output): First arg is now intmax_t, not int,
230 to accommodate larger waits.
231
232 * process.h (struct Lisp_Process.read_output_delay):
233 Now counts nanoseconds, not microseconds.
234 * process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
235 EMACS_HAS_USECS.
236 (READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
237 (wait_reading_process_output):
238 Port to ns-resolution time stamps.
239 (Faccept_process_output, wait_reading_process_output):
240 Check for time stamp overflow. Do not assume time_t is signed.
241 (select_wrapper): Remove; we now use pselect.
242 (Fprocess_attributes): Now generates ns-resolution time stamps.
243
244 * sysdep.c: Include utimens.h. Don't include utime.h
245 or worry about struct utimbuf; gnulib does that for us now.
246 (gettimeofday): Remove; gnulib provides a substitute.
247 (make_timeval): New function.
248 (set_file_times): Now sets ns-resolution time stamps.
249 New arg FD; all uses changed.
250 (time_from_jiffies, ltime_from_jiffies, get_up_time)
251 (system_process_attributes):
252 Now returns ns-resolution time stamp. All uses changed.
253 Check for time stamp overflow.
254
255 * sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
256 provides a substitute now.
257
258 * systime.h: Include timespec.h rather than sys/time.h and time.h,
259 since it guarantees struct timespec.
260 (EMACS_TIME): Now struct timespec, so that we can support
261 ns-resolution time stamps.
262 (EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
263 (EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
264 (EMACS_USECS): Remove.
265 (EMACS_SET_USECS): The underlying time stamp now has ns resolution,
266 so multiply the arg by 1000 before storing it.
267 (EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
268 New macros.
269 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
270 Port to ns-resolution time stamps.
271 (EMACS_TIME_NEG_P): Remove; replaced by....
272 (EMACS_TIME_SIGN): New macro.
273 (EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
274 (EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
275 (set_file_times, make_time, lisp_time_argument): Adjust signature.
276 (make_timeval, make_lisp_time, decode_time_components): New decls.
277 (EMACS_TIME_CMP): Remove; no longer used. Plus, it was buggy, in
278 that it mishandled time_t overflow. You can't compare by subtracting!
279 (EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
280 (EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
281
282 * term.c: Include <sys/time.h>.
283 (timeval_to_Time): New function, for proper overflow wraparound.
284 (term_mouse_position, term_mouse_click): Use it.
285
286 * undo.c (record_first_change): Support higher-resolution time stamps
287 in the undo buffer.
288 (Fprimitive_undo): Use them when restoring time stamps.
289
290 * w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
291 (w32_get_internal_run_time):
292 Port to higher-resolution Emacs time stamps.
293 (ltime): Now accepts single 64-bit integer, as that's more convenient
294 for callers.
295
296 * xdisp.c (start_hourglass): Port to ns-resolution time stamps.
297
298 * xgselect.c, xgselect.h (xg_select): Add sigmask argument,
299 for compatibility with pselect. Support ns-resolution time stamps.
300
301 * xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
302
303 * xselect.c (wait_for_property_change, x_get_foreign_selection):
304 Check for time stamp overflow, and support ns-resolution time stamps.
305
306 * xterm.c: Don't include sys/time.h; gnulib does that for us now.
307 Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
308 (timeval_subtract): Remove; no longer needed.
309 (XTflash, XTring_bell, x_wait_for_event):
310 Port to ns-resolution time stamps. Don't assume time_t is signed.
311
312 2012-06-22 Chong Yidong <cyd@gnu.org>
313
314 * xdisp.c (x_consider_frame_title): Revert last change.
315
316 2012-06-22 Eli Zaretskii <eliz@gnu.org>
317
318 * alloc.c (NSTATICS): Enlarge to 0x650. Otherwise, Emacs compiled
319 with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
320 aborts in staticpro during startup. (Without -DBYTE_CODE_METER,
321 staticidx goes up to 1597 out of 1600 = 0x640.)
322
323 2012-06-20 Paul Eggert <eggert@cs.ucla.edu>
324
325 * fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
326 Otherwise, the umask might be mistakenly 0 while handling input signals.
327
328 2012-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
329
330 * minibuf.c (Fread_string): Bind minibuffer-completion-table.
331
332 2012-06-19 Dmitry Antipov <dmantipov@yandex.ru>
333
334 * alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
335 * font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
336 * print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
337 access to `contents' member of Lisp_Vector objects with AREF and ASET
338 where appropriate.
339
340 2012-06-19 Chong Yidong <cyd@gnu.org>
341
342 * frame.c (delete_frame): When selecting a frame on a different
343 text terminal, do not alter the terminal's top-frame.
344
345 * xdisp.c (format_mode_line_unwind_data): Record the target
346 frame's selected window and its terminal's top-frame.
347 (unwind_format_mode_line): Restore them.
348 (x_consider_frame_title, display_mode_line, Fformat_mode_line):
349 Callers changed.
350 (x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
351 since tty frames can be explicitly named.
352 (prepare_menu_bars): Likewise.
353
354 * term.c (Ftty_top_frame): New function.
355
356 2012-06-18 Paul Eggert <eggert@cs.ucla.edu>
357
358 Port byte-code-meter to modern targets.
359 * bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
360 !CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG. Problem with
361 CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
362 <http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00282.html>.
363 (METER_1, METER_2): Simplify.
364
365 2012-06-18 Stefan Monnier <monnier@iro.umontreal.ca>
366
367 * data.c (Fdefalias): Return `symbol' (bug#11686).
368
369 2012-06-18 Martin Rudalics <rudalics@gmx.at>
370
371 * buffer.c (Fkill_buffer): Don't throw an error when the buffer
372 gets killed during executing of this function (Bug#11665).
373 Try to always return Qt when the buffer has been actually killed.
374 (Vkill_buffer_query_functions): In doc-string say that functions
375 run by this hook should not change the current buffer.
376
377 2012-06-18 Paul Eggert <eggert@cs.ucla.edu>
378
379 Fix recently-introduced process.c problems found by static checking.
380 * process.c (write_queue_push, write_queue_pop, send_process):
381 Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
382 (write_queue_pop): Fix pointer signedness problem.
383 (send_process): Remove unused local.
384
385 2012-06-17 Chong Yidong <cyd@gnu.org>
386
387 * xdisp.c (redisplay_internal): No need to redisplay terminal
388 frames that are not on top.
389
390 2012-06-17 Troels Nielsen <bn.troels@gmail.com>
391
392 * process.c (make_process): Initialize write_queue.
393 (write_queue_push, write_queue_pop): New functions.
394 (send_process): Use them to maintain correct ordering of process
395 writes (Bug#10815).
396
397 2012-06-17 Paul Eggert <eggert@cs.ucla.edu>
398
399 * lisp.h (eassert): Assume C89 or later.
400 This removes the need for CHECK.
401 (CHECK): Remove. Its comments about always evaluating its
402 argument were confusing, as 'eassert' typically does not evaluate
403 its argument.
404
405 * coding.c (produce_chars): Use ptrdiff_t, not int.
406
407 * xterm.c (x_draw_underwave): Check for integer overflow.
408 This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
409
410 2012-06-17 Jan Djärv <jan.h.d@swipnet.se>
411
412 * nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
413 referenced (Bug#11583).
414
415 2012-06-16 Aurelien Aptel <aurelien.aptel@gmail.com>
416
417 Implement wave-style variant of underlining.
418 * dispextern.h (face_underline_type): New enum.
419 (face): Add field for underline type.
420 * nsterm.m (ns_draw_underwave): New function.
421 (ns_draw_text_decoration): Use it.
422 * w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
423 New functions.
424 (x_draw_glyph_string): Use them.
425 * xfaces.c (Qline, Qwave): New Lisp objects.
426 (check_lface_attrs, merge_face_ref)
427 (Finternal_set_lisp_face_attribute, realize_x_face):
428 Handle wave-style underline face attributes.
429 * xterm.c (x_draw_underwave): New function.
430 (x_draw_glyph_string): Use it.
431
432 2012-06-16 Juanma Barranquero <lekktu@gmail.com>
433
434 * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
435 ($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
436 ($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
437 ($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
438 ($(BLD)/w32select.$(O)): Update dependencies.
439
440 2012-06-16 Andreas Schwab <schwab@linux-m68k.org>
441
442 * buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
443 (BUF_FETCH_MULTIBYTE_CHAR): Likewise.
444 * character.c (_fetch_multibyte_char_p): Remove.
445 * alloc.c: Include "character.h" before "buffer.h".
446 * bidi.c: Likewise.
447 * buffer.c: Likewise.
448 * bytecode.c: Likewise.
449 * callint.c: Likewise.
450 * callproc.c: Likewise.
451 * casefiddle.c: Likewise.
452 * casetab.c: Likewise.
453 * category.c: Likewise.
454 * cmds.c: Likewise.
455 * coding.c: Likewise.
456 * composite.c: Likewise.
457 * dired.c: Likewise.
458 * dispnew.c: Likewise.
459 * doc.c: Likewise.
460 * dosfns.c: Likewise.
461 * editfns.c: Likewise.
462 * emacs.c: Likewise.
463 * fileio.c: Likewise.
464 * filelock.c: Likewise.
465 * font.c: Likewise.
466 * fontset.c: Likewise.
467 * fringe.c: Likewise.
468 * indent.c: Likewise.
469 * insdel.c: Likewise.
470 * intervals.c: Likewise.
471 * keyboard.c: Likewise.
472 * keymap.c: Likewise.
473 * lread.c: Likewise.
474 * macros.c: Likewise.
475 * marker.c: Likewise.
476 * minibuf.c: Likewise.
477 * nsfns.m: Likewise.
478 * nsmenu.m: Likewise.
479 * print.c: Likewise.
480 * process.c: Likewise.
481 * regex.c: Likewise.
482 * region-cache.c: Likewise.
483 * search.c: Likewise.
484 * syntax.c: Likewise.
485 * term.c: Likewise.
486 * textprop.c: Likewise.
487 * undo.c: Likewise.
488 * unexsol.c: Likewise.
489 * w16select.c: Likewise.
490 * w32fns.c: Likewise.
491 * w32menu.c: Likewise.
492 * window.c: Likewise.
493 * xdisp.c: Likewise.
494 * xfns.c: Likewise.
495 * xmenu.c: Likewise.
496 * xml.c: Likewise.
497 * xselect.c: Likewise.
498
499 2012-06-16 Eli Zaretskii <eliz@gnu.org>
500
501 * xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
502 If all the glyphs of the glyph row came from strings, and we have no
503 cursor positioning clues, put the cursor on the first glyph of the
504 row.
505 (handle_face_prop): Use chunk-relative overlay string index when
506 indexing into it->string_overlays array. (Bug#11653)
507 (set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
508 the rightmost. (Bug#11720)
509
510 2012-06-16 Andreas Schwab <schwab@linux-m68k.org>
511
512 * category.h (CHAR_HAS_CATEGORY): Define as inline.
513 (CATEGORY_MEMBER): Enforce 1/0 value.
514 * category.c (_temp_category_set): Remove.
515
516 2012-06-16 Eli Zaretskii <eliz@gnu.org>
517
518 * window.c (Fdelete_other_windows_internal)
519 (Fdelete_window_internal): Don't access frame's mouse highlight
520 info of the initial frame. (Bug#11677)
521
522 2012-06-14 Paul Eggert <eggert@cs.ucla.edu>
523
524 * .gdbinit (xgetint): Fix recently-introduced paren typo.
525 Assume USE_2_TAGS_FOR_INTS.
526 (xreload): Adjust $tagmask width to match recent lisp.h change.
527
528 Simplify lisp.h in minor ways that should not affect code.
529 * lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
530 (LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
531 (LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
532 Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
533 (INTTYPEBITS): New macro, for clarity.
534 (INTMASK, MOST_POSITIVE_FIXNUM): Use it.
535 (LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
536 Simplify now that USE_LSB_TAG is always defined.
537 (TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
538 (make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
539
540 2012-06-13 Juanma Barranquero <lekktu@gmail.com>
541
542 * makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
543
544 2012-06-13 Glenn Morris <rgm@gnu.org>
545
546 * s/bsd-common.h (BSD4_3):
547 * s/usg5-4-common.h (USG5_4): No longer define; unused.
548
549 2012-06-13 Andreas Schwab <schwab@linux-m68k.org>
550
551 * lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
552 instead of union.
553 (XLI, XIL): Define.
554 (XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
555 Use them.
556 * emacs.c (gdb_use_struct): Rename from gdb_use_union.
557 * .gdbinit: Check gdb_use_struct instead of gdb_use_union.
558 * alloc.c (widen_to_Lisp_Object): Remove.
559 (mark_memory): Use XIL instead of widen_to_Lisp_Object.
560 * frame.c (delete_frame): Remove outdated comment.
561 * w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
562 USE_LISP_UNION_TYPE.
563 (Fw32_unregister_hot_key): Likewise.
564 (Fw32_toggle_lock_key): Likewise.
565 * w32menu.c (add_menu_item): Likewise.
566 (w32_menu_display_help): Use XIL instead of checking
567 USE_LISP_UNION_TYPE.
568 * w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
569 (init_heap): Likewise.
570 * w32term.c (w32_read_socket): Update comment.
571
572 2012-06-13 Glenn Morris <rgm@gnu.org>
573
574 * s/usg5-4-common.h, src/s/unixware.h:
575 Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
576
577 * s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
578
579 2012-06-13 Paul Eggert <eggert@cs.ucla.edu>
580
581 USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
582 * alloc.c (make_number) [!defined make_number]:
583 Remove, as lisp.h always defines this now.
584 (mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
585 (roundup_size): Verify that it is a power of 2.
586 * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
587 * ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
588 * lisp.h (USE_LSB_TAG): Allow the builder to compile with
589 -DUSE_LSB_TAG=0, to override the automatically-selected default.
590 USE_LSB_TAG now is always defined to be either 0 or 1.
591 All uses changed.
592 (union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
593 code works fine either way, and efficiency is not a concern here,
594 as the union type is for debugging, not for production.
595 (LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
596 Use an inline function on all platforms when using the union type,
597 since this is simpler and 'static inline' can be used portably
598 within Emacs now.
599 (LISP_INITIALLY_ZERO): New macro.
600 (XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
601 (XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
602
603 2012-06-12 Glenn Morris <rgm@gnu.org>
604
605 * s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
606
607 * s/gnu-linux.h (HAVE_PROCFS): Move to configure.
608
609 * s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
610 Move BROKEN_SIGIO to configure.
611
612 * s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
613 Move NO_TERMIO to configure.
614
615 2012-06-12 Chong Yidong <cyd@gnu.org>
616
617 * image.c (imagemagick_load_image): Use MagickFlattenImage if
618 MagickMergeImageLayers is undefined. Use pixel pusher loop if
619 MagickExportImagePixels is undefined.
620
621 2012-06-12 Paul Eggert <eggert@cs.ucla.edu>
622
623 * image.c (imagemagick_load_image): Remove unused label.
624
625 2012-06-11 Glenn Morris <rgm@gnu.org>
626
627 * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
628 * s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
629 * s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
630 * s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
631
632 2012-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
633
634 * alloc.c (make_byte_code): New function.
635 (Fmake_byte_code): Use it. Don't purify here.
636 * lread.c (read1): Use it as well to avoid extra allocation.
637
638 2012-06-11 Chong Yidong <cyd@gnu.org>
639
640 * image.c (imagemagick_load_image): Implement transparency.
641
642 2012-06-10 Andreas Schwab <schwab@linux-m68k.org>
643
644 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
645 account for preceding backslashes. (Bug#11663)
646
647 2012-06-09 Chong Yidong <cyd@gnu.org>
648
649 * term.c: Support italics in capable terminals (Bug#9652).
650 (no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
651 (turn_on_face): Output using TS_enter_italic_mode if available.
652 Don't handle unused blinking and alt-charset cases.
653 (turn_off_face): Handle italic case; discard unused tty_blinking_p
654 and tty_alt_charset_p cases.
655 (tty_capable_p, init_tty): Support italics.
656
657 * termchar.h (struct tty_display_info): Add field for italics.
658 Remove unused blink field.
659
660 * xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
661 Handle slant.
662
663 * dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
664 (struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
665 tty_alt_charset_p. Add tty_italic_p.
666
667 2012-06-09 Michael Albinus <michael.albinus@gmx.de>
668
669 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
670 dbus_type_is_basic if available.
671 (xd_extract_signed, xd_extract_unsigned): Rename from
672 extract_signed and extract_unsigned, respectively. Adapt callers.
673
674 2012-06-09 Chong Yidong <cyd@gnu.org>
675
676 * xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
677
678 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
679 case (Bug#9752).
680
681 2012-06-08 Paul Eggert <eggert@cs.ucla.edu>
682
683 * xdisp.c (vmessage): Treat frame message as multibyte.
684 Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
685 would generate the diagnostic "Making \302\247 buffer-local while
686 let-bound!".
687
688 2012-06-08 Eli Zaretskii <eliz@gnu.org>
689
690 * dispnew.c (showing_window_margins_p): Undo last change, which
691 was done due to an inadvertent commit.
692 (adjust_frame_glyphs_for_frame_redisplay): Do call
693 showing_window_margins_p.
694
695 2012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
696
697 * eval.c (Fmake_var_non_special): New primitive.
698 (syms_of_eval): Defsubr it.
699 * lread.c (syms_of_lread): Mark `values' as lexically scoped.
700
701 2012-06-08 Juanma Barranquero <lekktu@gmail.com>
702
703 * dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
704 function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
705
706 2012-06-08 Eli Zaretskii <eliz@gnu.org>
707
708 * alloc.c (allocate_vectorlike): Fix last change.
709
710 2012-06-08 Dmitry Antipov <dmantipov@yandex.ru>
711
712 Block-based vector allocation of small vectors.
713 * lisp.h (struct vectorlike_header): New field `nbytes',
714 adjust comment accordingly.
715 * alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
716 to denote vector blocks. Adjust users (live_vector_p,
717 mark_maybe_pointer, valid_lisp_object_p) accordingly.
718 (COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
719 (VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES),
720 (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX),
721 (VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST),
722 (VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
723 (roundup_size): New constant.
724 (struct vector_block): New data type.
725 (vector_blocks, vector_free_lists, zero_vector): New variables.
726 (all_vectors): Rename to `large_vectors'.
727 (allocate_vector_from_block, init_vectors, allocate_vector_from_block)
728 (sweep_vectors): New functions.
729 (allocate_vectorlike): Return `zero_vector' as the only vector of
730 0 items. Allocate new vector from block if vector size is less than
731 or equal to VBLOCK_BYTES_MAX.
732 (Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
733 (init_alloc_once): Add call to init_vectors.
734
735 2012-06-08 Stefan Monnier <monnier@iro.umontreal.ca>
736
737 * eval.c (Fmacroexpand): Stop if the macro returns the same form.
738
739 2012-06-07 Paul Eggert <eggert@cs.ucla.edu>
740
741 * doprnt.c (doprnt): Truncate multibyte char correctly.
742 Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
743 would mishandle a string argument "Xc" if X was a multibyte
744 character of length 2: it would truncate after X's first byte
745 rather than including all of X.
746
747 2012-06-06 Chong Yidong <cyd@gnu.org>
748
749 * buffer.c (word_wrap): Doc fix.
750
751 2012-06-04 Paul Eggert <eggert@cs.ucla.edu>
752
753 * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
754
755 2012-06-03 Glenn Morris <rgm@gnu.org>
756
757 * xdisp.c (tool-bar-style): Doc fix.
758
759 2012-06-03 Ulrich Müller <ulm@gentoo.org>
760
761 * Makefile.in (PAXCTL): Define.
762 (temacs$(EXEEXT)): Disable memory randomization for the temacs
763 binary via PaX flags if the paxctl utility is available.
764 (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
765 Restore PaX flags to their default. (Bug#11398)
766
767 2012-06-03 Chong Yidong <cyd@gnu.org>
768
769 * xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
770 buffer (Bug#11226).
771
772 2012-06-03 Chong Yidong <cyd@gnu.org>
773
774 * xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
775 (note_mode_line_or_margin_highlight): If there is no help echo,
776 use mode-line-default-help-echo. Handle the case where the mouse
777 position is past the end of the mode line string.
778
779 * buffer.c (buffer_local_value_1): New function, split from
780 Fbuffer_local_value; can return Qunbound.
781 (Fbuffer_local_value): Use it.
782 (Vmode_line_format): Docstring tweaks.
783
784 2012-06-02 Paul Eggert <eggert@cs.ucla.edu>
785
786 * sysdep.c (system_process_attributes): Improve comment.
787
788 2012-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
789
790 * keyboard.c: Export real-this-command to Elisp.
791 (syms_of_keyboard): Rename real_this_command to Vreal_this_command
792 and DEFVAR it. Update all users.
793
794 2012-06-02 Paul Eggert <eggert@cs.ucla.edu>
795
796 * minibuf.c (Fassoc_string): Remove duplicate declaration.
797
798 * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
799 Convert pctcpu and pctmem to Lisp float properly.
800 Let the compiler fold better, as 100.0/0x8000 is exact.
801
802 2012-06-02 Andreas Schwab <schwab@linux-m68k.org>
803
804 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
805 cons_block.
806
807 2012-06-01 Paul Eggert <eggert@cs.ucla.edu>
808
809 * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
810
811 2012-06-01 Dmitry Antipov <dmantipov@yandex.ru>
812
813 For a 'struct window', replace some Lisp_Object fields to
814 bitfields where appropriate, remove unused fields.
815 * window.h (struct window): Remove unused 'last_mark_x' and
816 'last_mark_y' fields. Rename 'mini_p' field to 'mini',
817 change it's type from Lisp_Object to bitfield.
818 Change type of 'force_start', 'optional_new_start',
819 'last_had_star', 'update_mode_line' and 'start_at_line_beg'
820 fields from Lisp_Object to bitfield. Adjust users accordingly.
821
822 2012-05-31 Paul Eggert <eggert@cs.ucla.edu>
823
824 Pacify gcc -Wdouble-precision when using Xaw.
825 * xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
826 [HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
827 Use 'float' consistently, rather than 'float' in most places
828 and 'double' in a couple of places.
829
830 2012-05-31 Eli Zaretskii <eliz@gnu.org>
831
832 * xdisp.c (handle_stop): Detect whether we have overlay strings
833 loaded by testing it->current.overlay_string_index to be
834 non-negative, instead of checking whether n_overlay_strings is
835 positive. (Bug#11587)
836
837 2012-05-31 Chong Yidong <cyd@gnu.org>
838
839 * keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
840
841 * doc.c (Fsubstitute_command_keys): Doc fix.
842
843 2012-05-31 Eli Zaretskii <eliz@gnu.org>
844
845 * search.c (search_buffer): Remove calls to
846 r_alloc_inhibit_buffer_relocation, as it is now called by
847 maybe_unify_char, which was the cause of relocation of buffer text
848 in bug#11519.
849
850 2012-05-31 Eli Zaretskii <eliz@gnu.org>
851
852 * charset.c (maybe_unify_char): Inhibit relocation of buffer text
853 for the duration of call to load_charset, to avoid problems with
854 callers of maybe_unify_char that access buffer text through C
855 pointers.
856
857 * ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
858 decrement the inhibition flag, instead of just setting or
859 resetting it.
860
861 2012-05-31 Paul Eggert <eggert@cs.ucla.edu>
862
863 Remove obsolete '#define static' cruft.
864 * s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
865 This #undef was "temporary" in 2000; it is no longer needed
866 now that '#define static' has gone away.
867 * xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
868 (gray_bitmap_bits): Remove; no longer needed.
869 All uses replaced with definiens.
870 * xterm.c: Include "bitmaps/gray.xbm".
871
872 2012-05-30 Paul Eggert <eggert@cs.ucla.edu>
873
874 Clean up __executable_start, monstartup when --enable-profiling.
875 The following changes affect the code only when profiling.
876 * dispnew.c (__executable_start): Rename from safe_bcopy.
877 Define only on platforms that need it.
878 * emacs.c: Include <sys/gmon.h> when profiling.
879 (_mcleanup): Remove decl, since <sys/gmon.h> does it now.
880 (__executable_start): Remove decl, since lisp.h does it now.
881 (safe_bcopy): Remove decl; no longer has that name.
882 (main): Coalesce #if into single bit of code, for simplicity.
883 Cast pointers to uintptr_t, since standard libraries want integers
884 and not pointers.
885 * lisp.h (__executable_start): New decl.
886
887 2012-05-31 Glenn Morris <rgm@gnu.org>
888
889 * image.c (Fimagemagick_types): Doc fix.
890
891 2012-05-30 Jim Meyering <meyering@redhat.com>
892
893 * callproc.c (Fcall_process_region): Include directory component
894 in mkstemp error message (Bug#11586).
895
896 2012-05-30 Paul Eggert <eggert@cs.ucla.edu>
897
898 * alloc.c, lisp.h (make_pure_vector): Now static.
899
900 2012-05-30 Stefan Monnier <monnier@iro.umontreal.ca>
901
902 * eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
903 Move to byte-run.el.
904 (Fautoload): Do the hash-doc more carefully.
905 * data.c (Fdefalias): Purify definition, except for keymaps.
906 (Qdefun): Move from eval.c.
907 * lisp.h (Qdefun): Remove.
908 * lread.c (read1): Tiny simplification.
909
910 2012-05-29 Troels Nielsen <bn.troels@gmail.com>
911
912 Do not create empty overlays with the evaporate property (Bug#9642).
913 * buffer.c (Fmove_overlay): Reinstate the earlier fix for
914 Bug#9642, but explicitly check that the buffer the overlay would
915 be moved to is live and rearrange lines to make sure that errors
916 will not put the overlay in an inconsistent state.
917 (Fdelete_overlay): Cosmetics.
918
919 2012-05-28 Eli Zaretskii <eliz@gnu.org>
920
921 * w32term.c (my_bring_window_to_top): New function.
922 (x_raise_frame): Use handle returned by DeferWindowPos, which
923 could be different from the original one.
924 Call my_bring_window_to_top instead of my_set_foreground_window.
925 (Bug#11513)
926
927 * w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
928 by calling BringWindowToTop.
929
930 * w32term.h (WM_EMACS_BRINGTOTOP): New message.
931 (WM_EMACS_END): Increase by one.
932
933 2012-05-28 Paul Eggert <eggert@cs.ucla.edu>
934
935 * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
936 This avoids undefined behavior that might cause the eassert
937 to not catch an out-of-range value.
938
939 2012-05-28 Juanma Barranquero <lekktu@gmail.com>
940
941 * makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
942 Update dependencies.
943
944 2012-05-27 Eli Zaretskii <eliz@gnu.org>
945
946 * bidi.c (bidi_mirror_char): Fix last change.
947
948 2012-05-27 Andreas Schwab <schwab@linux-m68k.org>
949
950 * unexmacosx.c (copy_data_segment): Truncate after 16 characters
951 when referring to sectname field in printf format.
952
953 2012-05-27 Paul Eggert <eggert@cs.ucla.edu>
954
955 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
956 Only r_alloc_inhibit_buffer_relocation needed to be added;
957 the others were already declared.
958
959 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
960 before checking whether it's out of range. Put the check inside
961 eassert. See
962 <http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
963
964 2012-05-27 Ken Brown <kbrown@cornell.edu>
965
966 * callproc.c (Fcall_process): Restore a line that was accidentally
967 commented out in the 2011-02-13 change (bug#11547).
968
969 2012-05-27 Eli Zaretskii <eliz@gnu.org>
970
971 * lisp.h [REL_ALLOC]: Add prototypes for external functions
972 defined on ralloc.c.
973
974 * buffer.c [REL_ALLOC]: Remove prototypes of
975 r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
976 they are now on lisp.h.
977
978 * ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
979
980 * search.c (search_buffer): Use it to inhibit relocation of buffer
981 text while re_search_2 is doing its job, because re_search_2 is
982 passed C pointers to buffer text. (Bug#11519)
983
984 * msdos.c (internal_terminal_init) <Vwindow_system_version>:
985 Update value to 24.
986
987 * xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
988 state after an additional call to move_it_in_display_line_to, keep
989 the values of it->max_ascent and it->max_descent found for the
990 entire line.
991 (pos_visible_p): Revert the comparison against bottom_y to what it
992 was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
993 (Bug#11464)
994
995 2012-05-26 Paul Eggert <eggert@cs.ucla.edu>
996
997 Fix coding-related core dumps with gcc -ftrapv.
998 The code was computing A - B, where A and B are pointers, and B is
999 random garbage. This can lead to core dumps on platforms that
1000 have special pointer registers, and it also leads to core dumps on
1001 x86-64 when compiled with gcc -ftrapv. The fix is to compute
1002 A - B only when B is initialized properly.
1003 * coding.c (coding_set_source, coding_set_destination): Return void.
1004 (coding_change_source, coding_change_destinations): New functions,
1005 with the old behaviors of coding_set_source and coding_set_destination.
1006 All callers that need an offset changed to use these new functions.
1007
1008 2012-05-26 Glenn Morris <rgm@gnu.org>
1009
1010 * nsterm.m (ns_init_paths): Don't mess with INFOPATH. (Bug#2791)
1011
1012 2012-05-26 Eli Zaretskii <eliz@gnu.org>
1013
1014 Extend mouse support on W32 text-mode console.
1015 * xdisp.c (draw_row_with_mouse_face):
1016 Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
1017
1018 * w32console.c: Include window.h.
1019 (w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
1020 New functions.
1021 (initialize_w32_display): Initialize mouse-highlight data.
1022
1023 * w32inevt.c: Include termchar.h and window.h.
1024 (do_mouse_event): Support mouse-autoselect-window. When the mouse
1025 moves, call note_mouse_highlight. If help_echo changed, call
1026 gen_help_event to produce help-echo message in the echo area.
1027 Call clear_mouse_face if mouse_face_hidden is set in the mouse
1028 highlight info.
1029
1030 2012-05-26 Paul Eggert <eggert@cs.ucla.edu>
1031
1032 * lread.c (read1): Simplify slightly to avoid an overflow warning
1033 with GCC 4.7.0 on x86-64.
1034
1035 2012-05-26 Eli Zaretskii <eliz@gnu.org>
1036
1037 * bidi.c (bidi_mirror_char): Revert last change: an int is
1038 definitely wide enough here.
1039
1040 2012-05-25 Paul Eggert <eggert@cs.ucla.edu>
1041
1042 Fix integer width and related bugs (Bug#9874).
1043 * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
1044 (allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
1045 (string_bytes, check_sblock, allocate_string_data):
1046 (compact_small_strings, Fmake_bool_vector, make_string)
1047 (make_unibyte_string, make_multibyte_string)
1048 (make_string_from_bytes, make_specified_string)
1049 (allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
1050 (make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
1051 (mark_vectorlike):
1052 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1053 (allocate_pseudovector):
1054 Use int, not EMACS_INT, where int is wide enough.
1055 (inhibit_garbage_collection, Fgarbage_collect):
1056 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1057 * bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
1058 int might not be wide enough.
1059 (bidi_cache_search, bidi_cache_find, bidi_init_it)
1060 (bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
1061 (bidi_at_paragraph_end, bidi_find_paragraph_start)
1062 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
1063 (bidi_level_of_next_char, bidi_move_to_visually_next):
1064 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1065 * buffer.c (copy_overlays, Fgenerate_new_buffer_name)
1066 (Fkill_buffer, Fset_buffer_major_mode)
1067 (advance_to_char_boundary, Fbuffer_swap_text)
1068 (Fset_buffer_multibyte, overlays_at, overlays_in)
1069 (overlay_touches_p, struct sortvec, record_overlay_string)
1070 (overlay_strings, recenter_overlay_lists)
1071 (adjust_overlays_for_insert, adjust_overlays_for_delete)
1072 (fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
1073 (Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
1074 (Foverlay_recenter, last_overlay_modification_hooks_used)
1075 (report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
1076 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1077 (validate_region): Omit unnecessary test for b <= e,
1078 since that's guaranteed by the previous test.
1079 (adjust_overlays_for_delete): Avoid pos + length overflow.
1080 (Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
1081 (report_overlay_modification):
1082 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1083 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
1084 Omit pointer cast, which isn't needed anyway, and doesn't work
1085 after the EMACS_INT -> ptrdiff_t change.
1086 (Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
1087 * buffer.h: Adjust decls to match defn changes elsewhere.
1088 (struct buffer_text, struct buffer):
1089 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1090 Use EMACS_INT, not int, where int might not be wide enough.
1091 * bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
1092 not int, to avoid needless 32-bit limit on 64-bit hosts.
1093 (exec_byte_code): Use tighter memory-full test, one that checks
1094 for alloca overflow. Don't compute the address of the object just
1095 before an array, as that's not portable. Use EMACS_INT, not
1096 ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
1097 * callint.c (Fcall_interactively):
1098 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1099 * callproc.c (call_process_kill, Fcall_process):
1100 Don't assume pid_t fits into an Emacs fixnum.
1101 (call_process_cleanup, Fcall_process, child_setup):
1102 Don't assume pid_t fits into int.
1103 (call_process_cleanup, Fcall_process, delete_temp_file)
1104 (Fcall_process_region):
1105 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1106 (Fcall_process): Simplify handling of volatile integers.
1107 Use int, not EMACS_INT, where int will do.
1108 * casefiddle.c (casify_object, casify_region, operate_on_word)
1109 (Fupcase_word, Fdowncase_word, Fcapitalize_word):
1110 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1111 (casify_object): Avoid integer overflow when overallocating buffer.
1112 * casetab.c (set_identity, shuffle): Prefer int to unsigned when
1113 either works. Use lint_assume to convince GCC 4.6.1 that it's OK.
1114 * category.c (Fchar_category_set): Don't assume fixnum fits in int.
1115 * category.h (CATEGORYP): Don't assume arg is nonnegative.
1116 * ccl.c (GET_CCL_INT): Remove; no longer needed, since the
1117 integers are now checked earlier. All uses replaced with XINT.
1118 (ccl_driver):
1119 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1120 For CCL_MapSingle, check that content and value are in int range.
1121 (ccl_driver, Fregister_code_conversion_map):
1122 Check that Vcode_version_map_vector is a vector.
1123 (resolve_symbol_ccl_program): Check that vector header is in range.
1124 Always copy the vector, so that we can check its contents reliably
1125 now rather than having to recheck each instruction as it's being
1126 executed. Check that vector words fit in 'int'.
1127 (ccl_get_compiled_code, Fregister_ccl_program)
1128 (Fregister_code_conversion_map): Use ptrdiff_t, not int, for
1129 program indexes, to avoid needless 32-bit limit on 64-bit hosts.
1130 (Fccl_execute, Fccl_execute_on_string): Check that initial reg
1131 contents are in range.
1132 (Fccl_execute_on_string): Check that status is in range.
1133 * ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
1134 * character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
1135 Accept and return EMACS_INT, not int, because callers can pass values
1136 out of 'int' range.
1137 (c_string_width, strwidth, lisp_string_width, chars_in_text)
1138 (multibyte_chars_in_text, parse_str_as_multibyte)
1139 (str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
1140 (str_as_unibyte, str_to_unibyte, string_count_byte8)
1141 (string_escape_byte8, Fget_byte):
1142 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1143 (Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
1144 avoid mishandling large integers.
1145 * character.h: Adjust decls to match defn changes elsewhere.
1146 * charset.c (load_charset_map_from_file, find_charsets_in_text)
1147 (Ffind_charset_region):
1148 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1149 (load_charset_map_from_file): Redo idx calculation to avoid overflow.
1150 (load_charset_map_from_vector, Fdefine_charset_internal):
1151 Don't assume fixnum fits in int.
1152 (load_charset_map_from_vector, Fmap_charset_chars):
1153 Remove now-unnecessary CHECK_NATNUMs.
1154 (Fdefine_charset_internal): Check ranges here, more carefully.
1155 Don't rely on undefined behavior with signed left shift overflow.
1156 Don't assume unsigned int fits into fixnum, or that fixnum fits
1157 into unsigned int. Don't require max_code to be a valid fixnum;
1158 that's not true for gb10830 4-byte on a 32-bit host. Allow
1159 invalid_code to be a cons, for the same reason. Require code_offset
1160 to be a character. Avoid int overflow if max_char is close
1161 to INT_MAX.
1162 (CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
1163 this is intended anyway and avoids some undefined behavior.
1164 (load_charset_map): Pass unsigned, not int, as 2nd arg of
1165 INDEX_TO_CODE_POINT, as that's what it expects.
1166 (Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
1167 * charset.h (DECODE_CHAR): Return int, not unsigned;
1168 this is what was intended anyway, and it avoids undefined behavior.
1169 (CHARSET_OFFSET): Remove unused macro, instead of fixing its
1170 integer-overflow issues.
1171 (ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
1172 Formerly, it returned EMACS_INT on 64-bit hosts in the common case
1173 where the argument is EMACS_INT, and this behavior is not intended.
1174 * chartab.c (Fmake_char_table, Fset_char_table_range)
1175 (uniprop_get_decoder, uniprop_get_encoder):
1176 Don't assume fixnum fits in int.
1177 * cmds.c (move_point): New function, that does the gist of
1178 Fforward_char and Fbackward_char, but does so while checking
1179 for integer overflow more accurately.
1180 (Fforward_char, Fbackward_char): Use it.
1181 (Fforward_line, Fend_of_line, internal_self_insert)
1182 (internal_self_insert):
1183 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1184 Fix a FIXME, by checking for integer overflow when calculating
1185 target_clm and actual_clm.
1186 * coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
1187 (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
1188 (ASSURE_DESTINATION, coding_alloc_by_realloc)
1189 (coding_alloc_by_making_gap, alloc_destination)
1190 (detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
1191 (encode_coding_utf_16, detect_coding_emacs_mule)
1192 (decode_coding_emacs_mule, encode_coding_emacs_mule)
1193 (detect_coding_iso_2022, decode_coding_iso_2022)
1194 (encode_invocation_designation, encode_designation_at_bol)
1195 (encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
1196 (decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
1197 (encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
1198 (encode_coding_ccl, encode_coding_raw_text)
1199 (detect_coding_charset, decode_coding_charset)
1200 (encode_coding_charset, detect_eol, decode_eol, produce_chars)
1201 (produce_composition, produce_charset, produce_annotation)
1202 (decode_coding, handle_composition_annotation)
1203 (handle_charset_annotation, consume_chars, decode_coding_gap)
1204 (decode_coding_object, encode_coding_object, detect_coding_system)
1205 (Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
1206 (code_convert_region, code_convert_string)
1207 (Fdefine_coding_system_internal)
1208 (coding_set_source, coding_set_destination):
1209 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1210 (setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
1211 (Fdefine_coding_system_internal):
1212 Don't assume fixnums fit in int.
1213 (decode_coding_gap, decode_coding_object, encode_coding_object)
1214 (Fread_coding_system, Fdetect_coding_region)
1215 (Funencodable_char_position, Fcheck_coding_systems_region)
1216 (get_translation, handle_composition_annotation, consume_chars):
1217 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1218 (consume_chars): Rewrite to not calculate an address outside buffer.
1219 (Ffind_operation_coding_system): NATNUMP can eval its arg twice.
1220 Don't access memory outside of the args array.
1221 (Fdefine_coding_system_internal): Check for charset-id overflow.
1222 (ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
1223 result of ENCODE_CHAR.
1224 * coding.h: Adjust decls to match defn changes elsewhere.
1225 (struct coding_system):
1226 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1227 * composite.c (get_composition_id, find_composition)
1228 (run_composition_function, update_compositions)
1229 (compose_text, composition_gstring_put_cache)
1230 (composition_gstring_p, composition_gstring_width)
1231 (fill_gstring_header, fill_gstring_body, autocmp_chars)
1232 (composition_compute_stop_pos, composition_reseat_it)
1233 (composition_update_it, struct position_record)
1234 (find_automatic_composition, composition_adjust_point)
1235 (Fcomposition_get_gstring, Ffind_composition_internal):
1236 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1237 (update_compositions):
1238 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1239 * composite.h: Adjust decls to match defn changes elsewhere.
1240 (struct composition):
1241 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1242 * data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
1243 Do not attempt to compute the address of the object just before a
1244 buffer; this is not portable.
1245 (Faref, Faset):
1246 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1247 (Faset): Use int, not EMACS_INT, where int is wide enough.
1248 (Fstring_to_number): Don't assume fixnums fit in int.
1249 (Frem): Don't assume arg is nonnegative.
1250 * dbusbind.c (xd_append_arg): Check for integers out of range.
1251 (Fdbus_call_method): Don't overflow the timeout int.
1252 (extract_signed, extract_unsigned): New functions.
1253 (XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
1254 (xd_get_connection_references): Return ptrdiff_t, not int.
1255 All uses changed.
1256 (xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
1257 (xd_read_message_1):
1258 Use int, not unsigned, where the dbus API uses int.
1259 (Fdbus_message_internal): Don't overflow mtype.
1260 (syms_of_dbusbind): Allocate right-sized buffer for integers.
1261 * dired.c (directory_files_internal, file_name_completion, scmp)
1262 (file_name_completion_stat):
1263 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1264 (file_name_completion): Don't overflow matchcount.
1265 (file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
1266 * dispextern.h: Adjust decls to match defn changes elsewhere.
1267 (struct text_pos, struct glyph, struct bidi_saved_info)
1268 (struct bidi_string_data, struct bidi_it, struct composition_it)
1269 (struct it):
1270 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1271 (struct display_pos, struct composition_it, struct it):
1272 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1273 * dispnew.c (increment_matrix_positions)
1274 (increment_row_positions, mode_line_string)
1275 (marginal_area_string):
1276 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1277 (change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
1278 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1279 (duration_to_sec_usec): New function, to check for overflow better.
1280 (Fsleep_for, sit_for): Use it.
1281 * doc.c (get_doc_string, store_function_docstring):
1282 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1283 (get_doc_string, Fsnarf_documentation):
1284 Use int, not EMACS_INT, where int is wide enough.
1285 (get_doc_string):
1286 Use SAFE_ALLOCA, not alloca.
1287 Check for overflow when converting EMACS_INT to off_t.
1288 * doprnt.c (doprnt):
1289 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1290 * editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
1291 Don't assume uid_t fits into fixnum.
1292 (buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
1293 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
1294 (Ffield_end, Fconstrain_to_field, Fline_beginning_position)
1295 (Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
1296 (general_insert_function)
1297 (Finsert_char, make_buffer_string, make_buffer_string_both)
1298 (update_buffer_properties, Fbuffer_substring)
1299 (Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
1300 (Fsubst_char_in_region, check_translation)
1301 (Ftranslate_region_internal, save_restriction_restore, Fformat)
1302 (transpose_markers, Ftranspose_regions):
1303 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1304 (clip_to_bounds): Move to lisp.h as an inline function).
1305 (Fconstrain_to_field): Don't assume integers are nonnegative.
1306 (Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
1307 (Fsubst_char_in_region, Fsave_restriction):
1308 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1309 (Femacs_pid): Don't assume pid_t fits into fixnum.
1310 (lo_time): Use int, not EMACS_INT, when int suffices.
1311 (lisp_time_argument): Check for usec out of range.
1312 (Fencode_time): Don't assume fixnum fits in int.
1313 (Fuser_login_name, Fuser_full_name): Signal an error
1314 if a uid argument is out of range, rather than relying on
1315 undefined behavior.
1316 (Fformat_time_string): Remove now-unnecessary check.
1317 lisp_time_argument checks for out-of-range usec now.
1318 Use ptrdiff_t, not size_t, where ptrdiff_t will do.
1319 * emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
1320 (gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
1321 (PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
1322 (init_cmdargs, Fdump_emacs):
1323 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1324 (Fkill_emacs): Don't assume fixnum fits in int; instead, take just
1325 the bottom (typically) 32 bits of the fixnum.
1326 * eval.c (specpdl_size, call_debugger):
1327 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1328 (when_entered_debugger, Fbacktrace_debug):
1329 Don't assume fixnum can fit in int.
1330 (Fdefvaralias, Fdefvar): Do not attempt to compute the address of
1331 the object just before a buffer; this is not portable.
1332 (FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
1333 (grow_specpdl, unbind_to):
1334 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1335 (Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
1336 (grow_specpdl): Simplify allocation by using xpalloc.
1337 (Fprog1, Fprog2): Don't assume list length fits in int. Simplify.
1338 * fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
1339 (Finsert_file_contents, Fwrite_region, Fdo_auto_save):
1340 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1341 (Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
1342 (a_write, e_write):
1343 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1344 (Fcopy_file, non_regular_nbytes, read_non_regular)
1345 (Finsert_file_contents):
1346 Use int, not EMACS_INT, where int is wide enough.
1347 (READ_BUF_SIZE): Verify that it fits in int.
1348 (Finsert_file_contents): Check that counts are in proper range,
1349 rather than assuming fixnums fit into ptrdiff_t etc.
1350 Don't assume fixnums fit into int.
1351 * floatfns.c (Fexpt): Avoid undefined signed * signed overflow.
1352 * fns.c (Fcompare_strings, Fstring_lessp, struct textprop_rec, concat)
1353 (string_char_byte_cache_charpos, string_char_byte_cache_bytepos)
1354 (string_char_to_byte, string_byte_to_char)
1355 (string_make_multibyte, string_to_multibyte)
1356 (string_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte)
1357 (Fstring_to_unibyte, Fsubstring, Fsubstring_no_properties)
1358 (substring_both, Fdelete, internal_equal, Ffillarray)
1359 (Fclear_string, mapcar1)
1360 (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
1361 (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
1362 (larger_vector, make_hash_table, maybe_resize_hash_table)
1363 (hash_lookup, hash_remove_from_table, hash_clear, sweep_weak_table)
1364 (Fmaphash, secure_hash):
1365 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1366 (concat): Check for string index and length overflow.
1367 (Fmapconcat): Don't assume fixnums fit into ptrdiff_t.
1368 (Frequire):
1369 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1370 (larger_vector): New API (vec, incr_min, size_max) replaces old
1371 one (vec, new_size, init). This catches size overflow.
1372 INIT was removed because it was always Qnil.
1373 All callers changed.
1374 (INDEX_SIZE_BOUND): New macro, which calculates more precisely
1375 the upper bound on a hash table index size.
1376 (make_hash_table, maybe_resize_hash_table): Use it.
1377 (secure_hash): Computer start_byte and end_byte only after
1378 they're known to be in ptrdiff_t range.
1379 * font.c (font_intern_prop, font_at, font_range, Ffont_shape_gstring)
1380 (Ffont_get_glyphs, Ffont_at):
1381 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1382 (font_style_to_value, font_prop_validate_style, font_expand_wildcards)
1383 (Flist_fonts, Fopen_font):
1384 Don't assume fixnum can fit in int.
1385 (check_gstring): Don't assume index can fit in int.
1386 (font_match_p): Check that fixnum is a character, not a nonnegative
1387 fixnum, since the later code needs to stuff it into an int.
1388 (font_find_for_lface): Use SAFE_ALLOCA_LISP, not alloca.
1389 (font_fill_lglyph_metrics): Use unsigned, not EMACS_INT, to avoid
1390 conversion overflow issues.
1391 (Fopen_font): Check for integer out of range.
1392 (Ffont_get_glyphs): Don't assume index can fit in int.
1393 * font.h: Adjust decls to match defn changes elsewhere.
1394 * fontset.c (reorder_font_vector): Redo score calculation to avoid
1395 integer overflow.
1396 (num_auto_fontsets, fontset_from_font): Use ptrdiff_t, not
1397 printmax_t, where ptrdiff_t is wide enough.
1398 (Finternal_char_font):
1399 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1400 * frame.c (Fset_mouse_position, Fset_mouse_pixel_position)
1401 (Fset_frame_height, Fset_frame_width, Fset_frame_size)
1402 (Fset_frame_position, x_set_frame_parameters)
1403 (x_set_line_spacing, x_set_border_width)
1404 (x_set_internal_border_width, x_set_alpha, x_figure_window_size):
1405 Check that fixnums are in proper range for system types.
1406 (frame_name_fnn_p, Fframe_parameter, Fmodify_frame_parameters):
1407 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1408 (Fmodify_frame_parameters): Don't assume fixnum fits in int.
1409 Use SAFE_ALLOCA_LISP, not alloca.
1410 * frame.h (struct frame): Use intptr_t, not EMACS_INT, where
1411 intptr_t is wide enough.
1412 * fringe.c (lookup_fringe_bitmap, get_logical_fringe_bitmap)
1413 (Fdefine_fringe_bitmap): Don't assume fixnum fits in int.
1414 (Ffringe_bitmaps_at_pos): Don't assume index fits in int.
1415 Check for fixnum out of range.
1416 * ftfont.c (ftfont_list): Don't assume index fits in int.
1417 Check that fixnums are in proper range for system types.
1418 (ftfont_shape_by_flt):
1419 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1420 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
1421 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1422 (Fgnutls_error_fatalp, Fgnutls_error_string, Fgnutls_boot):
1423 Check that fixnums are in proper range for system types.
1424 * gnutls.h: Adjust decls to match defn changes elsewhere.
1425 * gtkutil.c (xg_dialog_run):
1426 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1427 (update_frame_tool_bar):
1428 Check that fixnums are in proper range for system types.
1429 * image.c (parse_image_spec): Redo count calculation to avoid overflow.
1430 (lookup_image): Check that fixnums are in range for system types.
1431 * indent.c (last_known_column, last_known_column_point):
1432 (current_column_bol_cache):
1433 (skip_invisible, current_column, check_display_width):
1434 (check_display_width, scan_for_column, current_column_1)
1435 (Findent_to, Fcurrent_indentation, position_indentation)
1436 (indented_beyond_p, Fmove_to_column, compute_motion):
1437 (Fcompute_motion, Fvertical_motion):
1438 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1439 (last_known_column_modified): Use EMACS_INT, not int.
1440 (check_display_width):
1441 (Fcompute_motion):
1442 Check that fixnums and floats are in proper range for system types.
1443 (compute_motion): Don't assume index or fixnum fits in int.
1444 (compute_motion, Fcompute_motion):
1445 Use int, not EMACS_INT, when it is wide enough.
1446 (vmotion): Omit local var start_hpos that is always 0; that way
1447 we don't need to worry about overflow in expressions involving it.
1448 * indent.h: Adjust decls to match defn changes elsewhere.
1449 (struct position):
1450 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1451 Use int, not EMACS_INT, where int is wide enough.
1452 Remove unused members ovstring_chars_done and tab_offset;
1453 all uses removed.
1454 * insdel.c (move_gap, move_gap_both, gap_left, gap_right)
1455 (adjust_markers_for_delete, adjust_markers_for_insert, adjust_point)
1456 (adjust_markers_for_replace, make_gap_larger, make_gap_smaller)
1457 (make_gap, copy_text, insert, insert_and_inherit)
1458 (insert_before_markers, insert_before_markers_and_inherit)
1459 (insert_1, count_combining_before, count_combining_after)
1460 (insert_1_both, insert_from_string)
1461 (insert_from_string_before_markers, insert_from_string_1)
1462 (insert_from_gap, insert_from_buffer, insert_from_buffer_1)
1463 (adjust_after_replace, adjust_after_insert, replace_range)
1464 (replace_range_2, del_range, del_range_1, del_range_byte)
1465 (del_range_both, del_range_2, modify_region)
1466 (prepare_to_modify_buffer, signal_before_change)
1467 (signal_after_change, Fcombine_after_change_execute):
1468 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1469 * intervals.c (traverse_intervals, rotate_right, rotate_left)
1470 (balance_an_interval, split_interval_right, split_interval_left)
1471 (find_interval, next_interval, update_interval)
1472 (adjust_intervals_for_insertion, delete_node, delete_interval)
1473 (interval_deletion_adjustment, adjust_intervals_for_deletion)
1474 (static_offset_intervals, offset_intervals)
1475 (merge_interval_right, merge_interval_left, make_new_interval)
1476 (graft_intervals_into_buffer, temp_set_point_both)
1477 (temp_set_point, set_point, adjust_for_invis_intang)
1478 (set_point_both, move_if_not_intangible, get_property_and_range)
1479 (get_local_map, copy_intervals, copy_intervals_to_string)
1480 (compare_string_intervals, set_intervals_multibyte_1):
1481 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1482 * intervals.h: Adjust decls to match defn changes elsewhere.
1483 (struct interval):
1484 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1485 * keyboard.c (this_command_key_count, this_single_command_key_start)
1486 (before_command_key_count, before_command_echo_length, echo_now)
1487 (echo_length, recursive_edit_1, Frecursive_edit, Ftrack_mouse)
1488 (command_loop_1, safe_run_hooks, read_char, timer_check_2)
1489 (menu_item_eval_property, read_key_sequence, Fread_key_sequence)
1490 (Fread_key_sequence_vector, Fexecute_extended_command, Fsuspend_emacs):
1491 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1492 (last_non_minibuf_size, last_point_position, echo_truncate)
1493 (command_loop_1, adjust_point_for_property, read_char, gen_help_event)
1494 (make_lispy_position, make_lispy_event, parse_modifiers_uncached)
1495 (parse_modifiers, modify_event_symbol, Fexecute_extended_command)
1496 (stuff_buffered_input):
1497 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1498 (last_auto_save, command_loop_1, read_char):
1499 Use EMACS_INT, not int, to avoid integer overflow.
1500 (record_char): Avoid overflow in total_keys computation.
1501 (parse_modifiers_uncached): Redo index calculation to avoid overflow.
1502 * keyboard.h: Adjust decls to match defn changes elsewhere.
1503 * keymap.c (Fdefine_key, Fcurrent_active_maps, accessible_keymaps_1)
1504 (Fkey_description, Fdescribe_vector, Flookup_key):
1505 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1506 (click_position): New function, to check that positions are in range.
1507 (Fcurrent_active_maps):
1508 (describe_command):
1509 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1510 (Faccessible_keymaps, Fkey_description):
1511 (preferred_sequence_p):
1512 Don't assume fixnum can fit into int.
1513 (Fkey_description): Use SAFE_ALLOCA_LISP, not alloca.
1514 Check for integer overflow in size calculations.
1515 (Ftext_char_description): Use CHECK_CHARACTER, not CHECK_NUMBER, to
1516 avoid mishandling large integers.
1517 * lisp.h: Adjust decls to match defn changes elsewhere.
1518 (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, struct Lisp_String)
1519 (struct vectorlike_header, struct Lisp_Subr, struct Lisp_Hash_Table)
1520 (struct Lisp_Marker):
1521 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1522 (clip_to_bounds): Now an inline function, moved here from editfns.c.
1523 (GLYPH_CODE_P): Check for overflow in system types, subsuming the
1524 need for GLYPH_CODE_CHAR_VALID_P and doing proper checking ourselves.
1525 All callers changed.
1526 (GLYPH_CODE_CHAR, GLYPH_CODE_FACE):
1527 Assume the arg has valid form, since it always does.
1528 (TYPE_RANGED_INTEGERP): Avoid bug when checking against a wide
1529 unsigned integer system type.
1530 (CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER): New macros.
1531 (struct catchtag, specpdl_size, SPECPDL_INDEX, USE_SAFE_ALLOCA):
1532 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1533 (struct catchtag): Use EMACS_INT, not int, since it may be a fixnum.
1534 (duration_to_sec_usec): New decl.
1535 * lread.c (read_from_string_index, read_from_string_index_byte)
1536 (read_from_string_limit, readchar, unreadchar, openp)
1537 (read_internal_start, read1, oblookup):
1538 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1539 (Fload, readevalloop, Feval_buffer, Feval_region):
1540 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1541 (openp): Check for out-of-range argument to 'access'.
1542 (read1): Use int, not EMACS_INT, where int is wide enough.
1543 Don't assume fixnum fits into int.
1544 Fix off-by-one error that can read outside a buffer.
1545 (read_filtered_event): Use duration_to_sec_usec
1546 to do proper overflow checking on durations.
1547 * macros.c (Fstart_kbd_macro): Use xpalloc to check for overflow
1548 in size calculation.
1549 (Fexecute_kbd_macro):
1550 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1551 * marker.c (cached_charpos, cached_bytepos, CONSIDER)
1552 (byte_char_debug_check, buf_charpos_to_bytepos, verify_bytepos)
1553 (buf_bytepos_to_charpos, Fset_marker, set_marker_restricted)
1554 (set_marker_both, set_marker_restricted_both, marker_position)
1555 (marker_byte_position, Fbuffer_has_markers_at):
1556 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1557 (Fset_marker, set_marker_restricted): Don't assume fixnum fits in int.
1558 * menu.c (ensure_menu_items): Rename from grow_menu_items.
1559 It now merely ensures that the menu is large enough, without
1560 necessarily growing it, as this avoids some integer overflow issues.
1561 All callers changed.
1562 (keymap_panes, parse_single_submenu, Fx_popup_menu):
1563 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1564 (parse_single_submenu, Fx_popup_menu): Don't assume fixnum fits in int.
1565 Use SAFE_ALLOCA_LISP, not alloca.
1566 (find_and_return_menu_selection): Avoid unnecessary casts of pointers
1567 to EMACS_INT. Check that fixnums are in proper range for system types.
1568 * minibuf.c (minibuf_prompt_width, string_to_object)
1569 (Fminibuffer_contents, Fminibuffer_contents_no_properties)
1570 (Fminibuffer_completion_contents, Ftry_completion, Fall_completions):
1571 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1572 (get_minibuffer, read_minibuf_unwind):
1573 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1574 (read_minibuf): Omit unnecessary arg BACKUP_N, which is always nil;
1575 this simplifies overflow checking. All callers changed.
1576 (read_minibuf, Fread_buffer, Ftry_completion, Fall_completions)
1577 (Ftest_completion):
1578 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1579 * nsfns.m (check_ns_display_info): Don't assume fixnum fits in long.
1580 (x_set_menu_bar_lines, x_set_tool_bar_lines, Fx_create_frame):
1581 Check that fixnums are in proper range for system types.
1582 (Fx_create_frame, Fx_show_tip):
1583 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1584 * nsfont.m (ns_findfonts, nsfont_list_family):
1585 Don't assume fixnum fits in long.
1586 * nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
1587 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1588 (ns_update_menubar): Use intptr_t, not EMACS_INT, when intptr_t is
1589 wide enough.
1590 * nsselect.m (ns_get_local_selection, clean_local_selection_data):
1591 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1592 * print.c (print_buffer_size, print_buffer_pos, print_buffer_pos_byte)
1593 (PRINTDECLARE, PRINTPREPARE):
1594 (strout, print_string):
1595 (print, print_preprocess, print_check_string_charset_prop)
1596 (print_object):
1597 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1598 (PRINTDECLARE):
1599 (temp_output_buffer_setup, Fprin1_to_string, print_object):
1600 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1601 (PRINTPREPARE): Use int, not ptrdiff_t, where int is wide enough.
1602 (printchar, strout): Use xpalloc to catch size calculation overflow.
1603 (Fexternal_debugging_output): Don't overflow EMACS_INT->int conversion.
1604 (print_error_message): Use SAFE_ALLOCA, not alloca.
1605 (print_object): Use int, not EMACS_INT, where int is wide enough.
1606 (print_depth, new_backquote_output, print_number_index):
1607 Use ptrdiff_t, not int, where int might not be wide enough.
1608 * process.c (Fdelete_process): Don't assume pid fits into EMACS_INT.
1609 (Fset_process_window_size, Fformat_network_address)
1610 (get_lisp_to_sockaddr_size, set_socket_option, Fmake_network_process)
1611 (sigchld_handler):
1612 Check that fixnums are in proper range for system types.
1613 (Fsignal_process): Simplify by avoiding a goto.
1614 Check for process-ids out of pid_t range rather than relying on
1615 undefined behavior.
1616 (process_tick, update_tick): Use EMACS_INT, not int.
1617 (Fformat_network_address, read_process_output, send_process)
1618 (Fprocess_send_region, status_notify):
1619 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1620 (Fformat_network_address, Fmake_serial_process, Fmake_network_process)
1621 (wait_reading_process_output, read_process_output, exec_sentinel):
1622 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1623 (conv_lisp_to_sockaddr): Don't assume fixnums fit into int.
1624 (Faccept_process_output): Use duration_to_sec_usec to do proper
1625 overflow checking on durations.
1626 (emacs_get_tty_pgrp, Fprocess_running_child_p, process_send_signal):
1627 Don't assume pid_t fits in int.
1628 * process.h (struct Lisp_Process): Members tick and update_tick
1629 are now of type EMACS_INT, not int.
1630 * puresize.h (PURESIZE_RATIO): Shrink this to 8/6 on 32-bit hosts
1631 configured --with-wide-int.
1632 * scroll.c (calculate_scrolling, calculate_direct_scrolling)
1633 (line_ins_del): Use int, not EMACS_INT, where int is wide enough.
1634 * search.c (looking_at_1, string_match_1):
1635 (fast_string_match, fast_c_string_match_ignore_case)
1636 (fast_string_match_ignore_case, fast_looking_at, scan_buffer)
1637 (scan_newline, find_before_next_newline, search_command)
1638 (trivial_regexp_p, search_buffer, simple_search, boyer_moore)
1639 (set_search_regs, wordify):
1640 (Freplace_match):
1641 (Fmatch_data):
1642 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1643 (string_match_1, search_buffer, set_search_regs):
1644 (Fmatch_data):
1645 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1646 (wordify): Check for overflow in size calculation.
1647 (Freplace_match): Avoid potential buffer overflow in search_regs.start.
1648 (Fset_match_data): Don't assume fixnum fits in ptrdiff_t.
1649 Check that fixnums are in proper range for system types.
1650 * sound.c (struct sound_device)
1651 (wav_play, au_play, vox_write, alsa_period_size, alsa_write):
1652 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1653 (Fplay_sound_internal):
1654 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1655 * syntax.c (struct lisp_parse_state, find_start_modiff)
1656 (Finternal_describe_syntax_value, scan_lists, scan_sexps_forward):
1657 (Fparse_partial_sexp):
1658 Don't assume fixnums can fit in int.
1659 (struct lisp_parse_state, find_start_pos, find_start_value)
1660 (find_start_value_byte, find_start_begv)
1661 (update_syntax_table, char_quoted, dec_bytepos)
1662 (find_defun_start, prev_char_comend_first, back_comment):
1663 (scan_words, skip_chars, skip_syntaxes, forw_comment, Fforward_comment)
1664 (scan_lists, Fbackward_prefix_chars, scan_sexps_forward):
1665 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1666 (Finternal_describe_syntax_value): Check that match_lisp is a
1667 character, not an integer, since the code stuffs it into int.
1668 (scan_words, scan_sexps_forward):
1669 Check that fixnums are in proper range for system types.
1670 (Fforward_word):
1671 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1672 (scan_sexps_forward):
1673 Use CHARACTERP, not INTEGERP, since the value must fit into int.
1674 (Fparse_partial_sexp): Fix doc; element 8 is not ignored.
1675 * syntax.h: Adjust decls to match defn changes elsewhere.
1676 (struct gl_state_s):
1677 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1678 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Use PTRDIFF_MAX, not
1679 MOST_POSITIVE_FIXNUM.
1680 * sysdep.c (wait_for_termination_1, wait_for_termination)
1681 (interruptible_wait_for_termination, mkdir):
1682 Don't assume pid_t fits in int; on 64-bit AIX pid_t is 64-bit.
1683 (emacs_read, emacs_write):
1684 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1685 (system_process_attributes): Don't assume uid_t, gid_t, EMACS_INT,
1686 and double all fit in int.
1687 * term.c (set_tty_color_mode):
1688 Check that fixnums are in proper range for system types.
1689 * termhooks.h (struct input_event):
1690 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1691 * textprop.c (validate_interval_range, interval_of)
1692 (Fadd_text_properties, set_text_properties_1)
1693 (Fremove_text_properties, Fremove_list_of_text_properties)
1694 (Ftext_property_any, Ftext_property_not_all)
1695 (copy_text_properties, text_property_list, extend_property_ranges)
1696 (verify_interval_modification):
1697 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1698 (Fnext_single_char_property_change)
1699 (Fprevious_single_char_property_change):
1700 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1701 (copy_text_properties):
1702 Check for integer overflow in index calculation.
1703 * undo.c (last_boundary_position, record_point, record_insert)
1704 (record_delete, record_marker_adjustment, record_change)
1705 (record_property_change):
1706 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1707 (truncate_undo_list, Fprimitive_undo): Don't assume fixnum fits in int.
1708 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1709 * w32fns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
1710 (Fx_hide_tip, Fx_file_dialog):
1711 * w32menu.c (set_frame_menubar):
1712 Use ptrdiff_t, not int, for consistency with rest of code.
1713 * window.c (window_scroll_preserve_hpos, window_scroll_preserve_vpos)
1714 (select_window, Fdelete_other_windows_internal)
1715 (window_scroll_pixel_based, window_scroll_line_based)
1716 (Frecenter, Fset_window_configuration):
1717 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1718 (Fset_window_hscroll, run_window_configuration_change_hook)
1719 (set_window_buffer, temp_output_buffer_show, scroll_command)
1720 (Fscroll_other_window, Frecenter):
1721 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1722 (Fwindow_line_height, window_scroll, Fscroll_left, Fscroll_right):
1723 Don't assume fixnum fits in int.
1724 (Fset_window_scroll_bars):
1725 Check that fixnums are in proper range for system types.
1726 * xdisp.c (help_echo_pos, pos_visible_p, string_pos_nchars_ahead)
1727 (string_pos, c_string_pos, number_of_chars, init_iterator)
1728 (in_ellipses_for_invisible_text_p, init_from_display_pos)
1729 (compute_stop_pos, next_overlay_change, compute_display_string_pos)
1730 (compute_display_string_end, handle_face_prop)
1731 (face_before_or_after_it_pos, handle_invisible_prop)
1732 (handle_display_prop, handle_display_spec, handle_single_display_spec)
1733 (display_prop_intangible_p, string_buffer_position_lim)
1734 (string_buffer_position, handle_composition_prop, load_overlay_strings)
1735 (get_overlay_strings_1, get_overlay_strings)
1736 (iterate_out_of_display_property, forward_to_next_line_start)
1737 (back_to_previous_visible_line_start, reseat, reseat_to_string)
1738 (get_next_display_element, set_iterator_to_next)
1739 (get_visually_first_element, compute_stop_pos_backwards)
1740 (handle_stop_backwards, next_element_from_buffer)
1741 (move_it_in_display_line_to, move_it_in_display_line)
1742 (move_it_to, move_it_vertically_backward, move_it_by_lines)
1743 (add_to_log, message_dolog, message_log_check_duplicate)
1744 (message2, message2_nolog, message3, message3_nolog
1745 (with_echo_area_buffer, display_echo_area_1, resize_mini_window_1)
1746 (current_message_1, truncate_echo_area, truncate_message_1)
1747 (set_message, set_message_1, store_mode_line_noprop)
1748 (hscroll_window_tree, debug_delta, debug_delta_bytes, debug_end_vpos)
1749 (text_outside_line_unchanged_p, check_point_in_composition)
1750 (reconsider_clip_changes)
1751 (redisplay_internal, set_cursor_from_row, try_scrolling)
1752 (try_cursor_movement, set_vertical_scroll_bar, redisplay_window)
1753 (redisplay_window, find_last_unchanged_at_beg_row)
1754 (find_first_unchanged_at_end_row, row_containing_pos, try_window_id)
1755 (trailing_whitespace_p, find_row_edges, display_line)
1756 (RECORD_MAX_MIN_POS, Fcurrent_bidi_paragraph_direction)
1757 (display_mode_element, store_mode_line_string)
1758 (pint2str, pint2hrstr, decode_mode_spec)
1759 (display_count_lines, display_string, draw_glyphs)
1760 (x_produce_glyphs, x_insert_glyphs)
1761 (rows_from_pos_range, mouse_face_from_buffer_pos)
1762 (fast_find_string_pos, mouse_face_from_string_pos)
1763 (note_mode_line_or_margin_highlight, note_mouse_highlight):
1764 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1765 (safe_call, init_from_display_pos, handle_fontified_prop)
1766 (handle_single_display_spec, load_overlay_strings)
1767 (with_echo_area_buffer, setup_echo_area_for_printing)
1768 (display_echo_area, echo_area_display)
1769 (x_consider_frame_title, prepare_menu_bars, update_menu_bar)
1770 (update_tool_bar, hscroll_window_tree, redisplay_internal)
1771 (redisplay_window, dump_glyph_row, display_mode_line)
1772 (Fformat_mode_line, decode_mode_spec, on_hot_spot_p):
1773 (handle_display_spec, display_prop_string_p):
1774 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1775 (handle_single_display_spec, build_desired_tool_bar_string)
1776 (redisplay_tool_bar, scroll_window_tree, Fdump_glyph_matrix)
1777 (get_specified_cursor_type):
1778 Check that fixnums are in proper range for system types.
1779 (struct overlay_entry, resize_mini_window, Fdump_glyph_row)
1780 (Flookup_image_map):
1781 Don't assume fixnums fit in int.
1782 (compare_overlay_entries):
1783 Avoid mishandling comparisons due to subtraction overflow.
1784 (load_overlay_strings): Use SAFE_NALLOCA, not alloca.
1785 (last_escape_glyph_face_id, last_glyphless_glyph_face_id):
1786 (handle_tool_bar_click):
1787 Use int, not unsigned, since we prefer signed and the signedness
1788 doesn't matter here.
1789 (get_next_display_element, next_element_from_display_vector):
1790 Use int, not EMACS_INT, when int is wide enough.
1791 (start_hourglass): Use duration_to_sec_usec to do proper
1792 overflow checking on durations.
1793 * xfaces.c (Fbitmap_spec_p):
1794 Check that fixnums are in proper range for system types.
1795 (compare_fonts_by_sort_order):
1796 Avoid mishandling comparisons due to subtraction overflow.
1797 (Fx_family_fonts, realize_basic_faces):
1798 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1799 (Fx_family_fonts):
1800 Don't assume fixnum fits in int.
1801 Use SAFE_ALLOCA_LISP, not alloca.
1802 (merge_face_heights): Remove unnecessary cast to EMACS_INT.
1803 (Finternal_make_lisp_face): Don't allocate more than MAX_FACE_ID.
1804 (face_at_buffer_position, face_for_overlay_string)
1805 (face_at_string_position):
1806 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1807 (merge_faces): Use int, not EMACS_INT, where int is wide enough.
1808 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines, x_icon_verify)
1809 (Fx_show_tip):
1810 Check that fixnums are in proper range for system types.
1811 (Fx_create_frame, x_create_tip_frame, Fx_show_tip)
1812 (Fx_hide_tip, Fx_file_dialog, Fx_select_font):
1813 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1814 (Fx_change_window_property): Don't assume fixnums fit in int.
1815 * xfont.c (xfont_chars_supported):
1816 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1817 * xmenu.c (Fx_popup_dialog, set_frame_menubar)
1818 (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
1819 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1820 * xml.c (parse_region):
1821 * xrdb.c (magic_file_p):
1822 Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
1823 * xselect.c (TRACE1): Don't assume pid_t promotes to int.
1824 (x_get_local_selection, x_reply_selection_request)
1825 (x_handle_selection_request, wait_for_property_change):
1826 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1827 (selection_data_to_lisp_data): Use short, not EMACS_INT, where
1828 short is wide enough.
1829 (x_send_client_event): Don't assume fixnum fits in int.
1830 * xterm.c (x_x_to_emacs_modifiers):
1831 Don't assume EMACS_INT overflows nicely into int.
1832 (x_emacs_to_x_modifiers): Use EMACS_INT, not int, because values
1833 may come from Lisp.
1834 (handle_one_xevent): NATNUMP can eval its arg twice.
1835 (x_connection_closed):
1836 Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
1837 * xterm.h: Adjust decls to match defn changes elsewhere.
1838 (struct scroll_bar): Use struct vectorlike_header
1839 rather than rolling our own approximation.
1840 (SCROLL_BAR_VEC_SIZE): Remove; not used.
1841
1842 2012-05-25 Glenn Morris <rgm@gnu.org>
1843
1844 * lisp.mk (lisp): Update for more files being compiled now.
1845
1846 2012-05-25 Stefan Monnier <monnier@iro.umontreal.ca>
1847
1848 * lread.c: Remove `read_pure' which makes no difference.
1849 (read_pure): Remove var.
1850 (unreadpure): Remove function.
1851 (readevalloop): Don't call read_list with -1 flag.
1852 (read1, read_vector): Don't test read_pure any more.
1853 (read_list): Simplify.
1854
1855 * fileio.c, character.h: Minor style tweaks.
1856
1857 2012-05-24 Dmitry Antipov <dmantipov@yandex.ru>
1858
1859 * window.h (clip_changed): Remove useless declaration.
1860
1861 2012-05-22 Juanma Barranquero <lekktu@gmail.com>
1862
1863 * makefile.w32-in: Follow-up to 2012-05-22T16:20:27Z!eggert@cs.ucla.edu.
1864 (TAGS, TAGS-gmake, CONFIG_H): Remove further references to m/intel386.h.
1865
1866 2012-05-22 Paul Eggert <eggert@cs.ucla.edu>
1867
1868 Remove src/m/*.
1869 This directory predates autoconf and is no longer needed nowadays.
1870 Move its few remaining bits of functionality to where they're needed.
1871 * m/README, m/alpha.h, m/amdx86-64.h, m/ia64.h, m/ibmrs6000.h:
1872 * m/ibms390x.h, m/intel386.h, m/m68k.h, m/macppc.h, m/sparc.h:
1873 * m/template.h: Remove.
1874 * Makefile.in (M_FILE): Remove. All uses removed.
1875 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS):
1876 * lisp.h (USE_LSB_TAG):
1877 * mem-limits.h (EXCEEDS_LISP_PTR):
1878 Use VAL_MAX, not VALBITS, in #if.
1879 * lisp.h (EMACS_INT_MAX): New macro, useful in #if.
1880 (EMACS_UINT): Define unconditionally now.
1881 (BITS_PER_CHAR, BITS_PER_SHORT, BITS_PER_INT, BITS_PER_LONG)
1882 (BITS_PER_EMACS_INT): New constants, replacing
1883 what used to be in config.h, but not useful in #if.
1884 (GCTYPEBITS, VALBITS): Define unconditionally, since m/* files don't
1885 define them any more.
1886 (VAL_MAX): New macro.
1887 (VALMASK): Use it.
1888 * puresize.h (PURESIZE_RATIO): Use EMACS_INT_MAX, not
1889 BITS_PER_EMACS_INT, in #if.
1890 * s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
1891 (BROKEN_SIGPOLL): Move here from m/ibmrs6000.h, which was removed.
1892 * s/gnu-linux.h (ULIMIT_BREAK_VALUE) [__i386__]:
1893 * s/ms-w32.h (DATA_START):
1894 Move here from removed file m/intel386.h.
1895 * s/gnu.h (NLIST_STRUCT): Remove undef; 'configure' does this.
1896 * s/irix6-5.h (_LP64): Remove; lisp.h no longer needs this.
1897
1898 2012-05-21 Paul Eggert <eggert@cs.ucla.edu>
1899
1900 Assume C89 or later.
1901 * alloc.c, buffer.c, lisp.h: Replace POINTER_TYPE with void.
1902 * alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
1903 (xrealloc):
1904 * buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
1905 * editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
1906 * textprop.c, tparam.c (NULL): Remove.
1907 * ralloc.c, vm-limit.c (POINTER): Assume void * works.
1908 * regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
1909 * regex.h (_RE_ARGS): Remove. All uses rewritten to use prototypes.
1910 * unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
1911 * xterm.c (input_signal_count): Assume volatile works.
1912
1913 2012-05-21 Ken Brown <kbrown@cornell.edu>
1914
1915 * xgselect.c (xg_select): Fix first argument in call to 'select'
1916 (bug#11508).
1917
1918 2012-05-20 Ken Brown <kbrown@cornell.edu>
1919
1920 * gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
1921 [CYGWIN]: Cast ptr to (char *) before comparing to _heapbase.
1922
1923 2012-05-19 Ken Brown <kbrown@cornell.edu>
1924
1925 * xfns.c (x_in_use): Remove `static' qualifier.
1926 * xterm.h (x_in_use): Declare.
1927 * xgselect.c: Include xterm.h.
1928 (xg_select): Test `x_in_use' instead of `inhibit_window_system'
1929 and `display_arg' (bug#9754).
1930
1931 2012-05-19 Paul Eggert <eggert@cs.ucla.edu>
1932
1933 * s/ms-w32.h (HAVE_GETDOMAINNAME): Remove; not needed.
1934
1935 * m/vax.h: Remove; no longer needed since HAVE_FTIME is being removed.
1936 * s/ms-w32.h (HAVE_FTIME): Remove; not needed.
1937
1938 2012-05-18 Eli Zaretskii <eliz@gnu.org>
1939
1940 Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows.
1941
1942 * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font.
1943 (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c
1944
1945 * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken
1946 reference to image_cache->refcount.
1947 (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE.
1948
1949 2012-05-17 Juri Linkov <juri@jurta.org>
1950
1951 * search.c (Fword_search_regexp, Fword_search_backward)
1952 (Fword_search_forward, Fword_search_backward_lax)
1953 (Fword_search_forward_lax): Move functions to isearch.el
1954 (bug#10145, bug#11381).
1955
1956 2012-05-16 Paul Eggert <eggert@cs.ucla.edu>
1957
1958 * xgselect.c (xg_select): Just invoke 'select' if -nw (Bug#9754).
1959
1960 2012-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
1961
1962 * lread.c (init_obarray): Declare Qt and Qnil as special.
1963
1964 2012-05-14 Glenn Morris <rgm@gnu.org>
1965
1966 * nsterm.m (ns_init_paths): Fix typo ("libexec" not "lib-exec").
1967 Put "libexec" before "bin", for the sake of init_callproc_1.
1968
1969 2012-05-14 Paul Eggert <eggert@cs.ucla.edu>
1970
1971 * keyboard.c (kbd_buffer_get_event) [!HAVE_DBUS]: Omit unused local.
1972
1973 * unexaix.c: Port to more-recent AIX compilers.
1974 (report_error, report_error_1, make_hdr, copy_sym)
1975 (mark_x, adjust_lnnoptrs, unrelocate_symbols):
1976 Make arguments const char *, not char *, to avoid violations of C
1977 standard and to fix some AIX warnings reported by Gilles Pion.
1978
1979 2012-05-14 Eli Zaretskii <eliz@gnu.org>
1980
1981 * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
1982 already have overlays loaded.
1983 (handle_single_display_spec): Before returning without displaying
1984 fringe bitmap, synchronize the bidi iterator with the main display
1985 iterator, by calling iterate_out_of_display_property.
1986 (iterate_out_of_display_property): Detect buffer iteration by
1987 testing that it->string is a Lisp string.
1988 (get_next_display_element): When the current object is exhausted,
1989 and there's something on it->stack, call set_iterator_to_next to
1990 proceed with what's on the stack, instead of returning zero.
1991 (set_iterator_to_next): If called at the end of a Lisp string,
1992 proceed to consider_string_end without incrementing string
1993 position. Don't increment display vector index past the end of
1994 the display vector. (Bug#11417)
1995 (pos_visible_p): Don't report a position visible when move_it_to
1996 stopped at the last line of window, which happens to be scanned
1997 backwards by the bidi iteration. (Bug#11464)
1998
1999 2012-05-14 Eli Zaretskii <eliz@gnu.org>
2000
2001 * xdisp.c (handle_single_display_spec): Return 1 for left-margin
2002 and right-margin display specs even if the spec is invalid or we
2003 are on a TTY, and thus unable to display on the fringes.
2004 That's because the text with the property will not be displayed anyway,
2005 so we need to signal to the caller that this is a "replacing"
2006 display spec. This fixes display when the spec is invalid or we
2007 are on a TTY.
2008
2009 2012-05-14 Paul Eggert <eggert@cs.ucla.edu>
2010
2011 * unexaix.c (make_hdr): Fix typo in prototype.
2012 This bug broke the build on AIX. Problem reported by Gilles Pion.
2013
2014 2012-05-14 Michael Albinus <michael.albinus@gmx.de>
2015
2016 * keyboard.c (kbd_buffer_get_event): Read special events also in
2017 batch mode. (Bug#11415)
2018
2019 2012-05-12 Glenn Morris <rgm@gnu.org>
2020
2021 * ns.mk: Update for ns_appbindir no longer having trailing "/".
2022
2023 2012-05-12 Eli Zaretskii <eliz@gnu.org>
2024
2025 * lisp.mk (lisp): Add newcomment.elc.
2026
2027 2012-05-12 Glenn Morris <rgm@gnu.org>
2028
2029 * Makefile.in (MKDIR_P): New, set by configure.
2030 * ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
2031
2032 2012-05-11 Paul Eggert <eggert@cs.ucla.edu>
2033
2034 Remove unused function hourglass_started.
2035 * dispextern.h (hourglass_started):
2036 * w32fns.c (hourglass_started):
2037 * xdisp.c (hourglass_started): Remove.
2038
2039 2012-05-10 Juanma Barranquero <lekktu@gmail.com>
2040
2041 * makefile.w32-in ($(BLD)/gmalloc.$(O), $(BLD)/w32menu.$(O)):
2042 Update dependencies.
2043
2044 2012-05-10 Paul Eggert <eggert@cs.ucla.edu>
2045
2046 * xgselect.c (xg_select): Put maxfds+1 into a var.
2047 This is slightly clearer, and pacifies Ubuntu 12.04 gcc.
2048
2049 * sound.c (DEFAULT_ALSA_SOUND_DEVICE): Define only if HAVE_ALSA.
2050
2051 2012-05-10 Dave Abrahams <dave@boostpro.com>
2052
2053 * filelock.c (syms_of_filelock): New boolean create-lockfiles.
2054 (lock_file): If create_lockfiles is 0, do nothing. (Bug#11227)
2055
2056 2012-05-09 Michael Albinus <michael.albinus@gmx.de>
2057
2058 * dbusbind.c (xd_registered_buses): New internal Lisp object.
2059 Rename all occurences of Vdbus_registered_buses to xd_registered_buses.
2060 (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
2061 Initialize xd_registered_buses.
2062
2063 2012-05-09 Paul Eggert <eggert@cs.ucla.edu>
2064
2065 Untag more efficiently if USE_LSB_TAG.
2066 This is based on a proposal by YAMAMOTO Mitsuharu in
2067 <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
2068 For an admittedly artificial (nth 8000 longlist) benchmark on
2069 Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
2070 Emacs's overall text size by 1%.
2071 * lisp.h (XUNTAG): New macro.
2072 (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
2073 (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
2074 (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
2075 * eval.c (Fautoload):
2076 * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
2077 * frame.h (XFRAME): Use XUNTAG.
2078
2079 Port recent dbusbind.c changes to 32-bit --with-wide-int.
2080 * dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
2081 Remove unportable assumptions about print widths of types like
2082 dbus_uint32_t.
2083 (xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
2084 intptr_t when converting between pointer and integer, to avoid GCC
2085 warnings about wrong width.
2086
2087 2012-05-09 Eli Zaretskii <eliz@gnu.org>
2088
2089 * w32proc.c (new_child): Force Windows to reserve only 64KB of
2090 stack for each reader_thread, instead of defaulting to 8MB
2091 determined by the linker. This avoids failures in creating
2092 subprocesses on Windows 7, see the discussion in this thread:
2093 http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
2094
2095 2012-05-07 Jérémy Compostella <jeremy.compostella@gmail.com>
2096
2097 Fix up display of the *Minibuf-0* buffer in the mini window.
2098 * keyboard.c (read_char): Don't clear the echo area if there's no
2099 message to clear.
2100 * xdisp.c (redisplay_internal): Redisplay the mini window (with the
2101 contents of *Minibuf-0*) if there's no message displayed in its stead.
2102
2103 2012-05-07 Michael Albinus <michael.albinus@gmx.de>
2104
2105 * dbusbind.c (XD_DEBUG_MESSAGE): Don't print message twice in
2106 batch mode.
2107
2108 2012-05-06 Chong Yidong <cyd@gnu.org>
2109
2110 * lisp.mk (lisp): Update.
2111
2112 2012-05-05 Jim Meyering <meyering@redhat.com>
2113
2114 * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
2115
2116 2012-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
2117
2118 * data.c (PUT_ERROR): New macro.
2119 (syms_of_data): Use it. Add new error type `user-error'.
2120 * undo.c (user_error): New function.
2121 (Fprimitive_undo): Use it.
2122 * print.c (print_error_message): Adjust print style for `user-error'.
2123 * keyboard.c (user_error): New function.
2124 (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
2125
2126 2012-05-03 Paul Eggert <eggert@cs.ucla.edu>
2127
2128 Do not limit current-time-string to years 1000..9999.
2129 * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
2130 (Fcurrent_time_string): Support any year that is supported by the
2131 underlying localtime representation. Don't use asctime, as it
2132 has undefined behavior for years outside the range -999..9999.
2133
2134 2012-05-02 Paul Eggert <eggert@cs.ucla.edu>
2135
2136 Fix race conditions involving setenv, gmtime, localtime, asctime.
2137 Without this fix, interrupts could mess up code that uses these
2138 nonreentrant functions, since setting TZ invalidates existing
2139 tm_zone or tzname values, and since most of these functions return
2140 pointers to static storage.
2141 * editfns.c (format_time_string, Fdecode_time, Fencode_time)
2142 (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
2143 Grow the critical sections to include not just invoking
2144 localtime/gmtime, but also accessing these functions' results
2145 including their tm_zone values if any, and any related TZ setting.
2146 (format_time_string): Last arg is now struct tm *, not struct tm **,
2147 so that the struct tm is saved in the critical section.
2148 All callers changed. Simplify allocation of initial buffer, partly
2149 motivated by the fact that memory allocation needs to be outside
2150 the critical section.
2151
2152 2012-05-02 Dmitry Antipov <dmantipov@yandex.ru>
2153
2154 * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
2155 with RESET_INTERVAL.
2156
2157 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
2158 Remove duplicated buffer name initialization.
2159
2160 2012-05-02 Jim Meyering <jim@meyering.net>
2161
2162 * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
2163
2164 * xfns.c (x_window): Use xstrdup (Bug#11375).
2165
2166 2012-05-02 Eli Zaretskii <eliz@gnu.org>
2167
2168 * xdisp.c (pos_visible_p): If already at a newline from the
2169 display string before the 'while' loop, don't walk back the glyphs
2170 from it3.glyph_row. Solves assertion violation when the display
2171 string begins with a newline (egg.el). (Bug#11367)
2172
2173 2012-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
2174
2175 * keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
2176 Move to simple.el.
2177
2178 2012-05-01 Glenn Morris <rgm@gnu.org>
2179
2180 * syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
2181 s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
2182 and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
2183 All were removed before 23.1.
2184
2185 * dispnew.c: Remove HAVE_LIBNCURSES test;
2186 it is always true on relevant platforms.
2187
2188 * Makefile.in (LD_SWITCH_X_SITE_RPATH):
2189 Rename from LD_SWITCH_X_SITE_AUX_RPATH.
2190
2191 * Makefile.in (LD_SWITCH_X_SITE_AUX): Remove; no longer used.
2192
2193 2012-04-30 Andreas Schwab <schwab@linux-m68k.org>
2194
2195 * .gdbinit (xpr): Remove checks for no longer existing misc types.
2196 (xintfwd, xboolfwd, xobjfwd, xbufobjfwd, xkbobjfwd, xbuflocal):
2197 Remove.
2198
2199 2012-04-28 Paul Eggert <eggert@cs.ucla.edu>
2200
2201 Do not avoid creating empty evaporating overlays (Bug#9642).
2202 * buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
2203 That is, do not delete an evaporating overlay if it becomes
2204 empty after its bounds are adjusted to fit within its buffer.
2205 This fix caused other problems, and I'm reverting it until we get
2206 to the bottom of them.
2207
2208 2012-04-27 Chong Yidong <cyd@gnu.org>
2209
2210 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
2211
2212 2012-04-27 Eli Zaretskii <eliz@gnu.org>
2213
2214 * xdisp.c (pos_visible_p): If the window start position is beyond
2215 ZV, start the display from buffer beginning. Prevents assertion
2216 violation in init_iterator when the minibuffer window is scrolled
2217 via the scroll bar.
2218
2219 * window.c (window_scroll_pixel_based): Likewise.
2220
2221 2012-04-27 Chong Yidong <cyd@gnu.org>
2222
2223 * keymap.c (where_is_internal): Doc fix (Bug#10872).
2224
2225 2012-04-27 Glenn Morris <rgm@gnu.org>
2226
2227 * fileio.c (Fcopy_file, Fset_file_selinux_context):
2228 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
2229
2230 2012-04-27 Eli Zaretskii <eliz@gnu.org>
2231
2232 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers):
2233 Don't overrun array limits of glyph row's used[] array. (Bug#11288)
2234
2235 2012-04-26 Eli Zaretskii <eliz@gnu.org>
2236
2237 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
2238 display element, check also the underlying string or buffer
2239 character. (Bug#11341)
2240
2241 * w32menu.c: Include w32heap.h.
2242 (add_menu_item): If the call to AppendMenuW (via
2243 unicode_append_menu) fails, disable Unicode menus only if we are
2244 running on Windows 9X/Me.
2245
2246 2012-04-24 Andreas Schwab <schwab@linux-m68k.org>
2247
2248 * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS.
2249 (xgetint): Add missing shift for LSB tags.
2250
2251 2012-04-24 Martin Rudalics <rudalics@gmx.at>
2252
2253 * keyboard.c (read_char): Don't wipe echo area for select window
2254 events: These might get delayed via `mouse-autoselect-window'
2255 (Bug#11304).
2256
2257 2012-04-24 Juanma Barranquero <lekktu@gmail.com>
2258
2259 * gnutls.c (init_gnutls_functions): Protect against (unlikely)
2260 manipulation of :loaded-from data.
2261
2262 2012-04-23 Juanma Barranquero <lekktu@gmail.com>
2263
2264 * gnutls.c (init_gnutls_functions): The value of :loaded-from is
2265 now a cons (bug#11311).
2266
2267 2012-04-23 Paul Eggert <eggert@cs.ucla.edu>
2268
2269 Do not create empty overlays with the evaporate property (Bug#9642).
2270 * buffer.c (Fmove_overlay): Delete an evaporating overlay
2271 if it becomes empty after its bounds are adjusted to fit within
2272 its buffer. Without this fix, in a nonempty buffer (let ((o
2273 (make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
2274 yields an empty overlay that has the evaporate property, which is
2275 not supposed to happen.
2276
2277 Fix minor GTK3 problems found by static checking.
2278 * emacsgtkfixed.c (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
2279 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
2280 (struct _EmacsFixedClass, emacs_fixed_get_type):
2281 Move decls here from emacsgtkfixed.h, since they needn't be public.
2282 (emacs_fixed_get_type): Now static.
2283 (emacs_fixed_class_init): Omit unused local.
2284 (emacs_fixed_child_type): Remove; unused.
2285 * emacsgtkfixed.h (EMACS_TYPE_FIXED, EMACS_FIXED, EmacsFixed)
2286 (EmacsFixedPrivate, EmacsFixedClass, struct _EmacsFixed)
2287 (struct _EmacsFixedClass): Move to emacsgtkfixed.c.
2288 (EMACS_FIXED_CLASS, EMACS_IS_FIXED, EMACS_IS_FIXED_CLASS)
2289 (EMACS_FIXED_GET_CLASS): Remove; unused.
2290 * gtkutil.c (xg_create_frame_widgets) [!HAVE_GTK3]: Omit unused local.
2291
2292 * keyboard.c (handle_async_input): Define only if SYNC_INPUT || SIGIO.
2293 Problem reported by Juanma Barranquero for Windows -Wunused-function.
2294
2295 2012-04-22 Paul Eggert <eggert@cs.ucla.edu>
2296
2297 Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
2298 * gmalloc.c (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
2299 (__malloc_size_t, __malloc_ptrdiff_t):
2300 Remove. All uses removed, replaced by the definiens if needed,
2301 since we can assume C89 or better now.
2302 Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
2303 (protect_malloc_state, align, get_contiguous_space)
2304 (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
2305 (malloc_atfork_handler_child, malloc_enable_thread)
2306 (malloc_initialize_1, __malloc_initialize, morecore_nolock)
2307 (_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
2308 (_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
2309 (special_realloc, _realloc_internal_nolock, _realloc_internal)
2310 (realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
2311 (freehook, mallochook, reallochook, mabort, mcheck, mprobe):
2312 Define using prototypes, not old style.
2313 (align, _malloc_internal_nolock, _free_internal_nolock, memalign):
2314 Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
2315 (align): Don't assume that signed integer overflow wraps around.
2316 Omit unused local var.
2317 (malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
2318 (_free_internal_nolock, memalign, mallochook, reallochook):
2319 Omit no-longer-needed casts.
2320 (valloc): Use getpagesize, not __getpagesize.
2321 (MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
2322 (struct hdr): The 'magic' member is now size_t, not unsigned long.
2323
2324 * dbusbind.c (XD_DBUS_VALIDATE_OBJECT): Define only if needed.
2325
2326 2012-04-22 Michael Albinus <michael.albinus@gmx.de>
2327
2328 Move functions from C to Lisp. Make non-blocking method calls
2329 the default. Implement further D-Bus standard interfaces.
2330
2331 * dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
2332 (QCdbus_request_name_allow_replacement)
2333 (QCdbus_request_name_replace_existing)
2334 (QCdbus_request_name_do_not_queue)
2335 (QCdbus_request_name_reply_primary_owner)
2336 (QCdbus_request_name_reply_in_queue)
2337 (QCdbus_request_name_reply_exists)
2338 (QCdbus_request_name_reply_already_owner): Move to dbus.el.
2339 (QCdbus_registered_serial, QCdbus_registered_method)
2340 (QCdbus_registered_signal): New Lisp objects.
2341 (XD_DEBUG_MESSAGE): Use sizeof.
2342 (XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
2343 (XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
2344 (XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
2345 (XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
2346 (XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
2347 (xd_signature, xd_append_arg): Allow float for integer types.
2348 (xd_get_connection_references): New function.
2349 (xd_get_connection_address): Rename from xd_initialize.
2350 Return cached address.
2351 (xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
2352 (xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
2353 level.
2354 (Fdbus_init_bus): New optional arg PRIVATE. Cache address.
2355 Return number of refcounts.
2356 (Fdbus_get_unique_name): Make stronger parameter check.
2357 (Fdbus_message_internal): New defun.
2358 (Fdbus_call_method, Fdbus_call_method_asynchronously)
2359 (Fdbus_method_return_internal, Fdbus_method_error_internal)
2360 (Fdbus_send_signal, Fdbus_register_service)
2361 (Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
2362 (xd_read_message_1): Obey new structure of Vdbus_registered_objects.
2363 (xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
2364 (Vdbus_compiled_version, Vdbus_runtime_version)
2365 (Vdbus_message_type_invalid, Vdbus_message_type_method_call)
2366 (Vdbus_message_type_method_return, Vdbus_message_type_error)
2367 (Vdbus_message_type_signal): New defvars.
2368 (Vdbus_registered_buses, Vdbus_registered_objects_table):
2369 Adapt docstring.
2370
2371 2012-04-22 Paul Eggert <eggert@cs.ucla.edu>
2372
2373 Fix GC_MALLOC_CHECK debugging output on 64-bit hosts.
2374 * alloc.c (emacs_blocked_malloc) [GC_MALLOC_CHECK]:
2375 Do not assume ptrdiff_t is the same width as 'int'.
2376
2377 * alloc.c: Handle unusual debugging option combinations.
2378 (GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
2379 since the two debugging options are incompatible.
2380 (GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
2381 is defined.
2382 (mem_init, mem_insert, mem_insert_fixup):
2383 Define if GC_MARK_STACK || GC_MALLOC_CHECK.
2384 (NEED_MEM_INSERT): Remove; no longer needed.
2385
2386 2012-04-22 Leo Liu <sdl.web@gmail.com>
2387
2388 * sysdep.c (list_system_processes): Support Darwin (Bug#5725).
2389
2390 2012-04-22 Paul Eggert <eggert@cs.ucla.edu>
2391
2392 * sysdep.c [__FreeBSD__]: Minor cleanups.
2393 (list_system_processes, system_process_attributes) [__FreeBSD__]:
2394 Use Emacs indenting style more consistently. Avoid some casts.
2395 Use 'double' consistently rather than mixing 'float' and 'double'.
2396
2397 2012-04-21 Eduard Wiebe <usenet@pusto.de>
2398
2399 * sysdep.c (list_system_processes, system_process_attributes):
2400 Add implementation for FreeBSD (Bug#5243).
2401
2402 2012-04-21 Andreas Schwab <schwab@linux-m68k.org>
2403
2404 * lisp.mk (lisp): Update.
2405
2406 2012-04-20 Paul Eggert <eggert@cs.ucla.edu>
2407
2408 * keyboard.c (process_pending_signals): Define only if SYNC_INPUT.
2409 It is never used otherwise.
2410
2411 2012-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
2412
2413 * print.c (print_preprocess): Only check print_depth if print-circle
2414 is nil.
2415 (print_object): Check for cycles even when print-circle is nil and
2416 print-gensym is t, but only check print_depth if print-circle is nil.
2417
2418 2012-04-20 Chong Yidong <cyd@gnu.org>
2419
2420 * process.c (wait_reading_process_output): If EIO occurs on a pty,
2421 set the status to "failed" and ensure that sentinel is run.
2422
2423 2012-04-20 Glenn Morris <rgm@gnu.org>
2424
2425 * process.c (Fset_process_inherit_coding_system_flag)
2426 (Fset_process_query_on_exit_flag): Doc fix (mention return value).
2427 (Fmake_network_process, Fmake_serial_process): Doc fix.
2428
2429 2012-04-20 Eli Zaretskii <eliz@gnu.org>
2430
2431 * xdisp.c (string_buffer_position_lim): Limit starting position to
2432 BEGV.
2433 (set_cursor_from_row): If called for a mode-line or header-line
2434 row, return zero immediately.
2435 (try_cursor_movement): If inside continuation line, don't back up
2436 farther than the first row after the header line, if any.
2437 Don't consider the header-line row as "partially visible", even if
2438 MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero. (Bug#11261)
2439
2440 2012-04-20 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
2441
2442 * lread.c (lisp_file_lexically_bound_p): Fix hang at ";-*-\n"
2443 (bug#11238).
2444
2445 2012-04-20 Teodor Zlatanov <tzz@lifelogs.com>
2446 2012-04-18 Paul Eggert <eggert@cs.ucla.edu>
2447
2448 configure: new option --enable-gcc-warnings (Bug#11207)
2449 * Makefile.in (C_WARNINGS_SWITCH): Remove.
2450 (WARN_CFLAGS, WERROR_CFLAGS): New macros.
2451 (ALL_CFLAGS): Use new macros rather than old.
2452 * process.c: Ignore -Wstrict-overflow to work around GCC bug 52904.
2453 * regex.c: Ignore -Wstrict-overflow. If !emacs, also ignore
2454 -Wunused-but-set-variable, -Wunused-function, -Wunused-macros,
2455 -Wunused-result, -Wunused-variable. This should go away once
2456 the Emacs and Gnulib regex code is merged.
2457 (xmalloc, xrealloc): Now static.
2458
2459 2012-04-17 Paul Eggert <eggert@cs.ucla.edu>
2460
2461 * dired.c (Fsystem_groups): Remove unused local.
2462
2463 2012-04-17 Glenn Morris <rgm@gnu.org>
2464
2465 * dired.c (Fsystem_users): Doc fix.
2466
2467 2012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
2468
2469 * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
2470 (syms_of_dired): Add them.
2471
2472 2012-04-16 Paul Eggert <eggert@cs.ucla.edu>
2473
2474 Fix minor alloc.c problems found by static checking.
2475 * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
2476 New extern decls, to avoid calling undeclared functions.
2477 (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
2478 && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
2479 GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
2480 (NEED_MEM_INSERT): New macro.
2481 (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
2482 Remove one incorrect comment and fix another.
2483
2484 Fix minor ralloc.c problems found by static checking.
2485 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
2486 * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
2487 (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
2488 (r_alloc_sbrk): Now static.
2489
2490 Improve ralloc.c interface checking.
2491 See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
2492 * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
2493 (r_alloc_free) [REL_ALLOC]: Move decls from here ...
2494 * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
2495 [REL_ALLOC]: ... to here, to check interface.
2496 * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
2497 Remove decls. This fixes an "It stinks!".
2498
2499 * alloc.c (which_symbols): Fix alignment issue / type clash.
2500
2501 2012-04-15 Andreas Schwab <schwab@linux-m68k.org>
2502
2503 * lisp.h (struct Lisp_Symbol): Remove explicit padding.
2504 (struct Lisp_Misc_Any): Likewise.
2505 (struct Lisp_Free): Likewise.
2506 * alloc.c (union aligned_Lisp_Symbol): Define.
2507 (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
2508 aligned_Lisp_Symbol instead of struct Lisp_Symbol.
2509 (union aligned_Lisp_Misc): Define.
2510 (MARKER_BLOCK_SIZE, struct marker_block): Use union
2511 aligned_Lisp_Misc instead of union Lisp_Misc.
2512 (Fmake_symbol, allocate_misc, gc_sweep): Adjust.
2513
2514 2012-04-14 Paul Eggert <eggert@cs.ucla.edu>
2515
2516 Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
2517 * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
2518 * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
2519 * s/netbsd.h, s/sol2-6.h:
2520 Remove definition of GC_MARK_STACK, since the default now works.
2521 * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
2522 Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
2523 no longer the default.
2524 * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
2525
2526 2012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
2527
2528 * lread.c (lisp_file_lexically_bound_p):
2529 Fix hang at ";-*-\n" (bug#11238).
2530
2531 2012-04-14 Eli Zaretskii <eliz@gnu.org>
2532
2533 * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
2534 "unchanged" if its end.pos is beyond ZV. (Bug#11199)
2535
2536 2012-04-14 Jan Djärv <jan.h.d@swipnet.se>
2537
2538 * nsterm.m (constrainFrameRect): Always constrain when there is only
2539 one screen (Bug#10962).
2540
2541 2012-04-13 Ken Brown <kbrown@cornell.edu>
2542
2543 * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
2544
2545 2012-04-13 Reuben Thomas <rrt@sc3d.org>
2546
2547 * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
2548
2549 2012-04-11 Daniel Colascione <dancol@dancol.org>
2550
2551 * s/cygwin.h: The vfork the #define in cygwin.h was protecting
2552 against is gone. It's better to use vfork now so that when Cygwin
2553 gains a new, working vfork, we use it automatically (bug#10398).
2554
2555 2012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
2556
2557 * window.c (save_window_save): Obey window-point-insertion-type.
2558
2559 2012-04-11 Glenn Morris <rgm@gnu.org>
2560
2561 * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
2562
2563 2012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
2564
2565 * alloc.c (lisp_align_malloc): Remove unneeded prototype.
2566
2567 2012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
2568
2569 * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
2570 (force_quit_count): New var.
2571 (handle_interrupt): Use it.
2572
2573 2012-04-10 Juanma Barranquero <lekktu@gmail.com>
2574
2575 * w32.c (w32_delayed_load): Record the full path of the library
2576 being loaded (bug#10424).
2577
2578 2012-04-09 Glenn Morris <rgm@gnu.org>
2579
2580 * doc.c (Fsnarf_documentation): Check variables, functions are bound,
2581 not just in the obarray, before snarfing them. (Bug#11036)
2582
2583 * Makefile.in ($(leimdir)/leim-list.el):
2584 Pass EMACS rather than BUILT_EMACS.
2585
2586 2012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
2587
2588 * process.c (make_process):
2589 * process.h: Add integer `gnutls_handshakes_tried' member to
2590 process struct.
2591
2592 * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
2593 Add convenience `GNUTLS_LOG2i' macro.
2594
2595 * gnutls.c (gnutls_log_function2i): Convenience log function.
2596 (emacs_gnutls_read): Use new log functions,
2597 `gnutls_handshakes_tried' process member, and
2598 `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
2599 attempts per process (connection).
2600
2601 2012-04-09 Chong Yidong <cyd@gnu.org>
2602
2603 * eval.c (Fuser_variable_p, user_variable_p_eh)
2604 (lisp_indirect_variable): Functions deleted.
2605 (Fdefvar): Caller changed.
2606
2607 * callint.c (Finteractive, Fcall_interactively):
2608 * minibuf.c (Fread_variable): Callers changed.
2609
2610 2012-04-09 Eli Zaretskii <eliz@gnu.org>
2611
2612 * xdisp.c (set_cursor_from_row): If the display string appears in
2613 the buffer at position that is closer to point than the position
2614 after the display string, display the cursor on the first glyph of
2615 the display string. Fixes cursor display when a 'display' text
2616 property immediately follows invisible text. (Bug#11094)
2617
2618 2012-04-09 Paul Eggert <eggert@cs.ucla.edu>
2619
2620 composite.c: use 'double' consistently
2621 * composite.c (get_composition_id): Use 'double' consistently
2622 instead of converting 'float' to 'double' and vice versa; this is
2623 easier to understand and avoids a GCC warning.
2624
2625 2012-04-09 Glenn Morris <rgm@gnu.org>
2626
2627 * Makefile.in: Generate leim-list with bootstrap-emacs, in
2628 preparation for dumping it with emacs. (Bug#4789)
2629 (leimdir): New variable.
2630 ($(leimdir)/leim-list.el): New rule.
2631 (emacs$(EXEEXT)): Depend on leim-list.el.
2632
2633 * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
2634 (Fget_buffer_create): Don't call Qucs_set_table_for_input.
2635 (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
2636
2637 2012-04-08 Andreas Schwab <schwab@linux-m68k.org>
2638
2639 * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
2640 proper alignment.
2641
2642 2012-04-07 Juanma Barranquero <lekktu@gmail.com>
2643
2644 * xml.c (init_libxml2_functions) [WINDOWSNT]:
2645 Remove unused local variable.
2646
2647 2012-04-07 Paul Eggert <eggert@cs.ucla.edu>
2648
2649 Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
2650 * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
2651 (mark_memory): Mark Lisp_Objects only if pointers might hide in
2652 objects, as mark_maybe_pointer will catch them otherwise.
2653 (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
2654 * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
2655
2656 2012-04-07 Paul Eggert <eggert@cs.ucla.edu>
2657
2658 Fix typo that broke non-Windows builds.
2659 * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
2660
2661 2012-04-07 Eli Zaretskii <eliz@gnu.org>
2662
2663 Support building on MS-Windows with libxml2.
2664
2665 * makefile.w32-in (OBJ2): Add xml.$(O).
2666 (GLOBAL_SOURCES): Add xml.c.
2667 ($(BLD)/xml.$(O)): New dependency list.
2668
2669 * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
2670 (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
2671 (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
2672 [!WINDOWSNT]: New macros.
2673 (init_libxml2_functions, libxml2_loaded_p): New functions.
2674 (parse_region): Call fn_xmlCheckVersion instead of using the macro
2675 LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
2676 (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
2677 Calls xmlCleanupParser only if libxml2 was loaded (or statically
2678 linked in).
2679 (Flibxml_parse_html_region, Flibxml_parse_xml_region):
2680 Call init_libxml2_functions before calling libxml2 functions.
2681 (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
2682
2683 * emacs.c: Don't include libxml/parser.h.
2684 (shut_down_emacs): Call xml_cleanup_parser, instead of calling
2685 xmlCleanupParser directly.
2686
2687 * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
2688
2689 2012-04-07 Eli Zaretskii <eliz@gnu.org>
2690
2691 * indent.c (Fvertical_motion): If there is a display string at
2692 point, use it.vpos to compute how many lines to backtrack after
2693 move_it_to point. (Bug#11133)
2694
2695 2012-04-06 Eli Zaretskii <eliz@gnu.org>
2696
2697 * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
2698 * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
2699 about subtle differences between FETCH_CHAR* and STRING_CHAR*
2700 macros related to unification of CJK characters. For the details,
2701 see the discussion following the message here:
2702 http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
2703
2704 2012-04-04 Chong Yidong <cyd@gnu.org>
2705
2706 * keyboard.c (Vdelayed_warnings_list): Doc fix.
2707
2708 2012-04-01 Eli Zaretskii <eliz@gnu.org>
2709
2710 * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
2711 instead of alloca. (Bug#11138)
2712
2713 2012-04-01 Andreas Schwab <schwab@linux-m68k.org>
2714
2715 * w32menu.c (is_simple_dialog): Properly check lisp types.
2716 (Bug#11141)
2717
2718 2012-03-31 Eli Zaretskii <eliz@gnu.org>
2719
2720 * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
2721 position we get to after a call to move_it_to fails the
2722 IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
2723 only if we wind up in a string from display property. (Bug#11063)
2724
2725 * window.c (Fdelete_other_windows_internal): Invalidate the row
2726 and column information about mouse highlight, so that redisplay
2727 restores it after reallocating the glyph matrices. (Bug#7464)
2728
2729 * xdisp.c (set_cursor_from_row): If `cursor' property on a display
2730 string comes from a `display' text property, use the buffer
2731 position of that property as if we actually saw that position in
2732 the row's glyphs.
2733 (move_it_by_lines): Remove the assertion that
2734 "it->current_x == 0 && it->hpos == 0" which can be legitimately
2735 violated when there's a before-string at the beginning of a line.
2736 (Bug#11063)
2737
2738 2012-03-30 Eli Zaretskii <eliz@gnu.org>
2739
2740 * xdisp.c (append_space_for_newline): If the default face was
2741 remapped, use the remapped face for the appended newline.
2742 (extend_face_to_end_of_line): Use the remapped default face for
2743 extending the face to the end of the line.
2744 (display_line): Call extend_face_to_end_of_line when the default
2745 face was remapped. (Bug#11068)
2746
2747 2012-03-29 Eli Zaretskii <eliz@gnu.org>
2748
2749 * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
2750
2751 2012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
2752
2753 * keyboard.c (safe_run_hooks_error): Don't unquote strings.
2754
2755 2012-03-27 Glenn Morris <rgm@gnu.org>
2756
2757 * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
2758 Doc fixes.
2759
2760 2012-03-26 Kenichi Handa <handa@m17n.org>
2761
2762 * dispextern.h (struct glyph): Fix previous change. Change the
2763 bit length of glyphless.ch to 25 (Bug#11082).
2764
2765 2012-03-26 Chong Yidong <cyd@gnu.org>
2766
2767 * keyboard.c (Vselection_inhibit_update_commands): New variable.
2768 (command_loop_1): Use it; inhibit selection update for
2769 handle-select-window too (Bug#8996).
2770
2771 2012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
2772
2773 * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
2774
2775 2012-03-25 Kenichi Handa <handa@m17n.org>
2776
2777 * dispextern.h (struct glyph): Change the bit length of
2778 glyphless.ch to 22 to make the member glyphless fit in 32 bits.
2779
2780 2012-03-24 Eli Zaretskii <eliz@gnu.org>
2781
2782 * s/ms-w32.h (tzname): Include time.h before redirecting to
2783 _tzname. Fixes the MSVC build. (Bug#9960)
2784
2785 2012-03-24 Andreas Schwab <schwab@linux-m68k.org>
2786
2787 * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
2788 characters.
2789
2790 * xterm.c (XTread_socket): Only modify handling_signal if
2791 !SYNC_INPUT. (Bug#11080)
2792
2793 2012-03-23 Eli Zaretskii <eliz@gnu.org>
2794
2795 * bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
2796 FETCH_MULTIBYTE_CHAR followed by CHAR_BYTES. Prevents crashes
2797 when fetching a multibyte character consumes more bytes than
2798 CHAR_BYTES returns, due to unification of CJK characters in
2799 string_char. (Bug#11073)
2800
2801 2012-03-23 Troels Nielsen <bn.troels@gmail.com> (tiny change)
2802
2803 * process.c (wait_reading_process_output): Handle pty disconnect
2804 by refraining from sending oneself a SIGCHLD (bug#10933).
2805
2806 2012-03-22 Chong Yidong <cyd@gnu.org>
2807
2808 * dispextern.h (struct it): New member string_from_prefix_prop_p.
2809
2810 * xdisp.c (push_prefix_prop): Rename from push_display_prop.
2811 Mark string as coming from a prefix property.
2812 (handle_face_prop): Use default face for prefix strings (Bug#4281).
2813 (pop_it, reseat_1): Save and restore string_from_prefix_prop_p.
2814
2815 2012-03-21 Chong Yidong <cyd@gnu.org>
2816
2817 * xfaces.c (Vface_remapping_alist): Doc fix.
2818
2819 2012-03-20 Eli Zaretskii <eliz@gnu.org>
2820
2821 * w32proc.c (Fw32_set_console_codepage)
2822 (Fw32_set_console_output_codepage, Fw32_get_codepage_charset):
2823 Doc fixes.
2824
2825 2012-03-20 Chong Yidong <cyd@gnu.org>
2826
2827 * dispnew.c (Fredisplay, Vredisplay_preemption_period): Update doc
2828 to reflect default non-nil value of redisplay-dont-pause.
2829
2830 2012-03-19 Kenichi Handa <handa@m17n.org>
2831
2832 * ftfont.c (ftfont_drive_otf): Mask bits of character code to make
2833 it fit in a valid range (Bug#11003).
2834
2835 2012-03-18 Eli Zaretskii <eliz@gnu.org>
2836
2837 * xdisp.c (cursor_row_p): Even if the glyph row ends in a string
2838 that is not from display property, accept the row as a "cursor
2839 row" if one of the string's character has a non-nil `cursor'
2840 property. Fixes cursor positioning when there are newlines in
2841 overlay strings, e.g. in icomplete.el. (Bug#11035)
2842
2843 2012-03-12 Paul Eggert <eggert@cs.ucla.edu>
2844
2845 * buffer.c (compare_overlays): Don't assume args differ (Bug#6830).
2846
2847 2012-03-12 Chong Yidong <cyd@gnu.org>
2848
2849 * eval.c (inhibit_lisp_code): Rename from
2850 inhibit_window_configuration_change_hook; move from window.c.
2851
2852 * xfns.c (unwind_create_frame_1, Fx_create_frame):
2853 * window.c (run_window_configuration_change_hook)
2854 (syms_of_window): Callers changed.
2855
2856 2012-03-11 Chong Yidong <cyd@gnu.org>
2857
2858 * keymap.c (Fkey_description): Doc fix (Bug#9700).
2859
2860 * editfns.c (Fconstrain_to_field): Doc fix (Bug#9452).
2861
2862 2012-03-10 Chong Yidong <cyd@gnu.org>
2863
2864 * frame.c (other_visible_frames): Don't assume the selected frame
2865 is visible (Bug#10955).
2866
2867 2012-03-09 Stefan Monnier <monnier@iro.umontreal.ca>
2868
2869 * buffer.c (compare_overlays): Avoid qsort's instability (bug#6830).
2870
2871 2012-03-08 Jan Djärv <jan.h.d@swipnet.se>
2872
2873 * gtkutil.c (x_wm_set_size_hint): Use one row in call to
2874 FRAME_TEXT_LINES_TO_PIXEL_HEIGHT so base_height is greater than
2875 zero (Bug#10954).
2876
2877 2012-03-03 Glenn Morris <rgm@gnu.org>
2878
2879 * alloc.c (Fgarbage_collect, misc-objects-consed): Doc fixes.
2880
2881 2012-03-02 Eli Zaretskii <eliz@gnu.org>
2882
2883 * xdisp.c (try_window_reusing_current_matrix): Don't move cursor
2884 position past the first glyph_row that ends at ZV. (Bug#10902)
2885 (redisplay_window, next_element_from_string): Fix typos in
2886 comments.
2887 (redisplay_window): Pass to move_it_vertically the margin in
2888 pixels, not in screen lines.
2889
2890 2012-03-02 Glenn Morris <rgm@gnu.org>
2891
2892 * buffer.c (buffer-list-update-hook): Doc fix.
2893
2894 2012-02-29 Eli Zaretskii <eliz@gnu.org>
2895
2896 * xdisp.c (get_overlay_strings_1): Under bidi redisplay, call
2897 push_it before setting up the iterator for the first overlay
2898 string, even if we have an empty string loaded.
2899 (next_overlay_string): If there's an empty string on the iterator
2900 stack, pop the stack. (Bug#10903)
2901
2902 2012-02-25 Paul Eggert <eggert@cs.ucla.edu>
2903
2904 Generalize fix for crash due to non-contiguous EMACS_INT (Bug#10780).
2905 Suggested by Stefan Monnier in
2906 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00692.html>.
2907 * alloc.c (widen_to_Lisp_Object): New static function.
2908 (mark_memory): Also mark Lisp_Objects by fetching pointer words
2909 and widening them to Lisp_Objects. This would work even if
2910 USE_LSB_TAG is defined and wide integers are used, which might
2911 happen in a future version of Emacs.
2912
2913 2012-02-25 Chong Yidong <cyd@gnu.org>
2914
2915 * fileio.c (Ffile_selinux_context, Fset_file_selinux_context):
2916 Doc fix.
2917
2918 * xselect.c (Fx_selection_exists_p): Doc fix.
2919 (x_clipboard_manager_save_all): Print an informative message
2920 before saving to clipboard manager.
2921
2922 2012-02-24 Chong Yidong <cyd@gnu.org>
2923
2924 * keyboard.c (process_special_events): Handle all X selection
2925 requests in kbd_buffer, not just the next one (Bug#8869).
2926
2927 2012-02-23 Chong Yidong <cyd@gnu.org>
2928
2929 * xfns.c (Fx_create_frame): Avoid window-configuration-change-hook
2930 call when setting menu-bar-lines and tool-bar-lines parameters.
2931 (unwind_create_frame_1): New helper function.
2932
2933 * window.c (inhibit_window_configuration_change_hook): New var.
2934 (run_window_configuration_change_hook): Obey it.
2935 (syms_of_window): Initialize it.
2936
2937 2012-02-22 Chong Yidong <cyd@gnu.org>
2938
2939 * xterm.c (x_draw_image_relief): Add missing type check for
2940 Vtool_bar_button_margin (Bug#10743).
2941
2942 2012-02-21 Chong Yidong <cyd@gnu.org>
2943
2944 * fileio.c (Vfile_name_handler_alist): Doc fix.
2945
2946 * buffer.c (Fget_file_buffer): Protect against invalid file
2947 handler return value.
2948
2949 2012-02-20 Paul Eggert <eggert@cs.ucla.edu>
2950
2951 * .gdbinit (xreload): Don't assume EMACS_INT fits in 'long'
2952 when computing $valmask.
2953
2954 Fix crash due to non-contiguous EMACS_INT (Bug#10780).
2955 * lisp.h (VALBITS): Move definition up, so that USE_LSB_TAG can use it.
2956 (USE_LSB_TAG): Do not define if UINTPTR_MAX >> VALBITS == 0.
2957 It's useless in that case, and it can cause problems on hosts
2958 that allocate halves of EMACS_INT values separately.
2959 Reported by Dan Horák. Diagnosed by Andreas Schwab in
2960 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10780#30>.
2961 * mem-limits.h (EXCEEDS_LISP_PTR): Define to 0 on hosts where
2962 UINTPTR_MAX >> VALBITS == 0. This is required by the above change;
2963 it avoids undefined behavior on hosts where shifting right by more
2964 than the word width has undefined behavior.
2965
2966 2012-02-19 Chong Yidong <cyd@gnu.org>
2967
2968 * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
2969 (Funhandled_file_name_directory, Ffile_name_as_directory)
2970 (Fdirectory_file_name, Fexpand_file_name)
2971 (Fsubstitute_in_file_name): Protect against invalid file handler
2972 return values (Bug#10845).
2973
2974 2012-02-18 Eli Zaretskii <eliz@gnu.org>
2975
2976 * .gdbinit (pitx): Fix incorrect references to fields of the
2977 iterator stack.
2978
2979 2012-02-17 Chong Yidong <cyd@gnu.org>
2980
2981 * syntax.c (Fscan_lists): Doc fix (Bug#10833).
2982
2983 2012-02-15 Paul Eggert <eggert@cs.ucla.edu>
2984
2985 * image.c (MAX_IMAGE_SIZE): Increase from 6.0 to 10.0; see
2986 <http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00540.html>.
2987
2988 2012-02-15 Chong Yidong <cyd@gnu.org>
2989
2990 * eval.c (Fdefvar, Fdefconst): Doc fix; note that the variable is
2991 marked as special. Also, starting docstrings with * is obsolete.
2992
2993 2012-02-13 Andreas Schwab <schwab@linux-m68k.org>
2994
2995 * gnutls.c (emacs_gnutls_write): Fix last change.
2996
2997 2012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
2998
2999 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
3000 send_process.
3001
3002 2012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
3003
3004 * keymap.c (Fsingle_key_description): Handle char ranges.
3005
3006 2012-02-12 Chong Yidong <cyd@gnu.org>
3007
3008 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
3009 as that creates a dangerous corner case.
3010
3011 * window.c (Fdelete_window_internal): Invalidate the mouse
3012 highlight (Bug#9904).
3013
3014 2012-02-12 Glenn Morris <rgm@gnu.org>
3015
3016 * xselect.c (Fx_own_selection_internal)
3017 (Fx_get_selection_internal, Fx_disown_selection_internal)
3018 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
3019 * nsselect.m (Fx_own_selection_internal)
3020 (Fx_disown_selection_internal, Fx_selection_exists_p)
3021 (Fx_selection_owner_p, Fx_get_selection_internal):
3022 Sync docs and argument specs with the xselect.c versions.
3023
3024 2012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
3025
3026 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
3027
3028 2012-02-11 Eli Zaretskii <eliz@gnu.org>
3029
3030 * w32select.c (Fx_selection_exists_p): Sync doc string and
3031 argument list with xselect.c. (Bug#10783)
3032
3033 * w16select.c (Fx_selection_exists_p): Sync doc string and
3034 argument list with xselect.c. (Bug#10783)
3035
3036 2012-02-10 Glenn Morris <rgm@gnu.org>
3037
3038 * fns.c (Fsecure_hash): Doc fix.
3039
3040 2012-02-09 Kenichi Handa <handa@m17n.org>
3041
3042 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
3043
3044 2012-02-07 Chong Yidong <cyd@gnu.org>
3045
3046 * buffer.c (Fbuffer_local_variables)
3047 (buffer_lisp_local_variables): Handle unbound vars correctly;
3048 don't let Qunbound leak into Lisp.
3049
3050 2012-02-07 Glenn Morris <rgm@gnu.org>
3051
3052 * image.c (Fimagemagick_types): Doc fix.
3053
3054 * image.c (imagemagick-render-type): Change it from a lisp object
3055 to an integer. Move the doc here from the lisp manual.
3056 Treat all values not equal to 0 the same.
3057
3058 2012-02-06 Chong Yidong <cyd@gnu.org>
3059
3060 * doc.c (store_function_docstring): Avoid applying docstring of
3061 alias to base function (Bug#2603).
3062
3063 2012-02-04 Andreas Schwab <schwab@linux-m68k.org>
3064
3065 * .gdbinit (pp1, pv1): Remove redundant defines.
3066 (pr): Use pp.
3067
3068 2012-02-04 Chong Yidong <cyd@gnu.org>
3069
3070 * nsterm.m: Declare a global (Bug#10694).
3071
3072 2012-02-04 Eli Zaretskii <eliz@gnu.org>
3073
3074 * w32.c (get_emacs_configuration_options):
3075 Include --enable-checking, if specified, in the return value.
3076
3077 2012-02-04 Martin Rudalics <rudalics@gmx.at>
3078
3079 * dispnew.c (change_frame_size_1): Calculate new_frame_total_cols
3080 after rounding frame sizes. (Bug#9723)
3081
3082 2012-02-04 Eli Zaretskii <eliz@gnu.org>
3083
3084 * keyboard.c (adjust_point_for_property): Don't position point
3085 before BEGV. (Bug#10696)
3086
3087 2012-02-03 Paul Eggert <eggert@cs.ucla.edu>
3088
3089 Handle overflow when computing char display width (Bug#9496).
3090 * character.c (char_width): Return EMACS_INT, not int.
3091 (char_width, c_string_width): Check for overflow when
3092 computing the width; this is possible now that individual
3093 characters can have unbounded width. Problem introduced
3094 by merge from Emacs 23 on 2012-01-19.
3095
3096 2012-02-02 Michael Albinus <michael.albinus@gmx.de>
3097
3098 * dbusbind.c (Fdbus_register_method): Mention the return value
3099 :ignore in the docstring.
3100
3101 2012-02-02 Glenn Morris <rgm@gnu.org>
3102
3103 * callproc.c (Fcall_process, Fcall_process_region): Doc fix.
3104
3105 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
3106 Unconditionally set to t. (Bug#10673)
3107 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
3108 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
3109 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix.
3110
3111 2012-02-02 Kenichi Handa <handa@m17n.org>
3112
3113 (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
3114 0, do not call append_composite_glyph.
3115
3116 2012-02-02 Kenichi Handa <handa@m17n.org>
3117
3118 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
3119 NULL (Bug#6988).
3120 (x_produce_glyphs): If the component of a composition is a null
3121 string, set it->pixel_width to 1 to avoid zero-width glyph.
3122
3123 2012-02-01 Eli Zaretskii <eliz@gnu.org>
3124
3125 * ralloc.c (resize_bloc, r_alloc_sbrk): Don't call memmove if its
3126 first 2 arguments are identical. This makes inserting large
3127 output from a subprocess an order of magnitude faster on
3128 MS-Windows, where all sbrk'ed memory is always contiguous.
3129
3130 2012-01-31 Glenn Morris <rgm@gnu.org>
3131
3132 * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>:
3133 * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
3134 * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
3135
3136 2012-01-29 Glenn Morris <rgm@gnu.org>
3137
3138 * gnutls.c (syms_of_gnutls): More doc (from etc/NEWS).
3139
3140 2012-01-28 Samuel Thibault <sthibault@debian.org> (tiny change)
3141
3142 * s/gnu.h: Define POSIX_SIGNALS (Bug#10552).
3143
3144 2012-01-28 Chong Yidong <cyd@gnu.org>
3145
3146 * minibuf.c (syms_of_minibuf): Doc fix (Bug#10550).
3147
3148 2012-01-26 Chong Yidong <cyd@gnu.org>
3149
3150 * keyboard.c (Vecho_keystrokes): Document zero value (Bug#10503).
3151
3152 * search.c (Fsearch_forward, Fsearch_backward): Document negative
3153 repeat counts (Bug#10507).
3154
3155 2012-01-26 Glenn Morris <rgm@gnu.org>
3156
3157 * lread.c (syms_of_lread): Doc fix.
3158
3159 2012-01-25 HIROSHI OOTA <nil@mad.dog.cx> (tiny change)
3160
3161 * coding.c (encode_designation_at_bol): Change return value to
3162 EMACS_INT.
3163
3164 2012-01-25 Chong Yidong <cyd@gnu.org>
3165
3166 * eval.c (Fuser_variable_p): Doc fix; mention custom-variable-p.
3167
3168 2012-01-21 Chong Yidong <cyd@gnu.org>
3169
3170 * floatfns.c (Fcopysign): Make the second argument non-optional,
3171 since nil is not allowed anyway.
3172
3173 2012-01-21 Andreas Schwab <schwab@linux-m68k.org>
3174
3175 * process.c (read_process_output): Use p instead of XPROCESS (proc).
3176 (send_process): Likewise.
3177
3178 2012-01-19 Martin Rudalics <rudalics@gmx.at>
3179
3180 * window.c (save_window_save, Fcurrent_window_configuration)
3181 (Vwindow_persistent_parameters): Do not use Qstate.
3182 Rewrite doc-strings.
3183
3184 2012-01-19 Kenichi Handa <handa@m17n.org>
3185
3186 * character.c (char_width): New function.
3187 (Fchar_width, c_string_width, lisp_string_width):
3188 Use char_width (Bug#9496).
3189
3190 2012-01-16 Martin Rudalics <rudalics@gmx.at>
3191
3192 * window.c (Vwindow_persistent_parameters): New variable.
3193 (Fset_window_configuration, save_window_save): Handle persistent
3194 window parameters.
3195
3196 2012-01-14 Eli Zaretskii <eliz@gnu.org>
3197
3198 * w32fns.c (signal_user_input): Don't do a QUIT, to avoid
3199 thrashing the stack of the thread. (Bug#9087)
3200
3201 2012-01-12 Paul Eggert <eggert@cs.ucla.edu>
3202
3203 * xdisp.c (rows_from_pos_range): Add parens as per gcc -Wparentheses.
3204
3205 2012-01-11 Eli Zaretskii <eliz@gnu.org>
3206
3207 * xdisp.c (rows_from_pos_range): Handle the case where the
3208 highlight ends on a newline. (Bug#10464)
3209 (mouse_face_from_buffer_pos): Fix off-by-one error in calculating
3210 he end column for display of highlight that ends on a newline
3211 before a R2L line.
3212
3213 2012-01-11 Glenn Morris <rgm@gnu.org>
3214
3215 * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
3216 from load-path also when installation-directory is nil. (Bug#10208)
3217
3218 2012-01-10 Glenn Morris <rgm@gnu.org>
3219
3220 * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.
3221
3222 * epaths.in (PATH_LOADSEARCH, PATH_EXEC, PATH_DATA, PATH_DOC):
3223 Update template values to be closer to their typical values these days.
3224
3225 2012-01-09 Eli Zaretskii <eliz@gnu.org>
3226
3227 * xdisp.c (rows_from_pos_range): Accept additional argument
3228 DISP_STRING, and accept any glyph in a row whose object is that
3229 string as eligible for mouse highlight. Fixes mouse highlight of
3230 display strings from overlays. (Bug#10464)
3231
3232 2012-01-07 Paul Eggert <eggert@cs.ucla.edu>
3233
3234 emacs: fix an auto-save permissions race condition (Bug#10400)
3235 * fileio.c (auto_saving_dir_umask): New static var.
3236 (Fmake_directory_internal): Use it.
3237 (do_auto_save_make_dir): Set it, instead of invoking chmod after
3238 creating the directory. The old code temporarily assigns
3239 too-generous permissions to the directory.
3240 (do_auto_save_eh): Clear it.
3241 (Fdo_auto_save): Catch all errors, not just file errors, so
3242 that the var is always cleared.
3243
3244 2012-01-07 Eli Zaretskii <eliz@gnu.org>
3245
3246 * search.c (scan_buffer): Pass character positions to
3247 know_region_cache, not byte positions. (Bug#6540)
3248
3249 2012-01-07 LynX <_LynX@bk.ru> (tiny change)
3250
3251 * w32.c (sys_rename): Report EXDEV when rename of a directory
3252 fails because the target is on another logical disk. (Bug#10284)
3253
3254 2012-01-07 David Benjamin <davidben@mit.edu> (tiny change)
3255
3256 * xterm.c (x_embed_request_focus): New function.
3257
3258 * xterm.h: Add prototype.
3259
3260 * xfns.c (Fx_focus_frame): Use it for embedded frames (Bug#9977).
3261
3262 2012-01-05 Glenn Morris <rgm@gnu.org>
3263
3264 * emacs.c (emacs_copyright): Update short copyright year to 2012.
3265
3266 2012-01-01 Eli Zaretskii <eliz@gnu.org>
3267
3268 * gnutls.c (init_gnutls_functions): Load gnutls_check_version.
3269 Load gnutls_transport_set_lowat only if GnuTLS version is below
3270 2.11.1.
3271 (emacs_gnutls_handshake): Call gnutls_transport_set_lowat only for
3272 GnuTLS versions below 2.11.1.
3273
3274 2011-12-31 Antoine Levitt <antoine.levitt@gmail.com>
3275
3276 * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Add warning
3277 to the doc string advising against its use for altering the way
3278 windows are scrolled.
3279
3280 2011-12-28 Kenichi Handa <handa@m17n.org>
3281
3282 * coding.c (Fdefine_coding_system_internal): Make an utf-8 base
3283 coding-system ASCII compatible only when it does not produce BOM
3284 on encoding (Bug#10383).
3285
3286 2011-12-26 Jan Djärv <jan.h.d@swipnet.se>
3287
3288 * xmenu.c (x_menu_wait_for_event): Use xg_select for Gtk3 so menus
3289 can scroll.
3290 (create_and_show_popup_menu): Always use menu_position_func for
3291 Gtk3 (Bug#10361).
3292
3293 2011-12-24 Andreas Schwab <schwab@linux-m68k.org>
3294
3295 * callint.c (Fcall_interactively): Don't truncate prompt string.
3296
3297 2011-12-23 Eli Zaretskii <eliz@gnu.org>
3298
3299 * xdisp.c (handle_invisible_prop): Handle correctly an invisible
3300 property that ends at ZV, so that the bidi iteration could be
3301 resumed from there (after widening). (Bug#10360)
3302
3303 2011-12-22 Jan Djärv <jan.h.d@swipnet.se>
3304
3305 * nsfont.m (ns_spec_to_descriptor): Do not autorelease fdesc.
3306
3307 2011-12-21 Jan Djärv <jan.h.d@swipnet.se>
3308
3309 * nsterm.m (x_free_frame_resources):
3310 Release f->output_data.ns->miniimage.
3311 (ns_index_color): Fix indentation. Do not retain
3312 color_table->colors[i].
3313
3314 * nsmenu.m (ns_update_menubar): Call free_menubar_widget_value_tree
3315 before returning.
3316
3317 * nsfns.m (x_set_background_color): Assign return value from
3318 ns_index_color to face-background instead of NSColor*.
3319 (ns_implicitly_set_icon_type): Fix indentation.
3320 Change assignment in for loop to comparison.
3321
3322 * emacs.c (ns_pool): New variable.
3323 (main): Assign ns_pool.
3324 (Fkill_emacs): Call ns_release_autorelease_pool.
3325
3326 * nsfont.m (ns_spec_to_descriptor): Fix indentation,
3327 autorelease fdesc, release fdAttrs and tdict.
3328 (ns_get_covering_families): Release charset.
3329 (ns_findfonts): Release NSFontDescriptor created with new.
3330 (ns_uni_to_glyphs): Fix indentation.
3331 (setString): Release attrStr before assigning new value.
3332
3333 2011-12-18 Jan Djärv <jan.h.d@swipnet.se>
3334
3335 * nsmenu.m (NSMenuDidBeginTrackingNotification): Declare if OSX < 10.5
3336 and NS_IMPL_COCOA.
3337 (trackingNotification): Surround with ifdef NS_IMPL_COCOA.
3338 (syms_of_nsmenu): Set trackingMenu to 1 if not NS_IMPL_COCOA.
3339
3340 2011-12-18 David Reitter <reitter@cmu.edu>
3341
3342 * nsterm.m (ns_term_init): Subscribe for notifications
3343 NSMenuDidBeginTrackingNotification and NSMenuDidEndTrackingNotification
3344 to method trackingNotification in EmacsMenu.
3345
3346 * nsmenu.m (trackingMenu): New variable.
3347 (trackingNotification): New method (from Aquamacs).
3348 (menuNeedsUpdate): Expand comment and return if trackingMenu is 0,
3349 from Aquamacs (Bug#7030).
3350
3351 2011-12-18 Jan Djärv <jan.h.d@swipnet.se>
3352
3353 * nsselect.m (CUT_BUFFER_SUPPORT): Remove define.
3354 (symbol_to_nsstring): Fix indentation.
3355 (ns_symbol_to_pb): New function.
3356 (Fns_get_selection_internal): Rename from Fns_get_cut_buffer_internal.
3357 (Fns_rotate_cut_buffers_internal): Remove.
3358 (Fns_store_selection_internal): Rename from
3359 Fns_store_cut_buffer_internal.
3360 (ns_get_foreign_selection, Fx_own_selection_internal)
3361 (Fx_disown_selection_internal, Fx_selection_exists_p)
3362 (Fns_get_selection_internal, Fns_store_selection_internal):
3363 Use ns_symbol_to_pb and check if return value is nil.
3364 (syms_of_nsselect): Remove ifdef CUT_BUFFER_SUPPORT. Remove defsubr
3365 Sns_rotate_cut_buffers_internal. Sns_get_cut_buffer_internal
3366 renamed to Sns_get_selection_internal, Sns_store_cut_buffer_internal
3367 renamed to Sns_store_selection_internal.
3368 (ns_handle_selection_request): Move code to Fx_own_selection_internal
3369 and remove this function.
3370 (ns_handle_selection_clear): Remove, never used.
3371 (Fx_own_selection_internal): Move code from ns_handle_selection_request
3372 here.
3373
3374 2011-12-17 Ken Brown <kbrown@cornell.edu>
3375
3376 * fileio.c (check_writable) [CYGWIN]: Return non-zero if UID or
3377 GID is unknown (Bug#10257).
3378
3379 2011-12-17 Paul Eggert <eggert@cs.ucla.edu>
3380
3381 * s/gnu-linux.h: Fix mark_memory typo (Bug#10286).
3382 (GC_MARK_SECONDARY_STACK): Omit removed 3rd arg to mark_memory,
3383 which caused a build failure on GNU/Linux IA-64. This problem was
3384 introduced by my 2011-10-07 patch.
3385
3386 2011-12-15 Juri Linkov <juri@jurta.org>
3387
3388 * image.c (imagemagick_error): New function. (Bug#10112)
3389 (imagemagick_load_image): Comment out `MagickSetResolution' call.
3390 Use `imagemagick_error' where ImageMagick functions return
3391 `MagickFalse'.
3392 (Fimagemagick_types): Add `Fnreverse' to return the list in the
3393 proper order.
3394
3395 2011-12-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3396
3397 * xftfont.c (xftfont_draw): Use the font metrics of s->font to
3398 fill background (Bug#8992).
3399
3400 2011-12-13 Martin Rudalics <rudalics@gmx.at>
3401
3402 * window.c (Vwindow_combination_resize)
3403 (Vwindow_combination_limit): Use t instead of non-nil in
3404 doc-strings.
3405 (Vrecenter_redisplay): Add first sentence of doc-string on
3406 separate line.
3407 (Frecenter): Fix doc-string typo.
3408
3409 2011-12-11 Kenichi Handa <handa@m17n.org>
3410
3411 * coding.c (Funencodable_char_position): Pay attention to the
3412 buffer text relocation (Bug#9389).
3413
3414 2011-12-10 Jan Djärv <jan.h.d@swipnet.se>
3415
3416 * xterm.c (x_term_init): Move call to gdk_window_add_filter before
3417 gtk_init (Bug#10100).
3418
3419 2011-12-10 Eli Zaretskii <eliz@gnu.org>
3420
3421 * xdisp.c (RECORD_MAX_MIN_POS): Use IT->cmp_it.charpos only if
3422 IT->string is nil. (Bug#10263)
3423
3424 2011-12-10 Jan Djärv <jan.h.d@swipnet.se>
3425
3426 * nsterm.h (x_free_frame_resources): Declare.
3427
3428 * nsfns.m (ns_get_defaults_value): New function (Bug#10103).
3429 (Fns_get_resource, x_get_string_resource): Call ns_get_defaults_value.
3430
3431 * nsterm.h (ns_get_defaults_value): Declare.
3432
3433 * nsterm.m (ns_default): Call ns_get_defaults_value.
3434
3435 2011-12-09 Eli Zaretskii <eliz@gnu.org>
3436
3437 * xdisp.c (try_scrolling): Don't set scroll_down_p if dy is zero.
3438 (Bug#10170)
3439
3440 2011-12-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3441
3442 * unexelf.c (unexec) [NS_IMPL_GNUSTEP]: Take account of the case
3443 that where the value of an _OBJC_* symbol points to is in the .bss
3444 section (Bug#10240).
3445
3446 2011-12-08 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
3447
3448 * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end)
3449 after the loop to call ccl_driver at least once (Bug#8619).
3450
3451 2011-12-08 Kenichi Handa <handa@m17n.org>
3452
3453 * ftfont.c (get_adstyle_property): Fix previous change
3454 (Bug#10233).
3455
3456 2011-12-07 Juanma Barranquero <lekktu@gmail.com>
3457
3458 * w32.c (init_environment): If no_site_lisp, remove site-lisp
3459 dirs from the default value of EMACSLOADPATH (bug#10208).
3460
3461 2011-12-07 Glenn Morris <rgm@gnu.org>
3462
3463 * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
3464 installation and source directories as well. (Bug#10208)
3465
3466 2011-12-06 Chong Yidong <cyd@gnu.org>
3467
3468 * minibuf.c (Fread_from_minibuffer): Doc fix (Bug#10228).
3469
3470 2011-12-06 Glenn Morris <rgm@gnu.org>
3471
3472 * process.c (start_process_unwind): Treat any pid <= 0, except -2,
3473 as an error, not just -1. (Bug#10217)
3474
3475 2011-12-05 Chong Yidong <cyd@gnu.org>
3476
3477 * keyboard.c (process_special_events): New function.
3478 (swallow_events, Finput_pending_p): Use it (Bug#10195).
3479
3480 2011-12-05 Paul Eggert <eggert@cs.ucla.edu>
3481
3482 * coding.c (encode_designation_at_bol): Don't use uninitialized
3483 local variable (Bug#9318).
3484
3485 2011-12-05 Kenichi Handa <handa@m17n.org>
3486
3487 * ftfont.c (get_adstyle_property): If the font is not BDF nor PCF,
3488 return Qnil (Bug#8046, Bug#10193).
3489
3490 2011-12-05 Kenichi Handa <handa@m17n.org>
3491
3492 * coding.c (encode_designation_at_bol): New args charbuf_end and
3493 dst. Return the number of produced bytes. Callers changed.
3494 (coding_set_source): Return how many bytes coding->source was
3495 relocated.
3496 (coding_set_destination): Return how many bytes
3497 coding->destination was relocated.
3498 (CODING_DECODE_CHAR, CODING_ENCODE_CHAR, CODING_CHAR_CHARSET)
3499 (CODING_CHAR_CHARSET_P): Adjust for the avove changes.
3500
3501 2011-12-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny change)
3502
3503 * coding.c (CODING_CHAR_CHARSET_P): New macro.
3504 (encode_coding_emacs_mule, encode_coding_iso_2022): Use the above
3505 macro (Bug#9318).
3506
3507 2011-12-05 Andreas Schwab <schwab@linux-m68k.org>
3508
3509 The following changes are to fix Bug#9318.
3510
3511 * coding.c (CODING_ENCODE_CHAR, CODING_CHAR_CHARSET): New macros.
3512 (encode_coding_emacs_mule, ENCODE_ISO_CHARACTER)
3513 (encode_coding_iso_2022, encode_coding_sjis)
3514 (encode_coding_big5, encode_coding_charset): Use the above macros.
3515
3516 2011-12-05 Juanma Barranquero <lekktu@gmail.com>
3517
3518 * lisp.h (process_quit_flag): Fix external declaration.
3519
3520 2011-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
3521
3522 Don't macro-inline non-performance-critical code.
3523 * eval.c (process_quit_flag): New function.
3524 * lisp.h (QUIT): Use it.
3525
3526 2011-12-04 Jan Djärv <jan.h.d@swipnet.se>
3527
3528 * nsfns.m (get_geometry_from_preferences): New function.
3529 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
3530
3531 2011-12-04 Andreas Schwab <schwab@linux-m68k.org>
3532
3533 * emacs.c (Qkill_emacs): Define.
3534 (syms_of_emacs): Initialize it.
3535 * keyboard.c (interrupt_signal): Don't call Fkill_emacs here, set
3536 Qquit_flag to `kill-emacs' instead.
3537 (quit_throw_to_read_char): Add parameter `from_signal'.
3538 All callers changed. Call Fkill_emacs if requested and safe.
3539 * lisp.h (QUIT): Call Fkill_emacs if requested.
3540
3541 2011-12-03 Jan Djärv <jan.h.d@swipnet.se>
3542
3543 * widget.c (update_wm_hints): Return if wmshell is null.
3544 (widget_update_wm_size_hints): New function.
3545
3546 * widget.h (widget_update_wm_size_hints): Declare.
3547
3548 * xterm.c (x_wm_set_size_hint): If USE_X_TOOLKIT, call
3549 widget_update_wm_size_hints (Bug#10104).
3550
3551 2011-12-03 Eli Zaretskii <eliz@gnu.org>
3552
3553 * xdisp.c (handle_invisible_prop): If the invisible text ends just
3554 before a newline, prepare the bidi iterator for consuming the
3555 newline, and keep the current paragraph direction. (Bug#10183)
3556 (redisplay_window): Don't let `margin' become negative. (Bug#10192)
3557
3558 2011-12-02 Juri Linkov <juri@jurta.org>
3559
3560 * search.c (Fword_search_regexp): New Lisp function created from
3561 `wordify'. Change type of arg `lax' from `int' to `Lisp_Object'.
3562 (Fword_search_backward, Fword_search_forward)
3563 (Fword_search_backward_lax, Fword_search_forward_lax):
3564 Use `Fword_search_regexp' instead of `wordify'. Doc fix.
3565 (syms_of_search): Define `Sword_search_regexp'. (Bug#10145)
3566
3567 2011-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
3568
3569 * fileio.c (Finsert_file_contents): Move after-change-function call
3570 to before the "handled:" label, since all "goto handled" appear in
3571 cases where the *-change-functions have already been properly called
3572 (bug#10117).
3573
3574 2011-12-01 Andreas Schwab <schwab@linux-m68k.org>
3575
3576 * keyboard.c (interrupt_signal): Don't call kill-emacs when
3577 waiting for input. (Bug#10169)
3578
3579 2011-11-30 Eli Zaretskii <eliz@gnu.org>
3580
3581 * dispnew.c (adjust_glyph_matrix): Remove the assertion that
3582 verifies glyph row's hash code--we have just reallocated the
3583 glyphs, so their contents can be complete garbage. (Bug#10164)
3584
3585 2011-11-30 Juanma Barranquero <lekktu@gmail.com>
3586
3587 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Add missing check.
3588
3589 2011-11-30 Eli Zaretskii <eliz@gnu.org>
3590
3591 * dispnew.c (adjust_glyph_matrix) [XASSERTS]: Ensure ROW's
3592 attributes are tested _before_ calling verify_row_hash, to protect
3593 against GCC re-ordering of the tests. (Bug#10164)
3594
3595 2011-11-29 Jan Djärv <jan.h.d@swipnet.se>
3596
3597 * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
3598
3599 * xterm.c (handle_one_xevent): Only set async_visible and friends
3600 if net_wm_state_hidden_seen is non-zero (Bug#10002)
3601 (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
3602 _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
3603
3604 2011-11-28 Paul Eggert <eggert@cs.ucla.edu>
3605
3606 Remove GCPRO-related macros that exist only to avoid shadowing locals.
3607 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
3608 (GCPRO6_VAR, UNGCPRO_VAR): Remove. See
3609 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
3610 All uses changed to use GCPRO1 etc.
3611 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
3612 Revert to old implementation (i.e., before 2011-03-11).
3613
3614 2011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3615
3616 * dispnew.c (scrolling_window): Truncate overlaps in copy destination
3617 of scroll runs so as to avoid assigning disabled bogus rows and
3618 unnecessary graphics copy operations.
3619
3620 2011-11-27 Eli Zaretskii <eliz@gnu.org>
3621
3622 * s/ms-w32.h (utimbuf) [_MSC_VER]: Don't define.
3623 (snprintf) [_MSC_VER]: Redirect to _snprintf.
3624 (strtoll) [_MSC_VER]: Redirect to _strtoi64.
3625 (malloc, free, realloc, calloc): Redirect to e_* only when
3626 compiling Emacs.
3627
3628 * lisp.h (GCTYPEBITS): Move before first use.
3629 (ALIGN_GCTYPEBITS) [_MSC_VER]: Define.
3630 (DECL_ALIGN) [_MSC_VER]: Use it, as MSVC doesn't like bit ops in
3631 this macro definition.
3632
3633 * s/ms-w32.h (tzname): Redirect to _tzname for all values of
3634 _MSC_VER.
3635
3636 2011-11-27 Jan Djärv <jan.h.d@swipnet.se>
3637
3638 * gtkutil.c (xg_create_frame_widgets):
3639 Call gtk_window_set_has_resize_grip (FALSE) if that function is
3640 present with Gtk+ 2.0.
3641
3642 2011-11-26 Paul Eggert <eggert@cs.ucla.edu>
3643
3644 * fileio.c (Finsert_file_contents): Undo previous change; see
3645 <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
3646
3647 2011-11-26 Paul Eggert <eggert@cs.ucla.edu>
3648
3649 Rename locals to avoid shadowing.
3650 * fileio.c (Finsert_file_contents):
3651 Rename inner 'gcpro1' to 'inner_gcpro1' to avoid shadowing.
3652 * process.c (wait_reading_process_output):
3653 Rename inner 'proc' to 'p' to avoid shadowing.
3654 Indent for consistency with usual Emacs style.
3655
3656 2011-11-25 Eli Zaretskii <eliz@gnu.org>
3657
3658 * xdisp.c (redisplay_window): If cursor row is not fully visible
3659 after recentering, and scroll-conservatively is set to a large
3660 number, scroll window by a few more lines to make the cursor fully
3661 visible and out of scroll-margin. (Bug#10105)
3662 (start_display): Don't move to the next line if the display should
3663 start at a newline that is part of a display vector or an overlay
3664 string. (Bug#10119)
3665
3666 2011-11-24 Juri Linkov <juri@jurta.org>
3667
3668 * image.c (imagemagick_load_image): Move `MagickSetResolution' down
3669 after the `MagickPingImage' call. (Bug#10112)
3670
3671 2011-11-23 Chong Yidong <cyd@gnu.org>
3672
3673 * window.c (Fcoordinates_in_window_p): Accept only live windows.
3674
3675 2011-11-23 Martin Rudalics <rudalics@gmx.at>
3676
3677 * buffer.c (Fkill_buffer): Run replace_buffer_in_windows before
3678 making another buffer current. (Bug#10114)
3679
3680 2011-11-23 Glenn Morris <rgm@gnu.org>
3681
3682 * font.c (font_find_for_lface) [HAVE_NS]: Ignore case. (Bug#2526)
3683
3684 2011-11-23 Chong Yidong <cyd@gnu.org>
3685
3686 * xdisp.c (compute_stop_pos): Check validity of end_charpos before
3687 using it (Bug#5984).
3688
3689 2011-11-22 Eli Zaretskii <eliz@gnu.org>
3690
3691 * dispnew.c (adjust_glyph_matrix): Don't verify hash code of mode-
3692 and header-lines, as they don't have one computed for them.
3693 (Bug#10098)
3694
3695 * .gdbinit (prow): Make displayed values more self-explaining.
3696 Add row's hash code.
3697
3698 2011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
3699
3700 * process.c (wait_reading_process_output): Fix asynchrounous
3701 GnuTLS socket handling on some versions of the GnuTLS library.
3702 (wait_reading_process_output): Add comment and URL.
3703
3704 2011-11-21 Jan Djärv <jan.h.d@swipnet.se>
3705
3706 * xterm.c (x_clear_frame): Reinstate the XClearWindow call.
3707
3708 2011-11-21 Chong Yidong <cyd@gnu.org>
3709
3710 * window.c (Fnext_window, Fprevious_window): Doc fix.
3711
3712 2011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
3713
3714 * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup.
3715
3716 2011-11-20 Juanma Barranquero <lekktu@gmail.com>
3717
3718 * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo.
3719
3720 2011-11-20 Martin Rudalics <rudalics@gmx.at>
3721
3722 * window.c (Fset_window_combination_limit): Rename argument
3723 STATUS to LIMIT.
3724 (Vwindow_combination_limit): Remove "status" from doc-string.
3725
3726 2011-11-20 Andreas Schwab <schwab@linux-m68k.org>
3727
3728 * m/ibms390.h: Remove.
3729 * m/ibms390x.h: Don't include "ibms390.h".
3730
3731 2011-11-20 Stefan Monnier <monnier@iro.umontreal.ca>
3732
3733 * fileio.c (Finsert_file_contents): Add missing gcpro1 variable.
3734 Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
3735
3736 2011-11-20 Juanma Barranquero <lekktu@gmail.com>
3737
3738 * casetab.c (Fset_case_table):
3739 * charset.c (Fcharset_after): Fix typos.
3740
3741 2011-11-20 Paul Eggert <eggert@cs.ucla.edu>
3742
3743 Standardize on VIRT_ADDR_VARIES behavior (Bug#10042).
3744 Otherwise, valgrind does not work on some platforms.
3745 Problem reported by Andreas Schwab in
3746 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>.
3747 * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES
3748 is set, removing the need for VIRT_ADDRESS_VARIES.
3749 (PURE_P): Use a more-efficient implementation that needs just one
3750 comparison, not two: on x86-64 with GCC 4.6.2, this cut down the
3751 number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge)
3752 to 4 (xorl, subq, cmpq, setbe).
3753 * alloc.c (pure): Always extern now, since that's the
3754 VIRT_ADDR_VARIES behavior.
3755 (PURE_POINTER_P): Use a single comparison, not two, for
3756 consistency with the new puresize.h.
3757 * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed.
3758 * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h:
3759 Remove VIRT_ADDR_VARIES no longer needed.
3760
3761 2011-11-19 Eli Zaretskii <eliz@gnu.org>
3762
3763 * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph)
3764 (erase_phys_cursor, update_window_cursor, show_mouse_face)
3765 (cursor_in_mouse_face_p): If the cursor position is out of bounds,
3766 behave as if the cursor position were at the window margin.
3767
3768 * window.c (get_phys_cursor_glyph): If the window is hscrolled,
3769 and the cursor position is out of bounds, behave as if the cursor
3770 position were at the window margin. (Bug#10075)
3771
3772 2011-11-18 Chong Yidong <cyd@gnu.org>
3773
3774 * window.c (Fwindow_combination_limit): Make first argument
3775 non-optional, since it is meaningless for live windows like the
3776 selected window.
3777
3778 2011-11-18 Dmitry Antipov <dmantipov@yandex.ru>
3779
3780 * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs.
3781
3782 2011-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
3783
3784 * intervals.c: Fix grafting over the whole buffer (bug#10071).
3785 (graft_intervals_into_buffer): Simplify.
3786
3787 2011-11-18 Eli Zaretskii <eliz@gnu.org>
3788
3789 * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the
3790 hash values of the two rows.
3791 (copy_row_except_pointers): Preserve the used[] arrays and the
3792 hash values of the two rows. (Bug#10035)
3793 (add_row_entry): Add xassert to verify that ROW's hash code is valid.
3794
3795 * xdisp.c (row_hash): New function, body extracted from
3796 compute_line_metrics.
3797 (compute_line_metrics): Call row_hash, instead of computing the
3798 hash code inline.
3799
3800 * dispnew.c (verify_row_hash): Call row_hash for computing the
3801 hash code of a row, instead of duplicating code from xdisp.c.
3802
3803 * dispextern.h (row_hash): Add prototype.
3804
3805 2011-11-18 Tassilo Horn <tassilo@member.fsf.org>
3806
3807 * frame.c (delete_frame): Don't delete the terminal when the last
3808 X frame is closed if emacs is built with GTK toolkit.
3809
3810 2011-11-17 Juanma Barranquero <lekktu@gmail.com>
3811
3812 * window.c (syms_of_window) <window-combination-resize>: Fix typo.
3813
3814 2011-11-17 Martin Rudalics <rudalics@gmx.at>
3815
3816 * window.c (Vwindow_splits): Rename to
3817 Vwindow_combination_resize. Suggested by Juri Linkov.
3818 (Fsplit_window_internal): Use Vwindow_combination_resize instead
3819 of Vwindow_splits.
3820
3821 2011-11-16 Juanma Barranquero <lekktu@gmail.com>
3822
3823 * nsfns.m (Fns_font_name):
3824 * window.c (syms_of_window) <window-combination-limit>: Fix typos.
3825
3826 2011-11-16 Martin Rudalics <rudalics@gmx.at>
3827
3828 * window.h (window): Rename slot "nest" to "combination_limit".
3829 * window.c (Fwindow_nest): Rename to Fwindow_combination_limit.
3830 (Fset_window_nest): Rename to Fset_window_combination_limit.
3831 (Vwindow_nest): Rename to Vwindow_combination_limit.
3832 (recombine_windows, make_parent_window, make_window)
3833 (Fsplit_window_internal, saved_window)
3834 (Fset_window_configuration, save_window_save): Rename all
3835 occurrences of window_nest to window_combination_limit.
3836
3837 2011-11-15 Juanma Barranquero <lekktu@gmail.com>
3838
3839 * image.c (imagemagick_load_image): Fix typo.
3840
3841 2011-11-14 Eli Zaretskii <eliz@gnu.org>
3842
3843 * xdisp.c (display_line): Move the call to
3844 highlight_trailing_whitespace before the call to
3845 compute_line_metrics, since the latter needs to see the final
3846 faces of all the glyphs to compute ROW's hash value.
3847 Fixes assertion violations in row_equal_p. (Bug#10035)
3848
3849 2011-11-14 Juanma Barranquero <lekktu@gmail.com>
3850
3851 * w32proc.c (reader_thread): Don't check pending input if cp->fd < 0,
3852 just return (bug#10044).
3853
3854 2011-11-12 Eli Zaretskii <eliz@gnu.org>
3855
3856 * makefile.w32-in (HEAPSIZE): New variable, allows to build temacs
3857 with user-defined heap size. Bump the default size of the temacs
3858 heap to 27MB, to avoid memory warning when running temacs.
3859 ($(TEMACS)): Use HEAPSIZE instead of a hardcoded value.
3860
3861 * dispnew.c (scrolling_window): Fix incorrect indices in accessing
3862 current_matrix and desired_matrix. (Bug#9990)
3863 (verify_row_hash) [XASSERTS]: New function.
3864 (adjust_glyph_matrix, row_equal_p): Use it in xassert to verify
3865 that the hash value of glyph rows is correct.
3866
3867 2011-11-12 Martin Rudalics <rudalics@gmx.at>
3868
3869 * window.h (window): Remove splits slot.
3870 * window.c (Fwindow_splits, Fset_window_splits): Remove.
3871 (Fdelete_other_windows_internal, make_parent_window)
3872 (make_window, Fsplit_window_internal, Fdelete_window_internal)
3873 (Fset_window_configuration, save_window_save): Don't deal with
3874 split status of windows.
3875 (saved_window): Remove splits slot.
3876 (Vwindow_splits): Rewrite doc-string.
3877
3878 2011-11-11 Jan Djärv <jan.h.d@swipnet.se>
3879
3880 * xfns.c (unwind_create_frame):
3881 * nsfns.m (unwind_create_frame):
3882 * w32fns.c (unwind_create_frame): Use Fmemq to check if frame is in
3883 Vframe_list (Bug#9999).
3884
3885 2011-11-11 Dmitry Antipov <dmantipov@yandex.ru>
3886
3887 * xdisp.c (syms_of_xdisp): Remove duplicated definition of Qtext.
3888
3889 2011-11-11 Kenichi Handa <handa@m17n.org>
3890
3891 * callproc.c (Fcall_process): Set the member dst_multibyte of
3892 process_coding.
3893
3894 2011-11-11 Johan Bockgård <bojohan@gnu.org>
3895
3896 * xdisp.c (fill_composite_glyph_string): Always set s->face, to
3897 avoid a crash (bug#9496).
3898
3899 2011-11-09 Chong Yidong <cyd@gnu.org>
3900
3901 * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges)
3902 (Fwindow_inside_absolute_pixel_edges): Only allow live windows.
3903
3904 2011-11-08 Paul Eggert <eggert@cs.ucla.edu>
3905
3906 * s/gnu.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS (Bug#9926).
3907
3908 2011-11-08 Paul Eggert <eggert@cs.ucla.edu>
3909
3910 Avoid some portability problems by eschewing 'extern inline' functions.
3911 The trivial performance wins aren't worth the portability hassles; see
3912 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>
3913 et seq.
3914 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
3915 (window_box_width, window_box_left, window_box_left_offset)
3916 (window_box_right, window_box_right_offset): Undo previous change,
3917 by removing the "extern"s.
3918 * intervals.c (adjust_intervals_for_insertion)
3919 (adjust_intervals_for_deletion): Undo previous change,
3920 making these static again.
3921 (offset_intervals, temp_set_point_both, temp_set_point)
3922 (copy_intervals_to_string): No longer inline.
3923 * xdisp.c (window_text_bottom_y, window_box_width)
3924 (window_box_height, window_box_left_offset)
3925 (window_box_right_offset, window_box_left, window_box_right)
3926 (window_box): No longer inline.
3927
3928 2011-11-08 Chong Yidong <cyd@gnu.org>
3929
3930 * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix.
3931 (Fwindow_body_height, Fwindow_body_width): Move from Lisp.
3932 Signal an error if not a live window.
3933 (Fwindow_total_width, Fwindow_total_height): Move from Lisp.
3934 (Fwindow_total_size, Fwindow_body_size): Move to Lisp.
3935
3936 2011-11-07 Juanma Barranquero <lekktu@gmail.com>
3937
3938 * lisp.h (syms_of_abbrev): Remove declaration.
3939 Reported by CHENG Gao <chenggao@royau.me>.
3940
3941 2011-11-07 Eli Zaretskii <eliz@gnu.org>
3942
3943 * w32.c (check_windows_init_file): Don't look for term/w32-win.el
3944 if Vpurify_flag is non-nil. Fixes a crash when running w32 build
3945 of temacs in GUI mode.
3946
3947 2011-11-07 Martin Rudalics <rudalics@gmx.at>
3948
3949 * window.h: Declare delete_all_child_windows instead of
3950 delete_all_subwindows.
3951 * window.c (Fwindow_nest, Fset_window_nest)
3952 (Fset_window_new_total, Fset_window_new_normal)
3953 (Fwindow_resize_apply): Don't use term subwindow in doc-strings.
3954 (delete_all_subwindows): Rename to delete_all_child_windows.
3955 (Fdelete_other_windows_internal, Fset_window_configuration):
3956 Call delete_all_child_windows instead of delete_all_subwindows.
3957 * frame.c (delete_frame): Call delete_all_child_windows instead
3958 of delete_all_subwindows.
3959
3960 2011-11-07 Paul Eggert <eggert@cs.ucla.edu>
3961
3962 * alloc.c (DEADP): New macro, for porting to GNU/Hurd (Bug#9926).
3963 This is also needed for porting to any host where GC_MARK_STACK is
3964 not GC_MAKE_GCPROS_NOOPS.
3965 (which_symbols): Use it.
3966
3967 2011-11-07 Kenichi Handa <handa@m17n.org>
3968
3969 * coding.c (coding_set_destination): Check coding->src_pos only
3970 when coding->src_object is a buffer (bug#9910).
3971
3972 * process.c (send_process): Set the member src_multibyte of coding
3973 to 0 (bug#9911) when sending a unibyte text.
3974
3975 * callproc.c (Fcall_process): Set the member src_multibyte of
3976 process_coding to 0 (bug#9912).
3977
3978 2011-11-06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
3979
3980 * xmenu.c (cleanup_widget_value_tree): New function.
3981 (xmenu_show, xdialog_show): Use it in record_unwind_protect instead of
3982 calling free_menubar_widget_value_tree directly (Bug#9830).
3983
3984 2011-11-06 Paul Eggert <eggert@cs.ucla.edu>
3985
3986 Fix some portability problems with 'inline'.
3987 * dispextern.h (window_box, window_box_height, window_text_bottom_y)
3988 (window_box_width, window_box_left, window_box_left_offset)
3989 (window_box_right, window_box_right_offset): Declare extern.
3990 Otherwise, these inline functions do not conform to C99 and
3991 are miscompiled by Microsoft compilers. Reported by Eli Zaretskii in
3992 <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00084.html>.
3993 * intervals.c (adjust_intervals_for_insertion)
3994 (adjust_intervals_for_deletion): Now extern, because otherwise the
3995 extern inline functions 'offset_intervals' couldn't refer to it.
3996 (static_offset_intervals): Remove.
3997 (offset_intervals): Rewrite using the old contents of
3998 static_offset_intervals. The old version didn't conform to C99
3999 because an extern inline function contained a reference to an
4000 identifier with static linkage.
4001
4002 2011-11-06 Andreas Schwab <schwab@linux-m68k.org>
4003
4004 * keyboard.c (interrupt_signal): Don't call kill-emacs while in
4005 GC.
4006
4007 2011-11-06 Eli Zaretskii <eliz@gnu.org>
4008
4009 * xdisp.c (init_iterator, reseat_to_string): Don't set the
4010 iterator's bidi_p flag if Vpurify_flag is non-nil. (Bug#9963)
4011 (Fcurrent_bidi_paragraph_direction): If Vpurify_flag is non-nil,
4012 return Qleft_to_right.
4013
4014 2011-11-06 Chong Yidong <cyd@gnu.org>
4015
4016 * window.c (Fwindow_live_p, Fwindow_frame, Fframe_root_window)
4017 (Fminibuffer_window, Fwindow_buffer, Fwindow_splits)
4018 (Fset_window_splits, Fwindow_nest, Fset_window_nest)
4019 (Fwindow_use_time, Fwindow_total_size, Fwindow_normal_size)
4020 (Fwindow_new_normal, Fwindow_left_column, Fwindow_top_line)
4021 (Fwindow_margins, Fwindow_fringes, Fwindow_scroll_bars)
4022 (Fwindow_vscroll): Doc fix.
4023 (Fwindow_top_child, Fwindow_left_child): Eliminate a nil default
4024 argument, since it makes no sense to pass a live window and for
4025 consistency with window-child.
4026
4027 2011-11-05 Christoph Scholtes <cschol2112@googlemail.com>
4028
4029 * makefile.w32-in ($(TEMACS), (gl-stamp)): Use $(THISDIR) to
4030 support MSVC.
4031
4032 2011-11-05 Jason Rumney <jasonr@gnu.org>
4033
4034 * w32font.c (font_matches_spec): Filter out non-Japanese kana fonts.
4035 (add_font_entity_to_list): Filter out non-Japanese Shift-JIS
4036 fonts (Bug#6029).
4037 (add_font_entity_to_list): Fix logic errors in mixed boolean and
4038 bitwise arithmetic preventing use of unicode-sip and non-truetype
4039 opentype fonts.
4040
4041 2011-11-05 Eli Zaretskii <eliz@gnu.org>
4042
4043 * s/ms-w32.h (fstat, stat, utime): Move redirections to
4044 "emacs"-only part.
4045
4046 * w32fns.c (x_create_tip_frame, Fx_create_frame): Rearrange
4047 initialization code to keep similarity to xfns.c after changes
4048 from 2011-11-05.
4049
4050 2011-11-05 Jan Djärv <jan.h.d@swipnet.se>
4051
4052 * nsfns.m: Declare image_cache_refcount if GLYPH_DEBUG.
4053 (unwind_create_frame): New function (Bug#9943).
4054 (Fx_create_frame): Restructure code to be more similar to the one in
4055 xfns.c. Call record_unwind_protect with unwind_create_frame (Bug#9943).
4056 Initialize image_cache_refcount if GLYPH_DEBUG (Bug#9943).
4057 Move terminal->reference_count++ just before making the frame official
4058 (Bug#9943).
4059
4060 * nsterm.m (x_free_frame_resources): New function.
4061 (x_destroy_window): Move code to x_free_frame_resources.
4062
4063 * xfns.c (unwind_create_frame): Fix comment.
4064 (Fx_create_frame, x_create_tip_frame):
4065 Move terminal->reference_count++ just before making the frame
4066 official. Move initialization of image_cache_refcount and
4067 dpyinfo_refcount before calling init_frame_faces (Bug#9943).
4068
4069 2011-11-05 Eli Zaretskii <eliz@gnu.org>
4070
4071 Support MSVC build with newer versions of Visual Studio.
4072 * makefile.w32-in (TAGS-gmake): Don't use $(patsubst ...), as
4073 Nmake barfs on that. Use $(OBJ*_c) variables instead, defined on
4074 nt/gmake.defs.
4075
4076 * lisp.h (ENUM_BF): New macro, for enumerated types in bitfields,
4077 which are not supported by MSVC.
4078 (Lisp_Symbol, Lisp_Misc_Any, Lisp_Marker, Lisp_Misc_Overlay)
4079 (Lisp_Save_Value, Lisp_Free): Use ENUM_BF for enumerated types in
4080 bitfields.
4081 (Lisp_Object) [USE_LISP_UNION_TYPE]: Use ENUM_BF for enumerated
4082 types in bitfields.
4083 (DEFUN) [_MSC_VER]: Define in a different way for MSVC.
4084
4085 * w32fns.c [_MSC_VER]: DECLARE_HANDLE for any MSVC version.
4086
4087 2011-11-05 Fabrice Popineau <fabrice.popineau@supelec.fr> (tiny change)
4088
4089 Support MSVC build with newer versions of Visual Studio.
4090 * w32.c: Don't include w32api.h for MSVC.
4091 (init_environment) [_MSC_VER]: Call sys_access, not _access.
4092
4093 * s/ms-w32.h <sigset_t, ssize_t> [_MSC_VER]: Typedefs for MSVC.
4094 [_MSC_VER]: Include sys/timeb.h, sys/stat.h, and signal.h.
4095 (fstat, stat, utime) [_MSC_VER]: Redirect to their sys_* cousins.
4096 (malloc, free, realloc, calloc) [_MSC_VER]: Always redirect to the
4097 e_* cousins.
4098 (alloca) [_MSC_VER]: Define to _alloca.
4099
4100 * lisp.h (DECL_ALIGN) [_MSC_VER]: Define for MSVC.
4101
4102 * regex.c <re_char> [_MSC_VER]: A separate definition for MSVC.
4103
4104 2011-11-04 Eli Zaretskii <eliz@gnu.org>
4105
4106 * xdisp.c (note_mouse_highlight): If either of
4107 previous/next-single-property-change returns nil, treat that as
4108 the beginning or the end of the buffer. (Bug#9955)
4109
4110 2011-11-04 Jan Djärv <jan.h.d@swipnet.se>
4111
4112 * gtkutil.c (xg_make_tool_item): Add callbacks if one of wimage or
4113 label is not null (Bug#9951).
4114 (xg_tool_item_stale_p): Handle the fact that wimage and/or wlbl
4115 may be NULL.
4116
4117 2011-11-04 Eli Zaretskii <eliz@gnu.org>
4118
4119 * window.c (Fwindow_body_size): Mention in the doc string that the
4120 return value is in frame's canonical units. (Bug#9949)
4121
4122 2011-11-03 Eli Zaretskii <eliz@gnu.org>
4123
4124 * xdisp.c (note_mouse_highlight): Initialize `area'. (Bug#9947)
4125
4126 * w32fns.c (unwind_create_frame): If needed, free the glyph
4127 matrices of the partially constructed frame. (Bug#9943)
4128 * xfns.c (unwind_create_frame): Likewise.
4129
4130 2011-11-01 Eli Zaretskii <eliz@gnu.org>
4131
4132 * xdisp.c (mouse_face_from_buffer_pos): Fix a typo in a comment.
4133 Don't stop backward scan on the continuation glyph, even though
4134 its CHARPOS is positive.
4135 (mouse_face_from_buffer_pos, note_mouse_highlight):
4136 Rename cover_string to disp_string.
4137
4138 2011-11-01 Martin Rudalics <rudalics@gmx.at>
4139
4140 * window.c (temp_output_buffer_show): Don't use
4141 Vtemp_buffer_show_specifiers.
4142 (Vtemp_buffer_show_specifiers): Remove unused variable.
4143
4144 2011-10-30 Eli Zaretskii <eliz@gnu.org>
4145
4146 * xdisp.c (try_cursor_movement): Make sure ROW isn't decremented
4147 past the beginning of the current glyph matrix.
4148
4149 2011-10-30 Adam Sjøgren <asjo@koldfront.dk> (tiny change)
4150
4151 * xterm.c: Include X11/Xproto.h if HAVE_GTK3.
4152 (x_error_handler): Ignore BadMatch for X_SetInputFocus for
4153 HAVE_GTK3 (Bug#9869).
4154
4155 * gtkutil.c (xg_win_to_widget, xg_event_is_for_menubar): Initialize
4156 type to GDK_NOTHING so valgrind does not complain (Bug#9901).
4157
4158 * xterm.h (x_display_info): Add Xatom_net_wm_state_hidden (Bug#9893).
4159
4160 * xterm.c: Declare x_handle_net_wm_state to return int.
4161 (handle_one_xevent): Check if we are iconified but don't have
4162 _NET_WM_STATE_HIDDEN. If do, treat as deiconify (Bug#9893).
4163 (get_current_wm_state): Return non-zero if not hidden,
4164 check for _NET_WM_STATE_HIDDEN (Bug#9893).
4165 (do_ewmh_fullscreen): Ignore return value from get_current_wm_state.
4166 (x_handle_net_wm_state): Return what get_current_wm_state returns.
4167 (x_term_init): Initialize dpyinfo->Xatom_net_wm_state_hidden.
4168
4169 2011-10-29 Paul Eggert <eggert@cs.ucla.edu>
4170
4171 * alloc.c (which_symbols): Declare EXTERNALLY_VISIBLE,
4172 so that this new function doesn't get optimized away by a
4173 whole-program optimizer. Make the 2nd arg EMACS_INT, not int.
4174
4175 2011-10-29 Andreas Schwab <schwab@linux-m68k.org>
4176
4177 * frame.h (MOUSE_HL_INFO): Remove excess parens.
4178
4179 2011-10-29 Eli Zaretskii <eliz@gnu.org>
4180
4181 Fix the `xbytecode' command.
4182 * .gdbinit (xprintbytestr): New command.
4183 (xwhichsymbols): Rename from `which'; all callers changed.
4184 (xbytecode): Print the byte-code string as well.
4185
4186 2011-10-29 Kim Storm <storm@cua.dk>
4187
4188 * alloc.c (which_symbols): New function.
4189
4190 2011-10-29 Andreas Schwab <schwab@linux-m68k.org>
4191
4192 * minibuf.c (read_minibuf_noninteractive): Allow reading empty
4193 line. (Bug#9903)
4194
4195 2011-10-29 Glenn Morris <rgm@gnu.org>
4196
4197 * process.c (wait_reading_process_output): Revert 2009-08-30 change.
4198 Not clear what it was for, and it causes various bugs. (Bug#9839)
4199
4200 2011-10-28 Eli Zaretskii <eliz@gnu.org>
4201
4202 * xdisp.c (note_mouse_highlight): Initialize `part', to avoid a
4203 possible random value that matches one of those tested as
4204 condition to clear the mouse face.
4205
4206 2011-10-28 Chong Yidong <cyd@gnu.org>
4207
4208 * xdisp.c (note_mouse_highlight): Fix use of uninitialized var.
4209
4210 2011-10-28 Dan Nicolaescu <dann@ics.uci.edu>
4211
4212 * window.c (make_window): Initialize phys_cursor_on_p.
4213
4214 2011-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
4215
4216 * lisp.h (struct Lisp_Symbol): Update comments.
4217
4218 2011-10-28 Juanma Barranquero <lekktu@gmail.com>
4219
4220 * w32font.c (w32_load_unicows_or_gdi32): Add missing return.
4221
4222 2011-10-28 Eli Zaretskii <eliz@gnu.org>
4223
4224 Fix Emacs on Windows 9X (bug#8562). Thanks to oslsachem
4225 <oslsachem@gmail.com> for helping to debug this.
4226
4227 * w32font.c (g_b_init_is_w9x, g_b_init_get_outline_metrics_w)
4228 (g_b_init_get_text_metrics_w, g_b_init_get_glyph_outline_w)
4229 (g_b_init_get_glyph_outline_w): New static variables.
4230 (GetOutlineTextMetricsW_Proc, GetTextMetricsW_Proc)
4231 (GetGlyphOutlineW_Proc): New typedefs.
4232 (w32_load_unicows_or_gdi32, get_outline_metrics_w)
4233 (get_text_metrics_w, get_glyph_outline_w, globals_of_w32font):
4234 New functions.
4235 (w32font_open_internal, compute_metrics):
4236 Call get_outline_metrics_w, get_text_metrics_w, and get_glyph_outline_w
4237 instead of calling the "wide" APIs directly.
4238
4239 * emacs.c (main) [HAVE_NTGUI]: Call globals_of_w32font.
4240
4241 * w32.h (syms_of_w32font): Add prototype.
4242
4243 2011-10-27 Juanma Barranquero <lekktu@gmail.com>
4244
4245 * window.c (Fframe_root_window, Fframe_first_window, Fwindow_end)
4246 (Fframe_selected_window, Ftemp_output_buffer_show, Fnext_window)
4247 (Fdelete_window_internal, Fwindow_parameters): Fix typos in docstrings.
4248 (Fmove_to_window_line): Doc fix.
4249
4250 2011-10-27 Chong Yidong <cyd@gnu.org>
4251
4252 * process.c (make_process): Set gnutls_state to NULL.
4253
4254 * gnutls.c (emacs_gnutls_deinit): Deinit the gnutls_state if it is
4255 non-NULL, regardless of GNUTLS_INITSTAGE.
4256 (Fgnutls_boot): Cleanups. Call emacs_gnutls_deinit if we signal
4257 an error. Set process slots as soon as we allocate them.
4258
4259 * gnutls.h (GNUTLS_LOG, GNUTLS_LOG2): Fix macros.
4260
4261 2011-10-27 Chong Yidong <cyd@gnu.org>
4262
4263 * gnutls.c (emacs_gnutls_deinit): New function.
4264 Deallocate credentials structures as well as calling gnutls_deinit.
4265 (Fgnutls_deinit, Fgnutls_boot): Use it.
4266
4267 * process.c (make_process): Initialize GnuTLS credentials to NULL.
4268 (deactivate_process): Call emacs_gnutls_deinit.
4269
4270 2011-10-27 Juanma Barranquero <lekktu@gmail.com>
4271
4272 * image.c (x_create_x_image_and_pixmap):
4273 * w32.c (sys_rename, w32_delayed_load):
4274 * w32font.c (fill_in_logfont):
4275 * w32reg.c (x_get_string_resource): Silence compiler warnings.
4276
4277 2011-10-26 Juanma Barranquero <lekktu@gmail.com>
4278
4279 * w32fns.c (w32_default_color_map): New function,
4280 extracted from Fw32_default_color_map.
4281 (Fw32_default_color_map, Fx_open_connection): Use it. (Bug#9785)
4282
4283 2011-10-25 Paul Eggert <eggert@cs.ucla.edu>
4284
4285 * dispextern.h (Fcontrolling_tty_p): New decl (Bug#6649 part 2).
4286
4287 2011-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
4288
4289 * keyboard.c (test_undefined): New function (bug#9751).
4290 (read_key_sequence): Use it to detect when a key is bound to `undefined'.
4291
4292 2011-10-25 Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
4293
4294 * sysdep.c (init_sys_modes): Fix the check for the controlling
4295 terminal (Bug#6649).
4296
4297 2011-10-20 Eli Zaretskii <eliz@gnu.org>
4298
4299 * dispextern.h (struct bidi_it): New member next_en_type.
4300
4301 * bidi.c (bidi_line_init): Initialize the next_en_type member.
4302 (bidi_resolve_explicit_1): When next_en_pos is valid for the
4303 current character, check also for next_en_type being WEAK_EN.
4304 (bidi_resolve_weak): Don't enter the expensive loop if the current
4305 position is before next_en_pos. Record the bidi type of the first
4306 non-ET, non-BN character we find, in addition to its position.
4307 (bidi_level_of_next_char): Invalidate next_en_type when
4308 next_en_pos is over-stepped.
4309
4310 2011-10-20 Paul Eggert <eggert@cs.ucla.edu>
4311
4312 Time zone name fixes for non-ASCII locales (Bug#641, Bug#9794)
4313 * editfns.c: Rewrite current-time-zone so that it invokes
4314 the equivalent of (format-time-string "%Z") to get the time zone name.
4315 This fixes a bug when the time zone name contains characters that
4316 need converting from the system time locale to Emacs internal format.
4317 This fixes a shortcoming that I introduced in my 1999-10-19 patch:
4318 that patch fixed format-time-string to do the conversion, but
4319 I forgot to fix current-time-zone.
4320 (format_time_string): New function, containing most of
4321 what Fformat_time_string used to contain.
4322 (Fformat_time_string): Rewrite in terms of format_time_string.
4323 This doesn't change this function's behavior.
4324 (current-time-zone): Rewrite to use format_time_string.
4325 This fixes the bug reported by Michael Schierl in
4326 <http://lists.gnu.org/archive/html/emacs-devel/2007-06/msg00334.html>.
4327 Jason Rumney's 2007-06-07 change worked around this bug, but
4328 didn't fix it.
4329 * systime.h (tzname, timezone): Remove no-longer-used declarations.
4330
4331 2011-10-19 Eli Zaretskii <eliz@gnu.org>
4332
4333 * xdisp.c (start_display): If the character at POS is displayed
4334 via a display vector, reset IT->current.dpvec_index to zero.
4335 (try_window_reusing_current_matrix): If a line ends in a display
4336 vector or the next line starts in a display vector, continue
4337 redrawing the window even though the character position of
4338 start_row was reached.
4339 (Bug#9771, part 2)
4340
4341 2011-10-18 Chong Yidong <cyd@gnu.org>
4342
4343 * xdisp.c (get_next_display_element): Handle U+2010 and U+2011
4344 with nobreak-char-display too.
4345
4346 2011-10-18 Eli Zaretskii <eliz@gnu.org>
4347
4348 Fix part 3 of bug#9771.
4349 * bidi.c (bidi_line_init): Initialize next_en_pos to zero, not -1.
4350 (bidi_resolve_neutral): Don't enter the expensive loop looking for
4351 non-neutral characters if the current character is a paragraph
4352 separator (a.k.a. Newline). This avoids running the same
4353 expensive loop twice, once when we consume the preceding newline
4354 and the other time when the line actually needs to be displayed.
4355 Avoid the loop when we see neutrals on the base embedding level
4356 following a character whose directionality is the same as the
4357 paragraph's. This avoids running the expensive loop when a line
4358 ends in a long sequence of neutrals, like control characters.
4359 Add assertion against STRONG_AL type. Slightly rearrange code
4360 that determines the type of a neutral given the first non-neutral
4361 that follows it.
4362 (bidi_level_of_next_char): Set next_en_pos to zero when
4363 invalidating its info.
4364
4365 2011-10-17 Eli Zaretskii <eliz@gnu.org>
4366
4367 * xdisp.c (push_display_prop): Determine whether to record string
4368 or buffer position by IT->string, not by IT->method. Allow
4369 GET_FROM_DISPLAY_VECTOR as IT->method on entry. (Bug#9771, part 4)
4370 (move_it_vertically_backward): Don't look for character position
4371 immediately after the newline when in a continuation line.
4372 (Bug#9771, part 1)
4373
4374 2011-10-15 Martin Rudalics <rudalics@gmx.at>
4375
4376 * window.c (coordinates_in_window): Rewrite and delabelize
4377 vertical border check. (Bug#5357) (Bug#9618)
4378
4379 2011-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
4380
4381 * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained
4382 errors in XSetWindowBorder (bug#9310).
4383
4384 2011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
4385
4386 * editfns.c (Fset_time_zone_rule): Replace free with xfree to
4387 avoid crash when xmalloc overrun checking is enabled.
4388
4389 2011-10-13 Eli Zaretskii <eliz@gnu.org>
4390
4391 * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
4392 itb.paragraph_dir to NEUTRAL_DIR. Fixes an occasional incorrect
4393 cursor motion with <left> and <right> arrow keys.
4394
4395 * bidi.c (bidi_init_it): Don't initialize paragraph_dir here, as
4396 some callers set that themselves.
4397
4398 2011-10-12 Eli Zaretskii <eliz@gnu.org>
4399
4400 * xdisp.c (find_row_edges): Handle the case where ROW comes from a
4401 display string and the previous row comes from the same string and
4402 is empty. (Bug#9739) (Bug#9738)
4403
4404 2011-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
4405
4406 * doc.c (get_doc_string): Encode file name (bug#9735).
4407
4408 2011-10-12 Eli Zaretskii <eliz@gnu.org>
4409
4410 * bidi.c (bidi_level_of_next_char):
4411 * xdisp.c (get_visually_first_element): Remove old incorrect
4412 comments regarding the Unicode Line Separator character.
4413
4414 * bidi.c (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.
4415
4416 2011-10-12 Dmitry Antipov <dmantipov@yandex.ru>
4417
4418 * alloc.c (Fgc_status): Do not access beyond zombies array
4419 boundary if nzombies > MAX_ZOMBIES.
4420 * alloc.c (dump_zombies): Add missing format specifier.
4421
4422 2011-10-12 Paul Eggert <eggert@cs.ucla.edu>
4423
4424 * xdisp.c (set_cursor_from_row): Simplify conditionals,
4425 to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
4426
4427 * lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
4428 Some packages use them to denote characters with modifiers.
4429
4430 2011-10-11 Andreas Schwab <schwab@linux-m68k.org>
4431
4432 * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR)
4433 (GCPRO5_VAR, GCPRO6_VAR, UNGCPRO_VAR): Add whitespace to avoid
4434 matching a pp-number. Rename parameter var to var1.
4435
4436 2011-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
4437
4438 * minibuf.c (Finternal_complete_buffer): Fix last change (bug#9709).
4439
4440 2011-10-08 Glenn Morris <rgm@gnu.org>
4441
4442 * callint.c (Fcall_interactively): Give a more explicit error for the
4443 'c' case with a non-character input. (Bug#8479)
4444
4445 2011-10-08 Eli Zaretskii <eliz@gnu.org>
4446
4447 * xdisp.c (hscroll_window_tree): Support hscroll in right-to-left
4448 lines.
4449 (set_cursor_from_row): Fix cursor positioning in mixed L2R+R2L
4450 lines that are hscrolled on the left.
4451
4452 * dispnew.c (buffer_posn_from_coords): Account for a possible
4453 presence of header-line. (Bug#4426)
4454
4455 2011-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
4456
4457 * buffer.c (syms_of_buffer) <enable-multibyte-characters>:
4458 Don't advertise functionality which we discourage or doesn't work.
4459
4460 2011-10-07 Paul Eggert <eggert@cs.ucla.edu>
4461
4462 * alloc.c (GC_LISP_OBJECT_ALIGNMENT): Use offsetof, not __alignof__
4463 or sizeof. __alignof__ gives the wrong answer on Fedora x86-64
4464 with GCC 4.6.1 when configured with CC='gcc -m32' --with-wide-int;
4465 this makes Emacs dump core during garbage collection on rare
4466 occasions. sizeof is obviously inferior to offsetof here, so
4467 stick with offsetof.
4468 (GC_POINTER_ALIGNMENT): New macro.
4469 (mark_memory): Omit 3rd (offset) arg; caller changed.
4470 Don't assume EMACS_INT alignment is the same as pointer alignment.
4471
4472 2011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
4473
4474 * keyboard.c (read_key_sequence_remapped): New var.
4475 (read_key_sequence): Compute remapping in the right buffer.
4476 (command_loop_1): Use read_key_sequence's remapping directly.
4477
4478 2011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
4479
4480 * dired.c (file_name_completion): Don't expand file name.
4481 (Ffile_name_completion, Ffile_name_all_completions): Expand file name
4482 before checking file name handler.
4483
4484 * minibuf.c (Finternal_complete_buffer): Only show internal buffers if
4485 they've been requested explicitly (bug#9591).
4486
4487 2011-10-01 Andreas Schwab <schwab@linux-m68k.org>
4488
4489 * keymap.c (Fsingle_key_description): Use make_specified_string
4490 instead of build_string to build string from push_key_description.
4491 (Bug#5193)
4492
4493 2011-09-30 Paul Eggert <eggert@cs.ucla.edu>
4494
4495 * buffer.h (struct buffer): Use time_t, not int, for a time stamp.
4496 This fixes a Y2038 bug on 64-bit hosts.
4497 * buffer.c (reset_buffer):
4498 * fileio.c (Fdo_auto_save, Fset_buffer_auto_saved)
4499 (Fclear_buffer_auto_save_failure):
4500 Use 0, not -1, to represent an unset failure time, since time_t
4501 might not be signed.
4502
4503 Remove dependency on glibc malloc internals.
4504 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
4505 Move back here from lisp.h, but with their new implementations.
4506 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
4507 (XMALLOC_OVERRUN_SIZE_SIZE): Move these new lisp.h macros here.
4508 * charset.c (charset_table_init): New static var.
4509 (syms_of_charset): Use it instead of xmalloc. This removes a
4510 dependency on glibc malloc internals. See Eli Zaretskii's comment in
4511 <http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00815.html>.
4512 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
4513 Move back to alloc.c.
4514 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
4515 (XMALLOC_OVERRUN_SIZE_SIZE): Move to alloc.c.
4516
4517 2011-09-30 Jan Djärv <jan.h.d@swipnet.se>
4518
4519 * nsterm.m (windowDidResize): Call x_set_window_size only when
4520 ns_in_resize is true. Otherwise set pixelwidth/height and
4521 call change_frame_size (Bug#9628).
4522
4523 2011-09-30 Paul Eggert <eggert@cs.ucla.edu>
4524
4525 Port --enable-checking=all to Fedora 14 x86-64.
4526 * charset.c (syms_of_charset): Also account for glibc malloc's
4527 internal overhead when calculating the initial malloc maximum.
4528
4529 Port --enable-checking=all to Fedora 14 x86.
4530 * alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
4531 Move to lisp.h.
4532 (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
4533 (overrun_check_realloc, overrun_check_free):
4534 Use XMALLOC_OVERRUN_SIZE_SIZE, not sizeof (size_t).
4535 That way, xmalloc returns a properly-aligned pointer even if
4536 XMALLOC_OVERRUN_CHECK is defined. The old debugging code happened
4537 to align OK on typical 64-bit hosts, but not on Fedora 14 x86.
4538 * charset.c (syms_of_charset): Take XMALLOC_OVERRUN_CHECK_OVERHEAD
4539 into account when calculating the initial malloc maximum.
4540 * lisp.h (XMALLOC_OVERRUN_CHECK_OVERHEAD, XMALLOC_OVERRUN_CHECK_SIZE):
4541 Move here from alloc.c, so that charset.c can use it too.
4542 Properly align; the old code wasn't right for common 32-bit hosts
4543 when configured with --enable-checking=all.
4544 (XMALLOC_BASE_ALIGNMENT, COMMON_MULTIPLE, XMALLOC_HEADER_ALIGNMENT)
4545 (XMALLOC_OVERRUN_SIZE_SIZE): New macros.
4546
4547 2011-09-29 Eli Zaretskii <eliz@gnu.org>
4548
4549 * sysdep.c (snprintf) [!EOVERFLOW]: If EOVERFLOW is not defined,
4550 use EDOM.
4551
4552 2011-09-28 Eli Zaretskii <eliz@gnu.org>
4553
4554 * xdisp.c (compute_display_string_end): If there's no display
4555 string at CHARPOS, return -1.
4556
4557 * bidi.c (bidi_fetch_char): When compute_display_string_end
4558 returns a negative value, treat the character as a normal
4559 character not covered by a display string. (Bug#9624)
4560
4561 2011-09-28 Juanma Barranquero <lekktu@gmail.com>
4562
4563 * lread.c (Fread_from_string): Fix typo in docstring.
4564
4565 2011-09-27 Eli Zaretskii <eliz@gnu.org>
4566
4567 * xdisp.c (handle_invisible_prop): If invisible text ends on a
4568 newline, reseat the iterator instead of bidi-iterating there one
4569 character at a time. (Bug#9610)
4570 (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past
4571 TO_CHARPOS if the bidi iterator is at base embedding level.
4572
4573 2011-09-27 Andreas Schwab <schwab@linux-m68k.org>
4574
4575 * lread.c (readevalloop): Use correct code for NBSP.
4576 (read1): Likewise. (Bug#9608)
4577
4578 2011-09-25 Michael Albinus <michael.albinus@gmx.de>
4579
4580 * dbusbind.c (Fdbus_register_signal): When service is not
4581 registered, use nil in Vdbus_registered_objects_table. (Bug#9581)
4582
4583 2011-09-25 Glenn Morris <rgm@gnu.org>
4584
4585 * buffer.c (truncate-lines): Doc fix.
4586
4587 2011-09-24 Chong Yidong <cyd@stupidchicken.com>
4588
4589 * window.c (Fwindow_prev_buffers, Fset_window_prev_buffers)
4590 (Fset_window_next_buffers): Doc fix.
4591
4592 2011-09-24 Glenn Morris <rgm@gnu.org>
4593
4594 * minibuf.c (read_minibuf): Disable line truncation. (Bug#5715)
4595
4596 2011-09-24 Paul Eggert <eggert@cs.ucla.edu>
4597
4598 Fix minor problems found by static checking.
4599 * xdisp.c (string_from_display_spec): Don't assume vecsize fits in int.
4600 * indent.c (Fvertical_motion): Fix == vs = typo.
4601
4602 2011-09-24 Eli Zaretskii <eliz@gnu.org>
4603
4604 * dispnew.c (syms_of_display) <redisplay-dont-pause>:
4605 Default value is now t. Doc fix.
4606
4607 * indent.c (Fvertical_motion): Compute and apply the overshoot
4608 logic when moving up, not only when moving down. Fix the
4609 confusing name and values of the it_overshoot_expected variable;
4610 logic changes accordingly. (Bug#9254) (Bug#9549)
4611
4612 * xdisp.c (pos_visible_p): Produce correct pixel coordinates when
4613 CHARPOS is covered by a display string which includes newlines.
4614 (move_it_vertically_backward): Avoid inflooping when START_CHARPOS
4615 is covered by a display string with embedded newlines.
4616
4617 2011-09-24 Michael Albinus <michael.albinus@gmx.de>
4618
4619 * dbusbind.c (Fdbus_register_signal): Add match rule to
4620 Vdbus_registered_objects_table. (Bug#9581)
4621 (Fdbus_register_method, Vdbus_registered_objects_table):
4622 Fix docstring.
4623
4624 2011-09-24 Jim Meyering <meyering@redhat.com>
4625
4626 do not ignore write error for any output size
4627 The previous change was incomplete.
4628 While it makes emacs --batch detect the vast majority of stdout
4629 write failures, errors were still ignored whenever the output size is
4630 k * (BUFSIZ+1) - 4. E.g., on a system with BUFSIZ of 4096,
4631 $ emacs --batch --eval '(print (format "%4093d" 0))' > /dev/full \
4632 && echo FAIL: ignored write error
4633 FAIL: ignored write error
4634 $ emacs --batch --eval '(print (format "%20481d" 0))' > /dev/full \
4635 && echo FAIL: ignored write error
4636 FAIL: ignored write error
4637 * emacs.c (Fkill_emacs): Also test ferror. (Bug#9574)
4638
4639 2011-09-23 Andreas Schwab <schwab@linux-m68k.org>
4640
4641 * emacs.c (Fkill_emacs): In noninteractive mode exit
4642 non-successfully if a write error occurred on stdout. (Bug#9574)
4643
4644 2011-09-21 Eli Zaretskii <eliz@gnu.org>
4645
4646 * xdisp.c (pop_it): Allow it->object that is a cons cell to pass
4647 the xassert test.
4648
4649 * dispextern.h (struct it): Update the comment documenting what
4650 can it->OBJECT be.
4651
4652 2011-09-20 Eli Zaretskii <eliz@gnu.org>
4653
4654 * xdisp.c (set_cursor_from_row): If the row ends in a newline from
4655 a display string, extend search for cursor position to end of row.
4656 (find_row_edges): If the row ends in a newline from a display
4657 string, increment its MATRIX_ROW_END_CHARPOS by one. (Bug#9549)
4658 Handle the case of a display string with multiple newlines.
4659 (Fcurrent_bidi_paragraph_direction): Fix search for previous
4660 non-empty line. Fixes confusing cursor motion with arrow keys at
4661 the beginning of a line that starts with whitespace.
4662
4663 2011-09-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
4664
4665 * lread.c (Fread_from_string): Document what FINAL-STRING-INDEX is
4666 (bug#9493).
4667
4668 2011-09-18 Chong Yidong <cyd@stupidchicken.com>
4669
4670 * xfns.c (Fx_create_frame): Handle the bitmapIcon resource as
4671 boolean (Bug#9154).
4672
4673 2011-09-18 Eli Zaretskii <eliz@gnu.org>
4674
4675 * xdisp.c (display_line): Record maximum and minimum buffer
4676 positions even if no glyphs were produced (e.g., by a zero-width
4677 stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
4678 buffer positions that will be removed from the glyph row because
4679 they don't fit.
4680 (produce_stretch_glyph): Fix a bug in :align-to on a TTY when the
4681 column is beyond frame width: don't subtract 1 "pixel" when
4682 computing width of the stretch.
4683 (reseat_at_next_visible_line_start): Undo the change made on
4684 2011-09-17 that saved paragraph information and restored it after
4685 the call to `reseat'. (Bug#9545)
4686
4687 2011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
4688
4689 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
4690 and turn window cursor on if cleared (Bug#9415).
4691
4692 2011-09-18 Andreas Schwab <schwab@linux-m68k.org>
4693
4694 * search.c (boyer_moore): Take unibyte characters from pattern
4695 literally. (Bug#9458)
4696
4697 2011-09-18 Eli Zaretskii <eliz@gnu.org>
4698
4699 * xdisp.c (reseat_at_next_visible_line_start): Fix last change.
4700
4701 2011-09-18 Paul Eggert <eggert@cs.ucla.edu>
4702
4703 Fix minor problem found by static checking.
4704 * xdisp.c (reseat_at_next_visible_line_start): Mark locals as
4705 initialized, to pacify gcc -Wuninitialized.
4706
4707 * fileio.c: Report proper errno when syscall falls.
4708 (Finsert_file_contents): Save and restore errno,
4709 so that report_file_error outputs the correct diagnostic.
4710 (Fwrite_region) [CLASH_DETECTION]: Likewise.
4711
4712 2011-09-18 Eli Zaretskii <eliz@gnu.org>
4713
4714 * .gdbinit (pgx): Fix references to fields of `struct glyph'.
4715
4716 2011-09-17 Eli Zaretskii <eliz@gnu.org>
4717
4718 * xdisp.c (produce_stretch_glyph): Another fix for changes made on
4719 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9530)
4720
4721 2011-09-17 Eli Zaretskii <eliz@gnu.org>
4722
4723 * xdisp.c (reseat_at_next_visible_line_start): Keep information
4724 about the current paragraph and restore it after the call to reseat.
4725
4726 * bidi.c (MAX_PARAGRAPH_SEARCH): New macro.
4727 (bidi_find_paragraph_start): Search back for paragraph beginning
4728 at most MAX_PARAGRAPH_SEARCH lines; if not found, return BEGV_BYTE.
4729 (bidi_move_to_visually_next): Only trigger paragraph-related
4730 computations when the last character is a newline or at EOB, not
4731 just any NEUTRAL_B. (Bug#9470)
4732
4733 * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
4734 truncated lines if point is covered by a display string. (Bug#9524)
4735
4736 2011-09-16 Paul Eggert <eggert@cs.ucla.edu>
4737
4738 * xselect.c: Relax test for outgoing X longs (Bug#9498).
4739 (cons_to_x_long): New function.
4740 (lisp_data_to_selection_data): Use it. Correct the test for
4741 short-versus-long data; it was negated. Break out of vector
4742 loop, for efficiency, when a long datum is discovered.
4743
4744 2011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
4745
4746 * eval.c (Fquote): Document its non-consing behavior (bug#9482).
4747
4748 2011-09-16 Eli Zaretskii <eliz@gnu.org>
4749
4750 * image.c (tiff_handler): Work around a bug in MinGW GCC 3.x (see
4751 GCC PR/17406) by declaring this function with external scope.
4752
4753 2011-09-15 Paul Eggert <eggert@cs.ucla.edu>
4754
4755 * editfns.c (Fformat): Fix bug in text-property fix (Bug#9514).
4756 Don't mishandle (length (format "%%")) and (format "%4000s%%" "").
4757
4758 2011-09-15 Andreas Schwab <schwab@linux-m68k.org>
4759
4760 * editfns.c (Fformat): Correctly handle text properties on "%%".
4761
4762 2011-09-15 Eli Zaretskii <eliz@gnu.org>
4763
4764 * xterm.c (x_draw_composite_glyph_string_foreground):
4765 * w32term.c (x_draw_composite_glyph_string_foreground):
4766 * term.c (encode_terminal_code):
4767 * composite.c (composition_update_it, get_composition_id):
4768 * xdisp.c (get_next_display_element)
4769 (fill_composite_glyph_string): Add comments about special meaning
4770 of TAB characters in a composition.
4771
4772 2011-09-15 Paul Eggert <eggert@cs.ucla.edu>
4773
4774 * editfns.c (Fformat): Fix off-by-1 bug for "%%b" (Bug#9514).
4775 This occurs when processing a multibyte format.
4776 Problem reported by Wolfgang Jenker.
4777
4778 2011-09-15 Johan Bockgård <bojohan@gnu.org>
4779
4780 * xdisp.c (try_cursor_movement): Only check for exact match if
4781 cursor hpos found by set_cursor_from_row is valid. (Bug#9495)
4782
4783 2011-09-14 Paul Eggert <eggert@cs.ucla.edu>
4784
4785 Remove unused external symbols.
4786 * dispextern.h (calc_pixel_width_or_height): Remove decl.
4787 * xdisp.c (calc_pixel_width_or_height): Now static.
4788 * doprnt.c (exprintf) [! (HAVE_X_WINDOWS && USE_X_TOOLKIT)]: Remove.
4789 * indent.c (check_display_width):
4790 * w32term.c: Fix comment to match code.
4791 * xterm.c, xterm.h (x_catching_errors): Remove.
4792
4793 2011-09-14 Paul Eggert <eggert@cs.ucla.edu>
4794
4795 * xselect.c: Use signed conversions more consistently (Bug#9498).
4796 (selection_data_to_lisp_data): Assume incoming selection data are
4797 signed integers, not unsigned. This is to be consistent with
4798 outgoing selection data, which was modified to use signed integers
4799 in as part of the fix to Bug#9196 in response to Jan D.'s comment
4800 in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9196#32> that X11
4801 expects long, not unsigned long.
4802
4803 2011-09-14 Eli Zaretskii <eliz@gnu.org>
4804
4805 * xdisp.c (try_window_reusing_current_matrix): Fix incorrect
4806 computation of loop end. Reported by Johan Bockgård
4807 <bojohan@gnu.org>.
4808
4809 2011-09-13 Chong Yidong <cyd@stupidchicken.com>
4810
4811 * frame.c (Fother_visible_frames_p): Function deleted.
4812
4813 2011-09-12 Eli Zaretskii <eliz@gnu.org>
4814
4815 * indent.c (compute_motion): Process display vector front to back
4816 rather than the other way around. (Bug#2496)
4817
4818 2011-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
4819
4820 * fileio.c (Finsert_file_contents): Don't assume beg_offset is 0.
4821
4822 2011-09-11 Chong Yidong <cyd@stupidchicken.com>
4823
4824 * minibuf.c (Fread_from_minibuffer): Doc fix.
4825
4826 2011-09-11 Eli Zaretskii <eliz@gnu.org>
4827
4828 * xdisp.c (produce_stretch_glyph): Fix a typo made in changes from
4829 2011-08-30T17:32:44Z!eliz@gnu.org. (Bug#9475)
4830
4831 2011-09-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
4832
4833 * fileio.c (Fvisited_file_modtime): Document `(-1 65535)' as a
4834 value for non-existent files.
4835
4836 2011-09-11 Eli Zaretskii <eliz@gnu.org>
4837
4838 * fileio.c (Finsert_file_contents): If the file cannot be opened,
4839 set its "size" to -1. This will set the modtime_size field of
4840 the corresponding buffer to -1, which is what
4841 verify-visited-file-modtime expects for files that do not exist.
4842 (Bug#9139)
4843
4844 2011-09-11 Paul Eggert <eggert@cs.ucla.edu>
4845
4846 * keymap.h (KEY_DESCRIPTION_SIZE, push_key_description): Move decls
4847 here ...
4848 * lisp.h: ... from here. push_key_description is no longer
4849 defined in keyboard.c, so its declaration should not be in
4850 lisp.h's "Defined in keyboard.c" section, and KEY_DESCRIPTION_SIZE
4851 logically belongs with push_key_description.
4852
4853 2011-09-10 Paul Eggert <eggert@cs.ucla.edu>
4854
4855 * buffer.h: Include <sys/types.h> instead of <time.h>.
4856 Otherwise, off_t wasn't defined on FreeBSD 9.0-BETA2 i386.
4857 Problem reported by Herbert J. Skuhra.
4858
4859 2011-09-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
4860
4861 * xml.c (parse_region): Make the parsing work for
4862 non-comment-starting XML files again (bug#9144).
4863
4864 2011-09-10 Andreas Schwab <schwab@linux-m68k.org>
4865
4866 * image.c (gif_load): Fix calculation of bottom and right corner.
4867 (Bug#9468)
4868
4869 2011-09-10 Eli Zaretskii <eliz@gnu.org>
4870
4871 * xdisp.c (MAX_DISP_SCAN): Decrease to 250. Prevents sluggish
4872 redisplay in small windows.
4873
4874 2011-09-09 Eli Zaretskii <eliz@gnu.org>
4875
4876 * frame.c (x_report_frame_params): Cast to avoid compiler warnings.
4877
4878 2011-09-08 Martin Rudalics <rudalics@gmx.at>
4879
4880 * window.c (Fset_window_prev_buffers, Fset_window_next_buffers):
4881 Operate on live windows only.
4882
4883 2011-09-08 Juanma Barranquero <lekktu@gmail.com>
4884
4885 * emacs.c (my_heap_start): #ifdef to avoid warnings when unused.
4886
4887 2011-09-07 Eli Zaretskii <eliz@gnu.org>
4888
4889 * xdisp.c (move_it_in_display_line_to): Call RESTORE_IT on ppos_it
4890 only under bidi iteration.
4891
4892 2011-09-07 Jan Djärv <jan.h.d@swipnet.se>
4893
4894 * gtkutil.c (xg_make_tool_item): Insert comment about eventbox.
4895
4896 2011-09-06 Paul Eggert <eggert@cs.ucla.edu>
4897
4898 isnan: Fix porting problem to Solaris 10 with bundled gcc.
4899 Without this fix, the command to link temacs failed due to an
4900 undefined symbol __builtin_isnan. This is because
4901 /usr/include/iso/math_c99.h #defines isnan(x) to
4902 __builtin_isnan(x), but the bundled gcc, which identifies itself
4903 as gcc 3.4.3 (csl-sol210-3_4-branch+sol_rpath), does not have
4904 a __builtin_isnan.
4905 * floatfns.c (isnan): #undef, and then #define to a clone of
4906 what's in data.c.
4907 (Fisnan): Always define, since it's always available now.
4908 (syms_of_floatfns): Always define isnan at the Lisp level.
4909
4910 2011-09-06 Paul Eggert <eggert@cs.ucla.edu>
4911
4912 * Makefile.in (gl-stamp): move-if-change now in build-aux (Bug#9169).
4913
4914 2011-09-06 Paul Eggert <eggert@cs.ucla.edu>
4915
4916 * fileio.c: Fix bugs with large file offsets (Bug#9428).
4917 The previous code assumed that file offsets (off_t values) fit in
4918 EMACS_INT variables, which is not true on typical 32-bit hosts.
4919 The code messed up by falsely reporting buffer overflow in cases
4920 such as (insert-file-contents "big" nil 1 2) into an empty buffer
4921 when "big" contains more than 2**29 bytes, even though this
4922 inserts just one byte and does not overflow the buffer.
4923 (Finsert_file_contents): Store file offsets as off_t
4924 values, not as EMACS_INT values. Check for overflow when
4925 converting between EMACS_INT and off_t. When checking for
4926 buffer overflow or for overlap, take the offsets into account.
4927 Don't use EMACS_INT for small values where int suffices.
4928 When checking for overlap, fix a typo: ZV was used where
4929 ZV_BYTE was intended.
4930 (Fwrite_region): Don't assume off_t fits into 'long'.
4931 * buffer.h (struct buffer.modtime_size): Now off_t, not EMACS_INT.
4932
4933 2011-09-05 Michael Albinus <michael.albinus@gmx.de>
4934
4935 * dbusbind.c (xd_signature_cat): Rename from signature_cat.
4936
4937 2011-09-04 Paul Eggert <eggert@cs.ucla.edu>
4938
4939 sprintf-related integer and memory overflow issues (Bug#9412).
4940
4941 * doprnt.c (doprnt): Support printing ptrdiff_t and intmax_t values.
4942 (esprintf, exprintf, evxprintf): New functions.
4943 * keyboard.c (command_loop_level): Now EMACS_INT, not int.
4944 (cmd_error): Kbd macro iterations count is now EMACS_INT, not int.
4945 (modify_event_symbol): Do not assume that the length of
4946 name_alist_or_stem is safe to alloca and fits in int.
4947 (Fexecute_extended_command): Likewise for function name and binding.
4948 (Frecursion_depth): Wrap around reliably on integer overflow.
4949 * keymap.c (push_key_description): First arg is now EMACS_INT, not int,
4950 since some callers pass EMACS_INT values.
4951 (Fsingle_key_description): Don't crash if symbol name contains more
4952 than MAX_ALLOCA bytes.
4953 * minibuf.c (minibuf_level): Now EMACS_INT, not int.
4954 (get_minibuffer): Arg is now EMACS_INT, not int.
4955 * lisp.h (get_minibuffer, push_key_description): Reflect API changes.
4956 (esprintf, exprintf, evxprintf): New decls.
4957 * window.h (command_loop_level, minibuf_level): Reflect API changes.
4958
4959 * dbusbind.c (signature_cat): New function.
4960 (xd_signature, Fdbus_register_signal):
4961 Do not overrun buffer; instead, report string overflow.
4962
4963 * dispnew.c (add_window_display_history): Don't overrun buffer.
4964 Truncate instead; this is OK since it's just a log.
4965
4966 * editfns.c (Fcurrent_time_zone): Don't overrun buffer
4967 even if the time zone offset is outlandishly large.
4968 Don't mishandle offset == INT_MIN.
4969
4970 * emacs.c (main) [NS_IMPL_COCOA]: Don't overrun buffer
4971 when creating daemon; the previous buffer-overflow check was incorrect.
4972
4973 * eval.c (verror): Simplify by rewriting in terms of evxprintf,
4974 which has the guts of the old verror function.
4975
4976 * filelock.c (lock_file_1, lock_file): Don't blindly alloca long name;
4977 use SAFE_ALLOCA instead. Use esprintf to avoid int-overflow issues.
4978
4979 * font.c: Include <float.h>, for DBL_MAX_10_EXP.
4980 (font_unparse_xlfd): Don't blindly alloca long strings.
4981 Don't assume XINT result fits in int, or that XFLOAT_DATA * 10
4982 fits in int, when using sprintf. Use single snprintf to count
4983 length of string rather than counting it via multiple sprintfs;
4984 that's simpler and more reliable.
4985 (font_unparse_fcname): Use it to avoid sprintf buffer overrun.
4986 (generate_otf_features) [0 && HAVE_LIBOTF]: Use esprintf, not
4987 sprintf, in case result does not fit in int.
4988
4989 * fontset.c (num_auto_fontsets): Now printmax_t, not int.
4990 (fontset_from_font): Print it.
4991
4992 * frame.c (tty_frame_count): Now printmax_t, not int.
4993 (make_terminal_frame, set_term_frame_name): Print it.
4994 (x_report_frame_params): In X, window IDs are unsigned long,
4995 not signed long, so print them as unsigned.
4996 (validate_x_resource_name): Check for implausibly long names,
4997 and don't assume name length fits in 'int'.
4998 (x_get_resource_string): Don't blindly alloca invocation name;
4999 use SAFE_ALLOCA. Use esprintf, not sprintf, in case result does
5000 not fit in int.
5001
5002 * gtkutil.c: Include <float.h>, for DBL_MAX_10_EXP.
5003 (xg_check_special_colors, xg_set_geometry):
5004 Make sprintf buffers a bit bigger, to avoid potential buffer overrun.
5005
5006 * lread.c (dir_warning): Don't blindly alloca buffer; use SAFE_ALLOCA.
5007 Use esprintf, not sprintf, in case result does not fit in int.
5008
5009 * macros.c (executing_kbd_macro_iterations): Now EMACS_INT, not int.
5010 (Fend_kbd_macro): Don't mishandle MOST_NEGATIVE_FIXNUM by treating
5011 it as a large positive number.
5012 (Fexecute_kbd_macro): Don't assume repeat count fits in int.
5013 * macros.h (executing_kbd_macro_iterations): Now EMACS_INT, not int.
5014
5015 * nsterm.m ((NSSize)windowWillResize): Use esprintf, not sprintf,
5016 in case result does not fit in int.
5017
5018 * print.c (float_to_string): Detect width overflow more reliably.
5019 (print_object): Make sprintf buffer a bit bigger, to avoid potential
5020 buffer overrun. Don't assume list length fits in 'int'. Treat
5021 print length of 0 as 0, not as infinity; to be consistent with other
5022 uses of print length in this function. Don't overflow print length
5023 index. Don't assume hash table size fits in 'long', or that
5024 vectorlike size fits in 'unsigned long'.
5025
5026 * process.c (make_process): Use printmax_t, not int, to format
5027 process-name gensyms.
5028
5029 * sysdep.c (snprintf) [! HAVE_SNPRINTF]: New function.
5030
5031 * term.c (produce_glyphless_glyph): Make sprintf buffer a bit bigger
5032 to avoid potential buffer overrun.
5033
5034 * xfaces.c (x_update_menu_appearance): Don't overrun buffer
5035 if X resource line is longer than 512 bytes.
5036
5037 * xfns.c (x_window): Make sprintf buffer a bit bigger
5038 to avoid potential buffer overrun.
5039
5040 * xterm.c (x_io_error_quitter): Don't overrun sprintf buffer.
5041
5042 * xterm.h (x_check_errors): Add ATTRIBUTE_FORMAT_PRINTF.
5043
5044 2011-09-04 Paul Eggert <eggert@cs.ucla.edu>
5045
5046 Integer overflow fixes for scrolling, etc.
5047 Without these, Emacs silently mishandles large integers sometimes.
5048 For example, "C-u 4294967297 M-x recenter" was treated as if
5049 it were "C-u 1 M-x recenter" on a typical 64-bit host.
5050
5051 * xdisp.c (try_window_id): Check Emacs fixnum range before
5052 converting to 'int'.
5053
5054 * window.c (window_scroll_line_based, Frecenter):
5055 Check that an Emacs fixnum is in range before assigning it to 'int'.
5056 (Frecenter, Fmove_to_window_line): Use EMACS_INT, not int, for
5057 values converted from Emacs fixnums.
5058 (Frecenter): Don't wrap around a line count if it is out of 'int'
5059 range; instead, treat it as an extreme value.
5060 (Fset_window_configuration, compare_window_configurations):
5061 Use ptrdiff_t, not int, for index that might exceed 2 GiB.
5062
5063 * search.c (Freplace_match): Use ptrdiff_t, not int, for indexes
5064 that can exceed INT_MAX. Check that EMACS_INT value is in range
5065 before assigning it to the (possibly-narrower) index.
5066 (match_limit): Don't assume that a fixnum can fit in 'int'.
5067
5068 * print.c (print_object): Use ptrdiff_t, not int, for index that can
5069 exceed INT_MAX.
5070
5071 * indent.c (position_indentation): Now takes ptrdiff_t, not int.
5072 (Fvertical_motion): Don't wrap around LINES values that don't fit
5073 in 'int'. Instead, treat them as extreme values. This is good
5074 enough for windows, which can't have more than INT_MAX lines anyway.
5075
5076 2011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
5077
5078 * Require libxml/parser.h to avoid compilation warning.
5079
5080 * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
5081
5082 * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
5083 since this reportedly can destroy thread storage.
5084
5085 2011-08-30 Chong Yidong <cyd@stupidchicken.com>
5086
5087 * syntax.c (find_defun_start): Update all cache variables if
5088 exiting early (Bug#9401).
5089
5090 2011-08-30 Eli Zaretskii <eliz@gnu.org>
5091
5092 * image.c (x_bitmap_pixmap): Cast to int to avoid compiler warnings.
5093
5094 * xdisp.c (produce_stretch_glyph): No longer static, compiled also
5095 when HAVE_WINDOW_SYSTEM is not defined. Support both GUI and TTY
5096 frames. Call tty_append_glyph in the TTY case. (Bug#9402)
5097
5098 * term.c (tty_append_glyph): New function.
5099 (produce_stretch_glyph): Static function and its prototype deleted.
5100
5101 * dispextern.h (produce_stretch_glyph, tty_append_glyph):
5102 Add prototypes.
5103
5104 2011-08-29 Paul Eggert <eggert@cs.ucla.edu>
5105
5106 * image.c (parse_image_spec): Check for nonnegative, not for positive,
5107 when checking :margin (Bug#9390).
5108 (IMAGE_NON_NEGATIVE_INTEGER_VALUE_OR_PAIR):
5109 Rename from IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,
5110 so that the name doesn't mislead. All uses changed.
5111
5112 2011-08-28 Johan Bockgård <bojohan@gnu.org>
5113
5114 * term.c (init_tty) [HAVE_GPM]: Move mouse settings after
5115 set_tty_hooks.
5116
5117 2011-08-27 Eli Zaretskii <eliz@gnu.org>
5118
5119 * xdisp.c (move_it_to): Don't bail out early when reaching
5120 position beyond to_charpos, if we are scanning backwards.
5121 (move_it_vertically_backward): When DY == 0, make sure we get to
5122 the first character in the line after the newline.
5123
5124 2011-08-27 Paul Eggert <eggert@cs.ucla.edu>
5125
5126 * ccl.c: Improve and simplify overflow checking (Bug#9196).
5127 (ccl_driver): Do not generate an out-of-range pointer.
5128 (Fccl_execute_on_string): Remove unnecessary check for
5129 integer overflow, noted by Stefan Monnier in
5130 <http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00979.html>.
5131 Remove a FIXME that didn't need fixing.
5132 Simplify the newly-introduced buffer reallocation code.
5133
5134 2011-08-27 Juanma Barranquero <lekktu@gmail.com>
5135
5136 * makefile.w32-in ($(BLD)/alloc.$(O)): Depend on lib/verify.h.
5137
5138 2011-08-26 Paul Eggert <eggert@cs.ucla.edu>
5139
5140 Integer and memory overflow issues (Bug#9196).
5141
5142 * doc.c (get_doc_string): Rework so that
5143 get_doc_string_buffer_size is the actual buffer size, rather than
5144 being 1 less than the actual buffer size; this makes xpalloc more
5145 convenient.
5146
5147 * image.c (x_allocate_bitmap_record, cache_image):
5148 * xselect.c (Fx_register_dnd_atom):
5149 Simplify previous changes by using xpalloc.
5150
5151 * buffer.c (overlay_str_len): Now ptrdiff_t, not EMACS_INT,
5152 since either will do and ptrdiff_t is convenient with xpalloc.
5153
5154 * charset.c (charset_table_size)
5155 (struct charset_sort_data.priority): Now ptrdiff_t.
5156 (charset_compare): Don't overflow if priorities differ greatly.
5157 (Fsort_charsets): Don't assume list length fits in int.
5158 Check for size-calculation overflow when allocating sort data.
5159 (syms_of_charset): Allocate an initial charset table that is
5160 just under 64 KiB, to avoid problems with glibc malloc and mmap.
5161
5162 * cmds.c (internal_self_insert): Check for size-calculation overflow.
5163
5164 * composite.h (struct composition.glyph_len): Now int, not unsigned.
5165 The actual value is always <= INT_MAX, and leaving it unsigned made
5166 overflow checking harder.
5167
5168 * dispextern.h (struct glyph_matrix.rows_allocated)
5169 (struct face_cache.size): Now ptrdiff_t, for convenience in use
5170 with xpalloc. The values are still always <= INT_MAX.
5171
5172 * indent.c (compute_motion): Adjust to region_cache_forward sig change.
5173
5174 * lisp.h (xnmalloc, xnrealloc, xpalloc): New decls.
5175 (SAFE_NALLOCA): New macro.
5176
5177 * region-cache.c (struct boundary.pos, find_cache_boundary)
5178 (move_cache_gap, insert_cache_boundary, delete_cache_boundaries)
5179 (set_cache_region, invalidate_region_cache)
5180 (revalidate_region_cache, know_region_cache, region_cache_forward)
5181 (region_cache_backward, pp_cache):
5182 Use ptrdiff_t, not EMACS_INT, since either will do. This is needed
5183 so that ptrdiff_t * can be passed to xpalloc.
5184 (struct region_cache): Similarly, for gap_start, gap_len, cache_len,
5185 beg_unchanged, end_unchanged, buffer_beg, buffer_end members.
5186 (pp_cache): Don't assume cache_len fits in int.
5187 * region-cache.h: Adjust extern decls to match.
5188
5189 * search.c (scan_buffer, Freplace_match): Use ptrdiff_t, not
5190 EMACS_INT, since either will do, for xpalloc.
5191
5192 * alloc.c: Include verify.h, and check that int fits in ptrdiff_t.
5193 (xnmalloc, xnrealloc, xpalloc): New functions.
5194
5195 * bidi.c (bidi_shelve_header_size): New constant.
5196 (bidi_cache_ensure_space, bidi_shelve_cache): Use it.
5197 (bidi_cache_ensure_space): Avoid integer overflow when allocating.
5198
5199 * bidi.c (bidi_cache_shrink):
5200 * buffer.c (overlays_at, overlays_in, record_overlay_string)
5201 (overlay_strings):
5202 Don't update size of array until after memory allocation succeeds,
5203 because xmalloc/xrealloc may not return.
5204 (struct sortstrlist.bytes): Now ptrdiff_t, as EMACS_INT doesn't help
5205 now that we have proper integer overflow checking.
5206 (record_overlay_string, overlay_strings): Catch overflows when
5207 calculating size of overlay_str_buf.
5208
5209 * callproc.c (Fcall_process): Check for size overflow when
5210 calculating size of args2.
5211 (child_setup): Avoid overflow by using size_t rather than ptrdiff_t.
5212 Normally we prefer signed values, but sticking with ptrdiff_t would
5213 require adding more-complicated checks.
5214
5215 * ccl.c (Fccl_execute_on_string): Check for memory overflow.
5216 Use ptrdiff_t rather than EMACS_INT where ptrdiff_t will do.
5217 Redo buffer-overflow calculations to avoid integer overflow.
5218 Add a FIXME comment where memory seems to be over-allocated.
5219
5220 * character.c (Fstring): Check for size-calculation overflow.
5221
5222 * coding.c (produce_chars): Redo buffer-overflow calculations to avoid
5223 unnecessary integer overflow. Check for size overflow.
5224 (encode_coding_object): Don't update size until xmalloc succeeds.
5225
5226 * composite.c (get_composition_id): Check for overflow in glyph
5227 length calculations.
5228
5229 Integer and memory overflow fixes for display code.
5230 * dispextern.h (struct glyph_pool.nglyphs): Now ptrdiff_t, not int.
5231 * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool)
5232 (scrolling_window): Check for overflow in size calculations.
5233 (line_draw_cost, realloc_glyph_pool, add_row_entry):
5234 Don't assume glyph table len fits in int.
5235 (struct row_entry.bucket, row_entry_pool_size, row_entry_idx)
5236 (row_table_size): Now ptrdiff_t, not int.
5237 (scrolling_window): Avoid overflow in size calculations.
5238 Don't update size until allocation succeeds.
5239 * fns.c (concat): Check for overflow in size calculations.
5240 (next_almost_prime): Verify NEXT_ALMOST_PRIME_LIMIT.
5241 * lisp.h (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
5242 (NEXT_ALMOST_PRIME_LIMIT): New constant.
5243
5244 * doc.c (get_doc_string_buffer_size): Now ptrdiff_t, not int.
5245 (get_doc_string): Check for size calculation overflow.
5246 Don't update size until allocation succeeds.
5247 (get_doc_string, Fsubstitute_command_keys): Use ptrdiff_t, not
5248 EMACS_INT, where ptrdiff_t will do.
5249 (Fsubstitute_command_keys): Check for string overflow.
5250
5251 * editfns.c (set_time_zone_rule): Don't assume environment length
5252 fits in int.
5253 (message_length): Now ptrdiff_t, not int.
5254 (Fmessage_box): Don't update size until allocation succeeds.
5255 Don't assume message length fits in int.
5256 (Fformat): Use ptrdiff_t, not EMACS_INT, where ptrdiff_t will do.
5257
5258 * emacs.c (main): Do not reallocate argv, since there is a null at
5259 the end that can be overwritten, and this way there's no need to
5260 worry about size-calculation overflow.
5261 (sort_args): Check for size-calculation overflow.
5262
5263 * eval.c (init_eval_once, grow_specpdl): Don't update size until
5264 alloc succeeds.
5265 (call_debugger, grow_specpdl): Redo calculations to avoid overflow.
5266
5267 * frame.c (set_menu_bar_lines, x_set_frame_parameters)
5268 (x_set_scroll_bar_width, x_figure_window_size):
5269 Check for integer overflow.
5270 (x_set_alpha): Do not assume XINT fits in int.
5271
5272 * frame.h (struct frame): Use int, not EMACS_INT, where int works.
5273 This is for the members text_lines, text_cols, total_lines, total_cols,
5274 where the system imposes an 'int' limit.
5275
5276 * fringe.c (Fdefine_fringe_bitmap):
5277 Don't update size until alloc works.
5278
5279 * ftfont.c (ftfont_get_open_type_spec, setup_otf_gstring)
5280 (ftfont_shape_by_flt): Check for integer overflow in size calculations.
5281
5282 * gtkutil.c (get_utf8_string, xg_store_widget_in_map):
5283 Check for size-calculation overflow.
5284 (get_utf8_string): Use ptrdiff_t, not size_t, where either will
5285 do, as we prefer signed integers.
5286 (id_to_widget.max_size, id_to_widget.used)
5287 (xg_store_widget_in_map, xg_remove_widget_from_map)
5288 (xg_get_widget_from_map, xg_get_scroll_id_for_window)
5289 (xg_remove_scroll_bar, xg_update_scrollbar_pos):
5290 Use and return ptrdiff_t, not int.
5291 (xg_gtk_scroll_destroy): Don't assume ptrdiff_t fits in int.
5292 * gtkutil.h: Change prototypes to match the above.
5293
5294 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): Remove; these
5295 are duplicate now that they've been promoted to lisp.h.
5296 (x_allocate_bitmap_record, x_alloc_image_color)
5297 (make_image_cache, cache_image, xpm_load):
5298 Don't update size until alloc is done.
5299 (xpm_load, lookup_rgb_color, lookup_pixel_color, x_to_xcolors)
5300 (x_detect_edges):
5301 Check for size calculation overflow.
5302 (ct_colors_allocated_max): New constant.
5303 (x_to_xcolors, x_detect_edges): Reorder multiplicands to avoid
5304 overflow.
5305
5306 * keyboard.c (read_char, menu_bar_items, tool_bar_items)
5307 (read_char_x_menu_prompt, read_char_minibuf_menu_width)
5308 (read_char_minibuf_menu_prompt, follow_key, read_key_sequence):
5309 Use ptrdiff_t, not int, to count maps.
5310 (read_char_minibuf_menu_prompt): Check for overflow in size
5311 calculations. Don't update size until allocation succeeds.
5312 Redo calculations to avoid overflow.
5313 * keyboard.h: Change prototypes to match the above.
5314
5315 * keymap.c (cmm_size, current_minor_maps): Use ptrdiff_t, not int,
5316 to count maps.
5317 (current_minor_maps): Check for size calculation overflow.
5318 * keymap.h: Change prototypes to match the above.
5319
5320 * lread.c (read1, init_obarray): Don't update size until alloc done.
5321
5322 * macros.c (Fstart_kbd_macro): Don't update size until alloc done.
5323 (store_kbd_macro_char): Reorder multiplicands to avoid overflow.
5324
5325 * nsterm.h (struct ns_color_table.size, struct ns_color_table.avail):
5326 Now ptrdiff_t, not int.
5327 * nsterm.m (ns_index_color): Use ptrdiff_t, not int, for table indexes.
5328 (ns_draw_fringe_bitmap): Rewrite to avoid overflow.
5329
5330 * process.c (Fnetwork_interface_list): Check for overflow
5331 in size calculation.
5332
5333 * region-cache.c (move_cache_gap): Check for size calculation overflow.
5334
5335 * scroll.c (do_line_insertion_deletion_costs): Check for size calc
5336 overflow. Don't bother calling xmalloc when xrealloc will do.
5337
5338 * search.c (Freplace_match): Check for size calculation overflow.
5339 (Fset_match_data): Don't assume list lengths fit in 'int'.
5340
5341 * sysdep.c (system_process_attributes): Use ptrdiff_t, not int,
5342 for command line length. Do not attempt to address one before the
5343 beginning of an array, as that's not portable.
5344
5345 * term.c (max_frame_lines): Remove; unused.
5346 (encode_terminal_src_size, encode_terminal_dst_size): Now ptrdiff_t,
5347 not int.
5348 (encode_terminal_code, calculate_costs): Check for size
5349 calculation overflow.
5350 (encode_terminal_code): Use ptrdiff_t, not int, to record glyph
5351 table lengths and related sizes. Don't update size until alloc
5352 done. Redo calculations to avoid overflow.
5353 (calculate_costs): Don't bother calling xmalloc when xrealloc will do.
5354
5355 * termcap.c (tgetent): Use ptrdiff_t, not int, to record results of
5356 subtracting pointers.
5357 (gobble_line): Check for overflow more carefully. Don't update size
5358 until alloc done.
5359
5360 * tparam.c (tparam1): Use ptrdiff_t, not int, for sizes.
5361 Don't update size until alloc done.
5362 Redo size calculations to avoid overflow.
5363 Check for size calculation overflow.
5364 (main) [DEBUG]: Fix typo in invoking tparam1.
5365
5366 * xdisp.c (store_mode_line_noprop_char, x_consider_frame_title):
5367 Use ptrdiff_t, not int, for sizes.
5368 (store_mode_line_noprop_char): Don't update size until alloc done.
5369
5370 * xfaces.c (lface_id_to_name_size, Finternal_make_lisp_face):
5371 Use ptrdiff_t, not int, for sizes.
5372 (Finternal_make_lisp_face, cache_face):
5373 Check for size calculation overflow.
5374 (cache_face): Treat size calculation overflows as if they were
5375 memory exhaustion (the usual treatment), rather than aborting.
5376
5377 * xfns.c (x_encode_text, x_set_name_internal)
5378 (Fx_change_window_property): Use ptrdiff_t, not int, to count
5379 sizes, since they can exceed INT_MAX in size. Check for size
5380 calculation overflow.
5381
5382 * xgselect.c (gfds_size): Now ptrdiff_t, for convenience with xpalloc.
5383 (xg_select): Check for size calculation overflow.
5384 Don't update size until alloc done.
5385
5386 * xrdb.c (get_environ_db): Don't assume path length fits in int,
5387 as sprintf is limited to int lengths.
5388
5389 * xselect.c (X_LONG_SIZE, X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX)
5390 (X_LONG_MIN): New macros.
5391 Use them to make the following changes clearer.
5392 (MAX_SELECTION_QUANTUM): Make the other bounds on this value clearer.
5393 This change doesn't affect the value now, but it may help remind
5394 future maintainers not to raise the value too much later.
5395 (SELECTION_QUANTUM): Remove, replacing with ...
5396 (selection_quantum): ... new function, which avoids overflow.
5397 All uses changed.
5398 (struct selection_data.size): Now ptrdiff_t, not int, to avoid
5399 assumption that selection length fits in 'int'.
5400 (x_reply_selection_request, x_handle_selection_request)
5401 (x_get_window_property, receive_incremental_selection)
5402 (x_get_window_property_as_lisp_data, selection_data_to_lisp_data)
5403 (lisp_data_to_selection_data, clean_local_selection_data):
5404 Use ptrdiff_t, not int, to record length of selection.
5405 (x_reply_selection_request, x_get_window_property)
5406 (receive_incremental_selection, x_property_data_to_lisp):
5407 Redo calculations to avoid overflow.
5408 (x_reply_selection_request): When sending hint, ceiling it at
5409 X_LONG_MAX rather than relying on wraparound overflow to send
5410 something.
5411 (x_get_window_property, receive_incremental_selection)
5412 (lisp_data_to_selection_data, x_property_data_to_lisp):
5413 Check for size-calculation overflow.
5414 (x_get_window_property, receive_incremental_selection)
5415 (lisp_data_to_selection_data, Fx_register_dnd_atom):
5416 Don't store size until memory allocation succeeds.
5417 (x_get_window_property): Plug memory leak on memory exhaustion.
5418 Don't double-block input; malloc is safe here. Don't assume 2**34
5419 - 4 fits in unsigned long. Add an xassert to check
5420 XGetWindowProperty overflow. Be more careful about overflow
5421 calculations, and distinguish size from memory overflow better.
5422 (receive_incremental_selection): When tracing, don't assume
5423 unsigned int is less than INT_MAX.
5424 (x_selection_data_to_lisp_data): Remove unnecessary (and in theory
5425 harmful) conversions of unsigned short to int.
5426 (lisp_data_to_selection_data): Don't assume that integers
5427 in the range -65535 through -1 fit in an X unsigned short.
5428 Don't assume that ULONG_MAX == X_ULONG_MAX. Don't store into
5429 result parameters unless successful. Rely on cons_to_unsigned
5430 to report problems with elements; the old code wasn't right anyway.
5431 (x_check_property_data): Check for int overflow; we cannot use
5432 a wider type due to X limits.
5433 (x_handle_dnd_message): Use unsigned int, to avoid int overflow.
5434
5435 * xsmfns.c (smc_save_yourself_CB): Check for size calc overflow.
5436
5437 * xterm.c (x_color_cells, x_send_scrollbar_event, handle_one_xevent)
5438 (x_term_init): Check for size calculation overflow.
5439 (x_color_cells): Don't store size until memory allocation succeeds.
5440 (handle_one_xevent): Use ptrdiff_t, not int, for byte counts.
5441 Don't assume alloca size is less than MAX_ALLOCA.
5442 (x_term_init): Don't assume length fits in int (sprintf is limited
5443 to int size).
5444
5445 Use ptrdiff_t for composition IDs.
5446 * character.c (lisp_string_width):
5447 * composite.c (composition_table_size, n_compositions)
5448 (get_composition_id, composition_gstring_from_id):
5449 * dispextern.h (struct glyph_string.cmp_id, struct composition_it.id):
5450 * xdisp.c (BUILD_COMPOSITE_GLYPH_STRING):
5451 * window.c (Frecenter):
5452 Use ptrdiff_t, not int, for composition IDs.
5453 * composite.c (get_composition_id): Check for integer overflow.
5454 * composite.h: Adjust prototypes to match the above changes.
5455
5456 Use ptrdiff_t for hash table indexes.
5457 * category.c (hash_get_category_set):
5458 * ccl.c (ccl_driver):
5459 * charset.h (struct charset.hash_index, CHECK_CHARSET_GET_ID):
5460 * coding.c (coding_system_charset_list, detect_coding_system):
5461 * coding.h (struct coding_system.id):
5462 * composite.c (get_composition_id, gstring_lookup_cache):
5463 * fns.c (hash_lookup, hash_put, Fgethash, Fputhash):
5464 * image.c (xpm_get_color_table_h):
5465 * lisp.h (hash_lookup, hash_put):
5466 * minibuf.c (Ftest_completion):
5467 Use ptrdiff_t for hash table indexes, not int (which is too
5468 narrow, on 64-bit hosts) or EMACS_INT (which is too wide, on
5469 32-bit --with-wide-int hosts).
5470
5471 * charset.c (Fdefine_charset_internal): Check for integer overflow.
5472 Add a FIXME comment about memory leaks.
5473 (syms_of_charset): Don't assume xmalloc returns.
5474
5475 Don't assume that stated character widths fit in int.
5476 * character.c (Fchar_width, c_string_width, lisp_string_width):
5477 * character.h (CHAR_WIDTH):
5478 * indent.c (MULTIBYTE_BYTES_WIDTH):
5479 Use sanitize_char_width to avoid undefined and/or bad behavior
5480 with outlandish widths.
5481 * character.h (sanitize_tab_width): Rename from sanitize_width,
5482 now that we have two such functions. All uses changed.
5483 (sanitize_char_width): New inline function.
5484
5485 Don't assume that tab-width fits in int.
5486 * character.h (sanitize_width): New inline function.
5487 (SANE_TAB_WIDTH): New macro.
5488 (ASCII_CHAR_WIDTH): Use it.
5489 * indent.c (sane_tab_width): Remove. All uses replaced by
5490 SANE_TAB_WIDTH (current_buffer).
5491 * xdisp.c (init_iterator): Use SANE_TAB_WIDTH.
5492
5493 * fileio.c: Integer overflow issues with file modes.
5494 (Fset_file_modes, auto_save_1): Don't assume EMACS_INT fits in int.
5495
5496 * charset.c (read_hex): New arg OVERFLOW. All uses changed.
5497 Remove unreachable code.
5498 (read_hex, load_charset_map_from_file): Check for integer overflow.
5499
5500 * xterm.c: Don't go over XClientMessageEvent limit.
5501 (scroll_bar_windows_size): Now ptrdiff_t, as we prefer signed.
5502 (x_send_scroll_bar_event): Likewise. Check that the size does not
5503 exceed limits imposed by XClientMessageEvent, as well as the usual
5504 ptrdiff_t and size_t limits.
5505
5506 * keyboard.c: Overflow, signedness and related fixes.
5507 (make_lispy_movement): Use same integer type in forward decl
5508 that is used in the definition.
5509 (read_key_sequence, keyremap_step):
5510 Change bufsize argument back to int, undoing my 2011-03-30 change.
5511 We prefer signed types, and int is wide enough here.
5512 (parse_tool_bar_item): Don't assume tool_bar_max_label_size is less
5513 than TYPE_MAXIMUM (EMACS_INT) / 2. Don't let the label size grow
5514 larger than STRING_BYTES_BOUND. Use ptrdiff_t for Emacs string
5515 length, not size_t. Use ptrdiff_t for index, not int.
5516 (keyremap_step, read_key_sequence): Redo bufsize check to avoid
5517 possibility of integer overflow.
5518
5519 Overflow, signedness and related fixes for images.
5520
5521 * dispextern.h (struct it.stack[0].u.image.image_id)
5522 (struct_it.image_id, struct image.id, struct image_cache.size)
5523 (struct image_cache.used, struct image_cache.ref_count):
5524 * gtkutil.c (update_frame_tool_bar):
5525 * image.c (x_reference_bitmap, Fimage_size, Fimage_mask_p)
5526 (Fimage_metadata, free_image_cache, clear_image_cache, lookup_image)
5527 (cache_image, mark_image_cache, x_kill_gs_process, Flookup_image):
5528 * nsmenu.m (update_frame_tool_bar):
5529 * xdisp.c (calc_pixel_width_or_height):
5530 * xfns.c (image_cache_refcount):
5531 Image IDs are now ptrdiff_t, not int, to avoid arbitrary limits
5532 on typical 64-bit hosts.
5533
5534 * image.c (RANGED_INTEGERP, TYPE_RANGED_INTEGERP): New macros.
5535 (x_bitmap_pixmap, x_create_x_image_and_pixmap):
5536 Omit unnecessary casts to int.
5537 (parse_image_spec): Check that integers fall into 'int' range
5538 when the callers expect that.
5539 (image_ascent): Redo ascent calculation to avoid int overflow.
5540 (clear_image_cache): Avoid overflow when sqrt (INT_MAX) < nimages.
5541 (lookup_image): Remove unnecessary tests.
5542 (xbm_image_p): Locals are now of int, not EMACS_INT,
5543 since parse_image_check makes sure they fit into int.
5544 (png_load, gif_load, svg_load_image):
5545 Prefer int to unsigned where either will do.
5546 (tiff_handler): New function, combining the cores of the
5547 old tiff_error_handler and tiff_warning_handler.
5548 This function is rewritten to use vsnprintf and thereby avoid
5549 stack buffer overflows. It uses only the features of vsnprintf
5550 that are common to both POSIX and native Microsoft.
5551 (tiff_error_handler, tiff_warning_handler): Use it.
5552 (tiff_load, gif_load, imagemagick_load_image):
5553 Don't assume :index value fits in 'int'.
5554 (gif_load): Omit unnecessary cast to double, and avoid double-rounding.
5555 (imagemagick_load_image): Check that crop parameters fit into
5556 the integer types that MagickCropImage accepts. Don't assume
5557 Vimagemagick_render_type has a nonnegative value. Don't assume
5558 size_t fits in 'long'.
5559 (gs_load): Use printmax_t to print the widest integers possible.
5560 Check for integer overflow when computing image height and width.
5561
5562 2011-08-26 Eli Zaretskii <eliz@gnu.org>
5563
5564 * xdisp.c (redisplay_window): Don't force window start if point
5565 will be invisible in the resulting window. (Bug#9324)
5566
5567 2011-08-25 Eli Zaretskii <eliz@gnu.org>
5568
5569 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
5570 the display spec is of the form `(space ...)'.
5571 (handle_display_spec): Return the value returned by
5572 handle_single_display_spec, not just 1 or zero.
5573 (handle_single_display_spec): If the display spec is of the form
5574 `(space ...)', and specifies display in the text area, return 2
5575 rather than 1.
5576 (try_cursor_movement): Check for the need to scroll more
5577 accurately, and prefer exact match for point under bidi.
5578 Don't advance `row' beyond the last row of the window.
5579
5580 * dispextern.h (struct bidi_it): Rename the disp_prop_p member
5581 into disp_prop; all users changed.
5582
5583 * bidi.c (bidi_fetch_char): If compute_display_string_pos returns
5584 DISP_PROP = 2, substitute the u+2029 PARAGRAPH SEPARATOR character
5585 for the text covered by the display property.
5586
5587 2011-08-25 Chong Yidong <cyd@stupidchicken.com>
5588
5589 * buffer.c (Fbury_buffer_internal): Rename from Funrecord_buffer.
5590 Change return value to nil.
5591 (Frecord_buffer): Delete unused function.
5592
5593 2011-08-24 Eli Zaretskii <eliz@gnu.org>
5594
5595 * xdisp.c (Fcurrent_bidi_paragraph_direction): For unibyte
5596 buffers, return left-to-right.
5597 (set_cursor_from_row): Consider candidate row a win if its glyph
5598 represents a newline and point is on that newline. Fixes cursor
5599 positioning on the newline at EOL of R2L text within L2R
5600 paragraph, and vice versa.
5601 (try_cursor_movement): Check continued rows, in addition to
5602 continuation rows. Fixes unwarranted scroll when point enters a
5603 continued line of R2L text within an L2R paragraph, or vice versa.
5604 (cursor_row_p): Consider the case of point being equal to
5605 MATRIX_ROW_END_CHARPOS. Prevents cursor being stuck when moving
5606 from the end of a short line to the beginning of a continued line
5607 of R2L text within L2R paragraph.
5608 (RECORD_MAX_MIN_POS): For max_pos, use IT_CHARPOS even for
5609 composed characters.
5610
5611 * bidi.c (bidi_check_type): Use xassert.
5612 (bidi_cache_iterator_state): Update the disp_pos and disp_prop_p
5613 members.
5614
5615 2011-08-23 Eli Zaretskii <eliz@gnu.org>
5616
5617 * bidi.c (bidi_get_type): Abort if we get zero as the bidi type of
5618 a character.
5619
5620 2011-08-23 Chong Yidong <cyd@stupidchicken.com>
5621
5622 * nsfont.m (ns_otf_to_script): Fix typo.
5623
5624 2011-08-22 Kenichi Handa <handa@m17n.org>
5625
5626 * chartab.c (Fset_char_table_extra_slot): Do not inhibit setting a
5627 extra slot even if the purpose is char-code-property-table.
5628
5629 2011-08-23 Eli Zaretskii <eliz@gnu.org>
5630
5631 * xdisp.c (redisplay_window): When computing centering_position,
5632 account for the height of the header line. (Bug#8874)
5633
5634 * dispnew.c (buffer_posn_from_coords): Use buf_charpos_to_bytepos
5635 instead of CHAR_TO_BYTE. Fixes a crash when a completion
5636 candidate is selected by the mouse, and that candidate has a
5637 composed character under the mouse.
5638
5639 * xdisp.c (x_produce_glyphs): Set it->nglyphs to 1. Fixes pixel
5640 coordinates reported by pos-visible-in-window-p for a composed
5641 character in column zero.
5642
5643 2011-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
5644
5645 * cmds.c (Fself_insert_command): Mention post-self-insert-hook.
5646
5647 2011-08-22 Eli Zaretskii <eliz@gnu.org>
5648
5649 * xdisp.c (BUFFER_POS_REACHED_P): If this is a composition,
5650 consider it a hit if to_charpos is anywhere in the range of the
5651 composed buffer positions.
5652
5653 2011-08-22 Chong Yidong <cyd@stupidchicken.com>
5654
5655 * image.c (gif_load): Don't assume that each subimage has the same
5656 dimensions as the base image. Handle disposal method that is
5657 "undefined" by the gif spec (Bug#9335).
5658
5659 2011-08-20 Chong Yidong <cyd@stupidchicken.com>
5660
5661 * eval.c (Fsignal): Handle `debug' symbol in error handler (Bug#9329).
5662 (Fcondition_case): Document `debug' symbol in error handler.
5663
5664 2011-08-19 Eli Zaretskii <eliz@gnu.org>
5665
5666 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
5667 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
5668 from an Org mode buffer to a Speedbar frame.
5669
5670 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
5671 a composition, take its buffer position from IT->cmp_it.charpos.
5672 Fixes cursor positioning at the beginning of a line that begins
5673 with a composed character.
5674
5675 2011-08-18 Eli Zaretskii <eliz@gnu.org>
5676
5677 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
5678 character bidirectional type, use STRONG_L instead. Fixes crashes
5679 in a buffer produced by `describe-categories'.
5680
5681 * dispextern.h (struct bidi_it): Move disp_pos and disp_prop_p
5682 members before the level stack, so they would be saved and
5683 restored when copying iterator state. Fixes incorrect reordering
5684 around TABs covered by display properties.
5685
5686 2011-08-18 Andreas Schwab <schwab@linux-m68k.org>
5687
5688 * process.c (Fnetwork_interface_list): Correctly determine buffer size.
5689
5690 2011-08-17 Chong Yidong <cyd@stupidchicken.com>
5691
5692 * eval.c (internal_condition_case, internal_condition_case_1)
5693 (internal_condition_case_2, internal_condition_case_n):
5694 Remove unnecessary aborts (Bug#9081).
5695
5696 2011-08-17 Eli Zaretskii <eliz@gnu.org>
5697
5698 * lread.c (Fload) [DOS_NT]: If `openp' returns -2, but the file
5699 has no `load' handler, try opening the file locally. (Bug#9311)
5700
5701 2011-08-16 Ken Brown <kbrown@cornell.edu>
5702
5703 * gmalloc.c: Expand comment.
5704
5705 2011-08-16 Eli Zaretskii <eliz@gnu.org>
5706
5707 * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
5708 if it fails the cursor_row_p test. Fixes cursor positioning at ZV.
5709
5710 2011-08-16 Ken Brown <kbrown@cornell.edu>
5711
5712 Fix memory allocation problems in Cygwin build (Bug#9273).
5713
5714 * unexcw.c ( __malloc_initialized): Declare external variable.
5715 (fixup_executable): Force the dumped emacs to reinitialize malloc.
5716
5717 * gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo):
5718 New variables.
5719 (malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
5720 dumped emacs.
5721 (_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
5722 in the static heap.
5723 [CYGWIN] (special_realloc): New function.
5724 (_realloc_internal_nolock) [CYGWIN]: Use the new function on
5725 requests to realloc storage in the static heap.
5726
5727 2011-08-15 Paul Eggert <eggert@cs.ucla.edu>
5728
5729 * bidi.c (bidi_initialize): Remove unused local.
5730
5731 2011-08-15 Eli Zaretskii <eliz@gnu.org>
5732
5733 * bidimirror.h:
5734 * biditype.h: Remove file.
5735 * makefile.w32-in ($(BLD)/bidi.$(O)):
5736 * deps.mk (bidi.o): Remove biditype.h and bidimirror.h.
5737
5738 * dispextern.h: Fix a typo in the comment to bidi_type_t.
5739
5740 * chartab.c: Improve commentary for the uniprop_table API.
5741
5742 * bidi.c (bidi_paragraph_init): Support zero value of
5743 bidi_ignore_explicit_marks_for_paragraph_level.
5744 (bidi_initialize): Use uniprop_table instead of including
5745 biditype.h and bidimirror.h.
5746
5747 * xdisp.c (move_it_in_display_line_to): Don't reset pixel
5748 coordinates of the iterator when restoring from ppos_it.
5749 (Bug#9296)
5750
5751 2011-08-14 Kenichi Handa <handa@m17n.org>
5752
5753 * process.c (create_process): Call setup_process_coding_systems
5754 after the pid of the process is set to -1 (Bug#8162).
5755
5756 2011-08-14 Eli Zaretskii <eliz@gnu.org>
5757
5758 * xdisp.c (move_it_in_display_line_to): Don't invoke
5759 IT_RESET_X_ASCENT_DESCENT when iterator position was restored from
5760 ppos_it. Fixes vertical cursor motion when line beginning is
5761 covered by an image. (Bug#9296)
5762
5763 2011-08-14 Jan Djärv <jan.h.d@swipnet.se>
5764
5765 * nsterm.h (ns_run_ascript): Declare.
5766 (NSAPP_DATA2_RUNASSCRIPT): Define.
5767
5768 * nsfns.m (as_script, as_result, as_status): New static variables.
5769 (ns_run_ascript): New function.
5770 (Fns_do_applescript): Set variables as_*. Make an NSApplicationDefined
5771 event with data2 set to NSAPP_DATA2_RUNASSCRIPT, post it and then start
5772 the event loop. Get status from as_status (Bug#7276).
5773
5774 * nsterm.m (sendEvent): If event is NSApplicationDefined and
5775 data2 is NSAPP_DATA2_RUNASSCRIPT, call ns_run_ascript and then exit
5776 the event loop (Bug#7276).
5777
5778 2011-08-14 Andreas Schwab <schwab@linux-m68k.org>
5779
5780 * gnutls.c (QCgnutls_bootprop_priority)
5781 (QCgnutls_bootprop_trustfiles, QCgnutls_bootprop_keylist)
5782 (QCgnutls_bootprop_crlfiles, QCgnutls_bootprop_callbacks)
5783 (QCgnutls_bootprop_loglevel, QCgnutls_bootprop_hostname)
5784 (QCgnutls_bootprop_min_prime_bits, QCgnutls_bootprop_verify_flags)
5785 (QCgnutls_bootprop_verify_hostname_error)
5786 (QCgnutls_bootprop_callbacks_verify): Rename from
5787 Qgnutls_bootprop_..., all uses changed.
5788
5789 * xfaces.c (QCignore_defface): Rename from Qignore_defface, all
5790 uses changed.
5791
5792 2011-08-14 Paul Eggert <eggert@cs.ucla.edu>
5793
5794 * xfaces.c (Qframe_set_background_mode): Now static.
5795 * dispextern.h (Qframe_set_background_mode): Remove decl.
5796
5797 * process.c (Fnetwork_interface_info): Declare local only if needed.
5798
5799 2011-08-13 Jan Djärv <jan.h.d@swipnet.se>
5800
5801 * process.c: Include ifaddrs.h and net/if_dl.h if available (Bug#8477).
5802 (Fnetwork_interface_list): Allocate in increments of bytes instead
5803 of sizeof (struct ifreq). Iterate over ifconf.ifc_req by counting
5804 bytes (Bug#8477). Count bytes correctly when ifr_addr is a struct
5805 sockaddr.
5806 (struct ifflag_def): notrailers is smart on OSX.
5807 (Fnetwork_interface_info): Handle case when ifr_flags is negative.
5808 Get hardware address with getifaddrs if available.
5809
5810 2011-08-12 Eli Zaretskii <eliz@gnu.org>
5811
5812 * xdisp.c (iterate_out_of_display_property): xassert that
5813 IT->position is set to within IT->object's boundaries. Break from
5814 the loop as soon as EOB is reached; avoids infloops in redisplay
5815 when IT->position is set up wrongly due to some bug.
5816 Set IT->current to match the bidi iterator unconditionally.
5817 (push_display_prop): Allow GET_FROM_STRING as IT->method on
5818 entry. Force push_it to save on the stack the current
5819 buffer/string position, to be restored by pop_it. Fix flags in
5820 the iterator structure wrt the object coming from a display
5821 property, as `line-prefix' and `wrap-prefix' are not ``replacing''
5822 properties. (Bug#9284)
5823
5824 2011-08-09 Andreas Schwab <schwab@linux-m68k.org>
5825
5826 * fontset.c (fontset_get_font_group): Add proper type checks.
5827 (Bug#9172)
5828
5829 2011-08-09 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
5830
5831 * unexmacosx.c (print_load_command_name): Add cases LC_FUNCTION_STARTS
5832 and LC_VERSION_MIN_MACOSX.
5833 (copy_linkedit_data) [LC_FUNCTION_STARTS]: New function.
5834 (dump_it) [LC_FUNCTION_STARTS]: Use it.
5835
5836 2011-08-08 Eli Zaretskii <eliz@gnu.org>
5837
5838 * xdisp.c (forward_to_next_line_start): Allow to use the
5839 no-display-properties-and-no-overlays under bidi display.
5840 Set disp_pos in the bidi iterator to avoid searches for display
5841 properties and overlays.
5842
5843 2011-08-08 Chong Yidong <cyd@stupidchicken.com>
5844
5845 * editfns.c (Fset_time_zone_rule): Document relationship with the
5846 setenv function.
5847
5848 * ftfont.c (ftfont_pattern_entity): Copy the extras argument to
5849 the font entity extracted from the cache (Bug#8109).
5850
5851 2011-08-07 Chong Yidong <cyd@stupidchicken.com>
5852
5853 * composite.c (autocmp_chars): Don't reset point. That is done by
5854 restore_point_unwind (Bug#5984).
5855
5856 2011-08-07 Juri Linkov <juri@jurta.org>
5857
5858 * editfns.c (Fformat_time_string): Doc fix, add tag `usage:'
5859 to show the arg `TIME' instead of `TIMEVAL'.
5860
5861 2011-08-06 Eli Zaretskii <eliz@gnu.org>
5862
5863 * xdisp.c (set_cursor_from_row): Fix cursor positioning when a
5864 display property strides EOL and includes a newline, as in
5865 longlines-mode. (Bug#9254)
5866 (move_it_in_display_line_to): Fix vertical-motion in a buffer with
5867 word-wrap under bidirectional display. (Bug#9224)
5868
5869 * bidi.c (bidi_unshelve_cache): Don't reset the cache if JUST_FREE
5870 is non-zero, even if the data buffer is NULL. Fixes a crash in
5871 vertical-motion with longlines-mode. (Bug#9254)
5872
5873 2011-08-05 Eli Zaretskii <eliz@gnu.org>
5874
5875 * bidi.c <bidi_cache_total_alloc>: Now static.
5876 (bidi_initialize): Initialize bidi_cache_total_alloc.
5877
5878 * xdisp.c (display_line): Release buffer allocated for shelved bidi
5879 cache. (Bug#9221)
5880
5881 * bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
5882 amount allocated this far in `bidi_cache_total_alloc'.
5883 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
5884 non-zero, only free the data buffer without restoring the cache
5885 contents. All callers changed.
5886
5887 * dispextern.h (bidi_unshelve_cache): Update prototype.
5888
5889 * xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
5890 (move_it_in_display_line, move_it_to)
5891 (move_it_vertically_backward, move_it_by_lines): Replace the call
5892 to xfree to an equivalent call to bidi_unshelve_cache.
5893 (move_it_in_display_line_to): Fix logic of returning
5894 MOVE_POS_MATCH_OR_ZV in the bidi case. (Bug#9224)
5895
5896 2011-08-05 Eli Zaretskii <eliz@gnu.org>
5897
5898 * xdisp.c (set_cursor_from_row): Prefer the candidate glyph that
5899 came from a string character with a `cursor' property. (Bug#9229)
5900
5901 2011-08-04 Jan Djärv <jan.h.d@swipnet.se>
5902
5903 * Makefile.in (LIB_PTHREAD): New variable.
5904 (LIBES): Add LIB_PTHREAD (Bug#9216).
5905
5906 * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
5907 Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
5908
5909 2011-08-04 Andreas Schwab <schwab@linux-m68k.org>
5910
5911 * regex.c (re_iswctype): Remove some redundant boolean conversions.
5912
5913 2011-08-04 Jan Djärv <jan.h.d@swipnet.se>
5914
5915 * xterm.c (x_find_topmost_parent): New function.
5916 (x_set_frame_alpha): Find topmost parent window with
5917 x_find_topmost_parent and set the property there also (bug#9181).
5918 (handle_one_xevent): Call x_set_frame_alpha on ReparentNotify.
5919
5920 2011-08-04 Paul Eggert <eggert@cs.ucla.edu>
5921
5922 * callproc.c (Fcall_process): Avoid vfork clobbering
5923 the local vars buffer, coding_systems, current_dir.
5924
5925 2011-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
5926
5927 * keymap.c (Fmake_composed_keymap): Move to subr.el.
5928
5929 2011-08-03 Paul Eggert <eggert@cs.ucla.edu>
5930
5931 * fontset.c (dump_fontset) [FONTSET_DEBUG]: Declare EXTERNALLY_VISIBLE
5932 so that it is not optimized away.
5933
5934 * xdisp.c (compute_display_string_pos): Remove unused local.
5935
5936 2011-08-02 Eli Zaretskii <eliz@gnu.org>
5937
5938 Fix slow cursor motion and scrolling in large buffers with
5939 selective display, like Org Mode buffers. (Bug#9218)
5940
5941 * dispextern.h (struct bidi_it): New member disp_prop_p.
5942
5943 * xdisp.c: Remove one-slot cache of display string positions.
5944 (compute_display_string_pos): Accept an additional argument
5945 DISP_PROP_P; callers changed. Scan at most 5K characters forward
5946 for a display string or property. If found, set DISP_PROP_P
5947 non-zero.
5948
5949 * bidi.c (bidi_fetch_char): Accept an additional argument
5950 DISP_PROP_P, and pass it to compute_display_string_pos.
5951 Only handle text covered by a display string if DISP_PROP_P is returned
5952 non-zero. All callers of bidi_fetch_char changed.
5953
5954 2011-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
5955
5956 * keymap.c (Fdefine_key): Fix Lisp_Object/int mixup; apply some CSE.
5957
5958 2010-12-03 Don March <don@ohspite.net>
5959
5960 * keymap.c (Fdefine_key): Fix non-prefix key error message when
5961 last character M-[char] is translated to ESC [char] (bug#7541).
5962
5963 2011-08-02 Kenichi Handa <handa@m17n.org>
5964
5965 * lisp.h (uniprop_table): Extern it.
5966
5967 * chartab.c (uniprop_table): Make it non-static.
5968
5969 2011-08-01 Eli Zaretskii <eliz@gnu.org>
5970
5971 * xdisp.c (forward_to_next_line_start): Accept additional argument
5972 BIDI_IT_PREV, and store into it the state of the bidi iterator had
5973 on the newline.
5974 (reseat_at_next_visible_line_start): Use the bidi iterator state
5975 returned by forward_to_next_line_start to restore the state of
5976 it->bidi_it after backing up to previous newline. (Bug#9212)
5977
5978 2011-07-30 Andreas Schwab <schwab@linux-m68k.org>
5979
5980 * regex.c (re_comp): Protoize.
5981 (re_exec): Fix return type.
5982 (regexec): Fix type of `ret'. (Bug#9203)
5983
5984 2011-07-28 Paul Eggert <eggert@cs.ucla.edu>
5985
5986 * image.c (check_image_size): Use 1024x1024 if unknown frame (Bug#9189).
5987 This is needed if max-image-size is a floating-point number.
5988
5989 2011-07-28 Andreas Schwab <schwab@linux-m68k.org>
5990
5991 * print.c (print_object): Print empty symbol as ##.
5992
5993 * lread.c (read1): Read ## as empty symbol.
5994
5995 2011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
5996
5997 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
5998 setting frame foreground color (Bug#9175).
5999 (x_set_background_color): Likewise.
6000
6001 * nsmenu.m (-setText): Size tooltip dimensions precisely to
6002 contents (Bug#9176).
6003 (EmacsTooltip -init): Remove bezels and add shadows to
6004 tooltip windows.
6005
6006 * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
6007 or scroll bar (Bug#8470).
6008
6009 * nsfont.m (nsfont_open): Remove assignment to voffset and
6010 unnecessary vars hshink, expand, hd, full_height, min_height.
6011 (nsfont_draw): Use s->ybase as baseline for glyph drawing (Bug#8913).
6012
6013 * nsterm.h (nsfont_info): Remove voffset field.
6014
6015 2011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
6016
6017 Implement strike-through and overline on NextStep (Bug#8863).
6018
6019 * nsfont.m (nsfont_open): Use underline position provided by font,
6020 instead of hard-coded value of 2.
6021 (nsfont_draw): Call ns_draw_text_decoration instead.
6022
6023 * nsterm.h: Add declaration for ns_draw_text_decoration.
6024
6025 * nsterm.m (ns_draw_text_decoration): New function for drawing
6026 underline, overline, and strike-through.
6027 (ns_dumpglyphs_image, ns_dumpglyphs_stretch): Add call to
6028 ns_draw_text_decoration. Change treatment of cursor drawing to
6029 accommodate underlining, etc.
6030
6031 2011-07-28 Eli Zaretskii <eliz@gnu.org>
6032
6033 * buffer.c (init_buffer_once): Set bidi-display-reordering to t by
6034 default.
6035
6036 2011-07-28 Paul Eggert <eggert@cs.ucla.edu>
6037
6038 * alloc.c (memory_full) [!SYNC_INPUT]: Fix signal-related race.
6039 Without this fix, if a signal arrives just after memory fills up,
6040 'malloc' might be invoked reentrantly.
6041
6042 * image.c (x_check_image_size) [!HAVE_X_WINDOWS]: Return 1.
6043 In other words, assume that every image size is allowed, on non-X
6044 hosts. This assumption is probably wrong, but it lets Emacs compile.
6045
6046 2011-07-28 Andreas Schwab <schwab@linux-m68k.org>
6047
6048 * regex.c (re_iswctype): Convert return values to boolean.
6049
6050 2011-07-28 Eli Zaretskii <eliz@fencepost.gnu.org>
6051
6052 * xdisp.c (compute_display_string_pos): Don't use cached display
6053 string position if the buffer had its restriction changed.
6054 (Bug#9184)
6055
6056 2011-07-28 Paul Eggert <eggert@cs.ucla.edu>
6057
6058 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
6059
6060 2011-07-28 Paul Eggert <eggert@cs.ucla.edu>
6061
6062 Integer signedness and overflow and related fixes. (Bug#9079)
6063
6064 * bidi.c: Integer size and overflow fixes.
6065 (bidi_cache_size, bidi_cache_idx, bidi_cache_last_idx)
6066 (bidi_cache_start, bidi_cache_fetch_state, bidi_cache_search)
6067 (bidi_cache_find_level_change, bidi_cache_ensure_space)
6068 (bidi_cache_iterator_state, bidi_cache_find, bidi_cache_start_stack)
6069 (bidi_find_other_level_edge):
6070 Use ptrdiff_t instead of EMACS_INT where either will do.
6071 This works better on 32-bit hosts configured --with-wide-int.
6072 (bidi_cache_ensure_space): Check for size-calculation overflow.
6073 Use % rather than repeated addition, for better worst-case speed.
6074 Don't set bidi_cache_size until after xrealloc returns, because it
6075 might not return.
6076 (bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
6077 (bidi_cache_ensure_space): Also check that the bidi cache size
6078 does not exceed that of the largest Lisp string or buffer. See Eli
6079 Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
6080
6081 * alloc.c (__malloc_size_t): Remove.
6082 All uses replaced by size_t. See Andreas Schwab's note
6083 <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#8>.
6084
6085 * image.c: Improve checking for integer overflow.
6086 (check_image_size): Assume that f is nonnull, since
6087 it is always nonnull in practice. This is one less thing to
6088 worry about when checking for integer overflow later.
6089 (x_check_image_size): New function, which checks for integer
6090 overflow issues inside X.
6091 (x_create_x_image_and_pixmap, xbm_read_bitmap_data): Use it.
6092 This removes the need for a memory_full check.
6093 (xbm_image_p): Rewrite to avoid integer multiplication overflow.
6094 (Create_Pixmap_From_Bitmap_Data, xbm_load): Use x_check_image_size.
6095 (xbm_read_bitmap_data): Change locals back to 'int', since
6096 their values must fit in 'int'.
6097 (xpm_load_image, png_load, tiff_load):
6098 Invoke x_create_x_image_and_pixmap earlier,
6099 to avoid much needless work if the image is too large.
6100 (tiff_load): Treat overly large images as if
6101 x_create_x_image_and_pixmap failed, not as malloc failures.
6102 (gs_load): Use x_check_image_size.
6103
6104 * gtkutil.c: Omit integer casts.
6105 (xg_get_pixbuf_from_pixmap): Remove unnecessary cast.
6106 (xg_set_toolkit_scroll_bar_thumb): Rewrite to avoid need for cast.
6107
6108 * image.c (png_load): Don't assume height * row_bytes fits in 'int'.
6109
6110 * xfaces.c (Fbitmap_spec_p): Fix integer overflow bug.
6111 Without this fix, (bitmap-spec-p '(34359738368 1 "x"))
6112 would wrongly return t on a 64-bit host.
6113
6114 * dispnew.c (init_display): Use *_RANGE_OVERFLOW macros.
6115 The plain *_OVERFLOW macros run afoul of GCC bug 49705
6116 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705>
6117 and therefore cause GCC to emit a bogus diagnostic in some cases.
6118
6119 * image.c: Integer signedness and overflow and related fixes.
6120 This is not an exhaustive set of fixes, but it's time to
6121 record what I've got.
6122 (lookup_pixel_color, check_image_size): Remove redundant decls.
6123 (check_image_size): Don't assume that arbitrary EMACS_INT values
6124 fit in 'int', or that arbitrary 'double' values fit in 'int'.
6125 (x_alloc_image_color, x_create_x_image_and_pixmap, png_load)
6126 (tiff_load, imagemagick_load_image):
6127 Check for overflow in size calculations.
6128 (x_create_x_image_and_pixmap): Remove unnecessary test for
6129 xmalloc returning NULL; that can't happen.
6130 (xbm_read_bitmap_data): Don't assume sizes fit into 'int'.
6131 (xpm_color_bucket): Use better integer hashing function.
6132 (xpm_cache_color): Don't possibly over-allocate memory.
6133 (struct png_memory_storage, tiff_memory_source, tiff_seek_in_memory)
6134 (gif_memory_source):
6135 Use ptrdiff_t, not int or size_t, to record sizes.
6136 (png_load): Don't assume values greater than 2**31 fit in 'int'.
6137 (our_stdio_fill_input_buffer): Prefer ptrdiff_t to size_t when
6138 either works, as we prefer signed integers.
6139 (tiff_read_from_memory, tiff_write_from_memory):
6140 Return tsize_t, not size_t, since that's what the TIFF API wants.
6141 (tiff_read_from_memory): Don't fail simply because the read would
6142 go past EOF; instead, return a short read.
6143 (tiff_load): Omit no-longer-needed casts.
6144 (Fimagemagick_types): Don't assume size fits into 'int'.
6145
6146 Improve hashing quality when configured --with-wide-int.
6147 * fns.c (hash_string): New function, taken from sxhash_string.
6148 Do not discard information about ASCII character case; this
6149 discarding is no longer needed.
6150 (sxhash-string): Use it. Change sig to match it. Caller changed.
6151 * lisp.h: Declare it.
6152 * lread.c (hash_string): Remove, since we now use fns.c's version.
6153 The fns.c version returns a wider integer if --with-wide-int is
6154 specified, so this should help the quality of the hashing a bit.
6155
6156 * emacs.c: Integer overflow minor fix.
6157 (heap_bss_diff): Now uprintmax_t, not unsigned long. All used changed.
6158 Define only if GNU_LINUX.
6159 (main, Fdump_emacs): Set and use heap_bss_diff only if GNU_LINUX.
6160
6161 * dispnew.c: Integer signedness and overflow fixes.
6162 Remove unnecessary forward decls, that were a maintenance hassle.
6163 (history_tick): Now uprintmax_t, so it's more likely to avoid overflow.
6164 All uses changed.
6165 (adjust_glyph_matrix, realloc_glyph_pool, adjust_frame_message_buffer)
6166 (scrolling_window): Use ptrdiff_t, not int, for byte count.
6167 (prepare_desired_row, line_draw_cost):
6168 Use int, not unsigned, where either works.
6169 (save_current_matrix, restore_current_matrix):
6170 Use ptrdiff_t, not size_t, where either works.
6171 (init_display): Check for overflow more accurately, and without
6172 relying on undefined behavior.
6173
6174 * editfns.c (pWIDE, pWIDElen, signed_wide, unsigned_wide):
6175 Remove, replacing with the new symbols in lisp.h. All uses changed.
6176 * fileio.c (make_temp_name):
6177 * filelock.c (lock_file_1, lock_file):
6178 * xdisp.c (message_dolog):
6179 Don't assume PRIdMAX etc. works; this isn't portable to pre-C99 hosts.
6180 Use pMd etc. instead.
6181 * lisp.h (printmax_t, uprintmax_t, pMd, pMu): New types and macros,
6182 replacing the pWIDE etc. symbols removed from editfns.c.
6183
6184 * keyboard.h (num_input_events): Now uintmax_t.
6185 This is (very slightly) less likely to mess up due to wraparound.
6186 All uses changed.
6187
6188 * buffer.c: Integer signedness fixes.
6189 (alloc_buffer_text, enlarge_buffer_text):
6190 Use ptrdiff_t rather than size_t when either will do, as we prefer
6191 signed integers.
6192
6193 * alloc.c: Integer signedness and overflow fixes.
6194 Do not impose an arbitrary 32-bit limit on malloc sizes when debugging.
6195 (__malloc_size_t): Default to size_t, not to int.
6196 (pure_size, pure_bytes_used_before_overflow, stack_copy_size)
6197 (Fgarbage_collect, mark_object_loop_halt, mark_object):
6198 Prefer ptrdiff_t to size_t when either would do, as we prefer
6199 signed integers.
6200 (XMALLOC_OVERRUN_CHECK_OVERHEAD): New macro.
6201 (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer):
6202 Now const. Initialize with values that are in range even if char
6203 is signed.
6204 (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): Remove, replacing with ...
6205 (xmalloc_put_size, xmalloc_get_size): New functions. All uses changed.
6206 These functions do the right thing with sizes > 2**32.
6207 (check_depth): Now ptrdiff_t, not int.
6208 (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
6209 Adjust to new way of storing sizes. Check for size overflow bugs
6210 in rest of code.
6211 (STRING_BYTES_MAX): Adjust to new overheads. The old code was
6212 slightly wrong anyway, as it missed one instance of
6213 XMALLOC_OVERRUN_CHECK_OVERHEAD.
6214 (refill_memory_reserve): Omit needless cast to size_t.
6215 (mark_object_loop_halt): Mark as externally visible.
6216
6217 * xselect.c: Integer signedness and overflow fixes.
6218 (Fx_register_dnd_atom, x_handle_dnd_message):
6219 Use ptrdiff_t, not size_t, since we prefer signed.
6220 (Fx_register_dnd_atom): Check for ptrdiff_t (and size_t) overflow.
6221 * xterm.h (struct x_display_info): Use ptrdiff_t, not size_t, for
6222 x_dnd_atoms_size and x_dnd_atoms_length.
6223
6224 * doprnt.c: Prefer signed to unsigned when either works.
6225 * eval.c (verror):
6226 * doprnt.c (doprnt):
6227 * lisp.h (doprnt):
6228 * xdisp.c (vmessage):
6229 Use ptrdiff_t, not size_t, when using or implementing doprnt,
6230 since the sizes cannot exceed ptrdiff_t bounds anyway, and we
6231 prefer signed arithmetic to avoid comparison confusion.
6232 * doprnt.c (doprnt): Avoid a "+ 1" that can't overflow,
6233 but is a bit tricky.
6234
6235 Assume freestanding C89 headers, string.h, stdlib.h.
6236 * data.c, doprnt.c, floatfns.c, print.c:
6237 Include float.h unconditionally.
6238 * gmalloc.c: Assume C89-at-least behavior for preprocessor,
6239 limits.h, stddef.h, string.h. Use memset instead of 'flood'.
6240 * regex.c: Likewise for stddef.h, string.h.
6241 (ISASCII): Remove; can assume it returns 1 now. All uses removed.
6242 * s/aix4-2.h (HAVE_STRING_H): Remove obsolete undef.
6243 * s/ms-w32.h (HAVE_LIMITS_H, HAVE_STRING_H, HAVE_STDLIB_H)
6244 (STDC_HEADERS): Remove obsolete defines.
6245 * sysdep.c: Include limits.h unconditionally.
6246
6247 Assume support for memcmp, memcpy, memmove, memset.
6248 * lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
6249 * regex.c (memcmp, memcpy):
6250 Remove; we assume C89 now.
6251
6252 * gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
6253 (__malloc_safe_bcopy): Remove; no longer needed.
6254
6255 * lisp.h (struct vectorlike_header, struct Lisp_Subr): Signed sizes.
6256 Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
6257 well either way, and we prefer signed to unsigned.
6258
6259 2011-07-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
6260
6261 * gnutls.c (emacs_gnutls_read): Don't message anything if the peer
6262 closes the connection while we're reading (bug#9182).
6263
6264 2011-07-25 Jan Djärv <jan.h.d@swipnet.se>
6265
6266 * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
6267 are specified (Bug#9168).
6268
6269 2011-07-25 Paul Eggert <eggert@cs.ucla.edu>
6270
6271 * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
6272 Found by GCC static checking and --with-wide-int on a 32-bit host.
6273
6274 2011-07-25 Eli Zaretskii <eliz@gnu.org>
6275
6276 * xdisp.c (compute_display_string_pos): Fix logic of caching
6277 previous display string position. Initialize cached_prev_pos to
6278 -1. Fixes slow-down at the beginning of a buffer.
6279
6280 2011-07-24 Eli Zaretskii <eliz@gnu.org>
6281
6282 * xfaces.c (check_lface_attrs) [HAVE_WINDOW_SYSTEM]: Allow `nil'
6283 for attrs[LFACE_FONTSET_INDEX].
6284
6285 2011-07-23 Paul Eggert <eggert@cs.ucla.edu>
6286
6287 * xml.c (parse_region): Remove unused local
6288 that was recently introduced.
6289
6290 2011-07-23 Eli Zaretskii <eliz@gnu.org>
6291
6292 * xfns.c (unwind_create_frame) [GLYPH_DEBUG]: Adapt to changes in
6293 2008-02-22T17:42:09Z!monnier@iro.umontreal.ca.
6294
6295 * xdisp.c (move_it_in_display_line_to): Record the best matching
6296 position for TO_CHARPOS while scanning the line, and restore it on
6297 exit if none of the characters scanned was an exact match.
6298 Fixes vertical-motion and pos-visible-in-window-p under bidi redisplay
6299 when exact match is impossible due to invisible text, and the
6300 lines are truncated.
6301
6302 2011-07-23 Jan Djärv <jan.h.d@swipnet.se>
6303
6304 * nsterm.m (initFrameFromEmacs): Set NSTitledWindowMask in styleMask
6305 for OSX >= 10.7.
6306
6307 2011-07-22 Eli Zaretskii <eliz@gnu.org>
6308
6309 Fix a significant slow-down of cursor motion with C-n, C-p,
6310 C-f/C-b, and C-v/M-v that couldn't keep up with keyboard
6311 auto-repeat under bidi redisplay in fontified buffers.
6312 * xdisp.c (compute_stop_pos_backwards): New function.
6313 (next_element_from_buffer): Call compute_stop_pos_backwards to
6314 find a suitable prev_stop when we find ourselves before
6315 base_level_stop.
6316 (reseat): Don't look for prev_stop, as that could mean a very long
6317 run.
6318 <cached_disp_pos, cached_disp_buffer, cached_disp_modiff>
6319 <cached_disp_overlay_modiff>: Cache for last found display string
6320 position.
6321 (compute_display_string_pos): Return the cached position if asked
6322 about the same buffer in the same area of character positions, and
6323 the buffer wasn't changed since the time the display string
6324 position was cached.
6325
6326 2011-07-22 Eli Zaretskii <eliz@gnu.org>
6327
6328 * xdisp.c (rows_from_pos_range): Don't ignore glyphs whose object
6329 is an integer, which is important for empty lines. (Bug#9149)
6330
6331 2011-07-22 Chong Yidong <cyd@stupidchicken.com>
6332
6333 * frame.c (Fmodify_frame_parameters): In tty case, update the
6334 default face if necessary (Bug#4238).
6335
6336 2011-07-21 Chong Yidong <cyd@stupidchicken.com>
6337
6338 * editfns.c (Fstring_to_char): No need to explain what a character
6339 is in the docstring (Bug#6576).
6340
6341 2011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
6342
6343 * xml.c (parse_region): Make sure we always return a tree.
6344
6345 2011-07-20 HAMANO Kiyoto <khiker.mail@gmail.com>
6346
6347 * xml.c (parse_region): If a document contains only comments,
6348 return that, too.
6349
6350 2011-07-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
6351
6352 * xml.c (make_dom): Return comments, too.
6353
6354 2011-07-19 Paul Eggert <eggert@cs.ucla.edu>
6355
6356 Port to OpenBSD.
6357 See http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg00688.html
6358 and the surrounding thread.
6359 * minibuf.c (read_minibuf_noninteractive): Rewrite to use getchar
6360 rather than fgets, and retry after EINTR. Otherwise, 'emacs
6361 --batch -f byte-compile-file' fails on OpenBSD if an inactivity
6362 timer goes off.
6363 * s/openbsd.h (BROKEN_SIGIO): Define.
6364 * unexelf.c (unexec) [__OpenBSD__]:
6365 Don't update the .mdebug section of the Alpha COFF symbol table.
6366
6367 2011-07-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
6368
6369 * lread.c (syms_of_lread): Clarify when `lexical-binding' is used
6370 (bug#8460).
6371
6372 2011-07-18 Paul Eggert <eggert@cs.ucla.edu>
6373
6374 * fileio.c (Fcopy_file) [!MSDOS]: Tighten created file's mask.
6375 This fixes some race conditions on the permissions of any newly
6376 created file.
6377
6378 * alloc.c (valid_pointer_p): Use pipe, not open.
6379 This fixes some permissions issues when debugging.
6380
6381 * fileio.c (Fcopy_file): Adjust mode if fchown fails. (Bug#9002)
6382 If fchown fails to set both uid and gid, try to set just gid,
6383 as that is sometimes allowed. Adjust the file's mode to eliminate
6384 setuid or setgid bits that are inappropriate if fchown fails.
6385
6386 2011-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
6387
6388 * xdisp.c (next_element_from_string, next_element_from_buffer): Use EQ
6389 to compare Lisp_Objects.
6390 * gnutls.c (syms_of_gnutls): Rename Vgnutls_log_level to
6391 global_gnutls_log_level, don't mistake it for a Lisp_Object.
6392 (init_gnutls_functions, emacs_gnutls_handle_error): Fix up uses.
6393
6394 2011-07-17 Andreas Schwab <schwab@linux-m68k.org>
6395
6396 * lread.c (read_integer): Unread even EOF character.
6397 (read1): Likewise. Properly record start position of symbol.
6398
6399 * lread.c (read1): Read `#:' as empty uninterned symbol if no
6400 symbol character follows.
6401
6402 2011-07-17 Paul Eggert <eggert@cs.ucla.edu>
6403
6404 * fileio.c (Fcopy_file): Pacify gcc re fchown. (Bug#9002)
6405 This works around a problem with the previous change to Fcopy_file.
6406 Recent glibc declares fchown with __attribute__((warn_unused_result)),
6407 and without this change, GCC might complain about discarding
6408 fchown's return value.
6409
6410 2011-07-16 Juanma Barranquero <lekktu@gmail.com>
6411
6412 * makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
6413
6414 2011-07-16 Paul Eggert <eggert@cs.ucla.edu>
6415
6416 * fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
6417
6418 2011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
6419
6420 * gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
6421 it's used from the C level.
6422
6423 * process.c: Use the same condition for POLL_FOR_INPUT in both
6424 keyboard.c and process.c (bug#1858).
6425
6426 2011-07-09 Lawrence Mitchell <wence@gmx.li>
6427
6428 * gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
6429 (Fgnutls_boot): Use it.
6430
6431 2011-07-15 Andreas Schwab <schwab@linux-m68k.org>
6432
6433 * doc.c (Fsubstitute_command_keys): Revert last change.
6434
6435 2011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
6436
6437 * doc.c (Fsubstitute_command_keys): Clarify that \= really only
6438 quotes the next character, and doesn't affect other longer
6439 sequences (bug#8935).
6440
6441 * lread.c (syms_of_lread): Clarify that is isn't only
6442 `eval-buffer' and `eval-defun' that's affected by
6443 `lexical-binding' (bug#8460).
6444
6445 2011-07-15 Eli Zaretskii <eliz@gnu.org>
6446
6447 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
6448 bidi redisplay when a line includes both an image and is truncated.
6449
6450 2011-07-14 Paul Eggert <eggert@cs.ucla.edu>
6451
6452 Fix minor problems found by static checking.
6453 * bidi.c (bidi_cache_size): Now EMACS_INT, not size_t.
6454 (elsz): Now a signed constant, not a size_t var. We prefer signed
6455 types to unsigned, to avoid integer comparison confusion. Without
6456 this change, GCC 4.6.1 with -Wunsafe-loop-optimizations complains
6457 "cannot optimize loop, the loop counter may overflow", a symptom
6458 of the confusion.
6459 * indent.c (Fvertical_motion): Mark locals as initialized.
6460 * xdisp.c (reseat_to_string): Fix pointer signedness issue.
6461
6462 2011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
6463
6464 * search.c (Fre_search_backward): Mention `case-fold-search' in
6465 all the re_search_* functions (bug#8138).
6466
6467 * keyboard.c (Fopen_dribble_file): Document when the file is
6468 closed (bug#8056).
6469
6470 2011-07-14 Eli Zaretskii <eliz@gnu.org>
6471
6472 * bidi.c (bidi_dump_cached_states): Fix format of displaying
6473 bidi_cache_idx.
6474
6475 Support bidi reordering of display and overlay strings.
6476 * xdisp.c (compute_display_string_pos)
6477 (compute_display_string_end): Accept additional argument STRING.
6478 (init_iterator, reseat_1): Initialize bidi_it->string.s to NULL.
6479 (reseat_to_string): Initialize bidi_it->string.s and
6480 bidi_it->string.schars.
6481 (Fcurrent_bidi_paragraph_direction): Initialize itb.string.s to
6482 NULL (avoids a crash in bidi_paragraph_init).
6483 Initialize itb.string.lstring.
6484 (init_iterator): Call bidi_init_it only of a valid
6485 buffer position was specified. Initialize paragraph_embedding to
6486 L2R.
6487 (reseat_to_string): Initialize the bidi iterator.
6488 (display_string): If we need to ignore text properties of
6489 LISP_STRING, set IT->stop_charpos to IT->end_charpos. (The
6490 original value of -1 will not work with bidi.)
6491 (compute_display_string_pos): First arg is now struct
6492 `text_pos *'; all callers changed. Support display properties on
6493 Lisp strings.
6494 (compute_display_string_end): Support display properties on Lisp
6495 strings.
6496 (init_iterator, reseat_1, reseat_to_string): Initialize the
6497 string.bufpos member to 0 (zero, for compatibility with IT_CHARPOS
6498 when iterating on a string not from display properties).
6499 (compute_display_string_pos, compute_display_string_end):
6500 Fix calculation of the object to scan. Fixes an error when using
6501 arrow keys.
6502 (next_element_from_buffer): Don't abort when IT_CHARPOS is before
6503 base_level_stop; instead, set base_level_stop to BEGV.
6504 Fixes crashes in vertical-motion.
6505 (next_element_from_buffer): Improve commentary for when
6506 the iterator is before prev_stop.
6507 (init_iterator): Initialize bidi_p from the default value of
6508 bidi-display-reordering, not from buffer-local value. Use the
6509 buffer-local value only if initializing for buffer iteration.
6510 (handle_invisible_prop): Support invisible properties on strings
6511 that are being bidi-reordered.
6512 (set_iterator_to_next): Support bidi reordering of C strings and
6513 Lisp strings.
6514 (next_element_from_string): Support bidi reordering of Lisp
6515 strings.
6516 (handle_stop_backwards): Support Lisp strings as well.
6517 (display_string): Support display of R2L glyph rows.
6518 Use IT_STRING_CHARPOS when displaying from a Lisp string.
6519 (init_iterator): Don't initialize it->bidi_p for strings
6520 here.
6521 (reseat_to_string): Initialize it->bidi_p for strings here.
6522 (next_element_from_string, next_element_from_c_string)
6523 (next_element_from_buffer): Add xassert's for correspondence
6524 between IT's object being iterated and it->bidi_it.string
6525 structure.
6526 (face_before_or_after_it_pos): Support bidi iteration.
6527 (next_element_from_c_string): Handle the case of the first string
6528 character that is not the first one in the visual order.
6529 (get_visually_first_element): New function, refactored from common
6530 parts of next_element_from_buffer, next_element_from_string, and
6531 next_element_from_c_string.
6532 (tool_bar_lines_needed, redisplay_tool_bar)
6533 (display_menu_bar): Force left-to-right direction. Add a FIXME
6534 comment for making that be controlled by a user option.
6535 (push_it, pop_it): Save and restore the state of the
6536 bidi iterator. Save and restore the bidi_p flag.
6537 (pop_it): Iterate out of display property for string iteration as
6538 well.
6539 (iterate_out_of_display_property): Support iteration over strings.
6540 (handle_single_display_spec): Set up it->bidi_it for iteration
6541 over a display string, and call bidi_init_it.
6542 (handle_single_display_spec, next_overlay_string)
6543 (get_overlay_strings_1, push_display_prop): Set up the bidi
6544 iterator for displaying display or overlay strings.
6545 (forward_to_next_line_start): Don't use the shortcut if
6546 bidi-iterating.
6547 (back_to_previous_visible_line_start): If handle_display_prop
6548 pushed the iterator stack, restore the internal state of the bidi
6549 iterator by calling bidi_pop_it same number of times.
6550 (reseat_at_next_visible_line_start): If ON_NEWLINE_P is non-zero,
6551 and we are bidi-iterating, don't decrement the iterator position;
6552 instead, set the first_elt flag in the bidi iterator, to produce
6553 the same effect.
6554 (reseat_1): Remove redundant setting of string_from_display_prop_p.
6555 (push_display_prop): xassert that we are iterating a buffer.
6556 (push_it, pop_it): Save and restore paragraph_embedding member.
6557 (handle_single_display_spec, next_overlay_string)
6558 (get_overlay_strings_1, reseat_1, reseat_to_string)
6559 (push_display_prop): Set up the `unibyte' member of bidi_it.string
6560 correctly. Don't assume unibyte strings are not bidi-reordered.
6561 (compute_display_string_pos)
6562 (compute_display_string_end): Fix handling the case of C string.
6563 (push_it, pop_it): Save and restore from_disp_prop_p.
6564 (handle_single_display_spec, push_display_prop): Set the
6565 from_disp_prop_p flag.
6566 (get_overlay_strings_1): Reset the from_disp_prop_p flag.
6567 (pop_it): Call iterate_out_of_display_property only if we are
6568 popping after iteration over a string that came from a display
6569 property. Fix a typo in popping stretch info. Add an assertion
6570 for verifying that the iterator position is in sync with the bidi
6571 iterator.
6572 (handle_single_display_spec, get_overlay_strings_1)
6573 (push_display_prop): Fix initialization of paragraph direction for
6574 string when that of the parent object is not yet determined.
6575 (reseat_1): Call bidi_init_it to resync the bidi
6576 iterator with IT's position. (Bug#7616)
6577 (find_row_edges): If ROW->start.pos gives position
6578 smaller than min_pos, use it as ROW->minpos. (Bug#7616)
6579 (handle_stop, back_to_previous_visible_line_start, reseat_1):
6580 Reset the from_disp_prop_p flag.
6581 (SAVE_IT, RESTORE_IT): New macros.
6582 (pos_visible_p, face_before_or_after_it_pos)
6583 (back_to_previous_visible_line_start)
6584 (move_it_in_display_line_to, move_it_in_display_line)
6585 (move_it_to, move_it_vertically_backward, move_it_by_lines)
6586 (try_scrolling, redisplay_window, display_line): Use them when
6587 saving a temporary copy of the iterator and restoring it back.
6588 (back_to_previous_visible_line_start, reseat_1)
6589 (init_iterator): Empty the bidi cache "stack".
6590 (move_it_in_display_line_to): If iterator ended up at
6591 EOL, but we never saw any buffer positions smaller than
6592 to_charpos, return MOVE_POS_MATCH_OR_ZV. Fixes vertical cursor
6593 motion in bidi-reordered lines.
6594 (move_it_in_display_line_to): Record prev_method and prev_pos
6595 immediately before the call to set_iterator_to_next. Fixes cursor
6596 motion in bidi-reordered lines with stretch glyphs and strings
6597 displayed in margins. (Bug#8133) (Bug#8867)
6598 Return MOVE_POS_MATCH_OR_ZV only if iterator position is past
6599 TO_CHARPOS.
6600 (pos_visible_p): Support positions in bidi-reordered lines.
6601 Save and restore bidi cache.
6602
6603 * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int.
6604 (bidi_paragraph_info): Delete unused struct.
6605 (bidi_cache_idx, bidi_cache_last_idx): Declare EMACS_INT.
6606 (bidi_cache_start): New variable.
6607 (bidi_cache_reset): Reset bidi_cache_idx to bidi_cache_start, not
6608 to zero.
6609 (bidi_cache_fetch_state, bidi_cache_search)
6610 (bidi_cache_find_level_change, bidi_cache_iterator_state)
6611 (bidi_cache_find, bidi_peek_at_next_level)
6612 (bidi_level_of_next_char, bidi_find_other_level_edge)
6613 (bidi_move_to_visually_next): Compare cache index with
6614 bidi_cache_start rather than with zero.
6615 (bidi_fetch_char): Accept new argument STRING; all callers
6616 changed. Support iteration over a string. Support strings with
6617 display properties. Support unibyte strings. Fix the type of
6618 `len' according to what STRING_CHAR_AND_LENGTH expects.
6619 (bidi_paragraph_init, bidi_resolve_explicit_1)
6620 (bidi_resolve_explicit, bidi_resolve_weak)
6621 (bidi_level_of_next_char, bidi_move_to_visually_next):
6622 Support iteration over a string.
6623 (bidi_set_sor_type, bidi_resolve_explicit_1)
6624 (bidi_resolve_explicit, bidi_type_of_next_char): ignore_bn_limit
6625 can now be zero (for strings); special values 0 and -1 were
6626 changed to -1 and -2, respectively.
6627 (bidi_char_at_pos): New function.
6628 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak):
6629 Call it instead of FETCH_MULTIBYTE_CHAR.
6630 (bidi_move_to_visually_next): Abort if charpos or bytepos were not
6631 initialized to valid values.
6632 (bidi_init_it): Don't initialize charpos and bytepos with invalid
6633 values.
6634 (bidi_level_of_next_char): Allow the sentinel "position" to pass
6635 the test for valid cached positions. Fix the logic for looking up
6636 the sentinel state in the cache. GCPRO the Lisp string we are
6637 iterating.
6638 (bidi_push_it, bidi_pop_it): New functions.
6639 (bidi_initialize): Initialize the bidi cache start stack pointer.
6640 (bidi_cache_ensure_space): New function, refactored from part of
6641 bidi_cache_iterator_state. Don't assume the required size is just
6642 one BIDI_CACHE_CHUNK away.
6643 (bidi_cache_start_stack, bidi_push_it): Use IT_STACK_SIZE.
6644 (bidi_count_bytes, bidi_char_at_pos): New functions.
6645 (bidi_cache_search): Don't assume bidi_cache_last_idx is
6646 always valid if bidi_cache_idx is valid.
6647 (bidi_cache_find_level_change): xassert that bidi_cache_last_idx
6648 is valid if it's going to be used.
6649 (bidi_shelve_cache, bidi_unshelve_cache): New functions.
6650 (bidi_cache_fetch_state, bidi_cache_search)
6651 (bidi_cache_find_level_change, bidi_cache_ensure_space)
6652 (bidi_cache_iterator_state, bidi_cache_find)
6653 (bidi_find_other_level_edge, bidi_cache_start_stack):
6654 All variables related to cache indices are now EMACS_INT.
6655
6656 * dispextern.h (struct bidi_string_data): New structure.
6657 (struct bidi_it): New member `string'. Make flag members be 1-bit
6658 fields, and put them last in the struct.
6659 (compute_display_string_pos, compute_display_string_end):
6660 Update prototypes.
6661 (bidi_push_it, bidi_pop_it): Add prototypes.
6662 (struct iterator_stack_entry): New members bidi_p,
6663 paragraph_embedding, and from_disp_prop_p.
6664 (struct it): Member bidi_p is now a bit field 1 bit wide.
6665 (bidi_shelve_cache, bidi_unshelve_cache):
6666 Declare prototypes.
6667
6668 * .gdbinit (xvectype, xvector, xcompiled, xchartable, xboolvector)
6669 (xpr, xfont, xbacktrace): Use "header.size" when accessing vectors
6670 and vector-like objects.
6671
6672 * dispnew.c (buffer_posn_from_coords): Save and restore the bidi
6673 cache around display iteration.
6674
6675 * window.c (Fwindow_end, window_scroll_pixel_based)
6676 (displayed_window_lines, Frecenter): Save and restore the bidi
6677 cache around display iteration.
6678
6679 2011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
6680
6681 * editfns.c (Fdelete_region): Clarify the use of the named
6682 parameters (bug#6788).
6683
6684 2011-07-14 Martin Rudalics <rudalics@gmx.at>
6685
6686 * indent.c (Fvertical_motion): Set and restore w->pointm when
6687 saving and restoring the window's buffer (Bug#9006).
6688
6689 2011-07-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
6690
6691 * editfns.c (Fstring_to_char): Clarify just what is returned
6692 (bug#6576). Text by Eli Zaretskii.
6693
6694 2011-07-13 Juanma Barranquero <lekktu@gmail.com>
6695
6696 * gnutls.c (init_gnutls_functions): Honor gnutls_log_level (bug#9059).
6697
6698 2011-07-13 Eli Zaretskii <eliz@gnu.org>
6699
6700 * buffer.c (mmap_find): Fix a typo.
6701
6702 2011-07-13 Johan Bockgård <bojohan@gnu.org>
6703
6704 Fix execution of x selection hooks.
6705 * xselect.c (Qx_lost_selection_functions)
6706 (Qx_sent_selection_functions): New vars.
6707 (syms_of_xselect): DEFSYM them.
6708 (x_handle_selection_request): Pass Qx_sent_selection_functions
6709 rather than Vx_sent_selection_functions to Frun_hook_with_args.
6710 (x_handle_selection_clear,x_clear_frame_selections):
6711 Pass Qx_lost_selection_functions rather than
6712 Vx_lost_selection_functions to Frun_hook_with_args.
6713
6714 2011-07-13 Paul Eggert <eggert@cs.ucla.edu>
6715
6716 * buffer.c (Fget_buffer_create): Initialize inhibit_shrinking.
6717 The old code sometimes used this field without initializing it.
6718
6719 * alloc.c (gc_sweep): Don't read past end of array.
6720 In theory, the old code could also have corrupted Emacs internals,
6721 though it'd be very unlikely.
6722
6723 2011-07-12 Andreas Schwab <schwab@linux-m68k.org>
6724
6725 * character.c (Fcharacterp): Don't advertise optional ignored
6726 argument. (Bug#4026)
6727
6728 2011-07-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
6729
6730 * keymap.c (syms_of_keymap): Clarify that "modifier" is "modifier
6731 key" (bug#4257).
6732
6733 * window.c (Fset_window_start): Doc fix (bug#4199).
6734 (Fset_window_hscroll): Ditto.
6735
6736 2011-07-12 Paul Eggert <eggert@cs.ucla.edu>
6737
6738 Fix minor new problems caught by GCC 4.6.1.
6739 * term.c (init_tty): Remove unused local.
6740 * xsettings.c (store_monospaced_changed): Define this function only
6741 if (defined HAVE_GSETTINGS || defined HAVE_GCONF), as it's
6742 not used otherwise.
6743
6744 2011-07-12 Chong Yidong <cyd@stupidchicken.com>
6745
6746 * xdisp.c (Vresize_mini_windows): Minor doc fix (Bug#3300).
6747
6748 2011-07-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
6749
6750 * xdisp.c (syms_of_xdisp): Make it explicit that the mini-windows
6751 are the mini-buffer and the echo area (bug#3320).
6752
6753 * term.c (init_tty): Remove support for supdup, c10 and perq
6754 terminals, which are no longer supported (bug#1482).
6755
6756 2011-07-10 Johan Bockgård <bojohan@gnu.org>
6757
6758 * xdisp.c (Ftool_bar_lines_needed): Fix WINDOWP check.
6759
6760 2011-07-10 Jan Djärv <jan.h.d@swipnet.se>
6761
6762 * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event
6763 for non-popups (Bug#3642).
6764
6765 2011-07-10 Andreas Schwab <schwab@linux-m68k.org>
6766
6767 * alloc.c (reset_malloc_hooks): Protoize.
6768 * buffer.c (mmap_init, mmap_find, mmap_free_1, mmap_enlarge)
6769 (mmap_set_vars, mmap_alloc, mmap_free, mmap_realloc): Likewise.
6770 * cm.c (losecursor): Likewise.
6771 * data.c (fmod): Likewise.
6772 * dispnew.c (swap_glyphs_in_rows): Likewise.
6773 * emacs.c (memory_warning_signal): Likewise.
6774 * floatfns.c (float_error): Likewise.
6775 * font.c (check_gstring, check_otf_features, otf_tag_symbol)
6776 (otf_open, font_otf_capability, generate_otf_features)
6777 (font_otf_DeviceTable, font_otf_ValueRecord, font_otf_Anchor):
6778 Likewise.
6779 * image.c (pbm_read_file): Likewise.
6780 * indent.c (string_display_width): Likewise.
6781 * intervals.c (check_for_interval, search_for_interval)
6782 (inc_interval_count, count_intervals, root_interval)
6783 (adjust_intervals_for_insertion, make_new_interval): Likewise.
6784 * lread.c (defalias): Likewise.
6785 * ralloc.c (r_alloc_check): Likewise.
6786 * regex.c (set_image_of_range_1, set_image_of_range)
6787 (regex_grow_registers): Likewise.
6788 * sysdep.c (strerror): Likewise.
6789 * termcap.c (valid_filename_p, tprint, main): Likewise.
6790 * tparam.c (main): Likewise.
6791 * unexhp9k800.c (run_time_remap, save_data_space)
6792 (update_file_ptrs, read_header, write_header, calculate_checksum)
6793 (copy_file, copy_rest, display_header): Likewise.
6794 * widget.c (mark_shell_size_user_specified, create_frame_gcs):
6795 Likewise.
6796 * xdisp.c (check_it): Likewise.
6797 * xfaces.c (register_color, unregister_color, unregister_colors):
6798 Likewise.
6799 * xfns.c (print_fontset_result): Likewise.
6800 * xrdb.c (member, fatal, main): Likewise.
6801
6802 2011-07-10 Paul Eggert <eggert@cs.ucla.edu>
6803
6804 Fix minor problems found by static checking (Bug#9031).
6805 * chartab.c (char_table_set_range, map_sub_char_table):
6806 Remove unused locals.
6807 (uniprop_table): Now static.
6808 * composite.c (_work_char): Remove unused static var.
6809
6810 2011-07-09 Juanma Barranquero <lekktu@gmail.com>
6811
6812 * chartab.c (uniprop_table_uncompress): Remove unused local variable.
6813
6814 2011-07-09 Jan Djärv <jan.h.d@swipnet.se>
6815
6816 * gtkutil.c (qttip_cb): Remove code without function.
6817
6818 2011-07-09 Eli Zaretskii <eliz@gnu.org>
6819
6820 * w32.c (pthread_sigmask): New stub.
6821
6822 2011-07-08 Paul Eggert <eggert@cs.ucla.edu>
6823
6824 Use pthread_sigmask, not sigprocmask (Bug#9010).
6825 sigprocmask is portable only for single-threaded applications, and
6826 Emacs can be multi-threaded when it uses GTK.
6827 * Makefile.in (LIB_PTHREAD_SIGMASK): New macro.
6828 (LIBES): Use it.
6829 * callproc.c (Fcall_process):
6830 * process.c (create_process):
6831 * sysdep.c (sys_sigblock, sys_sigunblock, sys_sigsetmask):
6832 Use pthread_sigmask, not sigprocmask.
6833
6834 2011-07-08 Jan Djärv <jan.h.d@swipnet.se>
6835
6836 * gtkutil.c (qttip_cb): Set line wrap to FALSE for tooltip widget.
6837 (xg_prepare_tooltip): Revert text in x->ttip_lbl, margins was
6838 wrong (Bug#8591).
6839
6840 2011-07-08 Jan Djärv <jan.h.d@swipnet.se>
6841
6842 * gtkutil.c (xg_prepare_tooltip): Fix indentation and comment.
6843 Put text in x->ttip_lbl instead of gtk_tooltip_set_text (Bug#8591).
6844 (xg_hide_tooltip): Fix comment.
6845
6846 * nsterm.m (initFrameFromEmacs): Don't use ns_return_types
6847 in registerServicesMenuSendTypes.
6848 (validRequestorForSendType): Don't check ns_return_types.
6849
6850 * nsfns.m (Fx_open_connection): Put NSStringPboardType into
6851 ns_return_type.
6852
6853 2011-07-08 Jason Rumney <jasonr@gnu.org>
6854
6855 * w32term.c (x_make_frame_visible): Use SH_SHOWNORMAL rather than
6856 SH_SHOW for hidden windows (Bug#5482).
6857
6858 * w32fns.c (w32_wnd_proc) [WM_TIMER, WM_SET_CURSOR]: Avoid using
6859 frame struct members of non-existent frames (Bug#6284).
6860
6861 2011-07-08 Jan Djärv <jan.h.d@swipnet.se>
6862
6863 * nsterm.m (keyDown): Call to wantsToDelayTextChangeNotifications and
6864 variable firstTime not needed on OSX >= 10.6.
6865 (setPosition): setFloatValue:knobProportion: is deprecated on OSX
6866 >= 10.5. Use setKnobProportion, setDoubleValue.
6867
6868 * nsterm.h (MAC_OS_X_VERSION_10_3, MAC_OS_X_VERSION_10_4)
6869 (MAC_OS_X_VERSION_10_5): Define if not defined.
6870 (EmacsView, EmacsTooltip): Implements NSWindowDelegate on OSX >= 10.6.
6871 (EmacsMenu): Implements NSMenuDelegate on OSX >= 10.6.
6872 (EmacsToolbar): Implements NSToolbarDelegate on OSX >= 10.6.
6873
6874 * nsselect.m (ns_string_from_pasteboard): Don't use deprecated methods
6875 cString and lossyCString on OSX >= 10.4
6876
6877 * nsmenu.m (fillWithWidgetValue): Don't use deprecated method
6878 sizeToFit on OSX >= 10.2.
6879
6880 * nsimage.m (allocInitFromFile): Don't use deprecated method
6881 bestRepresentationForDevice on OSX >= 10.6.
6882
6883 * nsfns.m (check_ns_display_info): Cast to long and use %ld in error
6884 to avoid warning.
6885
6886 * emacs.c: Declare unexec_init_emacs_zone.
6887
6888 * nsgui.h: Fix compiler warning about gnulib redefining verify.
6889
6890 * nsselect.m (ns_get_local_selection): Change to extern (Bug#8842).
6891
6892 * nsmenu.m (ns_update_menubar): Remove useless setDelegate call
6893 on svcsMenu (Bug#8842).
6894
6895 * nsfns.m (Fx_open_connection): Remove NSStringPboardType from
6896 ns_return_types.
6897 (Fns_list_services): Just return Qnil on 10.6, code not working there.
6898
6899 * nsterm.m (QUTF8_STRING): Declare.
6900 (initFrameFromEmacs): Call registerServicesMenuSendTypes.
6901 (validRequestorForSendType): Return type is (id).
6902 Change indexOfObjectIdenticalTo to indexOfObject.
6903 Check if we have local selection before returning self (Bug#8842).
6904 (writeSelectionToPasteboard): Put local selection into paste board
6905 if we have a local selection (Bug#8842).
6906 (syms_of_nsterm): DEFSYM QUTF8_STRING.
6907
6908 * nsterm.h (MAC_OS_X_VERSION_10_6): Define here instead of nsterm.m.
6909 (ns_get_local_selection): Declare.
6910
6911 2011-07-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
6912
6913 * keymap.c (describe_map_tree): Don't insert a double newline at
6914 the end of the buffer (bug#1169) and return whether we inserted
6915 something.
6916
6917 * callint.c (Fcall_interactively): Change "reading args" to
6918 "providing args" to try to clarify what it does (bug#1010).
6919
6920 2011-07-07 Kenichi Handa <handa@m17n.org>
6921
6922 * composite.c (composition_compute_stop_pos): Ignore a static
6923 composition starting before CHARPOS (Bug#8915).
6924
6925 * xdisp.c (handle_composition_prop): Likewise.
6926
6927 2011-07-07 Eli Zaretskii <eliz@gnu.org>
6928
6929 * term.c (produce_glyphs) <xassert>: Allow IT_GLYPHLESS in it->what.
6930 (Bug#9015)
6931
6932 2011-07-07 Kenichi Handa <handa@m17n.org>
6933
6934 * character.h (unicode_category_t): New enum type.
6935
6936 * chartab.c (uniprop_decoder_t, uniprop_encoder_t): New types.
6937 (Qchar_code_property_table): New variable.
6938 (UNIPROP_TABLE_P, UNIPROP_GET_DECODER)
6939 (UNIPROP_COMPRESSED_FORM_P): New macros.
6940 (char_table_ascii): Uncompress the compressed values.
6941 (sub_char_table_ref): New arg is_uniprop. Callers changed.
6942 Uncompress the compressed values.
6943 (sub_char_table_ref_and_range): Likewise.
6944 (char_table_ref_and_range): Uncompress the compressed values.
6945 (sub_char_table_set): New arg is_uniprop. Callers changed.
6946 Uncompress the compressed values.
6947 (sub_char_table_set_range): Args changed. Callers changed.
6948 (char_table_set_range): Adjuted for the above change.
6949 (map_sub_char_table): Delete args default_val and parent. Add arg
6950 top. Give decoded values to a Lisp function.
6951 (map_char_table): Adjust for the above change. Give decoded
6952 values to a Lisp function. Gcpro more variables.
6953 (uniprop_table_uncompress)
6954 (uniprop_decode_value_run_length): New functions.
6955 (uniprop_decoder, uniprop_decoder_count): New variables.
6956 (uniprop_get_decoder, uniprop_encode_value_character)
6957 (uniprop_encode_value_run_length, uniprop_encode_value_numeric):
6958 New functions.
6959 (uniprop_encoder, uniprop_encoder_count): New variables.
6960 (uniprop_get_encoder, uniprop_table)
6961 (Funicode_property_table_internal, Fget_unicode_property_internal)
6962 (Fput_unicode_property_internal): New functions.
6963 (syms_of_chartab): DEFSYM Qchar_code_property_table, defsubr
6964 Sunicode_property_table_internal, Sget_unicode_property_internal,
6965 and Sput_unicode_property_internal. Defvar_lisp
6966 char-code-property-alist.
6967
6968 * composite.c (CHAR_COMPOSABLE_P): Adjust for the change of
6969 Vunicode_category_table.
6970
6971 * font.c (font_range): Adjust for the change of
6972 Vunicode_category_table.
6973
6974 2011-07-07 Dan Nicolaescu <dann@ics.uci.edu>
6975
6976 * m/iris4d.h: Remove file, move contents ...
6977 * s/irix6-5.h: ... here.
6978
6979 2011-07-06 Paul Eggert <eggert@cs.ucla.edu>
6980
6981 Remove unportable assumption about struct layout (Bug#8884).
6982 * alloc.c (mark_buffer):
6983 * buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
6984 (clone_per_buffer_values): Don't assume that
6985 sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
6986 This isn't true in general, and it's particularly not true
6987 if Emacs is configured with --with-wide-int.
6988 * buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
6989 New macros, used in the buffer.c change.
6990
6991 2011-07-05 Jan Djärv <jan.h.d@swipnet.se>
6992
6993 * xsettings.c: Use both GConf and GSettings if both are available.
6994 (store_config_changed_event): Add comment.
6995 (dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
6996 (store_tool_bar_style_changed): New functions.
6997 (store_monospaced_changed): Add comment. Call dpyinfo_valid.
6998 (struct xsettings): Move font inside HAVE_XFT.
6999 (GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
7000 (GSETTINGS_MONO_FONT): Rename from SYSTEM_MONO_FONT.
7001 Move inside HAVE_XFT.
7002 (something_changed_gsettingsCB): Rename from something_changedCB.
7003 Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
7004 also.
7005 (GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
7006 (GCONF_MONO_FONT): Rename from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
7007 (something_changed_gconfCB): Rename from something_changedCB.
7008 Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
7009 (parse_settings): Move check for font inside HAVE_XFT.
7010 (read_settings, apply_xft_settings): Add comment.
7011 (read_and_apply_settings): Add comment. Call map_tool_bar_style and
7012 store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
7013 call store_font_name_changed.
7014 (xft_settings_event): Add comment.
7015 (init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
7016 and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
7017 (init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
7018 and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
7019 (xsettings_initialize): Call init_gsettings last.
7020 (xsettings_get_system_font, xsettings_get_system_normal_font):
7021 Add comment.
7022
7023 2011-07-05 Paul Eggert <eggert@cs.ucla.edu>
7024
7025 Random fixes. E.g., (random) never returned negative values.
7026 * fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
7027 subseconds part to the entropy, as that's a bit more random.
7028 Prefer signed to unsigned, since the signedness doesn't matter and
7029 in general we prefer signed. When given a limit, use a
7030 denominator equal to INTMASK + 1, not to VALMASK + 1, because the
7031 latter isn't right if USE_2_TAGS_FOR_INTS.
7032 * sysdep.c (get_random): Return a value in the range 0..INTMASK,
7033 not 0..VALMASK. Don't discard "excess" bits that random () returns.
7034
7035 2011-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
7036
7037 * textprop.c (text_property_stickiness):
7038 Obey Vtext_property_default_nonsticky.
7039 (syms_of_textprop): Add `display' to Vtext_property_default_nonsticky.
7040 * w32fns.c (syms_of_w32fns):
7041 * xfns.c (syms_of_xfns): Don't Add `display' since it's there by default.
7042
7043 2011-07-04 Paul Eggert <eggert@cs.ucla.edu>
7044
7045 * fileio.c (barf_or_query_if_file_exists): Use S_ISDIR.
7046 This is more efficient than Ffile_directory_p and avoids a minor race.
7047
7048 2011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
7049
7050 * buffer.c (Foverlay_put): Say what the return value is
7051 (bug#7835).
7052
7053 * fileio.c (barf_or_query_if_file_exists): Check first if the file
7054 is a directory before asking whether to use the file name
7055 (bug#7564).
7056 (barf_or_query_if_file_exists): Make the "File is a directory"
7057 error be more correct.
7058
7059 * fns.c (Frequire): Remove the mention of the .gz files, since
7060 that's installation-specific, but keep the mention of
7061 `get-load-suffixes'.
7062
7063 2011-07-04 Paul Eggert <eggert@cs.ucla.edu>
7064
7065 * editfns.c (Fformat_time_string): Don't assume strlen fits in int.
7066 Report string overflow if the output is too long.
7067
7068 2011-07-04 Juanma Barranquero <lekktu@gmail.com>
7069
7070 * gnutls.c (Fgnutls_boot): Don't mention :verify-error.
7071 (syms_of_gnutls): Remove duplicate DEFSYM for
7072 Qgnutls_bootprop_verify_hostname_error, an error for
7073 Qgnutls_bootprop_verify_error (which is no longer used).
7074
7075 * eval.c (find_handler_clause): Remove parameters `sig' and `data',
7076 unused since 2011-01-26T20:02:07Z!monnier@iro.umontreal.ca. All callers changed.
7077 Also (re)move comments that are misplaced or no longer relevant.
7078
7079 2011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
7080
7081 * callint.c (Finteractive): Clarify the meaning of "@" (bug#8813).
7082
7083 2011-07-03 Chong Yidong <cyd@stupidchicken.com>
7084
7085 * xfaces.c (Finternal_merge_in_global_face): Modify the foreground
7086 and background color parameters if they have been changed.
7087
7088 2011-07-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
7089
7090 * editfns.c (Fformat): Clarify the - and 0 flags (bug#6659).
7091
7092 2011-07-03 Paul Eggert <eggert@cs.ucla.edu>
7093
7094 * xsettings.c (SYSTEM_FONT): Define only when used.
7095 No need to define when HAVE_GSETTINGS || !HAVE_XFT.
7096
7097 * keymap.c (access_keymap_1): Now static.
7098
7099 2011-07-02 Chong Yidong <cyd@stupidchicken.com>
7100
7101 * keyboard.c (command_loop_1): If a down-mouse event is unbound,
7102 leave any prefix arg for the up event (Bug#1586).
7103
7104 2011-07-02 Lars Magne Ingebrigtsen <larsi@gnus.org>
7105
7106 * lread.c (syms_of_lread): Mention single symbols defined by
7107 `defvar' or `defconst' (bug#7154).
7108
7109 * fns.c (Frequire): Mention .el.gz files (bug#7314).
7110 (Frequire): Mention get-load-suffixes.
7111
7112 2011-07-02 Martin Rudalics <rudalics@gmx.at>
7113
7114 * window.h (window): Remove clone_number slot.
7115 * window.c (Fwindow_clone_number, Fset_window_clone_number):
7116 Remove.
7117 (make_parent_window, make_window, saved_window)
7118 (Fset_window_configuration, save_window_save): Don't deal with
7119 clone numbers.
7120 * buffer.c (Qclone_number): Remove declaration.
7121 (sort_overlays, overlay_strings): Don't deal with clone numbers.
7122
7123 2011-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
7124
7125 Add multiple inheritance to keymaps.
7126 * keymap.c (Fmake_composed_keymap): New function.
7127 (Fset_keymap_parent): Simplify.
7128 (fix_submap_inheritance): Remove.
7129 (access_keymap_1): New function extracted from access_keymap to handle
7130 embedded parents and handle lists of maps.
7131 (access_keymap): Use it.
7132 (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
7133 (Fcopy_keymap): Handle embedded parents.
7134 (Fcommand_remapping, define_as_prefix): Simplify.
7135 (Fkey_binding): Simplify.
7136 (syms_of_keymap): Move minibuffer-local-completion-map,
7137 minibuffer-local-filename-completion-map,
7138 minibuffer-local-must-match-map, and
7139 minibuffer-local-filename-must-match-map to Elisp.
7140 (syms_of_keymap): Defsubr make-composed-keymap.
7141 * keyboard.c (menu_bar_items): Use map_keymap_canonical.
7142 (parse_menu_item): Trivial simplification.
7143
7144 2011-07-01 Glenn Morris <rgm@gnu.org>
7145
7146 * Makefile.in (SETTINGS_LIBS): Fix typo.
7147
7148 2011-07-01 Kazuhiro Ito <kzhr@d1.dion.ne.jp> (tiny patch)
7149
7150 * coding.c (Fencode_coding_string): Record the last coding system
7151 used, as the function doc string says (bug#8738).
7152
7153 2011-07-01 Jan Djärv <jan.h.d@swipnet.se>
7154
7155 * xsettings.c (store_monospaced_changed): Take new font as arg and
7156 check for change against current_mono_font.
7157 (EMACS_TYPE_SETTINGS): Remove this and related defines.
7158 (emacs_settings_constructor, emacs_settings_get_property)
7159 (emacs_settings_set_property, emacs_settings_class_init)
7160 (emacs_settings_init, gsettings_obj): Remove.
7161 (something_changedCB): New function for HAVE_GSETTINGS.
7162 (something_changedCB): HAVE_GCONF: Call store_monospaced_changed
7163 with value as argument.
7164 (init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
7165 g_settings_new (Bug#8967). Do not create gsettings_obj.
7166 Remove calls to g_settings_bind. Connect something_changedCB to
7167 "changed".
7168
7169 * xgselect.c: Add defined (HAVE_GSETTINGS).
7170 (xgselect_initialize): Ditto.
7171
7172 * process.c: Add defined (HAVE_GSETTINGS) for xgselect.h
7173 (wait_reading_process_output): Add defined (HAVE_GSETTINGS) for
7174 xg_select.
7175
7176 2011-07-01 Paul Eggert <eggert@cs.ucla.edu>
7177
7178 * eval.c (struct backtrace): Simplify and port the data structure.
7179 Do not assume that "int nargs : BITS_PER_INT - 2;" produces a
7180 signed bit field, as this assumption is not portable and it makes
7181 Emacs crash when compiled with Sun C 5.8 on sparc. Do not use
7182 "char debug_on_exit : 1" as this is not portable either; instead,
7183 use the portable "unsigned int debug_on_exit : 1". Remove unused
7184 member evalargs. Remove obsolete comments about cc bombing out.
7185
7186 2011-06-30 Jan Djärv <jan.h.d@swipnet.se>
7187
7188 * xsettings.c: Include glib-object.h, gio/gio.h if HAVE_GSETTINGS.
7189 Let HAVE_GSETTINGS override HAVE_GCONF.
7190 (store_monospaced_changed): New function.
7191 (EMACS_SETTINGS): A new type derived from GObject to handle
7192 GSettings notifications.
7193 (emacs_settings_constructor, emacs_settings_get_property)
7194 (emacs_settings_set_property, emacs_settings_class_init):
7195 New functions.
7196 (gsettings_client, gsettings_obj): New variables.
7197 (GSETTINGS_SCHEMA): New define.
7198 (something_changedCB): Call store_monospaced_changed.
7199 (init_gsettings): New function.
7200 (xsettings_initialize): Call init_gsettings.
7201 (syms_of_xsettings): Initialize gsettings_client, gsettings_obj
7202 to NULL.
7203
7204 * Makefile.in (SETTINGS_CFLAGS, SETTINGS_LIBS): Rename from
7205 GCONF_CFLAGS/LIBS.
7206
7207 2011-06-29 Martin Rudalics <rudalics@gmx.at>
7208
7209 * window.c (resize_root_window, grow_mini_window)
7210 (shrink_mini_window): Rename Qresize_root_window to
7211 Qwindow_resize_root_window and Qresize_root_window_vertically to
7212 Qwindow_resize_root_window_vertically.
7213
7214 2011-06-28 Paul Eggert <eggert@cs.ucla.edu>
7215
7216 * gnutls.c (Qgnutls_bootprop_verify_error): Remove unused var.
7217
7218 2011-06-27 Juanma Barranquero <lekktu@gmail.com>
7219
7220 * makefile.w32-in: Redesign dependencies so they reflect more
7221 clearly which files are directly included by each source file,
7222 and not through other includes.
7223
7224 2011-06-27 Martin Rudalics <rudalics@gmx.at>
7225
7226 * buffer.c (Qclone_number): Declare static and DEFSYM it.
7227 (sort_overlays, overlay_strings): When an overlay's clone number
7228 matches the window's clone number process the overlay even if
7229 the overlay's window property doesn't match the current window.
7230
7231 * window.c (Fwindow_vchild): Rename to Fwindow_top_child.
7232 (Fwindow_hchild): Rename to Fwindow_left_child.
7233 (Fwindow_next): Rename to Fwindow_next_sibling.
7234 (Fwindow_prev): Rename to Fwindow_prev_sibling.
7235 (resize_window_check): Rename to window_resize_check.
7236 (resize_window_apply): Rename to window_resize_apply.
7237 (Fresize_window_apply): Rename to Fwindow_resize_apply.
7238 (Fdelete_other_windows_internal, resize_frame_windows)
7239 (Fsplit_window_internal, Fdelete_window_internal)
7240 (grow_mini_window, shrink_mini_window)
7241 (Fresize_mini_window_internal): Fix callers accordingly.
7242
7243 2011-06-26 Jan Djärv <jan.h.d@swipnet.se>
7244
7245 * emacsgtkfixed.h: State that this is only used with Gtk+3.
7246 (emacs_fixed_set_min_size): Remove.
7247 (emacs_fixed_new): Take frame as argument.
7248
7249 * emacsgtkfixed.c: State that this is only used with Gtk+3.
7250 (_EmacsFixedPrivate): Remove minwidth/height.
7251 Add struct frame *f.
7252 (emacs_fixed_init): Initialize priv->f.
7253 (get_parent_class, emacs_fixed_set_min_size): Remove.
7254 (emacs_fixed_new): Set priv->f to argument.
7255 (emacs_fixed_get_preferred_width)
7256 (emacs_fixed_get_preferred_height): Use min_width/height from
7257 frames size_hint to set minimum and natural (Bug#8919).
7258 (XSetWMSizeHints, XSetWMNormalHints): Override these functions
7259 and use min_width/height from frames size_hint to set
7260 min_width/height (Bug#8919).
7261
7262 * gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
7263 (x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
7264 Fix indentation.
7265
7266 2011-06-26 Eli Zaretskii <eliz@gnu.org>
7267
7268 * bidi.c (bidi_paragraph_init): Test for ZV_BYTE before calling
7269 bidi_at_paragraph_end, since fast_looking_at doesn't like to be
7270 called at ZV.
7271
7272 2011-06-26 Chong Yidong <cyd@stupidchicken.com>
7273
7274 * process.c (wait_reading_process_output): Bypass select if
7275 waiting for a cell while ignoring keyboard input, and input is
7276 pending. Suggested by Jan Djärv (Bug#8869).
7277
7278 2011-06-25 Paul Eggert <eggert@cs.ucla.edu>
7279
7280 Use gnulib's dup2 module instead of rolling our own.
7281 * sysdep.c (dup2) [!HAVE_DUP2]: Remove; gnulib now does this.
7282
7283 2011-06-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
7284
7285 * dispnew.c (scrolling_window): Before scrolling, turn off a
7286 mouse-highlight in the window being scrolled.
7287
7288 2011-06-24 Juanma Barranquero <lekktu@gmail.com>
7289
7290 Move DEFSYM to lisp.h and use everywhere.
7291
7292 * character.h (DEFSYM): Move declaration...
7293 * lisp.h (DEFSYM): ...here.
7294
7295 * gnutls.c:
7296 * minibuf.c:
7297 * w32menu.c:
7298 * w32proc.c:
7299 * w32select.c: Don't include character.h.
7300
7301 * alloc.c (syms_of_alloc):
7302 * buffer.c (syms_of_buffer):
7303 * bytecode.c (syms_of_bytecode):
7304 * callint.c (syms_of_callint):
7305 * casefiddle.c (syms_of_casefiddle):
7306 * casetab.c (init_casetab_once):
7307 * category.c (init_category_once, syms_of_category):
7308 * ccl.c (syms_of_ccl):
7309 * cmds.c (syms_of_cmds):
7310 * composite.c (syms_of_composite):
7311 * dbusbind.c (syms_of_dbusbind):
7312 * dired.c (syms_of_dired):
7313 * dispnew.c (syms_of_display):
7314 * doc.c (syms_of_doc):
7315 * editfns.c (syms_of_editfns):
7316 * emacs.c (syms_of_emacs):
7317 * eval.c (syms_of_eval):
7318 * fileio.c (syms_of_fileio):
7319 * fns.c (syms_of_fns):
7320 * frame.c (syms_of_frame):
7321 * fringe.c (syms_of_fringe):
7322 * insdel.c (syms_of_insdel):
7323 * keymap.c (syms_of_keymap):
7324 * lread.c (init_obarray, syms_of_lread):
7325 * macros.c (syms_of_macros):
7326 * msdos.c (syms_of_msdos):
7327 * print.c (syms_of_print):
7328 * process.c (syms_of_process):
7329 * search.c (syms_of_search):
7330 * sound.c (syms_of_sound):
7331 * syntax.c (init_syntax_once, syms_of_syntax):
7332 * terminal.c (syms_of_terminal):
7333 * textprop.c (syms_of_textprop):
7334 * undo.c (syms_of_undo):
7335 * w32.c (globals_of_w32):
7336 * window.c (syms_of_window):
7337 * xdisp.c (syms_of_xdisp):
7338 * xfaces.c (syms_of_xfaces):
7339 * xfns.c (syms_of_xfns):
7340 * xmenu.c (syms_of_xmenu):
7341 * xsettings.c (syms_of_xsettings):
7342 * xterm.c (syms_of_xterm): Use DEFSYM.
7343
7344 2011-06-24 Teodor Zlatanov <tzz@lifelogs.com>
7345
7346 * gnutls.c (syms_of_gnutls): Use the DEFSYM macro from character.h.
7347
7348 2011-06-23 Paul Eggert <eggert@cs.ucla.edu>
7349
7350 Integer and buffer overflow fixes (Bug#8873).
7351
7352 * print.c (printchar, strout): Check for string overflow.
7353 (PRINTPREPARE, printchar, strout):
7354 Don't set size unless allocation succeeds.
7355
7356 * minibuf.c (read_minibuf_noninteractive): Use ptrdiff_t, not int,
7357 for sizes. Check for string overflow more accurately.
7358 Simplify newline removal at end; this suppresses a GCC 4.6.0 warning.
7359
7360 * macros.c: Integer and buffer overflow fixes.
7361 * keyboard.h (struct keyboard.kbd_macro_bufsize):
7362 * macros.c (Fstart_kbd_macro, store_kbd_macro_char):
7363 Use ptrdiff_t, not int, for sizes.
7364 Don't increment bufsize until after realloc succeeds.
7365 Check for size-calculation overflow.
7366 (Fstart_kbd_macro): Use EMACS_INT, not int, for XINT result.
7367
7368 * lisp.h (DEFVAR_KBOARD): Use offsetof instead of char * finagling.
7369
7370 * lread.c: Integer overflow fixes.
7371 (read_integer): Radix is now EMACS_INT, not int,
7372 to improve quality of diagnostics for out-of-range radices.
7373 Calculate buffer size correctly for out-of-range radices.
7374 (read1): Check for integer overflow in radices, and in
7375 read-circle numbers.
7376 (read_escape): Avoid int overflow.
7377 (Fload, openp, read_buffer_size, read1)
7378 (substitute_object_recurse, read_vector, read_list, map_obarray):
7379 Use ptrdiff_t, not int, for sizes.
7380 (read1): Use EMACS_INT, not int, for sizes.
7381 Check for size overflow.
7382
7383 * image.c (cache_image): Check for size arithmetic overflow.
7384
7385 * lread.c: Integer overflow issues.
7386 (saved_doc_string_size, saved_doc_string_length)
7387 (prev_saved_doc_string_size, prev_saved_doc_string_length):
7388 Now ptrdiff_t, not int.
7389 (read1): Don't assume doc string length fits in int. Check for
7390 out-of-range doc string lengths.
7391 (read_list): Don't assume file position fits in int.
7392 (read_escape): Check for hex character overflow.
7393
7394 2011-06-22 Leo Liu <sdl.web@gmail.com>
7395
7396 * minibuf.c (Fcompleting_read_default, Vcompleting_read_function):
7397 Move to minibuffer.el.
7398
7399 2011-06-22 Paul Eggert <eggert@cs.ucla.edu>
7400
7401 Fixes for GLYPH_DEBUG found by GCC 4.6.0 static checking.
7402 The following patches are for when GLYPH_DEBUG && !XASSERT.
7403 * dispextern.h (trace_redisplay_p, dump_glyph_string):
7404 * dispnew.c (flush_stdout):
7405 * xdisp.c (dump_glyph_row, dump_glyph_matrix, dump_glyph):
7406 Mark as externally visible.
7407 * dispnew.c (check_window_matrix_pointers): Now static.
7408 * dispnew.c (window_to_frame_vpos):
7409 * xfns.c (unwind_create_frame):
7410 * xterm.c (x_check_font): Remove unused local.
7411 * scroll.c (CHECK_BOUNDS):
7412 * xfaces.c (cache_fache): Rename local to avoid shadowing.
7413 * xfns.c, w32fns.c (image_cache_refcount, dpyinfo_refcount): Now static.
7414 * xdisp.c (check_window_end): Now a no-op if !XASSERTS.
7415 (debug_first_unchanged_at_end_vpos, debug_last_unchanged_at_beg_vpos)
7416 (debug_dvpos, debug_dy, debug_delta, debug_delta_bytes, debug_end_vpos):
7417 Now static.
7418 (debug_method_add): Use va_list and vsprintf rather than relying
7419 on undefined behavior with wrong number of arguments.
7420 (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
7421 Don't assume ptrdiff_t and EMACS_INT are the same width as int.
7422 In this code, it's OK to assume C99 behavior for ptrdiff_t formats
7423 since we're not interested in debugging glyphs with old libraries.
7424 * xfaces.c (cache_face): Move debugging code earlier; this pacifies
7425 GCC 4.6.0's static checking.
7426
7427 2011-06-22 Paul Eggert <eggert@cs.ucla.edu>
7428
7429 Integer overflow and signedness fixes (Bug#8873).
7430 A few related buffer overrun fixes, too.
7431
7432 * font.c (font_score): Use EMACS_INT, not int, to store XINT value.
7433
7434 * dispextern.h (struct face.stipple):
7435 * image.c (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
7436 (x_bitmap_mask, x_allocate_bitmap_record)
7437 (x_create_bitmap_from_data, x_create_bitmap_from_file)
7438 (x_destroy_bitmap, x_destroy_all_bitmaps, x_create_bitmap_mask)
7439 (x_create_bitmap_from_xpm_data):
7440 * nsterm.h (struct ns_display_info.bitmaps_size, .bitmaps_last):
7441 * w32term.h (struct w32_display_info.icon_bitmap_id, .bitmaps_size)
7442 (.bitmaps_last):
7443 * xfaces.c (load_pixmap):
7444 * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap):
7445 * xterm.h (struct x_display_info.icon_bitmap_id, .bitmaps_size)
7446 (.bitmaps_last, struct x_output.icon_bitmap):
7447 Use ptrdiff_t, not int, for bitmap indexes.
7448 (x_allocate_bitmap_record): Check for size overflow.
7449 * dispextern.h, lisp.h: Adjust to API changes elsewhere.
7450
7451 Use ptrdiff_t, not int, for overlay counts.
7452 * buffer.h (overlays_at, sort_overlays, GET_OVERLAYS_AT):
7453 * editfns.c (overlays_around, get_pos_property):
7454 * textprop.c (get_char_property_and_overlay):
7455 * xdisp.c (next_overlay_change, note_mouse_highlight):
7456 * xfaces.c (face_at_buffer_position):
7457 * buffer.c (OVERLAY_COUNT_MAX): New macro.
7458 (overlays_at, overlays_in, sort_overlays, Foverlays_at)
7459 (Fnext_overlay_change, Fprevious_overlay_change)
7460 (mouse_face_overlay_overlaps, Foverlays_in):
7461 Use ptrdiff_t, not int, for sizes.
7462 (overlays_at, overlays_in): Check for size-calculation overflow.
7463
7464 * xterm.c (xim_initialize, same_x_server): Strlen may not fit in int.
7465
7466 * xsmfns.c (smc_save_yourself_CB, x_session_initialize): Avoid strlen.
7467 (x_session_initialize): Do not assume string length fits in int.
7468
7469 * xsettings.c (apply_xft_settings): Fix potential buffer overrun.
7470 This is unlikely, but can occur if DPI is outlandish.
7471
7472 * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
7473 * xselect.c (Fx_get_atom_name): Avoid need for strlen.
7474
7475 * xrdb.c: Don't assume strlen fits in int; avoid some strlens.
7476 * xrdb.c (magic_file_p, search_magic_path):
7477 Omit last arg SUFFIX; it was always 0. All callers changed.
7478 (magic_file_p): Use ptrdiff_t, not int. Check for size overflow.
7479
7480 * xfont.c (xfont_match): Avoid need for strlen.
7481
7482 * xfns.c: Don't assume strlen fits in int.
7483 (xic_create_fontsetname, x_window): Use ptrdiff_t, not int.
7484
7485 * xdisp.c (message_log_check_duplicate): Return intmax_t,
7486 not unsigned long, as we prefer signed integers. All callers changed.
7487 Detect integer overflow in repeat count.
7488 (message_dolog): Don't assume print length fits in 39 bytes.
7489 (display_mode_element): Don't assume strlen fits in int.
7490
7491 * termcap.c: Don't assume sizes fit in int and never overflow.
7492 (struct termcap_buffer, tgetent): Use ptrdiff_t, not int, for sizes.
7493 (gobble_line): Check for size-calculation overflow.
7494
7495 * minibuf.c (Fread_buffer):
7496 * lread.c (intern, intern_c_string):
7497 * image.c (xpm_scan) [HAVE_NS && !HAVE_XPM]:
7498 Don't assume string length fits in int.
7499
7500 * keyboard.c (parse_tool_bar_item):
7501 * gtkutil.c (style_changed_cb): Avoid need for strlen.
7502
7503 * font.c: Don't assume string length fits in int.
7504 (font_parse_xlfd, font_parse_fcname, font_unparse_fcname):
7505 Use ptrdiff_t, not int.
7506 (font_intern_prop): Don't assume string length fits in int.
7507 Don't assume integer property fits in fixnum.
7508 * font.h (font_intern_prop): 2nd arg is now ptrdiff_t, not int.
7509
7510 * filelock.c: Fix some buffer overrun and integer overflow issues.
7511 (get_boot_time): Don't assume gzip command string fits in 100 bytes.
7512 Reformulate so as not to need the command string.
7513 Invoke gzip -cd rather than gunzip, as it's more portable.
7514 (lock_info_type, lock_file_1, lock_file):
7515 Don't assume pid_t and time_t fit in unsigned long.
7516 (LOCK_PID_MAX): Remove; we now use more-reliable bounds.
7517 (current_lock_owner): Prefer signed type for sizes.
7518 Use memcpy, not strncpy, where memcpy is what is really wanted.
7519 Don't assume (via atoi) that time_t and pid_t fit in int.
7520 Check for time_t and/or pid_t out of range, e.g., via a network share.
7521 Don't alloca where an auto var works fine.
7522
7523 * fileio.c: Fix some integer overflow issues.
7524 (file_name_as_directory, Fexpand_file_name, Fsubstitute_in_file_name):
7525 Don't assume string length fits in int.
7526 (directory_file_name): Don't assume string length fits in long.
7527 (make_temp_name): Don't assume pid fits in int, or that its print
7528 length is less than 20.
7529
7530 * data.c (Fsubr_name): Rewrite to avoid a strlen call.
7531
7532 * coding.c (make_subsidiaries): Don't assume string length fits in int.
7533
7534 * callproc.c (child_setup): Rewrite to avoid two strlen calls.
7535
7536 * process.c (Fformat_network_address): Use EMACS_INT, not EMACS_UINT.
7537 We prefer signed integers, even for size calculations.
7538
7539 * emacs.c: Don't assume string length fits in 'int'.
7540 (DEFINE_DUMMY_FUNCTION, sort_args): Use ptrdiff_t, not int.
7541 (main): Don't invoke strlen when not needed.
7542
7543 * dbusbind.c (XD_ERROR): Don't arbitrarily truncate string.
7544 (XD_DEBUG_MESSAGE): Don't waste a byte.
7545
7546 * callproc.c (getenv_internal_1, getenv_internal)
7547 (Fgetenv_internal):
7548 * buffer.c (init_buffer): Don't assume string length fits in 'int'.
7549
7550 * lread.c (invalid_syntax): Omit length argument.
7551 All uses changed. This doesn't fix a bug, but it simplifies the
7552 code away from its former Hollerith-constant appearance, and it's
7553 one less 'int' to worry about when looking at integer-overflow issues.
7554 (string_to_number): Simplify 2011-04-26 change by invoking xsignal1.
7555
7556 * lisp.h (DEFUN): Remove bogus use of sizeof (struct Lisp_Subr).
7557 This didn't break anything, but it didn't help either.
7558 It's confusing to put a bogus integer in a place where the actual
7559 value does not matter.
7560 (LIST_END_P): Remove unused macro and its bogus comment.
7561 (make_fixnum_or_float): Remove unnecessary cast to EMACS_INT.
7562
7563 * lisp.h (union Lisp_Object.i): EMACS_INT, not EMACS_UINT.
7564 This is for consistency with the ordinary, non-USE_LISP_UNION_TYPE,
7565 implementation.
7566 (struct Lisp_Bool_Vector.size): EMACS_INT, not EMACS_UINT.
7567 We prefer signed types, and the value cannot exceed the EMACS_INT
7568 range anyway (because otherwise the length would not be representable).
7569 (XSET) [USE_LISP_UNION_TYPE]: Use uintptr_t and intptr_t,
7570 not EMACS_UINT and EMACS_INT, when converting pointer to integer.
7571 This avoids a GCC warning when WIDE_EMACS_INT.
7572
7573 * indent.c (sane_tab_width): New function.
7574 (current_column, scan_for_column, Findent_to, position_indentation)
7575 (compute_motion): Use it. This is just for clarity.
7576 (Fcompute_motion): Don't assume hscroll and tab offset fit in int.
7577
7578 * image.c (xbm_image_p): Don't assume stated width, height fit in int.
7579
7580 * lisp.h (lint_assume): New macro.
7581 * composite.c (composition_gstring_put_cache):
7582 * ftfont.c (ftfont_shape_by_flt): Use it to pacify GCC 4.6.0.
7583
7584 * editfns.c, insdel.c:
7585 Omit unnecessary forward decls, to simplify future changes.
7586
7587 * ftfont.c (ftfont_shape_by_flt): Use signed integers for lengths.
7588
7589 * font.c (Ffont_shape_gstring): Don't assume glyph len fits in 'int'.
7590
7591 * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
7592 Use much-faster test for byte-length change.
7593 Don't assume string byte-length fits in 'int'.
7594 Check that character arg fits in 'int'.
7595 (mapcar1): Declare byte as byte, for clarity.
7596
7597 * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
7598
7599 * fns.c (concat): Catch string overflow earlier.
7600 Do not rely on integer wraparound.
7601
7602 * dispextern.h (struct it.overlay_strings_charpos)
7603 (struct it.selective): Now EMACS_INT, not int.
7604 * xdisp.c (forward_to_next_line_start)
7605 (back_to_previous_visible_line_start)
7606 (reseat_at_next_visible_line_start, next_element_from_buffer):
7607 Don't arbitrarily truncate the value of 'selective' to int.
7608
7609 * xdisp.c (init_iterator): Use XINT, not XFASTINT; it might be < 0.
7610
7611 * composite.c: Don't truncate sizes to 'int'.
7612 (composition_gstring_p, composition_reseat_it)
7613 (composition_adjust_point): Use EMACS_INT, not int.
7614 (get_composition_id, composition_gstring_put_cache): Use EMACS_INT,
7615 not EMACS_UINT, for indexes.
7616
7617 * category.h (CATEGORY_SET_P): Remove unnecessary cast to EMACS_INT.
7618
7619 * buffer.c: Include <verify.h>.
7620 (struct sortvec.priority, struct sortstr.priority):
7621 Now EMACS_INT, not int.
7622 (compare_overlays, cmp_for_strings): Avoid subtraction overflow.
7623 (struct sortstr.size, record_overlay_string)
7624 (struct sortstrlist.size, struct sortlist.used):
7625 Don't truncate size to int.
7626 (record_overlay_string): Check for size-calculation overflow.
7627 (init_buffer_once): Check at compile-time, not run-time.
7628
7629 2011-06-22 Jim Meyering <meyering@redhat.com>
7630
7631 Don't leak an XBM-image-sized buffer
7632 * image.c (xbm_load): Free the image buffer after using it.
7633
7634 2011-06-21 Paul Eggert <eggert@cs.ucla.edu>
7635
7636 Port to Sun C.
7637 * composite.c (find_automatic_composition): Omit needless 'return 0;'
7638 that Sun C diagnosed.
7639 * fns.c (secure_hash): Fix pointer signedness issue.
7640 * intervals.c (static_offset_intervals): New function.
7641 (offset_intervals): Use it.
7642
7643 2011-06-21 Leo Liu <sdl.web@gmail.com>
7644
7645 * deps.mk (fns.o):
7646 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha256.h and
7647 sha512.h.
7648
7649 * fns.c (secure_hash): Rename from crypto_hash_function and change
7650 the first arg to accept symbols.
7651 (Fsecure_hash): New primitive.
7652 (syms_of_fns): New symbols.
7653
7654 2011-06-20 Deniz Dogan <deniz@dogan.se>
7655
7656 * process.c (Fset_process_buffer): Clarify return value in
7657 docstring.
7658
7659 2011-06-18 Chong Yidong <cyd@stupidchicken.com>
7660
7661 * dispnew.c (add_window_display_history): Use BVAR.
7662
7663 * xdisp.c (debug_method_add): Use BVAR.
7664 (check_window_end, dump_glyph_matrix, dump_glyph)
7665 (dump_glyph_row, dump_glyph_string): Convert arglist to ANSI C.
7666
7667 * xfaces.c (check_lface_attrs, check_lface, dump_realized_face):
7668 Likewise.
7669
7670 * xfns.c (Fx_create_frame, x_create_tip_frame): Delay image cache
7671 check till after the cache is created in init_frame_faces.
7672
7673 2011-06-17 Stefan Monnier <monnier@iro.umontreal.ca>
7674
7675 * fns.c (Fsafe_length): Yet another int/Lisp_Object mixup.
7676
7677 2011-06-16 Paul Eggert <eggert@cs.ucla.edu>
7678
7679 * lisp.h: Include <limits.h>, for INT_MAX, LONG_MAX, LLONG_MAX.
7680 Without this, prin1 mishandles Lisp_Misc_Save_Value printing on
7681 hosts with pre-C99 libraries, because pD is wrongly defined to "t".
7682
7683 Improve buffer-overflow checking (Bug#8873).
7684 * fileio.c (Finsert_file_contents):
7685 * insdel.c (insert_from_buffer_1, replace_range, replace_range_2):
7686 Remove the old (too-loose) buffer overflow checks.
7687 They weren't needed, since make_gap checks for buffer overflow.
7688 * insdel.c (make_gap_larger): Catch buffer overflows that were missed.
7689 The old code merely checked for Emacs fixnum overflow, and relied
7690 on undefined (wraparound) behavior. The new code avoids undefined
7691 behavior, and also checks for ptrdiff_t and/or size_t overflow.
7692
7693 * editfns.c (Finsert_char): Don't dump core with very negative counts.
7694 Tune. Don't use wider integers than needed. Don't use alloca.
7695 Use a bigger 'string' buffer. Rewrite to avoid 'n > 0' test.
7696
7697 * insdel.c (replace_range): Fix buf overflow when insbytes < outgoing.
7698
7699 * insdel.c, lisp.h (buffer_overflow): New function.
7700 (insert_from_buffer_1, replace_range, replace_range_2):
7701 * insdel.c (make_gap_larger):
7702 * editfns.c (Finsert_char):
7703 * fileio.c (Finsert_file_contents): Use it, to normalize wording.
7704
7705 * buffer.h (BUF_BYTES_MAX): Cast to ptrdiff_t so that it's signed.
7706
7707 2011-06-15 Paul Eggert <eggert@cs.ucla.edu>
7708
7709 Integer overflow and signedness fixes (Bug#8873, Bug#8828).
7710
7711 * ccl.c (ASCENDING_ORDER): New macro, to work around GCC bug 43772.
7712 (GET_CCL_RANGE, IN_INT_RANGE): Use it.
7713
7714 * fileio.c: Don't assume EMACS_INT fits in off_t.
7715 (emacs_lseek): New static function.
7716 (Finsert_file_contents, Fwrite_region): Use it.
7717 Use SEEK_SET, SEEK_CUR, SEEK_END as appropriate.
7718
7719 * fns.c (Fload_average): Don't assume 100 * load average fits in int.
7720
7721 * fns.c: Don't overflow int when computing a list length.
7722 * fns.c (QUIT_COUNT_HEURISTIC): New constant.
7723 (Flength, Fsafe_length): Use EMACS_INT, not int, to avoid unwanted
7724 truncation on 64-bit hosts. Check for QUIT every
7725 QUIT_COUNT_HEURISTIC entries rather than every other entry; that's
7726 faster and is responsive enough.
7727 (Flength): Report an error instead of overflowing an integer.
7728 (Fsafe_length): Return a float if the value is not representable
7729 as a fixnum. This shouldn't happen except in contrived situations.
7730 (Fnthcdr, Fsort): Don't assume list length fits in int.
7731 (Fcopy_sequence): Don't assume vector length fits in int.
7732
7733 * alloc.c: Check that resized vectors' lengths fit in fixnums.
7734 (header_size, word_size): New constants.
7735 (allocate_vectorlike): Don't check size overflow here.
7736 (allocate_vector): Check it here instead, since this is the only
7737 caller of allocate_vectorlike that could cause overflow.
7738 Check that the new vector's length is representable as a fixnum.
7739
7740 * fns.c (next_almost_prime): Don't return a multiple of 3 or 5.
7741 The previous code was bogus. For example, next_almost_prime (32)
7742 returned 39, which is undesirable as it is a multiple of 3; and
7743 next_almost_prime (24) returned 25, which is a multiple of 5 so
7744 why was the code bothering to check for multiples of 7?
7745
7746 * bytecode.c (exec_byte_code): Use ptrdiff_t, not int, for vector length.
7747
7748 * eval.c, doprnt.c (SIZE_MAX): Remove; inttypes.h defines this now.
7749
7750 Variadic C functions now count arguments with ptrdiff_t.
7751 This partly undoes my 2011-03-30 change, which replaced int with size_t.
7752 Back then I didn't know that the Emacs coding style prefers signed int.
7753 Also, in the meantime I found a few more instances where arguments
7754 were being counted with int, which may truncate counts on 64-bit
7755 machines, or EMACS_INT, which may be unnecessarily wide.
7756 * lisp.h (struct Lisp_Subr.function.aMANY)
7757 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call):
7758 Arg counts are now ptrdiff_t, not size_t.
7759 All variadic functions and their callers changed accordingly.
7760 (struct gcpro.nvars): Now size_t, not size_t. All uses changed.
7761 * bytecode.c (exec_byte_code): Check maxdepth for overflow,
7762 to avoid potential buffer overrun. Don't assume arg counts fit in 'int'.
7763 * callint.c (Fcall_interactively): Check arg count for overflow,
7764 to avoid potential buffer overrun. Use signed char, not 'int',
7765 for 'varies' array, so that we needn't bother to check its size
7766 calculation for overflow.
7767 * editfns.c (Fformat): Use ptrdiff_t, not EMACS_INT, to count args.
7768 * eval.c (apply_lambda):
7769 * fns.c (Fmapconcat): Use XFASTINT, not XINT, to get args length.
7770 (struct textprop_rec.argnum): Now ptrdiff_t, not int. All uses changed.
7771 (mapconcat): Use ptrdiff_t, not int and EMACS_INT, to count args.
7772
7773 * callint.c (Fcall_interactively): Don't use index var as event count.
7774
7775 * vm-limit.c (check_memory_limits): Fix incorrect extern function decls.
7776 * mem-limits.h (SIZE): Remove; no longer used.
7777
7778 * xterm.c (x_alloc_nearest_color_1): Prefer int to long when int works.
7779
7780 Remove unnecessary casts.
7781 * xterm.c (x_term_init):
7782 * xfns.c (x_set_border_pixel):
7783 * widget.c (create_frame_gcs): Remove casts to unsigned long etc.
7784 These aren't needed now that we assume ANSI C.
7785
7786 * sound.c (Fplay_sound_internal): Remove cast to unsigned long.
7787 It's more likely to cause problems (due to unsigned overflow)
7788 than to cure them.
7789
7790 * dired.c (Ffile_attributes): Don't use 32-bit hack on 64-bit hosts.
7791
7792 * unexelf.c (unexec): Don't assume BSS addr fits in unsigned.
7793
7794 * xterm.c (handle_one_xevent): Omit unnecessary casts to unsigned.
7795
7796 * keyboard.c (modify_event_symbol): Don't limit alist len to UINT_MAX.
7797
7798 * lisp.h (CHAR_TABLE_SET): Omit now-redundant test.
7799
7800 * lread.c (Fload): Don't compare a possibly-garbage time_t value.
7801
7802 GLYPH_CODE_FACE returns EMACS_INT, not int.
7803 * dispextern.h (merge_faces):
7804 * xfaces.c (merge_faces):
7805 * xdisp.c (get_next_display_element, next_element_from_display_vector):
7806 Don't assume EMACS_INT fits in int.
7807
7808 * character.h (CHAR_VALID_P): Remove unused parameter.
7809 * fontset.c, lisp.h, xdisp.c: All uses changed.
7810
7811 * editfns.c (Ftranslate_region_internal): Omit redundant test.
7812
7813 * fns.c (concat): Minor tuning based on overflow analysis.
7814 This doesn't fix any bugs. Use int to hold character, instead
7815 of constantly refetching from Emacs object. Use XFASTINT, not
7816 XINT, for value known to be a character. Don't bother comparing
7817 a single byte to 0400, as it's always less.
7818
7819 * floatfns.c (Fexpt):
7820 * fileio.c (make_temp_name): Omit unnecessary cast to unsigned.
7821
7822 * editfns.c (Ftranslate_region_internal): Use int, not EMACS_INT
7823 for characters.
7824
7825 * doc.c (get_doc_string): Omit (unsigned)c that mishandled negatives.
7826
7827 * data.c (Faset): If ARRAY is a string, check that NEWELT is a char.
7828 Without this fix, on a 64-bit host (aset S 0 4294967386) would
7829 incorrectly succeed when S was a string, because 4294967386 was
7830 truncated before it was used.
7831
7832 * chartab.c (Fchar_table_range): Use CHARACTERP to check range.
7833 Otherwise, an out-of-range integer could cause undefined behavior
7834 on a 64-bit host.
7835
7836 * composite.c: Use int, not EMACS_INT, for characters.
7837 (fill_gstring_body, composition_compute_stop_pos): Use int, not
7838 EMACS_INT, for values that are known to be in character range.
7839 This doesn't fix any bugs but is the usual style inside Emacs and
7840 may generate better code on 32-bit machines.
7841
7842 Make sure a 64-bit char is never passed to ENCODE_CHAR.
7843 This is for reasons similar to the recent CHAR_STRING fix.
7844 * charset.c (Fencode_char): Check that character arg is actually
7845 a character. Pass an int to ENCODE_CHAR.
7846 * charset.h (ENCODE_CHAR): Verify that the character argument is no
7847 wider than 'int', as a compile-time check to prevent future regressions
7848 in this area.
7849
7850 * character.c (char_string): Remove unnecessary casts.
7851
7852 Make sure a 64-bit char is never passed to CHAR_STRING.
7853 Otherwise, CHAR_STRING would do the wrong thing on a 64-bit platform,
7854 by silently ignoring the top 32 bits, allowing some values
7855 that were far too large to be valid characters.
7856 * character.h: Include <verify.h>.
7857 (CHAR_STRING, CHAR_STRING_ADVANCE): Verify that the character
7858 arguments are no wider than unsigned, as a compile-time check
7859 to prevent future regressions in this area.
7860 * data.c (Faset):
7861 * editfns.c (Fchar_to_string, general_insert_function, Finsert_char)
7862 (Fsubst_char_in_region):
7863 * fns.c (concat):
7864 * xdisp.c (decode_mode_spec_coding):
7865 Adjust to CHAR_STRING's new requirement.
7866 * editfns.c (Finsert_char, Fsubst_char_in_region):
7867 * fns.c (concat): Check that character args are actually
7868 characters. Without this test, these functions did the wrong
7869 thing with wildly out-of-range values on 64-bit hosts.
7870
7871 Remove incorrect casts to 'unsigned' that lose info on 64-bit hosts.
7872 These casts should not be needed on 32-bit hosts, either.
7873 * keyboard.c (read_char):
7874 * lread.c (Fload): Remove casts to unsigned.
7875
7876 * lisp.h (UNSIGNED_CMP): New macro.
7877 This fixes comparison bugs on 64-bit hosts.
7878 (ASCII_CHAR_P): Use it.
7879 * casefiddle.c (casify_object):
7880 * character.h (ASCII_BYTE_P, CHAR_VALID_P)
7881 (SINGLE_BYTE_CHAR_P, CHAR_STRING):
7882 * composite.h (COMPOSITION_ENCODE_RULE_VALID):
7883 * dispextern.h (FACE_FROM_ID):
7884 * keyboard.c (read_char): Use UNSIGNED_CMP.
7885
7886 * xmenu.c (dialog_selection_callback) [!USE_GTK]: Cast to intptr_t,
7887 not to EMACS_INT, to avoid GCC warning.
7888
7889 * xfns.c (x_set_scroll_bar_default_width): Remove unused 'int' locals.
7890
7891 * buffer.h (PTR_BYTE_POS, BUF_PTR_BYTE_POS): Remove harmful cast.
7892 The cast incorrectly truncated 64-bit byte offsets to 32 bits, and
7893 isn't needed on 32-bit machines.
7894
7895 * buffer.c (Fgenerate_new_buffer_name):
7896 Use EMACS_INT for count, not int.
7897 (advance_to_char_boundary): Return EMACS_INT, not int.
7898
7899 * data.c (Qcompiled_function): Now static.
7900
7901 * window.c (window_body_lines): Now static.
7902
7903 * image.c (gif_load): Rename local to avoid shadowing.
7904
7905 * lisp.h (SAFE_ALLOCA_LISP): Check for integer overflow.
7906 (struct Lisp_Save_Value): Use ptrdiff_t, not int, for 'integer' member.
7907 * alloc.c (make_save_value): Integer argument is now of type
7908 ptrdiff_t, not int.
7909 (mark_object): Use ptrdiff_t, not int.
7910 * lisp.h (pD): New macro.
7911 * print.c (print_object): Use it.
7912
7913 * alloc.c: Use EMACS_INT, not int, to count objects.
7914 (total_conses, total_markers, total_symbols, total_vector_size)
7915 (total_free_conses, total_free_markers, total_free_symbols)
7916 (total_free_floats, total_floats, total_free_intervals)
7917 (total_intervals, total_strings, total_free_strings):
7918 Now EMACS_INT, not int. All uses changed.
7919 (Fgarbage_collect): Compute overall total using a double, so that
7920 integer overflow is less likely to be a problem. Check for overflow
7921 when converting back to an integer.
7922 (n_interval_blocks, n_string_blocks, n_float_blocks, n_cons_blocks)
7923 (n_vectors, n_symbol_blocks, n_marker_blocks): Remove.
7924 These were 'int' variables that could overflow on 64-bit hosts;
7925 they were never used, so remove them instead of repairing them.
7926 (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'.
7927 (inhibit_garbage_collection): Set gc_cons_threshold to max value.
7928 Previously, this ceilinged at INT_MAX, but that doesn't work on
7929 64-bit machines.
7930 (allocate_pseudovector): Don't use EMACS_INT when int would do.
7931
7932 * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
7933 (allocate_vectorlike): Check for ptrdiff_t overflow.
7934 (mark_vectorlike, mark_char_table, mark_object): Avoid EMACS_UINT
7935 when a (possibly-narrower) signed value would do just as well.
7936 We prefer using signed arithmetic, to avoid comparison confusion.
7937
7938 * alloc.c: Catch some string size overflows that we were missing.
7939 (XMALLOC_OVERRUN_CHECK_SIZE) [!XMALLOC_OVERRUN_CHECK]: Define to 0,
7940 for convenience in STRING_BYTES_MAX.
7941 (STRING_BYTES_MAX): New macro, superseding the old one in lisp.h.
7942 The definition here is exact; the one in lisp.h was approximate.
7943 (allocate_string_data): Check for string overflow. This catches
7944 some instances we weren't catching before. Also, it catches
7945 size_t overflow on (unusual) hosts where SIZE_MAX <= min
7946 (PTRDIFF_MAX, MOST_POSITIVE_FIXNUM), e.g., when size_t is 32 bits
7947 and ptrdiff_t and EMACS_INT are both 64 bits.
7948
7949 * character.c, coding.c, doprnt.c, editfns.c, eval.c:
7950 All uses of STRING_BYTES_MAX replaced by STRING_BYTES_BOUND.
7951 * lisp.h (STRING_BYTES_BOUND): Rename from STRING_BYTES_MAX.
7952
7953 * character.c (string_escape_byte8): Fix nbytes/nchars typo.
7954
7955 * alloc.c (Fmake_string): Check for out-of-range init.
7956
7957 2011-06-15 Stefan Monnier <monnier@iro.umontreal.ca>
7958
7959 * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
7960
7961 2011-06-14 Jan Djärv <jan.h.d@swipnet.se>
7962
7963 * xfns.c (x_set_scroll_bar_default_width): Remove argument to
7964 xg_get_default_scrollbar_width.
7965
7966 * gtkutil.c: Include emacsgtkfixed.h if HAVE_GTK3.
7967 (int_gtk_range_get_value): Move to the scroll bar part of the file.
7968 (style_changed_cb): Call update_theme_scrollbar_width and call
7969 x_set_scroll_bar_default_width and xg_frame_set_char_size for
7970 all frames (Bug#8505).
7971 (xg_create_frame_widgets): Call emacs_fixed_new if HAVE_GTK3 (Bug#8505).
7972 Call gtk_window_set_resizable if HAVE_GTK3.
7973 (x_wm_set_size_hint): Call emacs_fixed_set_min_size with min width
7974 and height if HAVE_GTK3 (Bug#8505).
7975 (scroll_bar_width_for_theme): New variable.
7976 (update_theme_scrollbar_width): New function.
7977 (xg_get_default_scrollbar_width): Move code to
7978 update_theme_scrollbar_width, just return scroll_bar_width_for_theme.
7979 (xg_initialize): Call update_theme_scrollbar_width.
7980
7981 * gtkutil.h (xg_get_default_scrollbar_width): Remove argument.
7982
7983 * emacsgtkfixed.c, emacsgtkfixed.h: New files.
7984
7985 2011-06-12 Martin Rudalics <rudalics@gmx.at>
7986
7987 * frame.c (make_frame): Call other_buffer_safely instead of
7988 other_buffer.
7989
7990 * window.c (temp_output_buffer_show): Call display_buffer with
7991 second argument Vtemp_buffer_show_specifiers and reset latter
7992 immediately after the call.
7993 (Vtemp_buffer_show_specifiers): New variable.
7994 (auto_window_vscroll_p, next_screen_context_lines)
7995 (Vscroll_preserve_screen_position): Remove leading asterisks from
7996 doc-strings.
7997
7998 2011-06-12 Paul Eggert <eggert@cs.ucla.edu>
7999
8000 Fix minor problems found by GCC 4.6.0 static checking.
8001 * buffer.c (Qclone_number): Remove for now, as it's unused.
8002 (record_buffer, Funrecord_buffer): Rename local to avoid shadowing.
8003 (record_buffer): Remove unused local.
8004 * frame.c (other_visible_frames, frame_buffer_list): Now static.
8005 (set_frame_buffer_list): Remove; unused.
8006 * frame.h (other_visible_frames): Remove decl.
8007 * keyboard.h (menu_items_inuse): Declare only if USE_GTK || USE_MOTIF.
8008 * lisp.h (frame_buffer_list, set_frame_buffer_list): Remove decls.
8009 (add_gpm_wait_descriptor, delete_gpm_wait_descriptor): Declare only
8010 if HAVE_GPM.
8011 * menu.c (menu_items_inuse): Now static unless USE_GTK || USE_MOTIF.
8012 * process.c (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
8013 Define only if HAVE_GPM.
8014 * widget.c (EmacsFrameResize, emacsFrameClassRec): Now static.
8015 (update_hints_inhibit): Remove; never set. All uses removed.
8016 * widgetprv.h (emacsFrameClassRec): Remove decl.
8017 * window.c (delete_deletable_window): Now returns void, since it
8018 wasn't returning anything.
8019 (compare_window_configurations): Remove unused locals.
8020 * xfns.c (x_set_scroll_bar_default_width): Remove unused locals.
8021 * xmenu.c (x_menu_set_in_use): Define only if USE_GTK || USE_MOTIF.
8022 (dialog_selection_callback) [!USE_GTK]: Prefer intptr_t for integers
8023 the same widths as pointers. This follows up on the 2011-05-06 patch.
8024 * xterm.c (x_alloc_lighter_color_for_widget): Define only if USE_LUCID.
8025 * xterm.h: Likewise.
8026 (x_menu_set_in_use): Declare only if USE_GTK || USE_MOTIF.
8027
8028 2011-06-12 Juanma Barranquero <lekktu@gmail.com>
8029
8030 * makefile.w32-in: Update dependencies.
8031 (LISP_H): Add lib/intprops.h.
8032
8033 2011-06-11 Chong Yidong <cyd@stupidchicken.com>
8034
8035 * image.c (gif_load): Add animation frame delay to the metadata.
8036 (syms_of_image): Use DEFSYM. New symbol `delay'.
8037
8038 2011-06-11 Martin Rudalics <rudalics@gmx.at>
8039
8040 * window.c (delete_deletable_window): Re-add.
8041 (Fset_window_configuration): Rewrite to handle dead buffers and
8042 consequently deletable windows.
8043 (window_tree, Fwindow_tree): Remove. Supply functionality in
8044 window.el.
8045 (compare_window_configurations): Simplify code.
8046
8047 2011-06-11 Andreas Schwab <schwab@linux-m68k.org>
8048
8049 * image.c (imagemagick_load_image): Fix type mismatch.
8050 (Fimagemagick_types): Likewise.
8051
8052 * window.h (replace_buffer_in_windows): Declare.
8053
8054 2011-06-11 Martin Rudalics <rudalics@gmx.at>
8055
8056 * buffer.c: New Lisp objects Qbuffer_list_update_hook and
8057 Qclone_number. Remove external declaration of Qdelete_window.
8058 (Fbuffer_list): Rewrite doc-string. Minor restructuring of
8059 code.
8060 (Fget_buffer_create, Fmake_indirect_buffer, Frename_buffer):
8061 Run Qbuffer_list_update_hook if allowed.
8062 (Fother_buffer): Rewrite doc-string. Major rewrite for new
8063 buffer list implementation.
8064 (other_buffer_safely): New function.
8065 (Fkill_buffer): Replace call to replace_buffer_in_all_windows by
8066 calls to replace_buffer_in_windows and
8067 replace_buffer_in_windows_safely. Run Qbuffer_list_update_hook
8068 if allowed.
8069 (record_buffer): Inhibit quitting and rewrite using quittable
8070 functions. Run Qbuffer_list_update_hook if allowed.
8071 (Frecord_buffer, Funrecord_buffer): New functions.
8072 (switch_to_buffer_1, Fswitch_to_buffer): Remove.
8073 Move switch-to-buffer to window.el.
8074 (bury-buffer): Move to window.el.
8075 (Vbuffer_list_update_hook): New variable.
8076
8077 * lisp.h (other_buffer_safely): Add prototype in buffer.c
8078 section.
8079
8080 * window.h (resize_frame_windows): Move up in code.
8081 (Fwindow_frame): Remove EXFUN.
8082 (replace_buffer_in_all_windows): Remove prototype.
8083 (replace_buffer_in_windows_safely): Add prototype.
8084
8085 * window.c: Declare Qdelete_window static again. Move down
8086 declaration of select_count.
8087 (Fnext_window, Fprevious_window): Rewrite doc-strings.
8088 (Fother_window): Move to window.el.
8089 (window_loop): Remove DELETE_BUFFER_WINDOWS and UNSHOW_BUFFER
8090 cases. Add REPLACE_BUFFER_IN_WINDOWS_SAFELY case.
8091 (Fdelete_windows_on, Freplace_buffer_in_windows): Move to
8092 window.el.
8093 (replace_buffer_in_windows): Implement by calling
8094 Qreplace_buffer_in_windows.
8095 (replace_buffer_in_all_windows): Remove with some functionality
8096 moved into replace_buffer_in_windows_safely.
8097 (replace_buffer_in_windows_safely): New function.
8098 (select_window_norecord, select_frame_norecord): Move in front
8099 of run_window_configuration_change_hook. Remove now obsolete
8100 declarations.
8101 (Fset_window_buffer): Rewrite doc-string.
8102 Call Qrecord_window_buffer.
8103 (keys_of_window): Move binding for other-window to window.el.
8104
8105 2011-06-11 Chong Yidong <cyd@stupidchicken.com>
8106
8107 * dispextern.h (struct image): Replace data member, whose int_val
8108 and ptr_val fields were not used by anything, with a single
8109 lisp_val object.
8110
8111 * image.c (Fimage_metadata, make_image, mark_image, tiff_load)
8112 (gif_clear_image, gif_load, imagemagick_load_image)
8113 (gs_clear_image, gs_load): Callers changed.
8114
8115 2011-06-10 Paul Eggert <eggert@cs.ucla.edu>
8116
8117 * buffer.h: Include <time.h>, for time_t.
8118 Needed to build on FreeBSD 8.2. Problem reported by Herbert J. Skuhra.
8119
8120 Fix minor problems found by static checking.
8121
8122 * image.c (PixelGetMagickColor): Declare if ImageMagick headers don't.
8123
8124 Make identifiers static if they are not used in other modules.
8125 * data.c (Qcompiled_function, Qframe, Qvector):
8126 * image.c (QimageMagick, Qsvg):
8127 * minibuf.c (Qmetadata):
8128 * window.c (resize_window_check, resize_root_window): Now static.
8129 * window.h (resize_window_check, resize_root_window): Remove decls.
8130
8131 * window.c (window_deletion_count, delete_deletable_window):
8132 Remove; unused.
8133 (window_body_lines): Now static.
8134 (Fdelete_other_windows_internal): Mark vars as initialized.
8135 Make sure 'resize_failed' is initialized.
8136 (run_window_configuration_change_hook): Rename local to avoid shadowing.
8137 (resize_window_apply): Remove unused local.
8138 * window.h (delete_deletable_window): Remove decl.
8139
8140 * image.c (gif_load, svg_load_image): Rename locals to avoid shadowing.
8141 (imagemagick_load_image): Fix pointer signedness problem by changing
8142 last arg from unsigned char * to char *. All uses changed.
8143 Also, fix a local for similar reasons.
8144 Remove unused locals. Remove locals to avoid shadowing.
8145 (fn_rsvg_handle_free): Remove; unused.
8146 (svg_load, svg_load_image): Fix pointer signedness problem.
8147 (imagemagick_load_image): Don't use garbage pointer image_wand.
8148
8149 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
8150
8151 2011-06-10 Chong Yidong <cyd@stupidchicken.com>
8152
8153 * image.c (gif_load): Fix omitted cast error introduced by
8154 2011-06-06 change.
8155
8156 2011-06-10 Martin Rudalics <rudalics@gmx.at>
8157
8158 * window.h (resize_proportionally, orig_total_lines)
8159 (orig_top_line): Remove from window structure.
8160 (set_window_height, set_window_width, change_window_heights)
8161 (Fdelete_window): Remove prototypes.
8162 (resize_frame_windows): Remove duplicate declaration.
8163
8164 2011-06-10 Eli Zaretskii <eliz@gnu.org>
8165
8166 * window.h (resize_frame_windows, resize_window_check)
8167 (delete_deletable_window, resize_root_window)
8168 (resize_frame_windows): Declare prototypes.
8169
8170 * window.c (resize_window_apply): Make definition be "static" to
8171 match the prototype.
8172
8173 2011-06-10 Martin Rudalics <rudalics@gmx.at>
8174
8175 * window.c: Remove declarations of Qwindow_size_fixed,
8176 window_min_size_1, window_min_size_2, window_min_size,
8177 size_window, window_fixed_size_p, enlarge_window, delete_window.
8178 Remove static from declaration of Qdelete_window, it's
8179 temporarily needed by Fbury_buffer.
8180 (replace_window): Don't assign orig_top_line and
8181 orig_total_lines.
8182 (Fdelete_window, delete_window): Remove. Window deletion is
8183 handled by window.el.
8184 (window_loop): Remove DELETE_OTHER_WINDOWS case.
8185 Replace Fdelete_window calls with calls to Qdelete_window.
8186 (Fdelete_other_windows): Remove. Deleting other windows is
8187 handled by window.el.
8188 (window_fixed_size_p): Remove. Fixed-sizeness of windows is
8189 handled in window.el.
8190 (window_min_size_2, window_min_size_1, window_min_size): Remove.
8191 Window minimum sizes are handled in window.el.
8192 (shrink_windows, size_window, set_window_height)
8193 (set_window_width, change_window_heights, window_height)
8194 (window_width, CURBEG, CURSIZE, enlarge_window)
8195 (adjust_window_trailing_edge, Fadjust_window_trailing_edge)
8196 (Fenlarge_window, Fshrink_window): Remove. Window resizing is
8197 handled in window.el.
8198 (make_dummy_parent): Rename to make_parent_window and give it a
8199 second argument horflag.
8200 (make_window): Don't set resize_proportionally any more.
8201 (Fsplit_window): Remove. Windows are split in window.el.
8202 (save_restore_action, save_restore_orig_size)
8203 (shrink_window_lowest_first, save_restore_orig_size): Remove.
8204 Resize mini windows in window.el.
8205 (grow_mini_window, shrink_mini_window): Implement by calling
8206 Qresize_root_window_vertically, resize_window_check and
8207 resize_window_apply.
8208 (saved_window, Fset_window_configuration, save_window_save):
8209 Do not handle orig_top_line, orig_total_lines, and
8210 resize_proportionally.
8211 (window_min_height, window_min_width): Move to window.el.
8212 (keys_of_window): Move bindings for delete-other-windows,
8213 split-window, delete-window and enlarge-window to window.el.
8214
8215 * buffer.c: Temporarily extern Qdelete_window.
8216 (Fbury_buffer): Temporarily call Qdelete_window instead of
8217 Fdelete_window (Fbury_buffer will move to window.el soon).
8218
8219 * frame.c (set_menu_bar_lines_1): Remove code handling
8220 orig_top_line and orig_total_lines.
8221
8222 * dispnew.c (adjust_frame_glyphs_initially): Don't use
8223 set_window_height but set heights directly.
8224 (change_frame_size_1): Use resize_frame_windows.
8225
8226 * xdisp.c (init_xdisp): Don't use set_window_height but set
8227 heights directly.
8228
8229 * xfns.c (x_set_menu_bar_lines, x_set_tool_bar_lines):
8230 Use resize_frame_windows instead of change_window_heights and run
8231 run_window_configuration_change_hook.
8232
8233 * w32fns.c (x_set_tool_bar_lines): Use resize_frame_windows
8234 instead of change_window_heights and run
8235 run_window_configuration_change_hook.
8236
8237 2011-06-09 Martin Rudalics <rudalics@gmx.at>
8238
8239 * window.c (replace_window): Rename second argument REPLACEMENT to
8240 NEW. New third argument SETFLAG. Rewrite.
8241 (delete_window, make_dummy_parent): Call replace_window with
8242 third argument 1.
8243 (window_list_1): Move down in code.
8244 (run_window_configuration_change_hook): Move set_buffer part
8245 before select_frame_norecord part in order to unwind correctly.
8246 Rename count1 to count.
8247 (recombine_windows, delete_deletable_window, resize_root_window)
8248 (Fdelete_other_windows_internal)
8249 (Frun_window_configuration_change_hook, make_parent_window)
8250 (resize_window_check, resize_window_apply, Fresize_window_apply)
8251 (resize_frame_windows, Fsplit_window_internal)
8252 (Fdelete_window_internal, Fresize_mini_window_internal):
8253 New functions.
8254 (syms_of_window): New variables Vwindow_splits and Vwindow_nest.
8255
8256 2011-06-08 Martin Rudalics <rudalics@gmx.at>
8257
8258 * window.h (window): Add some new members to window structure -
8259 normal_lines, normal_cols, new_total, new_normal, clone_number,
8260 splits, nest, prev_buffers, next_buffers.
8261 (WINDOW_TOTAL_SIZE): Move here from window.c.
8262 (MIN_SAFE_WINDOW_WIDTH, MIN_SAFE_WINDOW_HEIGHT): Define here.
8263
8264 * window.c (Fwindow_height, Fwindow_width, Fwindow_full_width_p):
8265 Remove.
8266 (make_dummy_parent): Set new members of windows structure.
8267 (make_window): Move down in code. Handle new members of window
8268 structure.
8269 (Fwindow_clone_number, Fwindow_splits, Fset_window_splits)
8270 (Fwindow_nest, Fset_window_nest, Fwindow_new_total)
8271 (Fwindow_normal_size, Fwindow_new_normal, Fwindow_prev_buffers)
8272 (Fset_window_prev_buffers, Fwindow_next_buffers)
8273 (Fset_window_next_buffers, Fset_window_clone_number):
8274 New functions.
8275 (Fwindow_hscroll, Fwindow_at, Fwindow_point, Fwindow_start)
8276 (Fwindow_end, Fwindow_line_height, Fset_window_dedicated_p):
8277 Doc-string fixes.
8278 (Fwindow_parameters, Fwindow_parameter, Fset_window_parameter):
8279 Argument WINDOW can be now internal window too.
8280 (Fwindow_use_time): Move up in code.
8281 (Fget_buffer_window): Rename argument FRAME to ALL-FRAMES.
8282 Rewrite doc-string.
8283 (Fset_window_configuration, saved_window)
8284 (Fcurrent_window_configuration, save_window_save): Handle new
8285 members of window structure.
8286 (WINDOW_TOTAL_SIZE, MIN_SAFE_WINDOW_WIDTH)
8287 (MIN_SAFE_WINDOW_HEIGHT): Move to window.h.
8288 (syms_of_window): New Lisp objects Qrecord_window_buffer,
8289 Qwindow_deletable_p, Qdelete_window, Qreplace_buffer_in_windows,
8290 Qget_mru_window, Qresize_root_window,
8291 Qresize_root_window_vertically, Qsafe, Qabove, Qbelow,
8292 Qauto_buffer_name; staticpro them.
8293
8294 2011-06-07 Martin Rudalics <rudalics@gmx.at>
8295
8296 * window.c (Fwindow_total_size, Fwindow_left_column)
8297 (Fwindow_top_line, window_body_lines, Fwindow_body_size)
8298 (Fwindow_list_1): New functions.
8299 (window_box_text_cols): Replace with window_body_cols.
8300 (Fwindow_width, Fscroll_left, Fscroll_right):
8301 Use window_body_cols instead of window_box_text_cols.
8302 (delete_window, Fset_window_configuration):
8303 Call delete_all_subwindows with window as argument.
8304 (delete_all_subwindows): Take a window as argument and not a
8305 structure. Rewrite.
8306 (window_loop): Remove handling of GET_LRU_WINDOW and
8307 GET_LARGEST_WINDOW.
8308 (Fget_lru_window, Fget_largest_window): Move to window.el.
8309
8310 * window.h: Extern window_body_cols instead of
8311 window_box_text_cols. delete_all_subwindows now takes a
8312 Lisp_Object as argument.
8313
8314 * indent.c (compute_motion, Fcompute_motion):
8315 Use window_body_cols instead of window_box_text_cols.
8316
8317 * frame.c (delete_frame): Call delete_all_subwindows with root
8318 window as argument.
8319
8320 2011-06-07 Daniel Colascione <dan.colascione@gmail.com>
8321
8322 * fns.c (Fputhash): Document return value.
8323
8324 2011-06-06 Chong Yidong <cyd@stupidchicken.com>
8325
8326 * image.c (gif_load): Implement gif89a spec "no disposal" method.
8327
8328 2011-06-06 Paul Eggert <eggert@cs.ucla.edu>
8329
8330 Cons<->int and similar integer overflow fixes (Bug#8794).
8331
8332 Check for overflow when converting integer to cons and back.
8333 * charset.c (Fdefine_charset_internal, Fdecode_char):
8334 Use cons_to_unsigned to catch overflow.
8335 (Fencode_char): Use INTEGER_TO_CONS.
8336 * composite.h (LGLYPH_CODE): Use cons_to_unsigned.
8337 (LGLYPH_SET_CODE): Use INTEGER_TO_CONS.
8338 * data.c (long_to_cons, cons_to_long): Remove.
8339 (cons_to_unsigned, cons_to_signed): New functions.
8340 These signal an error for invalid or out-of-range values.
8341 * dired.c (Ffile_attributes): Use INTEGER_TO_CONS.
8342 * fileio.c (Fset_visited_file_modtime): Use CONS_TO_INTEGER.
8343 * font.c (Ffont_variation_glyphs):
8344 * fontset.c (Finternal_char_font): Use INTEGER_TO_CONS.
8345 * lisp.h: Include <intprops.h>.
8346 (INTEGER_TO_CONS, CONS_TO_INTEGER): New macros.
8347 (cons_to_signed, cons_to_unsigned): New decls.
8348 (long_to_cons, cons_to_long): Remove decls.
8349 * undo.c (record_first_change): Use INTEGER_TO_CONS.
8350 (Fprimitive_undo): Use CONS_TO_INTEGER.
8351 * xfns.c (Fx_window_property): Likewise.
8352 * xselect.c: Include <limits.h>.
8353 (x_own_selection, selection_data_to_lisp_data):
8354 Use INTEGER_TO_CONS.
8355 (x_handle_selection_request, x_handle_selection_clear)
8356 (x_get_foreign_selection, Fx_disown_selection_internal)
8357 (Fx_get_atom_name, x_send_client_event): Use CONS_TO_INTEGER.
8358 (lisp_data_to_selection_data): Use cons_to_unsigned.
8359 (x_fill_property_data): Use cons_to_signed.
8360 Report values out of range.
8361
8362 Check for buffer and string overflow more precisely.
8363 * buffer.h (BUF_BYTES_MAX): New macro.
8364 * lisp.h (STRING_BYTES_MAX): New macro.
8365 * alloc.c (Fmake_string):
8366 * character.c (string_escape_byte8):
8367 * coding.c (coding_alloc_by_realloc):
8368 * doprnt.c (doprnt):
8369 * editfns.c (Fformat):
8370 * eval.c (verror):
8371 Use STRING_BYTES_MAX, not MOST_POSITIVE_FIXNUM,
8372 since they may not be the same number.
8373 * editfns.c (Finsert_char):
8374 * fileio.c (Finsert_file_contents):
8375 Likewise for BUF_BYTES_MAX.
8376
8377 * image.c: Use ptrdiff_t, not int, for sizes.
8378 (slurp_file): Switch from int to ptrdiff_t.
8379 All uses changed.
8380 (slurp_file): Check that file size fits in both size_t (for
8381 malloc) and ptrdiff_t (for sanity and safety).
8382
8383 * fileio.c (Fverify_visited_file_modtime): Avoid time overflow
8384 if b->modtime has its maximal value.
8385
8386 * dired.c (Ffile_attributes): Don't assume EMACS_INT has >32 bits.
8387
8388 Don't assume time_t can fit into int.
8389 * buffer.h (struct buffer.modtime): Now time_t, not int.
8390 * fileio.c (Fvisited_file_modtime): No need for time_t cast now.
8391 * undo.c (Fprimitive_undo): Use time_t, not int, for time_t value.
8392
8393 Minor fixes for signed vs unsigned integers.
8394 * character.h (MAYBE_UNIFY_CHAR):
8395 * charset.c (maybe_unify_char):
8396 * keyboard.c (read_char, reorder_modifiers):
8397 XINT -> XFASTINT, since the integer must be nonnegative.
8398 * ftfont.c (ftfont_spec_pattern):
8399 * keymap.c (access_keymap, silly_event_symbol_error):
8400 XUINT -> XFASTINT, since the integer must be nonnegative.
8401 (Fsingle_key_description, preferred_sequence_p): XUINT -> XINT,
8402 since it makes no difference and we prefer signed.
8403 * keyboard.c (record_char): Use XUINT when all the neighbors do.
8404 (access_keymap): NATNUMP -> INTEGERP, since the integer must be
8405 nonnegative.
8406
8407 2011-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
8408
8409 * window.h (Fwindow_frame): Declare.
8410
8411 2011-06-06 Paul Eggert <eggert@cs.ucla.edu>
8412
8413 * alloc.c: Simplify handling of large-request failures (Bug#8800).
8414 (SPARE_MEMORY): Always define.
8415 (LARGE_REQUEST): Remove.
8416 (memory_full): Use SPARE_MEMORY rather than LARGE_REQUEST.
8417
8418 2011-06-06 Martin Rudalics <rudalics@gmx.at>
8419
8420 * lisp.h: Move EXFUNS for Fframe_root_window,
8421 Fframe_first_window and Fset_frame_selected_window to window.h.
8422
8423 * window.h: Move EXFUNS for Fframe_root_window,
8424 Fframe_first_window and Fset_frame_selected_window here from
8425 lisp.h.
8426
8427 * frame.c (Fwindow_frame, Fframe_first_window)
8428 (Fframe_root_window, Fframe_selected_window)
8429 (Fset_frame_selected_window): Move to window.c.
8430 (Factive_minibuffer_window): Move to minibuf.c.
8431 (Fother_visible_frames_p): New function.
8432
8433 * minibuf.c (Factive_minibuffer_window): Move here from frame.c.
8434
8435 * window.c (decode_window, decode_any_window): Move up in code.
8436 (Fwindowp, Fwindow_live_p): Rewrite doc-strings.
8437 (inhibit_frame_unsplittable): Remove unused variable.
8438 (Fwindow_buffer): Move up and rewrite doc-string.
8439 (Fwindow_parent, Fwindow_vchild, Fwindow_hchild, Fwindow_next)
8440 (Fwindow_prev): New functions.
8441 (Fwindow_frame): Move here from frame.c. Accept any window as
8442 argument.
8443 (Fframe_root_window, Fframe_first_window)
8444 (Fframe_selected_window): Move here from frame.c. Accept frame
8445 or arbitrary window as argument. Update doc-strings.
8446 (Fminibuffer_window): Move up in code.
8447 (Fwindow_minibuffer_p): Move up in code and simplify.
8448 (Fset_frame_selected_window): Move here from frame.c.
8449 Marginal rewrite.
8450 (Fselected_window, select_window, Fselect_window): Move up in
8451 code. Minor doc-string fixes.
8452
8453 2011-06-06 Paul Eggert <eggert@cs.ucla.edu>
8454
8455 * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
8456 Do not assume that spare memory exists; that assumption is valid
8457 only if SYSTEM_MALLOC.
8458 (LARGE_REQUEST): New macro, so that the issue of large requests
8459 is separated from the issue of spare memory.
8460
8461 2011-06-05 Andreas Schwab <schwab@linux-m68k.org>
8462
8463 * editfns.c (Fformat): Correctly handle zero flag with hexadecimal
8464 format. (Bug#8806)
8465
8466 * gtkutil.c (xg_get_default_scrollbar_width): Avoid warning.
8467
8468 * xfns.c (x_set_scroll_bar_default_width): Move declarations
8469 before statements.
8470
8471 2011-06-05 Jan Djärv <jan.h.d@swipnet.se>
8472
8473 * gtkutil.c (xg_get_default_scrollbar_width): New function.
8474
8475 * gtkutil.h: Declare xg_get_default_scrollbar_width.
8476
8477 * xfns.c (x_set_scroll_bar_default_width): If USE_GTK, get
8478 min width by calling x_set_scroll_bar_default_width (Bug#8505).
8479
8480 2011-06-05 Juanma Barranquero <lekktu@gmail.com>
8481
8482 * xdisp.c (single_display_spec_intangible_p): Remove declaration.
8483
8484 2011-06-04 Chong Yidong <cyd@stupidchicken.com>
8485
8486 * xselect.c (x_clipboard_manager_save): Remove redundant arg.
8487 (x_clipboard_manager_save): Add return value.
8488 (x_clipboard_manager_error_1, x_clipboard_manager_error_2):
8489 New error handlers.
8490 (x_clipboard_manager_save_frame, x_clipboard_manager_save_all):
8491 Obey Vx_select_enable_clipboard_manager. Catch errors in
8492 x_clipboard_manager_save (Bug#8779).
8493 (Vx_select_enable_clipboard_manager): New variable.
8494 (x_get_foreign_selection): Reduce scope of x_catch_errors (Bug#8790).
8495
8496 2011-06-04 Dan Nicolaescu <dann@ics.uci.edu>
8497
8498 * emacs.c (main): Warn when starting a GTK emacs in daemon mode.
8499
8500 2011-06-04 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
8501
8502 * fringe.c (update_window_fringes): Don't update overlay arrow bitmap
8503 in the current matrix if keep_current_p is non-zero.
8504
8505 2011-06-04 Eli Zaretskii <eliz@gnu.org>
8506
8507 * bidi.c (bidi_level_of_next_char): Fix last change.
8508
8509 2011-06-03 Eli Zaretskii <eliz@gnu.org>
8510
8511 Support bidi reordering of text covered by display properties.
8512
8513 * bidi.c (bidi_copy_it): Use offsetof instead of emulating it.
8514 (bidi_fetch_char, bidi_fetch_char_advance): New functions.
8515 (bidi_cache_search, bidi_cache_iterator_state)
8516 (bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
8517 (bidi_level_of_next_char, bidi_move_to_visually_next):
8518 Support character positions inside a run of characters covered by a
8519 display string.
8520 (bidi_paragraph_init, bidi_resolve_explicit_1)
8521 (bidi_level_of_next_char): Call bidi_fetch_char and
8522 bidi_fetch_char_advance instead of FETCH_CHAR and
8523 FETCH_CHAR_ADVANCE.
8524 (bidi_init_it): Initialize new members.
8525 (LRE_CHAR, RLE_CHAR, PDF_CHAR, LRO_CHAR, RLO_CHAR): Remove macro
8526 definitions.
8527 (bidi_explicit_dir_char): Lookup character type in bidi_type_table,
8528 instead of using explicit *_CHAR codes.
8529 (bidi_resolve_explicit, bidi_resolve_weak):
8530 Use FETCH_MULTIBYTE_CHAR instead of FETCH_CHAR, as reordering of
8531 bidirectional text is supported only in multibyte buffers.
8532 (bidi_init_it): Accept additional argument FRAME_WINDOW_P and use
8533 it to initialize the frame_window_p member of struct bidi_it.
8534 (bidi_cache_iterator_state, bidi_resolve_explicit_1)
8535 (bidi_resolve_explicit, bidi_resolve_weak)
8536 (bidi_level_of_next_char, bidi_move_to_visually_next): Abort if
8537 bidi_it->nchars is non-positive.
8538 (bidi_level_of_next_char): Don't try to lookup the cache for the
8539 next/previous character if nothing is cached there yet, or if we
8540 were just reseat()'ed to a new position.
8541
8542 * xdisp.c (set_cursor_from_row): Set start and stop points
8543 according to the row's direction when priming the loop that looks
8544 for the glyph on which to display cursor.
8545 (single_display_spec_intangible_p): Function deleted.
8546 (display_prop_intangible_p): Reimplement to call
8547 handle_display_spec instead of single_display_spec_intangible_p.
8548 Accept 3 additional arguments needed by handle_display_spec.
8549 This fixes incorrect cursor motion across display property with complex
8550 values: lists, `(when COND...)' forms, etc.
8551 (single_display_spec_string_p): Support property values that are
8552 lists with the argument STRING its top-level element.
8553 (display_prop_string_p): Fix the condition for processing a
8554 property that is a list to be consistent with handle_display_spec.
8555 (handle_display_spec): New function, refactored from the
8556 last portion of handle_display_prop.
8557 (compute_display_string_pos): Accept additional argument
8558 FRAME_WINDOW_P. Call handle_display_spec to determine whether the
8559 value of a `display' property is a "replacing spec".
8560 (handle_single_display_spec): Accept 2 additional arguments BUFPOS
8561 and FRAME_WINDOW_P. If IT is NULL, don't set up the iterator from
8562 the display property, but just return a value indicating whether
8563 the display property will replace the characters it covers.
8564 (Fcurrent_bidi_paragraph_direction): Initialize the nchars and
8565 frame_window_p members of struct bidi_it.
8566 (compute_display_string_pos, compute_display_string_end):
8567 New functions.
8568 (push_it): Accept second argument POSITION, where pop_it should
8569 jump to continue iteration.
8570 (reseat_1): Initialize bidi_it.disp_pos.
8571
8572 * keyboard.c (adjust_point_for_property): Adjust the call to
8573 display_prop_intangible_p to its new signature.
8574
8575 * dispextern.h (struct bidi_it): New member frame_window_p.
8576 (bidi_init_it): Update prototypes.
8577 (display_prop_intangible_p): Update prototype.
8578 (compute_display_string_pos, compute_display_string_end):
8579 Declare prototypes.
8580 (struct bidi_it): New members nchars and disp_pos. ch_len is now
8581 EMACS_INT.
8582
8583 2011-06-02 Paul Eggert <eggert@cs.ucla.edu>
8584
8585 Malloc failure behavior now depends on size of allocation.
8586 * alloc.c (buffer_memory_full, memory_full): New arg NBYTES.
8587 * lisp.h: Change signatures accordingly.
8588 * alloc.c, buffer.c, editfns.c, menu.c, minibuf.c, xterm.c:
8589 All callers changed. (Bug#8762)
8590
8591 * gnutls.c: Use Emacs's memory allocators.
8592 Without this change, the gnutls library would invoke malloc etc.
8593 directly, which causes problems on non-SYNC_INPUT hosts, and which
8594 runs afoul of improving memory_full behavior. (Bug#8761)
8595 (fn_gnutls_global_set_mem_functions): New macro or function pointer.
8596 (emacs_gnutls_global_init): Use it to specify xmalloc, xrealloc,
8597 xfree instead of the default malloc, realloc, free.
8598 (Fgnutls_boot): No need to check for memory allocation failure,
8599 since xmalloc does that for us.
8600
8601 Remove arbitrary limit of 2**31 entries in hash tables. (Bug#8771)
8602 * category.c (hash_get_category_set):
8603 * ccl.c (ccl_driver):
8604 * charset.c (Fdefine_charset_internal):
8605 * charset.h (struct charset.hash_index):
8606 * composite.c (get_composition_id, gstring_lookup_cache)
8607 (composition_gstring_put_cache):
8608 * composite.h (struct composition.hash_index):
8609 * dispextern.h (struct image.hash):
8610 * fns.c (next_almost_prime, larger_vector, cmpfn_eql)
8611 (cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
8612 (hashfn_equal, hashfn_user_defined, make_hash_table)
8613 (maybe_resize_hash_table, hash_lookup, hash_put)
8614 (hash_remove_from_table, hash_clear, sweep_weak_table, SXHASH_COMBINE)
8615 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector)
8616 (Fsxhash, Fgethash, Fputhash, Fmaphash):
8617 * image.c (make_image, search_image_cache, lookup_image)
8618 (xpm_put_color_table_h):
8619 * lisp.h (struct Lisp_Hash_Table):
8620 * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
8621 * print.c (print): Use 'EMACS_UINT' and 'EMACS_INT'
8622 for hashes and hash indexes, instead of 'unsigned' and 'int'.
8623 * alloc.c (allocate_vectorlike):
8624 Check for overflow in vector size calculations.
8625 * ccl.c (ccl_driver):
8626 Check for overflow when converting EMACS_INT to int.
8627 * fns.c, image.c: Remove unnecessary static decls that would otherwise
8628 need to be updated by these changes.
8629 * fns.c (make_hash_table, maybe_resize_hash_table):
8630 Check for integer overflow with large hash tables.
8631 (make_hash_table, maybe_resize_hash_table, Fmake_hash_table):
8632 Prefer the faster XFLOAT_DATA to XFLOATINT where either will do.
8633 (SXHASH_REDUCE): New macro.
8634 (sxhash_string, sxhash_list, sxhash_vector, sxhash_bool_vector):
8635 Use it instead of discarding useful hash info with large hash values.
8636 (sxhash_float): New function.
8637 (sxhash): Use it. No more need for "& INTMASK" due to above changes.
8638 * lisp.h (FIXNUM_BITS): New macro, useful for SXHASH_REDUCE etc.
8639 (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM, INTMASK):
8640 Rewrite to use FIXNUM_BITS, as this simplifies things.
8641 (next_almost_prime, larger_vector, sxhash, hash_lookup, hash_put):
8642 Adjust signatures to match updated version of code.
8643 (consing_since_gc): Now EMACS_INT, since a single hash table can
8644 use more than INT_MAX bytes.
8645
8646 2011-06-01 Dan Nicolaescu <dann@ics.uci.edu>
8647
8648 Make it possible to build with GCC-4.6+ -O2 -flto.
8649
8650 * emacs.c (__malloc_initialize_hook): Mark as EXTERNALLY_VISIBLE.
8651
8652 2011-06-01 Stefan Monnier <monnier@iro.umontreal.ca>
8653
8654 * minibuf.c (get_minibuffer, read_minibuf_unwind):
8655 Call minibuffer-inactive-mode.
8656
8657 2011-05-31 Juanma Barranquero <lekktu@gmail.com>
8658
8659 * makefile.w32-in ($(BLD)/data.$(O), $(BLD)/editfns.$(O)):
8660 Update dependencies.
8661
8662 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
8663
8664 * data.c (init_data): Remove code for UTS, this system is not
8665 supported anymore.
8666
8667 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
8668
8669 Don't force ./temacs to start in terminal mode.
8670
8671 * frame.c (make_initial_frame): Initialize faces in all cases, not
8672 only when CANNOT_DUMP is defined.
8673 * dispnew.c (init_display): Remove CANNOT_DUMP condition.
8674
8675 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
8676
8677 * dispnew.c (add_window_display_history): Use const for the string
8678 pointer. Remove declaration, not needed.
8679
8680 2011-05-31 Paul Eggert <eggert@cs.ucla.edu>
8681
8682 Use 'inline', not 'INLINE'.
8683 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00914.html>
8684 * alloc.c, fontset.c (INLINE): Remove.
8685 * alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
8686 * intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
8687 * xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
8688 * gmalloc.c (register_heapinfo): Use inline unconditionally.
8689 * lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
8690
8691 2011-05-31 Dan Nicolaescu <dann@ics.uci.edu>
8692
8693 Make it possible to run ./temacs.
8694
8695 * callproc.c (set_initial_environment): Remove CANNOT_DUMP code,
8696 syms_of_callproc does the same thing. Remove test for
8697 "initialized", do it in the caller.
8698 * emacs.c (main): Avoid calling set_initial_environment when dumping.
8699
8700 2011-05-31 Stefan Monnier <monnier@iro.umontreal.ca>
8701
8702 * minibuf.c (Finternal_complete_buffer): Return `category' metadata.
8703 (read_minibuf): Use get_minibuffer.
8704 (syms_of_minibuf): Use DEFSYM.
8705 (Qmetadata): New var.
8706 * data.c (Qbuffer): Don't make it static.
8707 (syms_of_data): Use DEFSYM.
8708
8709 2011-05-31 Paul Eggert <eggert@cs.ucla.edu>
8710
8711 * ccl.c (CCL_CODE_RANGE): Allow negative numbers. (Bug#8751)
8712 (CCL_CODE_MIN): New macro.
8713
8714 2011-05-30 Paul Eggert <eggert@cs.ucla.edu>
8715
8716 * alloc.c (lisp_align_malloc): Omit unnecessary val==NULL tests.
8717
8718 * eval.c (Qdebug): Now static.
8719 * lisp.h (Qdebug): Remove decl. This reverts a part of the
8720 2011-04-26T11:26:05Z!dan.colascione@gmail.com that inadvertently undid part of
8721 2011-04-14T06:48:41Z!eggert@cs.ucla.edu.
8722
8723 2011-05-29 Chong Yidong <cyd@stupidchicken.com>
8724
8725 * image.c: Various fixes to ImageMagick code comments.
8726 (Fimagemagick_types): Doc fix.
8727
8728 2011-05-29 Paul Eggert <eggert@cs.ucla.edu>
8729
8730 Minor fixes prompted by GCC 4.6.0 warnings.
8731
8732 * xselect.c (converted_selections, conversion_fail_tag): Now static.
8733
8734 * emacs.c [HAVE_X_WINDOWS]: Include "xterm.h".
8735 (x_clipboard_manager_save_all): Move extern decl to ...
8736 * xterm.h: ... here, so that it can be checked for consistency.
8737
8738 2011-05-29 Chong Yidong <cyd@stupidchicken.com>
8739
8740 * xselect.c (x_clipboard_manager_save_frame)
8741 (x_clipboard_manager_save_all): New functions.
8742 (Fx_clipboard_manager_save): Lisp function deleted.
8743
8744 * emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all.
8745 * frame.c (delete_frame): Call x_clipboard_manager_save_frame.
8746
8747 * xterm.h: Update prototype.
8748
8749 2011-05-28 William Xu <william.xwl@gmail.com>
8750
8751 * nsterm.m (ns_term_shutdown): Synchronize user defaults before
8752 exiting (Bug#8239).
8753
8754 2011-05-28 Jim Meyering <meyering@redhat.com>
8755
8756 Avoid a sign-extension bug in crypto_hash_function.
8757 * fns.c (to_uchar): Define.
8758 (crypto_hash_function): Use it to convert some newly-signed
8759 variables to unsigned, to avoid sign-extension bugs. For example,
8760 without this change, (md5 "truc") would evaluate to
8761 45723a2aff78ff4fff7fff1114760e62 rather than the expected
8762 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
8763 https://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00883.html.
8764
8765 2011-05-27 Paul Eggert <eggert@cs.ucla.edu>
8766
8767 Integer overflow fixes.
8768
8769 * dbusbind.c: Serial number integer overflow fixes.
8770 (CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
8771 (Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
8772 to hold a serial number that is too large for a fixnum.
8773 (Fdbus_method_return_internal, Fdbus_method_error_internal):
8774 Check for serial numbers out of range. Decode any serial number
8775 that was so large that it became a float. (Bug#8722)
8776
8777 * dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
8778 (Fdbus_call_method, Fdbus_call_method_asynchronously):
8779 Use XFASTINT rather than XUINT when numbers are nonnegative.
8780 (xd_append_arg, Fdbus_method_return_internal):
8781 (Fdbus_method_error_internal): Likewise. Also, for unsigned
8782 arguments, check that Lisp number is nonnegative, rather than
8783 silently wrapping negative numbers around. (Bug#8722)
8784 (xd_read_message_1): Don't assume dbus_uint32_t can fit in int.
8785 (Bug#8722)
8786
8787 * data.c (arith_driver, Flsh): Avoid unnecessary casts to EMACS_UINT.
8788
8789 * ccl.c (ccl_driver): Redo slightly to avoid the need for 'unsigned'.
8790
8791 ccl: Add integer overflow checks.
8792 * ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
8793 (IN_INT_RANGE): New macros.
8794 (ccl_driver): Use them to check for integer overflow when
8795 decoding a CCL program. Many of the new checks are whether XINT (x)
8796 fits in int; it doesn't always, on 64-bit hosts. The new version
8797 doesn't catch all possible integer overflows, but it's an
8798 improvement. (Bug#8719)
8799
8800 * alloc.c (make_event_array): Use XINT, not XUINT.
8801 There's no need for unsigned here.
8802
8803 * mem-limits.h (EXCEEDS_LISP_PTR) [!USE_LSB_TAG]: EMACS_UINT -> uintptr_t
8804 This follows up to the 2011-05-06 change that substituted uintptr_t
8805 for EMACS_INT. This case wasn't caught back then.
8806
8807 Rework Fformat to avoid integer overflow issues.
8808 * editfns.c: Include <float.h> unconditionally, as it's everywhere
8809 now (part of C89). Include <verify.h>.
8810 (MAX_10_EXP, CONVERTED_BYTE_SIZE): Remove; no longer needed.
8811 (pWIDE, pWIDElen, signed_wide, unsigned_wide): New defns.
8812 (Fformat): Avoid the prepass trying to compute sizes; it was only
8813 approximate and thus did not catch overflow reliably. Instead, walk
8814 through the format just once, formatting and computing sizes as we go,
8815 checking for integer overflow at every step, and allocating a larger
8816 buffer as needed. Keep track separately whether the format is
8817 multibyte. Keep only the most-recently calculated precision, rather
8818 than them all. Record whether each argument has been converted to
8819 string. Use EMACS_INT, not int, for byte and char and arg counts.
8820 Support field widths and precisions larger than INT_MAX. Avoid
8821 sprintf's undefined behavior with conversion specifications such as %#d
8822 and %.0c. Fix bug with strchr succeeding on '\0' when looking for
8823 flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
8824 formatting out-of-range floating point numbers with int
8825 formats. (Bug#8668)
8826
8827 * lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
8828
8829 * data.c: Avoid integer truncation in expressions involving floats.
8830 * data.c: Include <intprops.h>.
8831 (arith_driver): When there's an integer overflow in an expression
8832 involving floating point, convert the integers to floating point
8833 so that the resulting value does not suffer from catastrophic
8834 integer truncation. For example, on a 64-bit host (* 4
8835 most-negative-fixnum 0.5) should yield about -4.6e+18, not zero.
8836 Do not rely on undefined behavior after integer overflow.
8837
8838 merge count_size_as_multibyte, parse_str_to_multibyte
8839 * character.c, character.h (count_size_as_multibyte):
8840 Rename from parse_str_to_multibyte; all uses changed.
8841 Check for integer overflow.
8842 * insdel.c, lisp.h (count_size_as_multibyte): Remove,
8843 since it's now a duplicate of the other. This is more of
8844 a character than a buffer op, so better that it's in character.c.
8845 * fns.c, print.c: Adjust to above changes.
8846
8847 2011-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
8848
8849 * xselect.c (x_convert_selection): Yet another int/Lisp_Object mixup.
8850
8851 2011-05-27 Paul Eggert <eggert@cs.ucla.edu>
8852
8853 * xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
8854 (x_handle_selection_request, frame_for_x_selection): Remove unused vars.
8855 (x_clipboard_manager_save): Now static.
8856 (Fx_clipboard_manager_save): Rename local to avoid shadowing.
8857
8858 * fns.c: Fix minor problems prompted by GCC 4.6.0 warnings.
8859 (crypto_hash_function): Now static.
8860 Fix pointer signedness problems. Avoid unnecessary initializations.
8861
8862 2011-05-27 Chong Yidong <cyd@stupidchicken.com>
8863
8864 * termhooks.h (Vselection_alist): Make it terminal-local.
8865
8866 * terminal.c (create_terminal): Initialize it.
8867
8868 * xselect.c: Support for clipboard managers.
8869 (Vselection_alist): Move to termhooks.h as terminal-local var.
8870 (LOCAL_SELECTION): New macro.
8871 (x_atom_to_symbol): Handle x_display_info_for_display fail case.
8872 (symbol_to_x_atom): Remove gratuitous arg.
8873 (x_handle_selection_request, lisp_data_to_selection_data)
8874 (x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
8875 (x_own_selection, x_get_local_selection, x_convert_selection):
8876 New arg, specifying work frame. Use terminal-local Vselection_alist.
8877 (some_frame_on_display): Delete unused function.
8878 (Fx_own_selection_internal, Fx_get_selection_internal)
8879 (Fx_disown_selection_internal, Fx_selection_owner_p)
8880 (Fx_selection_exists_p): New optional frame arg.
8881 (frame_for_x_selection, Fx_clipboard_manager_save): New functions.
8882 (x_handle_selection_clear): Don't treat other terminals with the
8883 same keyboard specially. Use the terminal-local Vselection_alist.
8884 (x_clear_frame_selections): Use Frun_hook_with_args.
8885
8886 * xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
8887
8888 * xterm.h: Add support for those atoms.
8889
8890 2011-05-26 Chong Yidong <cyd@stupidchicken.com>
8891
8892 * xselect.c: ICCCM-compliant handling of MULTIPLE targets.
8893 (converted_selections, conversion_fail_tag): New global variables.
8894 (x_selection_request_lisp_error): Free the above.
8895 (x_get_local_selection): Remove unnecessary code.
8896 (x_reply_selection_request): Args changed; handle arbitrary array
8897 of converted selections stored in converted_selections.
8898 Separate the XChangeProperty and SelectionNotify steps.
8899 (x_handle_selection_request): Rewrite to handle MULTIPLE target.
8900 (x_convert_selection): New function.
8901 (x_handle_selection_event): Simplify.
8902 (x_get_foreign_selection): Don't ignore incoming requests while
8903 waiting for an answer; this will fail when we implement
8904 SAVE_TARGETS, and seems unnecessary anyway.
8905 (selection_data_to_lisp_data): Recognize ATOM_PAIR type.
8906 (Vx_sent_selection_functions): Doc fix.
8907
8908 2011-05-26 Leo Liu <sdl.web@gmail.com>
8909
8910 * editfns.c (Ftranspose_regions): Allow empty regions. (Bug#8699)
8911
8912 2011-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
8913
8914 * dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
8915
8916 * dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
8917 for fringe update if it has periodic bitmap.
8918 (row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
8919 and fringe_bitmap_periodic_p.
8920
8921 * fringe.c (get_fringe_bitmap_data): New function.
8922 (draw_fringe_bitmap_1, update_window_fringes): Use it.
8923 (update_window_fringes): Record periodicity of fringe bitmap in glyph
8924 row. Mark glyph row for fringe update if periodicity changed.
8925
8926 * xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
8927 for fringe update unless it has periodic bitmap.
8928
8929 2011-05-25 Kenichi Handa <handa@m17n.org>
8930
8931 * xdisp.c (get_next_display_element): Set correct it->face_id for
8932 a static composition.
8933
8934 2011-05-24 Leo Liu <sdl.web@gmail.com>
8935
8936 * deps.mk (fns.o):
8937 * makefile.w32-in ($(BLD)/fns.$(O)): Include sha1.h.
8938
8939 * fns.c (crypto_hash_function, Fsha1): New function.
8940 (Fmd5): Use crypto_hash_function.
8941 (syms_of_fns): Add Ssha1.
8942
8943 2011-05-22 Paul Eggert <eggert@cs.ucla.edu>
8944
8945 * gnutls.c: Remove unused macros.
8946 (fn_gnutls_transport_set_lowat, fn_gnutls_transport_set_pull_function):
8947 (fn_gnutls_transport_set_push_function) [!WINDOWSNT]:
8948 Remove macros that are defined and never used.
8949 Caught by gcc -Wunused-macros (GCC 4.6.0, Fedora 14).
8950
8951 2011-05-22 Chong Yidong <cyd@stupidchicken.com>
8952
8953 * xselect.c (syms_of_xselect): Remove unused symbol SAVE_TARGETS.
8954 (Fx_get_selection_internal): Minor cleanup.
8955 (Fx_own_selection_internal): Rename arguments for consistency with
8956 select.el.
8957
8958 2011-05-22 Paul Eggert <eggert@cs.ucla.edu>
8959
8960 * xselect.c (QSAVE_TARGETS): New static var, to fix build failure.
8961
8962 2011-05-22 Chong Yidong <cyd@stupidchicken.com>
8963
8964 * xselect.c (syms_of_xselect): Include character.h; use DEFSYM.
8965
8966 2011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
8967
8968 * dispnew.c (scrolling_window): Don't exclude the case that the
8969 last enabled row in the desired matrix touches the bottom boundary.
8970
8971 2011-05-21 Glenn Morris <rgm@gnu.org>
8972
8973 * Makefile.in ($(etc)/DOC): Make second command line even shorter.
8974 (SOME_MACHINE_OBJECTS): Replace FONT_OBJ by its maximal expansion,
8975 and add some more files.
8976
8977 2011-05-20 Eli Zaretskii <eliz@gnu.org>
8978
8979 * callproc.c (Fcall_process) [MSDOS]: Fix arguments to
8980 report_file_error introduced by the change from 2011-05-07.
8981
8982 2011-05-20 Paul Eggert <eggert@cs.ucla.edu>
8983
8984 * systime.h (Time): Define only if emacs is defined.
8985 This is to allow ../lib-src/profile.c to be compiled on FreeBSD,
8986 where the include path doesn't have X11/X.h by default. See
8987 <http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00561.html>.
8988
8989 2011-05-20 Kenichi Handa <handa@m17n.org>
8990
8991 * composite.c (find_automatic_composition): Fix previous change.
8992
8993 2011-05-20 Glenn Morris <rgm@gnu.org>
8994
8995 * lisp.mk: New file, split from Makefile.in.
8996 * Makefile.in (lisp): Move to separate file, inserted by @lisp_frag@.
8997 (shortlisp): Remove.
8998 ($(etc)/DOC): Edit lisp.mk rather than using $shortlisp.
8999
9000 2011-05-19 Glenn Morris <rgm@gnu.org>
9001
9002 * Makefile.in (MSDOS_SUPPORT_REAL, MSDOS_SUPPORT, NS_SUPPORT)
9003 (REAL_MOUSE_SUPPORT, GPM_MOUSE_SUPPORT, MOUSE_SUPPORT, TOOLTIP_SUPPORT)
9004 (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT, WINDOW_SUPPORT): Remove.
9005 (lisp): Set the order to that of loadup.el.
9006 (shortlisp): Make it a copy of $lisp.
9007 (SOME_MACHINE_LISP): Remove.
9008 ($(etc)/DOC): Depend just on $lisp, not $SOME_MACHINE_LISP too.
9009 Use just $shortlisp, not $SOME_MACHINE_LISP too.
9010
9011 2011-05-18 Kenichi Handa <handa@m17n.org>
9012
9013 * composite.c (CHAR_COMPOSABLE_P): Add more check for efficiency.
9014 (BACKWARD_CHAR): Wrap the arg STOP by parenthesis.
9015 (find_automatic_composition): Mostly rewrite for efficiency.
9016
9017 2011-05-18 Juanma Barranquero <lekktu@gmail.com>
9018
9019 * makefile.w32-in: Update dependencies.
9020
9021 2011-05-18 Christoph Scholtes <cschol2112@googlemail.com>
9022
9023 * menu.c: Include limits.h (fixes the MS-Windows build broken by
9024 2011-06-18T18:49:19Z!cyd@stupidchicken.com).
9025
9026 2011-05-18 Paul Eggert <eggert@cs.ucla.edu>
9027
9028 Fix some integer overflow issues, such as string length overflow.
9029
9030 * insdel.c (count_size_as_multibyte): Check for string overflow.
9031
9032 * character.c (lisp_string_width): Check for string overflow.
9033 Use EMACS_INT, not int, for string indexes and lengths; in
9034 particular, 2nd arg is now EMACS_INT, not int. Do not crash if
9035 the resulting string length overflows an EMACS_INT; instead,
9036 report a string overflow if no precision given. When checking for
9037 precision exhaustion, use a check that cannot possibly have
9038 integer overflow. (Bug#8675)
9039 * character.h (lisp_string_width): Adjust to new signature.
9040
9041 * alloc.c (string_overflow): New function.
9042 (Fmake_string): Use it. This doesn't change behavior, but saves
9043 a few bytes and will simplify future changes.
9044 * character.c (string_escape_byte8): Likewise.
9045 * lisp.h (string_overflow): New decl.
9046
9047 Fixups, following up to the user-interface timestamp change.
9048 * nsterm.m (last_mouse_movement_time, ns_mouse_position): Use Time
9049 for UI timestamps, instead of unsigned long.
9050 * msdos.c (mouse_get_pos): Likewise.
9051 * w32inevt.c (movement_time, w32_console_mouse_position): Likewise.
9052 * w32gui.h (Time): Define by including "systime.h" rather than by
9053 declaring it ourselves. (Bug#8664)
9054
9055 * dispextern.h (struct image): Don't assume time_t <= unsigned long.
9056 * image.c (clear_image_cache): Likewise.
9057
9058 * term.c (term_mouse_position): Don't assume time_t wraparound.
9059
9060 Be more systematic about user-interface timestamps.
9061 Before, the code sometimes used 'Time', sometimes 'unsigned long',
9062 and sometimes 'EMACS_UINT', to represent these timestamps.
9063 This change causes it to use 'Time' uniformly, as that's what X uses.
9064 This makes the code easier to follow, and makes it easier to catch
9065 integer overflow bugs such as Bug#8664.
9066 * frame.c (Fmouse_position, Fmouse_pixel_position):
9067 Use Time, not unsigned long, for user-interface timestamps.
9068 * keyboard.c (last_event_timestamp, kbd_buffer_get_event): Likewise.
9069 (button_down_time, make_lispy_position, make_lispy_movement): Likewise.
9070 * keyboard.h (last_event_timestamp): Likewise.
9071 * menu.c (Fx_popup_menu) [!HAVE_X_WINDOWS]: Likewise.
9072 * menu.h (xmenu_show): Likewise.
9073 * term.c (term_mouse_position): Likewise.
9074 * termhooks.h (struct input_event.timestamp): Likewise.
9075 (struct terminal.mouse_position_hook): Likewise.
9076 * xmenu.c (create_and_show_popup_menu, xmenu_show): Likewise.
9077 * xterm.c (XTmouse_position, x_scroll_bar_report_motion): Likewise.
9078 * systime.h (Time): New decl. Pull it in from <X11/X.h> if
9079 HAVE_X_WINDOWS, otherwise define it as unsigned long, which is
9080 what it was before.
9081 * menu.h, termhooks.h: Include "systime.h", for Time.
9082
9083 * keyboard.c (make_lispy_event): Fix problem in integer overflow.
9084 Don't assume that the difference between two unsigned long values
9085 can fit into an integer. At this point, we know button_down_time
9086 <= event->timestamp, so the difference must be nonnegative, so
9087 there's no need to cast the result if double-click-time is
9088 nonnegative, as it should be; check that it's nonnegative, just in
9089 case. This bug is triggered when events are more than 2**31 ms
9090 apart (about 25 days). (Bug#8664)
9091
9092 * xselect.c (last_event_timestamp): Remove duplicate decl.
9093 (x_own_selection): Remove needless cast to unsigned long.
9094
9095 * xmenu.c (set_frame_menubar): Use int, not EMACS_UINT, for indexes
9096 that always fit in int. Use a sentinel instead of a counter, to
9097 avoid a temp and to allay GCC's concerns about possible int overflow.
9098 * frame.h (struct frame): Use int for menu_bar_items_used
9099 instead of EMACS_INT, since it always fits in int.
9100
9101 * menu.c (grow_menu_items): Check for int overflow.
9102
9103 * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
9104
9105 * xterm.c: Use EMACS_INT for Emacs modifiers, and int for X modifiers.
9106 Before, the code was not consistent. These values cannot exceed
9107 2**31 - 1 so there's no need to make them unsigned.
9108 (x_x_to_emacs_modifiers): Accept int and return EMACS_INT.
9109 (x_emacs_to_x_modifiers): Accept EMACS_INT and return int.
9110 (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Reject non-integers
9111 as modifiers.
9112 * xterm.h (x_x_to_emacs_modifiers): Adjust to signature change.
9113
9114 * lisp.h (XINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_INT.
9115 (XUINT) [USE_LISP_UNION_TYPE]: Cast to EMACS_UINT.
9116 Otherwise, GCC 4.6.0 warns about printf (pI, XINT (...)),
9117 presumably because the widths might not match.
9118
9119 * window.c (size_window): Avoid needless test at loop start.
9120
9121 2011-05-18 Courtney Bane <emacs-bugs-7626@cbane.org> (tiny change)
9122
9123 * term.c (Fresume_tty): Restore hooks before reinitializing (bug#8687).
9124
9125 2011-05-12 Drew Adams <drew.adams@oracle.com>
9126
9127 * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655).
9128
9129 2011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
9130
9131 * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and
9132 `width' to `bar_area_x' and `bar_area_width', respectively.
9133 (x_scroll_run): Take account of fringe background extension.
9134
9135 * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
9136 Rename local vars `left' and `width' to `bar_area_x' and
9137 `bar_area_width', respectively.
9138 (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe
9139 background extension.
9140
9141 2011-05-10 Jim Meyering <meyering@redhat.com>
9142
9143 * xdisp.c (x_intersect_rectangles): Fix typo "the the -> the".
9144
9145 2011-05-10 Juanma Barranquero <lekktu@gmail.com>
9146
9147 * image.c (Finit_image_library): Return t for built-in image types,
9148 like pbm and xbm. (Bug#8640)
9149
9150 2011-05-09 Andreas Schwab <schwab@linux-m68k.org>
9151
9152 * w32menu.c (set_frame_menubar): Fix submenu allocation.
9153
9154 2011-05-07 Eli Zaretskii <eliz@gnu.org>
9155
9156 * w32console.c (Fset_screen_color): Doc fix.
9157 (Fget_screen_color): New function.
9158 (syms_of_ntterm): Defsubr it.
9159
9160 * callproc.c (call_process_cleanup) [MSDOS]: Don't close and
9161 unlink the temporary file if Fcall_process didn't create it in the
9162 first place.
9163 (Fcall_process) [MSDOS]: Don't create tempfile if stdout of the
9164 child process will be redirected to a file specified with `:file'.
9165 Don't try to re-open tempfile in that case, and set fd[0] to -1 as
9166 cue to call_process_cleanup not to close that handle.
9167
9168 2011-05-07 Ben Key <bkey76@gmail.com>
9169
9170 * makefile.w32-in: The bootstrap-temacs rule now makes use of
9171 one of two shell specific rules, either bootstrap-temacs-CMD or
9172 bootstrap-temacs-SH. The bootstrap-temacs-SH rule is identical
9173 to the previous implementation of the bootstrap-temacs rule.
9174 The bootstrap-temacs-CMD rule is similar to the previous
9175 implementation of the bootstrap-temacs rule except that it
9176 makes use of the ESC_CFLAGS variable instead of the CFLAGS
9177 variable.
9178
9179 These changes, along with some changes to nt/configure.bat,
9180 nt/gmake.defs, and nt/nmake.defs, are required to extend my
9181 earlier fix to add support for --cflags and --ldflags options
9182 that include quotes so that it works whether make uses cmd or
9183 sh as the shell.
9184
9185 2011-05-06 Michael Albinus <michael.albinus@gmx.de>
9186
9187 * dbusbind.c (QCdbus_type_unix_fd): Declare static.
9188 (xd_remove_watch): Don't check QCdbus_type_unix_fd for SYMBOLP, it
9189 is a constant.
9190 (Fdbus_init_bus, xd_read_queued_messages): Bus can be a symbol or
9191 a string. Handle both cases.
9192 (Fdbus_call_method_asynchronously, Fdbus_register_signal)
9193 (Fdbus_register_method): Use Qinvalid_function.
9194
9195 2011-05-06 Juanma Barranquero <lekktu@gmail.com>
9196
9197 * makefile.w32-in: Update dependencies.
9198 (LISP_H): Add inttypes.h and stdin.h.
9199 (PROCESS_H): Add unistd.h.
9200
9201 2011-05-06 Eli Zaretskii <eliz@gnu.org>
9202
9203 * lread.c: Include limits.h (fixes the MS-Windows build broken by
9204 2011-05-06T07:13:19Z!eggert@cs.ucla.edu).
9205
9206 2011-05-06 Paul Eggert <eggert@cs.ucla.edu>
9207
9208 * image.c (Finit_image_library) [!HAVE_NTGUI]: Omit unused local.
9209
9210 * term.c (vfatal): Remove stray call to va_end.
9211 It's not needed and the C Standard doesn't allow it here anyway.
9212
9213 Use C99's va_copy to avoid undefined behavior on x86-64 GNU/Linux.
9214 * eval.c (verror): doprnt a copy of ap, not the original. (Bug#8545)
9215
9216 * eval.c (verror): OK to create a string of up to MOST_POSITIVE_FIXNUM
9217 bytes.
9218
9219 * term.c: Don't include <stdarg.h>, as <lisp.h> does that.
9220
9221 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork clobbering.
9222
9223 * process.c (Fformat_network_address): Fix typo: args2 -> *args2.
9224
9225 * xmenu.c (set_frame_menubar): Fix typo: int * -> int (3 times).
9226
9227 * coding.c (detect_coding_charset): Fix typo: * 2 -> *4 (Bug#8601).
9228
9229 * charset.h (struct charset.code_space): Now has 15 elements, not 16.
9230 * charset.c (Fdefine_charset_internal): Don't initialize
9231 charset.code_space[15]. The value was garbage, on hosts with
9232 32-bit int (Bug#8600).
9233
9234 * lread.c (read_integer): Be more consistent with string-to-number.
9235 Use string_to_number to do the actual conversion; this avoids
9236 rounding errors and fixes some other screwups. Without this fix,
9237 for example, #x1fffffffffffffff was misread as -2305843009213693952.
9238 (digit_to_number): Move earlier, for benefit of read_integer.
9239 Return -1 if the digit is out of range for the base, -2 if it is
9240 not a digit in any supported base. (Bug#8602)
9241
9242 * doprnt.c (doprnt): Support arbitrary pI values, such as "I64".
9243
9244 * dispnew.c (scrolling_window): Return 1 if we scrolled,
9245 to match comment at start of function. This also removes a
9246 GCC warning about overflow in a 32+64-bit port.
9247
9248 * lisp.h (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Simplify.
9249
9250 * dbusbind.c: Do not use XPNTR on a value that may be an integer.
9251 Reported by Stefan Monnier in
9252 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
9253 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
9254 Use SYMBOLP-guarded XSYMBOL, not XPNTR.
9255
9256 * lisp.h (EMACS_INTPTR): Remove. All uses changed to intptr_t.
9257 (EMACS_UINTPTR): Likewise, with uintptr_t.
9258
9259 * lisp.h: Prefer 64-bit EMACS_INT if available.
9260 (EMACS_INT, EMACS_UINT, BITS_PER_EMACS_INT, pI): Define to 64-bit
9261 on 32-bit hosts that have 64-bit int, so that they can access
9262 large files.
9263 However, temporarily disable this change unless the temporary
9264 symbol WIDE_EMACS_INT is defined.
9265
9266 * lread.c, process.c: Do not include <inttypes.h>; lisp.h does it now.
9267
9268 Prefer intptr_t/uintptr_t for integers the same widths as pointers.
9269 This removes an assumption that EMACS_INT and long are the same
9270 width as pointers. The assumption is true for Emacs porting targets
9271 now, but we want to make other targets possible.
9272 * lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
9273 (EMACS_INTPTR, EMACS_UINTPTR): New macros.
9274 In the rest of the code, change types of integers that hold casted
9275 pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
9276 replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
9277 (XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
9278 (XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
9279 No need to cast type when ORing.
9280 (XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
9281 * alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
9282 * doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
9283 assume EMACS_INT is the same width as char *.
9284 * gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
9285 (xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
9286 Remove no-longer-needed casts.
9287 (xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
9288 (xg_tool_bar_help_callback, xg_make_tool_item):
9289 Use EMACS_INTPTR to hold an integer
9290 that will be cast to void *; this can avoid a GCC warning
9291 if EMACS_INT is not the same width as void *.
9292 * menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
9293 * xdisp.c (display_echo_area_1, resize_mini_window_1):
9294 (current_message_1, set_message_1):
9295 Use a local to convert to proper width without a cast.
9296 * xmenu.c (dialog_selection_callback): Likewise.
9297
9298 * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
9299 Also, don't assume VALBITS / RAND_BITS is less than 5,
9300 and don't rely on undefined behavior when shifting a 1 left into
9301 the sign bit.
9302 * lisp.h (get_random): Change signature to match.
9303
9304 * lread.c (hash_string): Use size_t, not int, for hash computation.
9305 Normally we prefer signed values; but hashing is special, because
9306 it's better to use unsigned division on hash table sizes so that
9307 the remainder is nonnegative. Also, size_t is the natural width
9308 for hashing into memory. The previous code used 'int', which doesn't
9309 retain enough info to hash well into very large tables.
9310 (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
9311
9312 * dbusbind.c: Don't possibly lose pointer info when converting.
9313 (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
9314 Use XPNTR rather than XHASH, so that the high-order bits of
9315 the pointer aren't lost when converting through void *.
9316
9317 * eval.c (Fautoload): Don't double-shift a pointer.
9318
9319 * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
9320
9321 2011-05-06 Juanma Barranquero <lekktu@gmail.com>
9322
9323 * gnutls.c (DEF_GNUTLS_FN):
9324 * image.c (DEF_IMGLIB_FN): Make function pointers static.
9325
9326 2011-05-05 Andreas Schwab <schwab@linux-m68k.org>
9327
9328 * lread.c (lisp_file_lexically_bound_p): Stop scanning at end
9329 marker. (Bug#8610)
9330
9331 2011-05-05 Eli Zaretskii <eliz@gnu.org>
9332
9333 * w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]:
9334 New version that can reserve upto 2GB of heap space.
9335
9336 2011-05-05 Chong Yidong <cyd@stupidchicken.com>
9337
9338 * nsfns.m (Fns_read_file_name): Doc fix (Bug#8534).
9339
9340 2011-05-05 Teodor Zlatanov <tzz@lifelogs.com>
9341
9342 * gnutls.c (fn_gnutls_certificate_set_x509_key_file): Add alias to
9343 `gnutls_certificate_set_x509_key_file'.
9344
9345 2011-05-05 Juanma Barranquero <lekktu@gmail.com>
9346
9347 * makefile.w32-in ($(BLD)/image.$(O), $(BLD)/process.$(O)):
9348 Update dependencies.
9349
9350 2011-05-04 Juanma Barranquero <lekktu@gmail.com>
9351
9352 * gnutls.h (emacs_gnutls_write, emacs_gnutls_read):
9353 * gnutls.c (emacs_gnutls_write, emacs_gnutls_read):
9354 Remove unused parameter `fildes'.
9355 * process.c (read_process_output, send_process): Don't pass it.
9356
9357 2011-05-04 Juanma Barranquero <lekktu@gmail.com>
9358
9359 Fix previous change: the library cache is defined in w32.c.
9360 * image.c (CACHE_IMAGE_TYPE) [!HAVE_NTGUI]: Define to noop.
9361 (Finit_image_library): Wrap Vlibrary_cache on "#ifdef HAVE_NTGUI".
9362
9363 2011-05-04 Juanma Barranquero <lekktu@gmail.com>
9364
9365 Implement dynamic loading of GnuTLS on Windows.
9366
9367 * gnutls.h (GNUTLS_EMACS_ERROR_NOT_LOADED): New macro.
9368 (emacs_gnutls_write, emacs_gnutls_read): Mark as extern.
9369 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
9370 Declare.
9371
9372 * gnutls.c (Qgnutls_dll): Define.
9373 (DEF_GNUTLS_FN, LOAD_GNUTLS_FN): New macros.
9374 (gnutls_*): Declare function pointers.
9375 (init_gnutls_functions): New function to initialize function pointers.
9376 (emacs_gnutls_handshake, Fgnutls_error_string, Fgnutls_deinit)
9377 (emacs_gnutls_global_init, Fgnutls_bye): Use function pointers.
9378 (emacs_gnutls_record_check_pending, emacs_gnutls_transport_set_errno):
9379 Wrappers for gnutls_record_check_pending and gnutls_transport_set_errno.
9380 (emacs_gnutls_write, emacs_gnutls_read)
9381 (emacs_gnutls_handle_error, Fgnutls_error_fatalp)
9382 (Fgnutls_available_p): New function.
9383 (Fgnutls_boot): Call Fgnutls_available_p. Use function pointers.
9384 (syms_of_gnutls) <Qgnutls_dll>: Initialize and staticpro it.
9385 (syms_of_gnutls) <Sgnutls_available_p>: defsubr it.
9386
9387 * image.c: Include w32.h.
9388 (Vimage_type_cache): Delete.
9389 (syms_of_image) <Vimage_type_cache>: Don't initialize and staticpro it.
9390 (CACHE_IMAGE_TYPE, Finit_image_library): Use Vlibrary_cache instead.
9391 (w32_delayed_load): Move to w32.c.
9392
9393 * w32.h (VlibraryCache, QCloaded_from, w32_delayed_load): Declare.
9394
9395 * w32.c (QCloaded_from, Vlibrary_cache): Define.
9396 (w32_delayed_load): Move from image.c. When loading a library, record
9397 its filename in the :loaded-from property of the library id.
9398 (globals_of_w32) <QCloaded_from, Vlibrary_cache>:
9399 Initialize and staticpro them.
9400 (emacs_gnutls_pull, emacs_gnutls_push): Call emacs_gnutls_* functions.
9401
9402 * process.c: Include lisp.h before w32.h, not after.
9403 (wait_reading_process_output): Call emacs_gnutls_record_check_pending
9404 instead of gnutls_record_check_pending.
9405
9406 * callproc.c, emacs.c: Include lisp.h before w32.h, not after.
9407
9408 2011-05-04 Teodor Zlatanov <tzz@lifelogs.com>
9409
9410 * gnutls.c (Fgnutls_boot): Support :keylist and :crlfiles options
9411 instead of :keyfiles. Give GnuTLS the keylist and the CRL lists
9412 as passed in.
9413
9414 2011-05-03 Jan Djärv <jan.h.d@swipnet.se>
9415
9416 * xterm.c (x_set_frame_alpha): Do not set property on anything
9417 else than FRAME_X_OUTER_WINDOW (Bug#8608).
9418
9419 2011-05-02 Juanma Barranquero <lekktu@gmail.com>
9420
9421 * sysdep.c (get_tty_size) [WINDOWSNT]: Implement. (Bug#8596)
9422
9423 2011-05-02 Juanma Barranquero <lekktu@gmail.com>
9424
9425 * gnutls.c (Qgnutls_log_level, Qgnutls_code, Qgnutls_anon)
9426 (Qgnutls_x509pki, Qgnutls_e_interrupted, Qgnutls_e_again)
9427 (Qgnutls_e_invalid_session, Qgnutls_e_not_ready_for_handshake)
9428 (gnutls_global_initialized, Qgnutls_bootprop_priority)
9429 (Qgnutls_bootprop_trustfiles, Qgnutls_bootprop_keyfiles)
9430 (Qgnutls_bootprop_callbacks, Qgnutls_bootprop_loglevel)
9431 (Qgnutls_bootprop_hostname, Qgnutls_bootprop_verify_flags)
9432 (Qgnutls_bootprop_verify_error, Qgnutls_bootprop_verify_hostname_error)
9433 (Qgnutls_bootprop_callbacks_verify): Make static.
9434
9435 2011-05-01 Andreas Schwab <schwab@linux-m68k.org>
9436
9437 * callproc.c: Indentation fixup.
9438
9439 * sysdep.c (wait_for_termination_1): Make static.
9440 (wait_for_termination, interruptible_wait_for_termination):
9441 Move after wait_for_termination_1.
9442
9443 2011-05-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
9444
9445 * sysdep.c (interruptible_wait_for_termination): New function
9446 which is like wait_for_termination, but allows keyboard
9447 interruptions.
9448
9449 * callproc.c (Fcall_process): Add (:file "file") as an option for
9450 the STDOUT buffer.
9451 (Fcall_process_region): Ditto.
9452
9453 2011-04-30 Eli Zaretskii <eliz@gnu.org>
9454
9455 * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
9456 rather than `XVECTOR (FOO)->size'.
9457
9458 * process.c: Remove HAVE_INTTYPES_H condition from inclusion of
9459 inttypes.h, as a gnulib replacement is used if it not available in
9460 system headers.
9461
9462 2011-04-21 Eli Zaretskii <eliz@gnu.org>
9463
9464 Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files.
9465 * fileio.c (Finsert_file_contents): Don't limit file size to 1/4
9466 of MOST_POSITIVE_FIXNUM. (Bug#8528)
9467
9468 * coding.c (coding_alloc_by_realloc): Error out if destination
9469 will grow beyond MOST_POSITIVE_FIXNUM.
9470 (decode_coding_emacs_mule): Abort if there isn't enough place in
9471 charbuf for the composition carryover bytes. Reserve an extra
9472 space for up to 2 characters produced in a loop.
9473 (decode_coding_iso_2022): Abort if there isn't enough place in
9474 charbuf for the composition carryover bytes.
9475
9476 2011-04-21 Eli Zaretskii <eliz@gnu.org>
9477
9478 * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
9479 aborting when %lld or %lll format is passed.
9480 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
9481 %llo or %llx format is passed. (Bug#8545)
9482
9483 * window.c (window_scroll_line_based): Use a marker instead of
9484 simple variables to record original value of point. (Bug#7952)
9485
9486 * doprnt.c (doprnt): Fix the case where a multibyte sequence
9487 produced by %s or %c overflows available buffer space. (Bug#8545)
9488
9489 2011-04-28 Paul Eggert <eggert@cs.ucla.edu>
9490
9491 * doprnt.c (doprnt): Omit useless test; int overflow check (Bug#8545).
9492 (SIZE_MAX): Move defn after all includes, as they might #define it.
9493
9494 2011-04-28 Juanma Barranquero <lekktu@gmail.com>
9495
9496 * w32.c (init_environment): Warn about defaulting HOME to C:\.
9497
9498 2011-04-28 Juanma Barranquero <lekktu@gmail.com>
9499
9500 * keyboard.c (Qdelayed_warnings_hook): Define.
9501 (command_loop_1): Run `delayed-warnings-hook'
9502 if Vdelayed_warnings_list is non-nil.
9503 (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
9504 (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
9505
9506 2011-04-28 Eli Zaretskii <eliz@gnu.org>
9507
9508 * doprnt.c (doprnt): Don't return value smaller than the buffer
9509 size if the message was truncated. (Bug#8545).
9510
9511 2011-04-28 Juanma Barranquero <lekktu@gmail.com>
9512
9513 * w32fns.c (Fx_change_window_property, Fx_delete_window_property)
9514 (Fx_window_property): #if-0 the whole functions, not just the bodies.
9515
9516 2011-04-27 Paul Eggert <eggert@cs.ucla.edu>
9517
9518 * doprnt.c (doprnt): Support "ll" length modifier, for long long.
9519
9520 2011-04-27 Juanma Barranquero <lekktu@gmail.com>
9521
9522 * makefile.w32-in: Update dependencies.
9523
9524 2011-04-27 Eli Zaretskii <eliz@gnu.org>
9525
9526 Improve `doprnt' and its usage. (Bug#8545)
9527 * doprnt.c (doprnt): Make sure `format' is never accessed beyond
9528 `format_end'. Remove support for %l as a conversion specifier.
9529 Don't use xrealloc. Improve diagnostics when the %l size modifier
9530 is used. Update the commentary.
9531
9532 * eval.c (verror): Simplify calculation of size_t.
9533
9534 * coding.c (Ffind_operation_coding_system): Fix diagnostic error
9535 messages.
9536
9537 2011-04-27 Yoshiaki Kasahara <kasahara@nc.kyushu-u.ac.jp> (tiny change)
9538
9539 * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Adjust to aliasing
9540 change.
9541
9542 2011-04-27 Paul Eggert <eggert@cs.ucla.edu>
9543
9544 * nsmenu.m: Replace all uses of XVECTOR with ASIZE and AREF.
9545 This makes this file independent of the recent pseudovector change.
9546
9547 2011-04-26 Paul Eggert <eggert@cs.ucla.edu>
9548
9549 * keyboard.c (handle_user_signal): Fix pointer signedness problem.
9550
9551 * gnutls.c (emacs_gnutls_handle_error): Remove unused local.
9552 (Fgnutls_boot): gnutls_certificate_verify_peers2 wants unsigned *.
9553 Remove unused local.
9554 (emacs_gnutls_write): Don't use uninitialized rtnval if nbyte <= 0.
9555
9556 * lisp.h: Fix a problem with aliasing and vector headers. (Bug#8546)
9557 GCC 4.6.0 optimizes based on type-based alias analysis.
9558 For example, if b is of type struct buffer * and v of type struct
9559 Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
9560 != &v->size, and therefore "v->size = 1; b->size = 2; return
9561 v->size;" must therefore return 1. This assumption is incorrect
9562 for Emacs, since it type-puns struct Lisp_Vector * with many other
9563 types. To fix this problem, this patch adds a new type struct
9564 vectorlike_header that documents the constraints on layout of vectors
9565 and pseudovectors, and helps optimizing compilers not get fooled
9566 by Emacs's type punning. It also adds the macros XSETTYPED_PVECTYPE
9567 XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
9568 * lisp.h (XSETTYPED_PVECTYPE): New macro, specifying the name of
9569 the size member.
9570 (XSETPVECTYPE): Rewrite in terms of new macro.
9571 (XSETPVECTYPESIZE): New macro, specifying both type and size.
9572 This is a bit clearer, and further avoids the possibility of
9573 undesirable aliasing.
9574 (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
9575 (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR.
9576 (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
9577 since Lisp_Subr is a special case (no "next" field).
9578 (ASIZE): Now uses header.size rather than size.
9579 All previous uses of XVECTOR (foo)->size replaced to use this macro,
9580 to avoid the hassle of writing XVECTOR (foo)->header.size.
9581 (struct vectorlike_header): New type.
9582 (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
9583 object, to help avoid aliasing.
9584 (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
9585 (SUBRP): Likewise, since Lisp_Subr is a special case.
9586 * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
9587 (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
9588 (struct Lisp_Hash_Table): Combine first two members into a single
9589 struct vectorlike_header member. All uses of "size" and "next" members
9590 changed to be "header.size" and "header.next".
9591 * buffer.h (struct buffer): Likewise.
9592 * font.h (struct font_spec, struct font_entity, struct font): Likewise.
9593 * frame.h (struct frame): Likewise.
9594 * process.h (struct Lisp_Process): Likewise.
9595 * termhooks.h (struct terminal): Likewise.
9596 * window.c (struct save_window_data, struct saved_window): Likewise.
9597 * window.h (struct window): Likewise.
9598 * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
9599 Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
9600 * buffer.c (init_buffer_once): Likewise.
9601 * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
9602 special case.
9603 * process.c (Fformat_network_address): Use local var for size,
9604 for brevity.
9605
9606 * bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
9607
9608 Make the Lisp reader and string-to-float more consistent (Bug#8525)
9609 * data.c (atof): Remove decl; no longer used or needed.
9610 (digit_to_number): Move to lread.c.
9611 (Fstring_to_number): Use new string_to_number function, to be
9612 consistent with how the Lisp reader treats infinities and NaNs.
9613 Do not assume that floating-point numbers represent EMACS_INT
9614 without losing information; this is not true on most 64-bit hosts.
9615 Avoid double-rounding errors, by insisting on integers when
9616 parsing non-base-10 numbers, as the documentation specifies.
9617 * lisp.h (string_to_number): New decl, replacing ...
9618 (isfloat_string): Remove.
9619 * lread.c: Include <inttypes.h>, for uintmax_t and strtoumax.
9620 (read1): Do not accept +. and -. as integers; this
9621 appears to have been a coding error. Similarly, do not accept
9622 strings like +-1e0 as floating point numbers. Do not report
9623 overflow for integer overflows unless the base is not 10 which
9624 means we have no simple and reliable way to continue.
9625 Break out the floating-point parsing into a new
9626 function string_to_number, so that Fstring_to_number parses
9627 floating point numbers consistently with the Lisp reader.
9628 (digit_to_number): Move here from data.c. Make it static inline.
9629 (E_CHAR, EXP_INT): Remove, replacing with ...
9630 (E_EXP): New macro, to solve the "1.0e+" problem mentioned below.
9631 (string_to_number): New function, replacing isfloat_string.
9632 This function checks for valid syntax and produces the resulting
9633 Lisp float number too. Rework it so that string-to-number
9634 no longer mishandles examples like "1.0e+". Use strtoumax,
9635 so that overflow for non-base-10 numbers is reported only when
9636 there's no portable and simple way to convert to floating point.
9637
9638 * textprop.c (set_text_properties_1): Rewrite for clarity,
9639 and to avoid GCC warning about integer overflow.
9640
9641 * intervals.h (struct interval): Use EMACS_INT for members
9642 where EMACS_UINT might cause problems. See
9643 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html>.
9644 (CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
9645 * intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
9646 All uses changed.
9647 (offset_intervals): Tell GCC not to worry about length overflow
9648 when negating a negative length.
9649
9650 * alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
9651 (overrun_check_free): Likewise.
9652
9653 * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check
9654 in the common case where SDATA_DATA_OFFSET is a multiple of Emacs
9655 word size.
9656
9657 * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
9658 (gnutls_make_error): Rename local to avoid shadowing.
9659 (gnutls_emacs_global_deinit): ifdef out; not used.
9660 (Fgnutls_boot): Use const for pointer to readonly storage.
9661 Comment out unused local. Fix pointer signedness problems.
9662
9663 * lread.c (openp): Don't stuff size_t into an 'int'.
9664 Use <= on length, not < on length + 1, to avoid GCC 4.6.0 warning
9665 about possible signed overflow.
9666
9667 * gtkutil.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10.
9668 (GDK_KEY_g): Don't define if already defined.
9669 (xg_prepare_tooltip): Avoid pointer signedness problem.
9670 (xg_set_toolkit_scroll_bar_thumb): Redo to avoid two casts.
9671
9672 * process.c (Fnetwork_interface_info): Avoid left-shift undefined
9673 behavior with 1 << 31. GCC 4.6.0 warns about this on 32-bit hosts.
9674
9675 * xfns.c (Fx_window_property): Simplify a bit,
9676 to make a bit faster and to avoid GCC 4.6.0 warning.
9677 * xselect.c (x_get_window_property, x_handle_dnd_message): Likewise.
9678
9679 * fns.c (internal_equal): Don't assume size_t fits in int.
9680
9681 * alloc.c (compact_small_strings): Tighten assertion a little.
9682
9683 Replace pEd with more-general pI, and fix some printf arg casts.
9684 * lisp.h (pI): New macro, generalizing old pEd macro to other
9685 conversion specifiers. For example, use "...%"pI"d..." rather
9686 than "...%"pEd"...".
9687 (pEd): Remove. All uses replaced with similar uses of pI.
9688 * m/amdx86-64.h, m/ia64.h, m/ibms390x.h: Likewise.
9689 * alloc.c (check_pure_size): Don't overflow by converting size to int.
9690 * bidi.c (bidi_dump_cached_states): Use pI to avoid cast.
9691 * data.c (Fnumber_to_string): Use pI instead of if-then-else-abort.
9692 * dbusbind.c (xd_append_arg): Use pI to avoid cast.
9693 (Fdbus_method_return_internal, Fdbus_method_error_internal): Likewise.
9694 * font.c (font_unparse_xlfd): Avoid potential buffer overrun on
9695 64-bit hosts.
9696 (font_unparse_xlfd, font_unparse_fcname): Use pI to avoid casts.
9697 * keyboard.c (record_char, modify_event_symbol): Use pI to avoid casts.
9698 * print.c (safe_debug_print, print_object): Likewise.
9699 (print_object): Don't overflow by converting EMACS_INT or EMACS_UINT
9700 to int.
9701 Use pI instead of if-then-else-abort. Use %p to avoid casts,
9702 avoiding the 0 flag, which is not portable.
9703 * process.c (Fmake_network_process): Use pI to avoid cast.
9704 * region-cache.c (pp_cache): Likewise.
9705 * xdisp.c (decode_mode_spec): Likewise.
9706 * xrdb.c (x_load_resources) [USE_MOTIF]: Use pI to avoid undefined
9707 behavior on 64-bit hosts with printf arg.
9708 * xselect.c (x_queue_event): Use %p to avoid casts, avoiding 0 flag.
9709 (x_stop_queuing_selection_requests): Likewise.
9710 (x_get_window_property): Don't truncate byte count to an 'int'
9711 when tracing.
9712
9713 * frame.c (frame_name_fnn_p): Get rid of strtol, which isn't right
9714 here, since it parses constructs like leading '-' and spaces,
9715 which are not wanted; and it overflows with large numbers.
9716 Instead, simply match F[0-9]+, which is what is wanted anyway.
9717
9718 * alloc.c: Remove unportable assumptions about struct layout.
9719 (SDATA_SELECTOR, SDATA_DATA_OFFSET): New macros.
9720 (SDATA_OF_STRING, SDATA_SIZE, allocate_string_data):
9721 (allocate_vectorlike, make_pure_vector): Use the new macros,
9722 plus offsetof, to remove unportable assumptions about struct layout.
9723 These assumptions hold on all porting targets that I know of, but
9724 they are not guaranteed, they're easy to remove, and removing them
9725 makes further changes easier.
9726
9727 * alloc.c (BLOCK BYTES): Fix typo by changing "ablock" to "ablocks".
9728 This doesn't fix a bug but makes the code clearer.
9729 (string_overrun_cookie): Now const. Use initializers that
9730 don't formally overflow signed char, to avoid warnings.
9731 (allocate_string_data) [GC_CHECK_STRING_OVERRUN]: Fix typo that
9732 can cause Emacs to crash when string overrun checking is enabled.
9733 (allocate_buffer): Don't assume sizeof (struct buffer) is a
9734 multiple of sizeof (EMACS_INT); it need not be, if
9735 alignof(EMACS_INT) < sizeof (EMACS_INT).
9736 (check_sblock, check_string_bytes, check_string_free_list): Protoize.
9737
9738 2011-04-26 Juanma Barranquero <lekktu@gmail.com>
9739
9740 * keyboard.c (QCrtl): Rename from Qrtl. All uses changed.
9741
9742 2011-04-26 Teodor Zlatanov <tzz@lifelogs.com>
9743
9744 * gnutls.c (emacs_gnutls_handshake): Return an error if we're not
9745 supposed to be handshaking. (Bug#8556)
9746 Reported by Paul Eggert <eggert@cs.ucla.edu>.
9747
9748 2011-04-26 Daniel Colascione <dan.colascione@gmail.com>
9749
9750 * lisp.h (Qdebug): List symbol.
9751 * eval.c (Qdebug): Restore global linkage.
9752 * keyboard.c (debug-on-event): New variable.
9753 (handle_user_signal): Break into debugger when debug-on-event
9754 matches the current signal symbol.
9755
9756 2011-04-25 Dan Nicolaescu <dann@ics.uci.edu>
9757
9758 * alloc.c (check_sblock, check_string_bytes)
9759 (check_string_free_list): Convert to standard C.
9760
9761 2011-04-25 Teodor Zlatanov <tzz@lifelogs.com>
9762
9763 * w32.c (emacs_gnutls_push): Fix typo.
9764
9765 2011-04-25 Eli Zaretskii <eliz@gnu.org>
9766
9767 * gnutls.c (emacs_gnutls_handshake): Avoid compiler warnings about
9768 "cast to pointer from integer of different size".
9769
9770 Improve doprnt and its use in verror. (Bug#8545)
9771 * doprnt.c (doprnt): Document the set of format control sequences
9772 supported by the function. Use SAFE_ALLOCA instead of always
9773 using `alloca'.
9774
9775 * eval.c (verror): Don't limit the buffer size at size_max-1, that
9776 is one byte too soon. Don't use xrealloc; instead xfree and
9777 xmalloc anew.
9778
9779 2011-04-24 Teodor Zlatanov <tzz@lifelogs.com>
9780
9781 * gnutls.h: Add GNUTLS_STAGE_CALLBACKS enum to denote we're in the
9782 callbacks stage.
9783
9784 * gnutls.c: Renamed global_initialized to
9785 gnutls_global_initialized. Added internals for the
9786 :verify-hostname-error, :verify-error, and :verify-flags
9787 parameters of `gnutls-boot' and documented those parameters in the
9788 docstring. Start callback support.
9789 (emacs_gnutls_handshake): Add Woe32 support. Retry handshake
9790 unless a fatal error occurred. Call gnutls_alert_send_appropriate
9791 on error. Return error code.
9792 (emacs_gnutls_write): Call emacs_gnutls_handle_error.
9793 (emacs_gnutls_read): Likewise.
9794 (Fgnutls_boot): Return handshake error code.
9795 (emacs_gnutls_handle_error): New function.
9796 (wsaerror_to_errno): Likewise.
9797
9798 * w32.h (emacs_gnutls_pull): Add prototype.
9799 (emacs_gnutls_push): Likewise.
9800
9801 * w32.c (emacs_gnutls_pull): New function for GnuTLS on Woe32.
9802 (emacs_gnutls_push): Likewise.
9803
9804 2011-04-24 Claudio Bley <claudio.bley@gmail.com> (tiny change)
9805
9806 * process.c (wait_reading_process_output): Check if GnuTLS
9807 buffered some data internally if no FDs are set for TLS
9808 connections.
9809
9810 * makefile.w32-in (OBJ2): Add gnutls.$(O).
9811 (LIBS): Link to USER_LIBS.
9812 ($(BLD)/gnutls.$(0)): New target.
9813
9814 2011-04-24 Eli Zaretskii <eliz@gnu.org>
9815
9816 * xdisp.c (handle_single_display_spec): Rename the
9817 display_replaced_before_p argument into display_replaced_p, to
9818 make it consistent with the commentary. Fix typos in the
9819 commentary.
9820
9821 * textprop.c (syms_of_textprop): Remove dead code.
9822 (copy_text_properties): Delete obsolete commentary about an
9823 interface that was deleted long ago. Fix typos in the description
9824 of arguments.
9825
9826 * msdos.c (XMenuActivate, XMenuAddSelection): Adjust argument list
9827 to changes in oldXMenu/XMenu.h from 2011-04-16.
9828 <menu_help_message, prev_menu_help_message>: Constify.
9829 (IT_menu_make_room): menu->help_text is now `const char **';
9830 adjust.
9831
9832 * msdos.h (XMenuActivate, XMenuAddSelection): Adjust prototypes
9833 to changes in oldXMenu/XMenu.h from 2011-04-16.
9834 (struct XMenu): Declare `help_text' `const char **'.
9835
9836 * xfaces.c <Qunspecified>: Make extern again.
9837
9838 * syntax.c: Include sys/types.h before including regex.h, as
9839 required by POSIX.
9840
9841 * doc.c (get_doc_string): Improve the format passed to `error'.
9842
9843 * doprnt.c (doprnt): Improve commentary.
9844
9845 * term.c (init_tty) [MSDOS]: Fix 1st argument to maybe_fatal.
9846
9847 * Makefile.in (TAGS): Depend on $(M_FILE) and $(S_FILE), and scan
9848 them with etags.
9849
9850 * makefile.w32-in (globals.h): Add a dummy recipe, to make any
9851 changes in globals.h immediately force recompilation.
9852 (TAGS): Depend on $(CURDIR)/m/intel386.h and
9853 $(CURDIR)/s/ms-w32.h.
9854 (TAGS-gmake): Scan $(CURDIR)/m/intel386.h and $(CURDIR)/s/ms-w32.h.
9855
9856 * character.c (Fchar_direction): Function deleted.
9857 (syms_of_character): Don't defsubr it.
9858 <char-direction-table>: Deleted.
9859
9860 2011-04-23 Eli Zaretskii <eliz@gnu.org>
9861
9862 Fix doprnt so it could be used again safely in `verror'. (Bug#8435)
9863 * doprnt.c: Include limits.h.
9864 (SIZE_MAX): New macro.
9865 (doprnt): Return a size_t value. 2nd arg is now size_t.
9866 Many local variables are now size_t instead of int or unsigned.
9867 Improve overflow protection. Support `l' modifier for integer
9868 conversions. Support %l conversion. Don't assume an EMACS_INT
9869 argument for integer conversions and for %c.
9870
9871 * lisp.h (doprnt): Restore prototype.
9872
9873 * makefile.w32-in ($(BLD)/callint.$(O)): Depend on
9874 $(SRC)/character.h.
9875
9876 * Makefile.in (base_obj): Add back doprnt.o.
9877
9878 * deps.mk (doprnt.o): Add back prerequisites.
9879 (callint.o): Depend on character.h.
9880
9881 * eval.c (internal_lisp_condition_case): Include the handler
9882 representation in the error message.
9883 (verror): Call doprnt instead of vsnprintf. Fix an off-by-one bug
9884 when breaking from the loop.
9885
9886 * xdisp.c (vmessage): Call doprnt instead of vsnprintf.
9887
9888 * callint.c (Fcall_interactively): When displaying error message
9889 about invalid control letter, pass the character's codepoint, not
9890 a pointer to its multibyte form. Improve display of the character
9891 in octal and display also its hex code.
9892
9893 * character.c (char_string): Use %x to display the (unsigned)
9894 codepoint of an invalid character, to avoid displaying a bogus
9895 negative value.
9896
9897 * font.c (check_otf_features): Pass SDATA of SYMBOL_NAME to
9898 `error', not SYMBOL_NAME itself.
9899
9900 * coding.c (Fencode_sjis_char, Fencode_big5_char): Use %c for
9901 character arguments to `error'.
9902
9903 * charset.c (check_iso_charset_parameter): Fix incorrect argument
9904 to `error' in error message about FINAL_CHAR argument. Make sure
9905 FINAL_CHAR is a character, and use %c when it is passed as
9906 argument to `error'.
9907
9908 2011-04-23 Eli Zaretskii <eliz@gnu.org>
9909
9910 * s/ms-w32.h (localtime): Redirect to sys_localtime.
9911
9912 * w32.c: Include <time.h>.
9913 (sys_localtime): New function.
9914
9915 2011-04-23 Chong Yidong <cyd@stupidchicken.com>
9916
9917 * xdisp.c (init_xdisp): Initialize echo_area_window (Bug#6451).
9918
9919 * buffer.c (syms_of_buffer): Doc fix (Bug#6902).
9920
9921 2011-04-23 Samuel Thibault <sthibault@debian.org> (tiny change)
9922
9923 * sysdep.c (wait_for_termination): On GNU Hurd, kill returns -1 on
9924 zombies (Bug#8467).
9925
9926 2011-04-19 Eli Zaretskii <eliz@gnu.org>
9927
9928 * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix setting of
9929 gl_state.e_property when gl_state.object is Qt.
9930
9931 * insdel.c (make_gap_larger): Remove limitation of buffer size
9932 to <= INT_MAX.
9933
9934 2011-04-18 Chong Yidong <cyd@stupidchicken.com>
9935
9936 * xdisp.c (lookup_glyphless_char_display)
9937 (produce_glyphless_glyph): Handle cons cell entry in
9938 glyphless-char-display.
9939 (Vglyphless_char_display): Document it.
9940
9941 * term.c (produce_glyphless_glyph): Handle cons cell entry in
9942 glyphless-char-display.
9943
9944 2011-04-17 Chong Yidong <cyd@stupidchicken.com>
9945
9946 * xdisp.c (get_next_display_element): Remove unnecessary ifdefs.
9947
9948 * termhooks.h (FRAME_WINDOW_P): Remove duplicated definitions.
9949
9950 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): Add missing
9951 definition for no-X builds.
9952
9953 2011-04-16 Paul Eggert <eggert@cs.ucla.edu>
9954
9955 Static checks with GCC 4.6.0 and non-default toolkits.
9956
9957 * s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF): Protoize decl.
9958
9959 * process.c (keyboard_bit_set): Define only if SIGIO.
9960 (send_process_trap): Mark it with NO_RETURN if it doesn't return.
9961 (send_process): Repair possible setjmp clobbering.
9962
9963 * s/usg5-4-common.h (SETUP_SLAVE_PTY): Don't pass extra arg to 'fatal'.
9964
9965 * eval.c: Include <stdio.h>, for vsnprintf on non-GNU/Linux hosts.
9966
9967 * data.c (arith_error): Mark with NO_RETURN if it doesn't return.
9968
9969 * alloc.c (bytes_used_when_full, SPARE_MEMORY, BYTES_USED):
9970 Define only if needed.
9971
9972 * sysdep.c (_FILE_OFFSET_BITS): Make this hack even uglier
9973 by pacifying GCC about it. Maybe it's time to retire it?
9974 * xfaces.c (USG, __TIMEVAL__): Likewise.
9975
9976 * dispextern.h (struct redisplay_interface): Rename param
9977 to avoid shadowing.
9978 * termhooks.h (struct terminal): Likewise.
9979 * xterm.c (xembed_send_message): Likewise.
9980
9981 * insdel.c (make_gap_smaller): Define only if
9982 USE_MMAP_FOR_BUFFERS || REL_ALLOC || DOUG_LEA_MALLOC.
9983
9984 * keyboard.c (read_char): Make a var volatile so longjmp won't clobber
9985 it.
9986
9987 * emacs.c (MAX_HEAP_BSS_DIFF, my_edata): Move to where they're used,
9988 so that we aren't warned about unused symbols.
9989
9990 * xfns.c (Fx_file_dialog): Rename local to avoid shadowing.
9991
9992 * xdisp.c (x_produce_glyphs): Mark var as initialized (Bug#8512).
9993
9994 * xfns.c (x_real_positions): Mark locals as initialized.
9995
9996 * xmenu.c (xmenu_show): Don't use uninitialized vars.
9997
9998 * xterm.c: Fix problems found by static analysis with other toolkits.
9999 (toolkit_scroll_bar_interaction): Define and use only if USE_X_TOOLKIT.
10000 (x_dispatch_event): Declare static if USE_GTK, and
10001 define if USE_GTK || USE_X_TOOLKIT.
10002 (SET_SAVED_BUTTON_EVENT): Define only if USE_X_TOOLKIT || USE_GTK.
10003 * xterm.h (x_dispatch_event): Extern only if USE_X_TOOLKIT.
10004 * xterm.c, xterm.h (x_mouse_leave): Bring this function back, but only
10005 if defined HAVE_MENUS && !defined USE_X_TOOLKIT && !defined USE_GTK.
10006
10007 * xmenu.c (menu_help_callback): Pointer type fixes.
10008 Use const pointers when pointing at readonly data. Avoid pointer
10009 signedness clashes.
10010 (FALSE): Remove unused macro.
10011 (update_frame_menubar): Remove unused decl.
10012
10013 * xfns.c (Fx_hide_tip): Move locals to avoid shadowing.
10014
10015 * menu.c (push_submenu_start, push_submenu_end): Do not define unless
10016 USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI.
10017 (single_menu_item): Rename local to avoid shadowing.
10018
10019 * keyboard.c (make_lispy_event): Remove unused local var.
10020
10021 * frame.c, frame.h (x_get_resource_string): Bring this back, but
10022 only if HAVE_X_WINDOWS && !USE_X_TOOLKIT.
10023
10024 * bitmaps: Change bitmaps from unsigned char back to the X11
10025 compatible char. Avoid the old compiler warnings about
10026 out-of-range initializers by using, for example, '\xab' rather
10027 than 0xab.
10028
10029 * xgselect.c (xgselect_initialize): Check vs interface
10030 even if ! (defined (USE_GTK) || defined (HAVE_GCONF)).
10031
10032 * xmenu.c (xmenu_show): Rename parm to avoid shadowing.
10033
10034 * xterm.c (x_create_toolkit_scroll_bar): Use const * for pointers
10035 to read-only memory.
10036
10037 * fns.c (vector): Remove; this old hack is no longer needed.
10038
10039 * xsmfns.c (create_client_leader_window): Rename shadowing arg.
10040 Remove unused var.
10041 (gdk_x11_set_sm_client_id) [!USE_GTK]: Don't define.
10042
10043 * xrdb.c (x_load_resources): Omit unused local.
10044
10045 * xfns.c (free_frame_menubar, atof): Remove duplicate decls.
10046 (x_window): Rename locals to avoid shadowing.
10047 (USG): Use the kludged USG macro, to pacify gcc.
10048
10049 * xterm.c (x_alloc_nearest_color_for_widget): Remove; unused.
10050 (x_term_init): Remove local to avoid shadowing.
10051
10052 * xfns.c, xterm.c (_XEditResCheckMessages): Protoize decl.
10053
10054 * xdisp.c, dispextern.h (set_vertical_scroll_bar): Now extern if
10055 USE_TOOLKIT_SCROLL_BARS && !USE_GTK, as xterm.c needs it then.
10056
10057 2011-04-16 Eli Zaretskii <eliz@gnu.org>
10058
10059 * gnutls.c (Fgnutls_boot): Don't pass Lisp_Object to `error'.
10060
10061 Fix regex.c, syntax.c and friends for buffers > 2GB.
10062 * syntax.h (struct gl_state_s): Declare character position members
10063 EMACS_INT.
10064
10065 * syntax.c (update_syntax_table): Declare 2nd argument EMACS_INT.
10066
10067 * textprop.c (verify_interval_modification, interval_of):
10068 Declare arguments EMACS_INT.
10069
10070 * intervals.c (adjust_intervals_for_insertion): Declare arguments
10071 EMACS_INT.
10072
10073 * intervals.h (CHECK_TOTAL_LENGTH): Cast to EMACS_INT, not `int'.
10074
10075 * indent.c (Fvertical_motion): Local variable it_start is now
10076 EMACS_INT.
10077
10078 * regex.c (re_match, re_match_2, re_match_2_internal)
10079 (bcmp_translate, regcomp, regexec, print_double_string)
10080 (group_in_compile_stack, re_search, re_search_2, regex_compile)
10081 (re_compile_pattern, re_exec): Declare arguments and local
10082 variables `size_t' and `ssize_t' and return values `regoff_t', as
10083 appropriate.
10084 (POP_FAILURE_REG_OR_COUNT) <pfreg>: Declare `long'.
10085 (CHECK_INFINITE_LOOP) <failure>: Declare `ssize_t'.
10086 <compile_stack_type>: `size' and `avail' are now `size_t'.
10087
10088 * regex.h <regoff_t>: Use ssize_t, not int.
10089 (re_search, re_search_2, re_match, re_match_2): Arguments that
10090 specify buffer/string position and length are now ssize_t and
10091 size_t. Return type is regoff_t.
10092
10093 2011-04-16 Ben Key <bkey76@gmail.com>
10094
10095 * nsfont.m: Fixed bugs in ns_get_family and
10096 ns_descriptor_to_entity that were caused by using free to
10097 deallocate memory blocks that were allocated by xmalloc (via
10098 xstrdup). This caused Emacs to crash when compiled with
10099 XMALLOC_OVERRUN_CHECK defined (when Emacs was configured with
10100 --enable-checking=xmallocoverrun). xfree is now used to
10101 deallocate these memory blocks.
10102
10103 2011-04-15 Paul Eggert <eggert@cs.ucla.edu>
10104
10105 * sysdep.c (emacs_read): Remove unnecessary check vs MAX_RW_COUNT.
10106
10107 emacs_write: Accept and return EMACS_INT for sizes.
10108 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00514.html
10109 et seq.
10110 * gnutls.c, gnutls.h (emacs_gnutls_read, emacs_gnutls_write):
10111 Accept and return EMACS_INT.
10112 (emacs_gnutls_write): Return the number of bytes written on
10113 partial writes.
10114 * sysdep.c, lisp.h (emacs_read, emacs_write): Likewise.
10115 (emacs_read, emacs_write): Remove check for negative size, as the
10116 Emacs source code has been audited now.
10117 * sysdep.c (MAX_RW_COUNT): New macro, to work around kernel bugs.
10118 (emacs_read, emacs_write): Use it.
10119 * process.c (send_process): Adjust to the new signatures of
10120 emacs_write and emacs_gnutls_write. Do not attempt to store
10121 a byte offset into an 'int'; it might overflow.
10122 See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00483.html
10123
10124 * sound.c: Don't assume sizes fit in 'int'.
10125 (struct sound_device.period_size, alsa_period_size):
10126 Return EMACS_INT, not int.
10127 (struct sound_device.write, vox_write, alsa_write):
10128 Accept EMACS_INT, not int.
10129 (wav_play, au_play): Use EMACS_INT to store sizes and to
10130 record read return values.
10131
10132 2011-04-15 Ben Key <bkey76@gmail.com>
10133
10134 * keyboard.c (Qundefined): Don't declare static since it is used
10135 in nsfns.m.
10136 * xfaces.c (Qbold, Qexpanded, Qitalic, Qcondensed): Don't declare
10137 static since they are used in nsfont.m.
10138
10139 2011-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
10140
10141 * process.c (Qprocessp): Don't declare static.
10142 * lisp.h (Qprocessp): Declare again.
10143
10144 2011-04-15 Juanma Barranquero <lekktu@gmail.com>
10145
10146 * font.c (Qopentype): Don't make static (used from w32uniscribe.c).
10147
10148 2011-04-14 Paul Eggert <eggert@cs.ucla.edu>
10149
10150 Improve C-level modularity by making more things 'static'.
10151
10152 Don't publish debugger-only interfaces to other modules.
10153 * lisp.h (safe_debug_print, debug_output_compilation_hack):
10154 (verify_bytepos, count_markers): Move decls to the only modules
10155 that need them.
10156 * region-cache.h (pp_cache): Likewise.
10157 * window.h (check_all_windows): Likewise.
10158 * marker.c, print.c, region-cache.c, window.c: Decls moved here.
10159
10160 * sysdep.c (croak): Now static, if
10161 defined TIOCNOTTY || defined USG5 || defined CYGWIN.
10162 * syssignal.h (croak): Declare only if not static.
10163
10164 * alloc.c (refill_memory_reserve): Now static if
10165 !defined REL_ALLOC || defined SYSTEM_MALLOC.
10166 * lisp.h (refill_memory_reserve): Declare only if not static.
10167
10168 * xsettings.c, xsettings.h (xsettings_get_system_normal_font):
10169 Define only if USE_LUCID.
10170
10171 * xrdb.c (x_customization_string, x_rm_string): Now static.
10172
10173 * xmenu.c (x_menu_wait_for_event): Export only if USE_MOTIF.
10174 * xterm.h (x_menu_wait_for_event): Declare only if USE_MOTIF.
10175
10176 * xdisp.c (draw_row_with_mouse_face): Now static.
10177 * dispextern.h (draw_row_with_mouse_fave): Remove decl.
10178
10179 * window.h (check_all_windows): Mark externally visible.
10180
10181 * window.c (window_deletion_count): Now static.
10182
10183 * undo.c: Make symbols static if they're not exported.
10184 (last_undo_buffer, last_boundary_position, pending_boundary):
10185 Now static.
10186
10187 * textprop.c (interval_insert_behind_hooks): Now static.
10188 (interval_insert_in_front_hooks): Likewise.
10189
10190 * term.c: Make symbols static if they're not exported.
10191 (tty_turn_off_highlight, get_tty_terminal, max_frame_cols):
10192 (max_frame_lines, tty_set_terminal_modes):
10193 (tty_reset_terminal_modes, tty_turn_off_highlight):
10194 (get_tty_terminal): Now static.
10195 (term_mouse_moveto): Do not define if HAVE_WINDOW_SYSTEM.
10196 * termhooks.h (term_mouse_moveto): Do not declare if
10197 HAVE_WINDOW_SYSTEM.
10198 * dispextern.h (tty_set_terminal_modes, tty_reset_terminal_modes):
10199 (tty_turn_off_highlight, get_tty_terminal): Remove decls.
10200
10201 * sysdep.c: Make symbols static if they're not exported.
10202 (emacs_get_tty, emacs_set_tty, old_fcntl_flags, old_fcntl_owner):
10203 Now static.
10204 (sigprocmask_set, full_mask): Remove; unused.
10205 (wait_debugging): Mark as visible.
10206 * syssignal.h (SIGFULLMASK, full_mask): Remove decls.
10207 * systty.h (emacs_get_tty, emacs_set_tty): Remove decls.
10208
10209 * syntax.c (syntax_temp): Define only if !__GNUC__.
10210
10211 * sound.c (current_sound_device, current_sound): Now static.
10212
10213 * search.c (searchbufs, searchbuf_head): Now static.
10214
10215 * scroll.c (scroll_cost): Remove; unused.
10216 * dispextern.h (scroll_cost): Remove decl.
10217
10218 * region-cache.h (pp_cache): Mark as externally visible.
10219
10220 * process.c: Make symbols static if they're not exported.
10221 (process_tick, update_tick, create_process, chan_process):
10222 (Vprocess_alist, proc_buffered_char, datagram_access):
10223 (fd_callback_data, send_process_frame, process_sent_to): Now static.
10224 (deactivate_process): Mark defn as static, as well as decl.
10225 * lisp.h (create_process): Remove decl.
10226 * process.h (chan_process, Vprocess_alist): Remove decls.
10227
10228 * print.c: Make symbols static if they're not exported.
10229 (print_depth, new_backquote_output, being_printed, print_buffer):
10230 (print_buffer_size, print_buffer_pos, print_buffer_pos_byte):
10231 (print_interval, print_number_index, initial_stderr_stream):
10232 Now static.
10233 * lisp.h (Fprinc): Remove decl.
10234 (debug_output_compilation_hack): Mark as externally visible.
10235
10236 * sysdep.c (croak): Move decl from here to syssignal.h.
10237 * syssignal.h (croak): Put it here, so the API can be checked when
10238 'croak' is called from dissociate_if_controlling_tty.
10239
10240 * minibuf.c: Make symbols static if they're not exported.
10241 (minibuf_save_list, choose_minibuf_frame): Now static.
10242 * lisp.h (choose_minibuf_frame): Remove decl.
10243
10244 * lisp.h (verify_bytepos, count_markers): Mark as externally visible.
10245
10246 * lread.c: Make symbols static if they're not exported.
10247 (read_objects, initial_obarray, oblookup_last_bucket_number):
10248 Now static.
10249 (make_symbol): Remove; unused.
10250 * lisp.h (initial_obarray, make_symbol): Remove decls.
10251
10252 * keyboard.c: Make symbols static if they're not exported.
10253 (single_kboard, recent_keys_index, total_keys, recent_keys):
10254 (this_command_key_count_reset, raw_keybuf, raw_keybuf_count):
10255 (this_single_command_key_start, echoing, last_auto_save):
10256 (read_key_sequence_cmd, dribble, recursive_edit_unwind):
10257 (command_loop, echo_now, keyboard_init_hook, help_char_p):
10258 (quit_throw_to_read_char, command_loop_2, top_level_1, poll_timer):
10259 (Vlispy_mouse_stem, double_click_count):
10260 Now static.
10261 (force_auto_save_soon): Define only if SIGDANGER.
10262 (ignore_mouse_drag_p): Now static if
10263 !defined HAVE_WINDOW_SYSTEM || defined USE_GTK || defined HAVE_NS.
10264 (print_help): Remove; unused.
10265 (stop_character, last_timer_event): Mark as externally visible.
10266 * keyboard.h (ignore_mouse_drag_p): Declare only if
10267 defined HAVE_WINDOW_SYSTEM && !defined USE_GTK && !defined HAVE_NS.
10268 (echo_now, help_char_p, quit_throw_to_read_char): Remove decls.
10269 * lisp.h (echoing): Remove decl.
10270 (force_auto_save_soon): Declare only if SIGDANGER.
10271 * xdisp.c (redisplay_window): Simplify code, to make it more
10272 obvious that ignore_mouse_drag_p is not accessed if !defined
10273 USE_GTK && !defined HAVE_NS.
10274
10275 * intervals.c: Make symbols static if they're not exported.
10276 (merge_properties_sticky, merge_interval_right, delete_interval):
10277 Now static.
10278 * intervals.h (merge_interval_right, delete_interval): Remove decls.
10279
10280 * insdel.c: Make symbols static if they're not exported.
10281 However, leave prepare_to_modify_buffer alone. It's never
10282 called from outside this function, but that appears to be a bug.
10283 (combine_after_change_list, combine_after_change_buffer):
10284 (adjust_after_replace, signal_before_change): Now static.
10285 (adjust_after_replace_noundo): Remove; unused.
10286 * lisp.h (adjust_after_replace, adjust_after_replace_noundo):
10287 (signal_before_change): Remove decls.
10288
10289 * indent.c (val_compute_motion, val_vmotion): Now static.
10290
10291 * image.c: Make symbols static if they're not exported.
10292 * dispextern.h (x_create_bitmap_from_xpm_data): Do not declare
10293 if USE_GTK.
10294 * image.c (x_create_bitmap_from_xpm_data): Do not define if USE_GTK.
10295 (xpm_color_cache, ct_table, ct_colors_allocated): Now static.
10296
10297 * fringe.c (standard_bitmaps): Now static.
10298 (max_used_fringe_bitmap): Now static, unless HAVE_NS.
10299
10300 * frame.c: Make symbols static if they're not exported.
10301 (x_report_frame_params, make_terminal_frame): Now static.
10302 (get_frame_param): Now static, unless HAVE_NS.
10303 (x_fullscreen_adjust): Define if WINDOWSNT, not if HAVE_WINDOW_SYSTEM.
10304 (x_get_resource_string): Remove; not used.
10305 * frame.h (make_terminal_frame, x_report_frame_params):
10306 (x_get_resource_string); Remove decls.
10307 (x_fullscreen_adjust): Declare only if WINDOWSNT.
10308 * lisp.h (get_frame_param): Declare only if HAVE_NS.
10309
10310 * font.c, fontset.c: Make symbols static if they're not exported.
10311 * dispextern.h (FACE_SUITABLE_FOR_ASCII_CHAR_P): New macro.
10312 (FACE_SUITABLE_FOR_CHAR_P): Use it.
10313 * font.c (font_close_object): Now static.
10314 * font.h (font_close_object): Remove.
10315 * fontset.c (FONTSET_OBJLIST): Remove.
10316 (free_realized_fontset) #if-0 the body, which does nothing.
10317 (face_suitable_for_char_p): #if-0, as it's never called.
10318 * fontset.h (face_suitable_for_char_p): Remove decl.
10319 * xfaces.c (face_at_string_position):
10320 Use FACE_SUITABLE_FOR_ASCII_CHAR_P, not FACE_SUITABLE_FOR_CHAR_P,
10321 since 0 is always ASCII.
10322
10323 * fns.c (weak_hash_tables): Now static.
10324
10325 * fileio.c: Make symbols static if they're not exported.
10326 (auto_saving, auto_save_mode_bits, auto_save_error_occurred):
10327 (Vwrite_region_annotation_buffers): Now static.
10328
10329 * eval.c: Make symbols static if they're not exported.
10330 (backtrace_list, lisp_eval_depth, when_entered_debugger): Now static.
10331 * lisp.h (backtrace_list): Remove decl.
10332
10333 * emacs.c: Make symbols static if they're not exported.
10334 (malloc_state_ptr, malloc_using_checking, syms_of_emacs):
10335 (fatal_error_code, fatal_error_signal_hook, standard_args):
10336 Now static.
10337 (fatal_error_signal): Now static, unless FLOAT_CATCH_SIGKILL.
10338 (DEFINE_DUMMY_FUNCTION): Mark function as externally visible.
10339 (__CTOR_LIST__, __DTOR_LIST__): Now externally visible.
10340 * lisp.h (fatal_error_signal_hook): Remove decl.
10341 (fatal_error_signal): Declare only if FLOAT_CATCH_SIGKILL.
10342
10343 * editfns.c: Move a (normally-unused) function to its only use.
10344 * editfns.c, lisp.h (get_operating_system_release): Remove.
10345 * process.c (init_process) [DARWIN_OS]: Do it inline, as it is not
10346 worth the hassle of breaking this out.
10347
10348 * xterm.c: Make symbols static if they're not exported.
10349 (x_raise_frame, x_lower_frame, x_wm_set_window_state):
10350 (x_wm_set_icon_pixmap, x_initialize, XTread_socket_fake_io_error):
10351 (x_destroy_window, x_delete_display):
10352 Now static.
10353 (x_dispatch_event): Now static if ! (USE_MOTIF || USE_X_TOOLKIT).
10354 (x_mouse_leave): Remove; unused.
10355 * xterm.h (x_display_info_for_name, x_raise_frame, x_lower_frame):
10356 (x_destroy_window, x_wm_set_window_state, x_wm_set_icon_pixmap):
10357 (x_delete_display, x_initialize, x_set_border_pixel, x_screen_planes):
10358 Remove decls.
10359 (x_mouse_leave): Declare only if WINDOWSNT.
10360 (x_dispatch_event): Declare only if USE_MOTIF or USE_X_TOOLKIT.
10361 (xic_create_fontsetname): Declare only if HAVE_X_WINDOWS &&
10362 USE_X_TOOLKIT.
10363
10364 * ftxfont.c: Make symbols static if they're not exported.
10365 (ftxfont_driver): Export only if !defined HAVE_XFT && def8ined
10366 HAVE_FREETYPE.
10367 * font.h (ftxfont_driver): Likewise.
10368
10369 * xfns.c: Make symbols static if they're not exported.
10370 (x_last_font_name, x_display_info_for_name):
10371 (x_set_foreground_color, x_set_background_color, x_set_mouse_color):
10372 (x_set_cursor_color, x_set_border_pixel, x_set_border_color):
10373 (x_set_cursor_type, x_set_icon_type, x_set_icon_name):
10374 (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
10375 (x_explicitly_set_name, x_set_title, xic_defaut_fontset, tip_timer):
10376 (last_show_tip_args): Now static.
10377 (xic_defaut_fontset, xic_create_fontsetname): Define only if
10378 defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT
10379 (x_screen_planes): Remove; unused.
10380 * dispextern.h (x_screen_planes): Remove decl.
10381
10382 * dispnew.c: Make symbols static if they're not exported.
10383 * dispextern.h (redraw_garbaged_frames, scrolling):
10384 (increment_row_positions): Remove.
10385 * dispnew.c (new_glyph_matrix, increment_row_positions, scrolling):
10386 (delayed_size_change, glyph_matrix_count, glyph_pool_count):
10387 Now static.
10388 (redraw_garbaged_frames): Remove; unused.
10389
10390 * xfaces.c: Make symbols static if they're not exported.
10391 * dispextern.h (ascii_face_of_lisp_face, free_realized_face):
10392 Remove decls.
10393 * xterm.h (defined_color): Remove decls.
10394 (x_free_dpy_colors): Declare only if USE_X_TOOLKIT.
10395 * xfaces.c (tty_suppress_bold_inverse_default_colors_p):
10396 (menu_face_changed_default, defined_color, free_realized_face):
10397 (x_free_dpy_colors): Define only if USE_X_TOOLKIT.
10398 (ascii_face_of_lisp_face): Remove; unused.
10399
10400 * xdisp.c: Make symbols static if they're not exported.
10401 * dispextern.h (scratch_glyph_row, window_box_edges):
10402 (glyph_to_pixel_coords, set_cursor_from_row):
10403 (get_next_display_element, set_iterator_to_next):
10404 (highlight_trailing_whitespace, frame_to_window_pixel_xy):
10405 (show_mouse_face): Remove decls
10406 * frame.h (message_buf_print): Likewise.
10407 * lisp.h (pop_message, set_message, check_point_in_composition):
10408 Likewise.
10409 * xterm.h (set_vertical_scroll_bar): Likewise.
10410 * xdisp.c (list_of_error, Vmessage_stack, line_number_displayed):
10411 (message_buf_print, scratch_glyph_row, displayed_buffer):
10412 (set_iterator_to_next, pop_message, set_message, set_cursor_from_row):
10413 (get_next_display_element, show_mouse_face, window_box_edges):
10414 (frame_to_window_pixel_xy, check_point_in_composition):
10415 (set_vertical_scroll_bar, highlight_trailing_whitespace): Now static.
10416 (glyph_to_pixel_coords): Remove; unused.
10417
10418 * dired.c (file_name_completion): Now static.
10419
10420 * dbusbind.c (xd_in_read_queued_messages): Now static.
10421
10422 * lisp.h (circular_list_error, FOREACH): Remove; unused.
10423 * data.c (circular_list_error): Remove.
10424
10425 * commands.h (last_point_position, last_point_position_buffer):
10426 (last_point_position_window): Remove decls.
10427 * keyboard.c: Make these variables static.
10428
10429 * coding.h (coding, code_convert_region, encode_coding_gap):
10430 Remove decls.
10431 * coding.c (Vsjis_coding_system, Vbig5_coding_system):
10432 (iso_code_class, detect_coding, code_convert_region): Now static.
10433 (encode_coding_gap): Remove; unused.
10434
10435 * chartab.c (chartab_chars, chartab_bits): Now static.
10436
10437 * charset.h (charset_iso_8859_1): Remove decl.
10438 * charset.c (charset_iso_8859_1, charset_emacs, map_charset_for_dump):
10439 Now static.
10440
10441 * ccl.h (check_ccl_update, Vccl_program_table): Remove decls.
10442 * ccl.c (Vccl_program_table): Now static.
10443 (check_ccl_update): Remove; unused.
10444
10445 * category.c (SET_CATEGORY_SET, set_category_set): Move here.
10446 * category.h: ... from here.
10447 * category.c (check_category_table, set_category_set): Now static.
10448
10449 * casetab.c (Vascii_upcase_table, Vascii_eqv_table): Now static.
10450 * lisp.h: Remove these decls.
10451
10452 * buffer.c (buffer_count): Remove unused var.
10453
10454 * bidi.c (bidi_dump_cached_states): Mark as externally visible,
10455 so that it's not optimized away.
10456 (bidi_ignore_explicit_marks_for_paragraph_level): Likewise.
10457 * dispextern.h (bidi_dump_cached_states): Remove, since it's
10458 exported only to the debugger.
10459
10460 * atimer.c (alarm_signal_handler, run_all_atimers): Now static.
10461 * atimer.h (run_all_atimers): Remove; not exported.
10462
10463 font.c: Make copy_font_spec and merge_font_spec ordinary C functions.
10464 * font.c (copy_font_spec): Rename from Fcopy_font_spec, since it
10465 was inaccessible from Lisp.
10466 (merge_font_spec): Likewise, renaming from Fmerge_font_spec.
10467 * font.c, font.h, fontset.c, xfaces.c, xfont.c: Change all uses.
10468
10469 alloc.c: Import and export fewer symbols, and remove unused items.
10470 * lisp.h (suppress_checking, die): Declare only if ENABLE_CHECKING
10471 is defined.
10472 (suppress_checking): Add EXTERNALLY_VISIBLE attribute, so that
10473 it's not optimized away by whole-program optimization.
10474 (message_enable_multibyte, free_misc): Remove.
10475 (catchlist, handlerlist, mark_backtrace):
10476 Declare only if BYTE_MARK_STACK.
10477 (mark_byte_stack): Likewise, fixing a ifdef-vs-if typo.
10478 * alloc.c (pure): Export only if VIRT_ADDR_VARIES is defined.
10479 (message_enable_multibyte): Remove decl.
10480 (free_misc, interval_free_list, float_block, float_block_index):
10481 (n_float_blocks, float_free_list, cons_block, cons_block_index):
10482 (cons_free_list, last_marked_index):
10483 Now static.
10484 (suppress_checking, die): Define only if ENABLE_CHECKING is defined.
10485 * eval.c (catchlist, handlerlist): Export only if BYTE_MARK_STACK.
10486 (mark_backtrace): Define only if BYTE_MARK_STACK.
10487 * xdisp.c (message_enable_multibyte): Now static.
10488
10489 Declare Lisp_Object Q* variables to be 'static' if not exported.
10490 This makes it easier for human readers (and static analyzers)
10491 to see whether these variables are used from other modules.
10492 * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
10493 * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
10494 * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
10495 * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
10496 * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
10497 * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
10498 * xmenu.c, xselect.c:
10499 Declare Q* vars static if they are not used in other modules.
10500 * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
10501 * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
10502 Remove decls of unexported vars.
10503 * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
10504
10505 * lisp.h (DEFINE_FUNC): Make sname 'static'.
10506
10507 Make Emacs functions such as Fatom 'static' by default.
10508 This makes it easier for human readers (and static analyzers)
10509 to see whether these functions can be called from other modules.
10510 DEFUN now defines a static function. To make the function external
10511 so that it can be used in other C modules, use the new macro DEFUE.
10512 * lisp.h (Funibyte_char_to_multibyte, Fsyntax_table_p):
10513 (Finit_image_library):
10514 (Feval_region, Fbacktrace, Ffetch_bytecode, Fswitch_to_buffer):
10515 (Ffile_executable_p, Fmake_symbolic_link, Fcommand_execute):
10516 (Fget_process, Fdocumentation_property, Fbyte_code, Ffile_attributes):
10517 Remove decls, since these functions are now static.
10518 (Funintern, Fget_internal_run_time): New decls, since these functions
10519 were already external.
10520
10521 * alloc.c, buffer.c, callint.c, callproc.c, casefiddle.c, casetab.c:
10522 * ccl.c, character.c, chartab.c, cmds.c, coding.c, data.c, dispnew.c:
10523 * doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, floatfns.c:
10524 * fns.c, font.c, fontset.c, frame.c, image.c, indent.c:
10525 * keyboard.c, keymap.c, lread.c:
10526 * macros.c, marker.c, menu.c, minibuf.c, print.c, process.c, search.c:
10527 * syntax.c, term.c, terminal.c, textprop.c, undo.c:
10528 * window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xsettings.c:
10529 Mark functions with DEFUE instead of DEFUN,
10530 if they are used in other modules.
10531 * buffer.c (Fset_buffer_major_mode, Fdelete_overlay): New forward
10532 decls for now-static functions.
10533 * buffer.h (Fdelete_overlay): Remove decl.
10534 * callproc.c (Fgetenv_internal): Mark as internal.
10535 * composite.c (Fremove_list_of_text_properties): Remove decl.
10536 (Fcomposition_get_gstring): New forward static decl.
10537 * composite.h (Fcomposite_get_gstring): Remove decl.
10538 * dired.c (Ffile_attributes): New forward static decl.
10539 * doc.c (Fdocumntation_property): New forward static decl.
10540 * eval.c (Ffetch_bytecode): New forward static decl.
10541 (Funintern): Remove extern decl; now in .h file where it belongs.
10542 * fileio.c (Fmake_symbolic_link): New forward static decl.
10543 * image.c (Finit_image_library): New forward static decl.
10544 * insdel.c (Fcombine_after_change_execute): Make forward decl static.
10545 * intervals.h (Fprevious_property_change):
10546 (Fremove_list_of_text_properties): Remove decls.
10547 * keyboard.c (Fthis_command_keys): Remove decl.
10548 (Fcommand_execute): New forward static decl.
10549 * keymap.c (Flookup_key): New forward static decl.
10550 (Fcopy_keymap): Now static.
10551 * keymap.h (Flookup_key): Remove decl.
10552 * process.c (Fget_process): New forward static decl.
10553 (Fprocess_datagram_address): Mark as internal.
10554 * syntax.c (Fsyntax_table_p): New forward static decl.
10555 (skip_chars): Remove duplicate decl.
10556 * textprop.c (Fprevious_property_change): New forward static decl.
10557 * window.c (Fset_window_fringes, Fset_window_scroll_bars):
10558 Now internal.
10559 (Fset_window_margins, Fset_window_vscroll): New forward static decls.
10560 * window.h (Fset_window_vscroll, Fset_window_margins): Remove decls.
10561
10562 * editfns.c (Fformat): Remove unreachable code.
10563
10564 2011-04-14 Andreas Schwab <schwab@linux-m68k.org>
10565
10566 * fileio.c (Finsert_file_contents): Fix typo in 2005-05-13
10567 change. (Bug#8496)
10568
10569 2011-04-13 Eli Zaretskii <eliz@gnu.org>
10570
10571 * xdisp.c (handle_invisible_prop): Don't call bidi_paragraph_init
10572 when at ZV. (Bug#8487)
10573
10574 2011-04-12 Andreas Schwab <schwab@linux-m68k.org>
10575
10576 * charset.c (Fclear_charset_maps): Use xfree instead of free.
10577 (Bug#8437)
10578 * keyboard.c (parse_tool_bar_item): Likewise.
10579 * sound.c (sound_cleanup, alsa_close): Likewise.
10580 * termcap.c (tgetent): Likewise.
10581 * xfns.c (x_default_font_parameter): Likewise.
10582 * xsettings.c (read_and_apply_settings): Likewise.
10583
10584 * alloc.c (overrun_check_malloc, overrun_check_realloc)
10585 (overrun_check_free): Protoize.
10586
10587 2011-04-12 Paul Eggert <eggert@cs.ucla.edu>
10588
10589 * sysdep.c (emacs_read, emacs_write): Check for negative sizes
10590 since callers should never pass a negative size.
10591 Change the signature to match that of plain 'read' and 'write'; see
10592 <http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00397.html>.
10593 * lisp.h: Update prototypes of emacs_write and emacs_read.
10594
10595 2011-04-11 Eli Zaretskii <eliz@gnu.org>
10596
10597 * xdisp.c (redisplay_window): Don't try to determine the character
10598 position of the scroll margin if the window start point w->startp
10599 is outside the buffer's accessible region. (Bug#8468)
10600
10601 2011-04-10 Eli Zaretskii <eliz@gnu.org>
10602
10603 Fix write-region and its subroutines for buffers > 2GB.
10604 * fileio.c (a_write, e_write): Modify declaration of arguments and
10605 local variables to support buffers larger than 2GB.
10606 (Fcopy_file): Use EMACS_INT for return value of emacs_read.
10607
10608 * sysdep.c (emacs_write, emacs_read): Use ssize_t for last
10609 argument, local variables, and return value.
10610
10611 * lisp.h: Update prototypes of emacs_write and emacs_read.
10612
10613 * sound.c (vox_write): Use ssize_t for return value of emacs_write.
10614
10615 2011-04-10 Paul Eggert <eggert@cs.ucla.edu>
10616
10617 * xdisp.c (vmessage): Use memchr, not strnlen, which some hosts lack.
10618
10619 Fix more problems found by GCC 4.6.0's static checks.
10620
10621 * xdisp.c (vmessage): Use a better test for character truncation.
10622
10623 * charset.c (load_charset_map): <, not <=, for optimization,
10624 and to avoid potential problems with integer overflow.
10625 * chartab.c (sub_char_table_set_range, char_table_set_range): Likewise.
10626 * casetab.c (set_identity, shuffle): Likewise.
10627 * editfns.c (Fformat): Likewise.
10628 * syntax.c (skip_chars): Likewise.
10629
10630 * xmenu.c (set_frame_menubar): Allocate smaller local vectors.
10631 This also lets GCC 4.6.0 generate slightly better loop code.
10632
10633 * callint.c (Fcall_interactively): <, not <=, for optimization.
10634 (Fcall_interactively): Count the number of arguments produced,
10635 not the number of arguments given. This is simpler and lets GCC
10636 4.6.0 generate slightly better code.
10637
10638 * ftfont.c: Distingish more carefully between FcChar8 and char.
10639 The previous code passed unsigned char * to a functions like
10640 strlen and xstrcasecmp that expect char *, which does not
10641 conform to the C standard.
10642 (get_adstyle_property, ftfont_pattern_entity): Use FcChar8 for
10643 arguments to FcPatternGetString, and explicitly cast FcChar8 * to
10644 char * when the C standard requires it.
10645
10646 * keyboard.c (read_char): Remove unused var.
10647
10648 * eval.c: Port to Windows vsnprintf (Bug#8435).
10649 Include <limits.h>.
10650 (SIZE_MAX): Define if the headers do not.
10651 (verror): Do not give up if vsnprintf returns a negative count.
10652 Instead, grow the buffer. This ports to Windows vsnprintf, which
10653 does not conform to C99. Problem reported by Eli Zaretskii.
10654 Also, simplify the allocation scheme, by avoiding the need for
10655 calling realloc, and removing the ALLOCATED variable.
10656
10657 * eval.c (verror): Initial buffer size is 4000 (not 200) bytes.
10658
10659 Remove invocations of doprnt, as Emacs now uses vsnprintf.
10660 But keep the doprint source code for now, as we might revamp it
10661 and use it again (Bug#8435).
10662 * lisp.h (doprnt): Remove.
10663 * Makefile.in (base_obj): Remove doprnt.o.
10664 * deps.mk (doprnt.o): Remove.
10665
10666 error: Print 32- and 64-bit integers portably (Bug#8435).
10667 Without this change, on typical 64-bit hosts error ("...%d...", N)
10668 was used to print both 32- and 64-bit integers N, which relied on
10669 undefined behavior.
10670 * lisp.h, m/amdx86-64.h, m/ia64.h, m/ibms390x.h (pEd): New macro.
10671 * lisp.h (error, verror): Mark as printf-like functions.
10672 * eval.c (verror): Use vsnprintf, not doprnt, to do the real work.
10673 Report overflow in size calculations when allocating printf buffer.
10674 Do not truncate output string at its first null byte.
10675 * xdisp.c (vmessage): Use vsnprintf, not doprnt, to do the real work.
10676 Truncate the output at a character boundary, since vsnprintf does not
10677 do that.
10678 * charset.c (check_iso_charset_parameter): Convert internal
10679 character to string before calling 'error', since %c now has the
10680 printf meaning.
10681 * coding.c (Fdecode_sjis_char, Fdecode_big5_char): Avoid int
10682 overflow when computing char to be passed to 'error'. Do not
10683 pass Lisp_Object to 'error'; pass the integer instead.
10684 * nsfns.m (Fns_do_applescript): Use int, not long, since it's
10685 formatted with plain %d.
10686
10687 * eval.c (internal_lisp_condition_case): Don't pass spurious arg.
10688
10689 * keyboard.c (access_keymap_keyremap): Print func name, not garbage.
10690
10691 * coding.c (Fdecode_sjis_char): Don't assume CODE fits in int.
10692
10693 * xterm.c (x_catch_errors): Remove duplicate declaration.
10694
10695 * term.c (maybe_fatal): Mark its 3rd arg as a printf format, too.
10696
10697 * xdisp.c, lisp.h (message_nolog): Remove; unused.
10698
10699 2011-04-10 Jim Meyering <meyering@redhat.com>
10700
10701 use ssize_t and size_t for read- and write-like emacs_gnutls_* functions
10702 * gnutls.c (emacs_gnutls_read): Adjust signature to be more read-like:
10703 return ssize_t not "int", and use size_t as the buffer length.
10704 (emacs_gnutls_write): Likewise, and make the buffer pointer "const".
10705 * gnutls.h: Update declarations.
10706 * process.c (read_process_output): Use ssize_t, to match.
10707 (send_process): Likewise.
10708
10709 2011-04-09 Chong Yidong <cyd@stupidchicken.com>
10710
10711 * image.c (Fimagemagick_types): Doc fix, and comment cleanup.
10712
10713 2011-04-09 Chong Yidong <cyd@stupidchicken.com>
10714
10715 * ftfont.c (get_adstyle_property, ftfont_pattern_entity):
10716 Use unsigned char, to match FcChar8 type definition.
10717
10718 * xterm.c (handle_one_xevent):
10719 * xmenu.c (create_and_show_popup_menu):
10720 * xselect.c (x_decline_selection_request)
10721 (x_reply_selection_request): Avoid type-punned deref of X events.
10722
10723 2011-04-09 Eli Zaretskii <eliz@gnu.org>
10724
10725 Fix some uses of `int' instead of EMACS_INT.
10726 * search.c (string_match_1, fast_string_match)
10727 (fast_c_string_match_ignore_case, fast_string_match_ignore_case)
10728 (scan_buffer, find_next_newline_no_quit)
10729 (find_before_next_newline, search_command, Freplace_match)
10730 (Fmatch_data): Make some `int' variables be EMACS_INT.
10731
10732 * xdisp.c (display_count_lines): 3rd argument and return value now
10733 EMACS_INT. All callers changed.
10734 (pint2hrstr): Last argument is now EMACS_INT.
10735
10736 * coding.c (detect_coding_utf_8, detect_coding_emacs_mule)
10737 (detect_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
10738 (detect_coding_ccl, detect_coding_charset, decode_coding_utf_8)
10739 (decode_coding_utf_16, decode_coding_emacs_mule)
10740 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5)
10741 (decode_coding_ccl, decode_coding_charset)
10742 <consumed_chars, consumed_chars_base>: Declare EMACS_INT.
10743 (decode_coding_iso_2022, decode_coding_emacs_mule)
10744 (decode_coding_sjis, decode_coding_big5, decode_coding_charset)
10745 <char_offset, last_offset>: Declare EMACS_INT.
10746 (encode_coding_utf_8, encode_coding_utf_16)
10747 (encode_coding_emacs_mule, encode_invocation_designation)
10748 (encode_designation_at_bol, encode_coding_iso_2022)
10749 (encode_coding_sjis, encode_coding_big5, encode_coding_ccl)
10750 (encode_coding_raw_text, encode_coding_charset) <produced_chars>:
10751 Declare EMACS_INT.
10752 (ASSURE_DESTINATION): Declare more_bytes EMACS_INT.
10753 (encode_invocation_designation): Last argument P_NCHARS is now
10754 EMACS_INT.
10755 (decode_eol): Declare pos_byte, pos, and pos_end EMACS_INT.
10756 (produce_chars): from_nchars and to_nchars are now EMACS_INT.
10757
10758 * coding.h (struct coding_system) <head_ascii>: Declare EMACS_INT.
10759 All users changed.
10760
10761 * ccl.c (Fccl_execute_on_string): Declare some variables
10762 EMACS_INT.
10763
10764 2011-04-08 Samuel Thibault <sthibault@debian.org> (tiny change)
10765
10766 * term.c (init_tty): Fix incorrect ifdef placement (Bug#8450).
10767
10768 2011-03-19 Christoph Scholtes <cschol2112@googlemail.com>
10769
10770 * process.c (Fformat_network_address): Doc fix.
10771
10772 2011-04-08 T.V. Raman <tv.raman.tv@gmail.com> (tiny change)
10773
10774 * xml.c (parse_region): Avoid creating spurious whitespace nodes.
10775
10776 2011-04-08 Chong Yidong <cyd@stupidchicken.com>
10777
10778 * keyboard.c (read_char): Call Lisp function help-form-show,
10779 instead of using internal_with_output_to_temp_buffer.
10780 (Qhelp_form_show): New var.
10781 (syms_of_keyboard): Use DEFSYM macro.
10782
10783 * print.c (internal_with_output_to_temp_buffer): Function deleted.
10784
10785 * lisp.h (internal_with_output_to_temp_buffer): Remove prototype.
10786
10787 2011-04-06 Chong Yidong <cyd@stupidchicken.com>
10788
10789 * process.c (Flist_processes): Remove to Lisp.
10790 (list_processes_1): Delete.
10791
10792 2011-04-06 Eli Zaretskii <eliz@gnu.org>
10793
10794 * msdos.c (careadlinkat, careadlinkatcwd): MS-DOS replacements.
10795
10796 * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
10797
10798 2011-04-06 Paul Eggert <eggert@cs.ucla.edu>
10799
10800 Fix more problems found by GCC 4.6.0's static checks.
10801
10802 * xmenu.c (Fx_popup_dialog): Don't assume string is free of formats.
10803
10804 * menu.c (Fx_popup_menu): Don't assume error_name lacks printf formats.
10805
10806 * lisp.h (message, message_nolog, fatal): Mark as printf-like.
10807
10808 * xdisp.c (vmessage): Mark as a printf-like function.
10809
10810 * term.c (vfatal, maybe_fatal): Mark as printf-like functions.
10811
10812 * sound.c (sound_warning): Don't crash if arg contains a printf format.
10813
10814 * image.c (tiff_error_handler, tiff_warning_handler): Mark as
10815 printf-like functions.
10816 (tiff_load): Add casts to remove these marks before passing them
10817 to system-supplied API.
10818
10819 * eval.c (Fsignal): Remove excess argument to 'fatal'.
10820
10821 * coding.c (EMIT_ONE_BYTE, EMIT_TWO_BYTES): Use unsigned, not int.
10822 This avoids several warnings with gcc -Wstrict-overflow.
10823 (DECODE_COMPOSITION_RULE): If the rule is invalid, goto invalid_code
10824 directly, rather than having caller test rule sign. This avoids
10825 some unnecessary tests.
10826 * composite.h (COMPOSITION_ENCODE_RULE_VALID): New macro.
10827 (COMPOSITION_ENCODE_RULE): Arguments now must be valid. This
10828 affects only one use, in DECODE_COMPOSITION_RULE, which is changed.
10829
10830 * xfont.c (xfont_text_extents): Remove var that was set but not used.
10831 (xfont_open): Avoid unnecessary tests.
10832
10833 * composite.c (composition_gstring_put_cache): Use unsigned integer.
10834
10835 * composite.h, composite.c (composition_gstring_put_cache):
10836 Use EMACS_INT, not int, for length.
10837
10838 * composite.h (COMPOSITION_DECODE_REFS): New macro,
10839 breaking out part of COMPOSITION_DECODE_RULE.
10840 (COMPOSITION_DECODE_RULE): Use it.
10841 * composite.c (get_composition_id): Remove unused local vars,
10842 by using the new macro.
10843
10844 * textprop.c (set_text_properties_1): Change while to do-while,
10845 since the condition is always true at first.
10846
10847 * intervals.c (graft_intervals_into_buffer): Mark var as used.
10848 (interval_deletion_adjustment): Return unsigned value.
10849 All uses changed.
10850
10851 * process.c (list_processes_1, create_pty, read_process_output):
10852 (exec_sentinel): Remove vars that were set but not used.
10853 (create_pty): Remove unnecessary "volatile"s.
10854 (Fnetwork_interface_info): Avoid possibility of int overflow.
10855 (read_process_output): Do adaptive read buffering even if carryover.
10856 (read_process_output): Simplify nbytes computation if buffered.
10857
10858 * bytecode.c (exec_byte_code): Rename local to avoid shadowing.
10859
10860 * syntax.c (scan_words): Remove var that was set but not used.
10861 (update_syntax_table): Use unsigned instead of int.
10862
10863 * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
10864 (lisp_file_lexically_bound_p, read1): Use unsigned instead of int.
10865 (safe_to_load_p): Make the end-of-loop test the inverse of the in-loop.
10866
10867 * print.c (print_error_message): Avoid int overflow.
10868
10869 * font.c (font_list_entities): Redo for clarity,
10870 so that reader need not know FONT_DPI_INDEX + 1 == FONT_SPACING_INDEX.
10871
10872 * font.c (font_find_for_lface, Ffont_get_glyphs): Remove unused vars.
10873 (font_score): Avoid potential overflow in diff calculation.
10874
10875 * fns.c (substring_both): Remove var that is set but not used.
10876 (sxhash): Redo loop for clarity and to avoid wraparound warning.
10877
10878 * eval.c (funcall_lambda): Rename local to avoid shadowing.
10879
10880 * alloc.c (mark_object_loop_halt, mark_object): Use size_t, not int.
10881 Otherwise, GCC 4.6.0 optimizes the loop check away since the check
10882 can always succeed if overflow has undefined behavior.
10883
10884 * search.c (boyer_moore, wordify): Remove vars set but not used.
10885 (wordify): Omit three unnecessary tests.
10886
10887 * indent.c (MULTIBYTE_BYTES_WIDTH): Don't compute wide_column.
10888 All callers changed. This avoids the need for an unused var.
10889
10890 * casefiddle.c (casify_region): Remove var that is set but not used.
10891
10892 * dired.c (file_name_completion): Remove var that is set but not used.
10893
10894 * fileio.c (Finsert_file_contents): Make EOF condition clearer.
10895
10896 * fileio.c (Finsert_file_contents): Avoid signed integer overflow.
10897 (Finsert_file_contents): Remove unnecessary code checking fd.
10898
10899 * minibuf.c (read_minibuf_noninteractive): Use size_t for sizes.
10900 Check for integer overflow on size calculations.
10901
10902 * buffer.c (Fprevious_overlay_change): Remove var that is set
10903 but not used.
10904
10905 * keyboard.c (menu_bar_items, read_char_minibuf_menu_prompt):
10906 Remove vars that are set but not used.
10907 (timer_check_2): Don't assume timer-list and idle-timer-list are lists.
10908 (timer_check_2): Mark vars as initialized.
10909
10910 * gtkutil.c (xg_get_file_with_chooser): Mark var as initialized.
10911
10912 * image.c (lookup_image): Remove var that is set but not used.
10913 (xbm_load): Use parse_p, for gcc -Werror=unused-but-set-variable.
10914
10915 * fontset.c (Finternal_char_font, Ffontset_info): Remove vars
10916 that are set but not used.
10917
10918 * xfns.c (make_invisible_cursor): Don't return garbage
10919 if XCreateBitmapFromData fails (Bug#8410).
10920
10921 * xselect.c (x_get_local_selection, x_handle_property_notify):
10922 Remove vars that are set but not used.
10923
10924 * xfns.c (x_create_tip_frame): Remove var that is set but not used.
10925 (make_invisible_cursor): Initialize a possibly-uninitialized variable.
10926
10927 * xterm.c (x_scroll_bar_to_input_event) [!USE_GTK]:
10928 Remove var that is set but not used.
10929 (scroll_bar_windows_size): Now size_t, not int.
10930 (x_send_scroll_bar_event): Use size_t, not int, for sizes.
10931 Check for overflow.
10932
10933 * xfaces.c (realize_named_face): Remove vars that are set but not used.
10934 (map_tty_color) [!defined MSDOS]: Likewise.
10935
10936 * term.c (tty_write_glyphs): Use size_t; this avoids overflow warning.
10937
10938 * coding.c: Remove vars that are set but not used.
10939 (DECODE_COMPOSITION_RULE): Remove 2nd arg, which is unused.
10940 All callers changed.
10941 (decode_coding_utf_8, decode_coding_utf_16 decode_coding_emacs_mule):
10942 (decode_coding_iso_2022, encode_coding_sjis, encode_coding_big5):
10943 (decode_coding_charset): Remove vars that are set but not used.
10944
10945 * bytecode.c (Fbyte_code) [!defined BYTE_CODE_SAFE]: Remove var
10946 that is set but not used.
10947
10948 * print.c (print_object): Remove var that is set but not used.
10949
10950 Replace 2 copies of readlink code with 1 gnulib version (Bug#8401).
10951 The gnulib version avoids calling malloc in the usual case,
10952 and on 64-bit hosts doesn't have some arbitrary 32-bit limits.
10953 * fileio.c (Ffile_symlink_p): Use emacs_readlink.
10954 * filelock.c (current_lock_owner): Likewise.
10955 * lisp.h (READLINK_BUFSIZE, emacs_readlink): New function.
10956 * sysdep.c: Include allocator.h, careadlinkat.h.
10957 (emacs_no_realloc_allocator): New static constant.
10958 (emacs_readlink): New function.
10959 * deps.mk (sysdep.o): Depend on ../lib/allocator.h and on
10960 ../lib/careadlinkat.h.
10961
10962 2011-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
10963
10964 * keyboard.c (safe_run_hook_funcall): Fix last change (don't stop at the
10965 first non-nil return value).
10966
10967 2011-04-03 Jan Djärv <jan.h.d@swipnet.se>
10968
10969 * nsterm.m (ns_update_auto_hide_menu_bar): Define MAC_OS_X_VERSION_10_6
10970 if not defined (Bug#8403).
10971
10972 2011-04-02 Juanma Barranquero <lekktu@gmail.com>
10973
10974 * xdisp.c (display_count_lines): Remove parameter `start',
10975 unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
10976 (get_char_face_and_encoding): Remove parameter `multibyte_p',
10977 unused since 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
10978 (fill_stretch_glyph_string): Remove parameters `row' and `area',
10979 unused at least since Kim's GUI unification at 2003-03-16T20:45:46Z!storm@cua.dk
10980 and thereabouts. All callers changed.
10981 (get_per_char_metric): Remove parameter `f', unused since
10982 2008-05-14T01:40:23Z!handa@m17n.org. All callers changed.
10983
10984 2011-04-02 Jim Meyering <meyering@redhat.com>
10985
10986 do not dereference NULL upon failed strdup
10987 * nsfont.m (ns_descriptor_to_entity): Use xstrdup, not strdup.
10988 (ns_get_family): Likewise.
10989
10990 2011-04-02 Juanma Barranquero <lekktu@gmail.com>
10991
10992 * eval.c (unwind_to_catch) [DEBUG_GCPRO]: Remove redundant assignment.
10993
10994 2011-04-02 Jan Djärv <jan.h.d@swipnet.se>
10995
10996 * nsterm.m (ns_update_auto_hide_menu_bar): Only for OSX 10.6 or
10997 later (Bug#8403).
10998
10999 2011-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
11000
11001 Add lexical binding.
11002
11003 * window.c (Ftemp_output_buffer_show): New fun.
11004 (Fsave_window_excursion):
11005 * print.c (Fwith_output_to_temp_buffer): Move to subr.el.
11006
11007 * lread.c (lisp_file_lexically_bound_p): New function.
11008 (Fload): Bind Qlexical_binding.
11009 (readevalloop): Remove `evalfun' arg.
11010 Bind Qinternal_interpreter_environment.
11011 (Feval_buffer): Bind Qlexical_binding.
11012 (defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
11013 Mark as dynamic.
11014 (syms_of_lread): Declare `lexical-binding'.
11015
11016 * lisp.h (struct Lisp_Symbol): New field `declared_special'.
11017
11018 * keyboard.c (eval_dyn): New fun.
11019 (menu_item_eval_property): Use it.
11020
11021 * image.c (parse_image_spec): Use Ffunctionp.
11022
11023 * fns.c (concat, mapcar1): Accept byte-code-functions.
11024
11025 * eval.c (Fsetq): Handle lexical vars.
11026 (Fdefun, Fdefmacro, Ffunction): Make closures when needed.
11027 (Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
11028 (FletX, Flet): Obey lexical binding.
11029 (Fcommandp): Handle closures.
11030 (Feval): New `lexical' arg.
11031 (eval_sub): New function extracted from Feval. Use it almost
11032 everywhere where Feval was used. Look up vars in lexical env.
11033 Handle closures.
11034 (Ffunctionp): Move from subr.el.
11035 (Ffuncall): Handle closures.
11036 (apply_lambda): Remove `eval_flags'.
11037 (funcall_lambda): Handle closures and new byte-code-functions.
11038 (Fspecial_variable_p): New function.
11039 (syms_of_eval): Initialize the Vinternal_interpreter_environment var,
11040 but without exporting it to Lisp.
11041
11042 * doc.c (Fdocumentation, store_function_docstring):
11043 * data.c (Finteractive_form): Handle closures.
11044
11045 * callint.c (Fcall_interactively): Preserve lexical-binding mode for
11046 interactive spec.
11047
11048 * bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
11049 New byte-codes.
11050 (exec_byte_code): New function extracted from Fbyte_code to handle new
11051 calling convention for byte-code-functions. Add new byte-codes.
11052
11053 * buffer.c (defvar_per_buffer): Set new `declared_special' field.
11054
11055 * alloc.c (Fmake_symbol): Init new `declared_special' field.
11056
11057 2011-03-31 Juanma Barranquero <lekktu@gmail.com>
11058
11059 * xdisp.c (redisplay_internal): Fix prototype.
11060
11061 2011-03-31 Eli Zaretskii <eliz@gnu.org>
11062
11063 * xdisp.c (SCROLL_LIMIT): New macro.
11064 (try_scrolling): Use it when setting scroll_limit.
11065 Limit scrolling to 100 screen lines.
11066 (redisplay_window): Even when falling back on "recentering",
11067 position point in the window according to scroll-conservatively,
11068 scroll-margin, and scroll-*-aggressively variables. (Bug#6671)
11069
11070 (try_scrolling): When point is above the window, allow searching
11071 as far as scroll_max, or one screenful, to compute vertical
11072 distance from PT to the scroll margin position. This prevents
11073 try_scrolling from unnecessarily failing when
11074 scroll-conservatively is set to a value slightly larger than the
11075 window height. Clean up the case of PT below the margin at bottom
11076 of window: scroll_max can no longer be INT_MAX. When aggressive
11077 scrolling is in use, don't let point enter the opposite scroll
11078 margin as result of the scroll.
11079 (syms_of_xdisp) <scroll-conservatively>: Document the
11080 threshold of 100 lines for never-recentering scrolling.
11081
11082 2011-03-31 Juanma Barranquero <lekktu@gmail.com>
11083
11084 * dispextern.h (move_it_by_lines):
11085 * xdisp.c (move_it_by_lines): Remove parameter `need_y_p', unused
11086 since 2000-12-29T14:24:09Z!gerd@gnu.org. All callers changed.
11087 (message_log_check_duplicate): Remove parameters `prev_bol' and
11088 `this_bol', unused since 1998-01-01T02:27:27Z!rms@gnu.org. All callers changed.
11089 (redisplay_internal): Remove parameter `preserve_echo_area',
11090 unused since 1999-07-21T21:43:52Z!gerd@gnu.org. All callers changed.
11091
11092 * indent.c (Fvertical_motion):
11093 * window.c (window_scroll_pixel_based, Frecenter):
11094 Don't pass `need_y_p' to `move_it_by_lines'.
11095
11096 2011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
11097
11098 * eval.c (struct backtrace): Don't cheat with negative numbers, but do
11099 steal a few bits to be more compact.
11100 (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
11101 Remove unneeded casts.
11102
11103 * bytecode.c (Fbyte_code): CAR and CDR can GC.
11104
11105 2011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
11106
11107 * keyboard.c (Fexecute_extended_command): Do log the "suggest key
11108 binding" message (bug#7967).
11109
11110 2011-03-30 Paul Eggert <eggert@cs.ucla.edu>
11111
11112 Fix more problems found by GCC 4.6.0's static checks.
11113
11114 * unexelf.c (unexec) [! (defined _SYSTYPE_SYSV || defined __sgi)]:
11115 Remove unused local var.
11116
11117 * editfns.c (Fmessage_box): Remove unused local var.
11118
11119 * xdisp.c (try_window_reusing_current_matrix, x_produce_glyphs):
11120 (note_mode_line_or_margin_highlight, note_mouse_highlight):
11121 Omit unused local vars.
11122 * window.c (shrink_windows): Omit unused local var.
11123 * menu.c (digest_single_submenu): Omit unused local var.
11124 * dispnew.c (update_window) [PERIODIC_PREEMPTION_CHECKING]:
11125 Omit unused local var.
11126
11127 * keyboard.c (parse_modifiers_uncached, parse_modifiers):
11128 Don't assume string length fits in int.
11129 (keyremap_step, read_key_sequence): Use size_t for sizes.
11130 (read_key_sequence): Don't check last_real_key_start redundantly.
11131
11132 * callproc.c (Fcall_process, Fcall_process_region): Use SAFE_ALLOCA
11133 instead of alloca (Bug#8344).
11134
11135 * eval.c (Fbacktrace): Don't assume nargs fits in int.
11136 (Fbacktrace_frame): Don't assume nframes fits in int.
11137
11138 * syntax.c (scan_sexps_forward): Avoid pointer wraparound.
11139
11140 * xterm.c (x_make_frame_visible, same_x_server): Redo to avoid overflow
11141 concerns.
11142
11143 * term.c (produce_glyphless_glyph): Remove unnecessary test.
11144
11145 * cm.c (calccost): Turn while-do into do-while, for clarity.
11146
11147 * keyboard.c (syms_of_keyboard): Use the same style as later
11148 in this function when indexing through an array. This also
11149 works around GCC bug 48267.
11150
11151 * image.c (tiff_load): Fix off-by-one image count (Bug#8336).
11152
11153 * xselect.c (x_check_property_data): Return correct size (Bug#8335).
11154
11155 * chartab.c (sub_char_table_ref_and_range): Redo for slight
11156 efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
11157
11158 * keyboard.c, keyboard.h (num_input_events): Now size_t.
11159 This avoids undefined behavior on integer overflow, and is a bit
11160 more convenient anyway since it is compared to a size_t variable.
11161
11162 Variadic C functions now count arguments with size_t, not int.
11163 This avoids an unnecessary limitation on 64-bit machines, which
11164 caused (substring ...) to crash on large vectors (Bug#8344).
11165 * lisp.h (struct Lisp_Subr.function.aMANY): Now takes size_t, not int.
11166 (DEFUN_ARGS_MANY, internal_condition_case_n, safe_call): Likewise.
11167 All variadic functions and their callers changed accordingly.
11168 (struct gcpro.nvars): Now size_t, not int. All uses changed.
11169 * data.c (arith_driver, float_arith_driver): Likewise.
11170 * editfns.c (general_insert_function): Likewise.
11171 * eval.c (struct backtrace.nargs, interactive_p)
11172 (internal_condition_case_n, run_hook_with_args, apply_lambda)
11173 (funcall_lambda, mark_backtrace): Likewise.
11174 * fns.c (concat): Likewise.
11175 * frame.c (x_set_frame_parameters): Likewise.
11176 * fns.c (get_key_arg): Now accepts and returns size_t, and returns
11177 0 if not found, not -1. All callers changed.
11178
11179 * alloc.c (garbage_collect): Don't assume stack size fits in int.
11180 (stack_copy_size): Now size_t, not int.
11181 (stack_copy, stack_copy_size): Define only if MAX_SAVE_STACK > 0.
11182
11183 2011-03-28 Juanma Barranquero <lekktu@gmail.com>
11184
11185 * coding.c (encode_designation_at_bol): Remove parameter `charbuf_end',
11186 unused since 2002-03-01T01:17:24Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
11187 All callers changed.
11188
11189 * lisp.h (multibyte_char_to_unibyte):
11190 * character.c (multibyte_char_to_unibyte): Remove parameter `rev_tbl',
11191 unused since 2002-03-01T01:16:34Z!handa@m17n.org and 2008-02-01T16:01:31Z!miles@gnu.org.
11192 * character.h (CHAR_TO_BYTE8):
11193 * cmds.c (internal_self_insert):
11194 * editfns.c (general_insert_function):
11195 * keymap.c (push_key_description):
11196 * search.c (Freplace_match):
11197 * xdisp.c (message_dolog, set_message_1): All callers changed.
11198
11199 2011-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
11200
11201 * keyboard.c (safe_run_hook_funcall): New function.
11202 (safe_run_hooks_1, safe_run_hooks_error, safe_run_hooks): On error,
11203 don't set the hook to nil, but remove the offending function instead.
11204 (Qcommand_hook_internal): Remove, unused.
11205 (syms_of_keyboard): Don't initialize Qcommand_hook_internal nor define
11206 Vcommand_hook_internal.
11207
11208 * eval.c (enum run_hooks_condition): Remove.
11209 (funcall_nil, funcall_not): New functions.
11210 (run_hook_with_args): Call each function through a `funcall' argument.
11211 Remove `cond' argument, now redundant.
11212 (Frun_hooks, Frun_hook_with_args, Frun_hook_with_args_until_success)
11213 (Frun_hook_with_args_until_failure): Adjust accordingly.
11214 (run_hook_wrapped_funcall, Frun_hook_wrapped): New functions.
11215
11216 2011-03-28 Juanma Barranquero <lekktu@gmail.com>
11217
11218 * dispextern.h (string_buffer_position): Remove declaration.
11219
11220 * print.c (strout): Remove parameter `multibyte', unused since
11221 1999-08-21T19:30:21Z!gerd@gnu.org. All callers changed.
11222
11223 * search.c (boyer_moore): Remove parameters `len', `pos' and `lim',
11224 never used since function introduction in 1998-02-08T21:33:56Z!rms@gnu.org.
11225 All callers changed.
11226
11227 * w32.c (_wsa_errlist): Use braces for struct initializers.
11228
11229 * xdisp.c (string_buffer_position_lim): Remove parameter `w',
11230 never used since function introduction in 2001-03-09T18:41:50Z!gerd@gnu.org.
11231 All callers changed.
11232 (string_buffer_position): Likewise. Also, make static (it's never
11233 used outside xdisp.c).
11234 (cursor_row_p): Remove parameter `w', unused since
11235 2000-10-17T16:08:57Z!gerd@gnu.org. All callers changed.
11236 (decode_mode_spec): Remove parameter `precision', introduced during
11237 Gerd Moellmann's rewrite at 1999-07-21T21:43:52Z!gerd@gnu.org, but never used.
11238 All callers changed.
11239
11240 2011-03-27 Jan Djärv <jan.h.d@swipnet.se>
11241
11242 * nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
11243
11244 2011-03-27 Anders Lindgren <andlind@gmail.com>
11245
11246 * nsterm.m (ns_menu_bar_is_hidden): New variable.
11247 (ns_constrain_all_frames, ns_menu_bar_should_be_hidden)
11248 (ns_update_auto_hide_menu_bar): New functions.
11249 (ns_update_begin): Call ns_update_auto_hide_menu_bar.
11250 (applicationDidBecomeActive): Call ns_update_auto_hide_menu_bar and
11251 ns_constrain_all_frames.
11252 (constrainFrameRect): Return at once if ns_menu_bar_should_be_hidden.
11253 (syms_of_nsterm): DEFVAR ns-auto-hide-menu-bar, init to Qnil.
11254
11255 2011-03-27 Jan Djärv <jan.h.d@swipnet.se>
11256
11257 * nsmenu.m (runDialogAt): Remove argument to timer_check.
11258
11259 2011-03-27 Glenn Morris <rgm@gnu.org>
11260
11261 * syssignal.h: Replace RETSIGTYPE with void.
11262 * atimer.c, data.c, dispnew.c, emacs.c, floatfns.c, keyboard.c:
11263 * keyboard.h, lisp.h, process.c, sysdep.c, xterm.c:
11264 Replace SIGTYPE with void everywhere.
11265 * s/usg5-4-common.h (SIGTYPE): Remove definition.
11266 * s/template.h (SIGTYPE): Remove commented out definition.
11267
11268 2011-03-26 Eli Zaretskii <eliz@gnu.org>
11269
11270 * xdisp.c (redisplay_window): Don't check buffer's clip_changed
11271 flag as a prerequisite for invoking try_scrolling. (Bug#6671)
11272
11273 2011-03-26 Juanma Barranquero <lekktu@gmail.com>
11274
11275 * w32.c (read_unc_volume): Use parameter `henum', instead of
11276 global variable `wget_enum_handle'.
11277
11278 * keymap.c (describe_vector): Remove parameters `indices' and
11279 `char_table_depth', unused since 2002-03-01T01:43:26Z!handa@m17n.org.
11280 (describe_map, Fdescribe_vector): Adjust calls to `describe_vector'.
11281
11282 * keyboard.h (timer_check, show_help_echo): Remove unused parameters.
11283
11284 * keyboard.c (timer_check): Remove parameter `do_it_now',
11285 unused since 1996-04-12T06:01:29Z!rms@gnu.org.
11286 (show_help_echo): Remove parameter `ok_to_overwrite_keystroke_echo',
11287 unused since 2008-04-19T19:30:53Z!monnier@iro.umontreal.ca.
11288
11289 * keyboard.c (read_char):
11290 * w32menu.c (w32_menu_display_help):
11291 * xmenu.c (show_help_event, menu_help_callback):
11292 Adjust calls to `show_help_echo'.
11293
11294 * gtkutil.c (xg_maybe_add_timer):
11295 * keyboard.c (readable_events):
11296 * process.c (wait_reading_process_output):
11297 * xmenu.c (x_menu_wait_for_event): Adjust calls to `timer_check'.
11298
11299 * insdel.c (adjust_markers_gap_motion):
11300 Remove; no-op since 1998-01-02T21:29:48Z!rms@gnu.org.
11301 (gap_left, gap_right): Don't call it.
11302
11303 2011-03-25 Chong Yidong <cyd@stupidchicken.com>
11304
11305 * xdisp.c (handle_fontified_prop): Discard changes to clip_changed
11306 incurred during fontification.
11307
11308 2011-03-25 Juanma Barranquero <lekktu@gmail.com>
11309
11310 * buffer.c (defvar_per_buffer): Remove unused parameter `doc'.
11311 (DEFVAR_PER_BUFFER): Don't pass it.
11312
11313 * dispnew.c (row_equal_p, add_row_entry): Remove unused parameter `w'.
11314 (scrolling_window): Don't pass it.
11315
11316 2011-03-25 Juanma Barranquero <lekktu@gmail.com>
11317
11318 * dispextern.h (glyph_matric): Use #if GLYPH_DEBUG, not #ifdef.
11319
11320 * fileio.c (check_executable) [DOS_NT]: Remove unused variables `len'
11321 and `suffix'.
11322 (Fset_file_selinux_context) [HAVE_LIBSELINUX]: Move here declaration
11323 of variables specific to SELinux and computation of `encoded_absname'.
11324
11325 * image.c (XPutPixel): Remove unused variable `height'.
11326
11327 * keyboard.c (make_lispy_event): Remove unused variable `hpos'.
11328
11329 * unexw32.c (get_section_info): Remove unused variable `section'.
11330
11331 * w32.c (stat): Remove unused variables `drive_root' and `devtype'.
11332 (system_process_attributes): Remove unused variable `sess'.
11333 (sys_read): Remove unused variable `err'.
11334
11335 * w32fns.c (top): Wrap variables with #if GLYPH_DEBUG, not #ifdef.
11336 (w32_wnd_proc): Remove unused variable `isdead'.
11337 (unwind_create_frame): Use #if GLYPH_DEBUG, not #ifdef.
11338 (Fx_server_max_request_size): Remove unused variable `dpyinfo'.
11339 (x_create_tip_frame): Remove unused variable `tem'.
11340
11341 * w32inevt.c (w32_console_read_socket):
11342 Remove unused variable `no_events'.
11343
11344 * w32term.c (x_draw_composite_glyph_string_foreground):
11345 Remove unused variable `width'.
11346
11347 2011-03-24 Juanma Barranquero <lekktu@gmail.com>
11348
11349 * w32term.c (x_set_glyph_string_clipping):
11350 Don't pass uninitialized region to CombineRgn.
11351
11352 2011-03-23 Juanma Barranquero <lekktu@gmail.com>
11353
11354 * w32fns.c (x_set_menu_bar_lines): Remove unused variable `olines'.
11355 (w32_wnd_proc): Pass NULL to Windows API, not uninitialized buffer.
11356 (Fx_close_connection): Remove unused variable `i'.
11357
11358 * w32font.c (w32font_draw): Return number of glyphs.
11359 (w32font_open_internal): Remove unused variable `i'.
11360 (w32font_driver): Add missing initializer.
11361
11362 * w32menu.c (utf8to16): Remove unused variable `utf16'.
11363 (fill_in_menu): Remove unused variable `items_added'.
11364
11365 * w32term.c (last_mouse_press_frame): Remove static global variable.
11366 (w32_clip_to_row): Remove unused variable `f'.
11367 (x_delete_terminal): Remove unused variable `i'.
11368
11369 * w32uniscribe.c (uniscribe_shape): Remove unused variable `nclusters'.
11370 (NOTHING): Remove unused static global variable.
11371 (uniscribe_check_otf): Remove unused variable `table'.
11372 (uniscribe_font_driver): Add missing initializers.
11373
11374 2011-03-23 Julien Danjou <julien@danjou.info>
11375
11376 * term.c (Fsuspend_tty, Fresume_tty):
11377 * minibuf.c (read_minibuf, run_exit_minibuf_hook):
11378 * window.c (temp_output_buffer_show):
11379 * insdel.c (signal_before_change):
11380 * frame.c (Fhandle_switch_frame):
11381 * fileio.c (Fdo_auto_save):
11382 * emacs.c (Fkill_emacs):
11383 * editfns.c (save_excursion_restore):
11384 * cmds.c (internal_self_insert):
11385 * callint.c (Fcall_interactively):
11386 * buffer.c (Fkill_all_local_variables):
11387 * keyboard.c (Fcommand_execute, Fsuspend_emacs, safe_run_hooks_1):
11388 Use Frun_hooks.
11389 (command_loop_1): Use Frun_hooks. Call safe_run_hooks
11390 unconditionally since it does the check itself.
11391
11392 2011-03-23 Paul Eggert <eggert@cs.ucla.edu>
11393
11394 Fix more problems found by GCC 4.5.2's static checks.
11395
11396 * coding.c (encode_coding_raw_text): Avoid unnecessary test
11397 the first time through the loop, since we know p0 < p1 then.
11398 This also avoids a gcc -Wstrict-overflow warning.
11399
11400 * lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Avoid 'int' overflow
11401 leading to a memory leak, possible in functions like
11402 load_charset_map_from_file that can allocate an unbounded number
11403 of objects (Bug#8318).
11404
11405 * xmenu.c (set_frame_menubar): Use EMACS_UINT, not int, for indexes
11406 that could (at least in theory) be that large.
11407
11408 * xdisp.c (message_log_check_duplicate): Return unsigned long, not int.
11409 This is less likely to overflow, and avoids undefined behavior if
11410 overflow does occur. All callers changed. Use strtoul to scan
11411 for the unsigned long integer.
11412 (pint2hrstr): Simplify and tune code slightly.
11413 This also avoids a (bogus) GCC warning with gcc -Wstrict-overflow.
11414
11415 * scroll.c (do_scrolling): Work around GCC bug 48228.
11416 See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48228>.
11417
11418 * frame.c (Fmodify_frame_parameters): Simplify loop counter.
11419 This also avoids a warning with gcc -Wstrict-overflow.
11420 (validate_x_resource_name): Simplify count usage.
11421 This also avoids a warning with gcc -Wstrict-overflow.
11422
11423 * fileio.c (Fcopy_file): Report error if fchown or fchmod
11424 fail (Bug#8306).
11425
11426 * emacs.c (Fdaemon_initialized): Do not ignore I/O errors (Bug#8303).
11427
11428 * process.c (Fmake_network_process): Use socklen_t, not int,
11429 where POSIX says socklen_t is required in portable programs.
11430 This fixes a porting bug on hosts like 64-bit HP-UX, where
11431 socklen_t is wider than int (Bug#8277).
11432 (Fmake_network_process, server_accept_connection):
11433 (wait_reading_process_output, read_process_output):
11434 Likewise.
11435
11436 * process.c: Rename or move locals to avoid shadowing.
11437 (list_processes_1, Fmake_network_process):
11438 (read_process_output_error_handler, exec_sentinel_error_handler):
11439 Rename or move locals.
11440 (Fmake_network_process): Define label "retry_connect" only if needed.
11441 (Fnetwork_interface_info): Fix pointer signedness.
11442 (process_send_signal): Add cast to avoid pointer signedness problem.
11443 (FIRST_PROC_DESC, IF_NON_BLOCKING_CONNECT): Remove unused macros.
11444 (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298).
11445
11446 Make tparam.h and terminfo.c consistent.
11447 * cm.c (tputs, tgoto, BC, UP): Remove extern decls.
11448 Include tparam.h instead, since it declares them.
11449 * cm.h (PC): Remove extern decl; tparam.h now does this.
11450 * deps.mk (cm.o, terminfo.o): Depend on tparam.h.
11451 * terminfo.c: Include tparam.h, to check interfaces.
11452 (tparm): Make 1st arg a const pointer in decl. Put it at top level.
11453 (tparam): Adjust signature to match interface in tparam.h;
11454 this removes some undefined behavior. Check that outstring and len
11455 are zero, which they always are with Emacs.
11456 * tparam.h (PC, BC, UP): New extern decls.
11457
11458 * xftfont.c (xftfont_shape): Now static, and defined only if needed.
11459 (xftfont_open): Rename locals to avoid shadowing.
11460
11461 * ftfont.c (ftfont_resolve_generic_family): Fix pointer signedness.
11462 (ftfont_otf_capability, ftfont_shape): Omit decls if not needed.
11463 (OTF_TAG_SYM): Omit macro if not needed.
11464 (ftfont_list): Remove unused local.
11465 (get_adstyle_property, ftfont_pattern_entity):
11466 (ftfont_lookup_cache, ftfont_open, ftfont_anchor_point):
11467 Rename locals to avoid shadowing.
11468
11469 * xfont.c (xfont_list_family): Mark var as initialized.
11470
11471 * xml.c (make_dom): Now static.
11472
11473 * composite.c (composition_compute_stop_pos): Rename local to
11474 avoid shadowing.
11475 (composition_reseat_it): Remove unused locals.
11476 (find_automatic_composition, composition_adjust_point): Likewise.
11477 (composition_update_it): Mark var as initialized.
11478 (find_automatic_composition): Mark vars as initialized,
11479 with a FIXME (Bug#8290).
11480
11481 character.h: Rename locals to avoid shadowing.
11482 * character.h (PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE):
11483 (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE, FETCH_CHAR_ADVANCE):
11484 (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, BUF_INC_POS):
11485 (BUF_DEC_POS): Be more systematic about renaming local temporaries
11486 to avoid shadowing.
11487
11488 * textprop.c (property_change_between_p): Remove; unused.
11489
11490 * intervals.c (interval_start_pos): Now static.
11491
11492 * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else".
11493
11494 * atimer.c (start_atimer, append_atimer_lists, set_alarm):
11495 Rename locals to avoid shadowing.
11496
11497 * sound.c (wav_play, au_play, Fplay_sound_internal):
11498 Fix pointer signedness.
11499 (alsa_choose_format): Remove unused local var.
11500 (wav_play): Initialize a variable to 0, to prevent undefined
11501 behavior (Bug#8278).
11502
11503 * region-cache.c (insert_cache_boundary): Redo var to avoid shadowing.
11504
11505 * region-cache.h (pp_cache): New decl, for gcc -Wmissing-prototypes.
11506
11507 * callproc.c (Fcall_process): Use 'volatile' to avoid vfork
11508 clobbering (Bug#8298).
11509 * sysdep.c (sys_subshell): Likewise.
11510 Previously, the sys_subshell 'volatile' was incorrectly IF_LINTted out.
11511
11512 * lisp.h (child_setup): Now NO_RETURN unless DOS_NT.
11513 This should get cleaned up, so that child_setup has the
11514 same signature on all platforms.
11515
11516 * callproc.c (call_process_cleanup): Now static.
11517 (relocate_fd): Rename locals to avoid shadowing.
11518
11519 2011-03-22 Chong Yidong <cyd@stupidchicken.com>
11520
11521 * xterm.c (x_clear_frame): Remove XClearWindow call. This appears
11522 not to be necessary, and produces flickering.
11523
11524 2011-03-20 Glenn Morris <rgm@gnu.org>
11525
11526 * config.in: Remove file.
11527
11528 2011-03-20 Juanma Barranquero <lekktu@gmail.com>
11529
11530 * minibuf.c (Vcompleting_read_function): Don't declare, global variables
11531 are now in src/globals.h.
11532 (syms_of_minibuf): Remove spurious & from previous change.
11533
11534 2011-03-20 Leo Liu <sdl.web@gmail.com>
11535
11536 * minibuf.c (completing-read-function): New variable.
11537 (completing-read-default): Rename from completing-read.
11538 (completing-read): Call completing-read-function.
11539
11540 2011-03-19 Juanma Barranquero <lekktu@gmail.com>
11541
11542 * xfaces.c (Fx_load_color_file):
11543 Read color file from absolute filename (bug#8250).
11544
11545 2011-03-19 Juanma Barranquero <lekktu@gmail.com>
11546
11547 * makefile.w32-in: Update dependencies.
11548
11549 2011-03-17 Eli Zaretskii <eliz@gnu.org>
11550
11551 * makefile.w32-in ($(BLD)/unexw32.$(O)): Depend on $(SRC)/unexec.h.
11552
11553 2011-03-17 Paul Eggert <eggert@cs.ucla.edu>
11554
11555 Fix more problems found by GCC 4.5.2's static checks.
11556
11557 * process.c (make_serial_process_unwind, send_process_trap):
11558 (sigchld_handler): Now static.
11559
11560 * process.c (allocate_pty): Let PTY_ITERATION declare iteration vars.
11561 That way, the code declares only the vars that it needs.
11562 * s/aix4-2.h (PTY_ITERATION): Declare iteration vars.
11563 * s/cygwin.h (PTY_ITERATION): Likewise.
11564 * s/darwin.h (PTY_ITERATION): Likewise.
11565 * s/gnu-linux.h (PTY_ITERATION): Likewise.
11566
11567 * s/irix6-5.h (PTY_OPEN): Declare stb, to loosen coupling.
11568 * process.c (allocate_pty): Don't declare stb unless it's needed.
11569
11570 * bytecode.c (MAYBE_GC): Rewrite so as not to use empty "else".
11571 (CONSTANTLIM): Remove; unused.
11572 (METER_CODE, Bscan_buffer, Bread_char, Bset_mark):
11573 Define only if needed.
11574
11575 * unexelf.c (unexec): Name an expression,
11576 to avoid gcc -Wbad-function-cast warning.
11577 Use a different way to cause a compilation error if anyone uses
11578 n rather than nn, a way that does not involve shadowing.
11579 (ELF_BSS_SECTION_NAME, OLD_PROGRAM_H): Remove; unused.
11580
11581 * deps.mk (unexalpha.o): Remove; unused.
11582
11583 New file unexec.h, the (simple) interface for unexec (Bug#8267).
11584 * unexec.h: New file.
11585 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
11586 (unexhp9k800.o, unexmacosx.o, unexsol.o, unexw32.o):
11587 Depend on unexec.h.
11588 * emacs.c [!defined CANNOT_DUMP]: Include unexec.h.
11589 * unexaix.c, unexcoff.c, unexcw.c, unexelf.c, unexhp9k800.c:
11590 * unexmacosx.c, unexsol.c, unexw32.c: Include unexec.h.
11591 Change as necessary to match prototype in unexec.h.
11592
11593 * syntax.c (Fforward_comment, scan_lists): Rename locals to avoid
11594 shadowing.
11595 (back_comment, skip_chars): Mark vars as initialized.
11596
11597 * character.h (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS):
11598 Rename locals to avoid shadowing.
11599
11600 * lread.c (read1): Rewrite so as not to use empty "else".
11601 (Fload, readevalloop, read1): Rename locals to avoid shadowing.
11602
11603 * print.c (Fredirect_debugging_output): Fix pointer signedess.
11604
11605 * lisp.h (debug_output_compilation_hack): Add decl here, to avoid
11606 warning when compiling print.c.
11607
11608 * font.c (font_unparse_fcname): Abort in an "impossible" situation
11609 instead of using an uninitialized var.
11610 (font_sort_entities): Mark var as initialized.
11611
11612 * character.h (FETCH_CHAR_ADVANCE): Rename locals to avoid shadowing.
11613
11614 * font.c (font_unparse_xlfd): Don't mix pointers to variables with
11615 pointers to constants.
11616 (font_parse_fcname): Remove unused vars.
11617 (font_delete_unmatched): Now static.
11618 (font_get_spec): Remove; unused.
11619 (font_style_to_value, font_prop_validate_style, font_unparse_fcname):
11620 (font_update_drivers, Ffont_get_glyphs, font_add_log):
11621 Rename or move locals to avoid shadowing.
11622
11623 * fns.c (require_nesting_list, require_unwind): Now static.
11624 (Ffillarray): Rename locals to avoid shadowing.
11625
11626 * floatfns.c (domain_error2): Define only if needed.
11627 (Ffrexp, Fldexp): Rename locals to avoid shadowing.
11628
11629 * alloc.c (mark_backtrace): Move decl from here ...
11630 * lisp.h: ... to here, so that it can be checked.
11631
11632 * eval.c (call_debugger, do_debug_on_call, grow_specpdl): Now static.
11633 (Fdefvar): Rewrite so as not to use empty "else".
11634 (lisp_indirect_variable): Name an expression,
11635 to avoid gcc -Wbad-function-cast warning.
11636 (Fdefvar): Rename locals to avoid shadowing.
11637
11638 * callint.c (quotify_arg, quotify_args): Now static.
11639 (Fcall_interactively): Rename locals to avoid shadowing.
11640 Use const pointer when appropriate.
11641
11642 * lisp.h (get_system_name, get_operating_system_release):
11643 Move decls here, to check interfaces.
11644 * process.c (get_operating_system_release): Move decl to lisp.h.
11645 * xrdb.c (get_system_name): Likewise.
11646 * editfns.c (init_editfns, Fuser_login_name, Fuser_uid):
11647 (Fuser_real_uid, Fuser_full_name): Remove unnecessary casts,
11648 some of which prompt warnings from gcc -Wbad-function-cast.
11649 (Fformat_time_string, Fencode_time, Finsert_char):
11650 (Ftranslate_region_internal, Fformat):
11651 Rename or remove local vars to avoid shadowing.
11652 (Ftranslate_region_internal): Mark var as initialized.
11653
11654 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
11655 avoid shadowing.
11656
11657 * lisp.h (eassert): Check that the argument compiles, even if
11658 ENABLE_CHECKING is not defined.
11659
11660 * data.c (Findirect_variable): Name an expression, to avoid
11661 gcc -Wbad-function-cast warning.
11662 (default_value, arithcompare, arith_driver, arith_error): Now static.
11663 (store_symval_forwarding): Rename local to avoid shadowing.
11664 (Fmake_variable_buffer_local, Fmake_local_variable):
11665 Mark variables as initialized.
11666 (do_blv_forwarding, do_symval_forwarding): Remove; unused.
11667
11668 * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST.
11669 (Fmake_vector, Fvector, Fmake_byte_code, Fgarbage_collect):
11670 Rename locals to avoid shadowing.
11671 (mark_stack): Move local variables into the #ifdef region where
11672 they're used.
11673 (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Define only if
11674 ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT, as they are not
11675 needed otherwise.
11676 (CHECK_ALLOCATED): Define only if GC_CHECK_MARKED_OBJECTS.
11677 (GC_STRING_CHARS): Remove; not used.
11678 (Fmemory_limit): Cast sbrk's returned value to char *.
11679
11680 * lisp.h (check_cons_list): Declare if GC_CHECK_CONS_LIST; this
11681 avoids undefined behavior in theory.
11682
11683 * regex.c (IF_LINT): Add defn, for benefit of ../lib-src.
11684
11685 Use functions, not macros, for up- and down-casing (Bug#8254).
11686 * buffer.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
11687 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Remove. All callers changed
11688 to use the following functions instead of these macros.
11689 (downcase): Adjust to lack of DOWNCASE_TABLE. Return int, not
11690 EMACS_INT, since callers assume the returned value fits in int.
11691 (upcase1): Likewise, for UPCASE_TABLE.
11692 (uppercasep, lowercasep, upcase): New static inline functions.
11693 * editfns.c (Fchar_equal): Remove no-longer-needed workaround for
11694 the race-condition problem in the old DOWNCASE.
11695
11696 * regex.c (CHARSET_LOOKUP_RANGE_TABLE_RAW, POP_FAILURE_REG_OR_COUNT):
11697 Rename locals to avoid shadowing.
11698 (regex_compile, re_match_2_internal): Move locals to avoid shadowing.
11699 (regex_compile, re_search_2, re_match_2_internal):
11700 Remove unused local vars.
11701 (FREE_VAR): Rewrite so as not to use empty "else",
11702 which gcc can warn about.
11703 (regex_compile, re_match_2_internal): Mark locals as initialized.
11704 (RETALLOC_IF): Define only if needed.
11705 (WORDCHAR_P): Likewise. This one is never needed, but is used
11706 only in a comment talking about a compiler bug, so put inside
11707 the #if 0 of that comment.
11708 (CHARSET_LOOKUP_BITMAP, FAIL_STACK_FULL, RESET_FAIL_STACK):
11709 (PUSH_FAILURE_ELT, BUF_PUSH_3, STOP_ADDR_VSTRING):
11710 Remove; unused.
11711
11712 * search.c (boyer_moore): Rename locals to avoid shadowing.
11713 * character.h (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE):
11714 (PREV_CHAR_BOUNDARY): Likewise.
11715
11716 * search.c (simple_search): Remove unused var.
11717
11718 * dired.c (compile_pattern): Move decl from here ...
11719 * lisp.h: ... to here, so that it can be checked.
11720 (struct re_registers): New forward decl.
11721
11722 * character.h (INC_POS, DEC_POS): Rename locals to avoid shadowing.
11723
11724 * indent.c (MULTIBYTE_BYTES_WIDTH): New args bytes, width.
11725 All uses changed.
11726 (MULTIBYTE_BYTES_WIDTH, scan_for_column, compute_motion):
11727 Rename locals to avoid shadowing.
11728 (Fvertical_motion): Mark locals as initialized.
11729
11730 * casefiddle.c (casify_object, casify_region): Now static.
11731 (casify_region): Mark local as initialized.
11732
11733 * cmds.c (internal_self_insert): Rename local to avoid shadowing.
11734
11735 * lisp.h (GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR, GCPRO6_VAR):
11736 New macros, so that the caller can use some names other than
11737 gcpro1, gcpro2, etc.
11738 (GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6): Reimplement in terms
11739 of the new macros.
11740 (GCPRO1_VAR, UNGCPRO_VAR): Change the meaning of the second
11741 argument, for consistency with GCPRO2_VAR, etc: it is now the
11742 prefix of the variable, not the variable itself. All uses
11743 changed.
11744 * dired.c (directory_files_internal, file_name_completion):
11745 Rename locals to avoid shadowing.
11746
11747 Fix a race condition diagnosed by gcc -Wsequence-point (Bug#8254).
11748 An expression of the form (DOWNCASE (x) == DOWNCASE (y)), found in
11749 dired.c's scmp function, had undefined behavior.
11750 * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE, DOWNCASE, UPPERCASEP):
11751 (NOCASEP, LOWERCASEP, UPCASE, UPCASE1): Move from here ...
11752 * buffer.h: ... to here, because these macros use current_buffer,
11753 and the new implementation with inline functions needs to have
11754 current_buffer in scope now, rather than later when the macros
11755 are used.
11756 (downcase, upcase1): New static inline functions.
11757 (DOWNCASE, UPCASE1): Reimplement using these functions.
11758 This avoids undefined behavior in expressions like
11759 DOWNCASE (x) == DOWNCASE (y), which previously suffered
11760 from race conditions in accessing the global variables
11761 case_temp1 and case_temp2.
11762 * casetab.c (case_temp1, case_temp2): Remove; no longer needed.
11763 * lisp.h (case_temp1, case_temp2): Remove their decls.
11764 * character.h (ASCII_CHAR_P): Move from here ...
11765 * lisp.h: ... to here, so that the inline functions mentioned
11766 above can use them.
11767
11768 * dired.c (directory_files_internal_unwind): Now static.
11769
11770 * fileio.c (file_name_as_directory, directory_file_name):
11771 (barf_or_query_if_file_exists, auto_save_error, auto_save_1):
11772 Now static.
11773 (file_name_as_directory): Use const pointers when appropriate.
11774 (Fexpand_file_name): Likewise. In particular, newdir might
11775 point at constant storage, so make it a const pointer.
11776 (Fmake_directory_internal, Fread_file_name): Remove unused vars.
11777 (Ffile_selinux_context, Fset_file_selinux_context): Fix pointer
11778 signedness issues.
11779 (Fset_file_times, Finsert_file_contents, auto_save_error):
11780 Rename locals to avoid shadowing.
11781
11782 * minibuf.c (choose_minibuf_frame_1): Now static.
11783 (Ftry_completion, Fall_completions): Rename or remove locals
11784 to avoid shadowing.
11785
11786 * marker.c (bytepos_to_charpos): Remove; unused.
11787
11788 * lisp.h (verify_bytepos, count_markers): New decls,
11789 so that gcc does not warn that these functions aren't declared.
11790
11791 * insdel.c (check_markers, make_gap_larger, make_gap_smaller):
11792 (reset_var_on_error, Fcombine_after_change_execute_1): Now static.
11793 (CHECK_MARKERS): Redo to avoid gcc -Wempty-body diagnostic.
11794 (copy_text): Remove unused local var.
11795
11796 * filelock.c (within_one_second): Now static.
11797 (lock_file_1): Rename local to avoid shadowing.
11798
11799 * buffer.c (fix_overlays_before): Mark locals as initialized.
11800 (fix_start_end_in_overlays): Likewise. This function should be
11801 simplified by using pointers-to-pointers, but that's a different
11802 matter.
11803 (switch_to_buffer_1): Now static.
11804 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
11805 (report_overlay_modification): Rename locals to avoid shadowing.
11806
11807 * sysdep.c (system_process_attributes): Rename vars to avoid shadowing.
11808 Fix pointer signedness issue.
11809 (sys_subshell): Mark local as volatile if checking for lint,
11810 to suppress a gcc -Wclobbered warning that does not seem to be right.
11811 (MAXPATHLEN): Define only if needed.
11812
11813 * process.c (serial_open, serial_configure): Move decls from here ...
11814 * systty.h: ... to here, so that they can be checked.
11815
11816 * fns.c (get_random, seed_random): Move extern decls from here ...
11817 * lisp.h: ... to here, so that they can be checked.
11818
11819 * sysdep.c (reset_io): Now static.
11820 (wait_for_termination_signal): Remove; unused.
11821
11822 * keymap.c (keymap_parent, keymap_memberp, map_keymap_internal):
11823 (copy_keymap_item, append_key, push_text_char_description):
11824 Now static.
11825 (Fwhere_is_internal): Don't test CONSP (sequences) unnecessarily.
11826 (DENSE_TABLE_SIZE): Remove; unused.
11827 (get_keymap, access_keymap, Fdefine_key, Fwhere_is_internal):
11828 (describe_map_tree):
11829 Rename locals to avoid shadowing.
11830
11831 * keyboard.c: Declare functions static if they are not used elsewhere.
11832 (echo_char, echo_dash, cmd_error, top_level_2):
11833 (poll_for_input, handle_async_input): Now static.
11834 (read_char, kbd_buffer_get_event, make_lispy_position):
11835 (make_lispy_event, make_lispy_movement, apply_modifiers):
11836 (decode_keyboard_code, tty_read_avail_input, menu_bar_items):
11837 (parse_tool_bar_item, read_key_sequence, Fread_key_sequence):
11838 (Fread_key_sequence_vector): Rename locals to avoid shadowing.
11839 (read_key_sequence, read_char): Mark locals as initialized.
11840 (Fexit_recursive_edit, Fabort_recursive_edit): Mark with NO_RETURN.
11841
11842 * keyboard.h (make_ctrl_char): New decl.
11843 (mark_kboards): Move decl here ...
11844 * alloc.c (mark_kboards): ... from here.
11845
11846 * lisp.h (force_auto_save_soon): New decl.
11847
11848 * emacs.c (init_cmdargs): Rename local to avoid shadowing.
11849 (DEFINE_DUMMY_FUNCTION): New macro.
11850 (__do_global_ctors, __do_global_ctors_aux, __do_global_dtors, __main):
11851 Use it.
11852 (main): Add casts to avoid warnings
11853 if GCC considers string literals to be constants.
11854
11855 * lisp.h (fatal_error_signal): Add decl, since it's exported.
11856
11857 * dbusbind.c: Pointer signedness fixes.
11858 (xd_signature, xd_append_arg, xd_initialize):
11859 (Fdbus_call_method, Fdbus_call_method_asynchronously):
11860 (Fdbus_method_return_internal, Fdbus_method_error_internal):
11861 (Fdbus_send_signal, xd_read_message_1, Fdbus_register_service):
11862 (Fdbus_register_signal): Use SSDATA when the context wants char *.
11863
11864 * dbusbind.c (Fdbus_init_bus): Add cast to avoid warning
11865 if GCC considers string literals to be constants.
11866 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
11867
11868 2011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
11869
11870 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
11871 (print_preprocess, print_object): New macro to fix last change.
11872
11873 * print.c (print_preprocess): Don't forget font objects.
11874
11875 2011-03-16 Juanma Barranquero <lekktu@gmail.com>
11876
11877 * emacs.c (USAGE3): Doc fixes.
11878
11879 2011-03-15 Andreas Schwab <schwab@linux-m68k.org>
11880
11881 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
11882 structure.
11883
11884 2011-03-14 Juanma Barranquero <lekktu@gmail.com>
11885
11886 * lisp.h (VWindow_system, Qfile_name_history):
11887 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
11888 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
11889 (w32_system_caret_x, w32_system_caret_y): Declare extern.
11890
11891 * w32select.c: Don't #include "keyboard.h".
11892 (run_protected): Add extern declaration for waiting_for_input.
11893
11894 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
11895 * w32console.c (detect_input_pending, read_input_pending)
11896 (encode_terminal_code):
11897 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
11898 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
11899 (w32_system_caret_y, Qfile_name_history):
11900 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
11901 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
11902 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
11903 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
11904 * w32proc.c (Qlocal, report_file_error):
11905 * w32term.c (Vwindow_system, updating_frame):
11906 * w32uniscribe.c (initialized, uniscribe_font_driver):
11907 Remove unneeded extern declarations.
11908
11909 2011-03-14 Chong Yidong <cyd@stupidchicken.com>
11910
11911 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
11912
11913 2011-03-13 Chong Yidong <cyd@stupidchicken.com>
11914
11915 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
11916 (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219).
11917 These macros can no longer be used for assignment.
11918
11919 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
11920 Assign struct members directly, instead of using BUF_BEGV etc.
11921 (record_buffer_markers, fetch_buffer_markers): New functions for
11922 recording and fetching special buffer markers.
11923 (set_buffer_internal_1, set_buffer_temp): Use them.
11924
11925 * lread.c (unreadchar): Use SET_BUF_PT_BOTH.
11926
11927 * insdel.c (adjust_point): Use SET_BUF_PT_BOTH.
11928
11929 * intervals.c (temp_set_point_both): Use SET_BUF_PT_BOTH.
11930 (get_local_map): Use SET_BUF_BEGV_BOTH and SET_BUF_ZV_BOTH.
11931
11932 * xdisp.c (hscroll_window_tree):
11933 (reconsider_clip_changes): Use PT instead of BUF_PT.
11934
11935 2011-03-13 Eli Zaretskii <eliz@gnu.org>
11936
11937 * makefile.w32-in ($(BLD)/editfns.$(O)): Depend on
11938 $(EMACS_ROOT)/lib/intprops.h.
11939
11940 2011-03-13 Paul Eggert <eggert@cs.ucla.edu>
11941
11942 Fix more problems found by GCC 4.5.2's static checks.
11943
11944 * gtkutil.c (xg_get_pixbuf_from_pixmap): Add cast from char *
11945 to unsigned char * to avoid compiler diagnostic.
11946 (xg_free_frame_widgets): Make it clear that a local variable is
11947 needed only if USE_GTK_TOOLTIP.
11948 (gdk_window_get_screen): Make it clear that this macro is needed
11949 only if USE_GTK_TOOLTIP.
11950 (int_gtk_range_get_value): New function, which avoids a diagnostic
11951 from gcc -Wbad-function-cast.
11952 (xg_set_toolkit_scroll_bar_thumb): Use it.
11953 (xg_tool_bar_callback, xg_tool_item_stale_p): Rewrite to avoid
11954 diagnostic from gcc -Wbad-function-cast.
11955 (get_utf8_string, xg_get_file_with_chooser):
11956 Rename locals to avoid shadowing.
11957 (create_dialog): Move locals to avoid shadowing.
11958
11959 * xgselect.c (xg_select): Remove unused var.
11960
11961 * image.c (four_corners_best): Mark locals as initialized.
11962 (gif_load): Initialize transparent_p to zero (Bug#8238).
11963 Mark another local as initialized.
11964 (my_png_error, my_error_exit): Mark with NO_RETURN.
11965
11966 * image.c (clear_image_cache): Now static.
11967 (DIM, HAVE_STDLIB_H_1): Remove unused macros.
11968 (xpm_load): Redo to avoid "discards qualifiers" gcc warning.
11969 (x_edge_detection): Remove unnecessary cast that
11970 gcc -Wbad-function-cast diagnoses.
11971 (gif_load): Fix pointer signedness.
11972 (clear_image_cache, xbm_read_bitmap_data, x_detect_edges):
11973 (jpeg_load, gif_load): Rename locals to avoid shadowing.
11974
11975 2011-03-12 Paul Eggert <eggert@cs.ucla.edu>
11976
11977 Improve quality of tests for time stamp overflow.
11978 For example, without this patch (encode-time 0 0 0 1 1
11979 1152921504606846976) returns the obviously-bogus value (-948597
11980 62170) on my RHEL 5.5 x86-64 host. With the patch, it correctly
11981 reports time overflow. See
11982 <http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00470.html>.
11983 * deps.mk (editfns.o): Depend on ../lib/intprops.h.
11984 * editfns.c: Include limits.h and intprops.h.
11985 (TIME_T_MIN, TIME_T_MAX): New macros.
11986 (time_overflow): Move earlier, to before first use.
11987 (hi_time, lo_time): New functions, for an accurate test for
11988 out-of-range times.
11989 (Fcurrent_time, Fget_internal_run_time, make_time): Use them.
11990 (Fget_internal_run_time): Don't assume time_t fits in int.
11991 (make_time): Use list2 instead of Fcons twice.
11992 (Fdecode_time): More accurate test for out-of-range times.
11993 (check_tm_member): New function.
11994 (Fencode_time): Use it, to test for out-of-range times.
11995 (lisp_time_argument): Don't rely on undefined left-shift and
11996 right-shift behavior when checking for time stamp overflow.
11997
11998 * editfns.c (time_overflow): New function, refactoring common code.
11999 (Fformat_time_string, Fdecode_time, Fencode_time):
12000 (Fcurrent_time_string): Use it.
12001
12002 Move 'make_time' to be next to its inverse 'lisp_time_argument'.
12003 * dired.c (make_time): Move to ...
12004 * editfns.c (make_time): ... here.
12005 * systime.h: Note the move.
12006
12007 2011-03-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
12008
12009 * fringe.c (update_window_fringes): Remove unused variables.
12010
12011 * unexmacosx.c (copy_data_segment): Also copy __got section.
12012 (Bug#8223)
12013
12014 2011-03-12 Eli Zaretskii <eliz@gnu.org>
12015
12016 * termcap.c [MSDOS]: Include "msdos.h".
12017 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
12018 Constify `char *' arguments and their references according to
12019 prototypes in tparam.h.
12020
12021 * deps.mk (termcap.o): Depend on tparam.h and msdos.h.
12022
12023 * msdos.c (XMenuAddPane): 3rd argument is `const char *' now.
12024 Adapt all references accordingly.
12025
12026 * msdos.h (XMenuAddPane): 3rd argument is `const char *' now.
12027
12028 2011-03-11 Tom Tromey <tromey@redhat.com>
12029
12030 * buffer.c (syms_of_buffer): Remove obsolete comment.
12031
12032 2011-03-11 Eli Zaretskii <eliz@gnu.org>
12033
12034 * termhooks.h (encode_terminal_code): Declare prototype.
12035
12036 * msdos.c (encode_terminal_code): Don't declare prototype.
12037
12038 * term.c (encode_terminal_code): Now external again, used by
12039 w32console.c and msdos.c.
12040
12041 * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)):
12042 Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu.
12043
12044 2011-03-11 Paul Eggert <eggert@cs.ucla.edu>
12045
12046 Fix some minor problems found by GCC 4.5.2's static checks.
12047
12048 * fringe.c (update_window_fringes): Mark locals as initialized
12049 (Bug#8227).
12050 (destroy_fringe_bitmap, init_fringe_bitmap): Now static.
12051
12052 * alloc.c (mark_fringe_data): Move decl from here ...
12053 * lisp.h (mark_fringe_data) [HAVE_WINDOW_SYSTEM]: ... to here,
12054 to check its interface.
12055 (init_fringe_once): Do not declare unless HAVE_WINDOW_SYSTEM.
12056
12057 * fontset.c (free_realized_fontset): Now static.
12058 (Fset_fontset_font): Rename local to avoid shadowing.
12059 (fontset_font): Mark local as initialized.
12060 (FONTSET_SPEC, FONTSET_REPERTORY, RFONT_DEF_REPERTORY): Remove; unused.
12061
12062 * xrdb.c: Include "xterm.h", to check x_load_resources's interface.
12063
12064 * xselect.c (x_disown_buffer_selections): Remove; not used.
12065 (TRACE3) [!defined TRACE_SELECTION]: Remove; not used.
12066 (x_own_selection, Fx_disown_selection_internal): Rename locals
12067 to avoid shadowing.
12068 (x_handle_dnd_message): Remove local to avoid shadowing.
12069
12070 * lisp.h (GCPRO1_VAR, UNGCPRO_VAR): New macros,
12071 so that the caller can use some name other than gcpro1.
12072 (GCPRO1, UNGCPRO): Reimplement in terms of the new macros.
12073 * xfns.c (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
12074 (Fx_backspace_delete_keys_p):
12075 Use them to avoid shadowing, and rename vars to avoid shadowing.
12076 (x_decode_color, x_set_name, x_window): Now static.
12077 (Fx_create_frame): Add braces to silence GCC warning.
12078 (Fx_file_dialog, Fx_select_font): Fix pointer signedness.
12079 (x_real_positions, xg_set_icon_from_xpm_data, x_create_tip_frame):
12080 Remove unused locals.
12081 (Fx_create_frame, x_create_tip_frame, Fx_show_tip):
12082 (Fx_backspace_delete_keys_p): Rename locals to avoid shadowing.
12083 Some of these renamings use the new GCPRO1_VAR and UNGCPRO_VAR
12084 macros.
12085
12086 * xterm.h (x_mouse_leave): New decl.
12087
12088 * xterm.c (x_copy_dpy_color, x_focus_on_frame, x_unfocus_frame):
12089 Remove unused functions.
12090 (x_shift_glyphs_for_insert, XTflash, XTring_bell):
12091 (x_calc_absolute_position): Now static.
12092 (XTread_socket): Don't define label "out" unless it's used.
12093 Don't declare local "event" unless it's used.
12094 (x_iconify_frame, x_free_frame_resources): Don't declare locals
12095 unless they are used.
12096 (XEMBED_VERSION, xembed_set_info): Don't define unless needed.
12097 (x_fatal_error_signal): Remove; not used.
12098 (x_draw_image_foreground, redo_mouse_highlight, XTmouse_position):
12099 (x_scroll_bar_report_motion, handle_one_xevent, x_draw_bar_cursor):
12100 (x_error_catcher, x_connection_closed, x_error_handler):
12101 (x_error_quitter, xembed_send_message, x_iconify_frame):
12102 (my_log_handler): Rename locals to avoid shadowing.
12103 (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN.
12104 (x_connection_closed): Tell GCC not to suggest NO_RETURN.
12105
12106 * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font):
12107 Rename or move locals to avoid shadowing.
12108 (tty_defined_color, merge_face_heights): Now static.
12109 (free_realized_faces_for_fontset): Remove; not used.
12110 (Fx_list_fonts): Mark variable that gcc -Wuninitialized
12111 does not deduce is never used uninitialized.
12112 (STRDUPA, LSTRDUPA, FONT_POINT_SIZE_QUANTUM): Remove; not used.
12113 (LFACEP): Define only if XASSERTS, as it's not needed otherwise.
12114
12115 * terminal.c (store_terminal_param): Now static.
12116
12117 * xmenu.c (menu_highlight_callback): Now static.
12118 (set_frame_menubar): Remove unused local.
12119 (xmenu_show): Rename parameter to avoid shadowing.
12120 (xmenu_show, xdialog_show, xmenu_show): Make local pointers "const"
12121 since they might point to immutable storage.
12122 (next_menubar_widget_id): Declare only if USE_X_TOOLKIT,
12123 since it's unused otherwise.
12124
12125 * xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
12126 Add a FIXME, since the code still doesn't look right. (Bug#8215)
12127 (Fcurrent_bidi_paragraph_direction): Simplify slightly; this
12128 avoids a gcc -Wuninitialized diagnostic.
12129 (display_line, BUILD_COMPOSITE_GLYPH_STRING, draw_glyphs):
12130 (note_mouse_highlight): Mark variables that gcc -Wuninitialized
12131 does not deduce are never used uninitialized.
12132
12133 * lisp.h (IF_LINT): New macro, copied from ../lib-src/emacsclient.c.
12134
12135 * xdisp.c (redisplay_window): Rename local to avoid shadowing.
12136 * window.c (window_loop, size_window):
12137 (run_window_configuration_change_hook, enlarge_window): Likewise.
12138
12139 * window.c (display_buffer): Now static.
12140 (size_window): Mark variables that gcc -Wuninitialized
12141 does not deduce are never used uninitialized.
12142 * window.h (check_all_windows): New decl, to forestall
12143 gcc -Wmissing-prototypes diagnostic.
12144 * dispextern.h (bidi_dump_cached_states): Likewise.
12145
12146 * charset.h (CHECK_CHARSET_GET_CHARSET): Rename locals to avoid
12147 shadowing.
12148 * charset.c (map_charset_for_dump, Fchar_charset): Likewise.
12149 Include <limits.h>.
12150 (Fsort_charsets): Redo min/max calculation to shorten the code a bit
12151 and to avoid gcc -Wuninitialized warning.
12152 (load_charset_map): Mark variables that gcc -Wuninitialized
12153 does not deduce are never used uninitialized.
12154 (load_charset): Abort instead of using uninitialized var (Bug#8229).
12155
12156 * coding.c (coding_set_source, coding_set_destination):
12157 Use "else { /* comment */ }" rather than "else /* comment */;"
12158 for clarity, and to avoid gcc -Wempty-body warning.
12159 (Fdefine_coding_system_internal): Don't redeclare 'i' inside
12160 a block, when the outer 'i' will do.
12161 (decode_coding_utf_8, decode_coding_utf_16, detect_coding_emacs_mule):
12162 (emacs_mule_char, decode_coding_emacs_mule, detect_coding_iso_2022):
12163 (decode_coding_iso_2022, decode_coding_sjis, decode_coding_big5):
12164 (decode_coding_raw_text, decode_coding_charset, get_translation_table):
12165 (Fdecode_sjis_char, Fdefine_coding_system_internal):
12166 Rename locals to avoid shadowing.
12167 * character.h (FETCH_STRING_CHAR_ADVANCE): Likewise.
12168 * coding.c (emacs_mule_char, encode_invocation_designation):
12169 Now static, since they're not used elsewhere.
12170 (decode_coding_iso_2022): Add "default: abort ();" as a safety check.
12171 (decode_coding_object, encode_coding_object, detect_coding_system):
12172 (decode_coding_emacs_mule): Mark variables that gcc
12173 -Wuninitialized does not deduce are never used uninitialized.
12174 (detect_coding_iso_2022): Initialize a local variable that might
12175 be used uninitialized. Leave a FIXME because it's not clear that
12176 this initialization is needed. (Bug#8211)
12177 (ISO_CODE_LF, ISO_CODE_CR, CODING_ISO_FLAG_EUC_TW_SHIFT):
12178 (ONE_MORE_BYTE_NO_CHECK, UTF_BOM, UTF_16_INVALID_P):
12179 (SHIFT_OUT_OK, ENCODE_CONTROL_SEQUENCE_INTRODUCER):
12180 (ENCODE_DIRECTION_R2L, ENCODE_DIRECTION_L2R):
12181 Remove unused macros.
12182
12183 * category.c (hash_get_category_set): Remove unused local var.
12184 (copy_category_table): Now static, since it's not used elsewhere.
12185 * character.c (string_count_byte8): Likewise.
12186
12187 * ccl.c (CCL_WRITE_STRING, CCL_ENCODE_CHAR, Fccl_execute_on_string):
12188 (Fregister_code_conversion_map): Rename locals to avoid shadowing.
12189
12190 * chartab.c (copy_sub_char_table): Now static, since it's not used
12191 elsewhere.
12192 (sub_char_table_ref_and_range, char_table_ref_and_range):
12193 Rename locals to avoid shadowing.
12194 (ASET_RANGE, GET_SUB_CHAR_TABLE): Remove unused macros.
12195
12196 * bidi.c (bidi_check_type): Now static, since it's not used elsewhere.
12197 (BIDI_BOB): Remove unused macro.
12198
12199 * cm.c (cmgoto): Mark variables that gcc -Wuninitialized does not
12200 deduce are never used uninitialized.
12201 * term.c (encode_terminal_code): Likewise.
12202
12203 * term.c (encode_terminal_code): Now static. Remove unused local.
12204
12205 * tparam.h: New file.
12206 * term.c, tparam.h: Include it.
12207 * deps.mk (term.o, tparam.o): Depend on tparam.h.
12208 * term.c (tputs, tgetent, tgetflag, tgetnum, tparam, tgetstr):
12209 Move these decls to tparam.h, and make them agree with what
12210 is actually in tparam.c. The previous trick of using incompatible
12211 decls in different modules does not conform to the C standard.
12212 All callers of tparam changed to use tparam's actual API.
12213 * tparam.c (tparam1, tparam, tgoto):
12214 Use const pointers where appropriate.
12215
12216 * cm.c (calccost, cmgoto): Use const pointers where appropriate.
12217 * cm.h (struct cm): Likewise.
12218 * dispextern.h (do_line_insertion_deletion_costs): Likewise.
12219 * scroll.c (ins_del_costs, do_line_insertion_deletion_costs): Likewise.
12220 * term.c (tty_ins_del_lines, calculate_costs, struct fkey_table):
12221 (term_get_fkeys_1, append_glyphless_glyph, produce_glyphless_glyph):
12222 (turn_on_face, init_tty): Likewise.
12223 * termchar.h (struct tty_display_info): Likewise.
12224
12225 * term.c (term_mouse_position): Rename local to avoid shadowing.
12226
12227 * alloc.c (mark_ttys): Move decl from here ...
12228 * lisp.h (mark_ttys): ... to here, so that it's checked against defn.
12229
12230 2011-03-11 Andreas Schwab <schwab@linux-m68k.org>
12231
12232 * .gdbinit (pwinx, xbuffer): Fix access to buffer name.
12233
12234 2011-03-09 Juanma Barranquero <lekktu@gmail.com>
12235
12236 * search.c (compile_pattern_1): Remove argument regp, unused since
12237 revid:rms@gnu.org-19941211082627-3x1g1wyqkjmwloig.
12238 (compile_pattern): Don't pass it.
12239
12240 2011-03-08 Jan Djärv <jan.h.d@swipnet.se>
12241
12242 * xterm.h (DEFAULT_GDK_DISPLAY): New define.
12243 (GDK_WINDOW_XID, gtk_widget_get_preferred_size): New defines
12244 for ! HAVE_GTK3.
12245 (GTK_WIDGET_TO_X_WIN): Use GDK_WINDOW_XID.
12246
12247 * xmenu.c (menu_position_func): Call gtk_widget_get_preferred_size.
12248
12249 * gtkutil.c: Include gtkx.h if HAVE_GTK3. If ! HAVE_GTK3, define
12250 gdk_window_get_screen, gdk_window_get_geometry,
12251 gdk_x11_window_lookup_for_display and GDK_KEY_g.
12252 (xg_set_screen): Use DEFAULT_GDK_DISPLAY.
12253 (xg_get_pixbuf_from_pixmap): New function.
12254 (xg_get_pixbuf_from_pix_and_mask): Change parameters from GdkPixmap
12255 to Pixmap, take frame as parameter, remove GdkColormap parameter.
12256 Call xg_get_pixbuf_from_pixmap instead of
12257 gdk_pixbuf_get_from_drawable.
12258 (xg_get_image_for_pixmap): Do not make GdkPixmaps, call
12259 xg_get_pixbuf_from_pix_and_mask with Pixmap parameters instead.
12260 (xg_check_special_colors): Use GtkStyleContext and its functions
12261 for HAVE_GTK3.
12262 (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen.
12263 (xg_prepare_tooltip, create_dialog, menubar_map_cb)
12264 (xg_update_frame_menubar, xg_tool_bar_detach_callback)
12265 (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes):
12266 Call gtk_widget_get_preferred_size.
12267 (xg_frame_resized): gdk_window_get_geometry only takes 5
12268 parameters.
12269 (xg_win_to_widget, xg_event_is_for_menubar):
12270 Call gdk_x11_window_lookup_for_display.
12271 (xg_set_widget_bg): New function.
12272 (delete_cb): New function.
12273 (xg_create_frame_widgets): Connect delete-event to delete_cb.
12274 Call xg_set_widget_bg. Only set background pixmap for ! HAVE_GTK3
12275 (xg_set_background_color): Call xg_set_widget_bg.
12276 (xg_set_frame_icon): Call xg_get_pixbuf_from_pix_and_mask.
12277 (xg_create_scroll_bar): vadj is a GtkAdjustment for HAVE_GTK3.
12278 Only call gtk_range_set_update_policy if ! HAVE_GTK3.
12279 (xg_make_tool_item): Only connect xg_tool_bar_item_expose_callback
12280 if ! HAVE_GTK3.
12281 (update_frame_tool_bar): Call gtk_widget_hide.
12282 (xg_initialize): Use GDK_KEY_g.
12283
12284 * xsmfns.c (gdk_set_sm_client_id): Define to gdk_set_sm_client_id
12285 if ! HAVE_GTK3
12286 (x_session_initialize): Call gdk_x11_set_sm_client_id.
12287
12288 * xterm.c (XFillRectangle): Use cairo routines for HAVE_GTK3.
12289 (x_term_init): Disable Xinput(2) with GDK_CORE_DEVICE_EVENTS.
12290 Load ~/emacs.d/gtkrc only for ! HAVE_GTK3.
12291
12292 2011-03-08 Juanma Barranquero <lekktu@gmail.com>
12293
12294 * w32xfns.c (select_palette): Check success of RealizePalette against
12295 GDI_ERROR, not zero.
12296
12297 See ChangeLog.11 for earlier changes.
12298
12299 ;; Local Variables:
12300 ;; coding: utf-8
12301 ;; End:
12302
12303 Copyright (C) 2011-2012 Free Software Foundation, Inc.
12304
12305 This file is part of GNU Emacs.
12306
12307 GNU Emacs is free software: you can redistribute it and/or modify
12308 it under the terms of the GNU General Public License as published by
12309 the Free Software Foundation, either version 3 of the License, or
12310 (at your option) any later version.
12311
12312 GNU Emacs is distributed in the hope that it will be useful,
12313 but WITHOUT ANY WARRANTY; without even the implied warranty of
12314 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12315 GNU General Public License for more details.
12316
12317 You should have received a copy of the GNU General Public License
12318 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.